OSDN Git Service

* config/i386/sse.md (vec_avx2): New mode_attr.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
2
3         * config/i386/sse.md (vec_avx2): New mode_attr.
4         (mulv16qi3): Macroize to cover also mulv32qi3 for
5         TARGET_AVX2 into ...
6         (mul<mode>3): ... this.
7
8         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
9         * config/i386/i386.c (ix86_expand_vec_perm): Handle
10         V16QImode and V32QImode for TARGET_AVX2.
11         (MAX_VECT_LEN): Increase to 32.
12         (expand_vec_perm_blend): Add support for 32-byte integer
13         vectors with TARGET_AVX2.
14         (valid_perm_using_mode_p): New function.
15         (expand_vec_perm_pshufb): Add support for 32-byte integer
16         vectors with TARGET_AVX2.
17         (expand_vec_perm_vpshufb2_vpermq): New function.
18         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
19         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
20         with TARGET_AVX2.
21         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
22         and expand_vec_perm_vpshufb2_vpermq_even_odd.
23         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
24         32-byte integer vector modes.
25         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
26         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
27         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
28         4 new operands.
29         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
30         match_dup, instead add 4 new operands and require they have
31         right cross-lane values.
32         (avx2_permv4di): Change into define_expand.
33         (avx2_permv4di_1): New instruction.
34         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
35         for "xm" constrained operand.
36         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
37
38         * config/i386/sse.md (avx2_gathersi<mode>,
39         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
40         match_scratch, change memory_operand to register_operand,
41         add (mem:BLK (scratch)) use.
42         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
43         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
44         add earlyclobber to the output operand and match_scratch,
45         add (mem:BLK (scratch)) use, change the other mem to match_operand.
46         Use %p6 instead of %c6 in the pattern.
47         * config/i386/i386.c (ix86_expand_builtin): Adjust for
48         operand 2 being a Pmode register_operand instead of memory_operand.
49
50 2011-10-12  Kai Tietz  <ktietz@redhat.com>
51
52         * config/i386/i386.md (simple_return): Disable
53         if TARGET_SEH is active.
54
55 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
56
57         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
58
59 2011-10-12  Richard Guenther  <rguenther@suse.de>
60
61         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
62         of the first store we visit in a basic-block.
63         (get_continuation_for_phi): Search for a candidate VUSE that
64         might dominates all others.  Do pairwise disambiguation against
65         that candidate.
66
67 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
68
69         PR tree-optimization/50189
70         * tree-vrp.c (extract_range_from_assert): Use the type of
71         the variable, not the limit.
72
73 2011-10-12  Richard Guenther  <rguenther@suse.de>
74
75         PR tree-optimization/50700
76         * tree-object-size.c (addr_object_size): Simplify and treat
77         MEM_REF bases consistently.
78
79 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
80
81         * function.c (prepare_shrink_wrap, bb_active_p): New function.
82         (thread_prologue_and_epilogue_insns): Use bb_active_p.
83         Call prepare_shrink_wrap, then recompute bb_active_p for the
84         last block.
85
86 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
87
88         PR c/50565
89         * convert.c (convert_to_integer): Do not narrow operands of
90         pointer subtraction.
91
92 2011-10-12  Nick Clifton  <nickc@redhat.com>
93
94         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
95         emit a .eabi_attribute assembler directive, possibly with a
96         comment attached.
97         * config/arm/arm.c (arm_file_start): Use the new macro.
98         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
99
100 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
101
102         PR target/49939
103         * config/avr/avr.md (*movqi): Rename to movqi_insn.
104         (*call_insn): Rename to call_insn.
105         (*call_value_insn): Rename to call_value_insn.
106         * config/avr/avr.c (avr_2word_insn_p): New static function.
107         (jump_over_one_insn_p): Use it.
108
109 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
110
111         * expr.h (copy_blkmode_to_reg): Declare.
112         * expr.c (copy_blkmode_to_reg): New function.
113         (expand_assignment): Don't expand register RESULT_DECLs before
114         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
115         RESULT_DECL register.
116         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
117         * stmt.c (expand_return): Move BLKmode-to-register code into
118         copy_blkmode_to_reg.
119
120 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
121
122         PR target/49965
123         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
124         (mov<F:mode>cc): Likewise.
125
126 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
127
128         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
129
130 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
131
132         * tree.h (built_in_decls): Delete old interface with two parallel
133         arrays to hold standard builtin declarations, and replace it with
134         a function based interface that can support creating builtins on
135         the fly in the future.  Change all uses, and poison the old
136         names.  Make sure 0 is not a legitimate builtin index.
137         (implicit_built_in_decls): Ditto.
138         (built_in_info): Ditto.
139         (BUILTIN_VALID_P): Ditto.
140         (builtin_decl_explicit): Ditto.
141         (builtin_decl_implicit): Ditto.
142         (set_builtin_decl): Ditto.
143         (set_builtin_decl_implicit_p): Ditto.
144         (builtin_decl_explicit_p): Ditto.
145         (builtin_decl_implicit_p): Ditto.
146         * tree-complex.c (expand_complex_libcall): Ditto.
147         * tree-loop-distribution.c (generate_memset_zero): Ditto.
148         * tree-ssa-strlen.c (get_string_length): Ditto.
149         (handle_builtin_strcpy): Ditto.
150         (handle_builtin_strcat): Ditto.
151         * tree.c (iterative_hash_expr): Ditto.
152         (local_define_builtin): Ditto.
153         (build_common_builtin_nodes): Ditto.
154         * builtins.c (built_in_decls): Ditto.
155         (implicit_built_in_decls): Ditto.
156         (built_in_info): Ditto
157         (expand_builtin_classify_type): Ditto.
158         (mathfn_built_in_1): Ditto.
159         (expand_builtin_cexpi): Ditto.
160         (expand_builtin_mempcpy_args): Ditto.
161         (expand_builtin_stpcpy): Ditto.
162         (gimplify_va_arg_expr): Ditto.
163         (expand_builtin_sync_operation): Ditto.
164         (build_builtin_expect_predicate): Ditto.
165         (fold_builtin_memory_op): Ditto.
166         (fold_builtin_strcpy): Ditto.
167         (fold_builtin_stpcpy): Ditto.
168         (fold_builtin_strncpy): Ditto.
169         (fold_builtin_interclass_mathfn): Ditto.
170         (fold_builtin_classify): Ditto.
171         (fold_builtin_2): Ditto.
172         (fold_builtin_strstr): Ditto.
173         (fold_builtin_strrchr): Ditto.
174         (fold_builtin_strpbrk): Ditto.
175         (fold_builtin_strcat): Ditto.
176         (fold_builtin_strncat): Ditto.
177         (fold_builtin_strcspn): Ditto.
178         (fold_builtin_fputs): Ditto.
179         (fold_builtin_sprintf): Ditto.
180         (fold_builtin_snprintf): Ditto.
181         (expand_builtin_memory_chk): Ditto.
182         (fold_builtin_memory_chk): Ditto.
183         (fold_builtin_stxcpy_chk): Ditto.
184         (fold_builtin_strncpy_chk): Ditto.
185         (fold_builtin_strcat_chk): Ditto.
186         (fold_builtin_strncat_chk): Ditto.
187         (fold_builtin_sprintf_chk_1): Ditto.
188         (fold_builtin_snprintf_chk_1): Ditto.
189         (fold_builtin_printf): Ditto.
190         (fold_builtin_fprintf): Ditto.
191         (fold_call_stmt): Ditto.
192         (set_builtin_user_assembler_name): Ditto.
193         * tree-emutls.c (emutls_common_1): Ditto.
194         * omp-low.c (scan_omp): Ditto.
195         (lower_rec_input_clauses): Ditto.
196         (lower_reduction_clauses): Ditto.
197         (expand_parallel_call): Ditto.
198         (expand_task_call): Ditto.
199         (maybe_catch_exception): Ditto.
200         (optimize_omp_library_calls): Ditto.
201         (expand_omp_for_generic): Ditto.
202         (expand_omp_for_static_nochunk): Ditto.
203         (expand_omp_for_static_chunk): Ditto.
204         (expand_omp_sections): Ditto.
205         (expand_omp_atomic_fetch_op): Ditto.
206         (expand_omp_atomic_pipeline): Ditto.
207         (expand_omp_atomic_mutex): Ditto.
208         (lower_omp_single_simple): Ditto.
209         (lower_omp_single_copy): Ditto.
210         (lower_omp_master): Ditto.
211         (lower_omp_ordered): Ditto.
212         (lower_omp_critical): Ditto.
213         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
214         * builtins.c (DEF_BUILTIN_STUB): Ditto.
215         (BUILT_IN_NONE): Ditto.
216         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
217         * gimple-low.c (lower_function_body): Ditto.
218         (lower_builtin_setjmp): Ditto.
219         * c-decl.c (merge_decls): Ditto.
220         * tree-eh.c (lower_resx): Ditto.
221         (lower_resx): Ditto.
222         (lower_eh_dispatch): Ditto.
223         * function (gimplify_parameters): Ditto.
224         * c-typeck.c (build_function_call_vec): Ditto.
225         * gimplify.c (build_stack_save_restore): Ditto.
226         (gimplify_vla_decl): Ditto.
227         (gimplify_modify_expr_to_memcpy): Ditto.
228         (gimplify_modify_expr_to_memset): Ditto.
229         (gimplify_variable_sized_compare): Ditto.
230         (gimplify_function_tree): Ditto.
231         * calls.c (emit_call_1): Ditto.
232         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
233         * tree-nested.c (convert_nl_goto_reference): Ditto.
234         (convert_tramp_reference_op): Ditto.
235         (finalize_nesting_tree_1): Ditto.
236         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
237         (tree_ssa_prefetch_arrays): Ditto.
238         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
239         * system.h (built_in_decls): Ditto.
240         (implicit_built_in_decls): Ditto.
241         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
242         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
243         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
244         (ix86_veclibabi_svml): Ditto.
245         (ix86_veclibabi_acml): Ditto.
246         * config/vms/vms.c (vms_patch_builtins): Ditto.
247         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
248         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
249         (rs6000_builtin_vectorized_libmass): Ditto.
250         (rs6000_init_builtins): Ditto.
251         * config/darwin.c (darwin_override_options): Ditto.
252         (darwin_patch_builtin): Ditto.
253         (darwin_rename_builtins): Ditto.
254         * config/pa/pa.c (pa_init_builtins): Ditto.
255
256 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
257
258         * tree.h (copy_ref_info): Expose existing function.
259         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
260         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
261
262 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
263
264         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
265         (avr_regno_mode_code_ok_for_base_p): New prototype.
266         * config/avr/avr.h (BASE_REG_CLASS): Remove.
267         (REGNO_OK_FOR_BASE_P): Remove.
268         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
269         (REG_OK_FOR_BASE_STRICT_P): Remove.
270         (MODE_CODE_BASE_REG_CLASS): New define.
271         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
272         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
273         (avr_regno_mode_code_ok_for_base_p): New function.
274         (avr_reg_ok_for_addr_p): New static function.
275         (avr_legitimate_address_p): Use it.  Beautify.
276
277 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
278
279         PR target/50447
280         * config/avr/avr.md (cc): Add out_plus attribute alternative.
281         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
282         avr_out_plus for all CONST_INT addends.
283         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
284         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
285         CC_OUT_PLUS.
286         (avr_out_plus_1): Change prototype and report effect on cc0.
287         (avr_out_plus): Ditto.
288         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
289
290 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
291
292         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
293         the extra break.
294
295 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
296
297         * doc/invoke.texi: Document new warning.
298         * common.opt (Wvector-operation-performance): Define new warning.
299         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
300         vector operation.
301         (exapnd_vector_parallel): Warn about expanded vector operation.
302         (lower_vec_shuffle): Warn about expanded vector operation.
303         * c-typeck.c (c_build_vec_perm_expr): Store correct location
304         when creating VEC_PERM_EXPR.
305
306 2011-10-11  Richard Guenther  <rguenther@suse.de>
307
308         PR tree-optimization/50204
309         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
310         two argument handling from ...
311         (get_continuation_for_phi): ... here.  Handle arbitrary number
312         of PHI args.
313
314 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
315
316         PR c++/33067
317         * c-family/c-pretty-print.c (pp_c_floating_constant): Output
318         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
319
320 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
321
322         * modulo-sched.c: Fix comment typo.  Mention the possibility
323         of using scheduling windows of II+1 cycles.
324
325 2011-10-11  Tristan Gingold  <gingold@adacore.com>
326
327         * doc/invoke.texi (C Dialect Options): Document
328         -fallow-parameterless-variadic-functions.
329         * c-parser.c (c_parser_parms_list_declarator): Handle it.
330
331 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
332
333         * config/avr/avr.c (avr_option_override): Set
334         flag_omit_frame_pointer to 0 if frame pointer is needed for
335         unwinding.
336
337 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
338
339         PR bootstrap/50665
340         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
341         optab_index to enum direct_optab_index.
342         (vec_perm_optab): Update.
343
344 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
345
346         * config/cris/cris.c (cris_preferred_reload_class): New function.
347         (TARGET_PREFERRED_RELOAD_CLASS): Define.
348         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
349
350 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
351
352         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
353         !AVR_HAVE_JMP_CALL.
354         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
355         (*tablejump_enh, *tablejump): Remove insns.
356         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
357         EIJMP for indirect jump.  Use LPM Z+ where available.
358
359 2011-10-10  Richard Henderson  <rth@redhat.com>
360
361         * doc/md.texi (vec_perm_const): Fix typo in cindex.
362
363 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
364             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
365
366         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
367
368 2011-10-10  Richard Guenther  <rguenther@suse.de>
369
370         PR middle-end/50389
371         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
372         mark symbols for renaming.  Append the VUSE to all statements
373         that possibly can have one.
374
375 2011-10-10  Richard Guenther  <rguenther@suse.de>
376
377         * ipa-split.c (pass_split_functions): Add verification TODOs.
378         (pass_feedback_split_functions): Likewise.
379
380 2011-10-10  Richard Guenther  <rguenther@suse.de>
381
382         PR middle-end/50195
383         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
384         only when optimizing.
385
386 2011-10-10  Nick Clifton  <nickc@redhat.com>
387
388         PR middle-end/49801
389         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
390         df_get_live_out instead of accessing the bitmaps directly.
391         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
392         df_live_add_problem and df_analyze.
393
394 2011-10-10  Michael Matz  <matz@suse.de>
395
396         PR middle-end/50638
397         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
398
399 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
400
401         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
402         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
403         (node_sched_params): Remove first_reg_move and nreg_moves.
404         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
405         (update_node_sched_params): Move up file.
406         (print_node_sched_params): Print the stage.  Don't dump info related
407         to first_reg_move and nreg_moves.
408         (set_columns_for_row): New function.
409         (set_columns_for_ps): Move up file and use set_columns_for_row.
410         (schedule_reg_move): New function.
411         (schedule_reg_moves): Call extend_node_sched_params and
412         schedule_reg_move.  Extend size of uses bitmap.  Initialize
413         num_consecutive_stages.  Return false if a move could not be
414         scheduled.
415         (apply_reg_moves): Don't emit moves here.
416         (permute_partial_schedule): Handle register moves.
417         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
418         to the same stage-count test as ddg nodes.
419         (generate_prolog_epilog): Update calls accordingly.
420         (sms_schedule): Allow move-scheduling to add a new first stage.
421
422 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
423
424         * modulo-sched.c (ps_insn): Adjust comment.
425         (ps_reg_move_info): New structure.
426         (partial_schedule): Add reg_moves field.
427         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
428         (node_sched_params): Turn first_reg_move into an identifier.
429         (ps_reg_move): New function.
430         (ps_rtl_insn): Cope with register moves.
431         (ps_first_note): Adjust comment and assert that the instruction
432         isn't a register move.
433         (node_sched_params): Replace with...
434         (node_sched_param_vec): ...this vector.
435         (set_node_sched_params): Adjust accordingly.
436         (print_node_sched_params): Take a partial schedule instead of a ddg.
437         Use ps_rtl_insn and ps_reg_move.
438         (generate_reg_moves): Rename to...
439         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
440         move in the partial schedule, but don't emit it here.  Don't perform
441         register substitutions here either.
442         (apply_reg_moves): New function.
443         (duplicate_insns_of_cycles): Use register indices directly,
444         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
445         (sms_schedule): Call schedule_reg_moves before committing to
446         a partial schedule.   Try the next ii if the schedule fails.
447         Use apply_reg_moves instead of generate_reg_moves.  Adjust
448         call to print_node_sched_params.  Free node_sched_param_vec
449         instead of node_sched_params.
450         (create_partial_schedule): Initialize reg_moves.
451         (free_partial_schedule): Free reg_moves.
452
453 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
454
455         * modulo-sched.c (ps_insn): Replace node field with an identifier.
456         (SCHED_ASAP): Replace with..
457         (NODE_ASAP): ...this macro.
458         (SCHED_PARAMS): New macro.
459         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
460         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
461         (node_sched_params): Remove asap.
462         (ps_rtl_insn, ps_first_note): New functions.
463         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
464         asap values.
465         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
466         (generate_reg_moves): Pass ids to the SCHED_* macros.
467         (update_node_sched_params): Take a ps insn identifier rather than
468         a node as parameter.  Use ps_rtl_insn.
469         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
470         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
471         (optimize_sc): Update for above field and SCHED_* macro changes.
472         Update calls to try_scheduling_node_in_cycle and
473         update_node_sched_params.
474         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
475         macro changes.  Use ps_rtl_insn and ps_first_note.
476         (sms_schedule): Pass ids to the SCHED_* macros.
477         (get_sched_window): Adjust for above field and SCHED_* macro changes.
478         Use NODE_ASAP instead of SCHED_ASAP.
479         (try_scheduling_node_in_cycle): Remove node parameter.  Update
480         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_*
481         macros.
482         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
483         (ps_insert_empty_row): Adjust for above field changes.
484         (compute_split_row): Use ids rather than nodes.
485         (verify_partial_schedule): Adjust for above field changes.
486         (print_partial_schedule): Use ps_rtl_insn.
487         (create_ps_insn): Take an id rather than a node.
488         (ps_insn_find_column): Adjust for above field changes.
489         Use ps_rtl_insn.
490         (ps_insn_advance_column): Adjust for above field changes.
491         (add_node_to_ps): Remove node parameter.  Update call to
492         create_ps_insn.
493         (ps_has_conflicts): Use ps_rtl_insn.
494         (ps_add_node_check_conflicts): Replace node parameter than an id.
495
496 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
497
498         * modulo-sched.c (undo_replace_buff_elem): Delete.
499         (generate_reg_moves): Don't build and return an undo list.
500         (free_undo_replace_buff): Delete.
501         (sms_schedule): Adjust call to generate_reg_moves.
502         Don't call free_undo_replace_buff.
503
504 2011-10-10  Matthias Klose <doko@ubuntu.com>
505
506         * common/config/m32c: Remove empty directory.
507
508 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
509
510         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
511
512 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
513
514         PR target/50652
515         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
516         atmega164a to 0x100.
517
518 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
519
520         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
521         the replacement if the conversion to the LHS type is not useless.
522
523 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
524
525         PR tree-optimization/50635
526         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
527         DEF_STMT to the list of statements to be replaced by the
528         pattern statements.
529         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
530
531 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
532
533         * system.h: Commit forgotten hunk in previous patch.
534         (OUTPUT_ADDR_CONST_EXTRA): Poison.
535
536 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
537
538         PR libobjc/50428
539         * doc/objc.texi (Garbage Collection): Updated example to protect
540         +initialize against execution in subclasses.
541
542 2011-10-07  Richard Henderson  <rth@redhat.com>
543
544         * doc/extend.texi (__builtin_shuffle): Improve the description to
545         include the modulus of the selector.  Mention OpenCL.
546         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
547
548         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
549         * genopinit.c (optabs): Rename vshuffle to vec_perm.
550         * c-typeck.c (c_build_vec_perm_expr): Rename from
551         c_build_vec_shuffle_expr.  Update for name changes.
552         * optabs.c (expand_vec_perm_expr_p): Rename from
553         expand_vec_shuffle_expr_p.
554         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
555         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
556         (vec_perm_optab): Rename from vshuffle_optab.
557         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
558         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
559         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
560
561         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
562         ix86_expand_vshuffle.
563         * config/i386/i386-protos.h: Update.
564         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
565         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
566
567 2011-10-07  Richard Henderson  <rth@redhat.com>
568
569         * config/i386/predicates.md (avx2_pblendw_operand): New.
570         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
571         (avx2_pblendw, *avx2_pblendw): New expander and insn.
572
573 2011-10-07  Richard Henderson  <rth@redhat.com>
574
575         * config/i386/i386.c (bdesc_args): Update code for
576         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
577         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
578         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
579         * config/i386/sse.md (mode iterator V16): Add V2TI.
580         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
581         (mode attr ssse3_avx2): Add V2TI.
582         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
583
584 2011-10-07  David S. Miller  <davem@davemloft.net>
585
586         PR 50655
587         * configure.ac: Add .register directives to VIS3 test.
588         * configure: Regenerate.
589
590 2011-10-07  Richard Henderson  <rth@redhat.com>
591
592         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
593
594 2011-10-07  Richard Henderson  <rth@redhat.com>
595
596         PR 49752
597         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
598
599 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
600
601         * config/arm/predicates.md (shift_amount_operand): Remove constant
602         range check.
603         (shift_operator): Check range of constants for all shift operators.
604
605 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
606
607         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
608         Load GOT pointer for non-pic builds.
609         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
610         (s390_emit_call): Likewise.
611
612 2011-10-07  Tom de Vries  <tom@codesourcery.com>
613
614         PR middle-end/50527
615         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
616         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
617         * tree-ssa-ccp.c (evaluate_stmt): Set align for
618         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
619         * ipa-pure-const.c (special_builtin_state): Handle
620         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
621         * function.c (gimplify_parameters): Lower vla to
622         * gimplify.c (gimplify_vla_decl): Same.
623         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
624         * tree-mudflap.c (mf_xform_statements): Same.
625         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
626         * varasm.c (incorporeal_function_p): Same.
627         * tree-object-size.c (alloc_object_size): Same.
628         * gimple.c (gimple_build_call_from_tree): Same.
629
630 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
631
632         * function.c (frame_required_for_rtx): Remove function.
633         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
634         changed.  Compute a set of mentioned registers and compare against
635         the new arg rather than calling frame_required_for_rtx.
636         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
637         reg set.  Convert the unconverted_simple_returns mechanism to store
638         jump insns rather than their basic blocks.  Also check the
639         orig_entry_edge destination for new blocks.
640
641 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
642
643         PR tree-optimization/50650
644         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
645         call vect_is_simple_cond here, instead fail if cond_expr isn't
646         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
647         for cond_expr's first operand.
648         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
649         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
650
651 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
652
653         * config/s390/s390.md (DWH, dwh): New mode macros.
654         ("umulsidi3"): Extend to support "umulditi3" as well.
655
656 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
657             H.J. Lu  <hongjiu.lu@intel.com>
658
659         PR target/50603
660         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
661         integer PLUS RTX to a register to improve address combine.
662
663 2011-10-06  Richard Henderson  <rth@redhat.com>
664
665         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
666         parameter; use it to decide whether to merge two notes.
667         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
668         for the deallocation case as well.
669
670 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
671
672         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
673         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
674         * doc/tm.texi: Regenerate.
675         * target.def (output_addr_const_extra): Use
676         hook_bool_FILEptr_rtx_false.
677         * targhooks.c (default_asm_output_addr_const_extra): Remove.
678         * targhooks.h (default_asm_output_addr_const_extra): Remove.
679         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
680         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
681
682 2011-10-06  David S. Miller  <davem@davemloft.net>
683
684         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
685         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
686         SI mode 64-bit code gen case explicitly zero-extend and truncate.
687         (*popcount<mode>_sp64): Split up into...
688         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
689         SImode case use truncate.
690         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
691         subtract so the compiler can optimize it.
692         (SIDI): Remove unused mode iterator.
693
694 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
695
696         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
697         on the orig_entry_edge. Don't account for it in prologue_clobbered.
698
699 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
700
701         PR tree-optimization/50596
702         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
703         (NUM_PATTERNS): Change to 6.
704         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
705         function.
706         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
707         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
708         if it already has one, and don't set STMT_VINFO_VECTYPE in it
709         if it is already set.
710         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
711         COND_EXPR in pattern stmts.
712         (vect_is_simple_cond): No longer static.
713
714 2001-10-06  Richard Henderson  <rth@redhat.com>
715
716         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
717         * config/i386/sse.md (sseshuffint): Remove.
718         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
719         (VSHUFFLE_AVX2): New mode iterator.
720         (vshuffle<mode>): Use it.
721         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
722
723         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
724         for vector_all_ones_operand.
725         (ix86_expand_int_vcond): Distinguish between comparison mode
726         and data mode.  Allow them to differ.
727         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
728
729 2001-10-06  Richard Henderson  <rth@redhat.com>
730
731         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
732         mask operand.  Tidy the code.
733
734 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
735
736         * tree-vect-patterns.c (vect_pattern_recog_1): Use
737         vect_recog_func_ptr typedef for the first argument.
738         (vect_pattern_recog): Rename vect_recog_func_ptr variable
739         to vect_recog_func, use vect_recog_func_ptr typedef for it.
740
741         PR tree-optimization/49279
742         * tree-ssa-structalias.c (find_func_aliases): Don't handle
743         CAST_RESTRICT.
744         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
745         restrict propagation.
746         * tree-ssa.c (useless_type_conversion_p): Don't return false
747         if TYPE_RESTRICT differs.
748
749 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
750
751         * function.c (thread_prologue_and_epilogue_insns): Build a vector
752         of unconverted simple return blocks rather than trying to
753         recompute them later based on bb_flags bitmap tests.
754
755 2011-10-06  Michael Matz  <matz@suse.de>
756
757         * tree-flow.h (get_var_ann): Don't declare.
758         * tree-flow-inline.h (get_var_ann): Remove.
759         (set_is_used): Use var_ann, not get_var_ann.
760         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
761         * tree-profile.c (gimple_gen_edge_profiler): Call
762         find_referenced_var_in.
763         (gimple_gen_interval_profiler): Ditto.
764         (gimple_gen_pow2_profiler): Ditto.
765         (gimple_gen_one_value_profiler): Ditto.
766         (gimple_gen_average_profiler): Ditto.
767         (gimple_gen_ior_profiler): Ditto.
768         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
769         (gimple_gen_ic_func_profiler): Call add_referenced_var.
770         * tree-mudflap.c (execute_mudflap_function_ops): Call
771         add_referenced_var.
772
773 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
774
775         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
776         don't set SSA_NAME_DEF_STMT that has been already set by
777         gimple_build_assign_with_ops.
778         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
779         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
780         Likewise.
781
782         * tree.h (avoid_folding_inline_builtin): New prototype.
783         * builtins.c (avoid_folding_inline_builtin): No longer static.
784         * gimple-fold.c (gimple_fold_builtin): Give up if
785         avoid_folding_inline_builtin returns true.
786
787 2011-10-06  Richard Guenther  <rguenther@suse.de>
788
789         * tree-vect-generic.c (vector_element): Look at previous
790         generated results.
791
792 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
793
794         PR target/39950
795         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
796         __powerpc__, __PPC__, __unix__.
797
798 2011-10-06  Michael Matz  <matz@suse.de>
799
800         * i386/i386.opt (recip_mask, recip_mask_explicit,
801         x_recip_mask_explicit): New variables and cl_target member.
802         (mrecip=): New option.
803         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
804         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
805         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
806         TARGET_RECIP_VEC_SQRT): New tests.
807         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
808         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
809         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
810         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
811         * i386/i386.c (ix86_option_override_internal): Set recip_mask
812         for -mrecip and -mrecip=options.
813         (ix86_function_specific_save): Save recip_mask_explicit.
814         (ix86_function_specific_restore): Restore recip_mask_explicit.
815
816         * doc/invoke.texi (ix86 Options): Document the new option.
817
818 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
819
820         PR target/49049
821         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
822
823 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
824
825         PR target/50305
826         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
827         output of a previous pass through legitimize_reload_address.
828         Do not attempt to optimize addresses if the base register is
829         equivalent to a constant.
830
831 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
832
833         * function.c (thread_prologue_and_epilogue_insns): Mark
834         last_bb_active as possibly unused.  It is unused for targets which
835         do neither have "return" nor "simple_return" expanders.
836
837 2011-10-06  Richard Guenther  <rguenther@suse.de>
838
839         * fold-const.c (fold_ternary_loc): Also fold non-constant
840         vector CONSTRUCTORs.  Make more efficient.
841         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
842         (cprop_into_stmt): Don't propagate into virtual operands.
843         (optimize_stmt): Really dump original statement.
844
845 2011-10-06  Nick Clifton  <nickc@redhat.com>
846
847         * config/rx/rx.md (smin3): Revert previous delta.
848
849 2011-10-06  Richard Guenther  <rguenther@suse.de>
850
851         PR tree-optimization/38884
852         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
853         reads from aggregate SSA names.
854
855 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
856
857         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
858         argument, truncate it at the beginning instead of allocating there
859         and freeing at the end.
860         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
861         pass its address to vect_pattern_recog_1.
862
863 2011-10-05  David S. Miller  <davem@davemloft.net>
864
865         * config/sparc/sparc.opt (POPC): New option.
866         * doc/invoke.texi: Document it.
867         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
868         default on Niagara-2 and later.
869         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
870         * config/sparc/sparc.md (SIDI): New mode iterator.
871         (ffsdi2): Delete commented out pattern and comments.
872         (popcount<mode>2, clz<mode>2): New expanders.
873         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
874         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
875
876 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
877
878         PR middle-end/50607
879         * c-tree.h (c_expr_t): New typedef for struct c_expr.
880         (C_EXPR_APPEND): New macro.
881         * c-parser.c (c_parser_get_builtin_args): Preserve
882         original_tree_code of c_expr structure.
883         (c_parser_postfix_expression): Adjust to the new function.
884
885 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
886
887         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
888         if profiling after the prologue.
889
890 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
891
892         PR tree-optimization/50613
893         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
894         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
895         and if it is neither that not SSA_NAME, give up.
896
897 2011-10-05  Richard Henderson  <rth@redhat.com>
898
899         * tree-vect-generic.c (vector_element): Never fail.  Use
900         build_zero_cst.  Tidy up type references.
901         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
902         code duplication.  Do update_stmt here ...
903         (expand_vector_operations_1): ... not here.
904
905         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
906         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
907         duplication.  Handle V2DI without SSE4.1.
908         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
909         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
910
911 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
912
913         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
914         of "found".  Simplify return value calculation.
915         (distance_agu_use): Ditto.
916
917 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
918
919         PR bootstrap/50621
920         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
921         if the function was not shrink-wrapped.
922         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
923         to an insn.
924         * function.c (thread_prologue_and_epilogue_insns): Make sure the
925         shrink_wrapped flag is set even if there is no dump file.
926
927 2011-10-05  DJ Delorie  <dj@redhat.com>
928             Nick Clifton  <nickc@redhat.com>
929
930         * config/rx/rx.opt (mpid): Define.
931         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
932         (MULTILIB_DIRNAMES): Add pid.
933         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
934         (rx_num_interrupt_regs): New variable.
935         (rx_gp_base_regnum): New function.  Returns the number of the
936         small data area register.
937         (rx_pid_base_regnum): New function.  Returns the number of the pid
938         base register.
939         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
940         (rx_pid_data_operand): New function.  Returns whether an object is
941         in the position independent data area.
942         (rx_legitimize_address): New function.  Puts undecided PID
943         objects in the PID data area.
944         (rx_is_legitimate_address): Add support for PID operands.
945         (rx_print_operand_address): Likewise.
946         (rx_print_operand): Likewise.
947         (rx_maybe_pidify_operand): New function.  Determine if an operand
948         is suitable for PID addressing.
949         (rx_gen_move_template): Add PID support.
950         (rx_conditional_register_usage): Likewise.
951         (rx_option_override): Initialise rx_num_interrupt_regs.
952         (rx_is_legitimate_constant): Add support for PID constants.
953         (TARGET_LEGITIMIZE_ADDRESS): Define.
954         * config/rx/constraints.md (Rpid): Define.
955         (Rpda): Define.
956         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
957         (tablejump): Add PID support.
958         (mov<>): Likewise.
959         (mov<>_internal): Likewise.
960         (addsi3): Convert to an expander.  Add PID support.
961         (pid_addr): New pattern.
962         * config/rx/rx.h (CPP_SPEC): Define.
963         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
964         (CASE_VECTOR_PC_RELATIVE): Define.
965         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
966         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
967         * doc/invoke.texi (RX Options): Document -mpid command line option.
968
969 2011-10-05  Richard Guenther  <rguenther@suse.de>
970
971         PR tree-optimization/38885
972         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
973         from constants.
974
975 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
976
977         * doc/invoke.texi (-fshrink-wrap): Document.
978         * opts.c (default_options_table): Add it.
979         * common.opt (fshrink-wrap): Add.
980         * function.c (emit_return_into_block): Remove useless declaration.
981         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
982         requires_stack_frame_p, gen_return_pattern): New static functions.
983         (emit_return_into_block): New arg simple_p.  All callers changed.
984         Use gen_return_pattern.
985         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
986         * config/i386/i386.md (return): Expand into a simple_return.
987         (simple_return): New expander):
988         (simple_return_internal, simple_return_internal_long,
989         simple_return_pop_internal_long, simple_return_indirect_internal):
990         Renamed from return_internal, return_internal_long,
991         return_pop_internal_long and return_indirect_internal; changed to use
992         simple_return.
993         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
994         simple returns.
995         (ix86_pad_returns): Likewise.
996         * function.h (struct rtl_data): Add member shrink_wrapped.
997         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
998         are not jumps or sibcalls can't be compared.
999
1000 2011-10-05  Richard Guenther  <rguenther@suse.de>
1001
1002         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
1003         vector type.
1004         (simplify_unary_expression): Handle BIT_FIELD_REFs.
1005         (try_to_simplify): Handle BIT_FIELD_REFs.
1006
1007 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
1008
1009         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
1010         * config/avr/avr.c (avr_out_addto_sp): New function.
1011         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
1012         * config/avr/avr.md (adjust_len): Add "addto_sp".
1013         (*movhi_sp): Remove insn.
1014         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
1015
1016 2011-10-05  Richard Guenther  <rguenther@suse.de>
1017
1018         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
1019         with an embedded expression valueize and fold that as well.
1020         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
1021         results from gimple_fold_stmt_to_constant_1.
1022
1023 2011-10-05  Nick Clifton  <nickc@redhat.com>
1024
1025         * config/rx/rx.md (tablejump): Add missing label.
1026         (adddi3_internal): Mark operand 0 as early-clobbered.
1027         (smaxsi3): Revert previous delta.
1028         (adc_internal): Fix whitespace in generated asm.
1029         (adc_flags): Likewise.
1030
1031 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1032
1033         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
1034         with the new widening_optab_handler.
1035
1036 2011-10-05  Richard Guenther  <rguenther@suse.de>
1037
1038         PR tree-optimization/50609
1039         * gimple-fold.c (fold_array_ctor_reference): Also handle
1040         vector typed constructors.
1041         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
1042         for vector typed constructors.
1043
1044 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
1045
1046         * config/i386/i386.c (ix86_emit_binop): New static function.
1047         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
1048         instructions.
1049         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
1050
1051 2011-10-04  David S. Miller  <davem@davemloft.net>
1052
1053         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
1054         UNSPEC_XMUL): New unspecs.
1055         (muldi3_v8plus): Use output_v8plus_mult.
1056         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
1057         New VIS 3.0 combiner patterns.
1058         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
1059         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
1060         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
1061         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
1062         builtins patterns.
1063         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
1064         (output_v8plus_mult): New function.
1065         * config/sparc/sparc-protos.h: Declare it.
1066         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
1067         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
1068         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
1069         * doc/extend.texi: Document new builtins.
1070
1071 2011-10-04  Richard Henderson  <rth@redhat.com>
1072
1073         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
1074         Avoid save_expr unless two_arguments.
1075
1076 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
1077
1078         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
1079         * config/i386/mingw32.h (CPP_SPEC): Likewise.
1080
1081 2011-10-04  David S. Miller  <davem@davemloft.net>
1082
1083         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
1084         under Linux.
1085
1086 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
1087
1088         PR tree-optimization/50604
1089         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
1090         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
1091         last argument to memcpy has size_type_node type instead of ssizetype.
1092         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
1093         instead of TREE_TYPE (len) as type for newlen.
1094
1095         PR tree-optimization/50522
1096         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
1097         TYPE_RESTRICT.
1098         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
1099         unconditionally.
1100
1101         * fold-const.c (fold_unary_loc): Don't optimize
1102         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
1103         casting the inner pointer if it isn't TYPE_RESTRICT.
1104         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
1105         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
1106
1107 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
1108
1109         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
1110
1111 2011-10-04  Jan Hubicka  <jh@suse.cz>
1112
1113         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
1114         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
1115         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
1116         * lto-cgraph.c (order_base): New static var.
1117         (lto_output_node): Stream in order.
1118         (lto_output_varpool_node): Stream out order.
1119         (input_node): Stream in order.
1120         (input_varpool_node): Stream out order.
1121         (input_cgraph_1): Initialize order base; update call of
1122         lto_input_toplevel_asms.
1123
1124 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
1125
1126         PR target/50566
1127         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
1128         prototype.
1129         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
1130         from here...
1131         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
1132         function.  Log if avr_log.legitimize_reload_address.
1133
1134 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1135
1136         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
1137
1138 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1139
1140         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
1141         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
1142
1143 2011-10-03  David S. Miller  <davem@davemloft.net>
1144
1145         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
1146         GSR_REG an input operand to UNSPEC instead of a parallel USE.
1147         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
1148         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
1149         Reference GSR_REG in DI mode, simplify convoluted expressions by using
1150         zero_extract.
1151         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
1152
1153 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1154
1155         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
1156
1157 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1158             Ian Lance Taylor  <iant@google.com>
1159
1160         * godump.c (go_output_typedef): Support printing enum values that
1161         don't fit in a signed HOST_WIDE_INT.
1162
1163 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1164
1165         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
1166         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1167         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1168         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
1169
1170 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1171
1172         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
1173         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1174         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1175         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
1176
1177 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
1178
1179         PR target/49967
1180         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
1181         (gcc_cv_ld_static_option): Ditto.
1182         (gcc_cv_ld_dynamic_option): Ditto.
1183         * configure: Regenerate.
1184
1185 2011-10-03  David S. Miller  <davem@davemloft.net>
1186
1187         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
1188         and 'si' patterns which describe the GSR changes explicitly in the
1189         RTL using zero_extract.
1190         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
1191
1192         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
1193         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
1194
1195 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1196
1197         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
1198         if given expression can be expanded by the target.
1199         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
1200         using target vector instructions.
1201         * optabs.h: New optab vshuffle.
1202         (expand_vec_shuffle_expr_p): New prototype.
1203         (expand_vec_shuffle_expr): New prototype.
1204         (vshuffle_optab): New optab.
1205         * genopinit.c: Adjust to support vecshuffle.
1206         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
1207         * expr.c (expand_expr_real_2): Adjust.
1208         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
1209         recognizing the cases of two and three arguments.
1210         (convert_arguments) (build_binary_op)
1211         (scalar_to_vector) (build_array_ref): Spurious whitespace.
1212         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
1213         * tree.def: New tree code VEC_SHUFFLE_EXPR.
1214         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
1215         * tree-vect-generic.c (vector_element): New function. Returns an
1216         element of the vector at the given position.
1217         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
1218         by the backend or expand an expression piecewise.
1219         (expand_vector_operations_1): Adjusted.
1220         (gate_expand_vector_operations_noop): New gate function.
1221         * Makefile.in (tree-vect-generic.o): New include.
1222         * gimple.c (get_gimple_rhs_num_ops): Adjust.
1223         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
1224         * passes.c: Move veclower down.
1225         * tree-pretty-print.c (dump_generic_node): Recognize
1226         VEC_SHUFFLE_EXPR as valid expression.
1227         * c-parser.c (c_parser_get_builtin_args): Helper function for the
1228         builtins with variable number of arguments.
1229         (c_parser_postfix_expression): Use a new helper function for
1230         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
1231         * tree-ssa-operands: Adjust.
1232         * c-family/c-common.c: New __builtin_shuffle keyword.
1233         * c-family/c-common.h: New __builtin_shuffle keyword.
1234         * gcc/doc/extend.texi: Adjust.
1235
1236         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
1237         between the vector and the type of the mask when shuffling.
1238         (vecshuffle<mode>): New expansion.
1239         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
1240         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
1241         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
1242
1243 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1244
1245         PR tree-optimization/50587
1246         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
1247         arg0 is not a SSA_NAME.
1248
1249 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
1250
1251         * ipa-inline-analysis.c (MAX_TIME): Update comment.
1252
1253 2011-10-02  Richard Henderson  <rth@redhat.com>
1254             David S. Miller  <davem@davemloft.net>
1255
1256         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
1257         conditional insn type setting, we always emit a shift.
1258         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
1259         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
1260         * config/sparc/predicates.md (const_one_operand): Delete.
1261
1262 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
1263
1264         * invoke.texi (SPARC Options): Refer to GNU/Linux.
1265
1266 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1267
1268         * config/mips/mips.c (mips_frame_barrier): New function.
1269         (mips_expand_prologue): Call it after allocating stack space.
1270         (mips_deallocate_stack): New function.
1271         (mips_expand_epilogue): Call mips_frame_barrier and
1272         mips_deallocate_stack.
1273
1274 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1275
1276         PR target/49696
1277         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
1278         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
1279         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
1280
1281 2011-10-02  Jan Hubicka  <jh@suse.cz>
1282
1283         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
1284
1285         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
1286         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
1287         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
1288         functions are reachable when address is taken.
1289         * tree-sra.c (modify_function): Free dominance info.
1290
1291 2011-10-02  Jan Hubicka  <jh@suse.cz>
1292
1293         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
1294
1295         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
1296         (reset_inline_summary): New function.
1297         (compute_inline_parameters, inline_node_removal_hook,
1298         inline_edge_removal_hook): Use it.
1299         (inline_free_summary): Reset holders correctly.
1300         (inline_generate_summary): Free summary before computing it.
1301
1302 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
1303
1304         PR preprocessor/36819
1305         * incpath.c (merge_include_chains): Call free_path on
1306         heads[QUOTE] and tails[QUOTE].
1307
1308 2011-10-02  Jan Hubicka  <jh@suse.cz>
1309
1310         PR lto/47247
1311         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
1312         when resolution is already availbale from plugin.
1313         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
1314         * cgraph.c (ld_plugin_symbol_resolution): Add
1315         prevailing_def_ironly_exp.
1316         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
1317         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
1318         externally visible.
1319         * varasm.c (resolution_to_local_definition_p): Add
1320         LDPR_PREVAILING_DEF_IRONLY_EXP.
1321         (resolution_local_p): Likewise.
1322
1323 2011-10-01  David S. Miller  <davem@davemloft.net>
1324
1325         * config/sparc/sparc.opt (VIS3): New option.
1326         * doc/invoke.texi: Document it.
1327         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
1328         not capable of such instructions.
1329         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1330         to 0x300 when TARGET_VIS3.
1331         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
1332         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
1333         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
1334         (V64N8, VASS): New mode iterators.
1335         (vis3_shift, vis3_addsub_ss): New code iterators.
1336         (vbits, vconstr): New mode attributes.
1337         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
1338         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
1339         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
1340         fmean16_vis, fpadd64_vis, fpsub64_vis,
1341         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
1342         VIS 3.0 instruction patterns.
1343         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
1344         default when targetting capable cpus.  TARGET_VIS3 implies
1345         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
1346         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
1347         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
1348         is ignored.
1349         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
1350         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
1351         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
1352         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
1353         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
1354         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
1355         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
1356         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
1357         * doc/extend.texi: Document new VIS 3.0 builtins.
1358
1359 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361         * ira-color.c (assign_hard_reg): Fix typo.
1362
1363 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
1364
1365         * doc/extend.texi: Add missing ','.
1366
1367 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1368
1369         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
1370         Enable -fmodulo-sched at -O2 and above.
1371         * config/c6x/c6x.md (doloop_end): New expander.
1372         (mvilc, sploop, spkernel, loop_end): New patterns.
1373         (loop_end with memory destination splitter): New.
1374         * config/c6x/c6x.c: Include "hw-doloop.h".
1375         (enum unitreqs): New.
1376         (unit_req_table): New typedef.
1377         (unit_reqs): New static variable.
1378         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
1379         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
1380         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
1381         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
1382         (struct c6x_sched_context): New member last_scheduled_iter0.
1383         (init_sched_state): Initialize it.
1384         (c6x_variable_issue): Update it.
1385         (sploop_max_uid_iter0): New static variable.
1386         (c6x_sched_reorder_1): Be careful about issuing sploop.
1387         (c6x_reorg): Call c6x_hwlooops before the final schedule.
1388
1389 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
1390
1391         PR target/50566
1392         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
1393         * config/avr/avr.c (avr_address_cost): Use it.
1394         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
1395         (avr_log_vadump): Unknown %-codes finish printing.
1396
1397 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1398
1399         PR inline-asm/50571
1400         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
1401         input constraints allow mem and not reg, pass true instead of
1402         false as second argument to maybe_fold_reference.
1403
1404         PR tree-optimization/46309
1405         * fold-const.c (make_range, merge_ranges): Remove prototypes.
1406         (make_range_step): New function.
1407         (make_range): Use it.
1408         * tree.h (make_range_step): New prototypes.
1409         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
1410         * tree-ssa-reassoc.c: Include diagnostic-core.h.
1411         (struct range_entry): New type.
1412         (init_range_entry, range_entry_cmp, update_range_test,
1413         optimize_range_tests): New functions.
1414         (reassociate_bb): Call optimize_range_tests.
1415
1416 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1417             Richard Guenther  <rguenther@suse.de>
1418
1419         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
1420         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
1421         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
1422         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
1423         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
1424         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
1425
1426 2011-09-30  Jan Beulich  <jbeulich@suse.com>
1427
1428         * lto-cgraph.c (output_cgraph): Remove processing of
1429         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
1430         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
1431         lto_input_toplevel_asms() instead.
1432         * lto-section-in.c (lto_section_name): Add "asm" entry.
1433         * lto-streamer-in.c (lto_input_toplevel_asms): New.
1434         * lto-streamer-out.c (lto_output_toplevel_asms): New.
1435         * lto-streamer.h (LTO_minor_version): Bump.
1436         (enum lto_section_type): Add LTO_section_asm.
1437         (struct lto_asm_header): New.
1438         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
1439         * tree-streamer.h (streamer_write_string_cst): Declare.
1440         * tree-streamer-out.c (write_string_cst): Rename to
1441         streamer_write_string_cst and make global. Handle incoming string
1442         being NULL.
1443         (streamer_write_tree_header): Adjust call to renamed function.
1444
1445 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1446
1447         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
1448         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
1449         modulo_last_stage): New static variables.
1450         (set_modulo_params, discard_delay_pairs_above): New functions.
1451         (struct delay_pair): New member stages.
1452         (htab_i2_traverse, htab_i1_traverse): New static functions.
1453         (record_delay_slot_pair): New arg stages.  All callers changed.
1454         Record it.
1455         (pair_delay): Take stages into account.
1456         (add_delay_dependencies): Don't do so for stage pairs.
1457         (struct sched_block_state): New member modulo_epilogue.
1458         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
1459         (unschedule_insns_until): Decrease modulo_insns_scheduled.
1460         Set HARD_DEP without using or.
1461         (resolve_dependencies): New static function.
1462         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
1463         If it is true, allow only insns with INSN_EXACT_TICK set.
1464         (schedule_block): Return bool, always true for normal scheduling,
1465         true or false depending on modulo scheduling success otherwise.
1466         Add bookkeeping for modulo scheduling, and call resolve_dependencies
1467         on everything left over after a modulo schedule.
1468         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
1469         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
1470         declarations.
1471         (set_modulo_params, discard_delay_pairs_above): Declare.
1472         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
1473         * doc/invoke.texi (--param): Document it.
1474
1475         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
1476         New arg modulo_scheduling.  All callers changed.  Move note handling
1477         code here from schedule_ebbs.
1478         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
1479         out of schedule_ebbs.
1480         (schedule_ebbs): Call them.  Remove note handling code moved to
1481         schedule_ebb.
1482         * sched-int.h (schedule_ebb, schedule_ebbs_init,
1483         schedule_ebbs_finish): Declare.
1484
1485 2011-09-30  Richard Guenther  <rguenther@suse.de>
1486
1487         PR middle-end/50574
1488         * tree-cfg.c (verify_gimple_comparison): Compare component
1489         mode sizes for vector comparisons.
1490
1491 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1492
1493         * ddg.c (autoinc_var_is_used_p): New function.
1494         (create_ddg_dep_from_intra_loop_link,
1495         add_cross_iteration_register_deps): Call it.
1496         * ddg.h (autoinc_var_is_used_p): Declare.
1497         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
1498         (sms_schedule): Handle instructions with REG_INC.
1499
1500 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1501
1502         * modulo-sched.c (generate_reg_moves): Skip instructions that
1503         do not set a register and verify no regmoves are created for
1504         !single_set instructions.
1505
1506 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1507
1508         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
1509         insns.
1510
1511 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1512
1513         PR target/50099
1514         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
1515         (qhs_zextenddi_op): New.
1516         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
1517         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
1518         Distinguish between ARM and Thumb2 states.
1519
1520 2011-09-30  David S. Miller  <davem@davemloft.net>
1521
1522         * config/sparc/sparc.opt (VIS2): New option.
1523         * doc/invoke.texi: Document it.
1524         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
1525         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
1526         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
1527         (define_attr type): New insn type 'edgen'.
1528         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
1529         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
1530         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
1531         patterns.
1532         * niagara.md: Handle edgen.
1533         * niagara2.md: Likewise.
1534         * ultra1_2.md: Likewise.
1535         * ultra3.md: Likewise.
1536         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1537         to 0x200 when TARGET_VIS2.
1538         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
1539         default when targetting capable cpus.  TARGET_VIS2 implies
1540         TARGET_VIS, clear and it when TARGET_FPU is disabled.
1541         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
1542         (sparc_expand_builtin): Fix predicate indexing when builtin returns
1543         void.
1544         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
1545         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
1546         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
1547         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
1548         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
1549         * doc/extend.texi: Document new VIS 2.0 builtins.
1550
1551 2011-09-29  Nick Clifton  <nickc@redhat.com>
1552             Bernd Schmidt  <bernds@codesourcery.com>
1553
1554         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
1555         * config/frv/frvend.c: Likewise.
1556         * config/frv/frv.c (frv_function_prologue): Move misplaced
1557         CALL_ARG_LOCATION notes back to their proper locations.
1558
1559 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1560
1561         PR target/50566
1562         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
1563         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
1564         from avr_rtx_costs.
1565         (avr_legitimate_address_p): Use avr_edump to print log information
1566         filtered by avr_log.
1567         (extra_constraint_Q): Ditto.
1568         (avr_legitimize_address): Ditto.
1569         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
1570         (final_prescan_insn): Use avr_log.rtx_costs as filter.
1571
1572 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
1573
1574         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
1575         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
1576         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
1577         NEON vector and structure modes to be tied.
1578
1579 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1580
1581         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
1582         forward declaration.
1583         (remove_duplicate_close_phi): Detect and repair creation of
1584         duplicate close-phis for a containing loop.
1585
1586 2011-09-27   Andi Kleen <ak@linux.intel.com>
1587
1588         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
1589         /dev/urandom.  Add getpid call.
1590         (compare_debug_dump_opt_spec_function): Drop getpid call.
1591
1592 2011-09-26   Andi Kleen <ak@linux.intel.com>
1593
1594         * toplev.c (init_local_tick): Try reading random seed
1595         from /dev/urandom.
1596
1597 2011-09-26   Andi Kleen <ak@linux.intel.com>
1598
1599         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
1600         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
1601         Handle numerical random seed.
1602         * lto-streamer.h (lto_file_decl_data): Change id to
1603         unsigned HOST_WIDE_INT.
1604         * toplev.c (random_seed): Add.
1605         (init_random_seed): Change for numerical random seed.
1606         (get_random_seed): Return as HOST_WIDE_INT.
1607         (set_random_seed): Crc32 existing string.
1608         * toplev.h (get_random_seed): Change to numercal return.
1609         * tree.c (get_file_function_name): Remove CRC. Handle
1610         numerical random seed.
1611
1612 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1613
1614         PR target/50566
1615         * config.gcc (extra_objs): Add avr-log.o for $target in:
1616         avr-*-rtems*, avr-*-*.
1617         * config/avr/t-avr (avr-log.o): New rule to compile...
1618         * config/avr/avr-log.c: ...this new file.
1619         * config/avr/avr.opt (mlog=): New option.
1620         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
1621         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
1622         (avr_log_set_avr_log): New prototype.
1623         (avr_log_t): New typedef.
1624         (avr_log): New declaration.
1625         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
1626
1627 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1628
1629         * expr.c (do_store_flag): Expand vector comparison by
1630         building an appropriate VEC_COND_EXPR.
1631         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
1632         (c_objc_common_truthvalue_conversion): Adjust.
1633         * tree-vect-generic.c (do_compare): Helper function.
1634         (expand_vector_comparison): Check if hardware supports
1635         vector comparison of the given type or expand vector piecewise.
1636         (expand_vector_operation): Treat comparison as binary
1637         operation of vector type.
1638         (expand_vector_operations_1): Adjust.
1639
1640 2011-09-29  Richard Guenther  <rguenther@suse.de>
1641
1642         * tree.c (build_opaque_vector_type): Make opaque vectors
1643         variant types of the corresponding non-opaque type.  Make
1644         sure to share opaque vector types properly.
1645
1646 2011-09-29  David S. Miller  <davem@davemloft.net>
1647
1648         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
1649         UNSPEC_ARRAY32): New unspec.
1650         (define_attr type): New type 'array'.
1651         (array{8,16,32}<P:mode>_vis): New patterns.
1652         * config/sparc/ultra1_2.md: Add reservations for 'array'.
1653         * config/sparc/ultra3.md: Likewise.
1654         * config/sparc/niagara.md: Likewise.
1655         * config/sparc/niagara2.md: Likewise.
1656         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
1657         array builtins.
1658         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
1659         __vis_array32): New.
1660         * doc/extend.texi: Document new VIS builtins.
1661
1662         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
1663         (VIS pixel-compare insn): Just use <gcond:name>.
1664
1665         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
1666         code iterator used, so just use <code>.  There are two mode iterators
1667         so explicitly use <GCM:gcm_name>.
1668
1669 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
1670
1671         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
1672         Darwin >= 9.
1673
1674 2011-09-28  David S. Miller  <davem@davemloft.net>
1675
1676         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
1677         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
1678         (UNSPEC_FCMP): New unspec.
1679         (gcond): New code iterator.
1680         (gcond_name): New code attr.
1681         (GCM): New mode iterator.
1682         (gcm_name): New mode attr.
1683         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
1684
1685 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
1686
1687         PR target/49486
1688         * config/sh/sh.md (negdi2): Move expansion into split to
1689         allow more combination options.  Add T_REG clobber.
1690         (abssi2): New expander.
1691         (*negdi2, *abssi2, *negabssi2): New insns.
1692         (cneg): Change from insn to insn_and_split.  Rename to
1693         negsi_cond.  Add alternative for non-SH4.
1694
1695 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
1696
1697         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
1698         (neon_move_hi_quad_<mode>): Likewise.
1699         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
1700
1701 2011-09-28  Nick Clifton  <nickc@redhat.com>
1702
1703         * config/rx/predicates.md (rx_minmax_operand): New predicate.
1704         Accepts immediates and a restricted subset of MEMs.
1705         * config/rx/rx.md (int_modes): New iterator.
1706         (smaxsi3, sminsi3): Delete and replace with...
1707         (smax<int_mode>3, smin<int_mode>3): New patterns.
1708         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
1709
1710 2011-09-28  Richard Guenther  <rguenther@suse.de>
1711
1712         PR middle-end/50460
1713         * fold-const.c (try_move_mult_to_index): Handle &a.array the
1714         same as &a.array[0].
1715
1716 2011-09-28  Kai Tietz  <ktietz@redhat.com>
1717
1718         * configure.ac: Add test for new section attribute
1719         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
1720         * config.in: Regenerated.
1721         * configure: Regenerated.
1722         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
1723         new section flag "e" for excluded sections, if supported.
1724         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
1725
1726 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1727
1728         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
1729         throughout file.
1730
1731 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1732
1733         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
1734         throughout file.
1735
1736 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
1737
1738         * output.h (SECTION_EXCLUDE): New macro.
1739         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
1740
1741 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1742
1743         * fwprop.c (forward_propagate_and_simplify): After checking
1744         reg/subreg combinations, check whether the modes are the same.
1745
1746 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1747             Richard Sandiford  <rdsandiford@googlemail.com>
1748
1749         * config/mips/mips.c (mips_add_cfa_restore): New function.
1750         (mips16e_save_restore_reg): Use it.
1751         (mips_restore_reg): Likewise.  Split double FPRs for
1752         REG_CFA_RESTORE notes.
1753
1754 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1755
1756         PR middle-end/50386
1757         PR middle-end/50326
1758         * tree-sra.c (build_ref_for_model): Use the type of the field as
1759         the type of the COMPONENT_REF.
1760
1761 2011-09-27  Jeff Law  <law@redhat.com>
1762
1763         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
1764         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
1765         (find_if_case_1): Use the probability of the THEN clause when
1766         determining if speculation is profitable.
1767         (find_if_case_2): Similarly for the ELSE clause.
1768
1769 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1770
1771         * common.opt: Add -foptimize-strlen option.
1772         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
1773         (tree-sssa-strlen.o): Add dependencies.
1774         * opts.c (default_options_table): Enable -foptimize-strlen
1775         by default at -O2 if not -Os.
1776         * passes.c (init_optimization_passes): Add pass_strlen
1777         after pass_object_sizes.
1778         * timevar.def (TV_TREE_STRLEN): New timevar.
1779         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
1780         * tree-pass.h (pass_strlen): Declare.
1781         * tree-ssa-strlen.c: New file.
1782         * c-decl.c (merge_decls): If compatible stpcpy prototype
1783         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
1784
1785 2011-09-27  Tom de Vries  <tom@codesourcery.com>
1786
1787         PR middle-end/43864
1788         * tree-ssa-tail-merge.c: New file.
1789         (struct same_succ_def): Define.
1790         (same_succ, const_same_succ): New typedef.
1791         (struct bb_cluster_def): Define.
1792         (bb_cluster, const_bb_cluster): New typedef.
1793         (struct aux_bb_info): Define.
1794         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
1795         (gvn_uses_equal): New function.
1796         (same_succ_print, same_succ_print_traverse, update_dep_bb)
1797         (stmt_update_dep_bb, local_def, same_succ_hash)
1798         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
1799         (same_succ_reset): New function.
1800         (same_succ_htab, same_succ_edge_flags)
1801         (deleted_bbs, deleted_bb_preds): New var.
1802         (debug_same_succ): New function.
1803         (worklist): New var.
1804         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
1805         (init_worklist, delete_worklist, delete_basic_block_same_succ)
1806         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
1807         (print_cluster, debug_cluster, update_rep_bb)
1808         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
1809         (all_clusters): New var.
1810         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
1811         (merge_clusters, set_cluster): New function.
1812         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
1813         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
1814         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
1815         (find_clusters_1, find_clusters): New function.
1816         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
1817         (update_bbs): New var.
1818         (apply_clusters): New function.
1819         (update_debug_stmt, update_debug_stmts): New function.
1820         (tail_merge_optimize): New function.
1821         tree-pass.h (tail_merge_optimize): Declare.
1822         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
1823         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
1824         (tree-ssa-tail-merge.o): New rule.
1825         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
1826         default at OPT_LEVELS_2_PLUS.
1827         * tree-ssa-sccvn.c (vn_valueize): Move to ...
1828         * tree-ssa-sccvn.h (vn_valueize): Here.
1829         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
1830         * common.opt (ftree-tail-merge): New switch.
1831         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
1832         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
1833         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
1834         (-ftree-tail-merge, max-tail-merge-comparisons)
1835         (max-tail-merge-iterations): New item.
1836
1837 2011-09-27  Jan Hubicka  <jh@suse.cz>
1838
1839         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
1840
1841 2011-09-27  Jan Hubicka  <jh@suse.cz>
1842
1843         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
1844         parameters passed by reference; handle loads from non-SSA scalars
1845         and update comments.
1846
1847 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1848
1849         PR rtl-optimization/50249
1850         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
1851         instead of opnum and type.  All callers changed.  Remove useless
1852         declaration.
1853         Search forward for other reloads of the same type for the same operand
1854         using the same register; if any are found, return false.
1855         (reload_regs_reach_end_p): Same argument changes; all callers changed.
1856
1857 2011-09-27  Andi Kleen  <ak@linux.intel.com>
1858             Jan Hubicka  <jh@suse.cz>
1859
1860         * doc/invoke.texi (ffat-lto-objects): Document.
1861         * toplev.c (compile_file): Do not output assembly when doing slim lto;
1862         Output __gnu_slim_lto when doing slim lto.
1863         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
1864         (cgraph_optimize): Return early when doing slim lto.
1865         * opts.c (finish_options): Complain about lack of linker plugin
1866         when doing slim lto.
1867         * common.opt (ffat-lto-objects): New.
1868
1869 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1870
1871         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
1872         between signed and unsigned.
1873
1874 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
1875
1876         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
1877         vectorization.
1878         (vectorizable_type_promotion): Likewise.
1879         (vect_analyze_stmt): Call vectorizable_type_demotion and
1880         vectorizable_type_promotion for basic blocks.
1881         (supportable_widening_operation): Don't assume loop vectorization.
1882         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
1883         basic blocks.  Update vectorization factor for basic block
1884         vectorization.
1885         (vect_analyze_slp_instance): Allow multiple types for basic block
1886         vectorization.  Recheck unrolling factor after construction of SLP
1887         instance.
1888
1889 2011-09-27  Richard Guenther  <rguenther@suse.de>
1890
1891         * tree-object-size.c (compute_object_sizes): Fix dumping of
1892         folded statement.
1893
1894 2011-09-27  Richard Guenther  <rguenther@suse.de>
1895
1896         PR tree-optimization/50363
1897         * tree-ssa-pre.c (create_expression_by_pieces): Handle
1898         pointer conversions in POINTER_PLUS_EXPRs properly.
1899
1900 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1901
1902         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
1903         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
1904         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
1905         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
1906         that produce subreg moves.  Define using VQX iterators.
1907
1908 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
1909
1910         * config/avr/avr.md (ashrqi3): Split alternative "n"
1911         into its remaining parts C03, C04, C05, C06, C07 and describe
1912         impact in CC by attribute "cc" appropriately.
1913         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
1914         by digging RTX.
1915
1916 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1917
1918         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
1919         from 3 x MAX_MACHINE_MODE.
1920         (CONSTM1_RTX): Define.
1921         * emit-rtl.c (const_tiny_rtx): Change into array of
1922         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
1923         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
1924         CONSTM1_RTX.
1925         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
1926         MODE_VECTOR_INT modes.
1927         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
1928         Optimize if one operand is CONSTM1_RTX.
1929         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
1930         into mask | x.
1931
1932 2011-09-26  David S. Miller  <davem@davemloft.net>
1933
1934         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
1935         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
1936         * config/sparc/visintrin.h: Update edge and pixel-compare
1937         intrinsics to return 'long' instead of 'int'.
1938         * doc/extend.texi: Update documentation to match.
1939         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
1940         flat, allow any instruction.  Otherwise, when V9 allow parallels
1941         which consist only of sets to registers outside of %o0 to %o5.
1942         (sparc_vis_init_builtins): Update VIS builtin types for edge
1943         and pixel-compare.
1944
1945         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
1946         is enabled, mark %gsr as global.
1947         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
1948         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
1949
1950         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
1951         which will now define __VIS and __VIS__ when -mvis is enabled.
1952         * config/sparc/t-sparc: Likewise.
1953         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
1954         and add t-sparc to tmake_file for all sparc targets.
1955         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
1956         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
1957
1958         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
1959         builtins for VIS vector addition and subtraction.
1960         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
1961         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
1962         __vis_fpsub32, __vis_fpsub32s): New.
1963         * doc/extend.texi: Document new VIS intrinsics.
1964
1965 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1966
1967         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
1968         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
1969         EQ/NE comparisons against +/-1 in the case of unused-after,
1970         non-ld-regs target.
1971
1972 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
1973
1974         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
1975         gctx.into_ssa after push_gimplify_context.
1976
1977         * gimple.c (gimple_build_call_valist): New function.
1978         * gimple.h (gimple_build_call_valist): New prototype.
1979         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
1980         (update_gimple_call): Likewise.
1981         (update_call_from_tree): Use finish_update_gimple_call.
1982         * tree-ssa-propagate.h (update_gimple_call): New prototype.
1983
1984 2011-09-26  Richard Guenther  <rguenther@suse.de>
1985
1986         PR tree-optimization/50472
1987         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
1988         volatile references.
1989
1990 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
1991
1992         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
1993         * target.def: (addr_space_subset_p): Likewise.
1994
1995 2011-09-26  Tom de Vries  <tom@codesourcery.com>
1996
1997         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
1998         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
1999         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
2000         of new var.
2001
2002 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2003
2004         PR target/50465
2005         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
2006         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
2007         output_reload_insisf.
2008         (adjust_len): Set default to "no".
2009         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
2010         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
2011         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
2012         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
2013         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
2014         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
2015         *lshrsi3_const): Set attribute "adjust_len".
2016         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
2017         (output_movsisf): Don't pass insn to output_reload_insisf.
2018         (adjust_insn_length): Handle new alternatives to adjust_len.
2019         Remove handling of ADJUST_LEN_YES.  Clean-up code.
2020
2021 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
2022
2023         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
2024         may_trap_p to detect loads that may trap of fault.
2025
2026 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
2027
2028         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
2029         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
2030         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
2031         prototype.
2032         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
2033         * config/avr/avr.c: Rename output_reload_insisf_1 to
2034         output_reload_in_const.
2035         (avr_popcount_each_byte): Handle SFmode, too.
2036         (output_reload_in_const): Change so it can handle HI loads, too.
2037         Use avr_popcount_each_byte to work out if scratch register must be
2038         created on the fly.
2039         (output_reload_inhi): Rewrite using output_reload_in_const and...
2040         (output_movhi): ...use it to print constants' loads.
2041         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
2042
2043 2011-09-25  David S. Miller  <davem@davemloft.net>
2044
2045         * config/sparc/constraints.md (C, P, Z): New constraints for
2046         const_doube, const_int, and const_vector "all ones" values.
2047         Make unused constraint letters comment match reality.
2048         * config/sparc/predicates.md (const_all_ones_operand,
2049         register_or_zero_or_all_ones_operand): New predicates.
2050         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
2051         as well as zero constants when VIS.
2052         (sparc_legitimate_constant_p): Likewise.
2053         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
2054         (movsf_insn): Likewise
2055         (movdi_insn_sp64): Add fone alternative.
2056         (movdf_insn_sp32_v9): Likewise.
2057         (movdf_insn_sp64): Likewise.
2058
2059         * configure.ac: Add feature check to make sure the assembler
2060         supports the FMAF, HPC, and VIS 3.0 instructions found on
2061         Niagara-3 and later cpus.
2062         * configure: Rebuild.
2063         * config.in: Likewise.
2064         * config/sparc/sparc.opt: New option '-mfmaf'.
2065         * config/sparc/sparc.md: Add float fused multiply-add patterns.
2066         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
2067         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
2068         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
2069         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
2070         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
2071         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
2072         disabled.
2073         (sparc_rtx_costs): Handle 'FMA'.
2074         * doc/invoke.texi: Document -mfmaf.
2075
2076 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
2077
2078         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
2079         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
2080         DECL_BY_REFERENCE parameters.
2081
2082 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2083
2084         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
2085         if there is no outgoing edge.
2086
2087         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
2088         integral types.
2089
2090 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2091
2092         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
2093         of vect_analyze_bb here.
2094         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
2095
2096 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2097
2098         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
2099         Allow not simple iv if analyzing basic block.
2100         (create_data_ref): Update call to dr_analyze_innermost.
2101         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
2102         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2103         * tree-predcom.c (find_looparound_phi): Likewise.
2104         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
2105
2106 2011-09-24  David S. Miller  <davem@davemloft.net>
2107
2108         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
2109         (SPARC_GSR_REG): Define.
2110         (FIXED_REGISTERS): Mark GSR as fixed.
2111         (CALL_USED_REGISTERS): Mark GSR as call used.
2112         (HARD_REGNO_NREGS): GSR is always 1 register.
2113         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
2114         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
2115         (REGISTER_NAMES): Add "%gsr".
2116         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
2117         (UNSPEC_WRGSR): New unspec.
2118         (GSR_REG): New constant.
2119         (type): Add new insn type 'gsr'.
2120         (fpack16_vis, fpackfix_vis, fpack32_vis,
2121         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
2122         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
2123         rdgsr_v8plus): New expanders and insns.
2124         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
2125         using patterns which show that this is a plus in addition to a
2126         modification of GSR_REG, instead of an unspec.
2127         * config/sparc/ultra1_2.md: Handle 'gsr'.
2128         * config/sparc/ultra3.md: Likewise.
2129         * config/sparc/niagara.md: Likewise.
2130         * config/sparc/niagara2.md: Likewise.
2131         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
2132         end of table.
2133         (sparc_option_override): Make -mvis imply -mv8plus.
2134         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
2135         for %gsr.
2136         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
2137         __builtin_vis_read_gsr.
2138         (sparc_expand_buildin): Handle builtins that take one argument and
2139         return void.
2140         (sparc_fold_builtin): Never fold writes to %gsr.
2141         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
2142         * doc/extend.texi: Document new VIS intrinsics.
2143
2144 2011-09-23  Jan Hubicka  <jh@suse.cz>
2145
2146         * ipa-inline-transform.c (inline_call): Add comment.
2147         * ipa-inline.h (inline_param_summary): New structure and vector.
2148         (struct inline_edge_summary): Add param field.
2149         * ipa-inline-analysis.c (CHANGED): New constant.
2150         (add_clause): Handle CHANGED and NOT_CONSTANT.
2151         (predicate_probability): New function.
2152         (dump_condition): Dump CHANGED predicate.
2153         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
2154         of unknown function wide invariant.
2155         (evaluate_conditions_for_edge): Handle change probabilities.
2156         (inline_edge_duplication_hook): Copy param summaries.
2157         (inline_edge_removal_hook): Free param summaries.
2158         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
2159         sizes; dump param summaries.
2160         (will_be_nonconstant_predicate): Use CHANGED predicate.
2161         (record_modified_bb_info): New structure.
2162         (record_modified): New function.
2163         (param_change_prob): New function.
2164         (estimate_function_body_sizes): Compute param summaries.
2165         (estimate_edge_size_and_time): Add probability argument.
2166         (estimate_node_size_and_time): Add inline_param_summary argument;
2167         handle predicate probabilities.
2168         (remap_predicate): Fix formating.
2169         (remap_edge_change_prob): New function.
2170         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
2171         (remap_edge_predicates): ... this one.
2172         (inline_merge_summary): Remap edge summaries; handle predicate
2173         probabilities; remove param summaries after we are done.
2174         (do_estimate_edge_time): Update.
2175         (do_estimate_edge_growth): Update.
2176         (read_inline_edge_summary): Read param info.
2177         (inline_read_summary): Fix formating.
2178         (write_inline_edge_summary): Write param summaries.
2179
2180 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2181
2182         * config/i386/i386.c (ix86_print_operand): Handle %~.
2183         (ix86_print_operand_punct_valid_p): Return true also for '~'.
2184         * config/i386/sse.md (i128): New mode_attr.
2185         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
2186         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
2187         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
2188         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
2189         patterns, use "<sseinsnmode>" for "mode" attribute.
2190         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
2191         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
2192         %~128 in the patterns, use "OI" for "mode" attribute.
2193
2194 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2195
2196         PR target/50447
2197         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
2198         "tstsi", "compare".
2199         (*cmpqi_sign_extend): Use s8_operand.
2200         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
2201         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
2202         prototypes.
2203         (out_tsthi, out_tstsi): Remove prototypes.
2204         (avr_out_tsthi, avr_out_tstsi): New prototypes.
2205         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
2206         (avr_asm_len): Negative length now sets *plen to -length.
2207         (compare_sign_p): Return bool instead of int.
2208         (compare_diff_p, compare_eq_p): Ditto and make static.
2209         (avr_out_tsthi): New function.
2210         (avr_out_tstsi): New function.
2211         (avr_out_compare): New function.
2212         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
2213         ADJUST_LEN_COMPARE.
2214
2215 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2216
2217         PR target/50447
2218         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
2219         (addsi3): Rewrite using QI scratch register.  Adjust text
2220         peepholes using plus:SI.
2221         (*addsi3_zero_extend.hi): New insn.
2222         (*subsi3_zero_extend.hi): New insn.
2223         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
2224         (*subsi3_zero_extend): Ditto.
2225         (subsi3): Change predicate #2 to register_operand.
2226         * config/avr/avr-protos.h (avr_out_plus): New prototype.
2227         (avr_out_plus_1): New static function.
2228         (avr_out_plus): New function.
2229         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
2230
2231 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2232
2233         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
2234         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
2235
2236 2011-09-23  Ian Lance Taylor  <iant@google.com>
2237
2238         * godump.c (go_define): Treat a single character in single quotes,
2239         or a string, as an operand.
2240
2241 2011-09-23  Martin Jambor  <mjambor@suse.cz>
2242
2243         * ipa-prop.h (jump_func_type): Updated comments.
2244         (ipa_known_type_data): New type.
2245         (ipa_jump_func): Use it to describe known type jump functions.
2246         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
2247         reflect the new known type jump function contents.
2248         (compute_known_type_jump_func): Likewise.
2249         (combine_known_type_and_ancestor_jfs): Likewise.
2250         (try_make_edge_direct_virtual_call): Likewise.
2251         (ipa_write_jump_function): Likewise.
2252         (ipa_read_jump_function): Likewise.
2253         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
2254         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
2255         (propagate_accross_jump_function): Likewise.
2256
2257 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2258
2259         PR target/50446
2260         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
2261         (rotlqi3_4): Turn insn into expander.
2262         (*rotlqi3): New insn.
2263         (rotlhi3, rotlsi3): Support rotate left/right by 1.
2264         (*rotlhi2.1, *rotlhi2.15): New insns.
2265         (*rotlsi2.1, *rotlsi2.31): New insns.
2266         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
2267
2268 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
2269
2270         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
2271
2272 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2273
2274         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
2275
2276 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2277
2278         * reload.c (find_reloads): Set operand_mode to Pmode for address
2279         operands consisting of just a CONST_INT.
2280
2281 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
2282
2283         PR target/50482
2284         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2285         blendv, force op_true to register if it doesn't satisfy
2286         nonimmediate_operand predicate.
2287
2288 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
2289
2290         PR middle-end/50113
2291         PR middle-end/50061
2292         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
2293         get the locate.where_pad value for register-only arguments.
2294         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
2295         (arm_pad_reg_upward): Handle null types.
2296
2297 2011-09-22  Jan Hubicka  <jh@suse.cz>
2298
2299         * ipa-inline-analysis.c: Fix overly long lines.
2300
2301 2011-09-22  Jan Hubicka  <jh@suse.cz>
2302
2303         * ipa-inline-transform.c (inline_call): Always update jump functions
2304         after inlining.
2305         * ipa-inline.c (ipa_inline): Likewise; do not call
2306         ipa_create_all_structures_for_iinln.
2307         (ipa_inline): Always free jump functions.
2308         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
2309         (remap_edge_predicates): Fix pasto.
2310         (inline_merge_summary): Remove nlined edge predicate; remove hack.
2311         (inline_analyze_function): Always initialize jump functions.
2312         (inline_generate_summary): Likewise.
2313         (inline_write_summary): Always write jump functions when ipa-cp
2314         is not doing that.
2315         (inline_read_summary): Always read jump functions when ipa-cp
2316         is not doing that.
2317         * ipa-prop.c (iinlining_processed_edges): Remove.
2318         (update_indirect_edges_after_inlining): Do not use
2319         iinlining_processed_edges; instead set param_index to -1.
2320         (propagate_info_to_inlined_callees): Only try to indirect inlining
2321         when asked to do so; update jump functions of indirect calls, too;
2322         remove jump functions of the inlined edge.
2323         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
2324         (ipa_create_all_structures_for_iinln): Remove.
2325         (ipa_free_all_structures_after_iinln): Do not free
2326         iinlining_processed_edges.
2327         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
2328
2329 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
2330
2331         * config/arm/predicates.md (expandable_comparison_operator): New
2332         predicate, extracted from...
2333         (arm_comparison_operator): ...here.
2334         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
2335         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
2336         (movdfcc): Use expandable_comparison_operator.
2337
2338 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
2339
2340         PR target/50447
2341         PR target/50465
2342         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
2343         (avr_popcount_each_byte): New prototype.
2344         * config/avr/avr.c (avr_popcount): New static function.
2345         (avr_popcount_each_byte): New function.
2346         (avr_out_bitop): New function.
2347         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
2348         avr_out_bitop.  Cleanup code.
2349         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
2350         (Ca4, Co4, Cx4): New constraints.
2351         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
2352         alternative.
2353         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
2354         (andsi3, iorsi3, xorsi3): Ditto.
2355         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
2356
2357 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
2358
2359         PR tree-optimization/50451
2360         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
2361         constant operands in reduction.
2362         (vect_get_slp_defs): Don't create vector operand for NULL scalar
2363         operand.
2364
2365 2011-09-22  David S. Miller  <davem@davemloft.net>
2366
2367         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
2368         fpack16, fpack32, fpackfix as const.
2369
2370         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
2371         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
2372         constants.  Use them everywhere.
2373
2374 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
2375
2376         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
2377         Added AND special case.  Adapted comments.
2378         (sh_rtx_costs): Added XOR and IOR case.
2379
2380 2011-09-21  Jan Hubicka  <jh@suse.cz>
2381
2382         * ipa-inline-analsis.c (compute_inline_parameters): Set
2383         cfun and current_function_decl.
2384
2385 2011-09-21  Jan Hubicka  <jh@suse.cz>
2386
2387         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
2388         handled components in parameter of builtin_constant_p.
2389         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
2390
2391 2011-09-21  Jan Hubicka  <jh@suse.cz>
2392
2393         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
2394         * ipa-inline.h (estimate_edge_time): Fix pasto.
2395         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
2396
2397 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2398
2399         * config/i386/i386.c (ix86_expand_sse_movcc): Use
2400         blendvps, blendvpd and pblendvb if possible.
2401
2402 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
2403
2404         PR target/50464
2405         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
2406         operand 1 predicate to register_operand and operand 2 predicate
2407         to nonimmediate_operand.
2408         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2409         xop_pcmov, force op_true to register.  Also, force op_false to
2410         register if it doesn't satisfy nonimmediate_operand predicate.
2411
2412 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
2413
2414         * config/i386/bmi2intrin.h (_mulx_u64): New.
2415         (_mulx_u32): Ditto.
2416
2417 2011-09-21  Jan Hubicka  <jh@suse.cz>
2418
2419         PR tree-optimization/50433
2420         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
2421         Use get_base_address.
2422
2423 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2424
2425         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
2426         nonimmediate_operand instead of register_operand predicate for operands
2427         1 and 2, force them into registers if expanding them as comparison.
2428         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
2429         V8HImode force into register just operand 1.
2430
2431 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2432
2433         PR target/45099
2434         * config/avr/avr.c (avr_function_arg_advance): Change error to
2435         warning if a fixed register is needed as function argument.
2436
2437 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2438
2439         PR target/50449
2440         PR target/50465
2441         * config/avr/avr.md (adjust_len): New insn attribute.
2442         (*reload_insi, *reload_insf): Use it.
2443         (*movsi, *movsf): Use new interface of output_movsisf.
2444         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2445         * config/avr/avr.c (output_movsisf): Ditto.
2446         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
2447         lengths of insns *reload_insi, *reload_insf.
2448         (output_reload_insisf_1): New static function.
2449         (output_reload_insisf): Use it.
2450
2451 2011-09-21  David S. Miller  <davem@davemloft.net>
2452
2453         * config/sparc/sparc.c (def_builtin): Change from macro into function.
2454         (def_builtin_const): New.
2455         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
2456         other than alignaddr and falignaddr.
2457
2458         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
2459         UNSPEC_FCMPEQ): New unspec codes.
2460         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
2461         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
2462         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
2463         new pixel compare VIS patterns.
2464         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
2465         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
2466         __vis_fcmpeq16, __vis_fcmpeq32): New.
2467         * doc/extend.texi: Document new pixel compare VIS intrinsics.
2468
2469 2011-09-21  Tom de Vries  <tom@codesourcery.com>
2470
2471         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
2472
2473 2011-09-20  David S. Miller  <davem@davemloft.net>
2474
2475         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
2476         (aligneddrl<P:mode>_vis): New pattern.
2477         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2478         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
2479         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
2480         alignaddrl insn, and adjust edge operations for updated types.
2481         * config/sparc/visintrin.h: Likewise.
2482         * doc/extend.texi: Make typing in VIS documentation match reality.
2483
2484 2011-09-20  Terry Guo  <terry.guo@arm.com>
2485
2486         * config/arm/arm-arches.def: Add armv6s-m.
2487         * config/arm/arm-tables.opt: Regenerate.
2488
2489 2011-09-20  Wei Guozhi  <carrot@google.com>
2490
2491         PR rtl-optimization/49452
2492         * postreload.c (reload_combine): Invalidate use information when across
2493         volatile insn.
2494
2495 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
2496
2497         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
2498         Remove maintenance overhead.
2499         (haifa_sched_init, sched_finish): Update.
2500
2501 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2502
2503         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
2504         to calculate unit, prefix_rep and prefix_data16 attributes.
2505         (*mov<mode>_internal): Ditto for unit attribute.
2506         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
2507         (*movv2sf_internal): Ditto.
2508         * config/i386/sse.md (VI1248_256): Remove mode iterator.
2509         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
2510         (*avx2_eq<mode>3): Ditto.
2511         (avx2_gt<mode>3): Ditto.
2512
2513 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         * config/i386/i386.md (maxmin): New code iterator.
2516         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
2517         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
2518         code iterator.
2519         (*avx2_<maxmin:code><mode>3): Macroize isn from
2520         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
2521         maxmin code iterator.
2522         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
2523         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
2524         <umaxmin:code>v16qi3.
2525
2526 2011-09-19  Alan Modra  <amodra@gmail.com>
2527             Michael Meissner  <meissner@linux.vnet.ibm.com>
2528
2529         PR target/50341
2530         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
2531         split the load of the indirect function's TOC from the call to
2532         prevent the compiler from moving the load of the new TOC above
2533         code that references the current function's TOC.
2534         (call_indirect_aix<ptrsize>_internal): Ditto.
2535         (call_indirect_aix<ptrsize>_nor11): Ditto.
2536         (call_indirect_aix<ptrsize>_internal2): Ditto.
2537         (call_value_indirect_aix<ptrsize>): Ditto.
2538         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2539         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2540         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2541
2542 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
2543
2544         * config/i386/sse.md (*sse4_1_extractps): Change into
2545         define_insn_and_split, add =x 0 n and =x x n alternatives
2546         and split them after reload.
2547
2548 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2549
2550         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
2551
2552 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2553
2554         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
2555
2556 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
2557
2558         PR tree-optimization/50413
2559         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
2560         a basic block if one of its data-refs can't be analyzed.
2561
2562 2011-09-19  Paul Brook  <paul@codesourcery.com>
2563
2564         * config/arm/predicates.md (shift_amount_operand): Check constant
2565         shift count is in range.
2566         (const_shift_operand): Remove.
2567
2568 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2569             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
2570
2571         PR target/50091
2572         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
2573         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
2574
2575 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2576
2577         * config/i386/bmiintrin.h: Remove tmp.
2578         * config/i386/tbmintrin.h: Likewise.
2579
2580 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2581
2582         PR tree-optimization/50414
2583         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
2584         MIN_EXPR.
2585
2586 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2587
2588         PR tree-optimization/50412
2589         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
2590         acceses that require epilogue loop if vectorizing outer loop.
2591
2592 2011-09-17  David S. Miller  <davem@davemloft.net>
2593
2594         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
2595         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
2596         New unspecs.
2597         (define_attr type): New type 'edge'.
2598         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2599         edge32l_vis): New patterns.
2600         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
2601         * config/sparc/ultra3.md: Likewise.
2602         * config/sparc/niagara.md: Likewise.
2603         * config/sparc/niagara2.md: Likewise.
2604         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
2605         builtins for VIS edge instructions.
2606         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
2607         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
2608         intrinsics.
2609         (__v8qi, __v4qi): Make unsigned.
2610         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
2611         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
2612         __vis_fpack32): Fix types.
2613         * doc/extend.texi: Document new 'edge' VIS intrinsics.
2614
2615         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
2616         divide costs.
2617         (niagara3_costs): New.
2618         (sparc_option_override): Use it.
2619         * gcc/config/sparc/niagara2.md: Adjust with more accurate
2620         Niagara-3 reservations.
2621
2622 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
2623
2624         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
2625         (sse2_avx, sseinsnmode): Add V2TI.
2626         (REDUC_SMINMAX_MODE): New mode iterator.
2627         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
2628         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
2629         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
2630         (sse2_lshrv1ti3): Rename to...
2631         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
2632         iterator.  Move before umaxmin expanders.
2633         * config/i386/i386.h (VALID_AVX256_REG_MODE,
2634         SSE_REG_MODE_P): Accept V2TImode.
2635         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
2636         V16HImode, V8SImode and V4DImode.
2637
2638         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
2639         and V4DImode.
2640         (ix86_build_signbit_mask): Likewise.
2641         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
2642         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
2643         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
2644         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
2645         (<code><mode>3) ... this.
2646         (avx2_<code><mode>3 smaxmin expand): Rename to...
2647         (<code><mode>3) ... this.
2648         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
2649         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
2650         VI8_AVX2 mode iterator.
2651         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
2652         VI8_AVX2 mode iterator.
2653         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
2654         New expanders.
2655
2656 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
2657
2658         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
2659         throughout file.
2660
2661 2011-09-16  David S. Miller  <davem@davemloft.net>
2662
2663         * config/sparc/visintrin.h: New file.
2664         * config.gcc: Add it to extra_headers on sparc.
2665
2666 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
2667
2668         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
2669         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
2670         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
2671         reduc_smin_v4sf): Adjust callers.
2672         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
2673         New expanders.
2674
2675         * config/i386/sse.md (vec_extract_hi_<mode>,
2676         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
2677         vextracti128 instead of vextractf128 for -mavx2 and
2678         integer vectors.  For V4DFmode fix up mode attribute.
2679         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
2680         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
2681         instead of V8SF mode attribute.
2682         (avx2_extracti128): Change into define_expand.
2683         * config/i386/i386.c (ix86_expand_vector_extract): Handle
2684         32-byte vector modes if TARGET_AVX.
2685
2686 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2687
2688         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
2689         (umulqi3_highpart, smulqi3_highpart): Ditto.
2690         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
2691         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
2692         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
2693
2694 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2695
2696         PR target/50358
2697         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
2698         (*maddqi4, *maddqi4.const): New insns.
2699         (*msubqi4, *msubqi4.const): New insns.
2700         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
2701         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
2702         HImode by 1 in the case of multiplying with a CONST_INT.
2703         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
2704
2705 2011-09-15   Jan Hubicka  <jh@suse.cz>
2706
2707         PR lto/50430
2708         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
2709         error_mark_node in the DECL_INITIAL of vtable.
2710
2711 2011-09-15   Diego Novillo  <dnovillo@google.com>
2712
2713         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
2714         @SYSROOT_CFLAGS_FOR_TARGET@.
2715         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
2716         * configure: Regenerate.
2717         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
2718         Remove setting of GCC_UNDER_TEST.
2719
2720 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
2721
2722         * config/i386/i386.c (output_fp_compare): Return %v prefixed
2723         instruction mnemonics for TARGET_AVX.
2724
2725         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
2726         "type" attribute calculation.
2727         (*movdf_internal): Ditto.
2728         (*movsf_internal): Ditto.
2729
2730 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
2731
2732         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
2733
2734 2011-09-15  Jason Merrill  <jason@redhat.com>
2735
2736         PR c++/50361
2737         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
2738
2739 2011-09-15  Jan Hubicka  <jh@suse.cz>
2740
2741         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
2742         simplify obviously true clauses.
2743         (and_predicates, or_predicates): Add conditions parameter.
2744         (inline_duplication_hoook): Update.
2745         (mark_modified): New function.
2746         (unmodified_parm): New function.
2747         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
2748         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
2749         Use unmodified_parm.
2750         (estimate_function_body_sizes): Update.
2751         (remap_predicate): Update.
2752
2753 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
2754
2755         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
2756         read-after-read dependencies in basic block SLP.
2757
2758 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2759
2760         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
2761         throughout file.
2762
2763 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2764
2765         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
2766         throughout file.
2767
2768 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2769
2770         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
2771         throughout file.
2772
2773 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2774
2775         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
2776         throughout file.
2777         * config/rs6000/constraints.md: Likewise.
2778
2779 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2780
2781         * config/microblaze/microblaze.md: Use match_test rather than
2782         eq/ne symbol_ref throughout file.
2783
2784 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2785
2786         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
2787         throughout file.
2788
2789 2011-09-14  Tom de Vries  <tom@codesourcery.com>
2790
2791         PR middle-end/50251
2792         * explow.c (emit_stack_restore): Set crtl->need_drap if
2793         stack_restore is emitted.
2794
2795 2011-09-14  Julian Brown  <julian@codesourcery.com>
2796
2797         * config/arm/arm.c (arm_override_options): Add unaligned_access
2798         support.
2799         (arm_file_start): Emit attribute for unaligned access as appropriate.
2800         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
2801         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
2802         (insv, extzv): Add unaligned-access support.
2803         (extv): Change to expander. Likewise.
2804         (extzv_t1, extv_regsi): Add helpers.
2805         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
2806         (unaligned_storesi, unaligned_storehi): New.
2807         (*extv_reg): New (previous extv implementation).
2808         * config/arm/arm.opt (munaligned_access): Add option.
2809         * config/arm/constraints.md (Uw): New constraint.
2810         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
2811         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
2812         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
2813         volatile accesses when -fstrict-volatile-bitfields is in effect.
2814         (extract_bit_field_1): Likewise.
2815
2816 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
2817
2818         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
2819         a scalar integer before applying integer-only optimisations to
2820         inner arithmetic.
2821
2822 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
2823
2824         * config/mips/mips.c (mips_expand_epilogue): Generate a
2825         simple_return only if the return address is in r31.
2826
2827 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2828
2829         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
2830         NULL for a jump that is a cc0 insn, pick the previous insn for
2831         move_before.
2832
2833 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2834
2835         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
2836         throughout file.
2837
2838 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2839
2840         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
2841         throughout file.
2842
2843 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2844
2845         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
2846         symbol_ref throughout file.
2847
2848 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2849
2850         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
2851         throughout file.
2852
2853 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2854
2855         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
2856         throughout file.
2857
2858 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2859
2860         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
2861         throughout file.
2862         * config/arm/neon.md: Likewise.
2863         * config/arm/vfp.md: Likewise.
2864         * config/arm/thumb2.md: Likewise.
2865         * config/arm/cortex-m4.md: Likewise.
2866
2867 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
2868
2869         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
2870         define_insn patterns for combine.
2871
2872 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
2873
2874         * reorg.c: Always define make_return_insns.
2875
2876 2011-09-13  Jan Hubicka  <jh@suse.cz>
2877
2878         PR other/49533
2879         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
2880
2881 2011-09-13  Jan Hubicka  <jh@suse.cz>
2882
2883         PR other/49533
2884         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
2885
2886 2011-09-13  Paul Brook  <paul@codesourcery.com>
2887
2888         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2889         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
2890         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
2891         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
2892         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
2893         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
2894         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
2895         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
2896         enabling unwind tables.
2897         (c6x_debug_unwind_info): New function.
2898         (TARGET_ARM_EABI_UNWINDER): Define.
2899         (TARGET_DEBUG_UNWIND_INFO): Define.
2900         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
2901         (TARGET_EXTRA_CFI_SECTION): Remove.
2902         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
2903         * ginclude/unwind-arm-common.h: New file.
2904
2905 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
2906
2907         PR target/50358
2908         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
2909         * config/avr/avr.md: (extend_s): New code attribute.
2910         (mul_r_d): New code attribute.
2911         (*maddqihi4, *umaddqihi4): New insns.
2912         (*msubqihi4, *umsubqihi4): New insns.
2913         (*usmaddqihi4, *sumaddqihi4): New insns.
2914         (*usmsubqihi4, *susubdqihi4): New insns.
2915         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
2916         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
2917         (*umsubqihi4.uconst.ashift): New insn-and-split.
2918         (*msubqihi4.sconst.ashift): New insn-and-split.
2919         (*sumaddqihi4.uconst): New insn-and-split.
2920         (*sumsubqihi4.uconst): New insn-and-split.
2921         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
2922         PLUS:HI and MINUS:HI.
2923
2924 2011-09-13  Revital Eres  <revital.eres@linaro.org>
2925
2926         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
2927         (optimize_sc): Adjust call to remove_node_from_ps.
2928         (sms_schedule): Add print info.
2929
2930 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2931
2932         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
2933         flags specially.
2934
2935 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2936
2937         PR bootstrap/50010
2938         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
2939         NOTE_INSN_CFI notes, with the exception of
2940         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2941
2942 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2943             Richard Sandiford  <rdsandiford@googlemail.com>
2944
2945         * config/mips/mips.c (mips_epilogue): New structure.
2946         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
2947         restoring registers.
2948         (mips_epilogue_emit_cfa_restores): New function.
2949         (mips_epilogue_set_cfa): Likewise.
2950         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
2951         the current CFA register from the stack, redefine the CFA in terms
2952         of the stack pointer.
2953         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
2954         to the epilogue instructions.
2955
2956 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
2957
2958         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
2959         argument.
2960         (mips16e_build_save_restore): Update accordingly.
2961
2962 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2963
2964         PR rtl-optimization/50212
2965         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2966         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
2967
2968         PR debug/50299
2969         * calls.c (load_register_parameters): Use use_reg_mode instead
2970         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
2971         entry.
2972         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
2973         for stack CALL_INSN_FUNCTION_USAGE uses.
2974         * expr.h (use_reg_mode): New prototype.
2975         (use_reg): Changed into inline around use_reg_mode.
2976         * expr.c (use_reg): Renamed to...
2977         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
2978         mode to that mode instead of VOIDmode.
2979         * var-tracking.c (prepare_call_arguments): Don't track parameters
2980         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
2981         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
2982         EXPR_LIST mode.
2983
2984 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
2985
2986         PR target/43746
2987         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
2988         (progmem_section): New Variable.
2989         (avr_asm_init_sections): Initialize it.
2990         (TARGET_ASM_SELECT_SECTION): Define to...
2991         (avr_asm_select_section): ... this new Function.
2992         (avr_replace_prefix): New Function.
2993         (avr_asm_function_rodata_section): Use it.
2994         (avr_insert_attributes): Don't add section attribute for PROGMEM.
2995         (avr_section_type_flags): Use avr_progmem_p instead of section
2996         name to detect if object is in PROGMEM.
2997         (avr_asm_named_section): Set section name prefix for objects in
2998         PROGMEM.
2999
3000 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
3001
3002         PR bootstrap/50352
3003         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
3004         sprintf format string.
3005
3006 2011-09-12  Richard Guenther  <rguenther@suse.de>
3007
3008         PR tree-optimization/50343
3009         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
3010         that the reduction is over an SSA name before checking its definition.
3011
3012 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3013
3014         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
3015         throughout file.
3016
3017 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
3018
3019         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
3020         throughout file.
3021         * config/mips/sb1.md: Likewise.
3022         * config/mips/predicates.md: Replace (match_test "!...")
3023         with (not (match_test "..."))
3024         * config/mips/constraints.md: Likewise.
3025
3026 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
3027
3028         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
3029         * config/arm/arm-tables.opt: Regenerate.
3030         * config/arm/arm-tune.md: Regenerate.
3031         * config/arm/arm.c (arm_file_start): Output .arch directive when
3032         user passes -mcpu=generic-*.
3033         (arm_issue_rate): Add genericv7a support.
3034         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
3035         (ASM_CPU_SPEC): New define.
3036         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
3037         * config/arm/semi.h (ASM_SPEC): Likewise.
3038         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
3039         and -mtune=generic-*.
3040
3041 2011-09-09  Richard Guenther  <rguenther@suse.de>
3042
3043         PR tree-optimization/50328
3044         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
3045         constant or default-def operand.
3046
3047 2011-09-09  Richard Guenther  <rguenther@suse.de>
3048
3049         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
3050         last statement.
3051
3052 2011-09-09  Richard Guenther  <rguenther@suse.de>
3053
3054         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
3055         instead of a statement.
3056         * gimple-fold.c (fold_stmt_inplace): Likewise.
3057         * sese.c (graphite_copy_stmts_from_block): Adjust.
3058         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3059         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
3060         fold_stmt.
3061         (forward_propagate_addr_into_variable_array_index): Likewise.
3062         (forward_propagate_addr_expr_1): adjust.
3063         (associate_plusminus): Likewise.
3064         (ssa_forward_propagate_and_combine): Likewise.
3065         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
3066         (execute_cse_reciprocals): Likewise.
3067         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
3068
3069 2011-09-09  Nick Clifton  <nickc@redhat.com>
3070
3071         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
3072         Return a positive value to indicate that the bits at the
3073         bottom of the register should be cleared.
3074
3075 2011-09-09  Richard Guenther  <rguenther@suse.de>
3076
3077         * tree-ssa-operands.c (swap_tree_operands): Always adjust
3078         existing operand positions.
3079
3080 2011-09-09  Richard Guenther  <rguenther@suse.de>
3081
3082         PR middle-end/50333
3083         * tree-data-ref.c (split_constant_offset): Do not try to handle
3084         ternary ops.
3085
3086 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
3087
3088         PR tree-optimization/50318
3089         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
3090         typo in use of mult_rhs1 and mult_rhs2.
3091
3092 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
3093
3094         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
3095         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
3096
3097 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
3098
3099         * config/arm/arm.md (push_multi): Emit predicates.
3100         (push_fp_multi): Likewise.
3101         * config/arm/arm.c (vfp_output_fstmd): Likewise.
3102
3103 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
3104
3105         PR c++/33255 - Support -Wunused-local-typedefs warning
3106         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
3107         (pushdecl): Use the new record_locally_defined_typedef.
3108         (store_parm_decls): Allocate cfun->language.
3109         (finish_function): Use the new maybe_warn_unused_local_typedefs,
3110         and free cfun->language.
3111         (c_push_function_context): Allocate cfun->language here only if needed.
3112         (c_pop_function_context): Likewise, mark cfun->language
3113         for collection only when it should be done.
3114         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
3115         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
3116         maybe_record_local_typedef_use.
3117         * doc/invoke.texi: Update documentation for
3118         -Wunused-local-typedefs.
3119
3120 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
3121
3122         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
3123         (ix86_avoid_lea_for_add): Likewise.
3124         (ix86_avoid_lea_for_addr): Likewise.
3125         (ix86_split_lea_for_addr): Likewise.
3126
3127         * config/i386/i386.c (LEA_MAX_STALL): New.
3128         (increase_distance): Likewise.
3129         (insn_defines_reg): Likewise.
3130         (insn_uses_reg_mem): Likewise.
3131         (distance_non_agu_define_in_bb): Likewise.
3132         (distance_agu_use_in_bb): Likewise.
3133         (ix86_lea_outperforms): Likewise.
3134         (ix86_ok_to_clobber_flags): Likewise.
3135         (ix86_avoid_lea_for_add): Likewise.
3136         (ix86_avoid_lea_for_addr): Likewise.
3137         (ix86_split_lea_for_addr): Likewise.
3138         (distance_non_agu_define): Search in pred BBs added.
3139         (distance_agu_use): Search in succ BBs added.
3140         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
3141         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
3142         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
3143
3144         * config/i386/i386.md: Split added to transform non destructive
3145         add into move and add.
3146         (lea_1): transformed into insn_and_split to avoid AGU stalls.
3147         (lea<mode>_2): Likewise.
3148
3149 2011-09-08  Martin Jambor  <mjambor@suse.cz>
3150
3151         PR tree-optimization/50287
3152         * ipa-split.c (split_function): Do not create SSA names for
3153         non-gimple-registers.
3154
3155 2011-09-08  Richard Guenther  <rguenther@suse.de>
3156
3157         PR tree-optimization/19831
3158         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
3159         skip builtins with vdefs that do not really store something.
3160         (propagate_necessity): For calls to free that we can associate
3161         with an allocation function do not mark the freed pointer
3162         definition necessary.
3163         (eliminate_unnecessary_stmts): Remove a call to free if
3164         the associated call to an allocation function is not necessary.
3165
3166 2011-09-08  Richard Guenther  <rguenther@suse.de>
3167
3168         PR tree-optimization/19831
3169         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
3170         allocation functions as necessary.
3171
3172 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
3173
3174         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
3175         cut from ...
3176         (darwin_default_min_version): Amended to provide defaults
3177         for the cross directory case.
3178         (darwin_driver_init): call darwin_default_min_version unconditionally.
3179         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
3180         * config/darwin9.h: Likewise.
3181         * config/darwin10.h: Likewise.
3182         * config/rs6000/darwin7.h: Likewise.
3183
3184 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
3185
3186         PR target/50310
3187         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
3188         code early if TARGET_AVX.
3189         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
3190
3191 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3192
3193         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
3194         duplicates.
3195
3196         PR target/50310
3197         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
3198         "mode" attribute computation.
3199
3200 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3201
3202         * regrename.c (struct du_head): Make nregs signed.
3203         (closed_chains): Remove.
3204         (create_new_chain): Return the new chain.
3205         (chain_from_id): New static function.
3206         (dump_def_use_chain): Change argument to be an int, indicating
3207         the first ID to print.  All callers changed.
3208         (merge_overlapping_regs): Use chain_from_id.  Assert that
3209         chains don't conflict with themselves.
3210         (rename_chains): Take no argument.  Iterate over id_to_chain
3211         rather to find chains to rename.  Clear tick before the main loop.
3212         (struct incoming_reg_info): New struct.
3213         (struct bb_rename_info): New struct.
3214         (init_rename_info, set_incoming_from_chain, merge_chains): New
3215         static functions.
3216         (regrename_analyze): New static function, broken out of
3217         regrename_optimize.  Record and make use of open chain information
3218         at basic block boundaries, and merge chains where possible.
3219         (scan_rtx_reg): Make this_nregs signed.  Don't update
3220         closed_chains.
3221         (build_def_use): Return a bool to indicate success.  All callers
3222         changed.  Don't initialize global data here.
3223         (regrename_optimize): Move most code out of here into
3224         regrename_analyze.
3225         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
3226         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
3227         static inline functions.
3228         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
3229
3230         * bb-reorder.c (insert_section_boundary_note): Don't check
3231         optimize_function_for_speed_p.
3232         (gate_handle_partition_blocks): Do it here instead.
3233         (gate_handle_reorder_blocks): Move preliminary checks here ...
3234         (rest_of_handle_reorder_blocks): ... from here.
3235
3236 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3237
3238         PR middle-end/50301
3239         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
3240         function index bounds.
3241         (perhaps_add_new_callers): Likewise.
3242
3243 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3244
3245         PR tree-optimization/49911
3246         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
3247         enumerations to the corresponding plain integer type.
3248
3249 2011-09-07  Richard Guenther  <rguenther@suse.de>
3250
3251         PR tree-optimization/50319
3252         * tree-if-conv.c (set_bb_predicate): Assert we only set
3253         canonical predicates.
3254         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
3255         around canonical predicates.
3256         (predicate_bbs): Do not re-gimplify already canonical
3257         predicates.  Properly unshare them though.
3258         (find_phi_replacement_condition): Simplify.
3259
3260 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
3261
3262         PR target/49030
3263         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
3264         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
3265         reusing the old code from get_arm_condition_code.  Return ARM_NV
3266         for invalid comparison codes.
3267         (get_arm_condition_code): Redefine in terms of
3268         maybe_get_arm_condition_code.
3269         * config/arm/predicates.md (arm_comparison_operator): Use
3270         maybe_get_arm_condition_code.
3271
3272 2011-09-07  Richard Guenther  <rguenther@suse.de>
3273
3274         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3275         Canonicalize negated predicates by swapping edges.
3276         (forward_propagate_into_cond): Likewise.
3277
3278 2011-09-07  Richard Guenther  <rguenther@suse.de>
3279
3280         PR tree-optimization/50213
3281         * tree-flow.h (simple_iv_increment_p): Declare.
3282         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
3283         POINTER_PLUS_EXPR.
3284         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
3285         not propagate simple IV counter increments.
3286
3287 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3288             Iain Sandoe  <iains@gcc.gnu.org>
3289
3290         * config/rs6000/rs6000.c (compute_save_world_info): Test
3291         cfun->has_nonlocal_label to determine if the out-of-line save
3292         world call may be used.
3293
3294 2011-09-07  Nick Clifton  <nickc@redhat.com>
3295
3296         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
3297         label on the parallel part of the insn.
3298
3299 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3300
3301         PR debug/50191
3302         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
3303         avoid_constant_pool_reference first instead of last.
3304
3305 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3306
3307         * doc/configfiles.texi (Configuration Files): Update documentation
3308         about tm_p.h and remove FIXME comment.
3309
3310 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
3311
3312         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
3313         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
3314
3315 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
3316
3317         * config/darwin10.h Remove duplicate LIB_SPEC.
3318
3319 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
3320
3321         PR middle-end/44382
3322         * target.def (reassociation_width): New hook.
3323
3324         * doc/tm.texi.in (reassociation_width): Likewise.
3325
3326         * doc/tm.texi (reassociation_width): Likewise.
3327
3328         * doc/invoke.texi (tree-reassoc-width): New param documented.
3329
3330         * hooks.h (hook_int_uint_mode_1): New default hook.
3331
3332         * hooks.c (hook_int_uint_mode_1): Likewise.
3333
3334         * config/i386/i386.h (ix86_tune_indices): Add
3335         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3336
3337         (TARGET_REASSOC_INT_TO_PARALLEL): New.
3338         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
3339
3340         * config/i386/i386.c (initial_ix86_tune_features): Add
3341         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3342
3343         (ix86_reassociation_width): New function.
3344
3345         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
3346
3347         * tree-ssa-reassoc.c (get_required_cycles): New function.
3348         (get_reassociation_width): Likewise.
3349         (swap_ops_for_binary_stmt): Likewise.
3350         (rewrite_expr_tree_parallel): Likewise.
3351
3352         (rewrite_expr_tree): Refactored.  Part of code moved into
3353         swap_ops_for_binary_stmt.
3354
3355         (reassociate_bb): Now checks reassociation width to be used and
3356         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
3357
3358 2011-09-06  Richard Guenther  <rguenther@suse.de>
3359
3360         PR tree-optimization/47025
3361         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
3362         uses nothing.
3363         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
3364         BUILT_IN_FREE.
3365         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
3366         definitely points to.
3367         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3368         BUILT_IN_VA_START doesn't let its va_list argument escape.
3369         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
3370         not make any previous stores necessary.
3371
3372 2011-09-06  Martin Jambor  <mjambor@suse.cz>
3373
3374         * ipa-inline.h (struct inline_summary): Move versionable flag...
3375         * cgraph.h (struct cgraph_local_info): ...here
3376         * ipa-cp.c (determine_versionability): Use the new versionable flag.
3377         (determine_versionability): Likewise.
3378         (ipcp_versionable_function_p): Likewise.
3379         (ipcp_generate_summary): Likewise.
3380         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
3381         versionable flag.
3382         (compute_inline_parameters): Do not clear the versionable flag.
3383         (inline_read_section): Do not stream the versionable flag.
3384         (inline_write_summary): Likewise.
3385         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
3386         (input_overwrite_node): Likewise.
3387
3388 2011-09-06  Richard Guenther  <rguenther@suse.de>
3389
3390         PR tree-optimization/48149
3391         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
3392         (vn_valueize): Move earlier.
3393         (valueize_expr): Use vn_valueize.
3394         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
3395         operands.
3396         (simplify_unary_expression): Simplify.
3397
3398 2011-09-06  Richard Guenther  <rguenther@suse.de>
3399
3400         PR tree-optimization/48317
3401         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
3402         trailing array.
3403         (sizeof_vn_nary_op): New inline function.
3404         (vn_nary_op_lookup_pieces): Adjust.
3405         (vn_nary_op_insert_pieces): Likewise.
3406         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
3407         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
3408         any number of operands.
3409         (vn_nary_length_from_stmt): New function.
3410         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
3411         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
3412         sized temporary.
3413         (vn_nary_op_lookup): Likewise.
3414         (vn_nary_op_lookup_stmt): Likewise.
3415         (vn_nary_op_insert_into): Likewise.
3416         (vn_nary_op_insert_stmt): Likewise.
3417         (visit_use): Handle CONSTRUCTOR as nary.
3418         * tree-ssa-pre.c (phi_translate_1): Adjust.
3419         (create_expression_by_pieces): Likewise.
3420         (compute_avail): Likewise.
3421
3422 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
3423
3424          * config/arm/arm.c (arm_preferred_simd_mode): Check
3425         TARGET_NEON_VECTORIZE_DOUBLE instead of
3426         TARGET_NEON_VECTORIZE_QUAD.
3427         (arm_autovectorize_vector_sizes): Likewise.
3428         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
3429         mask of mvectorize-with-neon-double.  Add RejectNegative.
3430         (mvectorize-with-neon-double): New.
3431
3432 2011-09-06  Richard Guenther  <rguenther@suse.de>
3433
3434         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
3435
3436 2011-09-06  Tom de Vries  <tom@codesourcery.com>
3437
3438         * recog.c (asm_labels_ok): New function.
3439         (check_asm_operands): Use asm_labels_ok.
3440
3441 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3442
3443         PR target/49606
3444         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
3445         (PMODE_INSN): New macro.
3446         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
3447         (mips_got_load, mips_expand_synci_loop): Likewise.
3448         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
3449         cprestore patterns.
3450         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
3451         copygp_mips16 patterns.
3452         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
3453         and use_cprestore patterns.
3454         (mips_override_options): Check for incompatible -mabi and -mlong
3455         combinations.
3456         * config/mips/mips.md (unspec_got<mode>): Rename to...
3457         (unspec_got_<mode>): ...this.
3458         (copygp_mips16): Use the Pmode iterator.
3459         (potential_cprestore, cprestore, use_cprestore): Likewise.
3460         (clear_cache, indirect_jump): Use PMODE_INSN.
3461         (indirect_jump<mode>): Rename to...
3462         (indirect_jump_<mode>): ...this.
3463         (tablejump): Use PMODE_INSN.
3464         (tablejump<mode>): Rename to...
3465         (tablejump_<mode>): ...this.
3466         (exception_receiver): Handle restore_gp_si and restore_gp_di.
3467         (restore_gp): Use the Pmode iterator.
3468         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
3469         PMODE_INSN.
3470
3471 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3472
3473         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
3474         Fix the type of the BIT_AND_EXPR.
3475
3476 2011-09-05  David S. Miller  <davem@davemloft.net>
3477
3478         * config.host: Add driver-sparc.o and sparc/x-sparc on
3479         native sparc*-*-linux* builds.
3480         * config/sparc/driver-sparc.c: Correct Linux strings.
3481         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
3482         * config/sparc/linux64.h: Likewise.
3483         * doc/invoke.texi: Document that Linux also supports
3484         -mcpu=native and -mtune=native on sparc.
3485
3486         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
3487         PROCESSOR_NIAGARA4): New.
3488         * config/sparc/sparc.opt: Handle new processor types.
3489         * config/sparc/sparc.md: Add to "cpu" attribute.
3490         * config/sparc/sparc.h (TARGET_CPU_niagara3,
3491         TARGET_CPU_niagara4): New, treat as niagara2.
3492         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3493         * config/sparc/sol2.h: Likewise.
3494         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3495         * config/sparc/sparc.c (sparc_option_override): Add
3496         niagara3 and niagara4 handling.
3497         (sparc32_initialize_trampoline): Likewise.
3498         (sparc64_initialize_trampoline): Likewise.
3499         (sparc_use_sched_lookahead): Likewise.
3500         (sparc_issue_rate): Likewise.
3501         (sparc_register_move_cost): Likewise.
3502         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
3503         and niagara4 as appropriate.
3504         * doc/invoke.texi: Document new processor types.
3505         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
3506         and --with-tune options.
3507
3508         * config/sparc/sol2-64.h: Move ...
3509         * config/sparc/default-64.h: ... to here.  Update comment.
3510         * config.gcc: Update Solaris sparc to use default-64.h, also
3511         prefix this header into the list on sparc64-*-linux.
3512         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
3513         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
3514         to MASK_HARD_QUAD.
3515
3516 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3517
3518         PR target/50289
3519         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
3520         that contain global register variable.
3521
3522 2011-09-05  Richard Guenther  <rguenther@suse.de>
3523
3524         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
3525
3526 2011-09-05  Richard Guenther  <rguenther@suse.de>
3527
3528         * stor-layout.c (layout_type): Use size_binop for array size
3529         calculations.
3530
3531 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3532
3533         * config/avr/avr.h (progmem_section): Remove Declaration.
3534         * config/avr/avr.c (progmem_section): Make static and rename to
3535         progmem_swtable_section.
3536         (avr_output_addr_vec_elt): No need to switch sections.
3537         (avr_asm_init_sections): Use output_section_asm_op as section
3538         callback for progmem_swtable_section.
3539         (avr_output_progmem_section_asm_op): Remove Function.
3540         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
3541         (avr_asm_function_rodata_section): New static Function.
3542         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
3543         alignment 2**1 for jump tables.
3544
3545 2011-09-04  Jan Hubicka  <jh@suse.cz>
3546
3547         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
3548         parameter is SSA name.
3549
3550 2011-09-04  Richard Guenther  <rguenther@suse.de>
3551
3552         Revert
3553         2011-08-31  Richard Guenther  <rguenther@suse.de>
3554
3555         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3556         special-casing.
3557
3558 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
3559
3560         PR debug/49901
3561         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
3562
3563 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
3564             Ira Rosen  <ira.rosen@linaro.org>
3565
3566         PR tree-optimization/50208
3567         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
3568         argument.  Check that def_stmt is inside the loop.
3569         (vect_recog_widen_mult_pattern): Update calls to
3570         vect_handle_widen_mult_by_cons.
3571         (vect_operation_fits_smaller_type): Check that def_stmt is
3572         inside the loop.
3573
3574 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
3575
3576         * tree-vectorizer.c (vect_print_dump_info): Print line
3577         number when dumping to a file.
3578         (vectorize_loops): Add new messages to dump file.
3579
3580 2011-09-03  Martin Jambor  <mjambor@suse.cz>
3581
3582         * ipa-prop.h (ipa_jump_func_t): New typedef.
3583         (struct ipa_edge_args): Removed field argument_count, field
3584         jump_functions turned into a vector.
3585         (ipa_set_cs_argument_count): Removed.
3586         (ipa_get_cs_argument_count): Updated to work on vectors.
3587         (ipa_get_ith_jump_func): Likewise.
3588         * ipa-prop.c (ipa_count_arguments): Removed.
3589         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
3590         jump functions.  Update caller.
3591         (compute_pass_through_member_ptrs): Likewise.
3592         (compute_cst_member_ptr_arguments): Likewise.
3593         (ipa_compute_jump_functions_for_edge): Get number of arguments from
3594         the statement, allocate vector.
3595         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
3596         (duplicate_ipa_jump_func_array): Removed.
3597         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
3598         (ipa_read_node_info): Allocate vector.
3599
3600 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3601
3602         PR middle-end/50232
3603         * config/pa/pa.md (return): Define "return" insn pattern.
3604         (epilogue): Use it when no epilogue is needed.
3605         * config/pa/pa.c (pa_can_use_return_insn): New function.
3606         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
3607
3608 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
3609
3610         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
3611         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
3612         Force at least BITS_PER_UNIT alignment on the new variable.
3613
3614 2011-09-02  Gary Funck <gary@intrepid.com>
3615
3616         * opts.c (print_specific_help): Fix off-by-one compare in
3617         assertion check.
3618         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3619         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
3620         Increase by +5 to allow for more languages.
3621         * optc-gen.awk: Generate #if that ensures that the number of
3622         languages is within the implementation-defined limit.
3623
3624 2011-09-02  Michael Matz  <matz@suse.de>
3625
3626         PR middle-end/50260
3627         * ipa-split.c (split_function): Call add_referenced_var.
3628
3629         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
3630         (cond_if_else_store_replacement_1): Ditto.
3631         * tree-ssa-pre.c (get_representative_for): Ditto.
3632         (create_expression_by_pieces): Ditto.
3633         (insert_into_preds_of_block): Ditto.
3634         * tree-sra.c (create_access_replacement): Ditto.
3635         (get_replaced_param_substitute): Ditto.
3636
3637 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
3638
3639         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
3640         automata_options.
3641         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
3642         (l1w, s1w, l2w, s2w): Define in the main automaton.
3643         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
3644         units.
3645         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
3646         (c6x_unit_names): Add the new units.
3647         (c6x_unit_codes): New static array.
3648         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
3649         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
3650         UNIT_QID_SIDE_OFFSET): New macros.
3651         (RESERVATION_S2): Adjust value.
3652         (c6x_option_override): Compute c6x_unit_codes.
3653         (assign_reservations): Take the unit_mask of the last instruction
3654         into account.  Detect floating point reservations by looking for
3655         the new units.  Don't assign reservations if the field is already
3656         nonzero.
3657         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
3658         (init_sched_state): Initialize it.
3659         (c6x_clear_sched_context): Free it.
3660         (insn_set_clock): Clear reservation.
3661         (prev_cycle_state): New static variable.
3662         (c6x_init_sched_context): Save it.
3663         (c6x_sched_init): Allocate space for it and clear it.
3664         (c6x_sched_dfa_pre_cycle_insn): New static function.
3665         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
3666         (c6x_variable_issue): Only record units in the unit_mask that
3667         were not set at the start of the cycle.
3668         (c6x_variable_issue): Compute and store the unit_mask from the
3669         current state.
3670         (reorg_split_calls): Ensure the new information remains correct.
3671         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3672         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
3673         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
3674         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
3675         Add special reservations.
3676         * config/c6x/c6x-sched.md: Regenerate.
3677
3678 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3679
3680         * ipa-prop.h (ipa_node_params): Removed fields
3681         called_with_var_arguments and node_versionable.
3682         (ipa_set_called_with_variable_arg): Removed.
3683         (ipa_is_called_with_var_arguments): Likewise.
3684         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
3685         (determine_versionability): Do not check for type attributes and va
3686         builtins.  Record versionability into inline summary.
3687         (initialize_node_lattices): Do not check
3688         ipa_is_called_with_var_arguments.
3689         (propagate_constants_accross_call): Likewise, ignore arguments we do
3690         not have PARM_DECLs for, set variable flag for parameters that were
3691         not passed a value.
3692         (create_specialized_node): Dump info that we cannot change signature.
3693         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
3694         number of arguments.
3695         (ipa_make_edge_direct_to_target): Likewise.
3696         (ipa_update_after_lto_read): Likewise.
3697         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
3698         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
3699         they were remapped.
3700
3701 2011-09-02  Richard Guenther  <rguenther@suse.de>
3702
3703         PR tree-optimization/27460
3704         PR middle-end/29269
3705         * doc/md.texi (vcond): Document.
3706         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
3707         optab with two modes.
3708         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
3709         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
3710         (vcond_optab): Adjust.
3711         (vcondu_optab): Likewise.
3712         (expand_vec_cond_expr_p): Adjust prototype.
3713         * optabs.c (get_vcond_icode): Adjust.
3714         (expand_vec_cond_expr_p): Likewise.
3715         (expand_vec_cond_expr): Likewise.
3716         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
3717         vector type.
3718         (vectorizable_condition): Allow differing types for comparison
3719         and result.
3720         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
3721         for the comparison.
3722         * config/i386/sse.md (vcond<mode>): Split to
3723         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
3724         vcond<V_128:mode><VI124_128:mode> and
3725         vcondu<V_128:mode><VI124_128:mode>.
3726         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
3727         (vconduv2di): Likewise.
3728         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
3729         (vcondu<mode>): Likewise.
3730         * config/ia64/vect.md (vcond<mode>): Likewise.
3731         (vcondu<mode>): Likewise.
3732         (vcondv2sf): Likewise.
3733         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
3734         * config/rs6000/paired.md (vcondv2sf): Likewise.
3735         * config/rs6000/vector.md (vcond<mode>): Likewise.
3736         (vcondu<mode>): Likewise.
3737         * config/spu/spu.md (vcond<mode>): Likewise.
3738         (vcondu<mode>): Likewise.
3739
3740 2011-09-02  Richard Guenther  <rguenther@suse.de>
3741
3742         * pretty-print.h (pp_unsigned_wide_integer): New.
3743         * tree-pretty-print.c (dump_generic_node): Print unsigned
3744         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
3745
3746 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
3747
3748         PR target/49987
3749         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
3750         valid CONST_VECTOR operands.
3751         (rs6000_expand_vector_init): Likewise.
3752
3753 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3754
3755         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
3756         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
3757         BINFO_VTABLE.  Parameter delta removed, all callers updated.
3758         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
3759         BINFO_VTABLE.
3760         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
3761         all calls.
3762         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
3763         handling of thunk_delta.
3764         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
3765         (devirtualization_time_bonus): Do not handle thunk deltas.
3766         (ipcp_discover_new_direct_edges): Likewise.
3767         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3768         (try_make_edge_direct_simple_call): Likewise.
3769         (try_make_edge_direct_virtual_call): Likewise.
3770         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3771         parameter set as unused.
3772         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3773         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3774         parameter set as unused.
3775         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3776         (input_edge_opt_summary): Likewise.
3777         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
3778         BINFO_VIRTUALS at all.
3779         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
3780
3781 2011-09-02  Richard Guenther  <rguenther@suse.de>
3782
3783         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
3784         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
3785
3786 2011-08-31  Richard Guenther  <rguenther@suse.de>
3787
3788         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
3789         handling here, from ...
3790         (expand_expr_real_1): ... here.
3791         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
3792         and VEC_COND_EXPR.
3793         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
3794         a GIMPLE_TERNARY_RHS.
3795         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
3796         and VEC_COND_EXPR here ...
3797         (verify_gimple_assign_single): ... not here.
3798         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
3799         * tree-object-size.c (cond_expr_object_size): Adjust.
3800         (collect_object_sizes_for): Likewise.
3801         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
3802         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
3803         (ssa_forward_propagate_and_combine): Adjust.
3804         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
3805         as ternary.
3806         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
3807         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
3808         * tree-vect-stmt.c (vectorizable_condition): Likewise.
3809         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
3810         (extract_range_from_assignment): Likewise.
3811
3812 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3813
3814         * config/i386/i386.md: Use (match_test ...) for attribute tests.
3815         * config/i386/mmx.md: Likewise.
3816         * config/i386/sse.md: Likewise.
3817         * config/i386/predicates.md (call_insn_operand): Use
3818         (not (match_test "...")) instead of (match_test "!...")
3819         * config/i386/constraints.md (w): Likewise.
3820
3821 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3822
3823         * doc/md.texi: Describe the use of match_tests in attribute tests.
3824         * rtl.def (MATCH_TEST): Update commentary.
3825         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
3826         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
3827
3828 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3829
3830         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
3831         (attr_string): Use copy_md_ptr_loc.
3832
3833 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3834
3835         PR middle-end/49886
3836         * ipa-inline-analysis.c (compute_inline_parameters): Set
3837         can_change_signature of noes with typde attributes.
3838         * ipa-split.c (split_function): Do not skip any arguments if
3839         can_change_signature is set.
3840
3841 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3842
3843         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
3844         check removed.
3845
3846 2011-08-31  Richard Guenther  <rguenther@suse.de>
3847
3848         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3849         special-casing.
3850
3851 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
3852
3853         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
3854
3855 2011-08-31  Tom de Vries  <tom@codesourcery.com>
3856
3857         PR middle-end/43513
3858         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
3859         * tree-ssa-ccp.c (params.h): Include.
3860         (fold_builtin_alloca_for_var): New function.
3861         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
3862
3863 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3866         Handle FMA option.
3867
3868 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3869
3870         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
3871         b3 and b4 unsigned.
3872
3873 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3874
3875         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
3876         when code is SET.
3877
3878 2011-08-30  Richard Guenther  <rguenther@suse.de>
3879
3880         PR middle-end/48571
3881         * gimple.h (maybe_fold_offset_to_address): Remove.
3882         (maybe_fold_offset_to_reference): Likewise.
3883         (maybe_fold_stmt_addition): Likewise.
3884         (may_propagate_address_into_dereference): Likewise.
3885         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
3886         array references.
3887         * gimple-fold.c (canonicalize_constructor_val): Likewise.
3888         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
3889         addresses instead.
3890         (may_propagate_address_into_dereference): Remove.
3891         (maybe_fold_offset_to_array_ref): Likewise.
3892         (maybe_fold_offset_to_reference): Likewise.
3893         (maybe_fold_offset_to_address): Likewise.
3894         (maybe_fold_stmt_addition): Likewise.
3895         (fold_gimple_assign): Do not reconstruct array references but
3896         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
3897         MEM_REF addresses.
3898         (gimple_fold_stmt_to_constant_1): Likewise.
3899         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3900         * gimplify.c (gimplify_conversion): Likewise.
3901         (gimplify_expr): Likewise.
3902
3903 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
3904
3905         * config/i386/fmaintrin.h: New.
3906         * config.gcc: Add fmaintrin.h.
3907         * config/i386/i386.c
3908         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
3909         <IX86_BUILTIN_VFMADDSD3>: Likewise.
3910         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
3911         (*fmai_fmadd_<mode>): Likewise.
3912         (*fmai_fmsub_<mode>): Likewise.
3913         (*fmai_fnmadd_<mode>): Likewise.
3914         (*fmai_fnmsub_<mode>): Likewise.
3915         * config/i386/immintrin.h: Add fmaintrin.h.
3916
3917 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
3918
3919         * genautomata.c (NO_COMB_OPTION): New macro.
3920         (no_comb_flag): New static variable.
3921         (gen_automata_option): Handle NO_COMB_OPTION.
3922         (comb_vect_p): False if no_comb_flag.
3923         (add_vect): Move computation of min/max values.  Return early if
3924         no_comb_flag.
3925         * doc/md.texi (automata_option): Document no-comb-vect.
3926
3927         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
3928         "__x86.get_pc_thunk".
3929
3930         * bb-reorder.c (insert_section_boundary_note): Only do it if
3931         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
3932
3933 2011-08-30  Christian Bruel  <christian.bruel@st.com>
3934
3935         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
3936         flag_profile_use.
3937
3938 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
3939
3940         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
3941         to off.  Document switch.
3942         * doc/invoke.texi (-msave-toc-indirect): Ditto.
3943
3944 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3945
3946         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
3947         conditionals and comments inside macro arguments.
3948
3949 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
3950             Richard Guenther  <rguenther@suse.de>
3951
3952         * tree.h (constant_boolean_node): Adjust prototype.
3953         * fold-const.c (fold_convert_loc): Move aggregate conversion
3954         leeway down.
3955         (constant_boolean_node): Make value parameter boolean, add
3956         vector type handling.
3957         (fold_unary_loc): Use constant_boolean_node.
3958         (fold_binary_loc): Preserve types properly when folding
3959         COMPLEX_EXPR <__real x, __imag x>.
3960         * gimplify.c (gimplify_expr): Handle vector comparison.
3961         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
3962         comparison.
3963         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
3964         comparisons.
3965
3966 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3967
3968         PR middle-end/48722
3969         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
3970         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
3971         (verify_rtl_sharing): Likewise and verify_rtx_sharing
3972         in there too.
3973         (unshare_all_rtl_in_chain): For CALL_INSNs
3974         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
3975
3976 2011-08-29  Richard Guenther  <rguenther@suse.de>
3977
3978         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
3979         on the built ADDR_EXPR.
3980
3981 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3982
3983         PR debug/50215
3984         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
3985         before adding ENTRY_VALUE to val->locs.
3986
3987 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
3988
3989         PR bootstrap/50218
3990         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
3991         comp.
3992
3993 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
3994
3995         * doc/rtl.texi (simple_return): Document.
3996         (parallel, PATTERN): Here too.
3997         * doc/md.texi (return): Mention it's allowed to expand to simple_return
3998         in some cases.
3999         (simple_return): Document standard pattern.
4000         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
4001         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
4002         * reorg.c (function_return_label, function_simple_return_label):
4003         New static variables, replacing...
4004         (end_of_function_label): ... this.
4005         (simplejump_or_return_p): New static function.
4006         (optimize_skip, steal_delay_list_from_fallthrough,
4007         fill_slots_from_thread): Use it.
4008         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
4009         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
4010         (find_end_label): Take a new arg which is one of the two return
4011         rtxs.  Depending on which, set either function_return_label or
4012         function_simple_return_label.  All callers changed.
4013         (make_return_insns): Make both kinds.
4014         (dbr_schedule): Adjust for two kinds of end labels.
4015         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
4016         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
4017         (gen_expand, gen_split): Use ANY_RETURN_P.
4018         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
4019         * rtl.def (SIMPLE_RETURN): New code.
4020         * ifcvt.c (find_if_case_1): Be more careful about
4021         redirecting jumps to the EXIT_BLOCK.
4022         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
4023         returnjump_p_1): Handle SIMPLE_RETURNs.
4024         * print-rtl.c (print_rtx): Likewise.
4025         * rtl.c (copy_rtx): Likewise.
4026         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
4027         * combine.c (simplify_set): Likewise.
4028         * resource.c (find_dead_or_set_registers, mark_set_resources):
4029         Likewise.
4030         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
4031         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
4032         (init_emit_regs): Initialize simple_return_rtx.
4033         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
4034         force_nonfallthru_and_redirect.
4035         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
4036         (GR_SIMPLE_RETURN): New enum value.
4037         (simple_return_rtx): New macro.
4038         * basic-block.h (force_nonfallthru_and_redirect): Adjust
4039         declaration.
4040         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
4041         argument.  All callers changed.  Be careful about what kinds of
4042         returnjumps to generate.
4043         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
4044         ix86_pad_short_function): Likewise.
4045         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
4046         of return.
4047         * config/mips/mips.md (any_return): New code_iterator.
4048         (optab): Add cases for return and simple_return.
4049         (return): Expand to a simple_return.
4050         (simple_return): New pattern.
4051         (*<optab>, *<optab>_internal for any_return): New patterns.
4052         (return_internal): Remove.
4053         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
4054         a simple_return_internal.
4055
4056 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4057
4058         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
4059         (vec_extract_lo_<mode>): Prevent both operands in memory.
4060         (vec_extract_lo_v16hi): Ditto.
4061         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
4062
4063 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4064
4065         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
4066         (*sse2_mulv4si3): Ditto.
4067         (mulv2di3): Ditto.
4068         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
4069         notes to REG_EQUAL.
4070
4071 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4072
4073         PR target/50202
4074         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
4075         when all outputs are unused.
4076         (sse4_2_pcmpistr): Ditto.
4077
4078 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4079
4080         * config/i386/i386.md (round<mode>2): New expander.
4081         * config/i386/i386.c (enum ix86_builtins): Add
4082         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
4083         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
4084         descriptions.
4085         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
4086         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
4087
4088 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4089
4090         PR middle-end/50083
4091         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
4092         only when TARGET_C99_FUNCTIONS.
4093         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
4094         <BUILT_IN_RINT{,F,L}>: Ditto.
4095
4096 2011-08-26  Michael Matz  <matz@suse.de>
4097             Jakub Jelinek  <jakub@redhat.com>
4098
4099         PR lto/50165
4100         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
4101         don't call strlen twice, use memcpy.
4102
4103 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
4104
4105         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
4106         * config/i386/bmiintrin.h: Likewise.
4107         * config/i386/lzcntintrin.h: Likewise.
4108
4109         * config/i386/immintrin.h: Include <lzcntintrin.h>,
4110         <bmiintrin.h> and <bmi2intrin.h>.
4111
4112 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4113
4114         PR target/50166
4115         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
4116         * configure: Regenerate.
4117
4118 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4119
4120         PR c/50179
4121         * c-typeck.c (c_process_expr_stmt): Skip over nops and
4122         call mark_exp_read even if exprv is ADDR_EXPR.
4123
4124 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
4125
4126         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
4127         to df_set_dead_notes_for_mw.
4128
4129 2011-08-26  Richard Guenther  <rguenther@suse.de>
4130
4131         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
4132
4133 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
4134             Tom de Vries  <tom@codesourcery.com>
4135
4136         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
4137         (struct ivopts_data): Add loop_single_exit_p field.
4138         (niter_for_exit): Change parameter desc_p into return value.  Return
4139         desc if desc->may_be_zero.  Free desc if unused.
4140         (niter_for_single_dom_exit): Change return type.
4141         (find_induction_variables): Handle changed return type of
4142         niter_for_single_dom_exit.  Dump may_be_zero.
4143         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
4144         (set_use_iv_cost): Add and handle comp parameter.
4145         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
4146         comp argument to set_use_iv_cost.
4147         (strip_wrap_conserving_type_conversions, expr_equal_p)
4148         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
4149         (may_eliminate_iv): Add comp parameter.  Handle new return type of
4150         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
4151         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
4152         and may_eliminate_iv.
4153         (rewrite_use_compare): Move call to iv_elimination_compare to ...
4154         (may_eliminate_iv): Here.
4155         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
4156
4157 2011-08-26  Tom de Vries  <tom@codesourcery.com>
4158
4159         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
4160         accessing TREE_TYPE.
4161
4162 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
4163
4164         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
4165         (*ior_scc_scc_cmp): Likewise
4166         (*and_scc_scc): Likewise.
4167         (*and_scc_scc_cmp): Likewise.
4168         (*and_scc_scc_nodom): Likewise.
4169         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
4170
4171 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4172
4173         * rtlanal.c (nonzero_bits1): Handle CLRSB.
4174
4175 2011-08-26  Richard Guenther  <rguenther@suse.de>
4176
4177         * expr.c (string_constant): Handle &MEM_REF.
4178
4179 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4180
4181         * config/arm/arm.c (struct four_ints): New type.
4182         (count_insns_for_constant): Delete function.
4183         (find_best_start): Delete function.
4184         (optimal_immediate_sequence): New function.
4185         (optimal_immediate_sequence_1): New function.
4186         (arm_gen_constant): Move constant splitting code to
4187         optimal_immediate_sequence.
4188         Rewrite constant negation/invertion code.
4189
4190 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4191
4192         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
4193         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
4194         Remove prototype. Remove static function type.
4195         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
4196         Add arch attribute.
4197         * config/arm/constraints.md (Pj, PJ): New constraints.
4198
4199 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4200
4201         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
4202         ("cortex_a9_multiply_long"): New and use above.  Handle all
4203         long multiply cases.
4204         ("cortex_a9_multiply"): Handle smmul and smmulr.
4205         ("cortex_a9_mac"): Handle smmla.
4206
4207 2011-08-25  Richard Henderson  <rth@redhat.com>
4208
4209         PR 50132
4210         PR 49864
4211         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
4212         non-constant stack adjutment.
4213         * expr.c (find_args_size_adjust): Break out from ...
4214         (fixup_args_size_notes): ... here.
4215         * rtl.h (find_args_size_adjust): Declare.
4216
4217 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
4218
4219         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
4220         sse4 and sse4_noavx.
4221         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
4222         (*pushdf_rex64): Change Y2 register constraint to x.
4223         (*movdf_internal_rex64): Ditto.
4224         (*zero_extendsidi2_rex64): Ditto.
4225         (*movdi_internal): Change Y2 register constraint to x
4226         and update "isa" attribute.
4227         (*pushdf): Ditto.
4228         (*movdf internal): Ditto.
4229         (zero_extendsidi2_1): Ditto.
4230         (*truncdfdf_mixed): Ditto.
4231         (*truncxfdf2_mixed): Ditto.
4232         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
4233         register constraint to x.
4234         (*movv2sf_internal_rex64): Ditto.
4235         (*mov<mode>_internal): Change Y2 register constraint to x
4236         and add "isa" attribute.
4237         (*movv2sf_internal): Ditto.
4238         (*vec_extractv2si_1): Ditto.
4239         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
4240         constraints to x and update "isa" attribute.
4241         (*vec_interleave_highv2df): Change Y3 registerconstraint
4242         to x and update "isa" attribute.
4243         (*vec_interleave_lowv2df): Ditto.
4244         (*vec_concatv2df): Change Y2 register constraint to x and
4245         update "isa" attribute.
4246         (sse2_loadld): Ditto.
4247         (*vec_extractv2di_1): Ditto.
4248         (*vec_dupv4si): Ditto.
4249         (*vec_dupv2di): Ditto.
4250         (*vec_concatv4si): Ditto.
4251         (vec_concatv2di): Ditto.
4252         * config/i386/constraints.md (Y2): Remove.
4253         (Y3): Ditto.
4254         (Y4): Ditto.
4255
4256 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4257
4258         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
4259         dump_def_use_chain): Don't declare.
4260         (mark_conflict, create_new_chain): Move before users.
4261         (regrename_optimize): Move to near end of file.
4262
4263 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4264
4265         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
4266         (secondary_input_reload_class): Remove Prototype.
4267         * config/avr/avr.c (byte_immediate_operand): Remove Function.
4268         * config/avr/avr.md (setmemhi): Use u8_operand.
4269         (strlenhi): Use const0_rtx for comparison.
4270         * config/avr/avr.h (avr_reg_order): Remove Declaration.
4271
4272 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4273
4274         * config/avr/avr.c (reg_class_tab): Make local to
4275         avr_regno_reg_class.  Return smallest register class available.
4276
4277 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4278
4279         * config/avr/avr.c (STR_PREFIX_P): New Define.
4280         (avr_asm_declare_function_name): Use it.
4281         (avr_asm_named_section): Use it.
4282         (avr_section_type_flags): Use it.
4283
4284 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4285
4286         * doc/md.texi (automata_option): Document collapse-ndfa.
4287         * genautomata.c (COLLAPSE_OPTION): New macro.
4288         (collapse_flag): New static variable.
4289         (struct description): New member normal_decls_num.
4290         (struct automaton): New members advance_ainsn and collapse_ainsn.
4291         (gen_automata_option): Check for COLLAPSE_OPTION.
4292         (collapse_ndfa_insn_decl): New static variable.
4293         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
4294         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
4295         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
4296         necessary.  Use normal_decls_num rather than decls_num, remove
4297         test for special decls.
4298         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
4299         (make_automaton); Likewise.  Use the new advance_cycle_insn member
4300         of struct automaton.
4301         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
4302         is set.
4303         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
4304         transition.  Create the necessary transitions for it.
4305         (create_ainsns): Return void.  Take an automaton_t argument, and
4306         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
4307         callers changed.
4308         (COLLAPSE_NDFA_VALUE_NAME): New macro.
4309         (output_tables): Output code to define it.
4310         (output_internal_insn_code_evaluation): Output code to accept
4311         const0_rtx as collapse-ndfa transition.
4312         (output_default_latencies, output_print_reservation_func,
4313         output_print_description): Reorganize loops to use normal_decls_num
4314         as loop bound; remove special case for advance_cycle_insn_decl.
4315         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
4316         (check_automata_insn_issues): Check for collapse_ainsn.
4317         (expand_automate): Allocate sufficient space.  Initialize
4318         normal_decls_num.
4319
4320 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4321
4322         * config/avr/avr.md: Fix indentation from r177991.
4323
4324 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4325
4326         * regrename.c (struct du_head): Remove member terminated.
4327         (create_new_chain): Don't initialize it.
4328         (scan_rtx_reg): Don't set or test it, test the open_chains_set
4329         bitmap instead.
4330         (tick, this_tick): New global variables, moved out of
4331         regrename_optimize.
4332         (current_id, open_chains, closed_chains, open_chains_set,
4333         live_in_chains, live_hard_regs): Reorder declarations.
4334         (dump_def_use_chain): Move function earlier in the file.
4335         (rename_chains): New static function, broken out of
4336         regrename_optimize.
4337         (regrename_optimize): Use it.  Remove #if 0'ed code.
4338
4339 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4340
4341         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
4342
4343 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
4344
4345         PR target/50172
4346         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
4347
4348 2011-08-24  Richard Guenther  <rguenther@suse.de>
4349
4350         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
4351         ref in the basic-block case.  Move stripping array-refs
4352         to the place we create an access-function for it.  Remove
4353         bogus stripping down a MEM_REF to its base.
4354
4355 2011-08-24  Richard Guenther  <rguenther@suse.de>
4356
4357         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
4358         with -fno-strict-overflow.
4359
4360 2011-08-24  Richard Guenther  <rguenther@suse.de>
4361
4362         * tree-vectorizer.c (vect_print_dump_info): Avoid the
4363         file and location clutter when dumping to dump files.
4364
4365 2011-08-24  Simon Baldwin  <simonb@google.com>
4366
4367         * gengtype-state.c (write_state): Remove timestamped header line.
4368
4369 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4370
4371         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
4372         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
4373         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
4374         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
4375         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
4376         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
4377         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
4378         rules.
4379         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
4380
4381 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4382
4383         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
4384
4385 2011-08-24  Richard Guenther  <rguenther@suse.de>
4386
4387         PR tree-optimization/50067
4388         * tree-data-ref.c (dr_analyze_indices): Do not add an access
4389         function for a MEM_REF base that has no evolution in the loop
4390         nest or that is not analyzable.
4391
4392 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
4393
4394         * ira.c (ira_init_register_move_cost): Check small subclasses
4395         through ira_reg_class_max_nregs and ira_available_class_regs.
4396
4397 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4398
4399         * config/i386/constraints.md (Yp): New register constraint.
4400         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
4401         Yp register constraint.
4402         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
4403         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
4404         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
4405
4406 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4407
4408         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
4409
4410 2011-08-23  Mark Heffernan  <meheff@google.com>
4411
4412         PR middle-end/38509
4413         * common.opt (Wfree-nonheap-object): New option.
4414         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
4415         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
4416         to warning.
4417         (expand_builtin): Make warning conditional.
4418
4419 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4420
4421         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
4422         (length_immediate): Handle imulx, ishiftx and rotatex.
4423         (imm_disp): Ditto.
4424         (isa): Add bmi2.
4425         (enabled): Handle bmi2.
4426         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
4427         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
4428         (*bmi2_umulditi3_1): New insn pattern.
4429         (*bmi2_umulsidi3_1): Ditto.
4430         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
4431         (*bmi2_ashl<mode>3_1): New insn pattern.
4432         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
4433         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
4434         (*bmi2_ashlsi3_1_zext): New insn pattern.
4435         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
4436         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
4437         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
4438         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
4439         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
4440         flags dependency.
4441         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
4442         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
4443         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
4444         flags dependency.
4445         (*bmi2_rorx<mode>3_1): New insn pattern.
4446         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
4447         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
4448         (*rotatert<mode>3_1 splitter): Ditto.
4449         (*bmi2_rorxsi3_1_zext): New insn pattern.
4450         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
4451         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
4452         (*rotatertsi3_1_zext splitter): Ditto.
4453
4454 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4455
4456         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
4457         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
4458         (ix86_handle_option): Handle OPT_mbmi2 case.
4459         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
4460         (x86_64-*-*): Likewise.
4461         * config/i386/bmi2intrin.h: New file.
4462         * config/i386/cpuid.h (bit_BMI2): New.
4463         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4464         BMI2 feature.
4465         * config/i386/i386-c.c (ix86_target_macros_internal):
4466         Conditionally define __BMI2__.
4467         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
4468         Handle BMI2 option.
4469         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
4470         (print_reg): New code.
4471         (ix86_print_operand): Likewise.
4472         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4473         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4474         IX86_BUILTIN_PEXT64.
4475         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4476         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4477         IX86_BUILTIN_PEXT64.
4478         * config/i386/i386.h (TARGET_BMI2): New.
4479         * config/i386/i386.md (UNSPEC_PDEP): New.
4480         (UNSPEC_PEXT): Likewise.
4481         (*bmi2_bzhi_<mode>3): Likewise.
4482         (*bmi2_pdep_<mode>3): Likewise.
4483         (*bmi2_pext_<mode>3): Likewise.
4484         * config/i386/i386.opt (mbmi2): New.
4485         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
4486         is defined.
4487         * doc/extend.texi: Document BMI2 built-in functions.
4488         * doc/invoke.texi: Document -mbmi2.
4489
4490 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
4491
4492         PR middle-end/50161
4493         * simplify-rtx.c (simplify_const_unary_operation): If
4494         op is CONST_INT, don't look at op_mode, but use instead mode.
4495         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
4496         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
4497         operation and TRUNCATE/ZERO_EXTEND if needed.
4498         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
4499         Document that operand mode must be same as operation mode,
4500         or VOIDmode.
4501         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
4502         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
4503         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
4504         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
4505         use the mode of operand for the operation and add truncate
4506         or zero_extend around if needed.
4507         * config/c6x/c6x.md (ctzdi2): Likewise.
4508         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
4509
4510 2011-08-12  Michael Matz  <matz@suse.de>
4511
4512         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
4513         (gimple_expand_cfg): Merge alignment info for coalesced pointer
4514         SSA names.
4515
4516 2011-08-23  Richard Guenther  <rguenther@suse.de>
4517
4518         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
4519         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
4520         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
4521         from ...
4522         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
4523         (mem_refs_may_alias_p): Adjust.
4524         * tree-data-ref.h (dr_may_alias_p): Adjust.
4525         * tree-data-ref.c: Include tree-affine.h.
4526         (dr_analyze_indices): Do nothing for the non-loop case.
4527         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
4528         more cases in the non-loop case.
4529         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
4530         calls to dr_may_alias_p.
4531         (write_alias_graph_to_ascii_ecc): Likewise.
4532         (write_alias_graph_to_ascii_dot): Likewise.
4533         (build_alias_set_optimal_p): Likewise.
4534
4535 2011-08-23  Richard Guenther  <rguenther@suse.de>
4536
4537         PR tree-optimization/50162
4538         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
4539
4540 2011-08-23  Richard Guenther  <rguenther@suse.de>
4541
4542         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
4543         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
4544         (create_data_ref): Also dump access functions for the created data-ref.
4545
4546 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
4547             Kirill Yukhin  <kirill.yukhin@intel.com>
4548
4549         PR target/50155
4550         * config/i386/sse.md (VI_AVX2): New.
4551         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
4552         (*<plusminus_insn><mode>3): Ditto.
4553         (<sse2_avx2>_andnot<mode>3): Ditto.
4554         (*andnot<mode>3): Fix order of cond operands.
4555         Add asserts for correct TARGET_xxx.
4556         (*<any_logic:code><mode>3): Ditto.
4557
4558 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
4559
4560         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
4561         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
4562         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
4563         regclass argument type to reg_class_t. Change 'max' and 'v' vars
4564         and return types to unsigned char. Use reg_class_contents instead
4565         of class_contents.
4566         (TARGET_CLASS_MAX_NREGS): Define.
4567
4568 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
4569
4570         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
4571         to make computed_jump_p return true.
4572
4573 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4574
4575         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
4576         (PICFLAG_FOR_TARGET): Substitute.
4577         * aclocal.m4: Regenerate.
4578         * configure: Regenerate.
4579
4580 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
4581
4582         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
4583         after reading in the pch.
4584
4585 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
4586
4587         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
4588         * configure: Regenerated.
4589
4590 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
4591
4592         PR tree-optimization/50133
4593         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
4594         from stmt instead of some statement around gsi.
4595
4596         PR middle-end/50141
4597         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
4598         innerdecl is a VAR_DECL.
4599
4600 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4601
4602         * config/i386/avx2intrin.h: New file.
4603         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
4604         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
4605         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
4606         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
4607         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
4608         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
4609         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
4610         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
4611         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
4612         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
4613         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
4614         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
4615         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
4616         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
4617         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
4618         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
4619         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
4620         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
4621         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
4622         VOID_FTYPE_PV8SI_V8SI_V8SI,
4623         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
4624         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
4625         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
4626         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
4627         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
4628         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
4629         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
4630         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
4631         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
4632         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
4633         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
4634         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
4635         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
4636         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
4637         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
4638         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
4639         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
4640         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
4641         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
4642         V4DI_FTYPE_V4DI_INT_CONVERT,
4643         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
4644         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
4645         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4646         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4647         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4648         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4649         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4650         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4651         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4652         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4653         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4654         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4655         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4656         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4657         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4658         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4659         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4660         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4661         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4662         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4663         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4664         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4665         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4666         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4667         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4668         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4669         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4670         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4671         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4672         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4673         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4674         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4675         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4676         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4677         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4678         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4679         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4680         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4681         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4682         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4683         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4684         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4685         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4686         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4687         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4688         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4689         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4690         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4691         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4692         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4693         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4694         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4695         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4696         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4697         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4698         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4699         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4700         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4701         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4702         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
4703         IX86_BUILTIN_VBROADCASTSS_PS256,
4704         IX86_BUILTIN_VBROADCASTSD_PD256,
4705         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4706         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4707         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4708         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4709         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4710         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4711         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4712         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4713         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4714         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4715         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4716         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4717         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
4718         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4719         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4720         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4721         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4722         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
4723         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
4724         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
4725         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
4726         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
4727         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
4728         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
4729         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
4730         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
4731         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
4732         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4733         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4734         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4735         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
4736         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
4737         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4738         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4739         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4740         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4741         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4742         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4743         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4744         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4745         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4746         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4747         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4748         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4749         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4750         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4751         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4752         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4753         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4754         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4755         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4756         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4757         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4758         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4759         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4760         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4761         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4762         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4763         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4764         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4765         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4766         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4767         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4768         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4769         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4770         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4771         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4772         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4773         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4774         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4775         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4776         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4777         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4778         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4779         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4780         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4781         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4782         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4783         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4784         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4785         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4786         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4787         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4788         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4789         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4790         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4791         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4792         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4793         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4794         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
4795         IX86_BUILTIN_VBROADCASTSD_PD256,
4796         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4797         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4798         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4799         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4800         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4801         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4802         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4803         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4804         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4805         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4806         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4807         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4808         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4809         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
4810         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
4811         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
4812         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
4813         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
4814         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
4815         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
4816         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
4817         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
4818         IX86_BUILTIN_GATHERDIV8SI.
4819         (ix86_preferred_simd_mode): Support AVX2 modes.
4820         (ix86_expand_args_builtin): Support AVX2 builtins.
4821         (ix86_expand_special_args_builtin): Likewise.
4822         (ix86_expand_builtin): Likewise.
4823         * config/i386/i386.md (UNSPEC_VPERMSI): New.
4824         (UNSPEC_VPERMDF): Likewise.
4825         (UNSPEC_VPERMSF): Likewise.
4826         (UNSPEC_VPERMDI): Likewise.
4827         (UNSPEC_VPERMTI): Likewise.
4828         (UNSPEC_GATHER): Likewise.
4829         (ssemodesuffix): Extend.
4830         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
4831         is defined.
4832         * config/i386/predicates.md (const1248_operand): New.
4833         * config/i386/sse.md (VI1_AVX2): New mode iterator.
4834         (VI2_AVX2): Likewise.
4835         (VI4_AVX2): Likewise.
4836         (VI8_AVX2): Likewise.
4837         (VIMAX_AVX2): Likewise.
4838         (SSESCALARMODE): Likewise.
4839         (VI12_AVX2): Likewise.
4840         (VI24_AVX2): Likewise.
4841         (VI124_AVX2): Likewise.
4842         (VI248_AVX2): Likewise.
4843         (VI48_AVX2): Likewise.
4844         (VI4SD_AVX2): Likewise.
4845         (V48_AVX2): Likewise.
4846         (AVX256MODE2P): Likewise.
4847         (AVXMODE48P_DI): Likewise.
4848         (sse2_avx2): New mode attribute.
4849         (ssse3_avx2): Likewise.
4850         (sse4_1_avx2): Likewise.
4851         (avx_avx2): Likewise.
4852         (ssebytemode): Likewise.
4853         (AVXTOSSEMODE): Likewise.
4854         (AVXMODE48P_DI): Likewise.
4855         (gthrfirstp): Likewise.
4856         (gthrlastp): Likewise.
4857         (lshift): New code_iterator
4858         (lshift): New code attribute.
4859         (lshift): Likewise.
4860         (ssescalarmodesuffix): Update.
4861         (sseunpackmode): Likewise.
4862         (ssepackmode): Likewise.
4863         (avx2_vec_dupv4sf): New insn pattern.
4864         (avx2_vec_dupv8sf): Likewise.
4865         (avx2_interleave_highv4di): Likewise.
4866         (avx2_interleave_lowv4di): Likewise.
4867         (avx2_umulv4siv4di3): Likewise
4868         (*avx2_umulv4siv4di3): Likewise
4869         (avx2_pmaddwd): Likewise.
4870         (*avx2_pmaddwd): Likewise.
4871         (avx2_lshrqv4di3): Likewise.
4872         (avx2_lshlqv4di3): Likewise.
4873         (avx2_lshl<mode>3): Likewise.
4874         (avx2_<umaxmin:code><mode>3): Likewise.
4875         (*avx2_<umaxmin:code><mode>3): Likewise.
4876         (avx2_<smaxmin:code><mode>3): Likewise.
4877         (*avx2_<smaxmin:code><mode>3): Likewise.
4878         (avx2_eq<mode>3): Likewise.
4879         (*avx2_eq<mode>3): Likewise.
4880         (avx2_gt<mode>3): Likewise.
4881         (avx2_interleave_highv32qi): New.
4882         (avx2_interleave_lowv32qi): Likewise.
4883         (avx2_interleave_highv16hi): Likewise.
4884         (avx2_interleave_lowv16hi): Likewise.
4885         (avx2_interleave_highv8si): Likewise.
4886         (avx2_interleave_lowv8si): Likewise.
4887         (avx2_pshufd): Likewise.
4888         (avx2_pshufd_1): Likewise.
4889         (avx2_pshuflwv3): Likewise.
4890         (avx2_pshuflw_1): Likewise.
4891         (avx2_pshufhwv3): Likewise.
4892         (avx2_pshufhw_1): Likewise.
4893         (avx2_uavgv32qi3): Likewise.
4894         (*avx2_uavgv32qi3): Likewise.
4895         (avx2_uavgv16hi3): Likewise.
4896         (*avx2_uavgv16hi3): Likewise.
4897         (avx2_pmovmskb): Likewise.
4898         (avx2_phaddwv16hi3): Likewise.
4899         (avx2_phadddv8si3): Likewise.
4900         (avx2_phaddswv16hi3): Likewise.
4901         (avx2_phsubwv16hi3): Likewise.
4902         (avx2_phsubdv8si3): Likewise.
4903         (avx2_phsubswv16hi3): Likewise.
4904         (avx2_pmaddubsw256): Likewise.
4905         (avx2_umulhrswv16hi3): Likewise.
4906         (*avx2_umulhrswv16hi3): Likewise.
4907         (avx2_packusdw): Likewise.
4908         (avx2_pblendd<mode>): Likewise.
4909         (avx2_<code>v16qiv16hi2): Likewise.
4910         (avx2_<code>v8qiv8si2): Likewise.
4911         (avx2_<code>v8hiv8si2): Likewise.
4912         (avx2_<code>v4qiv4di2): Likewise.
4913         (avx2_<code>v4hiv4di2): Likewise.
4914         (avx2_<code>v4siv4di2): Likewise.
4915         (avx2_pbroadcast<mode>): Likewise.
4916         (avx2_permvarv8si): Likewise.
4917         (avx2_permv4df): Likewise.
4918         (avx2_permvarv8sf): Likewise.
4919         (avx2_permv4di): Likewise.
4920         (avx2_permv2ti): Likewise.
4921         (avx2_vec_dupv4df): Likewise.
4922         (avx2_vbroadcasti128_<mode>): Likewise.
4923         (avx2_vec_set_lo_v4di): Likewise.
4924         (avx2_vec_set_hi_v4di): Likewise.
4925         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
4926         (avx2_extracti128): Likewise.
4927         (avx2_inserti128): Likewise.
4928         (avx2_ashrvv8si): Likewise.
4929         (avx2_ashrvv4si): Likewise.
4930         (avx2_<lshift>vv8si): Likewise.
4931         (avx2_<lshift>v<mode>): Likewise.
4932         (avx2_<lshift>vv2di): Likewise.
4933         (avx2_gathersi<mode>): Likewise.
4934         (*avx2_gathersi<mode>): Likewise.
4935         (avx2_gatherdi<mode>): Likewise.
4936         (*avx2_gatherdi<mode>): Likewise.
4937         (avx2_gatherdi<mode>256): Likewise.
4938         (*avx2_gatherdi<mode>256): Likewise.
4939         (<plusminus_insn><mode>3): Use VI mode iterator.
4940         (*<plusminus_insn><mode>3): Use VI mode iterator.
4941         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4942         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4943         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4944         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4945         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
4946         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
4947         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
4948         Use VI2_AVX2 mode iterator.
4949         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
4950         Use VI2_AVX2 mode iterator.
4951         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
4952         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
4953         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
4954         Use VI4_AVX2 mode iterator.
4955         (ashr<mode>3): Use VI24_AVX2 mode iterator.
4956         (lshr<mode>3): Use VI248_AVX2 mode iterator.
4957         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
4958         Use VIMAX_AVX2 mode iterator.
4959         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
4960         Use VI mode iterator.
4961         (*andnot<mode>3): Update for AVX2.
4962         (*<any_logic:code><mode>3): Likewise.
4963         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
4964         Use VI1_AVX mode iterator.
4965         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
4966         Use VI2_AVX mode iterator.
4967         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
4968         Use VI1_AVX mode iterator.
4969         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
4970         Use VI8_AVX2 mode iterator.
4971         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
4972         Use VI1_AVX2 mode iterator.
4973         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
4974         Use VI124_AVX2 mode iterator.
4975         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
4976         Use SSESCALARMODE mode iterator.
4977         (abs<mode>2): Use VI124_AVX2 mode iterator.
4978         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
4979         Use VI8_AVX2 mode iterator.
4980         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
4981         Use VI1_AVX2 mode iterator.
4982         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
4983         Use VI1_AVX2 mode iterator.
4984         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
4985         Use VI2_AVX2 mode iterator.
4986         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
4987         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
4988         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
4989         avx_maskstore<ssemodesuffix><avxsizesuffix>.
4990         Use V48_AVX2 mode iterator.
4991         * doc/extend.texi: Document AVX2 built-in functions.
4992         * doc/invoke.texi: Document -mavx2.
4993
4994 2011-08-22  Matthias Klose <doko@debian.org>
4995
4996         Revert:
4997         2011-07-11  Arthur Loiret  <aloiret@debian.org>
4998                     Matthias Klose <doko@debian.org>
4999         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
5000         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
5001         convention.
5002         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
5003
5004 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
5005
5006         PR bootstrap/50146
5007         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
5008         to #ifndef HONOR_REG_ALLOC_ORDER block.
5009
5010 2011-08-21  Richard Henderson  <rth@redhat.com>
5011
5012         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
5013         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
5014         * resource.c (next_insn_no_annul): Likewise.
5015         (mark_set_resources): Likewise.
5016         * reorg.c (delete_from_delay_slot): Likewise.
5017         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
5018         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
5019
5020 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         * config/i386/i386.md (any_div): Remove.
5023         (sgnprefix): Update for removal.
5024         (u): Ditto.
5025
5026 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
5027
5028         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
5029         for ira_reg_class_max_nregs.  Increase pressure by 1.
5030         (mark_pseudo_regno_subword_dead): Use allocno class
5031         for ira_reg_class_max_nregs.
5032
5033 2011-08-20  Richard Henderson  <rth@redhat.com>
5034
5035         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
5036         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
5037         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
5038         config/c6x/ltf.c: Adjust include path for soft-fp.
5039
5040 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5041
5042         PR other/46770
5043         * config.gcc (tm_file): Add initfini-array.h if
5044         .init_arrary/.fini_array are supported.
5045
5046         * crtstuff.c: Don't generate .ctors nor .dtors sections if
5047         USE_INITFINI_ARRAY is defined.
5048
5049         * output.h (default_elf_init_array_asm_out_constructor): New.
5050         (default_elf_fini_array_asm_out_destructor): Likewise.
5051         * varasm.c (elf_init_array_section): Likewise.
5052         (elf_fini_array_section): Likewise.
5053         (get_elf_initfini_array_priority_section): Likewise.
5054         (default_elf_init_array_asm_out_constructor): Likewise.
5055         (default_elf_fini_array_asm_out_destructor): Likewise.
5056
5057         * config/initfini-array.h: New.
5058
5059 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5060
5061         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
5062         OK for ST_REGS and FP_REGS before taking those classes into account.
5063
5064 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5065
5066         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
5067         before checking for annulled branches.
5068
5069 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5070
5071         * config/i386/i386.c (ix86_binary_operator_ok): Use
5072         satisfies_constraint_L.
5073
5074 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5075             Michael Matz  <matz@suse.de>
5076
5077         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
5078         trunc (a + copysign (nextafter (0.5, 0.0), a)).
5079
5080 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
5081
5082         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5083         * doc/tm.texi: Regenerate.
5084         * targhooks.c (default_preferred_output_reload_class): Don't use
5085         PREFERRED_OUTPUT_RELOAD_CLASS macro.
5086         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
5087
5088 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
5089
5090         PR tree-optimization/48739
5091         * tree-ssa.c: Include cfgloop.h.
5092         (execute_update_addresses_taken): When updating ssa, if in loop closed
5093         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
5094         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
5095
5096 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
5097
5098         PR rtl-optimization/49936
5099         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
5100         for calculation of max register move costs.
5101
5102 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5103
5104         * c-parser.c (c_parser_postfix_expression): Convert operands of
5105         __builtin_complex to their semantic types.
5106
5107 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
5108
5109         PR middle-end/49721
5110         * explow.c (convert_memory_address_addr_space): Also permute the
5111         conversion and addition of constant for zero-extend.
5112
5113 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5114
5115         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
5116         * doc/extend.texi (__builtin_complex): Document.
5117
5118 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5119
5120         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
5121         beyond conversions.
5122         (convert_mult_to_widen): Convert constant inputs to the right type.
5123         (convert_plusminus_to_widen): Don't automatically reject inputs that
5124         are not an SSA_NAME.
5125         Convert constant inputs to the right type.
5126
5127 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5128
5129         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
5130         to the correct type.
5131
5132 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5133
5134         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
5135         unsigned inputs of different modes.
5136         (convert_plusminus_to_widen): Likewise.
5137
5138 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5139
5140         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
5141         'type'.
5142         Use 'type' from caller, not inferred from 'rhs'.
5143         Don't reject non-conversion statements. Do return lhs in this case.
5144         (is_widening_mult_p): Add new argument 'type'.
5145         Use 'type' from caller, not inferred from 'stmt'.
5146         Pass type to is_widening_mult_rhs_p.
5147         (convert_mult_to_widen): Pass type to is_widening_mult_p.
5148         (convert_plusminus_to_widen): Likewise.
5149
5150 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5151
5152         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
5153         Ensure the the larger type is the first operand.
5154
5155 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5156
5157         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
5158         unsupported unsigned multiplies to signed.
5159         (convert_plusminus_to_widen): Likewise.
5160
5161 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5162
5163         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
5164         conversion statement separating multiply-and-accumulate.
5165
5166 2011-08-19  Richard Guenther  <rguenther@suse.de>
5167
5168         PR tree-optimization/50067
5169         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
5170         offset only if we accounted for it.
5171
5172 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5173
5174         * config/arm/arm.md (maddhidi4): Remove '*' from name.
5175         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
5176         * optabs.c (find_widening_optab_handler_and_mode): New function.
5177         (expand_widen_pattern_expr): Use find_widening_optab_handler.
5178         (expand_binop_directly): Likewise.
5179         (expand_binop): Likewise.
5180         * optabs.h (find_widening_optab_handler): New macro define.
5181         (find_widening_optab_handler_and_mode): New prototype.
5182         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
5183         type precision rules.
5184         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
5185         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
5186         (is_widening_mult_rhs_p): Allow widening by more than one mode.
5187         Explicitly disallow mis-matched input types.
5188         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
5189         input types to fit the new handler.
5190         (convert_plusminus_to_widen): Likewise.
5191
5192 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5193
5194         * expr.c (expand_expr_real_2): Use widening_optab_handler.
5195         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
5196         (gen_insn): $N now means $a must be wider than $b, not consecutive.
5197         * optabs.c (widened_mode): New function.
5198         (expand_widen_pattern_expr): Use widening_optab_handler.
5199         (expand_binop_directly): Likewise.
5200         (expand_binop): Likewise.
5201         * optabs.h (widening_optab_handlers): New struct.
5202         (optab_d): New member, 'widening'.
5203         (widening_optab_handler): New function.
5204         (set_widening_optab_handler): New function.
5205         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
5206         widening_optab_handler.
5207         (convert_plusminus_to_widen): Likewise.
5208
5209 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5210
5211         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
5212         pedantic.
5213         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
5214         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
5215
5216 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5217
5218         * opth-gen.awk: Do not declare target save/restore structures and
5219         functions if IN_RTS defined.
5220
5221 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5222
5223         PR target/49437
5224         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
5225         when stack was realigned in interrupt handler prologue.
5226
5227 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
5228
5229         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
5230         (quals_from_declspecs): Assert _Noreturn not present.
5231         (grokdeclarator): Handle _Noreturn.
5232         (build_null_declspecs): Initialize noreturn_p.
5233         (declspecs_add_scspec): Handle RID_NORETURN.
5234         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
5235         (c_parser_attributes): Handle RID_NORETURN.
5236         * c-tree.h (struct c_declspecs): Add noreturn_p.
5237         * ginclude/stdnoreturn.h: New.
5238         * Makefile.in (USER_H): Add stdnoreturn.h.
5239
5240 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5241
5242         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
5243         (OPTION_MASK_ISA_AVX_UNSET): Update.
5244         (OPTION_MASK_ISA_AVX2_UNSET): New.
5245         (ix86_handle_option): Handle OPT_mavx2 case.
5246         * config/i386/cpuid.h (bit_AVX2): New.
5247         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5248         AVX2 feature.
5249         * config/i386/i386-c.c (ix86_target_macros_internal):
5250         Conditionally define __AVX2__.
5251         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
5252         Define "core-avx2" processor alias.  Handle avx2 option.
5253         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
5254         * config/i386/i386.h (TARGET_AVX2): New.
5255         * config/i386/i386.opt (mavx2): New.
5256         * doc/invoke.texi: Document -mavx2.
5257
5258 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
5259
5260         PR rtl-optimization/49890
5261         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
5262         subclasses of class which is superset of a pressure class.
5263
5264 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5265             Igor Zamyatin <igor.zamyatin@intel.com>
5266
5267         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
5268         with HOST_WIDE_INT for isa_flag.
5269         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
5270         isa variables.
5271
5272         * config/i386/i386.c (ix86_target_string): Replace int with
5273         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
5274         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
5275         (pta_flags): Removed.
5276         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
5277         (pta): Use HOST_WIDE_INT on flags.
5278         (builtin_isa): Use HOST_WIDE_INT on isa.
5279         (ix86_add_new_builtins): Likewise.
5280         (def_builtin): Use HOST_WIDE_INT on mask.
5281         (def_builtin_const): Likewise.
5282         (builtin_description): Likewise.
5283
5284         * config/i386/i386.opt (ix86_isa_flags): Replace int with
5285         HOST_WIDE_INT.
5286         (ix86_isa_flags_explicit): Likewise.
5287         (x_ix86_isa_flags_explicit): Likewise.
5288
5289 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
5290
5291         PR rtl-optimization/50107
5292         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
5293         (ira_hard_reg_in_set_p): New.
5294
5295         * ira-color.c (calculate_saved_nregs): New.
5296         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
5297         hard regs.
5298         (allocno_reload_assign, fast_allocation): Use
5299         ira_hard_reg_set_intersection_p instead of
5300         ira_hard_reg_not_in_set_p.
5301
5302         * ira.c (setup_reg_renumber): Use
5303         ira_hard_reg_set_intersection_p instead of
5304         ira_hard_reg_not_in_set_p.
5305         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
5306         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
5307
5308         * ira-costs.c (ira_tune_allocno_costs): Use
5309         ira_hard_reg_set_intersection_p instead of
5310         ira_hard_reg_not_in_set_p.
5311
5312 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5313             Igor Zamyatin <igor.zamyatin@intel.com>
5314
5315         * hwint.h (HOST_WIDE_INT_1): New.
5316
5317         * opt-functions.awk (switch_bit_fields): Initialize the
5318         host_wide_int field.
5319         (host_wide_int_var_name): New.
5320         (var_type_struct): Check and return HOST_WIDE_INT.
5321
5322         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
5323
5324         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
5325
5326         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
5327         check masks for HOST_WIDE_INT.
5328
5329         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
5330         (option_enabled): Likewise.
5331         (get_option_state): Likewise.
5332
5333         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
5334         to HOST_WIDE_INT.
5335
5336 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5337             Marc Glisse  <marc.glisse@normalesup.org>
5338
5339         PR libstdc++-v3/1773
5340         * target.def (decl_mangling_context): New C++ hook.
5341         * doc/tm.texi: Regenerate.
5342         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
5343         * config/sol2-protos.h: Group by source file.
5344         (solaris_cxx_decl_mangling_context): Declare.
5345         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
5346         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
5347         Use $<.
5348         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
5349         Add sol2-stubs.o to extra_objs.
5350
5351 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
5352
5353         PR target/50009
5354         * stor-layout.c (update_alignment_for_field): Don't ICE on
5355         packed flexible array members if ms_bitfield_layout_p.
5356
5357         PR target/50092
5358         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
5359         on the result before returning it.
5360
5361         PR debug/50017
5362         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
5363         is a debug stmt, use location of the first non-debug stmt after it.
5364
5365 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5366
5367         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
5368         (arm_size_rtx_costs): Likewise.
5369
5370 2011-08-18  Richard Guenther  <rguenther@suse.de>
5371
5372         * tree.h (tree_int_cst_msb): Remove.
5373         * tree.c (tree_int_cst_msb): Likewise.
5374         (tree_int_cst_sign_bit): Move from ...
5375         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
5376
5377 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5378
5379         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
5380         * doc/tm.texi: Regenerate.
5381         * target.def (rtx_costs): Add an opno parameter.
5382         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5383         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5384         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5385         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5386         * cse.c (COST_IN): Add an opno parameter.
5387         (notreg_cost): Likewise.  Update call to rtx_cost.
5388         (COST, fold_rtx): Update accordingly.
5389         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
5390         * expmed.c (emit_store_flag): Likewise.
5391         * optabs.c (avoid_expensive_constant): Add an opno parameter.
5392         Update call to rtx_cost.
5393         (expand_binop_directly, expand_binop): Likewise.
5394         (expand_twoval_binop, prepare_cmp_insn): Likewise.
5395         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
5396         (set_src_cost, get_full_set_src_cost): Update accordingly.
5397         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
5398         to target hook.
5399         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
5400         (default_adress_cost): Update calls to rtx_cost.
5401
5402         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
5403         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
5404         (arm_rtx_costs): Add an opno parameter.
5405         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
5406         adjust any recursive rtx-cost calls.
5407         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
5408         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5409         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
5410         * config/cris/cris.c (cris_rtx_costs): Likewise.
5411         * config/frv/frv.c (frv_rtx_costs): Likewise.
5412         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
5413         * config/i386/i386.c (ix86_rtx_costs): Likewise.
5414         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
5415         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
5416         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
5417         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
5418         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
5419         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
5420         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
5421         * config/mep/mep.c (mep_rtx_cost): Likewise.
5422         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
5423         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
5424         (mips_zero_extend_cost): Add an opno parameter.
5425         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
5426         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
5427         to rtx_cost.
5428         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
5429         rtx-cost calls.
5430         * config/pa/pa.c (hppa_rtx_costs): Likewise.
5431         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
5432         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
5433         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
5434         (rs6000_debug_rtx_costs): Likewise.
5435         * config/s390/s390.c (s390_rtx_costs): Likewise.
5436         * config/score/score-protos.h (score_rtx_costs): Likewise.
5437         * config/score/score.c (score_rtx_costs): Likewise.
5438         * config/sh/sh.c (andcosts): Update call to rtx_cost.
5439         (sh_rtx_costs): Add an opno parameter.
5440         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
5441         * config/spu/spu.c (spu_rtx_costs): Likewise.
5442         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
5443         * config/v850/v850.c (v850_rtx_costs): Likewise.
5444         * config/vax/vax.c (vax_rtx_costs): Likewise.
5445         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
5446
5447 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5448
5449         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
5450         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
5451         rtx_cost.
5452         * calls.c (precompute_register_parameters): Likewise.
5453         * combine.c (expand_compound_operation, make_extraction): Likewise.
5454         (force_to_mode, distribute_and_simplify_rtx): Likewise.
5455         * dse.c (find_shift_sequence): Likewise.
5456         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
5457         * expr.c (compress_float_constant): Likewise.
5458         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
5459         * gcse.c (want_to_gcse_p): Likewise.
5460         * ifcvt.c (noce_try_sign_mask): Likewise.
5461         * loop-doloop.c (doloop_optimize): Likewise.
5462         * loop-invariant.c (create_new_invariant): Likewise.
5463         * optabs.c (avoid_expensive_constant): Likewise.
5464         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
5465         (try_replace_in_use, reload_cse_move2add): Likewise.
5466         * reload1.c (calculate_elim_costs_all_insns): Likewise.
5467         (note_reg_elim_costly): Likewise.
5468         * rtlanal.c (insn_rtx_cost): Likewise.
5469         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5470         * stmt.c (lshift_cheap_p): Likewise.
5471         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
5472         * config/avr/avr.c (final_prescan_insn): Likewise.
5473         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5474         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
5475
5476 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5477
5478         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
5479         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
5480         * cfgloopanal.c (seq_cost): Likewise.
5481         * loop-invariant.c (create_new_invariant): Likewise.
5482         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
5483         (reload_cse_move2add): Use get_full_set_rtx_cost.
5484
5485 2011-08-18  Richard Guenther  <rguenther@suse.de>
5486
5487         * expr.c (get_inner_reference): Fix typo in last change.
5488
5489 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
5490             Joseph Myers  <joseph@codesourcery.com>
5491
5492         PR tree-optimization/49963
5493         * hwint.c (absu_hwi): Define.
5494         * hwint.h (absu_hwi): Declare.
5495         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
5496         of abs_hwi.
5497         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
5498         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
5499
5500 2011-08-18  Richard Guenther  <rguenther@suse.de>
5501
5502         * expr.c (get_inner_reference): Sign-extend the constant
5503         twos-complement offset before doing arbitrary precision
5504         arithmetic on it.
5505         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
5506         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
5507         to get_constraint_for_ptr_offset.
5508
5509 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5510
5511         PR target/50068
5512         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
5513
5514 2011-08-17  Richard Guenther  <rguenther@suse.de>
5515
5516         * tree.h (convert_to_ptrofftype_loc): New function.
5517         (convert_to_ptrofftype): Define.
5518         * builtins.c (expand_builtin_bzero): Use size_type_node.
5519         (fold_builtin_bzero): Likewise.
5520         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
5521         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
5522         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
5523         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
5524         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
5525         * fold-const.c (build_range_check): Negate using the original type.
5526         (fold_unary_loc): Use fold_build_pointer_plus_loc.
5527         * gimple-fold.c (gimple_adjust_this_by_delta): Use
5528         convert_to_ptrofftype.
5529         * gimplify.c (gimplify_self_mod_expr): Likewise.
5530         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
5531         (graphite_create_new_loop_guard): Likewise.
5532         * graphite-sese-to-poly.c (my_long_long): Remove.
5533         (scop_ivs_can_be_represented): Adjust.
5534         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
5535         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
5536         * tree-loop-distribution.c (build_size_arg_loc): Use
5537         size_type_node.
5538         (generate_memset_zero): Simplify.
5539         * tree-mudflap.c: Use fold_convert, not convert.
5540         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
5541         its own type.
5542         (determine_offset): Likewise for DR_STEP.
5543         (valid_initializer_p): Likewise.
5544         * tree-profile.c (prepare_instrumented_value): Convert the pointer
5545         to an integer type of same size.
5546         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
5547         to sizetype without need.
5548         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5549         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
5550         * tree-ssa-loop-manip.c (create_iv): Likewise.
5551         (determine_exit_conditions): Adjust comment.
5552         * tree-ssa-pre.c (create_expression_by_pieces): Use
5553         convert_to_ptrofftype.
5554         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
5555         * varasm.c (array_size_for_constructor): Compute using double_ints.
5556
5557 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5558
5559         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
5560         when generating an integer result where possible.  Short-cut
5561         comparison against 0 also for QImode.
5562
5563 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5564
5565         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
5566         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
5567         prototype.
5568         * config/spu/spu.c (spu_legitimize_reload_address): New function.
5569         (spu_legitimate_address_p): Do not check displacement if the base
5570         is an eliminable stack register.
5571
5572 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
5573
5574         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
5575         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
5576         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
5577         m32c_preferred_output_reload_class): Remove.
5578         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
5579         Change rclass argument and return types to reg_class_t. Use
5580         reg_class_subset_p instead of class_sizes.
5581         (m32c_preferred_output_reload_class): Make static. Change rclass
5582         argument and return types to reg_class_t.
5583         (TARGET_PREFERRED_RELOAD_CLASS,
5584         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5585
5586 2011-08-16  Kai Tietz  <ktietz@redhat.com>
5587
5588         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
5589
5590 2011-08-16  Richard GUenther  <rguenther@suse.de>
5591
5592         PR tree-optimization/50082
5593         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
5594         warnings here, instead of ...
5595         (ssa_forward_propagate_and_combine): ... here.
5596         (forward_propagate_into_comparison_1): Adjust.
5597         (forward_propagate_into_comparison): Likewise.
5598         (forward_propagate_into_gimple_cond): Likewise.
5599         (forward_propagate_into_cond): Likewise.
5600
5601 2011-08-16  Andreas Schwab  <schwab@redhat.com>
5602
5603         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
5604         instead of ggc_alloc_zone_vec_rtvec_def.
5605
5606 2011-08-16  Richard Guenther  <rguenther@suse.de>
5607
5608         * tree.h (ptrofftype_p): New helper function.
5609         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
5610         offset verification.
5611         (verify_gimple_assign_binary): Likewise.
5612         * tree.c (build2_stat): Likewise.
5613         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
5614         (reset_evolution_in_loop): Likewise.
5615         * tree-chrec.h (build_polynomial_chrec): Likewise.
5616
5617 2011-08-16  Liang Wang  <lwang1@marvell.com>
5618
5619         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
5620         ggc_alloc_zone_vec_rtvec_def.
5621
5622 2011-08-16  Richard Guenther  <rguenther@suse.de>
5623
5624         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
5625         helper factored out from ...
5626         (extract_range_from_binary_expr_1): ... here.  Re-structure
5627         to not glob handling too different tree codes.
5628
5629 2011-08-15  Richard Henderson  <rth@redhat.com>
5630
5631         PR middle-end/50006
5632         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
5633         setting out to include allocate_stack named pattern as well.
5634         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
5635         * stmt.c (expand_stack_restore): Likewise.
5636
5637 2011-08-15  Richard Guenther  <rguenther@suse.de>
5638
5639         PR middle-end/50082
5640         * fold-const.c (maybe_canonicalize_comparison_1): Properly
5641         convert the modified operand to the other operand type.
5642         (fold_comparison): Call maybe_canonicalize_comparison_1 with
5643         useless conversions stripped from comparison operands.
5644
5645 2011-08-15  Richard Guenther  <rguenther@suse.de>
5646
5647         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
5648         (extract_range_from_unary_expr_1): Restructure.
5649
5650 2011-08-15  Richard Guenther  <rguenther@suse.de>
5651
5652         PR tree-optimization/50058
5653         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
5654         copy matching.
5655
5656 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5657
5658         PR target/50022
5659         * config/arm/arm.c (output_move_double): Add 2 parameters
5660         to count the number of insns emitted and whether to emit or not.
5661         Use the flag to decide when to emit and count number of instructions
5662         that will be emitted.
5663         Handle case where output_move_double might be called for calculating
5664         lengths with an invalid constant.
5665         (arm_count_output_move_double_insns): Define.
5666         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
5667         (output_move_double): Adjust prototype.
5668         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
5669         output_move_double.
5670         ("*movdi_vfp_cortexa8"): Likewise and add attribute
5671         for ce_count.
5672         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
5673         ("*movdf_soft_insn"): Likewise.
5674         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
5675         ("*cirrus_thumb2_movdi"): Likewise.
5676         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
5677         ("*cirrus_movdf_hard_insn"): Likewise.
5678         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
5679         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
5680         ("mov<mode>_internal VMMX"): Likewise.
5681         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
5682
5683 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
5684
5685         * config/i386/i386.c (ix86_expand_round_sse4): New function.
5686         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
5687         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
5688         for TARGET_ROUND.
5689
5690         (rint<mode>2): Simplify TARGET_ROUND check.
5691         (floor<mode>2): Ditto.
5692         (ceil<mode>2): Ditto.
5693         (btrunc<mode>2): Ditto.
5694
5695 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
5696
5697         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
5698         as mmix_preferred_output_reload_class.
5699
5700 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
5701
5702         * PR target/49903
5703         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
5704         (branch_unspec): New insn.
5705         (branch): Beauty farm.
5706         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
5707         to be IF_THEN_ELSE.
5708         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
5709         New static functions.
5710         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
5711         Use CONST_INT_P.  Beauty.
5712
5713 2011-08-12  Richard Henderson  <rth@redhat.com>
5714
5715         PR rtl-opt/49994
5716         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
5717         * sched-deps.c (init_deps): Clear it.
5718         (deps_analyze_insn): Consume it.
5719         (sched_analyze_insn): Fill it.
5720
5721 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5722
5723         PR target/48328
5724         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
5725         for tbh instructions.
5726
5727 2011-08-12  Diego Novillo  <dnovillo@google.com>
5728
5729         * data-streamer.h (streamer_write_zero): Rename from output_zero.
5730         (streamer_write_uhwi): Rename from lto_output_uleb128.
5731         (streamer_write_hwi): Rename from output_sleb128.
5732         (streamer_write_string): Rename from lto_output_string.
5733         (streamer_string_index): Rename from lto_string_index.
5734         (streamer_write_string_with_length): Rename from
5735         lto_output_string_with_length.
5736         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
5737         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
5738         (streamer_read_string): Rename from lto_input_string.
5739         (streamer_read_indexed_string): Rename from input_string_internal.
5740         (streamer_read_uhwi): Rename from lto_input_uleb128.
5741         (streamer_read_hwi): Rename from lto_input_sleb128.
5742         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
5743         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
5744         (streamer_write_enum): Rename from lto_output_enum.
5745         (streamer_read_enum): Rename from lto_input_enum.
5746         (streamer_write_record_start): Rename from output_record_start.
5747         (streamer_read_record_start): Rename from input_record_start.
5748         (streamer_write_bitpack): Rename from lto_output_bitpack.
5749         (streamer_read_bitpack): Rename from lto_input_bitpack.
5750         (streamer_write_char_stream): Rename from lto_output_1_stream.
5751         (streamer_read_uchar): Rename from lto_input_1_unsigned.
5752         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
5753         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
5754         (streamer_read_string_cst): Rename from input_string_cst.
5755         (streamer_read_chain): Rename from lto_input_chain.
5756         (streamer_alloc_tree): Rename from lto_materialize_tree.
5757         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
5758         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
5759         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
5760         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
5761         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
5762         (streamer_write_chain): Rename from lto_output_chain.
5763         (streamer_write_tree_header): Rename from lto_output_tree_header.
5764         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
5765         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
5766         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
5767         (streamer_write_builtin): Rename from lto_output_builtin_tree.
5768         (streamer_check_handled_ts_structures): Rename from
5769         check_handled_ts_structures.
5770         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
5771         (streamer_tree_cache_insert_at): Rename from
5772         lto_streamer_cache_insert_at.
5773         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
5774         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
5775         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
5776         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
5777         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
5778         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
5779         (write_identifier): Rename from output_identifier.
5780         (write_ts_common_tree_pointers): Rename from
5781         lto_output_ts_common_tree_pointers.
5782         (write_ts_vector_tree_pointers): Rename from
5783         lto_output_ts_vector_tree_pointers.
5784         (write_ts_complex_tree_pointers): Rename from
5785         lto_output_ts_complex_tree_pointers.
5786         (write_ts_decl_minimal_tree_pointers): Rename from
5787         lto_output_ts_decl_minimal_tree_pointers.
5788         (write_ts_decl_common_tree_pointers): Rename from
5789         lto_output_ts_decl_common_tree_pointers.
5790         (write_ts_decl_non_common_tree_pointers): Rename from
5791         lto_output_ts_decl_non_common_tree_pointers.
5792         (write_ts_decl_with_vis_tree_pointers): Rename from
5793         lto_output_ts_decl_with_vis_tree_pointers.
5794         (write_ts_field_decl_tree_pointers): Rename from
5795         lto_output_ts_field_decl_tree_pointers.
5796         (write_ts_function_decl_tree_pointers): Rename from
5797         lto_output_ts_function_decl_tree_pointers.
5798         (write_ts_type_common_tree_pointers): Rename from
5799         lto_output_ts_type_common_tree_pointers.
5800         (write_ts_type_non_common_tree_pointers): Rename from
5801         lto_output_ts_type_non_common_tree_pointers.
5802         (write_ts_list_tree_pointers): Rename from
5803         lto_output_ts_list_tree_pointers.
5804         (write_ts_vec_tree_pointers): Rename from
5805         lto_output_ts_vec_tree_pointers.
5806         (write_ts_exp_tree_pointers): Rename from
5807         lto_output_ts_exp_tree_pointers.
5808         (write_ts_block_tree_pointers): Rename from
5809         lto_output_ts_block_tree_pointers.
5810         (write_ts_binfo_tree_pointers): Rename from
5811         lto_output_ts_binfo_tree_pointers.
5812         (write_ts_constructor_tree_pointers): Rename from
5813         lto_output_ts_constructor_tree_pointers.
5814         (write_ts_target_option): Rename from lto_output_ts_target_option.
5815         (write_ts_translation_unit_decl_tree_pointers): Rename from
5816         lto_output_ts_translation_unit_decl_tree_pointers.
5817         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
5818         Rename from lto_streamer_cache_add_to_node_array.
5819         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
5820         (record_common_node): Rename from lto_record_common_node.
5821
5822         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
5823         declarations.
5824         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
5825         function.
5826         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
5827         unused function.
5828         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
5829         (ipa-reference.o): Likewise.
5830         * lto-section-out.c: Include data-streamer.h.
5831         * ipa-reference.c: Include data-streamer.h.
5832
5833 2011-08-12  Nick Clifton  <nickc@redhat.com>
5834
5835         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
5836         * doc/md.texi (cmpstrn): Note that the comparison stops if both
5837         fetched bytes are zero.
5838         (cmpstr): Likewise.
5839         (cmpmem): Note that the comparison does not stop if both of the
5840         fetched bytes are zero.
5841
5842 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
5843
5844         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
5845         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
5846         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
5847         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
5848         to integer_type_node.
5849         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
5850         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
5851         * builtins.c (expand_builtin_in): Ditto.
5852         (mathfn_built_in_1): Ditto.
5853         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
5854         BUILT_IN_IFLOOR.
5855         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
5856         BUILT_IN_IROUND.
5857         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
5858         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
5859         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
5860
5861 2011-08-12  Richard Guenther  <rguenther@suse.de>
5862
5863         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
5864
5865 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
5866
5867         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
5868
5869 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
5870
5871         * config/arm/arm.c (get_label_padding): New function.
5872         (create_fix_barrier, arm_reorg): Use it.
5873
5874 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
5875
5876         PR target/49781
5877         * config/i386/i386.md (*lea_5_zext): New.
5878         (*lea_6_zext): Ditto.
5879         * config/i386/predicates.md (const_32bit_mask): New predicate.
5880         (lea_address_operand): Reject AND.
5881         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
5882         const_32bit_mask immediate.
5883         (ix86_print_operand_address): Handle AND.
5884         (memory_address_length): Ditto.
5885
5886 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
5887             Brian Hackett  <bhackett1024@gmail.com>
5888
5889         * plugin.def: Add event for finish_decl.
5890         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
5891         * c-decl.c (finish_decl): Invoke callbacks on above event.
5892         * doc/plugins.texi: Document above event.
5893
5894 2011-08-11  Richard Guenther  <rguenther@suse.de>
5895
5896         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
5897         lookups, make looking through aggregate copies stronger.
5898
5899 2011-08-11  Richard Henderson  <rth@redhat.com>
5900
5901         PR bootstrap/50018
5902         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
5903
5904 2011-08-11  Richard Guenther  <rguenther@suse.de>
5905
5906         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
5907         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
5908         (vrp_visit_stmt): Likewise.
5909
5910 2011-08-11  Richard Guenther  <rguenther@suse.de>
5911
5912         PR middle-end/50040
5913         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
5914         load of the other piece with TREE_NO_WARNING.
5915         * tree-flow.h (warn_uninit): Adjust prototype.
5916         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
5917         the base variable and the expression that is used separately.
5918         Properly query all TREE_NO_WARNING flags.
5919         (struct walk_data): Remove.
5920         (warn_uninitialized_var): Likewise.
5921         (warn_uninitialized_vars): Do not walk gimple pieces but simply
5922         look at all SSA uses of the statement.  Handle unused memory
5923         separately.
5924         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
5925
5926 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5927
5928         * config/rx/rx.md (movsicc): Allow register to register transfers.
5929         (*movsicc): Likewise.
5930         (*stcc): Restrict this pattern to EQ and NE compares.
5931         (*stcc_reg): New pattern.  Works for any comparison but only for
5932         register transfers.
5933
5934 2011-08-11   Diego Novillo  <dnovillo@google.com>
5935
5936         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
5937         Call stream_write_tree instead of output_record_start.
5938         (lto_output_ts_binfo_tree_pointers): Likewise.
5939
5940         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
5941         Convert it to a macro.
5942         (stream_read_tree): Likewise.
5943
5944         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
5945         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
5946
5947         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
5948         and tree_read_bitfields.
5949         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
5950         (lto_write_tree): Call it.
5951         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
5952         * streamer-hooks.h (struct streamer_hooks): Remove fields
5953         name, is_streamable and alloc_tree. Update all users.
5954         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
5955         (lto_materialize_tree): ... here.
5956         Handle CALL_EXPR codes.
5957         Remove call to lto_streamer_cache_append.
5958         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
5959         * tree-streamer.h (tree_read_bitfields): Declare.
5960
5961         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
5962         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
5963         * tree-streamer.h (stream_read_tree): New.  Replace all calls
5964         to lto_input_tree with it.
5965         (stream_write_tree): New.  Replace all calls to lto_output_tree,
5966         lto_output_tree_ref and lto_output_tree_or_ref with it.
5967         * lto-streamer-in.c (lto_read_tree): Inline code from
5968         lto_streamer_read_tree.
5969         (lto_input_tree): Move from tree-streamer-in.c.
5970         * lto-streamer-out.c (lto_output_tree_ref): Make static.
5971         Remove handling of NULL values for EXPR.
5972         Do not handle EXPRs that are not indexable.
5973         (lto_write_tree): Move from tree-streamer-out.c.
5974         Inline lto_streamer_write_tree.
5975         (lto_output_tree): Move from tree-streamer-out.c.
5976         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
5977         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
5978         (lto_preload_common_nodes): Likewise.
5979         Remove assertions and adjustments for nodes
5980         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
5981         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
5982         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
5983         * lto-streamer.h (lto_input_tree): Declare.
5984         (lto_output_tree_ref): Remove.
5985         * streamer-hooks.h (struct streamer_hooks): Remove fields
5986         preload_common_nodes, indexable_with_decls_p,
5987         pack_value_fields, unpack_value_fields and output_tree_header.
5988         Update all users.
5989         * tree-streamer-in.c (lto_materialize_tree): Make extern.
5990         (lto_input_tree_pointers): Likewise.
5991         (lto_read_tree): Move to lto-streamer-in.c.
5992         (lto_input_integer_cst): Make extern.
5993         (lto_get_pickled_tree): Likewise.
5994         (lto_get_builtin_tree): Likewise.
5995         (lto_input_tree): Move to lto-streamer-in.c.
5996         * tree-streamer-out.c (pack_value_fields): Make extern.
5997         (lto_output_tree_or_ref): Remove.  Replace all callers with
5998         calls to stream_write_tree.
5999         (lto_output_builtin_tree): Make extern.
6000         (lto_streamer_write_tree): Inline into lto_write_tree.
6001         (lto_output_tree_pointers): Make extern.
6002         (lto_output_tree_header): Likewise.
6003         (lto_output_integer_cst): Likewise.
6004         (lto_write_tree): Move to lto-streamer-out.c.
6005         (lto_output_tree): Likewise.
6006         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
6007         (preload_common_nodes): Likewise.
6008         (lto_streamer_cache_create): Call it.
6009         * tree-streamer.h: Include streamer-hooks.h.
6010         (stream_write_tree): New.
6011         (stream_read_tree): New.
6012         (lto_input_tree): Remove.
6013         (lto_materialize_tree): Declare.
6014         (lto_input_tree_pointers): Declare.
6015         (lto_get_pickled_tree): Declare.
6016         (lto_get_builtin_tree): Declare.
6017         (lto_input_integer_cst): Declare.
6018         (lto_output_tree_header): Declare.
6019         (pack_value_fields): Declare.
6020         (lto_output_tree_pointers): Declare.
6021         (lto_output_integer_cst): Declare.
6022         (lto_output_builtin_tree): Declare.
6023
6024 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6025
6026         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
6027         only if producer writes to the register given by regno.
6028
6029 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6030             Alexander Monakov  <amonakov@ispras.ru>
6031
6032         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
6033         (sched_get_condition_with_rev_uncached): ... this.  Factor out
6034         condition caching logic into ...
6035         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
6036         attempt to use cache for instructions with zero luid.
6037         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
6038         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
6039
6040 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6041
6042         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
6043         get_seqno_for_a_jump.  Update the caller.
6044         (get_seqno_by_succs): New.  Use it ...
6045         (get_seqno_for_a_jump): ... here to find a seqno if looking at
6046         predecessors was not sufficient.
6047         (get_seqno_by_preds): Include head in iteration range, exclude insn.
6048
6049 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6050
6051         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
6052
6053 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6054
6055         * sel-sched-ir.h (register_unavailable_p): Declare.
6056         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
6057         (set_unavailable_target_for_expr): ... here to properly test
6058         availability of a register.
6059         (speculate_expr): Ditto.
6060         * sel-sched.c (substitute_reg_in_expr): Ditto.
6061         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
6062
6063 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6064
6065         * sel-sched.c (verify_target_availability): Fix usage of
6066         hard_regno_nregs.
6067
6068 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6069
6070         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
6071         recognized by cannot_copy_insn_p hook and volatile instructions.
6072
6073 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6074
6075         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
6076
6077 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
6078
6079         * doc/md.texi (define_bypass): Say that the instruction names can
6080         be filename-style globs.
6081         * Makefile.in (FNMATCH_H): Define.
6082         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
6083         * genattrtab.c: Include fnmatch.h.
6084         (bypass_list): Change field name from "insn" to "pattern".
6085         (gen_bypass_1): Update accordingly.
6086         (process_bypasses): Use fnmatch to check for matches between
6087         insn reservations and define_bypasses.
6088         * genautomata.c: Include fnmatch.h.
6089         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
6090         and out_pattern respectively.
6091         (gen_bypass, insert_bypass): Update accordingly.
6092         (for_each_matching_insn, process_bypass_2, process_bypass_1)
6093         (process_bypass): New functions.
6094         (process_decls): Use process_bypass.  Update after field name changes.
6095
6096 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
6097
6098         PR target/49687
6099         * config/avr/avr.md (smulqi3_highpart): New insn.
6100         (umulqi3_highpart): New insn.
6101         (*subqi3.ashiftrt7): New insn.
6102         (smulhi3_highpart): New expander.
6103         (umulhi3_highpart): Nex expander.
6104         (*smulhi3_highpart_call): New insn.
6105         (*umulhi3_highpart_call): New insn.
6106         (extend_u): New code attribute.
6107         (extend_prefix): Rename code attribute to extend_su.
6108         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
6109         widening QI/HI multiply.
6110
6111 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
6112
6113         PR tree-optimization/50039
6114         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
6115         that DEF_STMT has a stmt_vec_info.
6116
6117 2011-08-10  Richard Guenther  <rguenther@suse.de>
6118
6119         * tree.h (can_trust_pointer_alignment): Remove.
6120         * builtins.c (can_trust_pointer_alignment): Remove.
6121
6122 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
6123
6124         * c-typeck.c (scalar_to_vector): New function. Try scalar to
6125         vector conversion.
6126         (stv_conv): New enum for scalar_to_vector return type.
6127         (build_binary_op): Adjust.
6128         * doc/extend.texi: Description of scalar to vector expansion.
6129
6130 2011-08-10  Richard Guenther  <rguenther@suse.de>
6131
6132         * tree.h (get_pointer_alignment): Remove max-align argument.
6133         (get_object_alignment): Likewise.
6134         * builtins.c (get_object_alignment_1): Adjust.
6135         (get_object_alignment): Remove max-align argument.
6136         (get_pointer_alignment): Likewise.
6137         (expand_builtin_strlen): Adjust.
6138         (expand_builtin_memcpy): Likewise.
6139         (expand_builtin_mempcpy_args): Likewise.
6140         (expand_builtin_strncpy): Likewise.
6141         (expand_builtin_memset_args): Likewise.
6142         (expand_builtin_memcmp): Likewise.
6143         (expand_builtin_strcmp): Likewise.
6144         (expand_builtin_strncmp): Likewise.
6145         (get_builtin_sync_mem): Likewise.
6146         (fold_builtin_memset): Likewise.
6147         (fold_builtin_memory_op): Likewise.
6148         (expand_builtin_memory_chk): Likewise.
6149         * emit-rtl.c (get_mem_align_offset): Likewise.
6150         (set_mem_attributes_minus_bitpos): Likewise.
6151         * expr.c (expand_assignment): Likewise.
6152         (expand_expr_real_1): Likewise.
6153         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
6154         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6155         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
6156         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6157         * value-prof.c (gimple_stringops_transform): Likewise.
6158
6159 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
6160
6161         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
6162         * doc/tm.texi: Regenerate.
6163
6164 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
6165
6166         PR target/29560
6167         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
6168         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
6169         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
6170         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
6171         shift target is unused.
6172
6173 2011-08-10  Richard Guenther  <rguenther@suse.de>
6174
6175         PR tree-optimization/49937
6176         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
6177         using get_object_alignment_1.
6178
6179 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6180
6181         * config/i386/i386.c (ix86_emit_i387_round): New function.
6182         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
6183         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
6184         Use ix86_emit_i387_round to expand round function for i387 math.
6185         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
6186         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
6187
6188 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6189
6190         * config/sync.c: Move to ../libgcc.
6191         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
6192         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
6193         Remove.
6194
6195 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6196
6197         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
6198         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
6199         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
6200         Change 'from' and 'to' arguments type to reg_class_t.
6201         (TARGET_REGISTER_MOVE_COST): Define.
6202
6203 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
6204
6205         PR target/50026
6206         Revert:
6207         PR rtl-optimization/49990
6208         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6209         ignore classes which can not change mode.
6210         (find_costs_and_classes): Ditto.
6211
6212 2011-08-09  Richard Guenther  <rguenther@suse.de>
6213
6214         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
6215         information for ranges with only negative values.
6216         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
6217         BIT_AND_EXPR handling to handle ranges with negative values.
6218
6219 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
6220
6221         * config/i386/i386.c: Remove traling spaces.
6222         * config/i386/sse.md: Likewise.
6223         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
6224         (*fma_fmsub_<mode>): Likewise.
6225         (*fma_fnmadd_<mode>): Likewise.
6226         (*fma_fnmsub_<mode>): Likewise.
6227
6228 2011-08-09  Nick Clifton  <nickc@redhat.com>
6229
6230         * config/rx/rx.md: Disable extender peepholes at -O3.
6231
6232 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6233
6234         PR target/49781
6235         * config/i386/i386.md (reload_noff_load): New.
6236         (reload_noff_store): Ditto.
6237         * config/i386/i386.c (ix86_secondary_reload): Use
6238         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
6239         double-word moves from/to non-offsetable addresses instead of
6240         generating XMM temporary.
6241
6242 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6243
6244         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
6245
6246 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
6247
6248         PR tree-optimization/50014
6249         * tree-vect-loop.c (vectorizable_reduction): Get def type before
6250         calling vect_get_vec_def_for_stmt_copy ().
6251
6252 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
6253
6254         PR rtl-optimization/49990
6255         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6256         ignore classes which can not change mode.
6257         (find_costs_and_classes): Ditto.
6258
6259 2011-08-08  Richard Henderson  <rth@redhat.com>
6260
6261         PR middle-end/49990
6262         * config/i386/i386.c (ix86_expand_prologue): Call
6263         for SEH target gen_prologue_use instead of gen_blockage
6264         at prologue's end.
6265
6266 2011-08-08  Martin Jambor  <mjambor@suse.cz>
6267
6268         PR middle-end/49923
6269         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
6270         memory alignment.
6271
6272 2011-08-08   Diego Novillo  <dnovillo@google.com>
6273
6274         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
6275         (DATA_STREAMER_H): New.
6276         (GIMPLE_STREAMER_H): New.
6277         (TREE_STREAMER_H): New.
6278         (STREAMER_HOOKS_H): New.
6279         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
6280         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
6281         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
6282         (data-streamer.o): New.
6283         (data-streamer-in.o): New.
6284         (data-streamer-out.o): New.
6285         (gimple-streamer-in.o): New.
6286         (gimple-streamer-out.o): New.
6287         (streamer-hooks.o): New.
6288         (tree-streamer.o): New.
6289         (tree-streamer-in.o): New.
6290         (tree-streamer-out.o): New.
6291         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6292         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
6293         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6294         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
6295         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6296         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
6297         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6298         (ipa-inline-analysis.o): Likewise.
6299         (ipa-pure-const.o): Likewise.
6300         * data-streamer-in.c: New.
6301         * data-streamer-out.c: New.
6302         * data-streamer.c: New.
6303         * data-streamer.h: New.
6304         * gimple-streamer-in.c: New.
6305         * gimple-streamer-out.c: New.
6306         * gimple-streamer.h: New.
6307         * ipa-inline-analysis.c: Include data-streamer.h.
6308         * ipa-prop.c: Include data-streamer.h.
6309         * ipa-pure-const.c: Include data-streamer.h.
6310         * lto-cgraph.c: Include data-streamer.h.
6311         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
6312         (lto_input_widest_uint_uleb128): Likewise.
6313         (lto_input_sleb128): Likewise.
6314         (bp_unpack_var_len_unsigned): Likewise.
6315         (bp_unpack_var_len_int): Likewise.
6316         * lto-section-out.c (lto_output_uleb128_stream): Move to
6317         data-streamer-out.c.
6318         (lto_output_widest_uint_uleb128_stream): Likewise.
6319         (lto_output_sleb128_stream): Likewise.
6320         (bp_pack_var_len_unsigned): Likewise.
6321         (bp_pack_var_len_int): Likewise.
6322         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
6323         (struct string_slot): Remove.  Update all users.
6324         (lto_tag_check_set): Make extern.
6325         (lto_tag_check_range): Move to lto-streamer.h.
6326         (lto_tag_check): Likewise.
6327         (hash_string_slot_node): Remove.  Update all users.
6328         (eq_string_slot_node): Remove.  Update all users.
6329         (string_for_index): Move to data-streamer-in.c
6330         (input_string_internal): Likewise.
6331         (input_string_cst): Move to tree-streamer-in.c.
6332         (input_identifier): Likewise.
6333         (lto_input_string): Move to data-streamer-in.c
6334         (input_record_start): Move to data-streamer.h
6335         (canon_file_name): Use new definition of struct string_slot
6336         from data-streamer.h.  Set S_SLOT.LEN.
6337         (lto_input_location): Make extern.
6338         (lto_input_chain): Move to tree-streamer-in.c.
6339         (lto_init_eh): Make extern.
6340         (input_phi): Move to gimple-streamer-in.c.
6341         (input_gimple_stmt): Likewise.
6342         (input_bb): Likewise.
6343         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
6344         (unpack_ts_real_cst_value_fields): Likewise.
6345         (unpack_ts_fixed_cst_value_fields): Likewise.
6346         (unpack_ts_decl_common_value_fields): Likewise.
6347         (unpack_ts_decl_wrtl_value_fields): Likewise.
6348         (unpack_ts_decl_with_vis_value_fields): Likewise.
6349         (unpack_ts_function_decl_value_fields): Likewise.
6350         (unpack_ts_type_common_value_fields): Likewise.
6351         (unpack_ts_block_value_fields): Likewise.
6352         (unpack_ts_translation_unit_decl_value_fields): Likewise.
6353         (unpack_value_fields): Likewise.
6354         (lto_materialize_tree): Likewise.
6355         (lto_input_ts_common_tree_pointers): Likewise.
6356         (lto_input_ts_vector_tree_pointers): Likewise.
6357         (lto_input_ts_complex_tree_pointers): Likewise.
6358         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
6359         (lto_input_ts_decl_common_tree_pointers): Likewise.
6360         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
6361         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
6362         (lto_input_ts_field_decl_tree_pointers): Likewise.
6363         (lto_input_ts_function_decl_tree_pointers): Likewise.
6364         (lto_input_ts_type_common_tree_pointers): Likewise.
6365         (lto_input_ts_type_non_common_tree_pointers): Likewise.
6366         (lto_input_ts_list_tree_pointers): Likewise.
6367         (lto_input_ts_vec_tree_pointers): Likewise.
6368         (lto_input_ts_exp_tree_pointers): Likewise.
6369         (lto_input_ts_block_tree_pointers): Likewise.
6370         (lto_input_ts_binfo_tree_pointers): Likewise.
6371         (lto_input_ts_constructor_tree_pointers): Likewise.
6372         (lto_input_ts_target_option): Likewise.
6373         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
6374         (lto_input_tree_pointers): Likewise.
6375         (lto_get_pickled_tree): Likewise.
6376         (lto_get_builtin_tree): Likewise.
6377         (lto_read_tree): Likewise.
6378         (lto_input_integer_cst): Likewise.
6379         (lto_input_tree): Likewise.
6380         * lto-streamer-out.c: Include data-streamer.h,
6381         gimple-streamer.h and streamer-hooks.h.
6382         (struct string_slot): Move to data-streamer.h.
6383         (hash_string_slot_node): Likewise.
6384         (eq_string_slot_node): Likewise.
6385         (lto_string_index): Move to data-streamer-out.c.
6386         (lto_output_string_with_length): Likewise.
6387         (lto_output_string): Likewise.
6388         (output_string_cst): Move to tree-streamer-out.c.
6389         (output_identifier): Likewise.
6390         (output_zero): Move to data-streamer-out.c
6391         (output_uleb128): Likewise.
6392         (output_sleb128): Likewise.
6393         (output_record_start): Move to data-streamer.h
6394         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
6395         (pack_ts_real_cst_value_fields): Likewise.
6396         (pack_ts_fixed_cst_value_fields): Likewise.
6397         (pack_ts_decl_common_value_fields): Likewise.
6398         (pack_ts_decl_wrtl_value_fields): Likewise.
6399         (pack_ts_decl_with_vis_value_fields): Likewise.
6400         (pack_ts_function_decl_value_fields): Likewise.
6401         (pack_ts_type_common_value_fields): Likewise.
6402         (pack_ts_block_value_fields): Likewise.
6403         (pack_ts_translation_unit_decl_value_fields): Likewise.
6404         (pack_value_fields): Likewise.
6405         (lto_output_chain): Likewise.
6406         (lto_output_ts_common_tree_pointers): Likewise.
6407         (lto_output_ts_vector_tree_pointers): Likewise.
6408         (lto_output_ts_complex_tree_pointers): Likewise.
6409         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
6410         (lto_output_ts_decl_common_tree_pointers): Likewise.
6411         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
6412         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
6413         (lto_output_ts_field_decl_tree_pointers): Likewise.
6414         (lto_output_ts_function_decl_tree_pointers): Likewise.
6415         (lto_output_ts_type_common_tree_pointers): Likewise.
6416         (lto_output_ts_type_non_common_tree_pointers): Likewise.
6417         (lto_output_ts_list_tree_pointers): Likewise.
6418         (lto_output_ts_vec_tree_pointers): Likewise.
6419         (lto_output_ts_exp_tree_pointers): Likewise.
6420         (lto_output_ts_block_tree_pointers): Likewise.
6421         (lto_output_ts_binfo_tree_pointers): Likewise.
6422         (lto_output_ts_constructor_tree_pointers): Likewise.
6423         (lto_output_ts_target_option): Likewise.
6424         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
6425         (lto_output_tree_pointers): Likewise.
6426         (lto_output_tree_header): Likewise.
6427         (lto_output_builtin_tree): Likewise.
6428         (lto_write_tree): Likewise.
6429         (lto_output_integer_cst): Likewise.
6430         (lto_output_tree): Likewise.
6431         (output_phi): Move to gimple-streamer-out.c.
6432         (output_gimple_stmt): Likewise.
6433         (output_bb): Likewise.
6434         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
6435         (streamer_hooks): Move to streamer-hooks.c.
6436         (check_handled_ts_structures): Move to tree-streamer.c
6437         (lto_streamer_cache_add_to_node_array): Likewise.
6438         (lto_streamer_cache_insert_1): Likewise.
6439         (lto_streamer_cache_insert): Likewise.
6440         (lto_streamer_cache_insert_at): Likewise.
6441         (lto_streamer_cache_append): Likewise.
6442         (lto_streamer_cache_lookup): Likewise.
6443         (lto_streamer_cache_get): Likewise.
6444         (lto_record_common_node): Likewise.
6445         (lto_preload_common_nodes): Likewise.
6446         (lto_streamer_cache_create): Likewise.
6447         (lto_streamer_cache_delete): Likewise.
6448         (streamer_hooks_init): Move to streamer-hooks.c.
6449         * lto-streamer.h: Include diagnostic.h
6450         (struct output_block, struct lto_input_block,
6451         struct data_in, struct bitpack_d): Remove forward declarations.
6452         (struct bitpack_d): Move to data-streamer.h.
6453         (struct lto_streamer_cache_d): Move to tree-streamer.h.
6454         (struct streamer_hooks): Move to streamer-hooks.h.
6455         (bp_pack_var_len_unsigned): Move to data-streamer.h.
6456         (bp_pack_var_len_int): Likewise.
6457         (bp_unpack_var_len_unsigned): Likewise.
6458         (bp_unpack_var_len_int): Likewise.
6459         (lto_input_location): Declare.
6460         (lto_tag_check_set): Declare.
6461         (lto_init_eh): Declare.
6462         (lto_output_tree_ref): Declare.
6463         (lto_output_location): Declare.
6464         (bitpack_create): Move to data-streamer.h.
6465         (bp_pack_value): Likewise.
6466         (lto_output_bitpack): Likewise.
6467         (lto_input_bitpack): Likewise.
6468         (bp_unpack_value): Likewise.
6469         (lto_output_1_stream): Likewise.
6470         (lto_input_1_unsigned): Likewise.
6471         (lto_output_int_in_range): Likewise.
6472         (lto_input_int_in_range): Likewise.
6473         (bp_pack_int_in_range): Likewise.
6474         (bp_unpack_int_in_range): Likewise.
6475         (lto_output_enum): Likewise.
6476         (lto_input_enum): Likewise.
6477         (bp_pack_enum): Likewise.
6478         (bp_unpack_enum): Likewise.
6479         * streamer-hooks.c: New.
6480         * streamer-hooks.h: New.
6481         * tree-streamer-in.c: New.
6482         * tree-streamer-out.c: New.
6483         * tree-streamer.c: New.
6484         * tree-streamer.h: New.
6485
6486 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6487
6488         * gthr-posix95.h: Remove.
6489         * gthr.h [_PTHREADS95]: Remove.
6490         * configure.ac (enable_threads): Remove posix95.
6491         * configure: Regenerate.
6492         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
6493
6494 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
6495
6496         PR target/49781
6497         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
6498         SImode addresses.
6499         (ix86_print_operand_address): Handle zero-extended addresses.
6500         (memory_address_length): Add length of addr32 prefix for
6501         zero-extended addresses.
6502         (ix86_secondary_reload): Handle moves to/from double-word general
6503         registers from/to zero-extended addresses.
6504         * config/i386/predicates.md (lea_address_operand): Reject
6505         zero-extended operands.
6506
6507 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
6508
6509         PR other/48007
6510         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
6511
6512         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
6513         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
6514
6515         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
6516         (_Unwind_Context_Reg_Val): Likewise.
6517         (_Unwind_Get_Unwind_Word): Likewise.
6518         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
6519         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
6520         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
6521         for EXTENDED_CONTEXT_BIT.
6522         (__frame_state_for): Likewise.
6523         (uw_init_context_1): Likewise.
6524         (_Unwind_GetGR): Updated.
6525         (_Unwind_SetGR): Likewise.
6526         (_Unwind_GetGRPtr): Likewise.
6527         (_Unwind_SetGRPtr): Likewise.
6528         (_Unwind_SetGRValue): Likewise.
6529         (_Unwind_GRByValue): Likewise.
6530         (uw_install_context_1): Likewise.
6531
6532         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
6533         ASSUME_EXTENDED_UNWIND_CONTEXT.
6534         * doc/tm.texi: Regenerated.
6535
6536 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6537
6538         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
6539
6540 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6541
6542         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
6543         Linux/GNU-specific.
6544         (DEC Alpha Options, -mtune): Likewise.
6545         (MIPS Options, -march): native is supported on IRIX.
6546
6547 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6548
6549         * config/sparc/driver-sparc.c: New file.
6550         * config/sparc/x-sparc: New file.
6551         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
6552         * config/sparc/sparc.opt (native): New value for enum processor_type.
6553         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
6554         * config/sparc/sparc.c (sparc_option_override): Abort if
6555         PROCESSOR_NATIVE gets here.
6556         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
6557         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
6558         DRIVER_SELF_SPECS): Define.
6559         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
6560         (SPARC Options, -mtune): Likewise.
6561         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
6562         Substitute result.
6563         * configure: Regenerate.
6564         * Makefile.in (EXTRA_GCC_LIBS): Set.
6565         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
6566         (cpp$(exeext)): Likewise.
6567
6568 2011-08-08  Richard Guenther  <rguenther@suse.de>
6569
6570         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
6571         split out from ...
6572         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
6573         by composition.
6574
6575 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
6576
6577         PR tree-optimization/50005
6578         * ipa-inline-analysis (remap_predicate): Add cast to
6579         silence signed/unsigned comparison warning.
6580
6581 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6582
6583         * modulo-sched.c (get_sched_window): Use a table for the debug output.
6584         Print the current ii.
6585         (sms_schedule_by_order): Reduce whitespace in dump line.
6586
6587 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6588
6589         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
6590         and one loop for successors.  Fix upper bound of memory range.
6591
6592 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6593
6594         PR target/50001
6595         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
6596         (TARGET_INSTANTIATE_DECLS): New define.
6597
6598 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
6599             Mikael Morin   <mikael.morin@sfr.fr>
6600
6601         * Makefile.in (INCLUDES_FOR_TARGET): New.
6602         (LIBGCC2_CFLAGS): Use it.
6603         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
6604
6605 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6606
6607         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
6608         frame->save_regs_using_mov calculation.
6609
6610 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6611
6612         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
6613         * config/i386/sse.md (castmode): New mode attribute.
6614         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
6615         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
6616
6617 2011-08-05  Jan Hubicka  <jh@suse.cz>
6618
6619         PR middle-end/49494
6620         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
6621
6622 2011-08-05  Jan Hubicka  <jh@suse.cz>
6623
6624         PR middle-end/49500
6625         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
6626         handle aliases.
6627         (create_emultls_var):New function.
6628         (ipa_lower_emutls): Handle aliases correctly.
6629
6630 2011-08-05  Jan Hubicka  <jh@suse.cz>
6631
6632         PR middle-end/49735
6633         * ipa-inline.c (recursive_inlining): Look through aliases.
6634
6635 2011-08-05  Jason Merrill  <jason@redhat.com>
6636
6637         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
6638         declarations to beginning of function.
6639
6640 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6641
6642         PR rtl-optimization/49900
6643         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
6644         ensure basic blocks stay in the same order.
6645
6646 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
6647
6648         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
6649         store_bit_field.
6650         (s390_expand_atomic): Same.
6651
6652 2011-08-05  Richard Henderson  <rth@redhat.com>
6653
6654         PR rtl-opt/49977
6655         * dwarf2cfi.c (scan_insn_after): Split out of ...
6656         (scan_trace): ... here.  Correctly place notes wrt sequences.
6657
6658 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6659             Richard Henderson  <rth@redhat.com>
6660
6661         PR rtl-opt/49982
6662         * expr.c (fixup_args_size_notes): Look through no-op moves.
6663
6664 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6665
6666         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
6667         of "m" for operand 0.  Add type and mode attribute.
6668         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6669         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
6670         constraint instead of "o" for opreand 1.
6671         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
6672         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
6673         operand 0, alternative 4.
6674         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
6675
6676 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6677
6678         * config/i386/predicates.md (lea_address_operand): Rename from
6679         no_seg_address_operand.
6680         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
6681         (*lea_1_zext): Ditto.
6682         (*lea_2): Ditto.
6683         (*lea_2_zext): Ditto.
6684
6685 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6686
6687         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
6688         parts.base and parts.index.
6689         * config/i386/predicates.md (aligned_operand): Ditto.
6690         (cmpxchg8b_pic_memory_operand): Ditto.
6691
6692 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6693
6694         * config/soft-fp: Move to ../libgcc.
6695         * Makefile.in (SFP_MACHINE): Remove.
6696         (libgcc-support): Remove $(SFP_MACHINE) dependency.
6697         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
6698         * config/arm/t-arm-softfp: Move to
6699         ../libgcc/config/arm/t-softfp.
6700         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
6701         * config/c6x/t-c6x-softfp: Remove.
6702         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
6703         * config/i386/t-fprules-softfp: Move to
6704         ../libgcc/config/t-softfp-tf.
6705         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
6706         * config/ia64/t-fprules-softfp: Remove.
6707         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
6708         * config/lm32/t-fprules-softfp: Remove.
6709         * config/moxie/sfp-machine.h: Remove.
6710         * config/moxie/t-moxie-softfp: Remove.
6711         * config/rs6000/darwin-ldouble-format: Move to
6712         ../libgcc/config/rs6000/ibm-ldouble-format.
6713         * config/rs6000/darwin-ldouble.c: Move to
6714         ../libgcc/config/rs6000/ibm-ldouble.c
6715         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
6716         * config/rs6000/libgcc-ppc64.ver: Likewise.
6717         * config/rs6000/sfp-machine.h: Likewise.
6718         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
6719         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
6720         (LIB2FUNCS_EXTRA): Remove.
6721         (TARGET_LIBGCC2_CFLAGS): Remove.
6722         * config/rs6000/t-aix52: Likewise
6723         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6724         $(srcdir)/config/rs6000/darwin-ldouble.c.
6725         (SHLIB_MAPFILES): Remove.
6726         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
6727         $(srcdir)/config/rs6000/darwin-ldouble.c.
6728         * config/rs6000/t-fprules-softfp: Move to
6729         ../libgcc/config/t-softfp-sfdf.
6730         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
6731         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
6732         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
6733         $(srcdir)/config/rs6000/darwin-ldouble.c.
6734         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
6735         * config/score/t-score-softfp: Remove.
6736         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
6737         soft-fp/t-softfp from tmake_file.
6738         (arm*-*-uclinux*): Likewise.
6739         (arm*-*-ecos-elf): Likewise.
6740         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
6741         (arm*-*-rtems*): Likewise.
6742         (arm*-*-elf): Likewise.
6743         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
6744         tmake_file.
6745         (moxie-*-uclinux*): Likewise.
6746         (moxie-*-rtems*): Likewise.
6747         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
6748         tmake_file.
6749         (lm32-*-rtems*): Likewise.
6750         (lm32-*-uclinux*): Likewise.
6751         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
6752         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6753         (powerpc-*-linux*, powerpc64-*-linux*): Remove
6754         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6755         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
6756         tmake_file.
6757         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
6758         tmake_file.
6759         (tic6x-*-uclinux): Likewise.
6760         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
6761         soft-fp/t-softfp from tmake_file.
6762         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
6763         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
6764         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
6765         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6766         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
6767
6768 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6769
6770         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
6771         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
6772         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
6773         TPBIT, TPBIT_FUNCS.
6774         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
6775         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
6776         Remove.
6777         * config/arm/t-vxworks: Likewise.
6778         * config/arm/t-wince-pe: Likewise.
6779         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
6780         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6781         * config/bfin/t-bfin-elf: Likewise.
6782         * config/bfin/t-bfin-linux: Likewise.
6783         * config/bfin/t-bfin-uclinux: Likewise.
6784         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
6785         Remove.
6786         * config/fr30/t-fr30: Likewise.
6787         * config/frv/t-frv: Likewise.
6788         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
6789         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6790         * config/m32c/t-m32c: Likewise.
6791         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
6792         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6793         * config/mcore/t-mcore: Likewise.
6794         * config/mep/t-mep: Likewise.
6795         * config/microblaze/t-microblaze: Likewise.
6796         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
6797         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6798         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
6799         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6800         * config/mn10300/t-linux: Remove.
6801         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6802         * config/pdp11/t-pdp11: Likewise.
6803         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
6804         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
6805         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6806         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
6807         * config/rs6000/t-aix52: Likewise.
6808         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6809         $(srcdir)/config/rs6000/ppc64-fp.c.
6810         * config/rs6000/t-fprules-fpbit: Remove.
6811         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
6812         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6813         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
6814         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6815         * config/sparc/t-elf: Likewise.
6816         * config/sparc/t-leon: Likewise.
6817         * config/sparc/t-leon3: Likewise.
6818         * config/spu/t-spu-elf: Likewise.
6819         (DPBIT_FUNCS): Remove.
6820         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6821         * config/v850/t-v850: Likewise.
6822         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
6823         (avr-*-*): Likewise.
6824         (h8300-*-rtems*): Set libgcc_tm_file.
6825         (h8300-*-elf*): Likewise.
6826         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
6827         tmake_file.
6828         (powerpc-*-eabisim*): Likewise.
6829         (powerpc-*-elf*): Likewise.
6830         (powerpc-*-eabialtivec*): Likewise.
6831         (powerpc-xilinx-eabi*): Likewise.
6832         (powerpc-*-eabi*): Likewise.
6833         (powerpc-*-rtems*): Likewise.
6834         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
6835         (powerpcle-*-elf*): Likewise.
6836         (powerpcle-*-eabisim*): Likewise.
6837         (powerpcle-*-eabi*): Likewise.
6838         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
6839         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
6840         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
6841         Remove.
6842
6843 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6844
6845         * Makefile.in (UNWIND_H): Remove.
6846         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
6847         ../libgcc/Makefile.in.
6848         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
6849         (LIBUNWINDDEP): Remove.
6850         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
6851         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
6852         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
6853         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
6854         Don't copy $(UNWIND_H).
6855         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
6856         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
6857         * aclocal.m4: Regenerate.
6858         * configure: Regenerate.
6859         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
6860         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
6861         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
6862         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
6863         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
6864         * config/arm/libunwind.S, config/arm/pr-support.c,
6865         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
6866         ../libgcc/config/arm.
6867         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
6868         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
6869         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
6870         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
6871         ($(T)frvend$(objext)): Likewise.
6872         * config/ia64/t-glibc (LIB2ADDEH): Remove.
6873         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
6874         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
6875         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
6876         ../libgcc/config/ia64.
6877         * config/ia64/t-hpux (LIB2ADDEH): Remove.
6878         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
6879         * config/ia64/t-vms (LIB2ADDEH): Remove.
6880         * config/ia64/vms.h (UNW_IVMS_MODE,
6881         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
6882         * config/picochip/t-picochip (LIB2ADDEH): Remove.
6883         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
6884         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
6885         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
6886         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
6887         $(srcdir)/../libgcc to refer to unwinder sources.
6888         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
6889         * config/t-darwin (LIB2ADDEH): Remove.
6890         * config/t-freebsd (LIB2ADDEH): Remove.
6891         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
6892         * config/t-libunwind-elf: Move to ../libgcc/config.
6893         * config/t-linux (LIB2ADDEH): Remove.
6894         * config/t-sol2 (LIB2ADDEH): Remove.
6895         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
6896         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
6897
6898 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
6899
6900         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
6901
6902         * doc/invoke.texi: Document core-avx-i.
6903
6904 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6905
6906         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
6907
6908 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
6909
6910         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
6911         result of multiple results reduction when extracting the final
6912         value using scalar code.
6913
6914 2011-08-05  Richard Guenther  <rguenther@suse.de>
6915
6916         PR tree-optimization/49984
6917         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
6918
6919 2011-08-05  Richard Guenther  <rguenther@suse.de>
6920
6921         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
6922         return true for constant integer ranges.
6923         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
6924         BIT_IOR_EXPR handling.
6925
6926 2011-08-04  Kai Tietz  <ktietz@redhat.com>
6927
6928         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
6929         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
6930
6931 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
6932
6933         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
6934         pattern def statement, and its access macro.
6935         (NUM_PATTERNS): Set to 5.
6936         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
6937         pattern def statement.
6938         (vect_transform_loop): Likewise.
6939         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
6940         function vect_recog_over_widening_pattern ().
6941         (vect_operation_fits_smaller_type): New function.
6942         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
6943         Likewise.
6944         (vect_pattern_recog_1): Move the code that marks pattern
6945         statements to vect_mark_pattern_stmts (), and call it.  Update
6946         documentation.
6947         * tree-vect-stmts.c (vect_supportable_shift): New function.
6948         (vect_analyze_stmt): Handle pattern def statement.
6949         (new_stmt_vec_info): Initialize pattern def statement.
6950
6951 2011-08-04  Richard Henderson  <rth@redhat.com>
6952
6953         PR target/49964
6954         * config/i386/i386.c (ix86_expand_call): Don't create nested
6955         PARALLELs for TARGET_VZEROUPPER.
6956         (ix86_split_call_vzeroupper): Fix extraction of the original call.
6957         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
6958         recognize nested PARALLELs.
6959         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
6960         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
6961         *sibcall_value_pop_vzeroupper): Likewise.
6962
6963 2011-08-04  Richard Henderson  <rth@redhat.com>
6964
6965         PR middle-end/49968
6966         * calls.c (expand_call): Use fixup_args_size_notes for
6967         emit_stack_restore.
6968         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
6969         in non-standard modes.
6970
6971 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6972
6973         * gcc.c (self_spec): New variable.
6974         (static_specs): Add self_spec.
6975         (main): Call do_self_spec on "self_spec" specs after reading
6976         user specs files.  Move compare_debug handling right after that.
6977
6978 2011-08-04  Richard Guenther  <rguenther@suse.de>
6979
6980         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
6981         (value_range_nonnegative_p): New function.
6982         (ssa_name_nonnegative_p): Use it.
6983         (value_range_constant_singleton): New function.
6984         (op_with_constant_singleton_value_range): Use it.
6985         (extract_range_from_binary_expr_1): New function, split out from ...
6986         (extract_range_from_binary_expr): ... this.  Remove fallback
6987         constant folding done here.
6988
6989 2011-08-04  Richard Guenther  <rguenther@suse.de>
6990
6991         PR tree-optimization/49806
6992         * tree-vrp.c (op_with_boolean_value_range_p): New function.
6993         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
6994         a new statement for a final conversion to bool.
6995
6996 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
6997
6998         * gengtype-state.c: Include "bconfig.h" if
6999         GENERATOR_FILE is defined, "config.h" otherwise.
7000         * gengtype.c: Likewise.
7001         * gengtype-lex.l: Likewise.
7002         * gengtype-parse.c: Likewise.
7003         * Makefile.in (gengtype-lex.o-warn): New variable.
7004         (plugin_resourcesdir): Likewise.
7005         (plugin_bindir): Likewise.
7006         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
7007         (MOSTLYCLEANFILES): Add gengtype$(exeext).
7008         (native): Depend on gengtype$(exeext) is $enable_plugin
7009         is set to "yes".
7010         (gtype.state): Depend on s-gtype. Use temporary file.
7011         (gengtype-lex.o): New rule.
7012         (gengtype-parse.o): Likewise.
7013         (gengtype-state.o): Likewise.
7014         (gengtype$(exeext)): Likewise.
7015         (install-gengtype): Likewise.
7016         (gengtype.o): Likewise.
7017         (build/gengtype.o): Depend on version.h.
7018         (build/gengtype-state): Depend on double-int.h, version.h,
7019         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
7020         (install-plugin): Depend on install-gengtype.
7021
7022 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
7023
7024         PR middle-end/49905
7025         * tree.h (init_attributes): New prototype.
7026         * attribs.c (init_attributes): No longer static.
7027
7028 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7029
7030         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
7031         maybe_suffix.
7032
7033 2011-08-03   David Li  <davidxl@google.com>
7034
7035         * tree-optimize.c (execute_fixup_cfg): Fix up entry
7036         outgoing edge counts after inlining.
7037
7038 2011-08-03   David Li  <davidxl@google.com>
7039
7040         * profile.c (compute_branch_probabilities): Compute
7041         function frequency after profile annotation.
7042
7043 2011-08-04  Alan Modra  <amodra@gmail.com>
7044
7045         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
7046         use_backchain_to_restore_sp initialisation.
7047         (rs6000_legitimate_offset_address_p): Simplify offset test.
7048
7049 2011-08-03  Richard Henderson  <rth@redhat.com>
7050
7051         * config/spu/spu.md: Use define_c_enum instead of define_constants.
7052         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
7053         (UNSPECV_NOP): New.
7054
7055 2011-08-03  Richard Henderson  <rth@redhat.com>
7056
7057         PR target/34888
7058         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
7059
7060 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
7061
7062         PR tree-optimization/49948
7063         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
7064
7065 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
7066
7067         * config/m32c/m32c.c (class_sizes): Remove.
7068         (reduce_class): Change arguments and return type to reg_class_t.
7069         Change type cc var to HARD_REG_SET. Change type best var to
7070         reg_class_t. Change type best_size var to unsigned int. Remove
7071         initialization class_sizes var. Use reg_class_size array instead
7072         of class_sizes. Use reg_class_contents array instead
7073         of class_contents.
7074
7075 2011-08-03  Richard Guenther  <rguenther@suse.de>
7076
7077         PR middle-end/49958
7078         * fold-const.c (fold_binary_loc): Only associate
7079         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
7080         overflow wraps.
7081
7082 2011-08-03  Alan Modra  <amodra@gmail.com>
7083
7084         PR rtl-optimization/49941
7085         * jump.c (mark_jump_label): Comment.
7086         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
7087         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
7088         (mark_used_flags): Don't mark RETURN.
7089
7090 2011-08-03  Richard Guenther  <rguenther@suse.de>
7091
7092         PR tree-optimization/49938
7093         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
7094         deal with a POLYNOMIAL_CHREC.
7095
7096 2011-08-03  Revital Eres  <revital.eres@linaro.org>
7097
7098         * modulo-sched.c (calculate_stage_count,
7099         calculate_must_precede_follow, get_sched_window,
7100         try_scheduling_node_in_cycle, remove_node_from_ps): Add
7101         declaration.
7102         (update_node_sched_params, set_must_precede_follow, optimize_sc):
7103         New functions.
7104         (reset_sched_times): Call update_node_sched_params.
7105         (sms_schedule): Call optimize_sc.
7106         (get_sched_window): Change function arguments.
7107         (sms_schedule_by_order): Update call to get_sched_window.
7108         Call set_must_precede_follow.
7109         (calculate_stage_count): Add function argument.
7110
7111 2011-08-02  Richard Henderson  <rth@redhat.com>
7112
7113         PR target/49864
7114         PR target/49879
7115         * reg-notes.def (REG_ARGS_SIZE): New.
7116         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
7117         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
7118         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
7119         different stack levels.
7120         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
7121         (maybe_move_args_size_note): New.
7122         (combine_stack_adjustments_for_block): Use it.
7123         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
7124         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
7125         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
7126         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
7127         (cur_cfa): New.
7128         (queued_args_size): Remove.
7129         (add_cfi_args_size): Assert size is non-negative.
7130         (stack_adjust_offset, dwarf2out_args_size): Remove.
7131         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
7132         (notice_args_size, notice_eh_throw): New.
7133         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
7134         (dwarf2out_frame_debug_adjust_cfa): Likewise.
7135         (dwarf2out_frame_debug_cfa_offset): Likewise.
7136         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
7137         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
7138         (change_cfi_row): Don't emit args_size.
7139         (maybe_record_trace_start_abnormal): Split out from ...
7140         (maybe_record_trace_start): Here.  Set args_size_undefined.
7141         (create_trace_edges): Update to match.
7142         (scan_trace): Handle REG_ARGS_SIZE.
7143         (connect_traces): Connect args_size between EH insns.
7144         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
7145         * explow.c (suppress_reg_args_size): New.
7146         (adjust_stack_1): Split out from ...
7147         (adjust_stack): ... here.
7148         (anti_adjust_stack): Use it.
7149         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
7150         * expr.c (mem_autoinc_base): New.
7151         (fixup_args_size_notes): New.
7152         (emit_single_push_insn_1): Rename from emit_single_push_insn.
7153         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
7154         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
7155         * reload1.c (reload_as_needed): Likewise.
7156         * rtl.h (fixup_args_size_notes): Declare.
7157
7158 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
7159
7160         PR bootstrap/49914
7161         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
7162         of abs.
7163         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
7164         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
7165
7166 2011-08-02  Richard Henderson  <rth@redhat.com>
7167
7168         * config/h8300/h8300.c (push, pop): Return the insn.
7169         (h8300_swap_into_er6): Generate correct unwind info.
7170         (h8300_swap_out_of_er6): Likewise.
7171         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
7172         complex cfa expression.
7173         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
7174
7175 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7176
7177         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7178
7179 2011-08-02  Richard Henderson  <rth@redhat.com>
7180
7181         PR target/49878
7182         * config/h8300/h8300.c (h8300_move_ok): New.
7183         * config/h8300/h8300-protos.h: Declare it.
7184         * config/h8300/h8300.md (P): New mode iterator.
7185         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
7186         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
7187         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
7188         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
7189         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
7190         and pushqi1_h8300hs_normal; use PRE_MODIFY and
7191         register_no_sp_elim_operand.
7192         (*pushhi1_h8300hs_<P>): Similarly.
7193         (pushqi1, pushhi1, pushhi1_h8300): Remove.
7194         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
7195
7196 2011-08-02  Richard Henderson  <rth@redhat.com>
7197
7198         PR target/49881
7199         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
7200
7201 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7202
7203         * c-parser.c (enum c_parser_prec): New enum, moved from within
7204         c_parser_binary_expression.
7205         (c_parser_binary_expression): Add PREC argument.  Stop parsing
7206         if operator has lower or equal precedence than PREC.
7207         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
7208         callers.
7209         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
7210         Adjust c_finish_omp_atomic caller.
7211         (c_parser_omp_taskyield): New function.
7212         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
7213         (c_parser_omp_clause_name): Handle final and mergeable clauses.
7214         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
7215         functions.
7216         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
7217         and PRAGMA_OMP_CLAUSE_MERGEABLE.
7218         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
7219         (c_parser_omp_clause_reduction): Handle min and max.
7220         * c-typeck.c (c_finish_omp_clauses): Don't complain about
7221         const qualified predetermined vars in firstprivate clause.
7222         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7223         Handle MIN_EXPR and MAX_EXPR.
7224         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
7225         and OMP_CLAUSE_MERGEABLE.
7226         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
7227         and OMP_ATOMIC_CAPTURE_NEW.
7228         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
7229         OMP_CLAUSE_MERGEABLE.
7230         (omp_clause_code_name): Likewise.
7231         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7232         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
7233         and OMP_CLAUSE_MERGEABLE.
7234         (OMP_CLAUSE_FINAL_EXPR): Define.
7235         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
7236         OMP_CLAUSE_MERGEABLE.
7237         (expand_task_call): Likewise.
7238         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
7239         (expand_omp_atomic_fetch_op): Handle cases where old or new
7240         value is needed afterwards.
7241         (expand_omp_atomic): Call expand_omp_atomic_load resp.
7242         expand_omp_atomic_store.
7243         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
7244         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
7245         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
7246         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7247         * tree-nested.c (convert_nonlocal_omp_clauses,
7248         convert_local_omp_clauses): Likewise.
7249         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
7250         OMP_ATOMIC_CAPTURE_NEW): New.
7251         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
7252         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
7253         New inlines.
7254         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
7255         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
7256         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7257
7258 2011-08-02  Kai Tietz  <ktietz@redhat.com>
7259
7260         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
7261         boolean-type.
7262         (ssa_forward_propagate_and_combine): Interprete result of
7263         forward_propagate_comparison.
7264         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
7265         boolean-typed operands for comparisons.
7266
7267 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
7268
7269         * config/avr/libgcc.S: Gather related function in the
7270         same input section.
7271         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7272         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
7273         references.
7274         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
7275         __udivmodsi4, __divmodsi4, __prologue_saves__,
7276         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
7277         __do_copy_data, __do_clear_bss, __do_global_ctors,
7278         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
7279
7280 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
7281
7282         PR target/47766
7283         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
7284         (stack_protect_test): The pattern compares ptr_mode value.
7285
7286 2011-08-02  Alan Modra  <amodra@gmail.com>
7287
7288         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
7289         note for save_LR_around_toc_setup sequence.
7290
7291 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7292
7293         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
7294
7295 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
7296             Joseph Myers  <joseph@codesourcery.com>
7297
7298         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
7299         * hwint.c: Include diagnostic-core.h.
7300         (abs_hwi): New.
7301         (gcd): Moved here...
7302         (pos_mul_hwi): New.
7303         (mul_hwi): New.
7304         (least_common_multiple): Moved here...
7305         * hwint.h (gcd): ... from here.
7306         (least_common_multiple): ... from here.
7307         (HOST_WIDE_INT_MIN): New.
7308         (HOST_WIDE_INT_MAX): New.
7309         (abs_hwi): Declared.
7310         (gcd): Declared.
7311         (pos_mul_hwi): Declared.
7312         (mul_hwi): Declared.
7313         (least_common_multiple): Declared.
7314         * omega.c (check_pos_mul): Removed.
7315         (check_mul): Removed.
7316         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
7317         mul_hwi instead of check_mul.
7318
7319 2011-08-01  Richard Henderson  <rth@redhat.com>
7320
7321         PR target/49881
7322         * config/avr/avr.h (PUSH_ROUNDING): New.
7323         * config/avr/avr.md (pushqi1): Rename from *pushqi.
7324         (*pushhi, *pushsi, *pushsf): Remove.
7325         (MPUSH): New mode iterator.
7326         (push<MPUSH>1): New expander.
7327
7328 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
7329
7330         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
7331         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
7332         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
7333         mmix_preferred_output_reload_class): Remove.
7334         * config/mmix/mmix.c (mmix_preferred_reload_class,
7335         mmix_preferred_output_reload_class): Make static. Change rclass
7336         argument and return type to reg_class_t.
7337         (TARGET_PREFERRED_RELOAD_CLASS,
7338         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7339
7340 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
7341
7342         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
7343         handling.
7344
7345 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7346
7347         PR target/47766
7348         * config/i386/i386.md (PTR): New.
7349         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
7350         (stack_protect_test): Likewise.
7351         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
7352         (stack_tls_protect_set_<mode>): Likewise.
7353         (stack_tls_protect_test_<mode>): Likewise.
7354
7355 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
7356
7357         PR target/49927
7358         * config/i386/i386.c (ix86_address_subreg_operand): New.
7359         (ix86_decompose_address): Use ix86_address_subreg_operand.
7360         (ix86_legitimate_address_p): Do not assert that subregs satisfy
7361         register_no_elim_operand in DImode.
7362
7363 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
7364
7365         PR tree-optimization/49926
7366         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
7367         in a chain doesn't have uses both inside and outside the loop.
7368
7369 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7370
7371         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
7372         * config/avr/avr-devices.c (avr_mcu_types): Use it.
7373         * config/avr/avr-mcus.def (AVR_MCU): Use it.
7374         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
7375         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
7376         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
7377         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
7378         to detect if XJMP must not be skipped.
7379
7380 2011-08-02  Alan Modra  <amodra@gmail.com>
7381
7382         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
7383         Delete.
7384         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
7385         (rs6000_emit_prologue): Don't prematurely return when
7386         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
7387         save_toc_in_prologue case.
7388         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
7389         calls_alloca.
7390
7391 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7392
7393         * config/avr/avr-devices.c: Delete SVN property svn:executable.
7394         * config/avr/predicates.md: Ditto.
7395         * config/avr/driver-avr.c: Ditto.
7396         * config/avr/genopt.sh: Set SVN property svn:executable to *.
7397
7398 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7399
7400         * calls.c (emit_library_call_value_1): Declare size only if
7401         BLOCK_REG_PADDING is defined.
7402
7403 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
7404
7405         PR target/49547
7406         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
7407         (x86_64-*-*): Likewise.
7408         * config/i386/i386.opt (mlzcnt): New.
7409         * config/i386/abmintrin.h: File removed.
7410         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
7411         * config/i386/lzcntintrin.h: ... here.  New file.
7412         (__lzcnt): Rename to ...
7413         (__lzcnt32): ... this.
7414         * config/i386/bmiintrin.h (head): Update copyright year.
7415         (__lzcnt_u16): Removed.
7416         (__lzcnt_u32): Likewise.
7417         (__lzcnt_u64): Likewise.
7418         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
7419         is defined, remove abmintrin.h.
7420         * config/i386/cpuid.h (bit_LZCNT): New.
7421         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7422         LZCNT feature.
7423         * config/i386/i386-c.c (ix86_target_macros_internal): Define
7424         __LZCNT__ if needed.
7425         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
7426         (ix86_option_override_internal): Handle LZCNT option.
7427         (ix86_valid_target_attribute_inner_p): Likewise.
7428         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
7429         * config/i386/i386.h (TARGET_LZCNT): New.
7430         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
7431         * config/i386/i386.md (clz<mode>2): Update insn constraint.
7432         (clz<mode>2_lzcnt): Likewise.
7433         * doc/invoke.texi: Mention -mlzcnt option.
7434         * doc/extend.texi: Likewise.
7435
7436 2011-08-01  Julian Brown  <julian@codesourcery.com>
7437
7438         * configure.ac (fixed-point): Add ARM support.
7439         * configure: Regenerate.
7440         * config/arm/arm.c (arm_fixed_mode_set): New struct.
7441         (arm_set_fixed_optab_libfunc): New.
7442         (arm_set_fixed_conv_libfunc): New.
7443         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
7444         ARM-specific names.
7445         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
7446         return values in SImode.
7447         (arm_return_in_msb): Return fixed-point types in the msb.
7448         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
7449         upwards.
7450         (arm_scalar_mode_supported_p): Support fixed-point modes.
7451         (arm_vector_mode_supported_p): Support vector fixed-point modes.
7452         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
7453         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
7454         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
7455         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
7456         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
7457         New mode iterators.
7458         (qaddsub_suf): New mode attribute.
7459         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
7460         vector modes.
7461         * config/arm/predicates.md (sat_shift_operator): New predicate.
7462         * config/arm/arm-fixed.md: New.
7463         * config/arm/arm.md: Include arm-fixed.md.
7464         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
7465
7466 2011-08-01  Julian Brown  <julian@codesourcery.com>
7467
7468         * calls.c (emit_library_call_value_1): Support padding for libcall
7469         arguments and return values.
7470         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
7471         downwards in big-endian mode.
7472
7473 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7474
7475         PR debug/49887
7476         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
7477         * config/sol2-protos.h: Likewise.
7478         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
7479         solaris_code_end.
7480         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
7481         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
7482         solaris_file_end.
7483         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
7484
7485 2011-08-01  Julian Brown  <julian@codesourcery.com>
7486
7487         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
7488
7489 2011-08-01  Julian Brown  <julian@codesourcery.com>
7490
7491         * final.c (output_addr_const): Print fixed-point constants as
7492         decimal not hex.
7493
7494 2011-08-01  Richard Guenther  <rguenther@suse.de>
7495
7496         * stor-layout.c (initialize_sizetypes): Properly sign-extend
7497         bitsiztype TYPE_MAX_VALUE.
7498
7499 2011-08-01  Julian Brown  <julian@codesourcery.com>
7500
7501         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
7502         comparison helpers.
7503
7504 2011-07-31  Richard Henderson  <rth@redhat.com>
7505
7506         * config/h8300/crti.asm: Add flags to .section directive.
7507         * config/h8300/crtn.asm: Likewise.
7508
7509 2011-07-31  Richard Henderson  <rth@redhat.com>
7510
7511         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
7512         * tree.c (build_common_tree_nodes): Likewise.
7513
7514 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7515
7516         PR target/49880
7517         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
7518         (divsi3_i1): Likewise.
7519
7520 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7521
7522         PR tree-optimization/49749
7523         * tree-ssa-reassoc.c (get_rank): New forward declaration.
7524         (PHI_LOOP_BIAS): New macro.
7525         (phi_rank): New function.
7526         (loop_carried_phi): Likewise.
7527         (propagate_rank): Likewise.
7528         (get_rank): Add calls to phi_rank and propagate_rank.
7529
7530 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
7531
7532         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
7533         of TARGET_64BIT.
7534         (PTRDIFF_TYPE): Likewise.
7535
7536 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
7537
7538         PR target/49920
7539         * config/i386/i386.md (strset): Do not expand strset_singleop
7540         when %eax or $edi are fixed.
7541         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
7542         (*strsetsi_1): Ditto.
7543         (*strsethi_1): Ditto.
7544         (*strsetqi_1): Ditto.
7545         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
7546         (*rep_stossi): Ditto.
7547         (*rep_stosqi): Ditto.
7548         (*strlenqi_1): Ditto.
7549         (cmpstrnsi): Also fail when %ecx is fixed.
7550         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
7551         (*cmpstrnqi_1): Ditto.
7552         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
7553         (*strmovsi_1): Ditto.
7554         (*strmovhi_1): Ditto.
7555         (*strmovqi_1): Ditto.
7556         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
7557         (*rep_movsi): Ditto.
7558         (*rep_movqi): Ditto.
7559
7560 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
7561
7562         PR target/47908
7563         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
7564         Disable instruction scheduling for non-ColdFire targets.
7565         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7566
7567 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7568
7569         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
7570         of anti-dep edge from a branch.
7571         (add_cross_iteration_register_deps): Create anti-dep edge from
7572         a branch.
7573
7574 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7575
7576         * modulo-sched.c: Change comment.
7577         (reset_sched_times): Fix print message.
7578         (print_partial_schedule): Add print info.
7579
7580 2011-07-31  Tom de Vries  <tom@codesourcery.com>
7581
7582         PR middle-end/43513
7583         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
7584         get_object_alignment and TYPE_ALIGN.
7585
7586 2011-07-30  Tom de Vries  <tom@codesourcery.com>
7587
7588         PR middle-end/43513
7589         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
7590         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
7591
7592 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7593
7594         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
7595         <sys/sbd.h>.
7596         (cpu_types): New array.
7597         (cputype): New function.
7598         (host_detect_local_cpu): Only define buf, f if !__sgi__.
7599         Use scaninvent instead of /proc/cpuinfo if __sgi__.
7600         * config.host: Also use driver-native.o, mips/x-native on
7601         mips-sgi-irix*.
7602         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
7603         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
7604         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
7605
7606 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR middle-end/49897
7609         PR middle-end/49898
7610         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
7611         in nested parallel and outer is a gimple_reg, mark it as addressable
7612         and set its bit in task_shared_vars bitmap too.
7613
7614 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7615
7616         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
7617
7618 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7619
7620         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
7621         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
7622         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
7623         AMASK_LOCKPFTCHOK): Define.
7624         (host_detect_local_cpu): Remove buf, f, cpu_names.
7625         Define cpu_types, implver, amask.
7626         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
7627         native CPU.
7628         * config.host: Also use driver-alpha.o, alpha/x-alpha on
7629         alpha*-dec-osf*.
7630         * config/alpha/osf5.h [__alpha__ || __alpha]
7631         (host_detect_local_cpu): Declare.
7632         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
7633         (DRIVER_SELF_SPECS): Define.
7634
7635 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7636
7637         PR target/47715
7638         * config/i386/i386.md (*load_tp_x32): New.
7639         (*load_tp_x32_zext): Ditto.
7640         (*add_tp_x32): Ditto.
7641         (*add_tp_x32_zext): Ditto.
7642         (*load_tp_<mode>): Disable for TARGET_X32 targets.
7643         (*add_tp_<mode>): Ditto.
7644         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
7645         ptr_mode and convert to Pmode if needed.
7646
7647 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7648
7649         PR target/49687
7650         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
7651         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
7652         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
7653         Add X to register footprint: Clobber r26/r27.
7654
7655 2011-07-29  Richard Guenther  <rguenther@suse.de>
7656
7657         * builtins.c (fold_builtin_signbit): Build the comparison
7658         with a proper type.
7659
7660 2011-07-29  Richard Guenther  <rguenther@suse.de>
7661
7662         PR tree-optimization/49893
7663         * tree-predcom.c (suitable_reference_p): Volatile references
7664         are not suitable.
7665
7666 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7667
7668         PR target/49313
7669         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7670         (__ctzsi2): Result for 0 may be undefined.
7671         (__ctzhi2): Result for 0 may be undefined.
7672         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7673         (__popcountsi2): Ditto. And don't clobber r26.
7674         (__popcountdi2): Ditto. And don't clobber r27.
7675         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7676         (parityhi2): New expand.
7677         (paritysi2): New expand.
7678         (popcounthi2): New expand.
7679         (popcountsi2): New expand.
7680         (clzhi2): New expand.
7681         (clzsi2): New expand.
7682         (ctzhi2): New expand.
7683         (ctzsi2): New expand.
7684         (ffshi2): New expand.
7685         (ffssi2): New expand.
7686         (copysignsf3): New insn.
7687         (bswapsi2): New expand.
7688         (*parityhi2.libgcc): New insn.
7689         (*parityqihi2.libgcc): New insn.
7690         (*paritysihi2.libgcc): New insn.
7691         (*popcounthi2.libgcc): New insn.
7692         (*popcountsi2.libgcc): New insn.
7693         (*popcountqi2.libgcc): New insn.
7694         (*popcountqihi2.libgcc): New insn-and-split.
7695         (*clzhi2.libgcc): New insn.
7696         (*clzsihi2.libgcc): New insn.
7697         (*ctzhi2.libgcc): New insn.
7698         (*ctzsihi2.libgcc): New insn.
7699         (*ffshi2.libgcc): New insn.
7700         (*ffssihi2.libgcc): New insn.
7701         (*bswapsi2.libgcc): New insn.
7702
7703 2011-07-29  Richard Guenther  <rguenther@suse.de>
7704
7705         * tree-vrp.c (get_value_range): Only set parameter default
7706         definitions to varying, leave others at undefined.
7707         (extract_range_from_binary_expr): Fix undefined handling.
7708         (vrp_visit_phi_node): Handle merged undefined state.
7709
7710 2011-07-29  Wei Guozhi  <carrot@google.com>
7711
7712         PR rtl-optimization/49799
7713         * combine.c (make_compound_operation): Check if the bit field is valid
7714         before change it to bit field extraction.
7715
7716 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7717
7718         PR rtl-optimization/49891
7719         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
7720         newly created returnjumps.
7721
7722 2011-07-28  DJ Delorie  <dj@redhat.com>
7723
7724         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
7725         local frame in a naked function, and produce a suitable error for
7726         that specific case.
7727
7728         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
7729         registers to be reloaded in HI classes when the target is HI.
7730
7731 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7732
7733         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
7734         bound_one, bound_two.
7735
7736 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7737
7738         PR middle-end/48648
7739         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
7740         CLAST assignments.
7741         (translate_clast): Same.
7742         (translate_clast_assignment): New.
7743
7744 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7745
7746         PR tree-optimization/49876
7747         * sese.c (rename_uses): Do not return false on gloog_error: set
7748         the new_expr to integer_zero_node and continue code generation.
7749         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
7750
7751 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7752
7753         PR debug/49846
7754         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
7755         arguments also check if they aren't initialized with a MODE_INT
7756         mode of the same size.
7757
7758 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
7759
7760         * expr.c (get_bit_range): Handle *MEM_REF's.
7761
7762 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
7763
7764         * rtlanal.c (tablejump_p): False for returns.
7765         * reorg.c (first_active_target_insn): New static function.
7766         (find_end_label): Set JUMP_LABEL for a new returnjump.
7767         (optimize_skip, get_jump_flags, rare_destination,
7768         mostly_true_jump, get_branch_condition,
7769         steal_delay_list_from_target, own_thread_p,
7770         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
7771         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7772         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
7773         * jump.c (delete_related_insns): Likewise.
7774         (jump_to_label_p): New function.
7775         (redirect_target): New static function.
7776         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
7777         (redirect_jump_1): Assert that the new label is nonnull.
7778         (redirect_jump): Likewise.
7779         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
7780         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
7781         exit block.
7782         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
7783         changed.  Ensure that the right label is passed to redirect_jump.
7784         * function.c (emit_return_into_block,
7785         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
7786         ret_rtx in their JUMP_LABEL.
7787         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
7788         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
7789         pass ret_rtx as label.
7790         * cfglayout.c (fixup_reorder_chain): Use
7791         force_nonfallthru_and_redirect rather than force_nonfallthru.
7792         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
7793         * rtl.h (ANY_RETURN_P): New macro.
7794         (jump_to_label_p): Declare.
7795         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
7796         JUMP_LABELs.
7797         (mark_target_live_regs): Likewise.
7798         * basic-block.h (force_nonfallthru_and_redirect): Declare.
7799         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
7800         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
7801         alpha_tablejump_best_label): Remove functions.
7802         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
7803         alpha_tablejump_best_label): Remove declarations.
7804         * config/sh/sh.c (barrier_align, split_branches): Adjust for
7805         ret_rtx in JUMP_LABELs.
7806         * config/arm/arm.c (is_jump_table): Likewise.
7807
7808 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7809
7810         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
7811         special predicate.  Remove explicit mode checks.
7812
7813 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7814
7815         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
7816         DW_AT_data_member_location containing just DW_OP_plus_uconst.
7817
7818         PR debug/49871
7819         * dwarf2out.c (size_of_die, value_format, output_die): Use
7820         DW_FORM_udata instead of DW_FORM_data[48] for
7821         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
7822
7823 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7824
7825         * config/i386/i386.md (*tls_global_dynamic_64): Update
7826         length attribute.
7827
7828 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7829
7830         PR target/47715
7831         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
7832         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
7833         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
7834         (tls_dynamic_gnu2_64): Ditto.
7835         (*tls_dynamic_gnu2_lea_64): Ditto.
7836         (*tls_dynamic_gnu2_call_64): Ditto.
7837         (*tls_dynamic_gnu2_combine_64): Ditto.
7838
7839 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7840
7841         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
7842
7843 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7844
7845         PR target/47364
7846         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
7847
7848 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7849
7850         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
7851         before the core constraints. Adjust attributes.
7852         ("*thumb2_movdf_vfp"): Likewise.
7853
7854 2011-07-28  Kai Tietz  <ktietz@redhat.com>
7855
7856         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
7857         (simplify_truth_ops_using_ranges): Likewise.
7858         (build_assert_expr_for): Likewise.
7859         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
7860         and handle BIT_NOT_EXPR for truth-operation.
7861
7862 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7863
7864         PR target/49313
7865         Undo r176835 from trunk
7866         2011-07-27  Georg-Johann Lay
7867
7868 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7869
7870         PR target/49687
7871         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
7872         Add _muluhisi3, _mulshisi3, _usmulhisi3.
7873         * config/avr/libgcc.S (__mulsi3): Rewrite.
7874         (__mulhisi3): Rewrite.
7875         (__umulhisi3): Rewrite.
7876         (__usmulhisi3): New.
7877         (__muluhisi3): New.
7878         (__mulshisi3): New.
7879         (__mulohisi3): New.
7880         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
7881         declare.
7882         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
7883         (pseudo_register_or_const_int_operand): New.
7884         (combine_pseudo_register_operand): New.
7885         (u16_operand): New.
7886         (s16_operand): New.
7887         (o16_operand): New.
7888         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
7889         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
7890         (any_extend, any_extend2): New code iterators.
7891         (extend_prefix): New code attribute.
7892         (mulsi3): Rewrite. Turn insn to expander.
7893         (mulhisi3): Ditto.
7894         (umulhisi3): Ditto.
7895         (usmulhisi3): New expander.
7896         (*mulsi3): New insn-and-split.
7897         (mulu<mode>si3): New insn-and-split.
7898         (muls<mode>si3): New insn-and-split.
7899         (mulohisi3): New insn-and-split.
7900         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
7901         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
7902         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
7903         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
7904         insn-and-split.
7905         (*mulsi3_call): Rewrite.
7906         (*mulhisi3_call): Rewrite.
7907         (*umulhisi3_call): Rewrite.
7908         (*usmulhisi3_call): New insn.
7909         (*muluhisi3_call): New insn.
7910         (*mulshisi3_call): New insn.
7911         (*mulohisi3_call): New insn.
7912         (extendqihi2): Use combine_pseudo_register_operand as predicate
7913         for operand 1.
7914         (extendqisi2): Ditto.
7915         (zero_extendqihi2): Ditto.
7916         (zero_extendqisi2): Ditto.
7917         (zero_extendhisi2): Ditto.
7918         (extendhisi2): Ditto. Don't early-clobber operand 0.
7919
7920 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7921
7922         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
7923
7924 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7925
7926         PR tree-optimization/49471
7927         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
7928         iv only when the largest type is unsigned.  Do not call
7929         lang_hooks.types.type_for_size.
7930
7931 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7932
7933         PR middle-end/45450
7934         * graphite-poly.c (apply_poly_transforms): Disable legality check
7935         after an openscop read.
7936
7937 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7938
7939         PR middle-end/47691
7940         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
7941         copy_bb_and_scalar_dependences.
7942         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
7943         (graphite_copy_stmts_from_block): Update call to rename_uses.
7944         (copy_bb_and_scalar_dependences): Update call to
7945         graphite_copy_stmts_from_block.
7946         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
7947
7948 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
7949
7950         PR target/49313
7951         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7952         (__ctzsi2): Result for 0 may be undefined.
7953         (__ctzhi2): Result for 0 may be undefined.
7954         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7955         (__popcountsi2): Ditto. And don't clobber r26.
7956         (__popcountdi2): Ditto. And don't clobber r27.
7957         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7958         (parityhi2): New expand.
7959         (paritysi2): New expand.
7960         (popcounthi2): New expand.
7961         (popcountsi2): New expand.
7962         (clzhi2): New expand.
7963         (clzsi2): New expand.
7964         (ctzhi2): New expand.
7965         (ctzsi2): New expand.
7966         (ffshi2): New expand.
7967         (ffssi2): New expand.
7968         (copysignsf3): New insn.
7969         (bswapsi2): New expand.
7970         (*parityhi2.libgcc): New insn.
7971         (*parityqihi2.libgcc): New insn.
7972         (*paritysihi2.libgcc): New insn.
7973         (*popcounthi2.libgcc): New insn.
7974         (*popcountsi2.libgcc): New insn.
7975         (*popcountqi2.libgcc): New insn.
7976         (*popcountqihi2.libgcc): New insn-and-split.
7977         (*clzhi2.libgcc): New insn.
7978         (*clzsihi2.libgcc): New insn.
7979         (*ctzhi2.libgcc): New insn.
7980         (*ctzsihi2.libgcc): New insn.
7981         (*ffshi2.libgcc): New insn.
7982         (*ffssihi2.libgcc): New insn.
7983         (*bswapsi2.libgcc): New insn.
7984
7985 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7986
7987         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
7988         the mode of symbolic_opreand RTXes.
7989
7990 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7991
7992         * config/i386/predicates.md (x86_64_movabs_operand): Return false
7993         for pic_32bit_operand RTXes.
7994         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
7995         in DImode.
7996
7997 2011-07-27  Kai Tietz  <ktietz@redhat.com>
7998
7999         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
8000         for 32-bit, too.
8001         (ix86_handle_abi_attribute): Allow function attributes
8002         ms_abi/sysv_abi in 32-bit mode, too.
8003         * doc/extend.texi: Adjust attribute documentation.
8004
8005         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
8006         expression handling.
8007         (and_var_with_comparison_1): Likewise.
8008
8009 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
8010
8011         * params.h (ALLOW_STORE_DATA_RACES): New.
8012         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
8013         * Makefile.in (expr.o): Depend on PARAMS_H.
8014         * machmode.h (get_best_mode): Add argument.
8015         * fold-const.c (optimize_bit_field_compare): Add argument to
8016         get_best_mode.
8017         (fold_truthop): Same.
8018         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
8019         * expr.c (emit_group_store): Same.
8020         (copy_blkmode_from_reg): Same.
8021         (write_complex_part): Same.
8022         (optimize_bitfield_assignment_op): Add argument.
8023         Add argument to get_best_mode.
8024         (get_bit_range): New.
8025         (expand_assignment): Calculate maxbits and pass it down accordingly.
8026         (store_field): New argument.
8027         (expand_expr_real_2): New argument to store_field.  Include params.h.
8028         * expr.h (store_bit_field): New argument.
8029         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
8030         into account maxbits.
8031         * calls.c (store_unaligned_arguments_into_pseudos): New argument
8032         to store_bit_field.
8033         * expmed.c (store_bit_field_1): New argument.  Use it.
8034         (store_bit_field): Same.
8035         (store_fixed_bit_field): Same.
8036         (store_split_bit_field): Same.
8037         (extract_bit_field_1): Pass new argument to get_best_mode.
8038         (extract_bit_field): Same.
8039         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
8040         * doc/invoke.texi: Document parameter allow-store-data-races.
8041
8042 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
8043
8044         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
8045
8046 2011-07-27  Kai Tietz  <ktietz@redhat.com>
8047
8048         * tree-vrp.c (extract_range_from_binary_expr): Remove
8049         TRUTH-binary cases and add new bitwise-cases.
8050         (extract_range_from_assignment): Likewise.
8051         (register_edge_assert_for_1): Likeiwise.
8052         (register_edge_assert_for): Likewise.
8053         (simplify_truth_ops_using_ranges): Likewise.
8054         (simplify_stmt_using_ranges): Likewise.
8055
8056 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
8057
8058         PR target/47372
8059         * config/i386/i386.c (ix86_delegitimize_address): Call
8060         simplify_gen_subreg for PIC with mode of x only if modes of
8061         x and orig_x are different.
8062
8063 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
8064
8065         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
8066         to GC allocated copy of the string.
8067         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
8068         before .debug_line, not after it.
8069
8070 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8071
8072         PR middle-end/47046
8073         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
8074         evolution_function_is_affine_p on CHREC_RIGHT.
8075
8076 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8077
8078         * tree-data-ref.c (max_stmt_executions_tree): Do not call
8079         lang_hooks.types.type_for_size.
8080
8081 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8082
8083         PR middle-end/47653
8084         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
8085         loops using wrapping semantics.
8086
8087 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8088
8089         PR middle-end/48805
8090         * tree-scalar-evolution.c (instantiate_scev_r): Return
8091         chrec_dont_know for ADDR_EXPR.
8092
8093 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8094             H.J. Lu  <hongjiu.lu@intel.com>
8095
8096         PR target/47369
8097         PR target/49853
8098         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
8099         if legitimize_tls_address returned operand in wrong mode. Allow
8100         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
8101         if legitimize_pic_address returned operand in wrong mode.
8102
8103 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8104
8105         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
8106         return false for invariants.
8107
8108 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8109
8110         * config/i386/i386.md (add->lea splitter): Implement using SWI
8111         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
8112         (add->lea zext splitter): Change operand 2 predicate to
8113         x86_64_nonmemory_operand.
8114
8115 2011-07-26  Richard Guenther  <rguenther@suse.de>
8116
8117         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
8118         frequency makes everything hot.
8119
8120 2011-07-26  Richard Guenther  <rguenther@suse.de>
8121
8122         PR tree-optimization/49840
8123         * tree-vrp.c (range_fits_type_p): Properly handle full
8124         double-int precision.
8125
8126 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8127
8128         PR bootstrap/49786
8129         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
8130         counts.
8131         (update_specialized_profile): Likewise.
8132
8133 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8134             H.J. Lu  <hongjiu.lu@intel.com>
8135
8136         PR target/47381
8137         PR target/49832
8138         PR target/49833
8139         * config/i386/i386.md (i): Change SImode attribute to "e".
8140         (g): Change SImode attribute to "rme".
8141         (di): Change SImode attribute to "nF".
8142         (general_operand): Change SImode attribute to x86_64_general_operand.
8143         (general_szext_operand): Change SImode attribute to
8144         x86_64_szext_general_operand.
8145         (immediate_operand): Change SImode attribute to
8146         x86_64_immediate_operand.
8147         (nonmemory_operand): Change SImode attribute to
8148         x86_64_nonmemory_operand.
8149         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
8150         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
8151         (*lea_1): Use SWI48 mode iterator.
8152         (*lea_1_zext): New insn pattern.
8153         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
8154         (*bt<mode>): Ditto.
8155         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
8156         Update operand constraints.
8157         (addsi_1_zext): Ditto.
8158         (*add<mode>2): Ditto.
8159         (*addsi_3_zext): Ditto.
8160         (*subsi_1_zext): Ditto.
8161         (*subsi_2_zext): Ditto.
8162         (*subsi_3_zext): Ditto.
8163         (*addsi3_carry_zext): Ditto.
8164         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
8165         (*mulsi3_1_zext): Ditto.
8166         (*andsi_1): Ditto.
8167         (*andsi_1_zext): Ditto.
8168         (*andsi_2_zext): Ditto.
8169         (*<any_or:code>si_1_zext): Ditto.
8170         (*<any_or:code>si_2_zext): Ditto.
8171         (*test<mode>_1): Use <general_operand> predicate for operand 1.
8172         (*and<mode>_2): Ditto.
8173         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
8174         (add->lea splitter): Check operand modes in insn constraint.  Extend
8175         operands less than SImode wide to SImode.
8176         (add->lea zext splitter): Do not extend input operands to DImode.
8177         (*lea_general_1): Handle only QImode and HImode operands.
8178         (*lea_general_2): Ditto.
8179         (*lea_general_3): Ditto.
8180         (*lea_general_1_zext): Remove.
8181         (*lea_general_2_zext): Ditto.
8182         (*lea_general_3_zext): Ditto.
8183         (*lea_general_4): Check operand modes in insn constraint.  Extend
8184         operands less than SImode wide to SImode.
8185         (ashift->lea splitter): Ditto.
8186         * config/i386/i386.c (ix86_print_operand_address): Print address
8187         registers with 'q' modifier on 64bit targets.
8188         * config/i386/predicates.md (pic_32bit_opreand): Define as special
8189         predicate.  Reject non-SI and non-DI modes.
8190
8191 2011-07-25  Andrew Pinski  <apinski@cavium.com>
8192
8193         PR tree-opt/49671
8194         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
8195         TREE_THIS_NOTRAP into the inner most MEM_REF.
8196         Always copy TREE_THIS_VOLATILE.
8197         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
8198         arguments are not volatile references.
8199
8200 2011-07-25  Richard Henderson  <rth@redhat.com>
8201
8202         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
8203         * final.c (final_scan_insn): Don't test for it.
8204         (rest_of_clean_state): Likewise.
8205
8206 2011-07-25  Richard Henderson  <rth@redhat.com>
8207
8208         PR debug/49841
8209         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
8210         (emit_frame_save): Likewise.
8211         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
8212         insn onto a dummy blockage insn after the join label.
8213
8214 2011-07-25  Richard Henderson  <rth@redhat.com>
8215
8216         * dwarf2cfi.c (dw_trace_info): Add ID member.
8217         (get_trace_index): Remove.  Change users to use ID member.
8218         (before_next_cfi_note): New.
8219         (connect_traces): Remove unreachable traces before the main loop.
8220         Look across one trace and generate remember/restore_state if needed.
8221
8222 2011-07-25  Richard Henderson  <rth@redhat.com>
8223
8224         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
8225
8226 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
8227
8228         * genattr.c (write_upcase, gen_attr <enum definition writing>):
8229         Move to ...
8230         * genattr-common.c ... here.
8231         (main): Call gen_attr.
8232         * optc-gen.awk: Make generated program include insn-attr-common.h .
8233         * Makefile.in (oprions.o): Depend on insn-attr-common.h
8234
8235 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8236
8237         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8238         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8239         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
8240         m32c_print_operand, m32c_print_operand_address): Remove.
8241         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
8242         Change return type to bool. Change argument type to bool.
8243         (m32c_print_operand, m32c_print_operand_address): Make static.
8244         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8245         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8246
8247 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8248
8249         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
8250         attributes): Document mmap.
8251
8252 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8253
8254         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8255         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8256         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
8257         mmix_print_operand, mmix_print_operand_address): Remove.
8258         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
8259         Change return type to bool. Change argument type to bool.
8260         (mmix_print_operand, mmix_print_operand_address): Make static.
8261         (mmix_intval, mmix_output_condition): Change 'x' argument type
8262         to const_rtx.
8263         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8264         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8265
8266 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
8267
8268         PR target/39386
8269         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
8270         shift counter for x << x and x >> x shifts.
8271
8272 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8273
8274         PR target/47124
8275         * config.gcc: Reject *-*-solaris2 configuration.
8276
8277 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
8278
8279         PR tree-optimization/49809
8280         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
8281         gimple_get_lhs instead of gimple_assign_lhs.
8282
8283 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8284
8285         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
8286
8287 2011-07-25  Richard Guenther  <rguenther@suse.de>
8288
8289         PR tree-optimization/49822
8290         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8291         more.  Make sure to preserve stmts with side-effects.  Properly
8292         handle virtual defs, follow a longer def chain.
8293
8294 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
8295
8296         PR plugins/45348
8297         PR plugins/48425
8298         PR plugins/46577
8299         * Makefile.in: Do not flatten c-family directory when installing
8300         plugin headers.
8301
8302 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8303
8304         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
8305         original nodes if we are dealing with virtual clones.
8306
8307 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
8308
8309         * common/config/c6x/c6x-common.c: New file.
8310
8311 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
8312
8313         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
8314
8315 2011-07-25  Richard Guenther  <rguenther@suse.de>
8316
8317         PR tree-optimization/49715
8318         * tree-vrp.c: Include expr.h and optabs.h.
8319         (range_fits_type_): New function.
8320         (simplify_float_conversion_using_ranges): Likewise.
8321         (simplify_stmt_using_ranges): Call it.
8322         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
8323         * optabs.c (can_float_p): Export.
8324         * optabs.h (can_float_p): Declare.
8325
8326 2011-07-25  Richard Guenther  <rguenther@suse.de>
8327
8328         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
8329         (get_value_range): For out-of-range SSA names or names created
8330         after propagation return a read-only varying range.
8331         (dump_all_value_ranges): Adjust.
8332         (vrp_initialize): Likewise.
8333         (vrp_finalize): Likewise.
8334
8335 2011-07-24  Richard Henderson  <rth@redhat.com>
8336
8337         PR debug/49831
8338         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
8339         them entirely.
8340
8341 2011-07-24  Richard Henderson  <rth@redhat.com>
8342
8343         PR debug/49825
8344         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
8345         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
8346
8347 2011-07-24  Richard Henderson  <rth@redhat.com>
8348
8349         PR debug/49827
8350         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
8351
8352 2011-07-24  Richard Henderson  <rth@redhat.com>
8353
8354         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
8355         Zero args_size for abnormal edges.  Adjust all callers.
8356
8357 2011-07-24  Richard Henderson  <rth@redhat.com>
8358
8359         PR debug/49825
8360         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
8361
8362 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
8363
8364         PR bootstrap/49835
8365         * collect2.c (demangle_flag): Removed.
8366
8367 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
8368
8369         * configure.ac (demangler_in_ld): Default to yes.
8370         * configure: Regenerated.
8371         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
8372         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
8373         --no-demangle options straight through to ld.  When
8374         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
8375         way that has the intended effect on Windows.
8376
8377 2011-07-23  Richard Henderson  <rth@redhat.com>
8378
8379         * dwarf2cfi.c: Include basic-block.h.
8380         (dw_label_info): Remove.
8381         (trace_work_list, trace_index): New.
8382         (remember_row, emit_cfa_remember): Remove.
8383         (dw_trace_info_hash, dw_trace_info_eq): New.
8384         (get_trace_index, get_trace_info): New.
8385         (save_point_p): New.
8386         (free_cfi_row): Remove.
8387         (add_cfi): Do not emit DW_CFA_remember_state.
8388         (cfa_row_equal_p): New.
8389         (barrier_args_size): Remove.
8390         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
8391         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
8392         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
8393         (dwarf2out_cfi_begin_epilogue): Remove.
8394         (dwarf2out_frame_debug_restore_state): Remove.
8395         (connect_traces, create_pseudo_cfg): New.
8396         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
8397         * Makefile.in (dwarf2cfi.o): Update.
8398
8399 2011-07-23  Richard Henderson  <rth@redhat.com>
8400
8401         * dwarf2cfi.c (dw_trace_info): New.
8402         (dw_label_info): New.
8403         (cie_return_save): New.
8404         (cur_trace): New.
8405         (queued_args_size): Rename from args_size.  Update all users.
8406         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
8407         (def_cfa_1): Use cur_trace instead of cfa_*.
8408         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
8409         (clobbers_queued_reg_save, reg_saved_in): Likewise.
8410         (dwarf2out_frame_debug_expr): Likewise.
8411         (create_cie_data): Split out from ...
8412         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
8413
8414 2011-07-23  Richard Henderson  <rth@redhat.com>
8415
8416         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
8417         Update all users to match.
8418         (execute_dwarf2_frame): Free reg_saved_in_data.
8419
8420 2011-07-23  Richard Henderson  <rth@redhat.com>
8421
8422         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
8423         (queued_reg_saves): Don't GTY.  Change to a VEC.
8424         (queue_reg_save): Update to match.
8425         (dwarf2out_flush_queued_reg_saves): Likewise.
8426         (clobbers_queued_reg_save): Likewise.
8427         (reg_saved_in): Likewise.
8428         (execute_dwarf2_frame): Free queued_reg_saves.
8429
8430 2011-07-23  Richard Henderson  <rth@redhat.com>
8431
8432         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
8433
8434 2011-07-23  Richard Henderson  <rth@redhat.com>
8435
8436         * dwarf2cfi.c (add_cfi_args_size): Split out from...
8437         (dwarf2out_args_size): ... here.
8438         (add_cfi_restore): Split out from ...
8439         (dwarf2out_frame_debug_cfa_restore): ... here.
8440         (def_cfa_0): Split out from ...
8441         (def_cfa_1): ... here.
8442         (cfi_oprnd_equal_p, cfi_equal_p): New.
8443         (change_cfi_row): New.
8444         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
8445         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
8446         (output_cfis): Remove.
8447         * dwarf2out.c (output_fde): Simplify output_cfi loop.
8448         (dwarf2out_switch_text_section): Don't call output_cfis.
8449         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
8450         * dwarf2out.h: Update decls.
8451         (enum dw_val_class): Add dw_val_class_none.
8452
8453 2011-07-23  Richard Henderson  <rth@redhat.com>
8454
8455         * dwarf2cfi.c (update_row_reg_save): New.
8456         (dwarf2out_frame_debug_cfa_expression): Use it.
8457         (dwarf2out_frame_debug_cfa_restore): Likewise.
8458         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
8459
8460 2011-07-23  Richard Henderson  <rth@redhat.com>
8461
8462         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
8463
8464 2011-07-23  Richard Henderson  <rth@redhat.com>
8465
8466         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
8467         (cie_cfi_row): New.
8468         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
8469         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
8470         (cur_row, remember_row): New.
8471         (def_cfa_1): Use cur_row instead of the old_* variables.
8472         (dwarf2out_frame_debug_restore_state): Similarly.
8473         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
8474         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
8475         (dwarf2out_frame_debug_adjust_cfa): Likewise.
8476         (dwarf2out_frame_debug_cfa_offset): Likewise.
8477         (dwarf2out_frame_debug_expr): Likewise.
8478         (execute_dwarf2_frame): Set up cur_row.
8479         * dwarf2out.h (struct cfa_loc): Mark for GTY.
8480
8481 2011-07-23  Richard Henderson  <rth@redhat.com>
8482
8483         * basic-block.h (EDGE_PRESERVE): New.
8484         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
8485         * bb-reorder.c: Include except.h.
8486         (fix_up_crossing_landing_pad): New.
8487         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
8488         landing pads in the right partition.  Duplicate as necessary.
8489         (partition_hot_cold_basic_blocks): Fix up DF info after
8490         duplicating landing pads.
8491         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
8492         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
8493         is set properly.  Validate that EH edges are not CROSSING.
8494         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
8495         (dw2_build_landing_pads): ... here.
8496         (convert_to_eh_region_ranges): Remove code to fixup crossing
8497         landing pads.
8498         * except.h (expand_dw2_landing_pad_for_region): Declare.
8499         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
8500
8501 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
8502
8503         PR target/49816
8504         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
8505
8506 2011-07-22  Jason Merrill  <jason@redhat.com>
8507
8508         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
8509
8510 2011-07-22  Richard Henderson  <rth@redhat.com>
8511
8512         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
8513
8514 2011-07-22  Richard Henderson  <rth@redhat.com>
8515
8516         * jump.c (maybe_propagate_label_ref): Split out of...
8517         (mark_all_labels): ... here.  Do not attempt label_ref
8518         propagation while in cfglayout mode.
8519
8520 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8521
8522         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
8523         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
8524         (dwarf_attr_name): Handle DW_AT_GNU_macros.
8525         (dwarf2out_define): If the vector is empty and
8526         lineno is 0, emit a dummy entry first.
8527         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
8528         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
8529         optimize_macinfo_range): New functions.
8530         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
8531         mergeable, optimize longer strings using
8532         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
8533         optimize longer sequences of define/undef ops from headers
8534         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
8535         emit a section headers.
8536         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
8537         and macinfo_section_label to DEBUG_MACRO_SECTION
8538         resp. DEBUG_MACRO_SECTION_LABEL.
8539         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
8540         instead of DW_AT_macro_info.
8541
8542         PR other/32998
8543         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
8544         options.
8545         * dwarf2out.c: Include opts.h.
8546         (dchar_p): New typedef.  Define heap VEC for it.
8547         (producer_string): New variable.
8548         (gen_producer_string): New function.
8549         (gen_compile_unit_die): Use it.
8550         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
8551         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
8552         * doc/invoke.texi: Document -grecord-gcc-switches and
8553         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
8554         to -frecord-gcc-switches description.
8555
8556 2011-07-22  Jason Merrill  <jason@redhat.com>
8557
8558         PR c++/30112
8559         * c-decl.c (c_linkage_bindings): Define.
8560
8561 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8562
8563         PR debug/49815
8564         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
8565
8566 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
8567
8568         * config/i386/i386.c (ix86_option_override_internal): Disallow
8569         MS ABI in x32 mode.
8570         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
8571         only for TARGET_LP64.
8572         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
8573
8574 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8575
8576         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
8577         avoid warnings when GCC is built with a C++ compiler.
8578
8579 2011-07-22  Martin Jambor  <mjambor@suse.cz>
8580
8581         PR lto/49796
8582         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
8583         if decl node is in another partition, call cgraph_get_node only once.
8584
8585 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
8586
8587         * config.gcc (x86_64-*-linux*): Set
8588         default_gnu_indirect_function to yes.
8589
8590 2011-07-22  Richard Guenther  <rguenther@suse.de>
8591
8592         PR tree-optimization/45819
8593         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8594         preserve volatile and notrap flags.
8595
8596 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8597             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8598
8599         PR bootstrap/49794
8600         * configure.ac: Test AM_ICONV with CXX.
8601         * configure: Regenerate.
8602         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
8603
8604 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8605
8606         PR bootstrap/49797
8607         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
8608         (set_cloog_options): Use it.
8609
8610 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8611
8612         PR c++/49756
8613         * gcc.c (main): Call stack_limit_increase (64MB).
8614         * toplev.c (toplev_main): Likewise.
8615
8616 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8617
8618         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
8619         instead of force_reg.
8620
8621 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8622
8623         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
8624         needed and use force_reg after convert.
8625         (ix86_expand_call): Likewise.
8626         (ix86_expand_special_args_builtin): Likewise.
8627         (ix86_expand_builtin): Likewise.
8628
8629 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8630
8631         PR middle-end/47654
8632         PR middle-end/49649
8633         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
8634         in parameter.  Initialize v1 and v2 based on the values returned
8635         by clast_name_to_lb_ub.
8636         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
8637         values.
8638         (type_for_clast_bin): Same.
8639         (type_for_clast_expr): Same.
8640         (type_for_clast_eq): Update calls to type_for_clast_expr.
8641         (type_for_clast_for): Same.
8642         (build_iv_mapping): Same.
8643         * graphite-ppl.h (value_min): New.
8644
8645 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8646
8647         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
8648         types whenever possible.
8649
8650 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8651
8652         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
8653         and ub fields.
8654         (new_clast_name_index): Add lb and ub parameters.
8655         (free_clast_name_index): New.
8656         (clast_name_to_lb_ub): New.
8657         (save_clast_name_index): Add lb and ub parameters.
8658         (compute_bounds_for_param): New.
8659         (type_for_level): Removed.
8660         (type_for_clast_for): Removed level parameter.  Do not call
8661         type_for_level.
8662         (graphite_create_new_loop): Store the lb and ub for the clast_name
8663         of the iterator of the loop that has been generated.
8664         (graphite_create_new_loop_guard): Remove parameter level.
8665         (create_params_index): Store the lb and ub of each parameter.
8666         (gloog): Use free_clast_name_index.  Pass to create_params_index
8667         the current scop.
8668
8669 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8670
8671         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
8672         (max_precision_type): Inline max_signed_precision_type.
8673         (type_for_clast_red): Use max_precision_type.
8674         (type_for_clast_bin): Same.
8675         (type_for_clast_for): Same.
8676
8677 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8678
8679         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
8680         type_for_interval.
8681         (gcc_type_for_value): Renamed type_for_value.
8682         (gcc_type_for_clast_term): Renamed type_for_clast_term.
8683         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
8684         (gcc_type_for_clast_red): Renamed type_for_clast_red.
8685         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
8686         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
8687         (graphite_translate_clast_equation): Update calls.
8688         (compute_type_for_level): Renamed type_for_level.
8689         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
8690         (build_iv_mapping): Update calls.
8691         (graphite_create_new_loop_guard): Same.
8692
8693 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8694
8695         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
8696         comment.
8697
8698 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8699
8700         * graphite-clast-to-gimple.c (struct ivs_params): New.
8701         (clast_name_to_gcc): Use ivs_params to pass around parameters.
8702         (clast_to_gcc_expression): Same.
8703         (clast_to_gcc_expression_red): Same.
8704         (gcc_type_for_clast_term): Same.
8705         (gcc_type_for_clast_expr): Same.
8706         (gcc_type_for_clast_red): Same.
8707         (gcc_type_for_clast_bin): Same.
8708         (gcc_type_for_clast_eq): Same.
8709         (graphite_translate_clast_equation): Same.
8710         (graphite_create_guard_cond_expr): Same.
8711         (graphite_create_new_guard): Same.
8712         (graphite_create_new_loop): Same.
8713         (build_iv_mapping): Same.
8714         (translate_clast_user): Same.
8715         (graphite_create_new_loop_guard): Same.
8716         (translate_clast): Same.
8717         (translate_clast_for_loop): Same.
8718         (translate_clast_for): Same.
8719         (translate_clast_guard): Same.
8720         (initialize_cloog_names): Fix typo.
8721         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
8722
8723 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8724
8725         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
8726         (new_clast_name_index): Add level parameter.
8727         (clast_name_to_level): New.
8728         (save_clast_name_index): Add level parameter.
8729         (newivs_to_depth_to_newiv): Removed.
8730         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
8731         (graphite_create_new_loop): Add level parameter.  Pass level to
8732         save_clast_name_index.
8733         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
8734         (create_params_index): Pass level to save_clast_name_index.
8735
8736 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8737
8738         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
8739         recompute type, lb, and ub.  Get them from...
8740         (graphite_create_new_loop_guard): ...here.  Pass in parameter
8741         pointers to type, lb, and ub.
8742         (translate_clast_for_loop): Update function calls.
8743         (translate_clast_for): Same.
8744
8745 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8746
8747         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
8748         psct_dynamic_dim.
8749         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
8750         (gcc_type_for_iv_of_clast_loop): Update use of level.
8751         (gloog): Start counting nesting level from 0.
8752         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
8753         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
8754         psct_dynamic_dim on level.
8755
8756 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8757
8758         * config/i386/i386.c (ix86_legitimize_address): Convert to
8759         Pmode if needed.
8760
8761 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8762
8763         * config/i386/i386.c (function_value_64): Always return pointers
8764         in Pmode.
8765         (ix86_promote_function_mode): New.
8766         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
8767
8768 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8769
8770         PR tree-optimization/49749
8771         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
8772         remove no-longer-used maxrank variable.
8773
8774 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8775
8776         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
8777
8778 2011-07-21  Jason Merrill  <jason@redhat.com>
8779
8780         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
8781         * recog.h (struct insn_data_d): Check it instead of
8782         HAVE_DESIGNATED_INITIALIZERS.
8783         * genoutput.c (output_insn_data): Likewise.
8784
8785 2011-07-21  Richard Guenther  <rguenther@suse.de>
8786
8787         PR tree-optimization/49770
8788         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
8789         valueized any operand.  Renamed from ...
8790         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
8791         (valueize_shared_reference_ops_from_ref): Return whether we
8792         valueized any operand.
8793         (vn_reference_lookup): Only when we valueized any operand
8794         use the valueized reference for alias analysis.  Do not preserve
8795         the original reference tree in this case.
8796
8797 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
8798
8799         * config/i386/i386.c (ix86_decompose_address): Reject all but
8800         register operands and subregs of DImode hard registers in index.
8801
8802 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8803
8804         * fold-const.c (fold_unary_loc): Preserve indirect
8805         comparison cast to none-boolean type.
8806         * tree-ssa.c (useless_type_conversion_p): Preserve cast
8807         from/to boolean-type.
8808         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
8809         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
8810         * tree-cfg.c (verify_gimple_comparison): Check result
8811         type of comparison expression.
8812         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
8813         of condition result and disallow type-cast sinking into comparison.
8814
8815 2011-07-21  Richard Guenther  <rguenther@suse.de>
8816
8817         * tree-ssa-forwprop.c (combine_conversions): Return whether
8818         we have to run cfg-cleanup.  Properly remove dead stmts.
8819         (ssa_forward_propagate_and_combine): Adjust.
8820
8821 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
8822
8823         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
8824
8825 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8826
8827         * tree-ssa-propagate.c (substitute_and_fold): Use
8828         do_dce flag to deside, if BB's statements are scanned
8829         in last to first, or first to last order.
8830
8831 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8832
8833         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
8834
8835 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
8836             Uros Bizjak  <ubizjak@gmail.com>
8837             Richard Henderson  <rth@redhat.com>
8838
8839         * config/i386/constraints.md (w): New.
8840
8841         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
8842         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
8843
8844         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
8845         instead of TARGET_64BIT.
8846
8847         * config/i386/i386.md (indirect_jump): Replace
8848         nonimmediate_operand with indirect_branch_operand.
8849         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
8850         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
8851         Convert operand 0 to Pmode for x32 if not PIC.
8852         (*tablejump_1): Replace nonimmediate_operand with
8853         indirect_branch_operand.  Replace constraint "m" with "w".
8854         (*call_vzeroupper): Replace constraint "m" with "w".
8855         (*call): Likewise.
8856         (*call_rex64_ms_sysv_vzeroupper): Likewise.
8857         (*call_rex64_ms_sysv): Likewise.
8858         (*call_value_vzeroupper): Likewise.
8859         (*call_value): Likewise.
8860         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
8861         (*call_value_rex64_ms_sysv): Likewise.
8862         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
8863
8864         * config/i386/predicates.md (indirect_branch_operand): New.
8865         (call_insn_operand): Support x32.
8866
8867 2011-07-20  Michael Eager  <eager@eagercon.com>
8868
8869         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
8870
8871 2011-07-20  Richard Henderson  <rth@redhat.com>
8872
8873         * cfg.c (dump_bb_info): Dump basic_block->flags.
8874         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
8875
8876 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8877
8878         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8879         of DImode hard registers in index.
8880         (ix86_legitimate_address_p): Allow subregs of base and index to span
8881         more than a word.  Assert that subregs of base and index satisfy
8882         register_no_elim_operand predicates.  Reject addresses where
8883         base and index have different modes.
8884
8885 2011-07-20  Robert Millan  <rmh@gnu.org>
8886
8887         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
8888
8889 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8890
8891         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
8892         removing now-unnecessary assignment.
8893
8894 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8895
8896         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
8897         memory address space to the type's address space.
8898
8899 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8900
8901         PR target/36467
8902         PR target/49687
8903         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
8904         and expand appropriately if there is a CONST_INT in operand2.
8905         (usmulqihi3): New insn.
8906         (*sumulqihi3): New insn.
8907         (*osmulqihi3): New insn.
8908         (*oumulqihi3): New insn.
8909         (*muluqihi3.uconst): New insn_and_split.
8910         (*muluqihi3.sconst): New insn_and_split.
8911         (*mulsqihi3.sconst): New insn_and_split.
8912         (*mulsqihi3.uconst): New insn_and_split.
8913         (*mulsqihi3.oconst): New insn_and_split.
8914         (*ashifthi3.signx.const): New insn_and_split.
8915         (*ashifthi3.signx.const7): New insn_and_split.
8916         (*ashifthi3.zerox.const): New insn_and_split.
8917         (mulsqihi3): New insn.
8918         (muluqihi3): New insn.
8919         (muloqihi3): New insn.
8920         * config/avr/predicates.md (const_2_to_7_operand): New.
8921         (const_2_to_6_operand): New.
8922         (u8_operand): New.
8923         (s8_operand): New.
8924         (o8_operand): New.
8925         (s9_operand): New.
8926         (register_or_s9_operand): New.
8927
8928 2011-07-20  Kai Tietz  <ktietz@redhat.com>
8929
8930         * builtins.c (fold_builtin_expect): See through the cast
8931         from truthvalue_type_node to long.
8932
8933 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
8934
8935         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
8936         where we can use them from the standard and altivec instruction
8937         sets, instead of always using the 3 operand VSX forms that require
8938         the destination to overlap one of the inputs.
8939         (vsx_fms*): Ditto.
8940         (vsx_fnma*): Ditto.
8941         (vsx_fnms*): Ditto.
8942
8943         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
8944         for DF types.
8945         (fmsdf4_fpr): Ditto.
8946         (nfmadf4_fpr): Ditto.
8947         (nfmsdf4_fpr): Ditto.
8948
8949 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
8950
8951         * genrecog.c (make_insn_sequence): Correct position numbering
8952         when filtering out match_scratch and match_dup.
8953
8954 2011-07-20  Richard Guenther  <rguenther@suse.de>
8955
8956         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8957         against already removed statements.
8958         (forward_propagate_into_comparison): Remove dead defining stmts.
8959         (forward_propagate_into_gimple_cond): Likewise.
8960         (forward_propagate_into_cond): Simplify.
8961         (ssa_forward_propagate_and_combine): Handle changed cfg from
8962         forward_propagate_into_comparison.
8963         * tree-ssa-phiopt.c (conditional_replacement): Use proper
8964         locations for newly built statements.
8965
8966 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8967
8968         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
8969
8970 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8971
8972         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
8973         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
8974
8975 2011-07-20  Richard Guenther  <rguenther@suse.de>
8976
8977         PR middle-end/18908
8978         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
8979         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
8980         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
8981
8982 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
8983
8984         * config/frv/frv.c (frv_register_move_cost): Define explicitly
8985         costs for subclasses of GR_REGS.
8986
8987 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8988
8989         PR target/49780
8990         * config/i386/predicates.md (no_seg_addres_operand): No more special.
8991         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8992         of DImode hard registers in base.
8993         (ix86_legitimate_address_p): Allow SImode and DImode base and index
8994         registers.
8995
8996 2011-07-20  Richard Guenther  <rguenther@suse.de>
8997
8998         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
8999         (unify_nodes): Deal with that.
9000         (solve_graph): Likewise.
9001
9002 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
9003
9004         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
9005         canonicalize left operand from ZERO_EXTEND to AND.
9006
9007 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
9008
9009         * target.def (class_max_nregs): New hook.
9010         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
9011         * doc/tm.texi: Regenerate.
9012         * targhooks.c (default_class_max_nregs): New function.
9013         * targhooks.h (default_class_max_nregs): Declare.
9014         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
9015         x_ira_reg_class_min_nregs arrays to unsigned char.
9016         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
9017         hook instead of CLASS_MAX_NREGS macro.
9018         * reginfo.c (restore_register_info): Ditto.
9019         * ira-conflicts.c (process_regs_for_copy): Use
9020         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9021         Change type rclass and aclass vars to reg_class_t.
9022         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
9023         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
9024         reg_class_t.
9025         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
9026         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
9027
9028         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
9029         * config/i386/i386.c (ix86_class_max_nregs): New function.
9030         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
9031         instead of CLASS_MAX_NREGS macro.
9032         (TARGET_CLASS_MAX_NREGS): Define.
9033         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
9034         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
9035         * config/avr/avr.c (class_max_nregs): Remove function.
9036         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
9037         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
9038         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
9039         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
9040         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
9041         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
9042         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
9043         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
9044         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
9045         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
9046         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
9047         * config/score/score.h (CLASS_MAX_NREGS): Remove.
9048         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
9049         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
9050         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
9051
9052 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9053
9054         * cif-code.def (OVERWRITABLE): Fix typo and move around.
9055         (TARGET_OPTIMIZATION_MISMATCH): Delete.
9056         (EH_PERSONALITY): Fix typo.
9057         (NON_CALL_EXCEPTIONS): Fix message.
9058         (OPTIMIZATION_MISMATCH): Adjust message.
9059         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
9060
9061 2011-07-19  Ian Lance Taylor  <iant@google.com>
9062
9063         * doc/install.texi (Configuration): Document
9064         --enable-build-poststage1-with-cxx.
9065
9066 2011-07-19  Robert Millan  <rmh@gnu.org>
9067
9068         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
9069         (GLIBC_DYNAMIC_LINKER): Remove.
9070
9071         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
9072         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9073         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9074         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
9075         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
9076         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
9077
9078         * config/mips/linux.h: Remove everything except for ...
9079         (GLIBC_DYNAMIC_LINKER): ... this macro.
9080
9081         * config/mips/linux64.h: Remove everything except for ...
9082         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9083         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9084         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
9085         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
9086         (GNU_USER_LINK_EMULATIONN32): New macros.
9087
9088         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
9089         Use the new headers.
9090
9091 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9092
9093         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
9094         Add offset_known_p and size_known_p fields.
9095         (MEM_OFFSET_KNOWN_P): Update accordingly.
9096         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
9097         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
9098         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
9099         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
9100         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
9101         (init_emit_regs): Likewise.
9102
9103 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9104
9105         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
9106         (MEM_OFFSET): Change from returning an rtx to returning a
9107         HOST_WIDE_INT.
9108         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
9109         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
9110         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9111         (clear_mem_offset): Declare.
9112         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
9113         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
9114         MEM_OFFSET to get a HOST_WIDE_INT offset.
9115         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
9116         (adjust_offset_for_component_ref): Take a bool "known_p"
9117         parameter and a HOST_WIDE_INT "offset" parameter.
9118         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
9119         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
9120         than an rtx.  Use clear_mem_offset to clear the offset.
9121         * cfgcleanup.c (merge_memattrs): Likewise.
9122         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
9123         * function.c (assign_parm_find_stack_rtl): Likewise.
9124         (assign_parm_setup_stack): Likewise.
9125         * print-rtl.c (print_rtx): Likewise.
9126         * reload.c (find_reloads_subreg_address): Likewise.
9127         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9128         * var-tracking.c (INT_MEM_OFFSET): Likewise.
9129         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
9130         (get_mem_align_offset): Likewise.
9131         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9132         (clear_mem_offset): New function.
9133         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
9134         offset rather than an rtx.  Assume both the expressio and offset
9135         are available.
9136         (r10k_needs_protection_p_1): Update accordingly, checking the
9137         expression and offset availability here instead.
9138
9139 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9140
9141         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
9142         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
9143         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
9144         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
9145         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9146         (clear_mem_size): Declare.
9147         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9148         (clear_mem_size): New function.
9149         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
9150         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
9151         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
9152         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
9153         to clear the size.
9154         (nonoverlapping_memrefs_p): Likewise.
9155         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
9156         (expand_builtin_init_trampoline): Likewise.
9157         * calls.c (compute_argument_addresses): Likewise.
9158         * cfgcleanup.c (merge_memattrs): Likewise.
9159         * dce.c (find_call_stack_args): Likewise.
9160         * dse.c (record_store, scan_insn): Likewise.
9161         * dwarf2out.c (dw_sra_loc_expr): Likewise.
9162         * expr.c (emit_block_move_hints): Likewise.
9163         * function.c (assign_parm_find_stack_rtl): Likewise.
9164         * print-rtl.c (print_rtx): Likewise.
9165         * reload.c (find_reloads_subreg_address): Likewise.
9166         * rtlanal.c (may_trap_p_1): Likewise.
9167         * var-tracking.c (track_expr_p): Likewise.
9168         * varasm.c (assemble_trampoline_template): Likewise.
9169         * config/arm/arm.c (arm_print_operand): Likewise.
9170         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
9171         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
9172         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
9173         (expand_constant_setmem_prologue): Likewise.
9174         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
9175         * config/rs6000/rs6000.c (expand_block_move): Likewise.
9176         (adjacent_mem_locations): Likewise.
9177         * config/s390/s390.c (s390_expand_setmem): Likewise.
9178         (s390_expand_insv): Likewise.
9179         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
9180         (*extendqi<mode>2_short_displ): Likewise.
9181         * config/sh/sh.c (expand_block_move): Likewise.
9182         * config/sh/sh.md (extv, extzv): Likewise.
9183
9184 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9185
9186         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
9187         (mem_attrs_htab_eq): ...here.
9188         (find_mem_attrs): Replace with...
9189         (set_mem_attrs): ...this function.  Take a mem_attrs structure
9190         rather than individual fields.
9191         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9192         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9193         (set_mem_size, change_address, adjust_address_1, offset_address)
9194         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9195         Update accordingly.
9196
9197 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9198
9199         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
9200         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
9201         Provide a dummy definition of MEM_ADDR_SPACE for generators.
9202         (target_rtl): Add x_mode_mem_attrs.
9203         (mode_mem_attrs): New macro.
9204         (get_mem_attrs): New function.
9205         * emit-rtl.c (get_mem_attrs): Rename to...
9206         (find_mem_attrs): ...this.
9207         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9208         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9209         (set_mem_size, change_address, adjust_address_1, offset_address)
9210         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9211         Update accordingly.
9212         (init_emit_regs): Initialize mode_mem_attrs.
9213
9214 2011-07-19  Richard Guenther  <rguenther@suse.de>
9215
9216         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
9217         TRUTH_*_EXPR handling.
9218         * tree-ssa-operands.c (get_expr_operands): Likewise.
9219         * tree-ssa-pre.c (fully_constant_expression): Likewise.
9220         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
9221         Likewise.
9222         (is_and_or_or): Likewise.
9223         (is_norm_cond_subset_of): Likewise.
9224
9225 2011-07-19  Richard Guenther  <rguenther@suse.de>
9226
9227         * tree.h (fold_build_pointer_plus_loc): New helper function.
9228         (fold_build_pointer_plus_hwi_loc): Likewise.
9229         (fold_build_pointer_plus): Define.
9230         (fold_build_pointer_plus_hwi): Likewise.
9231         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
9232         (fold_builtin_memory_op): Likewise.
9233         (fold_builtin_stpcpy): Likewise.
9234         (fold_builtin_memchr): Likewise.
9235         (fold_builtin_strstr): Likewise.
9236         (fold_builtin_strchr): Likewise.
9237         (fold_builtin_strrchr): Likewise.
9238         (fold_builtin_strpbrk): Likewise.
9239         (fold_builtin_strcat): Likewise.
9240         (expand_builtin_memory_chk): Likewise.
9241         (fold_builtin_memory_chk): Likewise.
9242         * c-typeck.c (build_unary_op): Likewise.
9243         * cgraphunit.c (thunk_adjust): Likewise.
9244         * fold-const.c (build_range_check): Likewise.
9245         (fold_binary_loc): Likewise.
9246         * omp-low.c (extract_omp_for_data): Likewise.
9247         (expand_omp_for_generic): Likewise.
9248         (expand_omp_for_static_nochunk): Likewise.
9249         (expand_omp_for_static_chunk): Likewise.
9250         * tree-affine.c (add_elt_to_tree): Likewise.
9251         * tree-data-ref.c (split_constant_offset_1): Likewise.
9252         * tree-loop-distribution.c (generate_memset_zero): Likewise.
9253         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
9254         * tree-predcom.c (ref_at_iteration): Likewise.
9255         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
9256         (add_to_parts): Likewise.
9257         (create_mem_ref): Likewise.
9258         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9259         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
9260         (number_of_iterations_le): Likewise.
9261         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
9262         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
9263         (vect_create_addr_base_for_vector_ref): Likewise.
9264         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
9265         (vect_create_cond_for_alias_checks): Likewise.
9266         * tree-vrp.c (extract_range_from_assert): Likewise.
9267         * config/alpha/alpha.c (alpha_va_start): Likewise.
9268         (alpha_gimplify_va_arg_1): Likewise.
9269         * config/i386/i386.c (ix86_va_start): Likewise.
9270         (ix86_gimplify_va_arg): Likewise.
9271         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9272         * config/mep/mep.c (mep_expand_va_start): Likewise.
9273         (mep_gimplify_va_arg_expr): Likewise.
9274         * config/mips/mips.c (mips_va_start): Likewise.
9275         (mips_gimplify_va_arg_expr): Likewise.
9276         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9277         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
9278         (rs6000_gimplify_va_arg): Likewise.
9279         * config/s390/s390.c (s390_va_start): Likewise.
9280         (s390_gimplify_va_arg): Likewise.
9281         * config/sh/sh.c (sh_va_start): Likewise.
9282         (sh_gimplify_va_arg_expr): Likewise.
9283         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
9284         * config/spu/spu.c (spu_va_start): Likewise.
9285         (spu_gimplify_va_arg_expr): Likewise.
9286         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9287         Likewise.
9288         (xstormy16_gimplify_va_arg_expr): Likewise.
9289         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
9290         (xtensa_gimplify_va_arg_expr): Likewise.
9291
9292 2011-07-19  Richard Guenther  <rguenther@suse.de>
9293
9294         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
9295         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
9296         handling.
9297
9298         PR middle-end/18908
9299         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
9300         result of BIT_*_EXPR to bitfield precision.
9301
9302 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
9303
9304         PR tree-optimization/49742
9305         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
9306         as a potential write.
9307
9308 2011-07-19  Richard Guenther  <rguenther@suse.de>
9309
9310         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
9311         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
9312         (forward_propagate_comparison): Simplify, remove obsolete code.
9313
9314 2011-07-19  Richard Guenther  <rguenther@suse.de>
9315
9316         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
9317         BIT_XOR_EXPR, same as the RTL expander does.
9318         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
9319         (verify_gimple_assign_unary): Likewise.
9320         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
9321         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
9322         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
9323
9324 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
9325
9326         PR tree-optimization/49768
9327         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
9328         if offset is smaller than bitoffset, but offset+size is bigger
9329         than bitoffset.
9330
9331 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
9332
9333         PR tree-optimization/49771
9334         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
9335         zero step, set segment length to the size of the data-ref's type.
9336
9337 2011-07-18  Martin Jambor  <mjambor@suse.cz>
9338
9339         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
9340         comments.
9341         (ipcp_values_pool): Declare.
9342         (ipcp_sources_pool): Likewise.
9343         (ipcp_lattice): Changed to forward declaration.
9344         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
9345         cannot_devirtualize.
9346         (ipa_node_params): New fields descriptors, lattices, known_vals,
9347         clone_for_all_contexts and node dead, removed fields params and
9348         count_scale.
9349         (ipa_set_param_count): Removed.
9350         (ipa_get_param_count): Made to work with descriptors vector.
9351         (ipa_get_param): Updated.
9352         (ipa_param_cannot_devirtualize_p): Removed.
9353         (ipa_param_types_vec_empty): Likewise.
9354         (ipa_set_param_used): New function.
9355         (ipa_get_param_used): Updated to use descriptors vector.
9356         (ipa_func_list): Removed.
9357         (ipa_init_func_list): Removed declaration.
9358         (ipa_push_func_to_list_1): Likewise.
9359         (ipa_pop_func_from_list): Likewise.
9360         (ipa_push_func_to_list): Removed.
9361         (ipa_lattice_from_jfunc): Remove declaration.
9362         (ipa_get_jf_pass_through_result): Declare.
9363         (ipa_get_jf_ancestor_result): Likewise.
9364         (ipa_value_from_jfunc): Likewise.
9365         (ipa_get_lattice): Update.
9366         (ipa_lat_is_single_const): New function.
9367         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
9368         (ipa_init_func_list): Likewise.
9369         (ipa_pop_func_from_list): Likewise.
9370         (ipa_get_param_decl_index): Fix coding style.
9371         (count_formal_params): Removed.
9372         (count_formal_params_1): Renamed to count_formal_params.
9373         (ipa_populate_param_decls): Update to use descriptors vector.
9374         (ipa_initialize_node_params): Likewise.
9375         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
9376         (ipa_analyze_params_uses): Likewise.
9377         (ipa_free_node_params_substructures): Likewise and free also lattices
9378         and known values.
9379         (duplicate_array): Removed.
9380         (ipa_edge_duplication_hook): Add the new edge to the list of edge
9381         clones.
9382         (ipa_node_duplication_hook): Update to use new lattices.
9383         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
9384         (ipa_free_all_structures_after_iinln): Likewise.
9385         (ipa_write_node_info): Update to use new lattices.
9386         (ipa_read_node_info): Likewise.
9387         (ipa_get_jf_pass_through_result): New function.
9388         (ipa_get_jf_ancestor_result): Likewise.
9389         (ipa_value_from_jfunc): Likewise.
9390         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
9391         * ipa-cp.c: Reimplemented.
9392         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
9393         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
9394         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
9395         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
9396         * doc/invoke.texi (devirt-type-list-size): Removed description.
9397         (ipa-cp-value-list-size): Added description.
9398
9399 2011-07-18  Richard Henderson  <rth@redhat.com>
9400
9401         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
9402         before calling create_basic_block.
9403
9404 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
9405
9406         PR middle-end/49675
9407         * tree.c (build_common_builtin_nodes): Register
9408         __builtin_return_address, __cyg_profile_func_enter
9409         and __cyg_profile_func_exit.
9410
9411 2011-07-18  Richard Henderson  <rth@redhat.com>
9412
9413         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
9414         (add_labels_and_missing_jumps): ... here.
9415         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
9416
9417 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
9418
9419         PR target/47744
9420         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9421         of DImode hard registers in PLUS address chains.
9422
9423 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9424
9425         PR bootstrap/49769
9426         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
9427         (alpha*-*-freebsd*): Likewise.
9428         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9429         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
9430         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
9431         crtprec80.o, crtfastmath.o to extra_parts for all targets.
9432         (ia64*-*-elf*): Remove extra_parts.
9433         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
9434         (sparc64-*-linux*): Likewise.
9435         (sparc64-*-freebsd*): Likewise.
9436
9437         Revert:
9438         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
9439         (ia64*-*-linux*): Likewise.
9440         (mips64*-*-linux*): Likewise.
9441         (mips*-*-linux*): Likewise.
9442
9443 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
9444
9445         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
9446
9447 2011-07-18  Richard Guenther  <rguenther@suse.de>
9448
9449         * gimplify.c (gimplify_expr): Use input_location, not saved_location
9450         when building new trees.
9451
9452 2011-07-18  Richard Guenther  <rguenther@suse.de>
9453
9454         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
9455         expansion result to bitfield precision if required.
9456
9457 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9458
9459         * config.gcc (i[3456x]86-*-netware*): Remove.
9460
9461         * gthr-nks.h: Remove.
9462         * configure.ac (enable_threads): Remove nks.
9463         * configure: Regenerate.
9464
9465         * config/i386/i386.c (ix86_encode_section_info): Remove netware
9466         reference.
9467         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
9468         <netware.h> reference.
9469
9470         * config/i386/netware-libgcc.c,
9471         gcc/config/i386/netware-libgcc.def,
9472         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
9473         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
9474         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
9475         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
9476
9477         * doc/extend.texi (Function Attributes,
9478         callee_pop_aggregate_return): Remove i?86-netware reference.
9479         * doc/install.texi (Configuration, --enable-threads): Remove nks.
9480
9481 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9482
9483         PR target/49746
9484         Revert:
9485         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9486
9487         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
9488         patterns.
9489
9490 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
9491
9492         PR middle-end/49732
9493         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
9494
9495 2011-07-16  Matthias Klose  <doko@ubuntu.com>
9496
9497         * doc/install.texi: Document --enable-static-libjava.
9498
9499 2011-07-15  Richard Henderson  <rth@redhat.com>
9500
9501         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
9502         Replace all three arguments by returning a VEC of edges.
9503         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
9504         pointers and counts.
9505         (fix_edges_for_rarely_executed_code): Merge ...
9506         (rest_of_handle_partition_blocks): ... into...
9507         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
9508         any work was performed.
9509         (pass_partition_blocks): Clear todo_flags_finish.
9510
9511 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
9512             Jakub Jelinek  <jakub@redhat.com>
9513             Jonathan Wakely  <jwakely.gcc@gmail.com>
9514
9515         PR libstdc++/49745
9516         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
9517         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
9518
9519 2011-07-15  Jason Merrill  <jason@redhat.com>
9520
9521         PR testsuite/49741
9522         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
9523         rather than --tool_opts.
9524
9525 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
9526
9527         * doc/plugins.texi (Building GCC plugins): gengtype needs its
9528         corresponding gtype.state.
9529
9530 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9531
9532         PR target/49723
9533         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
9534
9535 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
9536
9537         PR target/48220
9538         * doc/md.texi (Standard Names): Document window_save.
9539         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
9540         expand_debug_expr and expand_debug_source_expr.  If the target has
9541         a window_save instruction, adjust the ENTRY_VALUE_EXP.
9542         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
9543         SSA_NAME_VAR is a parameter.
9544         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
9545         * var-tracking.c (parm_reg_t): New type and associated vector type.
9546         (windowed_parm_regs): New variable.
9547         (adjust_insn): If the target has a window_save instruction and this
9548         is the instruction, make its effect on parameter registers explicit.
9549         (next_non_note_insn_var_location): New function.
9550         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
9551         (vt_add_function_parameter): If the target has a window_save insn,
9552         adjust the incoming RTL and record that in windowed_parm_regs.
9553         (vt_finalize): Free windowed_parm_regs.
9554
9555 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9556
9557         * doc/invoke.texi (C6X Options): New section.
9558         * doc/md.texi (TI C6X family): New section.
9559         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
9560         tic6x-*-uclinux.
9561         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
9562         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
9563         Provide C6X definitions.
9564         * config/c6x/c6x.md: New file.
9565         * config/c6x/constraints.md: New file.
9566         * config/c6x/predicates.md: New file.
9567         * config/c6x/c6x-sched.md.in: New file.
9568         * config/c6x/c6x-sched.md: New file.
9569         * config/c6x/gensched.sh: New file.
9570         * config/c6x/c6x-mult.md.in: New file.
9571         * config/c6x/genmult.sh: New file.
9572         * config/c6x/c6x-mult.md: New file.
9573         * config/c6x/sync.md: New file.
9574         * config/c6x/c6x-protos.h: New file.
9575         * config/c6x/sfp-machine.h: New file.
9576         * config/c6x/c6x.c: New file.
9577         * config/c6x/c6x.h: New file.
9578         * config/c6x/crti.s: New file.
9579         * config/c6x/crtn.s: New file.
9580         * config/c6x/lib1funcs.asm: New file.
9581         * config/c6x/c6x-modes.def: New file.
9582         * config/c6x/genopt.sh: New file.
9583         * config/c6x/c6x.opt: New file.
9584         * config/c6x/c6x-tables.opt: New file.
9585         * config/c6x/c6x-opts.h: New file.
9586         * config/c6x/c6x-isas.def: New file.
9587         * config/c6x/elf.h: New file.
9588         * config/c6x/elf-common.h: New file.
9589         * config/c6x/uclinux-elf.h: New file.
9590         * config/c6x/t-c6x: New file.
9591         * config/c6x/t-c6x-elf: New file.
9592         * config/c6x/t-c6x-uclinux: New file.
9593         * config/c6x/t-c6x-softfp: New file.
9594         * config/c6x/gtd.c: New file.
9595         * config/c6x/gtf.c: New file.
9596         * config/c6x/ltd.c: New file.
9597         * config/c6x/ltf.c: New file.
9598         * config/c6x/ged.c: New file.
9599         * config/c6x/gef.c: New file.
9600         * config/c6x/led.c: New file.
9601         * config/c6x/lef.c: New file.
9602         * config/c6x/eqd.c: New file.
9603         * config/c6x/eqf.c: New file.
9604         * config/c6x/libgcc-c6xeabi.ver: New file.
9605
9606         Revert
9607         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9608         PR rtl-optimization/11320
9609         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
9610         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
9611         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
9612         current_sched_info->compute_jump_reg_dependencies. Record which
9613         registers are used and which registers are set by the jump.
9614         Clear deps->reg_conditional_sets after a barrier.
9615         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
9616         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
9617         (init_deps): Initialize reg_conditional_sets.
9618         (free_deps): Clear reg_conditional_sets.
9619         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
9620         Mark registers live on entry of the fallthrough block and conditionally
9621         set as set by the jump. Mark registers live on entry of non-fallthrough
9622         blocks as used by the jump.
9623         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
9624         Mark new parameters as unused.
9625
9626 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
9627
9628         PR tree-opt/49309
9629         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
9630         Use fold_build2_loc instead of build2.
9631         Use the correct type for the new tree.
9632
9633 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9634
9635         PR rtl-optimization/11320
9636         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
9637         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
9638
9639 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9640
9641         PR target/49487
9642         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
9643         of REG.
9644         (*rotw<mode>): Use const_int_operand for operand2.
9645         Use match_scatch for operand3.
9646         (*rotb<mode>): Ditto
9647         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
9648
9649 2011-07-14  Richard Guenther  <rguenther@suse.de>
9650
9651         PR tree-optimization/49651
9652         * tree-ssa-structalias.c (get_constraint_for_1): Properly
9653         handle dereferences with subvariables.
9654
9655 2011-07-14  Richard Guenther  <rguenther@suse.de>
9656
9657         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
9658         (fold_stmt_1): Do it here directly on gimple and as a first thing.
9659
9660 2011-07-14  Richard Guenther  <rguenther@suse.de>
9661
9662         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
9663         not bool_var when folding bool_var != 1 or bool_var == 0.
9664
9665 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9666
9667         * haifa-sched.c (schedule_insns): Remove outdated comment.
9668         (schedule_block): When computing a known value for TODO_SPEC,
9669         just set it rather than using logical operations.
9670         (try_ready): Likewise.  Use a local variable rather than a
9671         pointer to TODO_SPEC.  Reorder an if statement to move the
9672         easy case to the then block.
9673         * sched-deps.c (dep_spec_p): New static function.
9674         (update_dep): Use it to decide whether to call
9675         change_spec_dep_to_hard.
9676         (get_back_and_forw_lists): Use it.
9677         (sd_resolve_dep): Likewise.
9678         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
9679         (haifa_note_mem_dep): Likewise.
9680         (check_dep): Likewise.
9681         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
9682         (sched_free_deps): Free in two passes.
9683
9684 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
9685
9686         PR middle-end/49736
9687         * expr.c (all_zeros_p): Undo bogus part of last change.
9688
9689 2011-07-14  Matthias Klose <doko@ubuntu.com>
9690
9691         * doc/extend.texi (optimize attribute): Fix typo.
9692
9693 2011-07-14  Richard Guenther  <rguenther@suse.de>
9694
9695         * gimplify.c (gimplify_expr): Only do required conversions.
9696
9697 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9698
9699         PR target/43746
9700         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
9701         i.e. use default_elf_select_section.
9702         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
9703         (READONLY_DATA_SECTION_ASM_OP): Remove.
9704         (TARGET_ASM_NAMED_SECTION): Move from here...
9705         * config/avr/avr.c: ...to here.
9706         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
9707         (avr_asm_named_section): Make static.
9708
9709 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9710
9711         PR bootstrap/49739
9712         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
9713         and crtfastmath.o for Linux/x86.
9714
9715 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9716
9717         * haifa-sched.c: Include "hashtab.h"
9718         (sched_no_dce): New global variable.
9719         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
9720         SHADOW_P): New macros.
9721         (last_clock_var, cycle_issued_insns): Move declarations.
9722         (must_backtrack): New static variable.
9723         (struct delay_pair): New structure.
9724         (delay_htab, delay_htab_i2): New static variables.
9725         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
9726         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
9727         functions.
9728         (dep_cost_1): If delay pairs exist, try to look up the insns and
9729         use the correct pair delay if we find them.
9730         (rank-for_schedule): Tweak priority for insns that must be scheduled
9731         soon to avoid backtracking.
9732         (queue_insn): Detect conditions which force backtracking.
9733         (ready_add): Likewise.
9734         (struct sched_block_state): Add member shadows_only_p.
9735         (struct haifa_save_data): New structure.
9736         (backtrack_queue): New static variable.
9737         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
9738         unschedule_insns_until, restore_last_backtrack_point,
9739         free_topmost_backtrack_point, free_backtrack_queue,
9740         estimate_insn_tick, estimate_shadow_tick): New functions.
9741         (prune_ready_list): New arg shadows_only_p.  All callers changed.
9742         If true, remove everything that isn't SHADOW_P.  Look up delay
9743         pairs and estimate ticks to avoid scheduling the first insn too early.
9744         (verify_shadows): New function.
9745         (schedule_block): Add machinery to enable backtracking.
9746         (sched_init): Take sched_no_dce into account when setting
9747         DF_LR_RUN_DCE.
9748         (free_delay_pairs): New function.
9749         (init_h_i_d): Initialize INSN_EXACT_TICK.
9750         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
9751         * sched-deps.c (sd_unresolve_dep): New function.
9752         * sched-int. (struct haifa_sched_info): New fields save_state
9753         and restore_state.
9754         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
9755         feeds_backtrack_insn and shadow_p.
9756         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
9757         (sched_no_dce): Declare variable.
9758         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
9759         sd_unresolve_dep): Declare functions.
9760         * modulo-sched.c (sms_sched_info): Clear the two new fields.
9761         * sched-rgn.c (rgn_const_sched_info): Likewise.
9762         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
9763         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
9764         (ebb_sched_info): Add them for the two new fields.
9765         (add_deps_for_risky_insns): Call add_delay_dependencies.
9766
9767 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9768
9769         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
9770         Rename -mr11.
9771         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
9772         (rs6000_call_indirect_aix): Ditto.
9773         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
9774         (call_indirect_aix<ptrsize>_internal): Ditto.
9775         (call_indirect_aix<ptrsize>_nor11): Ditto.
9776         (call_indirect_aix<ptrsize>_internal2): Ditto.
9777         (call_value_indirect_aix<ptrsize>): Ditto.
9778         (call_value_indirect_aix<ptrsize>_internal): Ditto.
9779         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9780         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9781         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
9782
9783 2011-07-13  Jason Merrill  <jason@redhat.com>
9784
9785         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
9786
9787 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9788
9789         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
9790         * config/spu/spu.md ("clrsb<mode>2"): New expander.
9791
9792 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
9793
9794         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
9795         * configure: Regenerate.
9796
9797 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9798
9799         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
9800         (asm_file_start): Remove.
9801         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
9802         free_bb_for_insn around code that modifies insns before
9803         restarting df analysis.
9804
9805 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9806
9807         PR target/49541
9808         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
9809         (LINK_SPEC): ... here.
9810
9811 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9812
9813         * haifa-sched.c (struct sched_block_state): New.
9814         (schedule_block): Move some local variables into such a structure.
9815
9816 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9817
9818         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
9819         * config/i386/t-crtpc: Remove.
9820         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9821         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
9822         tmake_file.
9823         (x86_64-*-darwin*): Likewise.
9824         (i[34567]86-*-linux*): Likewise.
9825         (x86_64-*-linux*): Likewise.
9826
9827         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
9828         Handle -mpc32, -mpc64, -mpc80.
9829
9830 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9831
9832         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
9833         * config/alpha/t-crtfm: Remove.
9834         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
9835         * config/i386/t-crtfm: Remove.
9836         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
9837         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
9838         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
9839         * config/sparc/t-crtfm: Remove.
9840
9841         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
9842         (alpha*-*-freebsd*): Likewise.
9843         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
9844         (x86_64-*-darwin*): Likewise.
9845         (i[34567]86-*-linux*): Likewise.
9846         (x86_64-*-linux*): Likewise.
9847         (x86_64-*-mingw*): Likewise.
9848         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
9849         (ia64*-*-freebsd*): Likewise.
9850         (ia64*-*-linux*): Likewise.
9851         (mips64*-*-linux*): Likewise.
9852         (mips*-*-linux*): Likewise.
9853         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
9854         (sparc64-*-linux*): Likewise.
9855         (sparc64-*-freebsd*): Likewise.
9856
9857 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9858
9859         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
9860         * config/darwin-crt3.c: Move to ../libgcc/config.
9861         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9862         ($(T)crt3$(objext)): Remove.
9863         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
9864         ($(T)crt2$(objext)): Remove.
9865         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
9866         (powerpc64-*-darwin*): Likewise.
9867
9868 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9869
9870         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
9871
9872         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
9873         (addsi_1_zext): This.
9874
9875 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9876
9877         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
9878         * doc/tm.texi: Regenerate.
9879         * target.def (mergeable_rodata_prefix): New defhookpod.
9880         * varasm.c (mergeable_string_section, mergeable_constant_section):
9881         Use it. Allocate name with alloca.
9882
9883 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9884
9885         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
9886
9887 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9888
9889         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
9890         overlap check.
9891
9892 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9893
9894         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
9895         (count_type_elements): Delete.
9896         (complete_ctor_at_level_p): Declare.
9897         * expr.c (flexible_array_member_p): New function, split out from...
9898         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
9899         parameter with for_ctor_p.  When for_ctor_p is true, return the
9900         number of elements that should appear in the top-level constructor,
9901         otherwise return an estimate of the number of scalars.
9902         (categorize_ctor_elements): Replace p_must_clear with p_complete.
9903         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
9904         (complete_ctor_at_level_p): New function, borrowing union logic
9905         from old categorize_ctor_elements_1.
9906         (mostly_zeros_p): Return true if the constructor is not complete.
9907         (all_zeros_p): Update call to categorize_ctor_elements.
9908         * gimplify.c (gimplify_init_constructor): Update call to
9909         categorize_ctor_elements.  Don't call count_type_elements.
9910         Unconditionally prevent clearing for variable-sized types,
9911         otherwise rely on categorize_ctor_elements to detect
9912         incomplete initializers.
9913
9914 2011-07-13  Richard Guenther  <rguenther@suse.de>
9915
9916         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
9917         the final type is integral.
9918
9919 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9920
9921         * sched-int.h (struct _dep): Add member cost.
9922         (DEP_COST, UNKNOWN_DEP_COST): New macros.
9923         * sched-deps.c (init_dep_1): Initialize DEP_COST.
9924         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
9925         (sched_change_pattern): Reset it for dependent insns.
9926
9927 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9928
9929         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
9930         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
9931         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
9932         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
9933         (CRT0_S, MCRT0_S): Remove.
9934         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
9935         Remove.
9936         (s-crt0): Remove.
9937         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
9938
9939 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
9940
9941         * cse.c (insert_with_costs): Put semi-colon after empty loop body
9942         on the next line.
9943         * emit-rtl.c (push_to_sequence): Likewise.
9944         * haifa-sched.c (max_issue): Likewise.
9945         * matrix-reorg.c (add_allocation_site): Likewise.
9946         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9947         * reload.c (alternative_allows_const_pool_ref): Likewise.
9948         * sched-rgn.c (rgn_add_block): Likewise.
9949         (rgn_fix_recovery_cfg): Likewise.
9950         * tree.c (attribute_list_contained): Likewise.
9951
9952 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
9953
9954         * config/i386/i386.c: Tidy processor feature bitmasks.
9955         (m_P4_NOCONA): New.
9956
9957 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
9958
9959         PR rtl-opt/49474
9960         * cprop.c (find_implicit_sets): Correct the condition.
9961
9962 2011-07-12  Richard Henderson  <rth@redhat.com>
9963
9964         PR target/49713
9965         * dwarf2out.h (dwarf_frame_regnum): Remove.
9966         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
9967         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
9968         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
9969         (execute_dwarf2_frame): Initialize them.
9970         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
9971         users of the macros with the variables.
9972         (expand_builtin_dwarf_sp_column): Revert last change.
9973         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
9974         result of DWARF_FRAME_REGNUM into a local variable.
9975
9976 2011-07-12  Richard Henderson  <rth@redhat.com>
9977
9978         PR target/49714
9979         * config/i386/i386.c (x86_output_mi_thunk): Use
9980         machopic_indirect_call_target instead of machopic_indirection_name
9981         directly.
9982
9983 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
9984             Eric Botcazou  <ebotcazou@adacore.com>
9985
9986         * prefix.h: Wrap up in extern "C" block.
9987
9988 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
9989
9990         AMD bdver2 Enablement
9991         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
9992         (case ${target}): Add bdver2.
9993         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9994         -march=native recognize bdver2 processors.
9995         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9996         bdver2 def_and_undef
9997         * config/i386/i386.c (struct processor_costs bdver2_cost): New
9998         bdver2 cost table.
9999         (m_BDVER2): New definition.
10000         (m_AMD_MULTIPLE): Includes m_BDVER2.
10001         (initial_ix86_tune_features): Add bdver2 tuning.
10002         (processor_target_table): Add bdver2 entry.
10003         (static const char *const cpu_names): Add bdver2 entry.
10004         (ix86_option_override_internal): Add bdver2 instruction sets.
10005         (ix86_issue_rate): Add bdver2.
10006         (ix86_adjust_cost): Add bdver2.
10007         (has_dispatch): Add bdver2.
10008         * config/i386/i386.h (TARGET_BDVER2): New definition.
10009         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
10010         (enum processor_type): Add PROCESSOR_BDVER2.
10011         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
10012         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
10013         description.
10014
10015 2011-07-12  Richard Henderson  <rth@redhat.com>
10016
10017         PR target/49714
10018         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
10019         destination address in memory on some paths.
10020
10021 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
10022
10023         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
10024         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
10025         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
10026         * function.c (locate_and_pad_parm): Take it into account.
10027         * target.def (function_arg_round_boundary): New hook.
10028         * targhooks.c (default_function_arg_round_boundary): New function.
10029         * targhooks.h (default_function_arg_round_boundary): Declare.
10030         * doc/tm.texi: Regenerate.
10031
10032 2011-07-12  Richard Guenther  <rguenther@suse.de>
10033
10034         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
10035         Do not perform no-op changes.
10036
10037 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
10038
10039         * config/arm/predicates.md (neon_struct_operand): Make a normal
10040         predicate.
10041         (neon_struct_or_register_operand): New predicate.
10042         * config/arm/neon.md (movmisalign<mode>): Replace predicates
10043         with neon_struct_or_register_operand.
10044         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
10045         neon_struct_operand instead of memory_operand.
10046
10047 2011-07-12  Martin Jambor  <mjambor@suse.cz>
10048
10049         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
10050         * cgraph.c (cgraph_get_node_or_alias): Removed.
10051         (change_decl_assembler_name): Changed all calls to
10052         cgraph_get_node_or_alias to a call to cgraph_get_node.
10053         (cgraph_make_decl_local): Likewise.
10054         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
10055         * varasm.c (default_binds_local_p_1): Likewise.
10056         (decl_binds_to_current_def_p): Likewise.
10057
10058 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
10059
10060         PR tree-optimization/49712
10061         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
10062
10063 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
10064
10065         * genautomata.c (add_arc): Return void.  All callers changed.
10066         (make_automaton): Remove dead code.
10067
10068 2011-07-11  Richard Henderson  <rth@redhat.com>
10069
10070         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
10071         (DW_FRAME_POINTER_REGNUM): New.
10072         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
10073         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
10074         (dwf_regno): New.
10075         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
10076         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
10077         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
10078         Use it.
10079         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
10080         * dwarf2out.h (dwarf_frame_regnum): New.
10081         (struct cfa_loc): Document the domain of the reg member.
10082
10083 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
10084
10085         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
10086         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
10087
10088 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
10089
10090         PR debug/49676
10091         * dwarf2out.c (int_shift_loc_descriptor): New function.
10092         (int_loc_descriptor): If shorter, emit i as
10093         (i >> shift), shift, DW_OP_shl for suitable shift value.
10094         Similarly, try to optimize large negative values using
10095         DW_OP_neg of a positive value if shorter.
10096         (size_of_int_shift_loc_descriptor): New function.
10097         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
10098         changes.
10099         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
10100         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
10101         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
10102         is shorter.
10103         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
10104         addend as added DW_OP_plus if it is shorter.
10105
10106 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10107
10108         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
10109         (DTORS_SECTION_ASM_OP): Define.
10110
10111 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10112
10113         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
10114         * config/t-dfprules: Move to ../libgcc/config.
10115         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10116         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
10117         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
10118         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
10119         Likewise.
10120         (i[34567]86-*-cygwin*): Likewise.
10121         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
10122         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
10123         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
10124         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
10125         D64PBIT_FUNCS, D128PBIT_FUNCS.
10126
10127 2011-07-11  Richard Guenther  <rguenther@suse.de>
10128
10129         * tree-vrp.c (simplify_conversion_using_ranges): Manually
10130         translate the source value-range through the conversion chain.
10131
10132 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
10133
10134         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
10135
10136 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10137
10138         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
10139         a bi-arch compiler defaulting to 31-bit. In this case:
10140         (tmake_file): Add s390/t-linux64.
10141         * doc/install.texi: Add s390-linux to the list of targets supporting
10142         --enable-targets=all.
10143
10144 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10145             Matthias Klose <doko@debian.org>
10146
10147         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
10148         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
10149         (tm_file): Add mips/linux64.h.
10150         (tmake_file): Add mips/t-linux64.
10151         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
10152         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
10153         instead of hardcoded mabi=n32.
10154         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
10155         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
10156         convention.
10157
10158 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10159
10160         * passes.c (init_optimization_passes): Add invariant motion pass
10161         after induction variable optimization.
10162
10163 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
10164
10165         PR target/39633
10166         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
10167         offsets 1..5 set cc0 in a usable way.
10168
10169 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
10170
10171         * tree.h (call_expr_arg): Remove.
10172         (call_expr_argp): Likewise.
10173
10174 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
10175
10176         * config/sparc/sparc.md (save_register_window_1): Rename to...
10177         (window_save): ...this.
10178         * config/sparc/sparc.c (emit_save_register_window): Rename to...
10179         (emit_window_save): ...this.
10180         (sparc_expand_prologue): Adjust to above renaming.
10181
10182 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10183
10184         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
10185         of movabs for x32.
10186
10187 2011-07-10  Richard Henderson  <rth@redhat.com>
10188
10189         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
10190         run final, instead of emitting text directly.
10191
10192 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10193
10194         * config/i386/i386.c (ix86_option_override_internal): Turn on
10195         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
10196         small PIC models for TARGET_X32.
10197
10198 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
10199
10200         PR target/49684
10201         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
10202         $(LIBGCC2_CFLAGS).
10203
10204         PR bootstrap/49680
10205         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
10206         stray notes and debug insns by using prev_nonnote_nondebug_insn
10207         instead of PREV_INSN.
10208
10209 2011-07-09  Richard Henderson  <rth@redhat.com>
10210
10211         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
10212         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
10213         * dwarf2out.c: ... here.
10214         (output_all_cfis): Remove.
10215         (dwarf2out_switch_text_section): Use output_cfis directly.
10216         (size_of_locs): Export.
10217         (output_loc_sequence, output_loc_sequence_raw): Export.
10218         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
10219         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
10220         output_cfa_loc_raw): Move to ...
10221         * dwarfcfi.c: ... here.
10222         * dwarf2out.h: Update decls.
10223
10224 2011-07-09  Richard Henderson  <rth@redhat.com>
10225
10226         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
10227         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
10228         * dwarf2cfi.c: ... here.
10229         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
10230         (DWARF_ROUND, DWARF_CIE_ID): Remove.
10231         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
10232         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
10233         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
10234
10235 2011-07-09  Richard Henderson  <rth@redhat.com>
10236
10237         * dwarf2cfi.c (cie_return_save): New.
10238         (queue_reg_save): Use compare_reg_or_pc.
10239         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
10240         (dwarf2out_frame_debug_expr): Likewise.
10241         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
10242         (initial_return_save): Likewise.
10243         (execute_dwarf2_frame): Save and restore initial return save from
10244         the cie to the fde.
10245         * config/mips/mips.c (mips_frame_set): Remove special case for
10246         DWARF_FRAME_RETURN_COLUMN.
10247
10248 2011-07-09  Richard Henderson  <rth@redhat.com>
10249
10250         * dwarf2cfi.c (lookup_cfa): Remove.
10251         (execute_dwarf2_frame): Assert queues are empty on entry.
10252         Setup initial cfa directly, not via lookup_cfa.
10253         Don't clear args_size state here.
10254
10255 2011-07-09  Richard Henderson  <rth@redhat.com>
10256
10257         * dwarf2cfi.c (add_cfi_vec): New.
10258         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
10259         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
10260         (execute_dwarf2_frame): Set add_cfi_vec.
10261
10262 2011-07-09  Richard Henderson  <rth@redhat.com>
10263
10264         * defaults.h (ASM_COMMENT_START): Move here...
10265         * dwarf2asm.c: ... from here.
10266         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
10267         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
10268         * varasm.c: Likewise.
10269
10270 2011-07-09  Richard Henderson  <rth@redhat.com>
10271
10272         PR debug/49686
10273         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
10274         (create_cfi_notes): ... do it here instead.
10275
10276 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
10277
10278         PR debug/49676
10279         * dwarf2out.c (size_of_int_loc_descriptor): New function.
10280         (address_of_int_loc_descriptor): Use it.
10281         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
10282
10283 2011-07-09  Richard Henderson  <rth@redhat.com>
10284
10285         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
10286         (prologue, epilogue): New.
10287         (return, *rts): New.
10288         (blockage, setd, seti): New.
10289         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
10290         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
10291         (pdp11_saved_regno): New.
10292         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
10293         generate rtl instead of text.
10294         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
10295         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
10296         * config/pdp11/pdp11-protos.h: Update.
10297
10298 2011-07-09  Richard Henderson  <rth@redhat.com>
10299
10300         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
10301         try to insert an rtl prologue here.
10302         (rs6000_output_function_epilogue): Similarly.
10303         * config/rs6000/rs6000.md (prologue): Emit a barrier to
10304         satisfy !TARGET_SCHED_PROLOG.
10305         (epilogue, sibcall_epilogue): Likewise.
10306
10307 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
10308
10309         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
10310         (FP_REG_P): Delete.
10311         (IN_OR_GLOBAL_P): Likewise.
10312
10313 2011-07-08  Jason Merrill  <jason@redhat.com>
10314
10315         PR c++/45437
10316         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
10317         compound assignment.
10318
10319         * cgraph.c (cgraph_add_to_same_comdat_group): New.
10320         * cgraph.h: Declare it.
10321         * ipa.c (function_and_variable_visibility): Make sure thunks
10322         have the right visibility.
10323
10324 2011-07-08  Richard Henderson  <rth@redhat.com>
10325
10326         PR bootstrap/49680
10327         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
10328         any tablejump vector.
10329
10330         PR bootstrap/49680
10331         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
10332         end of the prologue.
10333
10334 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
10335
10336         PR target/49621
10337         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
10338         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
10339         * config/rs6000/vector.md (vector_select_<mode>,
10340         vector_select_<mode>_uns): Change second operand of NE to
10341         CONST0_RTX (<MODE>mode) instead of const0_rtx.
10342         * config/rs6000/altivec.md (*altivec_vsel<mode>,
10343         *altivec_vsel<mode>_uns): Expect second operand of NE to be
10344         zero_constant of the corresponding vector mode.
10345         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
10346         Likewise.
10347
10348 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10349
10350         * graphite-dependences.c (build_alias_set_powerset): Remove
10351         continue from loop, add one more assert.
10352
10353 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10354
10355         PR target/46779
10356         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
10357         In particular, allow 8-bit values in r28 and r29.
10358         (avr_hard_regno_scratch_ok): Disallow any register that might be
10359         part of the frame pointer.
10360         (avr_hard_regno_rename_ok): Same.
10361         (avr_legitimate_address_p): Don't allow SUBREGs.
10362
10363 2011-07-08  Julian Brown  <julian@codesourcery.com>
10364
10365         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
10366         big-endian mode.
10367         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
10368         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
10369         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
10370         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
10371         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
10372         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
10373         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
10374         registers in big-endian mode.
10375
10376 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10377
10378         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
10379         in terms of another.
10380         (write_attr_value): Write a cast if necessary.
10381
10382         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
10383         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
10384         (REG_WORDS_BIG_ENDIAN): Document.
10385         * doc/tm.texi: Regenerate.
10386         * reload.c (operands_match_p): Take it into account.
10387         (reload_adjust_reg_for_mode): Likewise.
10388         * rtlanal.c (subreg_get_info): Likewise.
10389
10390 2011-07-08  Richard Guenther  <rguenther@suse.de>
10391
10392         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
10393         folding.
10394
10395 2011-07-08  Kai Tietz  <ktietz@redhat.com>
10396
10397         * fold-const.c (fold_truth_andor): Factored out truth_andor
10398         label from fold_binary as function.
10399         (fold_binary_loc): Replace truth_andor lable
10400         by function fold_truth_andor.
10401
10402 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
10403
10404         PR middle-end/49519
10405         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
10406         check if address is stored in register. If so - give up.
10407         (check_sibcall_argument_overlap_1): Do not perform check of
10408         overlapping when it is call to address.
10409
10410 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10411
10412         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
10413         of magic '31'.
10414
10415 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10416
10417         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
10418         GET_MODE_BITSIZE where appropriate.
10419         (widen_leading, expand_parity, expand_ctz, expand_ffs,
10420         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
10421         expand_float, expand_fix): Likewise.
10422         * expr.c (convert_move, convert_modes, expand_expr_real_2,
10423         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
10424         * stor-layout.c (get_mode_bounds): Likewise.
10425         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
10426         Likewise.
10427         * convert.c (convert_to_integer): Likewise.
10428         * expmed.c (expand_shift_1): Likewise.
10429
10430         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
10431         a bitsize.
10432
10433         * optabs.c (expand_binop): Tighten conditions for doubleword
10434         expansions.
10435         (widen_bswap): Assert that mode bitsize and precision are the same.
10436         * stor-layout.c (get_best_mode): Skip modes that have lower
10437         precision than bitsize.
10438         * recog.c (simplify_while_replacing): Assert that bitsize and
10439         precision are the same.
10440
10441 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10442
10443         * Makefile.in (LIBGCOV): Remove.
10444         (libgcc.mvars): Remove LIBGCOV.
10445         * libgov.c: Move to ../libgcc.
10446
10447 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10448
10449         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
10450
10451 2011-07-08  Martin Jambor  <mjambor@suse.cz>
10452
10453         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
10454         is too big for total scalarization.
10455
10456 2011-07-07  Richard Henderson  <rth@redhat.com>
10457
10458         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
10459         (DBX_DEBUGGING_INFO): Undef.
10460
10461 2011-07-07  Richard Henderson  <rth@redhat.com>
10462
10463         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
10464         Handle some opcodes specially for debugging.
10465         * print-rtl.c: Include dwarf2out.h
10466         (print_rtx): Handle NOTE_INSN_CFI.
10467         * Makefile.in (print-rtl.o): Update.
10468
10469 2011-07-07  Richard Henderson  <rth@redhat.com>
10470
10471         * tree-pass.h (pass_dwarf2_frame): Declare.
10472         * passes.c (init_optimization_passes): Add it.
10473         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
10474         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
10475         make static, do not call add_cfis_to_fde.
10476         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
10477         dwarf2out_frame_init): Merge into...
10478         (execute_dwarf2_frame): ... here.  New function.
10479         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
10480         saved_do_cfi_asm to a tri-state variable.
10481         (gate_dwarf2_frame, pass_dwarf2_frame): New.
10482         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
10483         if it has yet to be done.  Don't call dwarf2cfi_function_init.
10484         * dwarf2out.h, debug.h: Update decls.
10485         * final.c (final_start_function): Don't call
10486         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
10487         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
10488         * toplev.c (lang_dependent_init): Likewise.
10489
10490 2011-07-07  Richard Henderson  <rth@redhat.com>
10491
10492         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
10493         FDE_TABLE_INCREMENT): Replace with...
10494         (fde_vec): ... this, a new vector.
10495         (current_fde): Remove.  Replace all users with cfun->fde.
10496         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
10497         (size_of_aranges, dwarf2out_finish): Likewise.
10498         (dwarf2out_alloc_current_fde): Break out from ...
10499         (dwarf2out_begin_prologue): ... here.
10500         (dwarf2out_frame_init): Remove.
10501         * dwarf2cfi.c: Update all users of current_fde.
10502         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
10503         * dwarf2out.h: Update decls.
10504         (dw_fde_node): Add fde_index member.
10505         * function.h (struct function): Add fde member.
10506
10507 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10508             Richard Henderson  <rth@redhat.com>
10509
10510         * dwarf2cfi.c (add_cfi): Remove.
10511         (dwarf2out_cfi_label): Remove force argument.  Only generate the
10512         label name.
10513         (add_fde_cfi): Simplify the different code paths.
10514         (add_cie_cfi): New.
10515         (old_cfa, old_cfa_remember): New.
10516         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
10517         (last_reg_save_label): Remove.
10518         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
10519         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10520         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10521         dwarf2out_frame_debug_cfa_expression,
10522         dwarf2out_frame_debug_cfa_restore,
10523         dwarf2out_frame_debug_cfa_window_save,
10524         dwarf2out_frame_debug_expr): Remove label parameter.
10525         (cfi_label_required_p, add_cfis_to_fde): New.
10526         (dwarf2out_frame_debug_after_prologue): New.
10527         (dwarf2cfi_frame_init): Initialize old_cfa.
10528         (dwarf2out_frame_debug_restore_state): Likewise.
10529         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
10530         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
10531         * final.c (final_start_function): Call
10532         dwarf2out_frame_debug_after_prologue.
10533
10534 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10535             Richard Henderson  <rth@redhat.com>
10536
10537         * dwarf2cfi.c (cfi_insn): New.
10538         (dwarf2out_cfi_label): Don't emit cfi label here.
10539         (add_fde_cfi): Create a NOTE_INSN_CFI.
10540         (dwarf2out_frame_debug): Setup cfi_insn.
10541         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
10542         (dwarf2out_cfi_begin_epilogue): Make static.
10543         (dwarf2out_frame_debug_restore_state): Make static.
10544         * dwarf2out.c (output_cfi_directive): Make static.
10545         (dwarf2out_emit_cfi): New.
10546         * dwarf2out.h: Update.
10547         * final.c (final): Remove CFI notes.
10548         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
10549         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
10550         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
10551         * insn-notes.def (NOTE_INSN_CFI): New.
10552         (NOTE_INSN_CFI_LABEL): New.
10553         * rtl.h (union rtunion_def): Add rt_cfi member.
10554         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
10555
10556 2011-07-07  Richard Henderson  <rth@redhat.com>
10557
10558         * dwarf2cfi.c: New file.
10559         * Makefile.in (OBJS): Add it.
10560         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
10561         * gengtype.c (open_base_files): Include dwarf2out.h.
10562         * coretypes.h (enum var_init_status): Move from ...
10563         * rtl.h: ... here.
10564         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
10565         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
10566         expand_builtin_dwarf_sp_column, init_return_column_size,
10567         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
10568         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
10569         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
10570         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
10571         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
10572         compute_barrier_args_size, dwarf2out_args_size,
10573         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
10574         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
10575         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
10576         queue_reg_save, dwarf2out_flush_queued_reg_saves,
10577         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
10578         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10579         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10580         dwarf2out_frame_debug_cfa_expression,
10581         dwarf2out_frame_debug_cfa_restore,
10582         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
10583         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
10584         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
10585         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
10586         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
10587         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
10588         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
10589         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
10590         dw_loc_descr_node): Move to dwarf2out.h.
10591         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
10592         mem_loc_descriptor): Export.
10593         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
10594         (dwarf2out_frame_init): Extract CIE generation code to
10595         dwarf2cfi_frame_init.
10596
10597 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
10598
10599         PR target/49660
10600         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
10601         MASK_V8PLUS, remove commented out flag and reorder.
10602
10603 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10604
10605         PR c/49644
10606         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
10607         one non-complex and one complex argument, call c_save_expr on both
10608         operands.
10609
10610 2011-07-07  Martin Jambor  <mjambor@suse.cz>
10611
10612         PR middle-end/49495
10613         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
10614         (verify_cgraph_node): Some functinality moved to
10615         verify_edge_corresponds_to_fndecl, call it.
10616
10617 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10618
10619         * config.gcc (*local*): Remove.
10620         * doc/install-old.texi: Don't mention local configurations.
10621
10622 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10623
10624         PR debug/49522
10625         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
10626         referencing debug insns that have been reset.
10627         (dead_debug_insert_before): Don't assert reg is non-NULL,
10628         instead return immediately if it is NULL.
10629
10630 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10631
10632         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
10633
10634 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10635
10636         * hw-doloop.c: New file.
10637         * hw-doloop.h: New file.
10638         * Makefile.in (OBJS): Add hw-doloop.o.
10639         (hw-doloop.o): New rule.
10640         ($(obj_out_file)): Add hw-doloop.h dependency.
10641         * config/bfin/bfin.c: Include "hw-doloop.h".
10642         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
10643         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
10644         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
10645         type changed to hwloop_info.  Return bool, true if the loop was
10646         successfully optimized.  Remove code that was moved to
10647         hw-doloop.c, and adjust other parts.
10648         (hwloop_fail): New static function, containing parts that used
10649         to be in bfin_optimize_loop.
10650         (bfin_discover_loop, bfin_discover_loops, free_loops,
10651         bfin_reorder_loops): Remove.
10652         (hwloop_pattern_reg): New static function.
10653         (bfin_doloop_hooks): New variable.
10654         (bfin_reorg_loops): Remove most code, call reorg_loops.
10655         * config/bfin/bfin.md (doloop_end splitter): Also enable if
10656         loop counter is a memory_operand.
10657
10658 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10659
10660         * config.gcc: Support --with-multilib-list for x86 Linux targets.
10661
10662         * configure.ac: Mention x86-64 for --with-multilib-list.
10663         * configure: Regenerated.
10664
10665         * config/i386/gnu-user64.h (SPEC_64): Support x32.
10666         (SPEC_32): Likewise.
10667         (ASM_SPEC): Likewise.
10668         (LINK_SPEC): Likewise.
10669         (TARGET_THREAD_SSP_OFFSET): Likewise.
10670         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
10671         (SPEC_X32): New.
10672
10673         * config/i386/i386.h (TARGET_X32): New.
10674         (TARGET_LP64): New.
10675         (LONG_TYPE_SIZE): Likewise.
10676         (POINTER_SIZE): Likewise.
10677         (POINTERS_EXTEND_UNSIGNED): Likewise.
10678         (OPT_ARCH64): Support x32.
10679         (OPT_ARCH32): Likewise.
10680
10681         * config/i386/i386.opt (mx32): New.
10682
10683         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
10684         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10685         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
10686         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10687
10688         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
10689         (BIONIC_DYNAMIC_LINKERX32): Likewise.
10690         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
10691
10692         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
10693
10694         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
10695
10696         * doc/invoke.texi: Document -mx32.
10697
10698 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10699
10700         * doc/invoke.texi (mwords-little-endian): Deprecate.
10701         * config/arm/arm.opt (mwords-little-endian): Likewise.
10702         * config/arm/arm.c (arm_option_override): Warn about the deprecation
10703         of -mwords-little-endian.
10704
10705 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10706
10707         * reload1.c (choose_reload_regs): Use mode sizes to check whether
10708         an old reload register completely defines the required value.
10709
10710 2011-07-07  Richard Guenther  <rguenther@suse.de>
10711
10712         * fold-const.c (fold_unary_loc): Do not strip sign-changes
10713         for NEGATE_EXPR.
10714
10715 2011-07-07  Richard Guenther  <rguenther@suse.de>
10716
10717         * tree-vrp.c (simplify_conversion_using_ranges): New function.
10718         (simplify_stmt_using_ranges): Call it.
10719
10720 2011-07-07  Kai Tietz  <ktietz@redhat.com>
10721
10722         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
10723         (lookup_logical_inverted_value): Likewise.
10724         (simplify_bitwise_binary_1): Likewise.
10725         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
10726
10727 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10728
10729         * gcc.c (%[Spec]): Don't document.
10730         (struct spec_list): Update comment.
10731         (do_spec_1): Don't handle %[Spec].
10732         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
10733
10734 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10735
10736         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
10737         default based on TARGET_ASM_NAMED_SECTION.
10738         * common/common-target.def (have_named_sections): Default to true.
10739         * common/config/default-common.c: Don't include tm.h.
10740         * common/config/picochip/picochip-common.c
10741         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
10742         * common/config/m32c/m32c-common.c: Remove.
10743         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
10744         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10745         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10746         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10747         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10748         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10749         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10750
10751 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10752
10753         PR middle-end/49640
10754         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
10755         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
10756
10757 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10758
10759         PR libmudflap/49550
10760         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
10761
10762 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10763
10764         PR target/39150
10765         * configure.ac (gcc_cv_as_hidden): Also accept
10766         x86_64-*-solaris2.1[0-9]*.
10767         (gcc_cv_as_cfi_directive): Likewise.
10768         (gcc_cv_as_comdat_group_group): Likewise.
10769         (set_have_as_tls): Likewise.
10770         * configure: Regenerate.
10771         * config.gcc (i[34567]86-*-solaris2*): Also handle
10772         x86_64-*-solaris2.1[0-9]*.
10773         * config.host (i[34567]86-*-solaris2*): Likewise.
10774         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10775         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
10776         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
10777         (TARGET_LD_EMULATION): Use it.
10778         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
10779         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
10780         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
10781         (ASM_CPU64_DEFAULT_SPEC): Define.
10782         (ASM_CPU_SPEC): Use %(asm_cpu_default).
10783         (ASM_SPEC): Redefine.
10784         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
10785         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
10786         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
10787         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
10788         configuration.
10789         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
10790
10791 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10792
10793         * config/sol2.h (ASM_SPEC): Split into ...
10794         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
10795         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
10796         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
10797         (ASM_SPEC): Use ASM_SPEC_BASE.
10798         * config/sparc/sol2.h (ASM_SPEC): Redefine.
10799
10800 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
10801
10802         * config/avr/avr.md (*reload_insi): Change predicate #1 to
10803         const_int_operand.  Ditto for peep2 producing this insn.
10804         Add argument to output_reload_insisf call.
10805         (*movsi,*movsf): Add argument to output_movsisf call.
10806         (*reload_insf): New insn and new peep2 to produce it.
10807         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10808         (output_reload_insisf): Change prototype.
10809         * config/avr/avr.c (avr_asm_len): New function.
10810         (output_reload_insisf): Rewrite.
10811         (output_movsisf): Change prototype.  output_reload_insisf for
10812         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
10813         (adjust_insn_length): Add argument to output_movsisf and
10814         output_reload_insisf call.
10815
10816 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10817
10818         * emit-rtl.c (paradoxical_subreg_p): New function.
10819         * rtl.h (paradoxical_subreg_p): Declare.
10820         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
10821         apply_distributive_law, simplify_comparison, simplify_set): Use it.
10822         * cse.c (record_jump_cond, cse_insn): Likewise.
10823         * expr.c (force_operand): Likewise.
10824         * rtlanal.c (num_sign_bit_copies1): Likewise.
10825         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
10826         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
10827         (push_reload): Use precision to check for paradoxical subregs.
10828         * expmed.c (extract_bit_field_1): Likewise.
10829
10830         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
10831         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
10832         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
10833         simplify_set, simplify_logical, expand_compound_operation,
10834         make_extraction, force_to_mode, if_then_else_cond, extended_count,
10835         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
10836         record_value_for_reg): Likewise.
10837         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
10838         * simplify-rtx. c (simplify_unary_operation_1,
10839         simplify_binary_operation_1, simplify_const_relational_operation):
10840         Likewise.
10841
10842         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
10843         instead of GET_MODE_BITSIZE where appropriate.
10844         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
10845         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
10846         init_num_sign_bit_copies_in_rep): Likewise.
10847         * cse.c (fold_rtx, cse_insn): Likewise.
10848         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
10849         * simplify-rtx.c (simplify_unary_operation_1,
10850         simplify_const_unary_operation, simplify_binary_operation_1,
10851         simplify_const_binary_operation, simplify_ternary_operation,
10852         simplify_const_relational_operation, simplify_subreg): Likewise.
10853         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
10854         simplify_if_then_else, simplify_set, expand_compound_operation,
10855         expand_field_assignment, make_extraction, if_then_else_cond,
10856         make_compound_operation, force_to_mode, make_field_assignment,
10857         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
10858         extended_count, try_widen_shift_mode, simplify_shift_const_1,
10859         simplify_comparison, record_promoted_value, simplify_compare_const,
10860         record_dead_and_set_regs_1): Likewise.
10861
10862         Revert:
10863         * simplify-rtx.c (simplify_const_binary_operation): Use the
10864         shift_truncation_mask hook instead of performing modulo by width.
10865         Compare against mode precision, not bitsize.
10866         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10867         Use shift_truncation_mask instead of constructing the value manually.
10868
10869 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10870
10871         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
10872         declaration.
10873         (rs6000_save_toc_in_prologue_p): Ditto.
10874
10875         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
10876         up the static chain (r11) during indirect function calls.
10877         (-msave-toc-indirect): New undocumented debug switch.
10878
10879         * config/rs6000/rs6000.c (struct machine_function): Add
10880         save_toc_in_prologue field to note whether the prologue needs to
10881         save the TOC value in the reserved stack location.
10882         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
10883         to save the TOC in the prologue, do so.
10884         (rs6000_trampoline_init): Don't allow creating AIX style
10885         trampolines if -mno-r11 is in effect.
10886         (rs6000_call_indirect_aix): New function to create AIX style
10887         indirect calls, adding support for -mno-r11 to suppress loading
10888         the static chain, and saving the TOC in the prologue instead of
10889         the call body.
10890         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
10891         TOC in the prologue.
10892
10893         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
10894         register numbers.
10895         (TOC_REGNUM): Ditto.
10896         (STATIC_CHAIN_REGNUM): Ditto.
10897         (ARG_POINTER_REGNUM): Ditto.
10898         (SFP_REGNO): Delete, unused.
10899         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
10900         function descriptor offsets.
10901         (TOC_SAVE_OFFSET_64BIT): Ditto.
10902         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
10903         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
10904         (AIX_FUNC_DESC_SC_32BIT): Ditto.
10905         (AIX_FUNC_DESC_SC_64BIT): Ditto.
10906         (ptrload): New mode attribute for the appropriate load of a pointer.
10907         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
10908         (call_indirect_aix64): Ditto.
10909         (call_value_indirect_aix32): Ditto.
10910         (call_value_indirect_aix64): Ditto.
10911         (call_indirect_nonlocal_aix32_internal): Ditto.
10912         (call_indirect_nonlocal_aix32): Ditto.
10913         (call_indirect_nonlocal_aix64_internal): Ditto.
10914         (call_indirect_nonlocal_aix64): Ditto.
10915         (call): Rewrite AIX indirect function calls.  Add support for
10916         eliminating the static chain, and for moving the save of the TOC
10917         to the function prologue.
10918         (call_value): Ditto.
10919         (call_indirect_aix<ptrsize>): Ditto.
10920         (call_indirect_aix<ptrsize>_internal): Ditto.
10921         (call_indirect_aix<ptrsize>_internal2): Ditto.
10922         (call_indirect_aix<ptrsize>_nor11): Ditto.
10923         (call_value_indirect_aix<ptrsize>): Ditto.
10924         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10925         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10926         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10927         (call_nonlocal_aix32): Relocate in the rs6000.md file.
10928         (call_nonlocal_aix64): Ditto.
10929
10930         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
10931         -mno-r11 documentation.
10932
10933 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
10934
10935         PR other/49658
10936         * doc/extend.texi (Compound Literals): Fix typo.
10937
10938 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
10939
10940         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
10941
10942 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
10943
10944         * configure.ac (plugin-version.h): Generate
10945         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
10946         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
10947         macros.
10948
10949         * configure: Regenerate.
10950
10951         * doc/plugins.texi (Building GCC plugins): Mention
10952         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
10953
10954 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10955
10956         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
10957         * combine.c (make_extraction, gen_lowpart_or_truncate,
10958         apply_distributive_law, simplify_comparison,
10959         reg_truncated_to_mode, record_truncated_value): Use it.
10960         * cse.c (notreg_cost): Likewise.
10961         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10962         * expr.c (convert_move, convert_modes): Likewise.
10963         * optabs.c (expand_binop, expand_unop): Likewise.
10964         * postreload.c (move2add_last_label): Likewise.
10965         * regmove.c (optimize_reg_copy_3): Likewise.
10966         * rtlhooks.c (gen_lowpart_general): Likewise.
10967         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10968
10969 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
10970
10971         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
10972
10973 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10974
10975         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
10976         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
10977         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
10978         (simplify_const_unary_operation, simplify_binary_operation_1,
10979         simplify_const_binary_operation, simplify_const_relational_operation):
10980         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
10981         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
10982         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
10983         simplify_shift_const_1, simplify_comparison): Likewise.
10984         * expr.c (convert_modes): Likewise.
10985         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
10986         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
10987         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
10988
10989         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
10990
10991 2011-07-06  Richard Guenther  <rguenther@suse.de>
10992
10993         PR tree-optimization/49645
10994         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
10995         register variables.
10996         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
10997         in type qualification here ...
10998         (copy_reference_ops_from_ref): ... not here.
10999         (vn_reference_lookup_3): ... or here.
11000         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
11001         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
11002
11003 2011-07-06  Ian Lance Taylor  <iant@google.com>
11004
11005         * doc/install.texi (Configuration): It's
11006         --enable-gnu-indirect-function, not --enable-indirect-function.
11007
11008 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
11009
11010         * simplify-rtx.c (simplify_const_binary_operation): Use the
11011         shift_truncation_mask hook instead of performing modulo by width.
11012         Compare against mode precision, not bitsize.
11013         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
11014         Use shift_truncation_mask instead of constructing the value manually.
11015
11016 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11017
11018         PR middle-end/47383
11019         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
11020         address computation and convert to address_mode if needed.
11021
11022 2011-07-06  Richard Guenther  <rguenther@suse.de>
11023
11024         * tree.c (build_common_tree_nodes_2): Merge with
11025         build_common_tree_nodes.
11026         * tree.h (build_common_tree_nodes): Adjust prototype.
11027         (build_common_tree_nodes_2): Remove.
11028         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
11029         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
11030
11031 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
11032
11033         PR tree-optimization/49618
11034         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
11035         t recurse on the decl.
11036         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
11037         return true if expr isn't known to be defined in current
11038         TU or some other LTO partition.
11039
11040 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
11041
11042         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
11043         override CASE_VALUES_THRESHOLD.
11044
11045         * stmt.c (toplevel): Include params.h.
11046         (case_values_threshold): Use the --param case-values-threshold
11047         value if non-zero, otherwise use machine dependent value.
11048         (expand_case): Use case_values_threshold.
11049
11050         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
11051
11052         * doc/invoke.texi (--param case-values-threshold): Document.
11053
11054 2011-07-05  Richard Henderson  <rth@redhat.com>
11055
11056         * dwarf2out.c (dwarf2out_cfi_label): Make static.
11057         (dwarf2out_flush_queued_reg_saves): Make static.
11058         (dwarf2out_reg_save): Remove.
11059         (dwarf2out_return_save): Remove.
11060         (dwarf2out_return_reg): Remove.
11061         (dwarf2out_reg_save_reg): Remove.
11062         (dwarf2out_def_cfa): Merge into ...
11063         (dwarf2out_frame_init): ... here.
11064         * dwarf2out.h, tree.h: Remove declarations as necessary.
11065
11066 2011-07-05  Richard Henderson  <rth@redhat.com>
11067
11068         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
11069         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11070         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
11071         the alloc insn.
11072
11073         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
11074         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
11075         (process_epilogue): Don't call dwarf2out_def_cfa.
11076
11077         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
11078         indicate the return address save.
11079         (process_cfa_register): Likewise.
11080
11081         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
11082         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
11083
11084         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
11085         for ar.pfs save at alloc insn.
11086
11087 2011-07-05  Richard Henderson  <rth@redhat.com>
11088
11089         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
11090         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11091         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
11092         stack pointer save.
11093         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
11094         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
11095         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
11096         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
11097
11098 2011-07-05  Richard Henderson  <rth@redhat.com>
11099
11100         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
11101         VUNSPEC_* constants here instead of via define_constants.
11102         (VUNSPEC_PEM): New constant.
11103         (procedure_entry_mask): New insn.
11104         (prologue): New expander.
11105         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
11106         (vax_expand_prologue): Rename from vax_output_function_prologue;
11107         emit rtl instead of text.
11108         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
11109         (print_operand): Add 'x' prefix.
11110
11111 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11112
11113         PR middle-end/47715
11114         * calls.c (precompute_register_parameters): Promote the function
11115         argument before checking non-legitimate constant.
11116
11117 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11118
11119         PR tree-optimization/47654
11120         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
11121         (lst_do_strip_mine_loop): Return an int.
11122         (lst_do_strip_mine): Same.
11123         (scop_do_strip_mine): Same.
11124         (scop_do_block): Loop blocking should strip-mine at least two loops.
11125         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
11126         (scop_do_interchange): Same.
11127         * graphite-poly.h (scop_do_interchange): Update declaration.
11128         (scop_do_strip_mine): Same.
11129
11130 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11131
11132         * graphite-clast-to-gimple.c (precision_for_value): Removed.
11133         (precision_for_interval): Removed.
11134         (gcc_type_for_interval): Use mpz_sizeinbase.
11135
11136 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11137
11138         * graphite-ppl.h (value_max): Correct computation of max.
11139
11140 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11141
11142         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
11143
11144 2011-07-05  Richard Guenther  <rguenther@suse.de>
11145
11146         * c-decl.c (c_init_decl_processing): Defer building common
11147         tree nodes to c_common_nodes_and_builtins.
11148
11149 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
11150
11151         PR tree-optimization/49580
11152         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
11153         the loop's number of iterations.
11154         * tree-parloops.c (transform_to_exit_first_loop): Add the
11155         handling of the loop's number of iterations before the call
11156         to gimple_duplicate_sese_tail.
11157         Insert the stmt caclculating the new rhs of the loop's
11158         condition stmt to the preheader instead of iters_bb.
11159
11160 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11161
11162         PR rtl-optimization/47449
11163         * fwprop.c (forward_propagate_subreg): Don't propagate hard
11164         register nor zero/sign extended hard register.
11165
11166 2011-07-05  Richard Guenther  <rguenther@suse.de>
11167
11168         PR tree-optimization/49518
11169         PR tree-optimization/49628
11170         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
11171         irrelevant and invariant data-references.
11172         (vect_analyze_data_ref_access): For invariant loads clear the
11173         group association.
11174
11175 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
11176
11177         PR rtl-optimization/49619
11178         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
11179         pass VOIDmode as op0_mode to recursive call, and return temp even
11180         when different from tor, just if it is not IOR of the original
11181         PLUS arguments.
11182
11183         PR rtl-optimization/49472
11184         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
11185         negating MULT, negate the second operand instead of first.
11186         (simplify_binary_operation_1) <case MULT>: If one operand is
11187         a NEG and the other is MULT, don't attempt to optimize by negation
11188         of the MULT operand if it only moves the NEG operation around.
11189
11190         PR debug/49602
11191         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
11192         get_current_def return value if it can't be trusted to be
11193         the current value of the variable in the current bb.
11194
11195 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
11196
11197         PR target/49600
11198         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
11199         general register to memory for !TARGET_INTER_UNIT_MOVES.
11200
11201 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11202
11203         PR target/44643
11204         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
11205         instead of TREE_READONLY.
11206
11207 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11208
11209         * doc/extend.texi (AVR Built-in Functions): Update documentation
11210         of __builtin_avr_fmul*.
11211         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
11212         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
11213         * config/avr/avr.md (fmul): Rename to fmul_insn.
11214         (fmuls): Rename to fmuls_insn.
11215         (fmulsu): Rename to fmulsu_insn.
11216         (fmul,fmuls,fmulsu): New expander.
11217         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
11218         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
11219         * config/avr/libgcc.S (__fmul): New function.
11220         (__fmuls): New function.
11221         (__fmulsu,__fmulsu_exit): New function.
11222
11223 2011-07-04  Richard Guenther  <rguenther@suse.de>
11224
11225         PR tree-optimization/49615
11226         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
11227         basic-block index check.
11228
11229 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11230
11231         * longlong.h (count_leading_zeros, count_trailing_zeros,
11232         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
11233         resp. 64.
11234
11235 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
11236
11237         PR tree-optimization/49610
11238         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
11239         a basic block.
11240
11241 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11242             Olivier Hainque  <hainque@adacore.com>
11243             Nicolas Setton  <setton@adacore.com>
11244
11245         * tree.h (TYPE_ARTIFICIAL): New flag.
11246         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
11247         the DIE of the type if it is artificial.
11248         (gen_array_type_die): Likewise.
11249         (gen_enumeration_type_die): Likewise.
11250         (gen_struct_or_union_type_die): Likewise.
11251         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
11252         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
11253
11254 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11255
11256         * tree-object-size.c (pass_through_call): Handle
11257         BUILT_IN_ASSUME_ALIGNED.
11258
11259 2011-07-01  Martin Jambor  <mjambor@suse.cz>
11260
11261         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
11262
11263 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
11264
11265         PR middle-end/48016
11266         * explow.c (update_nonlocal_goto_save_area): Use proper mode
11267         for stack save area.
11268         * function.c (expand_function_start): Likewise.
11269
11270 2011-07-01  Richard Guenther  <rguenther@suse.de>
11271
11272         PR middle-end/49596
11273         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
11274         may have unknown refs.
11275
11276 2011-07-01  Kai Tietz  <ktietz@redhat.com>
11277
11278         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
11279
11280 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11281
11282         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
11283         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
11284         (Specific, mips-sgi-irix6): Likewise.
11285
11286 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11287
11288         PR libmudflap/49549
11289         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
11290
11291 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11292
11293         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
11294         [idx]= and [idx1 ... idx2]= before initializers if needed for
11295         array initializers.
11296
11297 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
11298
11299         * config.gcc (score-*-elf): Remove score7.o.
11300         * config/score/t-score-elf: Likewise.
11301         * config/score/score.c: Merge score7 to score.c and
11302         remove forwarding functions.
11303         * config/score/score7.c: Deleted.
11304         * config/score/score7.h: Deleted.
11305
11306 2011-07-01  Richard Guenther  <rguenther@suse.de>
11307
11308         PR tree-optimization/49603
11309         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
11310
11311 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11312
11313         * tree-sra.c (struct access): Rename total_scalarization to
11314         grp_total_scalarization
11315         (completely_scalarize_var): New function.
11316         (sort_and_splice_var_accesses): Set total_scalarization in the
11317         representative access.
11318         (analyze_access_subtree): Propagate total scalarization accross the
11319         tree, no holes in totally scalarized trees, simplify coverage
11320         computation.
11321         (analyze_all_variable_accesses): Call completely_scalarize_var instead
11322         of completely_scalarize_record.
11323
11324 2011-06-30  Richard Henderson  <rth@redhat.com>
11325
11326         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
11327         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
11328         * config/i386/i386.c: Don't include dwarf2out.h.
11329         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
11330         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
11331         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
11332         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
11333         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
11334
11335 2011-06-30  Richard Henderson  <rth@redhat.com>
11336
11337         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
11338         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11339         * final.c (final_scan_insn): Look for it, and invoke
11340         dwarf2out_frame_debug before the insn if found.
11341
11342 2011-06-30  Richard Henderson  <rth@redhat.com>
11343
11344         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
11345         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
11346
11347 2011-06-30  Richard Henderson  <rth@redhat.com>
11348
11349         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
11350         Define a vector of this type.
11351         (regs_saved_in_regs): Use a VEC.
11352         (num_regs_saved_in_regs): Remove.
11353         (compare_reg_or_pc): New.
11354         (record_reg_saved_in_reg): Split out from...
11355         (dwarf2out_flush_queued_reg_saves): ... here.
11356         (clobbers_queued_reg_save): Update for VEC.
11357         (reg_saved_in): Likewise.
11358         (dwarf2out_frame_debug_init): Likewise.
11359         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
11360         (dwarf2out_frame_debug_cfa_register): Likewise.
11361
11362 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11363
11364         PR tree-optimization/49572
11365         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
11366         type of the RHS instead of that of the LHS for the expression type.
11367
11368 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11369
11370         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
11371         unconditionally.
11372
11373 2011-06-30  Richard Guenther  <rguenther@suse.de>
11374
11375         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
11376         * tree-ssa-structalias.c (create_variable_info_for): Do not
11377         add initial constraints for non-var-decls.  Properly handle
11378         globals in other ltrans partitions.
11379         (intra_create_variable_infos): Manually create constraints for
11380         the fake no-alias parameter.
11381         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
11382         and assert there are no clones.
11383
11384 2011-06-30  Richard Guenther  <rguenther@suse.de>
11385
11386         PR tree-optimization/46787
11387         * tree-data-ref.c (dr_address_invariant_p): Remove.
11388         (find_data_references_in_stmt): Invariant accesses are ok now.
11389         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
11390         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
11391         invariant loads.
11392
11393 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11394
11395         PR tree-optimization/49094
11396         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
11397         (build_accesses_from_assign): Use it.
11398
11399 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11400
11401         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11402         handling of BUILT_IN_ASSUME_ALIGNED.
11403
11404         PR debug/49364
11405         * dwarf2out.c (output_abbrev_section): Don't return early
11406         if abbrev_die_table_in_use is 1.
11407         (dwarf2out_finish): Instead don't call output_abbrev_section
11408         nor emit abbrev_section_label in that case.
11409
11410 2011-06-30  Nick Clifton  <nickc@redhat.com>
11411
11412         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
11413         for the V850E.
11414
11415 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11416
11417         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11418         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
11419
11420 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
11421
11422         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
11423         both pattern and original statements if necessary.
11424         (vect_transform_loop): Likewise.
11425         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
11426         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
11427         Mark the pattern statement only if the original statement doesn't
11428         have its own uses.
11429         (process_use): Call vect_mark_relevant with additional parameter.
11430         (vect_mark_stmts_to_be_vectorized): Likewise.
11431         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
11432         (vect_analyze_stmt): Handle both pattern and original statements
11433         if necessary.
11434         (vect_transform_stmt): Don't store vectorized pattern statement
11435         in the original statement.
11436         (vect_is_simple_use_1): Use related pattern statement only if the
11437         original statement is irrelevant.
11438         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
11439
11440 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
11441
11442         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
11443         option.
11444         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
11445         entry.
11446         (TARGET_AVX128_OPTIMAL): New definition.
11447         * config/i386/i386.c (initial_ix86_tune_features): Initialize
11448         X86_TUNE_AVX128_OPTIMAL entry.
11449         (ix86_option_override_internal): Enable the generation
11450         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
11451         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
11452         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
11453
11454 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11455
11456         PR tree-optimization/49539
11457         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
11458         names by means of stmt_references_abnormal_ssa_name.
11459         (associate_plusminus): Call can_propagate_from before propagating
11460         from definition statements.
11461         (ssa_forward_propagate_and_combine): Remove superfluous newline.
11462
11463 2011-06-29  Richard Guenther  <rguenther@suse.de>
11464
11465         * doc/invoke.texi: Document -scev dump modifier.
11466         * tree-pass.h (TDF_SCEV): New dump flag.
11467         * tree-dump.c (dump_option_value_in): Add scev.
11468         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
11469         * tree-scalar-evolution.c: Likewise.
11470
11471 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
11472
11473         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
11474         (cxa_type_match): Correct declaration.
11475         (__gnu_unwind_pr_common): Reconstruct additional indirection
11476         when __cxa_type_match returns succeeded_with_ptr_to_base.
11477
11478 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11479
11480         PR rtl-optimization/49114
11481         * reload.c (struct replacement): Remove SUBREG_LOC member.
11482         (push_reload): Do not set it.
11483         (push_replacement): Likewise.
11484         (subst_reload): Remove dead code.
11485         (copy_replacements): Remove assertion.
11486         (copy_replacements_1): Do not handle SUBREG_LOC.
11487         (move_replacements): Likewise.
11488         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
11489         Detect subregs via recursive descent instead of via SUBREG_LOC.
11490
11491 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11492
11493         * config/avr/avr.c (avr_encode_section_info): Dispatch to
11494         default_encode_section_info.
11495
11496 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
11497
11498         PR tree-optimization/49545
11499         * builtins.c (get_object_alignment_1): Update function comment.
11500         Do not use DECL_ALIGN for functions, but test
11501         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
11502         * fold-const.c (get_pointer_modulus_and_residue): Don't check
11503         for functions here.
11504         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11505
11506 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
11507
11508         PR debug/49567
11509         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
11510         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
11511
11512 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11513
11514         PR target/34734
11515         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
11516         about uninitialized data attributed 'progmem' from here...
11517         (avr_encode_section_info): ...to this new function.
11518         (TARGET_ENCODE_SECTION_INFO): New define.
11519         (avr_section_type_flags): For data in ".progmem.data", remove
11520         section flag SECTION_WRITE.
11521
11522 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11523
11524         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
11525         _xmulhisi3_exit.
11526         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
11527         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
11528         (__umulhisi3): Ditto.
11529         * config/avr/avr.md (mulhisi3): New insn expender.
11530         (umulhisi3): New insn expender.
11531         (*mulhisi3_call): New insn.
11532         (*umulhisi3_call): New insn.
11533
11534 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11535
11536         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
11537
11538 2011-06-28  Richard Henderson  <rth@redhat.com>
11539
11540         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
11541         all code and arguments that handled pushes.  Update all callers.
11542
11543 2011-06-28  Richard Henderson  <rth@redhat.com>
11544
11545         * config/arm/arm.c (arm_output_function_prologue): Don't call
11546         thumb1_output_function_prologue.
11547         (arm_expand_prologue): Avoid dead store.
11548         (number_of_first_bit_set): Use ctz_hwi.
11549         (thumb1_emit_multi_reg_push): New.
11550         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
11551         to emit the entire prologue as rtl.
11552         (thumb1_output_interwork): Split out from
11553         thumb1_output_function_prologue.
11554         (thumb1_output_function_prologue): Remove.
11555         (arm_attr_length_push_multi): Handle thumb1.
11556         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
11557         (prologue_thumb1_interwork): New.
11558         (*push_multi): Allow thumb1; use push_mult_memory_operand.
11559         * config/arm/predicates.md (push_mult_memory_operand): New.
11560
11561 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11562
11563         * config/sparc/sync.md (*stbar): Delete.
11564         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
11565
11566 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11567
11568         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
11569
11570 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11571
11572         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
11573         (TARGET_64BIT_DEFAULT): Define.
11574         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
11575         of tm_file.
11576         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
11577
11578 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11579
11580         * common.opt (in_lto_p): New Variable entry.
11581         * flags.h (in_lto_p): Move to common.opt.
11582         * gcc.c: Include params.h.
11583         (set_option_handlers): Also use common_handle_option and
11584         target_handle_option.
11585         (main): Call global_init_params, finish_params and init_options_struct.
11586         * opts.c (debug_type_names): Move from toplev.c.
11587         (print_filtered_help): Access quiet_flag through opts pointer.
11588         (common_handle_option): Return early in the driver for some options.
11589         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
11590         opts pointer.
11591         * toplev.c (in_lto_p): Move to common.opt.
11592         (debug_type_names): Move to opts.c.
11593         * Makefile.in (OBJS): Remove opts.o.
11594         (OBJS-libcommon-target): Add opts.o.
11595         (gcc.o): Update dependencies.
11596
11597 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11598
11599         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
11600
11601 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11602
11603         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
11604         with '=' constraint modifier.
11605         (*divdf3_vfp): Likewise.
11606         ("*mulsf3_vfp"): Likewise.
11607         ("*muldf3_vfp"): Likewise.
11608         ("*mulsf3negsf_vfp"): Likewise.
11609         ("*muldf3negdf_vfp"): Likewise.
11610
11611 2011-06-28  Nick Clifton  <nickc@redhat.com>
11612
11613         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
11614         relaxation when performing an incremental link.
11615
11616 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11617
11618         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
11619         within BB from last to first.
11620
11621 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11622
11623         * genattr-common.c: New.  Based on genattr.c.
11624         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
11625         (MOSTLYCLEANFILES): Add insn-attr-common.h.
11626         (opts.o): Update dependencies.
11627         (.PRECIOUS): Add insn-attr-common.h.
11628         (simple_rtl_generated_h): Add insn-attr-common.h.
11629         (build/genattr-common.o): New.
11630         (genprogrtl): Add attr-common.
11631         * genattr.c (main): Include insn-attr-common.h.  Don't generate
11632         definitions of DELAY_SLOTS or INSN_SCHEDULING.
11633         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
11634
11635 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
11636
11637         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
11638         avr-*-* and avr-*-rtems* targets.
11639
11640         * config/avr/elf.h: New file.
11641         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
11642         (TARGET_ASM_SELECT_SECTION): Define.
11643         (INIT_SECTION_ASM_OP): Undefine.
11644         (FINI_SECTION_ASM_OP): Undefine.
11645         (READONLY_DATA_SECTION_ASM_OP): Undefine.
11646         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
11647         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
11648         * config/avr/avr.h:
11649         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
11650         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
11651         (MAX_OFILE_ALIGNMENT): Move to elf.h.
11652         (STRING_LIMIT): Move to elf.h.
11653         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
11654         (ASM_DECLARE_OBJECT_NAME): Remove.
11655         (ESCAPES): Remove.
11656         (ASM_OUTPUT_SKIP): Remove.
11657         (DWARF2_DEBUGGING_INFO): Remove.
11658         (OBJECT_FORMAT_ELF): Remove.
11659         (USER_LABEL_PREFIX): Remove.
11660         (ASM_OUTPUT_EXTERNAL): Remove.
11661         (ASM_OUTPUT_ASCII): Remove.
11662         (TYPE_ASM_OP): Remove.
11663         (SIZE_ASM_OP): Remove.
11664         (WEAK_ASM_OP): Remove.
11665         (STRING_ASM_OP): Remove.
11666         (SET_ASM_OP): Remove.
11667         (ASM_WEAKEN_LABEL): Remove.
11668         (TYPE_OPERAND_FMT): Remove.
11669         (ASM_DECLARE_FUNCTION_SIZE): Remove.
11670         (ASM_FINISH_DECLARE_OBJECT): Remove.
11671         (NO_DOLLAR_IN_LABEL): Remove.
11672         (ASM_GENERATE_INTERNAL_LABEL): Remove.
11673         (ASM_OUTPUT_CASE_LABEL): Remove.
11674         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
11675         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
11676         (gas_output_ascii): Remove.
11677         (gas_output_limited_string): Remove.
11678         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
11679         * config/avr/avr-protos.h
11680         (gas_output_ascii): Remove prototye.
11681         (gas_output_limited_string): Remove prototype.
11682
11683 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
11684
11685         PR target/48637
11686         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
11687         asm operands.
11688
11689 2011-06-27  Jan Hubicka  <jh@suse.cz>
11690
11691         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
11692         node instead of references in node.
11693
11694 2011-06-27  Richard Henderson  <rth@redhat.com>
11695
11696         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
11697         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
11698         inside ifdef.
11699
11700 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
11701
11702         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
11703
11704         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
11705         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
11706         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
11707         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
11708         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
11709         (evaluate_stmt, execute_fold_all_builtins): Handle
11710         BUILT_IN_ASSUME_ALIGNED.
11711         * tree-ssa-dce.c (propagate_necessity): Likewise.
11712         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11713         call_may_clobber_ref_p_1): Likewise.
11714         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
11715         (expand_builtin_assume_aligned): New function.
11716         * doc/extend.texi (__builtin_assume_aligned): Document.
11717
11718         PR debug/49544
11719         * cselib.c (promote_debug_loc): If cselib_preserve_constants
11720         and l has two DEBUG_INSN owned locs instead of just one, adjust
11721         the second location's setting_insn too.
11722
11723 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11724
11725         PR libmudflap/38738
11726         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
11727
11728 2011-06-27  Nick Clifton  <nickc@redhat.com>
11729
11730         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
11731         bit position of highest bit set into a count of the high zero bits.
11732
11733 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11734
11735         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
11736
11737 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11738
11739         PR lto/48492
11740         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
11741         to a NULL parent.
11742
11743 2011-06-27  Richard Guenther  <rguenther@suse.de>
11744
11745         PR tree-optimization/49394
11746         * passes.c (execute_one_pass): Restore current_pass after
11747         applying IPA transforms.
11748
11749 2011-06-27  Kai Tietz  <ktietz@redhat.com>
11750
11751         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
11752         out of type precision after operation.
11753         (find_bswap): Take for limit value the integer auto-promotion
11754         into account.
11755
11756 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11757
11758         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
11759         forward scan as well.
11760
11761 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11762
11763         PR target/44241
11764         * config/vms/vms-protos.h: New file.
11765         * config/vms/vms-crtlmap.map: New file.
11766         * config/vms/vms.c: New file.
11767         * config/vms/make-crtlmap.awk: New file.
11768         * config/vms/vms-crtl.h: File removed.
11769         * config/vms/vms-crtl-64.h: File removed.
11770         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
11771         * config/alpha/vms64.h: Do not include vms-crtl-64.h
11772         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
11773         clear some builtins on VMS.  Calls vms_patch_builtins.
11774         (avms_asm_output_external): Remove.
11775         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
11776         (struct crtl_name_spec): Remove
11777         (DO_CTRL_NAMES): Remove.
11778         * config/ia64/vms.h (struct crtl_name_spec): Remove
11779         (DO_CTRL_NAMES): Remove.
11780         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
11781         clear some builtins on VMS.  Calls vms_patch_builtins.
11782         (ia64_asm_output_external): Remove DO_CRTL_NAME.
11783         * config/ia64/vms64.h: Do not include vms-crtl-64.h
11784         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
11785
11786 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11787
11788         * config/alpha/alpha.c (alpha_end_function): Always generate .end
11789         directive on VMS.
11790
11791 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11792
11793         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
11794         the function receives nonlocal gotos.
11795
11796 2011-06-27  Richard Guenther  <rguenther@suse.de>
11797
11798         PR tree-optimization/49536
11799         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
11800         For non-scalar inner types use a scalar type according to
11801         the scalar inner mode.
11802
11803 2011-06-27  Richard Guenther  <rguenther@suse.de>
11804
11805         PR tree-optimization/49365
11806         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
11807
11808 2011-06-27  Richard Guenther  <rguenther@suse.de>
11809
11810         PR tree-optimization/49169
11811         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
11812         the alignment of function decls.
11813
11814 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
11815
11816         PR target/47997
11817         * config/darwin.c (darwin_mergeable_string_section): Place string
11818         constants in '.cstring' rather than '.const' when CF/NSStrings are
11819         active.
11820
11821 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11822
11823         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
11824         (emit_save_register_window): Likewise.
11825         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
11826         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
11827         Swap back %o7/%i7 in register naming.
11828
11829 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
11830
11831         PR driver/49371
11832         * config/darwin.c (darwin_override_options): Improve warning when
11833         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
11834         is given with fpie/fPIE.
11835         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
11836         * config/darwin9.h (PIE_SPEC): New.
11837
11838 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
11839
11840         * timevar.c (timevar_print): Increase width for display of timevar
11841         name.
11842
11843 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
11844
11845         PR c++/46400
11846         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
11847         instead of TYPE_CHAIN for chain_next for types.
11848
11849 2011-06-24  Richard Henderson  <rth@redhat.com>
11850
11851         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
11852         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
11853         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
11854         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
11855         (sparc_flat_expand_prologue): Emit individual instructions
11856         instead of one of the above.
11857
11858 2011-06-24  Easwaran Raman  <eraman@google.com>
11859
11860         PR rtl-optimization/49429
11861         PR target/49454
11862         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
11863         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
11864         used to copy y into x.
11865         * calls.c (initialize_argument_information): Mark
11866         an argument addressable if it is passed by invisible reference.
11867         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
11868         if it is passed by reference.
11869
11870 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11871
11872         PR rtl-optimization/49504
11873         * rtlanal.c (nonzero_bits1): Properly handle addition or
11874         subtraction of a pointer in Pmode if pointers extend unsigned.
11875         (num_sign_bit_copies1): Likewise.
11876
11877 2011-06-24  Martin Jambor  <mjambor@suse.cz>
11878
11879         PR tree-optimizations/49516
11880         * tree-sra.c (sra_modify_assign): Choose the safe path for
11881         aggregate copies if we also did scalar replacements.
11882
11883 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11884
11885         PR target/49335
11886         * config/arm/predicates.md (add_operator): New.
11887         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
11888
11889 2011-06-24  Andi Kleen  <ak@linux.intel.com>
11890
11891         * tree-sra.c (type_internals_preclude_sra_p): Add msg
11892         parameter. Split up ifs and report reason in *msg.
11893         (reject): Add.
11894         (find_var_candiate): Add msg variable.
11895         Split up ifs and report reason to reject.
11896         (find_param_candidates): Add msg variable.
11897         Pass msg to type_internals_preclude_sra_p.
11898
11899 2011-06-23  Jeff Law  <law@redhat.com>
11900
11901         PR middle-end/48770
11902         * reload.h (reload): Change to return a bool.
11903         * ira.c (ira): If requested by reload, run a fast DCE pass after
11904         reload has completed.  Fix comment typo.
11905         * reload1.c (need_dce): New file scoped static.
11906         (reload): Set reload_completed here.  Return whether or not a DCE
11907         pass after reload is needed.
11908         (delete_dead_insn): Set need_dce as needed.
11909
11910         PR middle-end/49465
11911         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
11912         to detect threading through joiner block.  If there was already
11913         an edge to the new target, then do not change the PHI nodes.
11914
11915 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
11916
11917         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
11918         get_pointer_alignment to see if base isn't sufficiently aligned.
11919
11920 2011-06-23  Jan Hubicka  <jh@suse.cz>
11921
11922         PR tree-optimize/49373
11923         * tree-pass.h (all_late_ipa_passes): Declare.
11924         * cgraphunit.c (init_lowered_empty_function): Fix properties.
11925         (cgraph_optimize): Execute late passes; remove unreachable funcions
11926         after materialization.
11927         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
11928         LTOing.
11929         * passes.c (all_late_ipa_passes): Declare.
11930         (dump_passes, register_pass): Handle late ipa passes.
11931         (init_optimization_passes): Move ipa_pta to late passes; schedule
11932         fixup_cfg at beggining of all_passes.
11933         (apply_ipa_transforms): New function.
11934         (execute_one_pass): When doing simple ipa pass, apply all transforms.
11935
11936 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
11937
11938         * params.c: Include common/common-target.h.  Don't include tm.h.
11939         (lang_independent_params): Move from toplev.c.
11940         (global_init_params): New.
11941         * params.h (global_init_params): Declare.
11942         * target.def (default_params): Move to common-target.def.
11943         * toplev.c (lang_independent_options): Remove.
11944         (lang_independent_params): Move to params.c.
11945         (general_init): Use global_init_params.
11946         * common/common-target.def (option_default_params): Move from
11947         target.def.
11948         * common/config/ia64/ia64-common.c: Include params.h.
11949         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11950         from ia64.c.
11951         * common/config/rs6000/rs6000-common.c: Include params.h.
11952         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11953         from rs6000.c.
11954         * common/config/sh/sh-common.c: Include params.h.
11955         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11956         from sh.c.
11957         * common/config/spu/spu-common.c: Include params.h.
11958         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11959         from spu.c.
11960         * config/ia64/ia64.c (ia64_option_default_params,
11961         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
11962         * config/rs6000/rs6000.c (rs6000_option_default_params,
11963         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
11964         * config/sh/sh.c (sh_option_default_params,
11965         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
11966         * config/spu/spu.c (spu_option_default_params,
11967         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
11968         * Makefile.in (OBJS): Remove params.o.
11969         (OBJS-libcommon-target): Add params.o.
11970         (params.o, $(common_out_object_file)): Update dependencies.
11971         * doc/tm.texi: Regenerate.
11972
11973 2011-06-23  Alan Modra  <amodra@gmail.com>
11974
11975         PR bootstrap/49383
11976         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
11977         invocation for 2011-06-09 changes.
11978
11979 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
11980
11981         PR libgomp/49490
11982         * omp-low.c (expand_omp_for_static_nochunk): Only
11983         use n ceil/ nthreads size for the first n % nthreads threads in the
11984         team instead of all threads except for the last few ones which
11985         get less work or none at all.
11986
11987         PR debug/49496
11988         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
11989         uses.
11990
11991 2011-06-22  Richard Guenther  <rguenther@suse.de>
11992
11993         PR tree-optimization/49493
11994         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
11995         Refer to the alias target of variables.
11996         (associate_varinfo_to_alias_1): Remove.
11997         (ipa_pta_execute): Do not associate aliases with anything.
11998         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
11999         (cgraph_function_node): Likewise.
12000         (cgraph_function_or_thunk_node): Likewise.
12001         (varpool_variable_node): Likewise.
12002
12003 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12004
12005         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
12006         * config.gcc (arm*-*-linux*): Default to gnu tls.
12007         (arm*-*-*): Add --with-tls option.
12008         (all_defaults): Add 'tls'.
12009
12010 2011-06-22  Richard Henderson  <rth@redhat.com>
12011
12012         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
12013         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
12014         (dwarf2out_frame_debug_cfa_window_save): Rename from
12015         dwarf2out_window_save; make static.
12016         * tree.h (dwarf2out_window_save): Don't declare.
12017
12018         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
12019         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
12020         (emit_save_register_window): Rename from gen_save_register_window;
12021         emit the insn and add REG_CFA_* notes.
12022         (sparc_expand_prologue): Update to match.
12023         * config/sparc/sparc.md (save_register_window_1): Simplify from
12024         save_register_window<P:mode>.
12025
12026 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
12027
12028         PR target/49497
12029         * config/i386/i386.md (*lea_general_2): Always allow SImode.
12030         (*lea_general_2_zext): Likewise.
12031         (imul to lea peepholes): Use const359_operand and check
12032         TARGET_PARTIAL_REG_STALL.
12033
12034         * config/i386/predicates.md (const359_operand): New.
12035
12036 2011-06-22  Michael Matz  <matz@suse.de>
12037
12038         * cgraphunit.c (assemble_thunk): Use correct return type.
12039
12040 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
12041             Dmitry Melnik  <dm@ispras.ru>
12042
12043         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
12044         (neon_output_shift_immediate): Ditto.
12045         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
12046         prototype.
12047         (neon_output_shift_immediate): Ditto.
12048         * config/arm/neon.md (vashl<mode>3): Modified constraint.
12049         (vashr<mode>3_imm): New insn pattern.
12050         (vlshr<mode>3_imm): Ditto.
12051         (vashr<mode>3): Modified constraint.
12052         (vlshr<mode>3): Ditto.
12053         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
12054         predicate.
12055         (imm_for_neon_rshift_operand): Ditto.
12056         (imm_lshift_or_reg_neon): Ditto.
12057         (imm_rshift_or_reg_neon): Ditto.
12058
12059         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
12060
12061 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
12062
12063         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
12064         builtin calls even if likelyvalue is not CONSTANT.
12065         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
12066         Return get_value_for_expr of first operand
12067         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
12068         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12069         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
12070         their non-checking counterparts.
12071         (call_may_clobber_ref_p_1): Likewise.
12072         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
12073         like their non-checking counterparts.
12074         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12075         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
12076         like their non-checking counterparts.
12077         (find_func_clobbers): Likewise.
12078         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
12079         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
12080
12081         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
12082         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
12083         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
12084         of base type reference as argument.
12085         (resolve_addr_in_expr): Likewise.  Fix keep computation.
12086         (convert_descriptor_to_signed): Renamed to...
12087         (convert_descriptor_to_mode): ... this.  For wider types convert to
12088         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
12089         (typed_binop): New function.
12090         (scompare_loc_descriptor, ucompare_loc_descriptor,
12091         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
12092         default to unsigned type instead of signed.
12093
12094         PR debug/47858
12095         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
12096         (gimple_build_debug_source_bind_stat): New prototype.
12097         (gimple_build_debug_source_bind): Define.
12098         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
12099         gimple_debug_source_bind_get_value,
12100         gimple_debug_source_bind_get_value_ptr,
12101         gimple_debug_source_bind_set_var,
12102         gimple_debug_source_bind_set_value): New inlines.
12103         * gimple.c (gimple_build_debug_source_bind_stat): New function.
12104         * gimple-pretty-print.c (dump_gimple_debug): Handle
12105         GIMPLE_DEBUG_SOURCE_BIND.
12106         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
12107         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12108         * tree-parloops.c (eliminate_local_variables,
12109         separate_decls_in_region): Likewise.
12110         (separate_decls_in_region_debug): Renamed from
12111         separate_decls_in_region_debug_bind.  Handle
12112         gimple_debug_source_bind_p.
12113         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
12114         prototypes.
12115         (DECL_HAS_DEBUG_ARGS_P): Define.
12116         (struct tree_function_decl): Add has_debug_args_flag field.
12117         * tree.c (debug_args_for_decl): New variable.
12118         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
12119         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
12120         (rewrite_debug_stmt_uses): New function.
12121         (rewrite_stmt): Use it to rewrite debug stmt uses.
12122         * rtl.def (DEBUG_PARAMETER_REF): New.
12123         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
12124         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
12125         DEBUG_PARAMETER_REF.
12126         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
12127         * print-rtl.c (print_rtx): Likewise.
12128         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
12129         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
12130         debug stmts in the first bb.
12131         * tree-inline.c (remap_ssa_name): If remapping default def
12132         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
12133         a source bind debug stmt.
12134         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
12135         (maybe_move_debug_stmts_to_successors): Likewise.
12136         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
12137         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
12138         debug args vector from old_decl to new_decl.
12139         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
12140         or modified parameters, add debug bind stmts before call
12141         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
12142         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
12143         on DECL_DEBUG_EXPRs from debug args vector.
12144         (expand_debug_source_expr): New function.
12145         (expand_debug_locations): Use it for source bind insns.
12146         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
12147         * var-tracking.c (prepare_call_arguments): Add debug args
12148         to call_arguments if any.
12149         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
12150         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
12151         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
12152         (get_ref_die_offset, parameter_ref_descriptor): New functions.
12153         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
12154         (gen_subprogram_die): Handle parameters identified by
12155         DEBUG_PARAMETER_REF.
12156
12157 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12158
12159         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
12160         * doc/install.texi (Configuration): Document --with-tls.
12161         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
12162         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
12163         (arm_tls_descseq_addr): New.
12164         (legitimize_tls_address): Add tlsdesc support.
12165         (arm_cannot_copy_insn_p): Check for tlscall.
12166         (arm_emit_tls_decoration): Likewise.
12167         * config/arm/arm.h (TARGET_GNU2_TLS): New.
12168         (OPTION_DEFAULT_SPECS): Add with-tls support.
12169         * config/arm/arm.md (R1_REGNUM): Define.
12170         (tlscall): New.
12171         * config/arm/arm.opt (tls_type): New enumeration type and values.
12172         (mtls-dialect): New switch.
12173         * config/arm/arm-opts.h (enum tls_type): New.
12174
12175 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12176
12177         * attribs.c (register_attribute): Added assert to check that all
12178         attribute specs are registered with a name that is not empty and
12179         does not start with '_'.
12180         (decl_attributes): Avoid the lookup of the "naked" attribute spec
12181         if the function has no attributes.
12182         * tree.c (is_attribute_with_length_p): Removed.
12183         (is_attribute_p): Removed.
12184         (private_is_attribute_p): New.
12185         (private_lookup_attribute): New.
12186         (lookup_attribute): Removed.
12187         (lookup_ident_attribute): New.
12188         (remove_attribute): Require the first argument to be in the form
12189         'text', not '__text__'.  Updated asserts.
12190         (merge_attributes): Use lookup_ident_attributes instead of
12191         lookup_attribute.
12192         (merge_dllimport_decl_attributes): Use remove_attribute.
12193         (attribute_list_contained): Likewise.
12194         (attribute_list_equal): Immediately return 1 if the arguments are
12195         identical pointers.
12196         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
12197         'int'.  Require the first argument to be in the form 'text', not
12198         '__text__'.  Require the second argument to be an identifier.
12199         (lookup_attribute): Made inline.  Require the first argument to be
12200         in the form 'text', not '__text__'.
12201         (private_is_attribute_p, private_lookup_attribute): New.
12202         Updated comments.
12203
12204 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
12205
12206         * builtins.c: Add sync_ or SYNC__ to builtin names.
12207         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
12208         * omp-low.c: Add sync_ or SYNC__ to builtin names.
12209
12210 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12211
12212         PR target/33049
12213         * config/avr/avr.md (extzv): New expander.
12214         (*extzv): New insn.
12215         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
12216         * config/avr/constraints.md (C04): New constraint.
12217         * doc/md.texi (Machine Constraints): Document it.
12218
12219 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12220
12221         PR middle-end/49489
12222         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
12223         unsignedp argument instead of 1 for clrsb_optab.
12224         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
12225         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
12226         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
12227         * optabs.c (widen_leading): Call widen_operand and expand_unop
12228         with 0 as unsignedp argument instead of 1 for clrsb_optab.
12229         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
12230
12231 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12232
12233         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
12234
12235 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
12236
12237         * gensupport.c (add_define_attr): New static function.
12238         (is_predicable): Allow multi-alternative lists for the "predicable"
12239         attribute.
12240         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
12241         (process_one_cond_exec): Call alter_attrs_for_insn.
12242         * doc/md.texi (Defining Attributes): Mention some standard names.
12243         (Conditional Execution): Update documentation for "predicable".
12244
12245         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
12246         __builtin_clrsbll): Document.
12247         * doc/rtl.texi (clrsb): New entry.
12248         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
12249         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
12250         (expand_unop): Handle clrsb_optab.
12251         (init_optabs): Initialize it.
12252         * optabs.h (enum optab_index): New entry OTI_clrsb.
12253         (clrsb_optab): Define.
12254         * genopinit.c (optabs): Add an entry for it.
12255         * builtins.c (expand_builtin): Handle clrsb builtin functions.
12256         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
12257         BUILT_IN_CLRSBLL): New.
12258         * rtl.def (CLRSB): New code.
12259         * dwarf2out.c (mem_loc_descriptor): Handle it.
12260         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12261         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
12262         and popcount.
12263         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
12264         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
12265         (__ctzDI2): Move declaration.
12266         * config/bfin/bfin.md (clrsbsi2): New expander.
12267         (signbitssi2): Use the CLRSB rtx.
12268         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
12269         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
12270
12271 2011-06-21  Richard Guenther  <rguenther@suse.de>
12272
12273         * ipa-inline-transform.c (inline_transform): Fix previous change.
12274
12275 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
12276
12277         PR tree-optimization/49478
12278         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
12279         with constant operand.
12280
12281 2011-06-21  Richard Guenther  <rguenther@suse.de>
12282
12283         * ipa-inline-transform.c (inline_transform): Fix typo.
12284
12285 2011-06-21  Richard Guenther  <rguenther@suse.de>
12286
12287         PR tree-optimization/49483
12288         * tree-vect-stmts.c (vectorizable_assignment): Also handle
12289         VIEW_CONVERT_EXPR conversions.
12290
12291 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
12292
12293         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
12294         * config/avr/avr-tables.opt: New file (generated).
12295         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
12296         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
12297         avr-mcus.def.
12298         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
12299         (avr_option_override): Don't process -mmcu= argument here.  Set
12300         avr_current_device using avr_mcu_index.
12301         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
12302         * config/avr/avr.opt (mmcu=): Use Enum.
12303         * config/avr/t-avr (avr-devices.o): Update dependencies.
12304         ($(srcdir)/config/avr/avr-tables.opt): New.
12305         * target.def (help): Remove.
12306         * doc/tm.texi.in (TARGET_HELP): Remove.
12307         * doc/tm.texi: Regenerate.
12308         * opts.c: Don't include target.h.
12309         (common_handle_option): Don't call targetm.help.
12310         * system.h (TARGET_HELP): Poison.
12311         * Makefile.in (opts.o): Update dependencies.
12312
12313 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12314
12315         * config/usegld.h: New file.
12316         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
12317         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
12318         (LIB_SPEC): Likewise.  Search /lib.
12319         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
12320         (RDYNAMIC_SPEC): Handle GNU ld.
12321         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
12322         Define.
12323         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
12324         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
12325         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
12326         (STACK_CHECK_STATIC_BUILTIN): Define.
12327         * config/sol2.opt (compat-bsd): Remove.
12328         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
12329         * config/sol2-bi.h: New file.
12330         * config/sol2-gld.h: Remove.
12331         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
12332         (NO_DBX_BNSYM_ENSYM): Remove.
12333         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12334         (STACK_CHECK_STATIC_BUILTIN): Remove.
12335         Test USE_GLD instead of TARGET_GNU_LD.
12336         * config/i386/sol2-10.h: Rename to ...
12337         * config/i386/sol2-bi.h .. this.
12338         (SUBTARGET_EXTRA_SPECS): Redefine.
12339         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
12340         (MULTILIB_DEFAULTS): Remove.
12341         (DEFAULT_ARCH32_P): Define.
12342         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
12343         (ARCH64_SUBDIR): Define.
12344         Test USE_GLD instead of TARGET_GNU_LD.
12345         (I386_EMULATION): Rename to ...
12346         (ARCH32_EMULATION): ... this.
12347         (X86_64_EMULATION): Rename to ...
12348         (ARCH64_EMULATION): ... this.
12349         (TARGET_LD_EMULATION): Remove.
12350         (LINK_ARCH_SPEC): Remove.
12351         * config/i386/sol2-gas.h: Remove.
12352         * config/i386/t-sol2-10: Rename to ...
12353         * config/i386/t-sol2-64: ... this.
12354         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
12355         (AS_SPARC64_FLAG): Define.
12356         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
12357         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
12358         depending on TARGET_CPU_DEFAULT.
12359         (CPP_CPU_SPEC): Redefine.
12360         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
12361         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
12362         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
12363         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
12364         ASM_ARCH_DEFAULT_SPEC): Redefine.
12365         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12366         LINK_ARCH_DEFAULT_SPEC.
12367         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
12368         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
12369         (ARCH64_SUBDIR): Define.
12370         (LINK_ARCH64_SPEC): Redefine.
12371         (CC1_SPEC): Redefine.
12372         (OPTION_DEFAULT_SPECS): Redefine.
12373         (MULTILIB_DEFAULTS): Define.
12374         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
12375         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
12376         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
12377         (NO_DBX_BNSYM_ENSYM): Remove.
12378         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12379         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
12380         (TARGET_ASM_NAMED_SECTION): Likewise.
12381         (STACK_CHECK_STATIC_BUILTIN): Remove.
12382         * config/sparc/sol2-bi.h: Remove.
12383         * config/sparc/sol2-gas-bi.h: Remove.
12384         * config/sparc/sol2-gas.h: Remove.
12385         * config/sparc/sol2-gld-bi.h: Remove.
12386         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
12387         common parts ...
12388         (*-*-solaris2*): ... here.
12389
12390 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12391
12392         PR other/43564
12393         * ipa-inline.c (can_inline_edge_p): Check
12394         !DECL_DISREGARD_INLINE_LIMITS.
12395
12396 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12397
12398         PR middle-end/49139
12399         * cgraphunit.c (process_function_and_variable_attributes): warn when
12400         always_inline functions that are not inline.
12401         * ipa-inline-transform.c (inline_transform): Always call
12402         optimize_inline.
12403         * tree-inline.c (tree_inlinable_function_p): Use error instead
12404         of sorry.
12405         (expand_call_inline): Likewise.
12406
12407 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12408
12409         * Makefile.in (dg_target_exps): Set.
12410         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
12411         instead of 7, try to divide it more evenly.
12412
12413 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
12414
12415         PR target/49089
12416         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
12417         (avx256_split_unaligned_store): New definition.
12418         (ix86_option_override_internal): Enable avx256 unaligned load/store
12419         splitting only when avx256_split_unaligned_load/store is set.
12420
12421 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12422
12423         * regrename.c (scan_rtx_reg): Handle the case where we write to an
12424         open chain in a smaller mode without failing the entire block.
12425
12426 2011-06-21  Alan Modra  <amodra@gmail.com>
12427
12428         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
12429         CONST high part large-toc address.
12430         (rs6000_tls_referenced_p): Make static.
12431         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
12432
12433 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12434
12435         PR target/49385
12436         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
12437         one of the operands is a register.
12438
12439 2011-06-20  Kai Tietz  <ktietz@redhat.com>
12440
12441         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
12442         operations in combination with binary and.
12443
12444 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12445
12446         * regrename.c (do_replace): Don't update notes.
12447
12448 2011-06-20  Alan Modra  <amodra@gmail.com>
12449
12450         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
12451         of toc-relative address in CONST.
12452         (rs6000_delegitimize_address): Recognize changed address.
12453         (rs6000_legitimize_reload_address): Likewise.
12454         (rs6000_emit_move): Don't force these constants to memory.
12455         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
12456         toc-relative address in CONST.
12457         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
12458         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
12459
12460 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12461
12462         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
12463         (count_trailing_zeros): Likewise.
12464
12465 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12466
12467         PR other/49325
12468         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
12469         .init_array can be used with .ctors on targets.
12470         * configure: Regenerated.
12471
12472 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
12473
12474         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
12475         if the element type is volatile.
12476
12477 2011-06-18  Jan Hubicka  <jh@suse.cz>
12478
12479         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
12480         extra name aliases.
12481         (lto_symtab_resolve_can_prevail_p): Likewise.
12482         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
12483         * cgraphbuild.c (record_reference): Remove extra body alias code.
12484         (mark_load): Likewise.
12485         (mark_store): Likewise.
12486         * cgraph.h (varpool_node): Remove extra_name filed;
12487         add alias_of and extraname_alias.
12488         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
12489         (varpool_alias_aliased_node): New inline function.
12490         (varpool_variable_node): New function.
12491         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
12492         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
12493         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
12494         (input_varpool_node): Likewise.
12495         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
12496         (varpool_externally_visible_p): Remove extra body alias code.
12497         (function_and_variable_visibility): Likewise.
12498         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
12499         (ipa_pta_execute): Use it.
12500         * varpool.c (varpool_remove_node): Remove extra name alias code.
12501         (varpool_mark_needed_node): Likewise.
12502         (varpool_analyze_pending_decls): Analyze aliases.
12503         (assemble_aliases): New functoin.
12504         (varpool_assemble_decl): Use it.
12505         (varpool_create_variable_alias): New function.
12506         (varpool_extra_name_alias): Rewrite.
12507         (varpool_for_node_and_aliases): New function.
12508
12509 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
12510
12511         PR target/49411
12512         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
12513         last_arg_constant and last argument doesn't match its predicate,
12514         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
12515         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
12516         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
12517         spelling of error message.
12518         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
12519         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
12520         const_0_to_255_operand instead of const_int_operand.
12521
12522         Revert:
12523         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
12524
12525         * config/i386/sse.md (blendbits): Remove mode attribute.
12526         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
12527         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
12528         Check integer value of operand 3 in insn constraint.
12529
12530 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
12531
12532         PR rtl-optimization/48542
12533         * reload.c (find_equiv_reg): Stop looking when finding a
12534         setjmp-type call.
12535         * reload1.c (reload_as_needed): Invalidate all reload
12536         registers when crossing a setjmp-type call.
12537
12538 2011-06-16  Jeff Law  <law@redhat.com>
12539
12540         * tree-ssa-threadupdate.c (struct redirection_data): New field
12541         intermediate_edge.
12542         (THREAD_TARGET2): Define.
12543         (redirection_data_eq): Also check that the intermediate edge is equal.
12544         (lookup_redirection_data): Drop useless argument.  Extract the
12545         outgoing_edge and intermediate edge from E.  Callers updated.
12546         (copy_phi_args, update_destination_phis): New functions.
12547         (fix_duplicate_block_edges): Likewise.
12548         (create_edge_and_update_destination_phis): Duplicate all the edges
12549         hung off e->aux.  Use copy_phi_args.
12550         (create_duplicates): Use fix_duplicate_block_edges.
12551         (fixup_template_block): Likewise.
12552         (redirect_edges): If necessary, redirect the joiner block's incoming
12553         edge to the duplicate of the joiner block.
12554         (thread_block): Don't muck up loops when threading through a joiner
12555         block.
12556         (thread_through_loop_header): Handle threading through a joiner block.
12557         (mark_threaded_blocks, register_jump_thread): Likewise.
12558         * tree-flow.h (register_jump_thread): Add new argument.  Callers
12559         updated.
12560         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
12561         (thread_across_edge): Handle threading through a joiner block.
12562
12563 2011-06-16  Martin Jambor  <mjambor@suse.cz>
12564
12565         PR tree-optimization/49343
12566         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
12567         calculate offset, provide 2nd operand for the new COMPONENT_REF.
12568
12569 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
12570
12571         * config/darwin-protos.h (machopic_select_rtx_section): Move to
12572         inside RTX_CODE ifdef.
12573
12574 2011-06-16  Tom de Vries  <tom@codesourcery.com>
12575
12576         PR target/45098
12577         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12578         Disallow NULL pointer for pointer arithmetic.
12579
12580 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12581
12582         PR target/49398
12583         Revert.
12584         2011-06-10  Wei Guozhi  <carrot@google.com>
12585
12586         PR target/45335
12587         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
12588         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
12589         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
12590         related peephole2.
12591         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
12592         related peephole2.
12593         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
12594         (arm_legitimate_ldrd_p): New prototype.
12595         (arm_output_ldrd): New prototype.
12596         * config/arm/arm.c (arm_check_ldrd_operands): New function.
12597         (arm_legitimate_ldrd_p): New function.
12598         (arm_output_ldrd): New function.
12599
12600 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12601
12602         PR middle-end/46500
12603         * doc/tm.texi.in: Update Copyright date.
12604         * doc/tm.texi: Regenerate.
12605         * targhooks.c (default_setup_incoming_varargs): Replace
12606         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12607         (default_pretend_outgoing_varargs_named): Likewise.
12608         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12609         (hook_callee_copies_named): Likewise.
12610         (default_function_arg_advance): Likewise.
12611         (default_function_arg): Likewise.
12612         (default_function_incoming_arg): Likewise.
12613         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12614         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12615         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12616         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12617         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12618         * targhooks.h (default_setup_incoming_varargs): Likewise.
12619         (default_pretend_outgoing_varargs_named): Likewise.
12620         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12621         (hook_callee_copies_named): Likewise.
12622         (default_function_arg_advance): Likewise.
12623         (default_function_arg): Likewise.
12624         (default_function_incoming_arg): Likewise.
12625         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12626         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12627         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12628         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12629         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12630         * target.def (pass_by_reference): Likewise.
12631         (setup_incoming_varargs, strict_argument_naming): Likewise.
12632         (pretend_outgoing_varargs_named, callee_copies): Likewise.
12633         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
12634         (function_incoming_arg): Likewise.
12635         * target.h: Don't include "tm.h" .
12636         (cumulative_args_t): New typedef.
12637         [GCC_TM_H] (get_cumulative_args): New static inline function.
12638         [GCC_TM_H] (pack_cumulative_args): Likewise.
12639         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
12640         argument type with cumulative_args_t.
12641         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
12642         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
12643         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12644         (frv_arg_partial_bytes, frv_function_arg): Likewise.
12645         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
12646         (frv_function_arg_1): Likewise.
12647         * config/s390/s390.c (s390_pass_by_reference): Likewise.
12648         (s390_function_arg_advance, s390_function_arg): Likewise.
12649         * config/m32c/m32c.c (m32c_function_arg): Likewise.
12650         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
12651         (m32c_strict_argument_naming): Likewise.
12652         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
12653         (spu_function_arg_advance): Likewise.
12654         (spu_setup_incoming_varargs): Likewise.  Make static.
12655         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
12656         Remove prototype.
12657         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
12658         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12659         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
12660         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
12661         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
12662         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
12663         (mep_pass_by_reference, mep_function_arg): Likewise.
12664         (mep_function_arg_advance): Likewise.
12665         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12666         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
12667         (m32r_function_arg, m32r_function_arg_advance): Likewise.
12668         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
12669         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12670         (ix86_function_arg, ix86_pass_by_reference): Likewise.
12671         (ix86_setup_incoming_varargs): Likewise.
12672         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12673         (sh_strict_argument_naming): Likewise.
12674         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
12675         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
12676         (sh_function_arg_advance, sh_function_arg): Likewise.
12677         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12678         (pdp11_function_arg_advance): Likewise.
12679         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12680         Likewise.
12681         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
12682         * config/avr/avr.c (avr_function_arg): Likewise.
12683         (avr_function_arg_advance): Likewise.
12684         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12685         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
12686         (xtensa_function_arg_1): Likewise.
12687         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
12688         Likewise.
12689         (xstormy16_function_arg): Likewise.
12690         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12691         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12692         (fr30_function_arg_advance): Likewise.
12693         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12694         (lm32_function_arg, lm32_function_arg_advance): Likewise.
12695         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12696         (moxie_function_arg, moxie_function_arg_advance): Likewise.
12697         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
12698         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12699         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
12700         (cris_function_arg, cris_function_incoming_arg): Likewise.
12701         (cris_function_arg_advance, cris_function_arg_1): Likewise.
12702         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12703         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
12704         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
12705         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12706         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
12707         (mn10300_arg_partial_bytes): Likewise.
12708         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12709         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
12710         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
12711         (ia64_function_arg_1): Likewise.
12712         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12713         (m68k_function_arg): Likewise.
12714         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
12715         (rs6000_function_arg, setup_incoming_varargs): Likewise.
12716         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
12717         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
12718         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
12719         (picochip_arg_advance): Likewise.
12720         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12721         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
12722         (mcore_function_arg_advance): Likewise.
12723         * config/score/score.c (score_pass_by_reference): Likewise.
12724         (score_function_arg_advance): Likewise.
12725         (score_arg_partial_bytes): Likewise.  Make static.
12726         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
12727         * config/arm/arm.c (arm_arg_partial_bytes): Replace
12728         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12729         (arm_function_arg, arm_function_arg_advance): Likewise.
12730         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
12731         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12732         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
12733         (pa_function_arg): Likewise.
12734         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
12735         (mips_function_arg, mips_function_arg_advance): Likewise.
12736         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
12737         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
12738         * config/vax/vax.c (vax_function_arg): Likewise.
12739         (vax_function_arg_advance): Likewise.
12740         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12741         (h8300_function_arg_advance): Likewise.
12742         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12743         (v850_strict_argument_naming, v850_function_arg): Likewise.
12744         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
12745         (v850_setup_incoming_varargs): Likewise.
12746         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12747         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
12748         (mmix_function_arg, mmix_pass_by_reference): Likewise.
12749         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
12750         with const void *.
12751         * config/bfin/bfin.c (setup_incoming_varargs): Replace
12752         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12753         (bfin_function_arg_advance, bfin_function_arg): Likewise.
12754         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
12755         * calls.c (emit_call_1): Change type of args_so_far to
12756         cumulative_args_t.  Changed all callers.
12757         (initialize_argument_information): Likewise.
12758         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
12759         * dse.c (get_call_args): Likewise.
12760         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12761         * function.c (pass_by_reference, reference_callee_copied): Likewise.
12762         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
12763         New member args_so_far_v.  Changed all users.
12764         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
12765         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12766         * config/mips/mips.c (mips_output_args_xfer): Likewise.
12767         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12768         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12769         * config/microblaze/microblaze.c (microblaze_expand_prologue):
12770         Likewise.
12771         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
12772         m32r_pass_by_reference.
12773
12774 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
12775
12776         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
12777         argument to be a VEC of statements.
12778         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
12779         assert that pattern statements have to have their vector type set.
12780         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
12781         Change the first argument to be a VEC of statements.  Update
12782         documentation.
12783         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
12784         (vect_handle_widen_mult_by_const): New function.
12785         (vect_recog_widen_mult_pattern):  Change the first argument to be a
12786         VEC of statements.  Update documentation.  Check that the constant is
12787         INTEGER_CST.  Support multiplication by a constant that fits an
12788         intermediate type - call vect_handle_widen_mult_by_const.
12789         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
12790         call.  Handle additional pattern statements if necessary.
12791
12792 2011-06-16  Nick Clifton  <nickc@redhat.com>
12793
12794         PR target/49427
12795         * config.gcc: Set cpu_type to v850 for any V850 architecture.
12796         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
12797         md_file, extra_modes, out_file and extra_options are these are all
12798         deduced from cpu_type.
12799
12800 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12801
12802         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
12803         truncation mask to 63.
12804
12805 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12806
12807         PR target/49313
12808         PR target/29524
12809         * longlong.h: Add AVR support:
12810         (count_leading_zeros): New macro.
12811         (count_trailing_zeros): New macro.
12812         (COUNT_LEADING_ZEROS_0): New macro.
12813         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
12814         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
12815         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
12816         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
12817         (LIB2FUNCS_EXCLUDE): Add _clz.
12818         * config/avr/libgcc.S (XCALL): Move up in file.
12819         (XJMP): New C Macro.
12820         (DEFUN): New asm macro.
12821         (ENDF): New asm macro.
12822         (__ffssi2): New function.
12823         (__ffshi2): New function.
12824         (__loop_ffsqi2): New function.
12825         (__ctzsi2): New function.
12826         (__ctzhi2): New function.
12827         (__clzdi2): New function.
12828         (__clzsi2): New function.
12829         (__clzhi2): New function.
12830         (__paritydi2): New function.
12831         (__paritysi2): New function.
12832         (__parityhi2): New function.
12833         (__parityqi2): New function.
12834         (__popcounthi2): New function.
12835         (__popcountsi2): New function.
12836         (__popcountdi2): New function.
12837         (__popcountqi2): New function.
12838         (__bswapsi2): New function.
12839         (__bswapdi2): New function.
12840         (__ashldi3): New function.
12841         (__ashrdi3): New function.
12842         (__lshrdi3): New function.
12843         Fix suspicous lines.
12844
12845 2011-06-16  Richard Guenther  <rguenther@suse.de>
12846
12847         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
12848         the same as x != 0.
12849         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
12850         to (bool) X & 1.
12851         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
12852         equality compares against zero for the lower bit.
12853
12854 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
12855
12856         PR tree-optimization/49419
12857         * tree-vrp.c (execute_vrp): Call init_range_assertions
12858         before estimate_numbers_of_iterations, call
12859         free_number_of_iterations_estimates before calling
12860         remove_range_assertions.
12861
12862 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12863
12864         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
12865         (struct partial_schedule): Add rows_length field.
12866         (verify_partial_schedule): Check rows_length.
12867         (ps_insert_empty_row): Handle rows_length.
12868         (create_partial_schedule): Likewise.
12869         (free_partial_schedule): Likewise.
12870         (reset_partial_schedule): Likewise.
12871         (create_ps_insn): Remove rest_count argument.
12872         (remove_node_from_ps): Update rows_length.
12873         (add_node_to_ps): Update rows_length and call create_ps_insn
12874         without passing row_rest_count.
12875         (rotate_partial_schedule): Update rows_length.
12876
12877 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12878
12879         * ddg.c (add_intra_loop_mem_dep): New function.
12880         (build_intra_loop_deps): Call it.
12881
12882 2011-06-13  Jeff Law  <law@redhat.com>
12883
12884         * df-problems.c (df_lr_local_compute): Manually CSE
12885         PIC_OFFSET_TABLE_REGNUM.
12886         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
12887         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
12888
12889 2011-06-13  Jan Hubicka  <jh@suse.cz>
12890
12891         * cgraphunit.c (handle_alias_pairs): New function.
12892         (cgraph_finalize_compilation_unit): Use it.
12893         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
12894         as externally visible.
12895
12896 2011-06-15  Richard Guenther  <rguenther@suse.de>
12897
12898         * expr.c (expand_expr_real_2): Reduce all integral types to
12899         bitfield precision.
12900         (expand_expr_real_1): Likewise.
12901
12902 2011-06-15  Martin Jambor  <mjambor@suse.cz>
12903
12904         PR tree-optimization/48613
12905         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
12906         ipa_node_params_vector is NULL.
12907
12908 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
12909
12910         PR debug/49382
12911         * dwarf2out.c (dw_loc_list_node): Add force field.
12912         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
12913         location in the list, even if it is modified before first real insn.
12914         (output_loc_list): Emit empty ranges with force flag set.
12915         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
12916
12917 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
12918
12919         PR target/49349
12920         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
12921         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
12922         above a fence.  Update comments.
12923         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
12924         placed just above it.  Do not allow NULL place_to_insert.
12925
12926 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
12927
12928         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
12929         (slpeel_tree_peel_loop_to_edge): Don't call
12930         remove_dead_stmts_from_loop.
12931         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
12932         remove irrelevant pattern statements.  For irrelevant statements
12933         check if it is the last statement of a detected pattern, use
12934         corresponding pattern statement instead.
12935         (destroy_loop_vec_info): No need to remove pattern statements,
12936         only free stmt_vec_info.
12937         (vect_transform_loop): For irrelevant statements check if it is
12938         the last statement of a detected pattern, use corresponding
12939         pattern statement instead.
12940         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
12941         pattern statements.  Set basic block for the new statement.
12942         (vect_pattern_recog): Update documentation.
12943         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
12944         operands of pattern statements.
12945         (vectorizable_call): Fix printing.  In case of a pattern statement
12946         use the lhs of the original statement when creating a dummy
12947         statement to replace the original call.
12948         (vect_analyze_stmt): For irrelevant statements check if it is
12949         the last statement of a detected pattern, use corresponding
12950         pattern statement instead.
12951         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
12952         statements use gsi of the original statement.
12953
12954 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
12955
12956         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
12957         common/common-target-def.h.
12958         * target.def (default_target_flags, handle_option,
12959         supports_split_stack, optimization_table, init_struct,
12960         except_unwind_info, unwind_tables_default, have_named_sections):
12961         Move to common/common-target.def.
12962         * target.h (enum opt_levels, struct default_options): Move to
12963         common/common-target.h.
12964         * targhooks.c (default_except_unwind_info,
12965         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12966         default_target_handle_option, empty_optimization_table): Move to
12967         common/common-targhooks.c.
12968         * targhooks.h (default_except_unwind_info,
12969         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12970         default_target_handle_option, empty_optimization_table): Move to
12971         common/common-targhooks.h.
12972         * common/common-target-def.h: Include common/common-targhooks.h.
12973         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
12974         defined.
12975         * common/common-target.def (handle_option, option_init_struct,
12976         option_optimization_table, default_target_flags,
12977         except_unwind_info, supports_split_stack, unwind_tables_default,
12978         have_named_sections): Move from target.def.
12979         (HOOK_PREFIX): Undefine at end of file.
12980         * common/common-target.h: Include input.h.
12981         (enum opt_levels, struct default_options): Move from target.h.
12982         * common/common-targhooks.c, common/common-targhooks.h: New.
12983         * config.gcc (target_has_targetm_common): Default to yes.
12984         (moxie*): Set target_has_targetm_common=no.
12985         (hppa*-*-*): Don't set target_has_targetm_common=yes.
12986         * doc/tm.texi: Regenerate.
12987         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
12988         (C_TARGET_DEF_H): Add common/common-targhooks.h.
12989         (GCC_OBJS): Remove vec.o.
12990         (OBJS): Remove hooks.o and vec.o.
12991         (OBJS-libcommon-target): Add vec.o, hooks.o and
12992         common/common-targhooks.o.
12993         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
12994         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
12995         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
12996         cfglayout.o, $(out_object_file), $(common_out_object_file)):
12997         Update dependencies.
12998         (common/common-targhooks.o): New.
12999         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
13000         * common/config/pa/pa-common.c: Include more headers.  Take
13001         copyright dates from pa.c.
13002         (pa_option_optimization_table, pa_handle_option,
13003         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
13004         TARGET_HANDLE_OPTION): Move from pa.c.
13005         * common/config/alpha/alpha-common.c,
13006         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
13007         common/config/bfin/bfin-common.c,
13008         common/config/cris/cris-common.c,
13009         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
13010         common/config/h8300/h8300-common.c,
13011         common/config/i386/i386-common.c,
13012         common/config/ia64/ia64-common.c,
13013         common/config/iq2000/iq2000-common.c,
13014         common/config/lm32/lm32-common.c,
13015         common/config/m32c/m32c-common.c,
13016         common/config/m32r/m32r-common.c,
13017         common/config/m68k/m68k-common.c,
13018         common/config/mcore/mcore-common.c,
13019         common/config/mep/mep-common.c,
13020         common/config/microblaze/microblaze-common.c,
13021         common/config/mips/mips-common.c,
13022         common/config/mmix/mmix-common.c,
13023         common/config/mn10300/mn10300-common.c,
13024         common/config/pdp11/pdp11-common.c,
13025         common/config/picochip/picochip-common.c,
13026         common/config/rs6000/rs6000-common.c,
13027         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
13028         common/config/score/score-common.c, common/config/sh/sh-common.c,
13029         common/config/sparc/sparc-common.c,
13030         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
13031         common/config/vax/vax-common.c,
13032         common/config/xstormy16/xstormy16-common.c,
13033         common/config/xtensa/xtensa-common.c: New.
13034         * config/alpha/alpha.c: Include common/common-target.h.
13035         (alpha_option_optimization_table, alpha_handle_option,
13036         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13037         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
13038         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
13039         * config/arm/arm.c (arm_option_optimization_table,
13040         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13041         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
13042         arm-common.c.
13043         * config/avr/avr.c (avr_option_optimization_table,
13044         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13045         to avr-common.c.
13046         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
13047         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
13048         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
13049         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
13050         * config/cris/cris.c (cris_option_optimization_table,
13051         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13052         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
13053         cris-common.c.
13054         * config/fr30/fr30.c (fr30_option_optimization_table,
13055         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
13056         to fr30-common.c.
13057         * config/frv/frv.c (frv_option_optimization_table,
13058         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
13059         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
13060         * config/h8300/h8300.c (h8300_option_optimization_table,
13061         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13062         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
13063         * config/i386/i386-protos.h (ix86_handle_option): Declare.
13064         * config/i386/i386.c: Include common/common-target.h.
13065         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
13066         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
13067         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
13068         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
13069         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
13070         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
13071         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
13072         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
13073         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
13074         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
13075         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
13076         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
13077         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
13078         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
13079         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
13080         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
13081         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
13082         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
13083         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
13084         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
13085         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
13086         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
13087         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
13088         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
13089         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
13090         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
13091         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
13092         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
13093         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
13094         ix86_option_optimization_table, ix86_option_init_struct,
13095         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
13096         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13097         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
13098         i386-common.c.
13099         * config/i386/t-i386 (i386.o): Update dependencies.
13100         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
13101         * config/ia64/ia64.c (ia64_option_optimization_table,
13102         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13103         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13104         ia64_handle_option): Move to ia64-common.c.
13105         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
13106         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
13107         * config/lm32/lm32.c (lm32_option_optimization_table,
13108         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13109         to lm32-common.c.
13110         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
13111         m32c-common.c.
13112         * config/m32r/m32r.c (m32r_option_optimization_table,
13113         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13114         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13115         m32r_handle_option): Move to m32r-common.c.
13116         (m32r_memory_move_cost): Remove comment referring to
13117         TARGET_HANDLE_OPTION.
13118         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
13119         Move to m68k-common.c.
13120         * config/mcore/mcore.c (mcore_option_optimization_table,
13121         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13122         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
13123         * config/mep/mep.c (mep_option_optimization_table,
13124         mep_handle_option, TARGET_HANDLE_OPTION,
13125         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
13126         Move to mep-common.c.
13127         * config/microblaze/microblaze.c
13128         (microblaze_option_optimization_table,
13129         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13130         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
13131         * config/mips/mips.c (mips_handle_option,
13132         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13133         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
13134         mips-common.c.
13135         * config/mmix/mmix.c (mmix_option_optimization_table,
13136         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13137         Move to mmix-common.c.
13138         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
13139         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
13140         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13141         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
13142         * config/pa/pa.c: Include common/common-target.h.
13143         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13144         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13145         pa_handle_option): Move to pa-common.c.
13146         (pa_option_override): Use targetm_common.except_unwind_info.
13147         (pa_asm_output_mi_thunk, pa_function_section): Use
13148         targetm_common.have_named_sections.
13149         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
13150         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13151         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13152         pdp11_handle_option, pdp11_option_init_struct): Move to
13153         pdp11-common.c.
13154         * config/picochip/picochip.c (picochip_option_optimization_table,
13155         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
13156         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
13157         * config/rs6000/rs6000.c: Include common/common-target.h.
13158         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
13159         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
13160         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
13161         rs6000_handle_option): Move to rs6000-common.c.
13162         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13163         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
13164         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13165         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
13166         * config/s390/s390.c (processor_flags_table,
13167         s390_option_optimization_table, s390_option_init_struct,
13168         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
13169         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13170         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
13171         * config/s390/s390.h (processor_flags_table): Declare.
13172         * config/score/score.c (score_option_optimization_table,
13173         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13174         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
13175         score_handle_option): Move to score-common.c.
13176         * config/sh/sh.c (sh_option_optimization_table,
13177         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13178         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13179         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
13180         * config/sparc/sparc.c: Include common/common-target.h.
13181         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13182         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
13183         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
13184         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
13185         spu_option_init_struct): Move to spu-common.c.
13186         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
13187         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
13188         * config/v850/v850.c (small_memory_physical_max,
13189         v850_handle_memory_optionn v850_handle_option,
13190         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13191         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
13192         v850-common.c.
13193         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
13194         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
13195         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13196         Move to xtensa-common.c.
13197         * cfglayout.c: Include common/common-target.h.
13198         (fixup_reorder_chain): Use targetm_common.have_named_sections.
13199         * cfgrtl.c: Include common/common-target.h.
13200         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
13201         targetm_common.have_named_sections.
13202         * dbxout.c: Include common/common-target.h.
13203         (dbxout_function_end): Use targetm_common.have_named_sections.
13204         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
13205         targetm_common.except_unwind_info.
13206         * dwarf2out.c: Include common/common-target.h.
13207         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
13208         dwarf2out_begin_prologue, dwarf2out_frame_init,
13209         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
13210         targetm_common.except_unwind_info.
13211         * except.c: Include common/common-target.h.
13212         (init_eh, finish_eh_generation,
13213         output_one_function_exception_table): Use
13214         targetm_common.except_unwind_info.
13215         (switch_to_exception_section): Use targetm_common.have_named_sections.
13216         * explow.c: Include common/common-target.h.
13217         * expr.c: Include common/common-target.h.
13218         (build_personality_function): Use targetm_common.except_unwind_info.
13219         * function.c: Include common/common-target.h.
13220         (expand_function_end): Use targetm_common.except_unwind_info.
13221         * haifa-sched.c: Include common/common-target.h.
13222         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
13223         * lto-opts.c: Include common/common-target.h instead of target.h.
13224         (lto_reissue_options): Use targetm_common.handle_option.
13225         * opts.c: Include common/common-target.h.
13226         (target_handle_option): Use targetm_common.handle_option.
13227         (init_options_struct): Update comment referring to
13228         targetm.target_option.optimization.  Use
13229         targetm_common.default_target_flags,
13230         targetm_common.unwind_tables_default and
13231         targetm_common.option_init_struct.
13232         (default_options_optimization): Use
13233         targetm_common.option_optimization_table.
13234         (finish_options): Use targetm_common.except_unwind_info,
13235         targetm_common.unwind_tables_default,
13236         targetm_common.have_named_sections and
13237         targetm_common.supports_split_stack.
13238         * toplev.c: Include common/common-target.h.
13239         (process_options): Use targetm_common.have_named_sections.
13240         * tree-tailcall.c: Include common/common-target.h.
13241         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
13242         * tree.c: Include common/common-target.h.
13243         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
13244         * varasm.c: Include common/common-target.h.
13245         (resolve_unique_section, hot_function_section,
13246         default_function_section): Use targetm_common.have_named_sections.
13247
13248 2011-06-14  Easwaran Raman  <eraman@google.com>
13249
13250         PR rtl-optimization/44194
13251         * dse.c: Include tree-flow.h
13252         (insn_info): Add new field non_frame_wild_read.
13253         (group_info): Add new fields escaped_n and escaped_p.
13254         (kill_on_calls): New variable.
13255         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
13256         (dse_step0): Initialize kill_on_calls.
13257         (can_escape): New function.
13258         (set_usage_bits): Add additional parameter; record information
13259         about escaped locations.
13260         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
13261         (dse_step2_nospill): Set kill_on_calls based on
13262         group->escaped_n and group->escaped_n.
13263         (add_wild_read): Refactor into...
13264         (reset_active_stores): ... New function, and
13265         (free_read_records): ... New function.
13266         (add_non_frame_wild_read): New function.
13267         (scan_insn): Call add_non_frame_wild_read on non-const calls.
13268         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
13269         (dse_step5_nospill): Call scan_reads_nospill for instructions
13270         marked as non_frame_wild_read.
13271         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
13272
13273 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13274
13275         * common/common-target-def.h, common/common-target.def,
13276         common/common-target.h, common/config/default-common.c,
13277         common/config/pa/pa-common.c: New files.
13278         * Makefile.in (common_out_file, common_out_object_file,
13279         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
13280         (OBJS-libcommon-target): Include $(common_out_object_file).
13281         (prefix.o): Update dependencies.
13282         ($(common_out_object_file), common/common-target-hooks-def.h,
13283         s-common-target-hooks-def-h): New.
13284         (s-tm-texi): Also check timestamp on common-target.def.
13285         (build/genhooks.o): Update dependencies.
13286         * config.gcc (common_out_file, target_has_targetm_common): Define.
13287         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
13288         TARGET_ALWAYS_STRIP_DOTDOT.
13289         * configure.ac (common_out_object_file): Define.
13290         (common_out_file, common_out_object_file): Substitute.
13291         (common): Create directory.
13292         * configure: Regenerate.
13293         * doc/tm.texi.in (targetm_common): Document.
13294         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
13295         * doc/tm.texi: Regenerate.
13296         * genhooks.c (hook_array): Also include common/common-target.def.
13297         * prefix.c (tm.h): Don't include.
13298         (common/common-target.h): Include.
13299         (ALWAYS_STRIP_DOTDOT): Don't define.
13300         (update_path): Use targetm_common.always_strip_dotdot instead of
13301         ALWAYS_STRIP_DOTDOT.
13302         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
13303
13304 2011-06-14  David Li  <davidxl@google.com>
13305
13306         * passes.c (execute_function_todo): Remove TODO_dump_func.
13307         (execute_one_pass): Remove TODO_dump_func.
13308         (execute_function_dump): New function.
13309         * tree-vrp.c: Remove TODO_dump_func.
13310         * regrename.c: Remove TODO_dump_func.
13311         * fwprop.c: Remove TODO_dump_func.
13312         * tree-into-ssa.c: Remove TODO_dump_func.
13313         * tree-complex.c: Remove TODO_dump_func.
13314         * tracer.c: Remove TODO_dump_func.
13315         * tree-loop-distribution.c: Remove TODO_dump_func.
13316         * postreload-gcse.c: Remove TODO_dump_func.
13317         * postreload.c: Remove TODO_dump_func.
13318         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
13319         * tree-tailcall.c: Remove TODO_dump_func.
13320         * ipa-cp.c: Remove TODO_dump_func.
13321         * final.c: Remove TODO_dump_func.
13322         * tree-emutls.c: Remove TODO_dump_func.
13323         * omp-low.c: Remove TODO_dump_func.
13324         * tree-ssa-dse.c: Remove TODO_dump_func.
13325         * tree-ssa-uncprop.c: Remove TODO_dump_func.
13326         * auto-inc-dec.c: Remove TODO_dump_func.
13327         * reorg.c: Remove TODO_dump_func.
13328         * tree-ssa-copyrename.c: Remove TODO_dump_func.
13329         * tree-ssa-ccp.c: Remove TODO_dump_func.
13330         * compare-elim.c: Remove TODO_dump_func.
13331         * mode-switching.c: Remove TODO_dump_func.
13332         * modulo-sched.c: Remove TODO_dump_func.
13333         * tree-call-cdce.c: Remove TODO_dump_func.
13334         * cse.c: Remove TODO_dump_func.
13335         * web.c: Remove TODO_dump_func.
13336         * tree-stdarg.c: Remove TODO_dump_func.
13337         * lto-streamer-out.c: Remove TODO_dump_func.
13338         * tree-ssa-math-opts.c: Remove TODO_dump_func.
13339         * tree-ssa-dom.c: Remove TODO_dump_func.
13340         * tree-nrv.c: Remove TODO_dump_func.
13341         * loop-init.c: Remove TODO_dump_func.
13342         * gimple-low.c: Remove TODO_dump_func.
13343         * ipa-inline.c: Remove TODO_dump_func.
13344         * tree-ssa-sink.c: Remove TODO_dump_func.
13345         * jump.c: Remove TODO_dump_func.
13346         * ifcvt.c: Remove TODO_dump_func.
13347         * tree-ssa-loop.c: Remove TODO_dump_func.
13348         * recog.c: Remove TODO_dump_func.
13349         * dse.c: Remove TODO_dump_func.
13350         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
13351         * matrix-reorg.c: Remove TODO_dump_func.
13352         * tree-eh.c: Remove TODO_dump_func.
13353         * regmove.c: Remove TODO_dump_func.
13354         * function.c: Remove TODO_dump_func.
13355         * tree-vectorizer.c: Remove TODO_dump_func.
13356         * ipa-split.c: Remove TODO_dump_func.
13357         * gcse.c: Remove TODO_dump_func.
13358         * tree-if-conv.c: Remove TODO_dump_func.
13359         * init-regs.c: Remove TODO_dump_func.
13360         * tree-ssa-phiopt.c: Remove TODO_dump_func.
13361         * implicit-zee.c: Remove TODO_dump_func.
13362         * lower-subreg.c: Remove TODO_dump_func.
13363         * bt-load.c: Remove TODO_dump_func.
13364         * tree-dfa.c: Remove TODO_dump_func.
13365         * except.c: Remove TODO_dump_func.
13366         * emit-rtl.c: Remove TODO_dump_func.
13367         * store-motion.c: Remove TODO_dump_func.
13368         * cfgexpand.c: Remove TODO_dump_func.
13369         * tree-cfgcleanup.c: Remove TODO_dump_func.
13370         * cfgcleanup.c: Remove TODO_dump_func.
13371         * tree-ssa-pre.c: Remove TODO_dump_func.
13372         * tree-sra.c: Remove TODO_dump_func.
13373         * tree-mudflap.c: Remove TODO_dump_func.
13374         * tree-ssa-copy.c: Remove TODO_dump_func.
13375         * cfglayout.c: Remove TODO_dump_func.
13376         * tree-ssa-forwprop.c: Remove TODO_dump_func.
13377         * tree-ssa-dce.c: Remove TODO_dump_func.
13378         * ira.c: Remove TODO_dump_func.
13379         * tree-ssa.c: Remove TODO_dump_func.
13380         * integrate.c: Remove TODO_dump_func.
13381         * tree-optimize.c: Remove TODO_dump_func.
13382         * tree-ssa-phiprop.c: Remove TODO_dump_func.
13383         * tree-object-size.c: Remove TODO_dump_func.
13384         * combine.c: Remove TODO_dump_func.
13385         * bb-reorder.c: Remove TODO_dump_func.
13386         * cprop.c: Remove TODO_dump_func.
13387         * var-tracking.c: Remove TODO_dump_func.
13388         * tree-profile.c: Remove TODO_dump_func.
13389         * tree-vect-generic.c: Remove TODO_dump_func.
13390         * reg-stack.c: Remove TODO_dump_func.
13391         * sched-rgn.c: Remove TODO_dump_func.
13392         * tree-ssa-structalias.c: Remove TODO_dump_func.
13393         * tree-switch-conversion.c: Remove TODO_dump_func.
13394         * tree-cfg.c: Remove TODO_dump_func.
13395         * tree-ssa-reassoc.c: Remove TODO_dump_func.
13396         * combine-stack-adj.c: Remove TODO_dump_func.
13397         * dce.c: Remove TODO_dump_func.
13398         * tree-ssanames.c: Remove TODO_dump_func.
13399         * regcprop.c: Remove TODO_dump_func.
13400
13401 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
13402
13403         PR middle-end/47364
13404         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
13405         and properly handle result not in Pmode.
13406
13407 2011-06-14  Robert Millan  <rmh@gnu.org>
13408
13409         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
13410         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
13411         `config/linux.h'.
13412
13413         * config/i386/kfreebsd-gnu64.h: New file.
13414         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
13415         with `i386/kfreebsd-gnu64.h'.
13416
13417         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
13418         (GNU_USER_LINK_EMULATION64): New macros.
13419         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
13420         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
13421         of hardcoding `elf_i386' and `elf_x86_64'.
13422
13423 2011-06-14  Nick Clifton  <nickc@redhat.com>
13424
13425         PR target/49403
13426         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
13427
13428         PR target/49402
13429         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
13430
13431 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
13432
13433         PR fortran/49103
13434         * tree.h (DECL_NONSHAREABLE): Define.
13435         (struct tree_decl_common): Change decl_common_unused to
13436         decl_nonshareable_flag.
13437         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
13438         Ignore vars with DECL_NONSHAREABLE bit set.
13439         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
13440         on stores to automatic aggregate vars.
13441
13442         PR rtl-optimization/49390
13443         Revert:
13444         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
13445
13446         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
13447         MEM_ALIAS_SET.
13448
13449 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
13450             Tom de Vries  <tom@codesourcery.com>
13451
13452         PR target/45098
13453         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
13454         Document changed semantics.
13455         (max_stmt_executions, max_stmt_executions_int): Declare.
13456         * tree-data-ref.c (estimated_loop_iterations)
13457         (estimated_loop_iterations_int): Move functions...
13458         * tree-ssa-loop-niter.c (estimated_loop_iterations)
13459         (estimated_loop_iterations_int): here.
13460         (record_estimate): Change nb_iterations_upper_bound and
13461         nb_iterations_estimate semantics.
13462         (max_stmt_executions, max_stmt_executions_int): New function.
13463         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
13464         (max_stmt_executions_tree): this.
13465         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
13466         estimated_loop_iterations_tree.
13467         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
13468         max_stmt_executions_int instead of estimated_loop_iterations_int.
13469         * predict.c (predict_loops): Idem.
13470         * tree-parloops.c (parallelize_loops): Idem.
13471         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
13472         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
13473         (init_omega_for_ddr_1): Idem.
13474         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
13475         (loop_prefetch_arrays): Idem
13476         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
13477         max_stmt_executions instead of estimated_loop_iterations.
13478         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
13479         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
13480         instead of nb_iterations_upper_bound.
13481
13482 2011-06-13  Jan Hubicka  <jh@suse.cz>
13483
13484         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
13485
13486 2011-06-14  Richard Henderson  <rth@redhat.com>
13487
13488         PR debug/48459
13489         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
13490         (based_loc_descr): Assert it's true.
13491         (compute_frame_pointer_to_fb_displacement): Set it, rather than
13492         aborting immediately.
13493
13494 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
13495             Mingfeng Wu  <mingfeng@faraday-tech.com>
13496
13497         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
13498
13499 2011-06-13  Jan Hubicka  <jh@suse.cz>
13500
13501         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
13502
13503 2011-06-13  Jan Hubicka  <jh@suse.cz>
13504
13505         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
13506         similarly to DECL_COMDAT.
13507         * cgraphunit.c (cgraph_analyze_function): Likewise.
13508         * ipa.c (function_and_variable_visibility): Likewise.
13509
13510 2011-06-13  Jan Hubicka  <jh@suse.cz>
13511
13512         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
13513         BINFO_VIRTUALS when streaming for ltrans unit.
13514
13515 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
13516
13517         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
13518         (movdi_internal64): Same.
13519
13520 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
13521
13522         PR target/44618
13523         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
13524         a set of similar patterns, where the MATCH_OPERAND for the function
13525         argument is replaced with individual references to hardware registers.
13526         (save_fpregs_<mode>): Ditto
13527         (restore_gpregs_<mode>): Ditto
13528         (return_and_restore_gpregs_<mode>): Ditto
13529         (return_and_restore_fpregs_<mode>): Ditto
13530         (return_and_restore_fpregs_aix_<mode>): Ditto
13531
13532 2011-06-13  Jan Hubicka  <jh@suse.cz>
13533
13534         * ipa-utils.c (postorder_stack): New structure.
13535         (ipa_reverse_postorder): Handle aliases.
13536
13537 2011-06-13  Jan Hubicka  <jh@suse.cz>
13538
13539         * ipa-inline.c (reset_edge_caches): Walk aliases.
13540         (update_caller_keys): Do not test inlinability of aliases.
13541         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
13542         (do_estimate_growth): Fix typo.
13543
13544 2011-06-13  Jan Hubicka  <jh@suse.cz>
13545
13546         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
13547         (can_remove_node_now_p): ... here; handle same comdat groups.
13548         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
13549         (inline_call): Update use of can_remove_node_now_p.
13550
13551 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13552
13553         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
13554         condition to disallow non-identical memory locations.
13555         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
13556         preference to bit manipulation instructions.
13557
13558 2011-06-13  Jan Hubicka  <jh@suse.cz>
13559
13560         * cgraph.c (cgraph_for_node_thunks_and_aliases,
13561         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
13562         (nonremovable_p): New function.
13563         (cgraph_can_remove_if_no_direct_calls_p): New function.
13564         (used_from_object_file_p): New functoin.
13565         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
13566         references from aliases.
13567         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
13568         * ipa-inline.c (check_caller_edge): New function.
13569         (want_inline_function_called_once_p): Use it; accept aliases called
13570         once, too.
13571         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
13572
13573 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13574
13575         PR target/48454
13576         * config/arm/neon.md (vec_pack_trunc): Set the lengths
13577         correctly for the case with Quad vectors.
13578
13579 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
13580            Ira Rosen  <ira.rosen@linaro.org>
13581
13582         PR tree-optimization/49352
13583         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
13584         all, make sure loop_use_stmt after the loop is a def stmt of a used
13585         SSA_NAME that is the only one defined inside of the loop.  Don't
13586         check for COND_EXPR and GIMPLE_BINARY_RHS.
13587         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
13588         check_reduction is true.
13589
13590 2011-06-11  Jan Hubicka  <jh@suse.cz>
13591
13592         PR middle-end/49373
13593         * ipa.c (cgraph_externally_visible_p): Check resolution info.
13594
13595 2011-06-11  Jan Hubicka  <jh@suse.cz>
13596
13597         PR middle-end/48836
13598         * ipa-inline-transform.c: Include tree-pass.h
13599         (inline_transform): Set TODO_update_ssa_only_virtuals.
13600         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
13601
13602 2011-06-11  Jan Hubicka  <jh@suse.cz>
13603
13604         PR middle-end/49378
13605         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
13606         aliases and thunks.
13607
13608 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
13609
13610         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
13611         Take number of iterations to peel into account for equally frequent
13612         misalignment values.
13613
13614 2011-06-11  Jan Hubicka  <jh@suse.cz>
13615
13616         * lto-streamer-out.c (produce_symtab): Stream out the newly
13617         represented aliases.
13618
13619 2011-06-11  Jan Hubicka  <jh@suse.cz>
13620
13621         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
13622         varying args.
13623         (ipa_update_after_lto_read): Likewise.
13624         (ipa_write_node_info): Do not sream call_with_var_arguments.
13625         (ipa_read_node_info): Likewise.
13626
13627 2011-06-11  Jan Hubicka  <jh@suse.cz>
13628
13629         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
13630
13631 2011-06-11  Jan Hubicka  <jh@suse.cz>
13632
13633         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
13634         (lto_symtab_resolve_can_prevail_p): Likewise.
13635         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
13636         * cgraph.c (same_body_aliases_done): New global var.
13637         (cgraph_same_body_alias_1): Rename to ...
13638         (cgraph_create_function_alias): ... this one; reorg to new
13639         representation.
13640         (cgraph_same_body_alias): Use cgraph_create_function_alias;
13641         record references when asked to.
13642         (cgraph_add_thunk): Fix formating.
13643         (cgraph_get_node): Kill same body alias code.
13644         (cgraph_node_for_asm): Likewise.
13645         (cgraph_remove_same_body_alias): Remove.
13646         (cgraph_remove_node): Kill same body alias code.
13647         (cgraph_mark_address_taken_node): Mark also the aliased function
13648         as having address taken.
13649         (dump_cgraph_node): Dump same body aliases.
13650         (cgraph_for_node_thunks_and_aliases): Update for new alias
13651         representation.
13652         (cgraph_for_node_and_aliases): Likewise.
13653         * cgraph.h (same_body): Kll pointer.
13654         (same_body_alias): Update comment.
13655         (same_body_aliases_done): Declare.
13656         (cgraph_remove_same_body_alias): Remove declaration.
13657         (cgraph_create_function_alias): Declare.
13658         (cgraph_process_same_body_aliases): Declare.
13659         (cgraph_function_with_gimple_body_p): Check for alias.
13660         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
13661         (cgraph_alias_aliased_node): New function.
13662         (cgraph_function_node): Update for new aliases.
13663         (cgraph_function_or_thunk_node): Likewise.
13664         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
13665         (inline_call): Remove dead aliases.
13666         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
13667         name hack for same body aliases.
13668         (clone_of_p): Look through aliases.
13669         (verify_cgraph_node): Verify aliases.
13670         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
13671         (cgraph_process_same_body_aliases): New function.
13672         (process_function_and_variable_attributes): Disable weakref warning on
13673         alias.
13674         (cgraph_analyze_functions): Handle aliases.
13675         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
13676         (assemble_thunks): Rename to ...
13677         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
13678         (cgraph_expand_function): Remove alias output code.
13679         (cgraph_output_in_order): Skip aliases.
13680         (cgraph_preserve_function_body_p): Aliases don't need preserving.
13681         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
13682         (ipa_record_reference): Do not assert on alias references.
13683         (ipa_ref_has_aliases_p): New function.
13684         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
13685         (ipa_ref_has_aliases_p): Declare.
13686         * lto-cgraph.c (lto_output_node): Handle aliases.
13687         (input_node): Likewise.
13688         * lto-streamer-out.c (lto_output): Skip aliases.
13689         (produce_symtab): Kill same_body_alias code.
13690         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
13691         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
13692         * ipa-inline.c (update_caller_keys): Walk aliases.
13693         (inline_small_functions): Fix thinko in previous patch.
13694         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
13695         (function_and_variable_visibility): Do not walk same body aliases.
13696         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
13697         (ipa_pta_execute): Use it.
13698
13699 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13700
13701         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
13702         (*vec_dupv2df): Rename from vec_dupv2df.
13703         (vec_dupv2df): New expander.
13704
13705 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13706
13707         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
13708
13709 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13710
13711         * config/i386/i386.md: Use default value in "isa" attribute.
13712         * config/i386/sse.md: Ditto.
13713         * config/i386/mmx.md: Ditto.
13714
13715 2011-06-10  Wei Guozhi  <carrot@google.com>
13716
13717         PR target/45335
13718         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13719         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13720         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13721         related peephole2.
13722         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13723         related peephole2.
13724         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13725         (arm_legitimate_ldrd_p): New prototype.
13726         (arm_output_ldrd): New prototype.
13727         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13728         (arm_legitimate_ldrd_p): New function.
13729         (arm_output_ldrd): New function.
13730
13731 2011-06-10  David Li  <davidxl@google.com>
13732
13733         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13734         * passes.c (passr_eq): New function.
13735         (create_pass_tab): New function.
13736         (pass_traverse): New function.
13737         (dump_one_pass): New function.
13738         (dump_pass_list): New function.
13739         (dump_passes): New function.
13740
13741 2011-06-10  Jan Hubicka  <jh@suse.cz>
13742
13743         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
13744         setting the nothrow flag.
13745         * ipa-reference.c (propagate): Skip aliases.
13746         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
13747         (propagate_nothrow): Skip aliases; do not update cgraph.
13748         (local_pure_const): Do not update cgraph.
13749         * tree-profile.c (tree_profiling): Do fixup_cfg.
13750
13751 2011-06-10  Jan Hubicka  <jh@suse.cz>
13752
13753         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
13754         (cgraph_local_node_p): ... here; handle aliases.
13755         (has_addr_references_p): Break out from ...;
13756         (cgraph_remove_unreachable_nodes) ... here.
13757
13758 2011-06-10  Jan Hubicka  <jh@suse.cz>
13759
13760         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
13761         * common.opt (flag_inline_functions_called_once): Do not
13762         initialize to 1.
13763
13764 2011-06-10  Jan Hubicka  <jh@suse.cz>
13765
13766         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
13767         (ipcp_initialize_node_lattices): Do not deal with aliases;
13768         Do not try to propagate through thunks.
13769         (ipcp_change_tops_to_bottom): Do not deal with aliases.
13770
13771 2011-06-10  Jan Hubicka  <jh@suse.cz>
13772
13773         * ipa-prop.c (ipa_write_node_info): Stream jump functions
13774         for indirect calls.
13775         (ipa_read_node_info): Likewise.
13776
13777 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13778
13779         PR lto/49302
13780         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
13781         (build_and_insert_call): Likewise.
13782         (build_and_insert_ref): New.
13783         (gimple_expand_builtin_pow): Minor cleanup.
13784         (gimple_expand_builtin_cabs): New.
13785         (execute_cse_sincos): Add case for BUILT_IN_CABS.
13786
13787 2011-06-10  Jan Hubicka  <jh@suse.cz>
13788
13789         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
13790         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
13791         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
13792         (ipcp_propagate_stage): Skip aliases when propagating.
13793         (ipcp_need_redirect_p): Skip aliases.
13794         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
13795         collect_callers_of_node.
13796         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
13797         for aliases.
13798         (ipa_compute_jump_functions): Look through aliases.
13799
13800 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13801
13802         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
13803
13804 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13805
13806         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
13807         Adjust comments.
13808         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
13809
13810 2011-06-10  Jan Hubicka  <jh@suse.cz>
13811
13812         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
13813         Update call of gimple_get_virt_method_for_binfo.
13814         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
13815         refuse_thunks parameter.
13816         (gimple_fold_call): Update.
13817         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
13818
13819 2011-06-10  Jan Hubicka  <jh@suse.cz>
13820
13821         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
13822         (not_all_callers_have_enough_arguments_p): ... this one; turn into
13823         worker for cgraph_for_node_and_aliases.
13824         (convert_callers_for_node): Break out from ...
13825         (convert_callers): ... here.
13826         (modify_function): Use collect_callers_of_node.
13827         (ipa_early_sra): Use cgraph_for_node_and_aliases.
13828
13829 2011-06-10  Richard Guenther  <rguenther@suse.de>
13830
13831         PR tree-optimization/49361
13832         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
13833         when not already in gimple form.
13834
13835 2011-06-10  Richard Guenther  <rguenther@suse.de>
13836
13837         PR bootstrap/49344
13838         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
13839         FOR_EACH_PHI_OR_STMT_USE.
13840
13841 2011-06-10  Jan Hubicka  <jh@suse.cz>
13842
13843         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
13844         (clone_inlined_nodes): ... here.
13845         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
13846         to real destination prior inlining.
13847         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
13848         can_early_inline_edge_p, want_early_inline_function_p,
13849         want_early_inline_function_p, want_inline_small_function_p,
13850         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
13851         edge_badness, update_all_callee_keys, lookup_recursive_calls,
13852         add_new_edges_to_heap, inline_small_functions, flatten_function,
13853         inline_always_inline_functions, early_inline_small_functions): Use
13854         cgraph_function_or_thunk_node.
13855         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
13856         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
13857         (do_estimate_edge_growth_1): Break out from ...
13858         (do_estimate_growth) ... here; walk aliases.
13859         (inline_generate_summary): Skip aliases.
13860
13861 2011-06-10  Richard Guenther  <rguenther@suse.de>
13862
13863         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
13864         forward when combining, visit inserted stmts when a stmt was changed.
13865
13866 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
13867
13868         * tree.h (error_operand_p): Add.
13869         * dbxout.c (dbxout_type_fields): Use the latter.
13870         * c-decl.c (add_stmt): Likewise.
13871         * gimplify.c (omp_add_variable, omp_notice_variable,
13872         gimplify_scan_omp_clauses): Likewise.
13873
13874 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
13875
13876         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
13877         when a value is actually passed in regs.
13878
13879 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
13880             Laurent Rougé  <laurent.rouge@menta.fr>
13881
13882         * doc/invoke.texi (SPARC options): Add -mflat.
13883         * config/sparc/sparc.opt: Likewise.
13884         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
13885         (sparc_flat_expand_prologue): Declare.
13886         (sparc_flat_expand_epilogue): Likewise.
13887         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
13888         (CPP_ENDIAN_SPEC): Replace with...
13889         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
13890         (CPP_SPEC): Adjust to above change.
13891         (EXTRA_SPECS): Likewise.
13892         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
13893         (INCOMING_REGNO): Likewise.
13894         (OUTGOING_REGNO): Likewise.
13895         (LOCAL_REGNO): Likewise.
13896         (SETUP_FRAME_ADDRESSES): Likewise.
13897         (FIXED_REGISTERS): Set 0 for %fp.
13898         (CALL_USED_REGISTERS): Likewise.
13899         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
13900         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
13901         (RETURN_ADDR_REGNUM): Define.
13902         (RETURN_ADDR_RTX): Use it.
13903         (INCOMING_RETURN_ADDR_REGNUM): Define.
13904         (INCOMING_RETURN_ADDR_RTX): Use it.
13905         (DWARF_FRAME_RETURN_COLUMN): Likewise.
13906         (EH_RETURN_REGNUM): Define.
13907         (EH_RETURN_STACKADJ_RTX): Use it.
13908         (EH_RETURN_HANDLER_RTX): Delete.
13909         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
13910         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
13911         Delete.
13912         (struct machine_function): Add frame_size, apparent_frame_size,
13913         frame_base_reg, frame_base_offset, n_global_fp_regs and
13914         save_local_in_regs_p fields.
13915         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
13916         sparc_frame_base_offset, sparc_n_global_fp_regs,
13917         sparc_save_local_in_regs_p): New macros.
13918         (sparc_option_override): Error out if -fcall-saved-REG is specified
13919         for Out registers.
13920         (eligible_for_restore_insn): Fix formatting.
13921         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
13922         (eligible_for_sibcall_delay): Likewise.
13923         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
13924         (sparc_legitimate_address_p): Adjust to above change.
13925         (save_global_or_fp_reg_p): New predicate.
13926         (return_addr_reg_needed_p): Likewise.
13927         (save_local_or_in_reg_p): Likewise.
13928         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
13929         (SORR_SAVE, SORR_RESTORE): Delete.
13930         (sorr_pred_t): New typedef.
13931         (sorr_act_t): New enum.
13932         (save_or_restore_regs): Rename to...
13933         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
13934         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
13935         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
13936         mechanism.  Add CFI information for double-word saves in 32-bit mode.
13937         (emit_adjust_base_to_offset): New function extracted from...
13938         (emit_save_or_restore_regs): ...this.  Rename the rest to...
13939         (emit_save_or_restore_regs_global_fp_regs): ...this.
13940         (emit_save_or_restore_regs_local_in_regs): New function.
13941         (gen_create_flat_frame_[123]): New functions.
13942         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
13943         (sparc_flat_expand_prologue): New function.
13944         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
13945         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
13946         (sparc_flat_expand_epilogue): New function.
13947         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
13948         (output_return): Likewise.
13949         (output_sibcall): Likewise.
13950         (sparc_output_mi_thunk): Likewise.
13951         (sparc_frame_pointer_required): Likewise.
13952         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
13953         function optimization.
13954         * config/sparc/sparc.md (flat): New attribute.
13955         (prologue): Add TARGET_FLAT handling.
13956         (save_register_window): Disable if TARGET_FLAT.
13957         (create_flat_frame_[123]): New patterns.
13958         (epilogue): Add TARGET_FLAT handling.
13959         (sibcall_epilogue): Likewise.
13960         (eh_return): New expander.
13961         (eh_return_internal): New insn and splitter.
13962         (return_internal): Add TARGET_FLAT handling.
13963         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
13964         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
13965         (nonlocal_goto): Add TARGET_FLAT handling.
13966         * config/sparc/t-elf: Add -mflat multilib.
13967         * config/sparc/t-leon: Likewise.
13968
13969 2011-06-10  Jan Hubicka  <jh@suse.cz>
13970
13971         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
13972         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
13973         (self_recursive_p): Use cgraph_function_node.
13974         (propagate_pure_const): Likewise.
13975         (propagate_nothrow): Likewise.
13976         * ipa-reference.c (ipa_reference_get_not_read_global): Use
13977         cgraph_function_node.
13978         (propagate_bits): Likewise.
13979         (propagate): Likewise.
13980
13981 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13982             Richard Earnshaw  <rearnsha@arm.com>
13983
13984         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
13985         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
13986         (*thumb2_movdi_vfp): Delete.
13987         (*arm_movdi_vfp_cortexa8): Delete.
13988         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
13989         (*movdi_vfp_cortexa8): Likewise.
13990
13991 2011-06-10  Richard Guenther  <rguenther@suse.de>
13992
13993         * stor-layout.c (initialize_sizetypes): Give names to all
13994         sizetype kinds.
13995
13996 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
13997
13998         PR tree-optimization/49318
13999         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
14000         irrelevant pattern statements.
14001
14002 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14003
14004         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
14005
14006         PR bootstrap/49354
14007         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
14008         to last assignment.
14009
14010 2011-06-09  Jan Hubicka  <jh@suse.cz>
14011
14012         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
14013         do not recompute reachable flag.
14014         (cgraph_finalize_function, cgraph_analyze_functions): Set
14015         redefined_extern_inline here.
14016
14017 2011-06-09  Jan Hubicka  <jh@suse.cz>
14018
14019         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
14020         (cgraph_only_called_directly_p): ... this one; bring offline.
14021         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
14022         varpool_used_from_object_file_p): Drop names from the declaratoin.
14023         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
14024         collect_callers_of_node): New.
14025         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
14026         (cgraph_edge_recursive_p): Use cgraph_function_node.
14027         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
14028         (cgraph_node_cannot_be_local_p_1): Break out from ...
14029         (cgraph_node_can_be_local_p): ... here; walk aliases.
14030         (cgraph_for_node_thunks_and_aliases): New function.
14031         (cgraph_for_node_and_aliases): New function.
14032         (cgraph_make_node_local_1): Break out from ...
14033         (cgraph_make_node_local) ... here; use
14034         cgraph_for_node_thunks_and_aliases.
14035         (cgraph_set_nothrow_flag_1): Break out from ...
14036         (cgraph_set_nothrow_flag) ... here;
14037         use cgraph_for_node_thunks_and_aliases.
14038         (cgraph_set_const_flag_1): Break out from ...
14039         (cgraph_set_const_flag) ... here;
14040         use cgraph_for_node_thunks_and_aliases.
14041         (cgraph_set_pure_flag_1): Break out from ...
14042         (cgraph_set_pure_flag) ... here;
14043         use cgraph_for_node_thunks_and_aliases.
14044         (cgraph_propagate_frequency_1): Break out from ...
14045         (cgraph_propagate_frequency) ... here; use
14046         cgraph_for_node_thunks_and_aliases.
14047         (cgraph_used_from_object_file_p): Do not care about aliases.
14048         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
14049         New functions.
14050         (collect_callers_of_node_1, collect_callers_of_node): New functions.
14051
14052 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14053
14054         PR rtl-optimization/49154
14055         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
14056         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
14057         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
14058         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
14059         * config/cris/cris.h (cris_register_move_cost): Remove
14060         !TARGET_V32 code.  Tweak comments.
14061
14062 2011-06-09  Jan Hubicka  <jh@suse.cz>
14063
14064         * cgraphbuild.c (record_eh_tables): Mark personality function as having
14065         address taken.
14066
14067 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14068
14069         PR rtl-optimization/49154
14070         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
14071         is a matching slot in the hashtable, assign it to classes_ptr.
14072
14073         PR rtl-optimization/49154
14074         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
14075         register classes.
14076         * doc/tm.texi: Regenerate.
14077
14078 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14079
14080         PR target/49307
14081         * config/sh/sh.md (UNSPEC_CHKADD): New.
14082         (chk_guard_add): New define_insn_and_split.
14083         (symGOT_load): Use chk_guard_add instead of blockage.
14084
14085 2011-06-09  Kai Tietz  <ktietz@redhat.com>
14086
14087         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
14088
14089 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
14090
14091         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
14092
14093 2011-06-09  Wei Guozhi  <carrot@google.com>
14094
14095         PR target/46975
14096         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
14097         (peephole2 for conditional move): Generate 16 bit instructions.
14098
14099 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
14100
14101         * config/i386/i386.md (*movdi_internal_rex64): Merge
14102         alternatives 6 and 8.
14103
14104 2011-06-09  David Li  <davidxl@google.com>
14105
14106         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
14107         * passes.c (passr_eq): New function.
14108         (create_pass_tab): New function.
14109         (pass_traverse): New function.
14110         (dump_one_pass): New function.
14111         (dump_pass_list): New function.
14112         (dump_passes): New function.
14113
14114 2011-06-09  David Li  <davidxl@google.com>
14115
14116         * tree-complex.c (tree_lower_complex): Gate cleanup.
14117         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
14118         (execute_optimize_stdarg): Ditto.
14119         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
14120         (execute_cleanup_eh_1): Ditto.
14121         (execute_cleanup_eh): Ditto.
14122         * gcse.c (gate_rtl_pre): Ditto.
14123         (execute_rtl_pre): Ditto.
14124         * except.c (finish_eh_generation): Ditto.
14125         (convert_to_eh_region_ranges): Ditto.
14126         * cprop.c (one_cprop_pass): Ditto.
14127
14128 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
14129
14130         PR target/48673
14131         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
14132         in all basic blocks.
14133
14134 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14135
14136         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
14137         (HAVE_ENABLE_EXECUTE_STACK): Define.
14138         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
14139         (HAVE_ENABLE_EXECUTE_STACK): Define.
14140         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
14141         (HAVE_ENABLE_EXECUTE_STACK): Define.
14142         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
14143         (ENABLE_EXECUTE_STACK): Remove.
14144         (HAVE_ENABLE_EXECUTE_STACK): Define.
14145         [IN_LIBGCC2]: Don't include <windows.h>.
14146         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14147         (HAVE_ENABLE_EXECUTE_STACK): Define.
14148         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
14149         (HAVE_ENABLE_EXECUTE_STACK): Define.
14150         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
14151         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
14152         (HAVE_ENABLE_EXECUTE_STACK): Define.
14153         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
14154         (HAVE_ENABLE_EXECUTE_STACK): Define.
14155         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
14156         (HAVE_ENABLE_EXECUTE_STACK): Define.
14157         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14158         (HAVE_ENABLE_EXECUTE_STACK): Define.
14159         * config/alpha/alpha.c (alpha_trampoline_init): Test
14160         HAVE_ENABLE_EXECUTE_STACK.
14161         * config/i386/i386.c (ix86_trampoline_init): Likewise.
14162         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
14163         (sparc64_initialize_trampoline): Likewise.
14164         * libgcc2.c [L_enable_execute_stack]: Remove.
14165         * system.h (ENABLE_EXECUTE_STACK): Poison.
14166         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
14167         * doc/tm.texi: Regenerate.
14168         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
14169
14170 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR middle-end/49308
14173         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
14174         variable.  After resetting and rescanning insn continue with previous
14175         statement.
14176
14177 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14178
14179         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
14180         (gcc_cv_ld_hidden): Likewise.
14181         * configure: Regenerate.
14182         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
14183         (ix86_stack_protect_fail): Mark unused.
14184         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
14185         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
14186         [TARGET_MACHO]: Don't define.
14187         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
14188         (TARGET_STACK_PROTECT_FAIL): Likewise.
14189         (rs6000_stack_protect_fail): Mark unused.
14190         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
14191         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
14192
14193 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14194
14195         * varasm.c (get_section): Print location of other conflict
14196         for section conflicts.
14197
14198 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14199
14200         * config/i386/driver-i386.c (host_detect_local_cpu):
14201         Add model 0x2d Intel CPU.
14202
14203 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14204
14205         * reginfo.c (global_regs_decl): Add.
14206         (globalize_reg): Add decl parameter. Compute location.  Pass location
14207         to warnings and add inform. Store decl in global_regs_decl.
14208         * rtl.h (globalize_reg): Update prototype.
14209         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
14210
14211 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
14212
14213         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
14214
14215 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14216
14217         PR target/49305
14218         * config/sh/predicates.md (general_movsrc_operand): Check
14219         mode for memory with indexed address for QI and HImode.
14220         (general_movdst_operand): Likewise.
14221
14222 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14223
14224         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
14225
14226 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
14227
14228         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
14229         (num_ssa_operands): Likewise.
14230         (op_iter_init_phiuse): Forward-declare.
14231         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
14232
14233 2011-06-08  Nick Clifton  <nickc@redhat.com>
14234
14235         * doc/invoke.texi (ARM Options): Update description of
14236         -mthumb-interwork.
14237
14238 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
14239
14240         * config/i386/driver-i386.c (host_detect_local_cpu): Support
14241         unknown Intel family 0x6 CPUs.
14242
14243 2011-06-08  Martin Jambor  <mjambor@suse.cz>
14244
14245         * tree-sra.c (mark_rw_status): Removed.
14246         (analyze_access_subtree): New parameter parent instead of
14247         mark_read and mark_write, propagate from that.
14248
14249 2011-06-08  Julian Brown  <julian@codesourcery.com>
14250
14251         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
14252         for double-precision helper functions in hard-float mode if only
14253         single-precision arithmetic is supported in hardware.
14254
14255 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
14256
14257         PR rtl-optimization/49303
14258         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
14259         code_motion_path_driver returned 0 or 1.
14260         (sel_region_finish): Clear h_d_i_d.
14261
14262 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14263
14264         * config/sh/sh.c (prepare_move_operands): Set pic register
14265         appropriately for global and local dynamic tls models even
14266         if flag_pic is unset.
14267
14268 2011-06-07  Jason Merrill  <jason@redhat.com>
14269
14270         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
14271
14272 2011-06-07  Xinliang David Li  <davidxl@google.com>
14273         * passes.c (enable_disable_pass): Handle assembler name.
14274         (is_pass_explicitly_enabled_or_disabled): Ditto.
14275
14276 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14277
14278         PR tree-optimization/48497
14279         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
14280
14281 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14282
14283         PR tree-optimization/46728
14284         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
14285         to use gimple_val_nonnegative_real_p.
14286         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
14287         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
14288
14289 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
14290
14291         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
14292
14293 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
14294
14295         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
14296         constant vectors.
14297
14298 2011-06-07  Richard Guenther  <rguenther@suse.de>
14299
14300         * stor-layout.c (initialize_sizetypes): Initialize all
14301         sizetypes based on target definitions.
14302         (set_sizetype): Remove.
14303         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
14304         * tree.h (set_sizetype): Remove.
14305
14306 2011-06-07  Nick Clifton  <nickc@redhat.com>
14307
14308         * config.gcc: Unify V850 architecture options and add support for
14309         newer V850 architectures.
14310         * config/v850/t-v850e: Delete.
14311
14312 2011-06-07  Richard Guenther  <rguenther@suse.de>
14313
14314         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
14315         Call set_sizetype from here.
14316
14317 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
14318
14319         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
14320         (*maddhisi4tb, *maddhisi4tt): New define_insns.
14321
14322 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
14323             Andrew Stubbs  <ams@codesourcery.com>
14324
14325         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
14326         multiplies.
14327         * doc/md.texi (Canonicalization of Instructions): Document widening
14328         multiply canonicalization.
14329
14330 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
14331
14332         PR gcov-profile/49299
14333         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
14334
14335 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
14336
14337         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
14338         a pointer.
14339         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
14340         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
14341         vect_recog_pow_pattern): Likewise.
14342         (vect_pattern_recog_1): Remove declaration.
14343         (widened_name_p): Remove declaration.  Add new argument to specify
14344         whether to check that both types are either signed or unsigned.
14345         (vect_recog_widen_mult_pattern): Update documentation.  Handle
14346         unsigned patterns and multiplication by constants.
14347         (vect_pattern_recog_1): Update vect_recog_func references.  Use
14348         statement information from the statement returned from pattern
14349         detection functions.
14350         (vect_pattern_recog): Update vect_recog_func reference.
14351         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
14352         multiplication by a constant use the type of the other operand.
14353
14354 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
14355
14356         PR rtl-optimization/49145
14357         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
14358
14359 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
14360
14361         PR debug/49262
14362         * dwarf2out.c (native_encode_initializer): Decrement count in each
14363         iteration.
14364
14365         PR debug/49294
14366         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
14367         non-MODE_INT modes.
14368
14369         PR c++/49264
14370         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
14371         if stmt folded into nothing.
14372         * tree-inline.c (fold_marked_statements): If a builtin at the end of
14373         a bb folded into nothing, just update cgraph edges and move to next bb.
14374         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
14375         to be NULL.  Don't compute count and frequency if new_call is NULL.
14376
14377 2011-06-04  Diego Novillo  <dnovillo@google.com>
14378
14379         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
14380         (cgraph.o): Likewise.
14381         (cgraphunit.o): Likewise.
14382         * cgraphunit.c: Include lto-streamer.h
14383         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
14384         if LTO is enabled.
14385         * lto-streamer-in.c (unpack_value_fields): Call
14386         streamer_hooks.unpack_value_fields if set.
14387         (lto_materialize_tree): For unhandled nodes, first try to
14388         call lto_streamer_hooks.alloc_tree, if it exists.
14389         (lto_input_ts_decl_common_tree_pointers): Move reading of
14390         DECL_INITIAL to lto_streamer_read_tree.
14391         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
14392         (lto_streamer_read_tree): New.
14393         (lto_reader_init): Rename from lto_init_reader.
14394         Move initialization code to lto/lto.c.
14395         * lto-streamer-out.c (pack_value_fields): Call
14396         streamer_hooks.pack_value_fields if set.
14397         (lto_output_tree_ref): For tree nodes that are not normally indexable,
14398         call streamer_hooks.indexable_with_decls_p before giving up.
14399         (lto_output_ts_decl_common_tree_pointers): Move handling
14400         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
14401         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
14402         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
14403         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
14404         (lto_streamer_write_tree): New.
14405         (lto_output): Call lto_streamer_init directly.
14406         (lto_writer_init): Remove.
14407         * lto-streamer.c (streamer_hooks): New.
14408         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
14409         instead of lto_preload_common_nodes.
14410         (lto_is_streamable): Move from lto-streamer.h
14411         (lto_streamer_hooks_init): New.
14412         (streamer_hooks): New.
14413         (streamer_hooks_init): New.
14414         * lto-streamer.h (struct output_block): Forward declare.
14415         (struct lto_input_block): Likewise.
14416         (struct data_in): Likewise.
14417         (struct bitpack_d): Likewise.
14418         (struct streamer_hooks): Declare.
14419         (streamer_hooks): Declare.
14420         (lto_streamer_hooks_init): Declare.
14421         (lto_streamer_write_tree): Declare.
14422         (lto_streamer_read_tree): Declare.
14423         (streamer_hooks_init): Declare.
14424         (lto_is_streamable): Move to lto-streamer.c
14425
14426 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14427
14428         * longlong.h (smul_ppmm): The resulting register pair contains the
14429         higher order word first.
14430
14431 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14432
14433         PR tree-optimization/46728
14434         * builtins.c (powi_table): Remove.
14435         (powi_lookup_cost): Remove.
14436         (powi_cost): Remove.
14437         (expand_powi_1): Remove.
14438         (expand_powi): Remove.
14439         (expand_builtin_pow_root): Remove.
14440         (expand_builtin_pow): Remove.
14441         (expand_builtin_powi): Eliminate handling of constant exponent.
14442         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
14443
14444 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14445
14446         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
14447
14448 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14449
14450         * dce.c (reset_unmarked_insns_debug_uses): New.
14451         (delete_unmarked_insns): Skip debug insns.
14452         (prescan_insns_for_dce): Likewise.
14453         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
14454         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
14455         active reg can be found.
14456         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
14457         (convert_regs_1): Use it.
14458
14459 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14460
14461         * tree-pretty-print.c (dump_function_header): Add flags.
14462         Don't dump decl_uid with nouid.
14463         * tree-pretty-print.h (dump_function_header): Adjust.
14464         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
14465         * passes.c (pass_init_dump_file): Pass dump_flags on.
14466         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
14467
14468 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14469
14470         PR bootstrap/49270
14471         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
14472
14473 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
14474
14475         PR tree-optimization/49243
14476         * calls.c (setjmp_call_p): Also check if fndecl has the
14477         returns_twice attribute.
14478
14479 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14480
14481         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
14482         -ffast-math etc.
14483
14484 2011-06-06  Richard Henderson  <rth@redhat.com>
14485             Georg-Johann Lay  <avr@gjlay.de>
14486
14487         PR target/42210
14488         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
14489         New predicates.
14490         * config/avr/avr.md ("insv"): New insn expander.
14491         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
14492         "*insv.not.io", "*insv.reg"): New insns.
14493
14494 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
14495
14496         PR target/49285
14497         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
14498         to nonimmediate_operand from memory_operand for the operand that is to
14499         be forced to memory by the expander.  Lose the constraints.
14500
14501 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14502
14503         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
14504         EH return when delayed branches are disabled.
14505
14506 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
14507
14508         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
14509         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
14510         calculation.
14511         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
14512         Simplify MODE_V1DF and MODE_V2SF handling.
14513         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
14514         Simplify MODE_SF handling.
14515
14516 2011-06-04  Jan Hubicka  <jh@suse.cz>
14517
14518         PR tree-optimization/48893
14519         PR tree-optimization/49091
14520         PR tree-optimization/49179
14521         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
14522         Bounds check.
14523
14524 2011-06-04  Jan Hubicka  <jh@suse.cz>
14525
14526         PR lto/48954
14527         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
14528         bitmaps.
14529
14530 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14531
14532         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
14533
14534 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
14535
14536         PR target/49281
14537         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
14538         to be strictly smaller than 1 << shiftcount.
14539
14540 2011-06-04  Jan Hubicka  <jh@suse.cz>
14541
14542         PR tree-optimize/48929
14543         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
14544         of empty predicate.
14545
14546 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
14547
14548         PR debug/48333
14549         * calls.c (emit_call_1): Prefer the __builtin declaration of
14550         builtin functions.
14551
14552 2011-06-03   Diego Novillo  <dnovillo@google.com>
14553
14554         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
14555         (lto_input_tree_pointers): Likewise.
14556         * lto-streamer-out.c (pack_value_fields): Likewise.
14557         (lto_output_tree_pointers): Likewise.
14558         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
14559         and OPTIMIZATION_NODE.
14560
14561 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14562
14563         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
14564         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
14565         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
14566         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
14567         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
14568         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
14569         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
14570         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
14571         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
14572         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
14573         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
14574         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
14575         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
14576         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
14577         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
14578         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
14579         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
14580         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
14581         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
14582         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
14583         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
14584         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
14585         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
14586         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
14587         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
14588         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
14589         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
14590         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
14591         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
14592         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
14593         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
14594         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
14595         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
14596         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
14597         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
14598         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
14599         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
14600         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
14601         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
14602         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
14603         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
14604         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
14605         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
14606         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
14607         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
14608         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
14609         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
14610         * system.h (MD_UNWIND_SUPPORT): Poison.
14611         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
14612         * doc/tm.texi: Regenerate.
14613         * unwind-dw2.c: Include md-unwind-support.h instead of
14614         MD_UNWIND_SUPPORT.
14615         * config/ia64/unwind-ia64.c: Likewise.
14616         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14617
14618 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
14619
14620         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
14621
14622 2011-06-03  Richard Henderson  <rth@redhat.com>
14623             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14624
14625         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
14626         (sigill_hdlr): Correct insn, insn size.
14627         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
14628
14629 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14630
14631         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
14632         t-slibgcc-dummy.
14633         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
14634         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
14635         * config/mips/t-iris: Remove.
14636         * config/mips/t-irix6: New file.
14637         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
14638
14639 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14640
14641         * Makefile.in (LIB2ADDEHDEP): Remove.
14642         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
14643         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
14644         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
14645         * config/t-darwin (LIB2ADDEHDEP): Remove.
14646         * config/t-freebsd (LIB2ADDEHDEP): Remove.
14647         * config/t-linux (LIB2ADDEHDEP): Remove.
14648
14649 2011-06-03  Diego Novillo  <dnovillo@google.com>
14650
14651         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
14652         (lto_register_var_decl_in_symtab): Likewise.
14653         (lto_register_function_decl_in_symtab): Likewise.
14654         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
14655         logic to uniquify_nodes.
14656
14657 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14658
14659         * config/alpha/t-osf5: Remove.
14660         * config/alpha/t-osf-pthread: Remove.
14661         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
14662         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
14663
14664 2011-06-03  Julian Brown  <julian@codesourcery.com>
14665
14666         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
14667         (strongarm1110): Use strongarm tuning.
14668         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
14669         * config/arm/arm.c (arm_strongarm_tune): New.
14670         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14671         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
14672         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
14673         setting, using previous defaults or 1 for Cortex-A5.
14674         (arm_option_override): Set max_insns_skipped from current tuning.
14675
14676 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
14677
14678         * doc/install.texi (Options specification): Document --with-specs.
14679
14680 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14681
14682         * config/arm/neon.md (orndi3_neon): Actually split it.
14683
14684 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14685
14686         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
14687         * var-tracking.c (reverse_op): Limite recurse depth to 5.
14688
14689 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14690
14691         PR debug/47590
14692         * target.def (delay_sched2, delay_vartrack): New.
14693         * doc/tm.texi.in: Update.
14694         * doc/tm.texi: Rebuild.
14695         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
14696         * var-tracking.c (gate_handle_var_tracking): Likewise.
14697         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
14698         (bfin_flag_var_tracking): Drop.
14699         (output_file_start): Don't save and override flag_var_tracking.
14700         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
14701         (bfin_reorg): Test original variables.
14702         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14703         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
14704         (ia64_flag_var_tracking): Drop.
14705         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14706         (ia64_file_start): Don't save and override flag_var_tracking.
14707         (ia64_override_options_after_change): Ditto
14708         flag_schedule_insns_after_reload.
14709         (ia64_reorg): Test original variables.
14710         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
14711         (picochip_flag_var_tracking): Drop.
14712         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14713         (picochip_option_override): Don't save and override
14714         flag_schedule_insns_after_reload.
14715         (picochip_asm_file_start): Ditto flag_var_tracking.
14716         (picochip_reorg): Test original variables.
14717         * config/spu/spu.c (spu_flag_var_tracking): Drop.
14718         (TARGET_DELAY_VARTRACK): Define.
14719         (spu_var_tracking): New.
14720         (spu_machine_dependent_reorg): Call it.
14721         (asm_file_start): Don't save and override flag_var_tracking.
14722
14723 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
14724
14725         PR target/49163
14726         * config/sh/predicates.md (general_movsrc_operand): Return 0
14727         for memory and memory subreg of which address is an invalid
14728         indexed address for QI and HImode.
14729         (general_movdst_operand): Likewise.
14730
14731 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14732
14733         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
14734         edges only, when there is a non-local label in the function.
14735         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
14736
14737 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14738
14739         * config/i386/constraints.md (Y3): New register constraint.
14740         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
14741         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
14742         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
14743         *sse2_interleave_lowv2df.
14744
14745 2011-06-02  Julian Brown  <julian@codesourcery.com>
14746
14747         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
14748         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
14749         (arm_cortex_a5_tune): New.
14750
14751 2011-06-02  Julian Brown  <julian@codesourcery.com>
14752
14753         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
14754         * config/arm/arm.c (arm_default_branch_cost): New.
14755         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14756         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
14757         (arm_fa726_tune): Set branch_cost field using
14758         arm_default_branch_cost.
14759         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
14760         current_tune structure.
14761         * dojump.c (tm_p.h): Include file.
14762
14763 2011-06-02  Julian Brown  <julian@codesourcery.com>
14764
14765         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
14766         tuning.
14767         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
14768         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
14769         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
14770         field.
14771         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
14772         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
14773         (arm_fa726te_tune): Add prefer_constant_pool setting.
14774         (arm_v6t2_tune, arm_cortex_tune): New.
14775         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
14776         prefer_constant_pool setting.
14777
14778 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14779
14780         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
14781         switch statement.
14782         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
14783         (*movdf_internal) <case 6,7,8>: Ditto.
14784
14785         * config/i386/constraints.md (Y4): New register constraint.
14786         * config/i386/sse.md (vec_set<mode>_0): Merge with
14787         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
14788         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
14789         *vec_extractv2di_1_sse.
14790         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
14791         and *vec_concatv2di_rex64_sse.
14792
14793 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
14794
14795         PR target/48807
14796         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
14797         of cgraph_local_info for null before attempting to use it.
14798
14799 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14800
14801         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
14802         (current_function_dynamic_alloc_count): Delete.
14803         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
14804         (expand_builtin_nonlocal_goto): Remove obsolete comment.
14805         (expand_builtin_update_setjmp_buf): Remove dead code.
14806         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
14807         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
14808         support.
14809         * function.c (instantiate_virtual_regs): Likewise.
14810         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
14811         for a block with a single abnormal incoming edge.
14812         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
14813         (SETJMP_VIA_SAVE_AREA): Delete.
14814         * config/sparc/sparc-protos.h (load_got_register): Declare.
14815         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14816         (load_got_register): Make global.
14817         (sparc_frame_pointer_required): Add 'static'.
14818         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
14819         (sparc_builtin_setjmp_frame_value): New function.
14820         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
14821         (save_stack_nonlocal): New expander.
14822         (restore_stack_nonlocal): Likewise.
14823         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
14824         (nonlocal_goto_internal): New insn.
14825         (goto_handler_and_restore): Delete.
14826         (builtin_setjmp_setup): Likewise.
14827         (do_builtin_setjmp_setup): Likewise.
14828         (setjmp): Likewise.
14829         (builtin_setjmp_receiver): New expander.
14830
14831 2011-06-01  David Li  <davidxl@google.com>
14832
14833         PR middle-end/49261
14834         * tree-pretty-print.c (dump_function_header): Format cleanup.
14835
14836 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
14837
14838         PR target/49238
14839         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
14840         needed when original operands are used for msw_skip comparison.
14841
14842 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14843
14844         PR debug/49250
14845         * var-tracking.c (add_uses, add_stores): Don't call
14846         cselib_subst_to_values on ENTRY_VALUE.
14847
14848 2011-06-01  Diego Novillo  <dnovillo@google.com>
14849
14850         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
14851         output_record_start with LTO_null instead of output_zero.
14852         (lto_output_ts_binfo_tree_pointers): Likewise.
14853         (lto_output_tree): Likewise.
14854         (output_eh_try_list): Likewise.
14855         (output_eh_region): Likewise.
14856         (output_eh_lp): Likewise.
14857         (output_eh_regions): Likewise.
14858         (output_bb): Likewise.
14859         (output_function): Likewise.
14860         (output_unreferenced_globals): Likewise.
14861         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
14862         instead of NUM_TREE_CODES.
14863         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
14864         (lto_output_int_in_range): Change << to >> when shifting VAL.
14865
14866 2011-06-01  Diego Novillo  <dnovillo@google.com>
14867
14868         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
14869         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
14870
14871 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14872
14873         PR target/45074
14874         * optabs.h (valid_multiword_target_p): Declare.
14875         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
14876         doing multi-word operations.
14877         * optabs.c (expand_binop): Likewise.
14878         (expand_doubleword_bswap): Likewise.
14879         (expand_absneg_bit): Likewise.
14880         (expand_unop): Likewise.
14881         (expand_copysign_bit): Likewise.
14882         (multiword_target_p): New function.
14883
14884 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14885
14886         PR rtl-optimization/48830
14887         PR rtl-optimization/48808
14888         PR rtl-optimization/48792
14889         * reload.c (push_reload): Check contains_reg_of_mode.
14890         * reload1.c (strip_paradoxical_subreg): New function.
14891         (gen_reload_chain_without_interm_reg_p): Use it to handle
14892         paradoxical subregs.
14893         (emit_output_reload_insns, gen_reload): Likewise.
14894
14895 2011-06-01  David Li  <davidxl@google.com>
14896
14897         * predict.c : Change pass name
14898         * ipa.c: Ditto.
14899         * dce.c: Ditto.
14900         * tree-profile.c: Ditto.
14901         * except.c: Ditto.
14902
14903 2011-06-01  David Li  <davidxl@google.com>
14904
14905         * tree-pretty-print.c (dump_function_header): New function.
14906         * final.c (rest_of_clean_state): Use header dumper.
14907         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
14908         * passes.c (pass_init_dump_file): Use header dumper.
14909
14910 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14911
14912         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
14913         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
14914         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
14915         New functions.
14916         (mem_loc_descriptor): Use them.
14917
14918         * var-tracking.c (create_entry_value): New function.
14919         (vt_add_function_parameter): Use it.
14920
14921 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14922
14923         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
14924         Include <signal.h>, <ucontext.h>.
14925         (sigill_caught): Define.
14926         (sigill_hdlr): New function.
14927         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
14928         insns can be executed.
14929         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
14930         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
14931
14932 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14933
14934         * config/t-slibgcc-darwin: Move to ...
14935         * config/t-slibgcc-dummy: ... this.  Clarify comments.
14936         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
14937         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
14938         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
14939         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
14940         Remove i386/t-crtstuff from tmake_file.
14941         (i[34567]86-*-solaris2*): Remove t-svr4,
14942         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
14943         t-slibgcc-dummy.
14944         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
14945         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
14946         sparc/t-crtfm from tmake_file.
14947         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
14948         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
14949         Remove extra_parts.
14950         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
14951         * config/i386/t-nwld (SHLIB_LINK): Remove.
14952         * config/i386/t-rtems-i386: Rename to ...
14953         * config/i386/t-rtems: ... this.
14954         ($(T)crti.o, $(T)crtn.o): Remove.
14955         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
14956         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
14957         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
14958         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
14959         EXTRA_MULTILIB_PARTS): Remove.
14960         * config/sparc/t-sol2-64: Likewise.
14961         * config/sparc/t-sol2: Remove.
14962         * config/sparc/t-crtin: Remove.
14963         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
14964         * config/i386/gmon-sol2.c: Remove.
14965         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
14966         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
14967         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
14968         * config/i386/sol2-gc1.asm: Remove.
14969         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
14970         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
14971         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
14972         * config/t-slibgcc-sld: Remove.
14973
14974 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14975
14976         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
14977         base_type_for_mode with op_mode instead of mode.
14978
14979 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
14980
14981         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
14982         Cortex-A15.
14983         * config/arm/arm-tune.md: Regenerate.
14984         * config/arm/arm-tables.opt: Regenerate.
14985         * config/arm/arm.c (FL_DIV): Rename...
14986         (FL_THUMB_DIV): ... to this.
14987         (FL_ARM_DIV): Define.
14988         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
14989         (arm_arch_hwdiv): Remove.
14990         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
14991         (arm_issue_rate): Add cortexr5.
14992         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
14993         __ARM_ARCH_EXT_IDIV__.
14994         (TARGET_IDIV): Define.
14995         (arm_arch_hwdiv): Remove.
14996         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
14997         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
14998         (divsi3, udivsi3): New patterns.
14999         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
15000         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
15001
15002 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15003
15004         * ipa-utils.c (ipa_dfs_info): New field scc_no.
15005         * ipa-utils.c (searchc): Set scc_no.
15006
15007 2011-06-01  Martin Jambor  <mjambor@suse.cz>
15008
15009         * ipa-utils.c (searchc_env): New field allow_overwritable.
15010         (searchc): do not ignore edges to overwritable nodes if indicated
15011         by env->allow_overwritable.
15012         (ipa_reduced_postorder): Set env.allow_overwritable.
15013
15014 2011-06-01  Richard Guenther  <rguenther@suse.de>
15015
15016         * tree.c (free_lang_data): Do not reset boolean_type_node nor
15017         char_type_node.
15018         * lto-streamer.c (lto_record_common_node): Take node pointer,
15019         do not register types.
15020         (lto_preload_common_nodes): Explicitly skip preloading nodes
15021         that differ between frontends.
15022
15023 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15024
15025         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
15026         NON_FLOAT_REGS.
15027
15028 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
15029
15030         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
15031         parameter value for dump. Dump cost on outermost call only.
15032         (rs6000_memory_move_cost): Dump cost on outermost call only.
15033
15034 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15035
15036         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
15037         DW_OP_GNU_convert ops.
15038
15039         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
15040         cselib_preserve_constants.
15041         (cselib_lookup_1): If cselib_preserve_constants,
15042         a new VALUE is being created for REG and there is a VALUE for the
15043         same register in wider mode, add another loc with lowpart SUBREG of
15044         the wider VALUE.
15045         (cselib_subst_to_values): Handle ENTRY_VALUE.
15046         * var-tracking.c  (replace_expr_with_values): Return NULL for
15047         ENTRY_VALUE too.
15048         * dwarf2out.c (convert_descriptor_to_signed): New function.
15049         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
15050         instead of two shifts.
15051         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
15052         the right mode if needed.
15053         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
15054         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
15055         convert_descriptor_to_signed.
15056         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
15057         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
15058
15059         PR target/48688
15060         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
15061
15062 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15063
15064         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
15065         of X87MODEI12 and SWI48x instead of SSEMODEI24.
15066         (SWI248x): New mode iterator, rename from X87MODEI.
15067         (X87MODEI): Remove mode iterator.
15068         (X87MODEI12): Ditto.
15069         (SSEMODEI24): Ditto.
15070
15071 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15072
15073         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
15074         * doc/invoke.texi: Document max-vartrack-expr-depth.
15075         * var-tracking.c (EXPR_DEPTH): New.
15076         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
15077
15078 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15079
15080         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
15081         * config/i386/sse.md: Add n to negated FMA pattern names.
15082
15083 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15084
15085         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
15086
15087 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15088
15089         * gengtype-state.c (read_state_params_structs): Initialize previous.
15090
15091 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15092
15093         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
15094         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
15095
15096 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15097
15098         * config/i386/i386.md (*movtf_internal): Avoid allocating general
15099         registers.  Penalize F*r->o alternative to prevent partial memory
15100         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
15101         CONST_DOUBLE immediates when optimizing function for size.  Do not move
15102         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15103         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
15104         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
15105         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
15106         alternatives.
15107         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
15108
15109         (fp_register_operand splitters): Use fp_register_operand
15110         constraint.  Do not use FP_REG_P in insn condition.
15111         (any_fp_register_operand splitters): Use any_fp_register_operand
15112         constraint.  Do not use ANY_FP_REG_P in insn condition.
15113
15114 2011-05-31  Jan Hubicka  <jh@suse.cz>
15115
15116         * cgraph.h (cgraph_inline_failed_t): Give enum a name
15117         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
15118         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
15119         (lto_output_edge): Use output_enum and var_len_unsigned.
15120         (lto_output_varpool_node): Likewise.
15121         (input_overwrite_node): Do not take resolution parameter;
15122         extract it from a bitpack.
15123         (input_node): Do not read resolution; use input_enum and
15124         var_len_unsigned.
15125         (input_varpool_node): Likewise.
15126         (input_edge): Likewise.
15127         (input_cgraph_1): Likewise.
15128
15129 2011-05-31  Richard Guenther  <rguenther@suse.de>
15130
15131         * gimple.c (gimple_register_canonical_type): Do not register
15132         any types via gimple_register_type.
15133
15134 2011-05-31  Jan Hubicka  <jh@suse.cz>
15135
15136         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
15137         of thunks.
15138
15139 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15140
15141         PR rtl-optimization/49235
15142         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
15143         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
15144
15145 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
15146
15147         PR tree-optimization/49093
15148         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
15149         data references.
15150
15151 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
15152
15153         PR debug/49047
15154         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
15155         for concrete functions containing the code of cloned functions.
15156
15157 2011-05-31  Richard Guenther  <rguenther@suse.de>
15158
15159         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
15160         to ...
15161         (forward_propagate_into_comparison_1): ... this.
15162         (forward_propagate_comparison): Rename to ...
15163         (forward_propagate_into_comparison): ... this.  Split out
15164         real forward propagation code to ...
15165         (forward_propagate_comparison): ... this.
15166         (forward_propagate_into_gimple_cond): Remove looping.
15167         (forward_propagate_into_cond): Likewise.
15168         (simplify_not_neg_expr): Return whether we have done something.
15169         (simplify_gimple_switch): Likewise.
15170         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15171         (ssa_forward_propagate_and_combine): ... this.  Re-structure
15172         to do a forward forward-propagation walk on BBs and a backward
15173         stmt combining walk on BBs.  Consistently re-scan changed statements.
15174         (pass_forwprop): Adjust.
15175
15176 2011-05-30  Ian Lance Taylor  <iant@google.com>
15177
15178         * godump.c (go_format_type): Correct length of name added to
15179         obstack for anonymous field.
15180
15181 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
15182
15183         PR target/49186
15184         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
15185         part of the second operand is 0.
15186
15187 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
15188
15189         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
15190         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
15191         to memory for !TARGET_MEMORY_MISMATCH_STALL.
15192         (*movdf_internal_rex64): Do not penalize F->r alternative.
15193         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
15194         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
15195         when optimizing function for size.  Do not move CONST_DOUBLEs
15196         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15197         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
15198         SUBREGs.  Do not check for MEM_P operands in the insn condition,
15199         check for ANY_FP_REGNO_P instead.
15200         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
15201         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
15202         function for speed.
15203         * config/i386/i386.c (ix86_option_override_internal): Do not
15204         set TARGET_INTEGER_DFMODE_MOVES here.
15205
15206 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
15207
15208         PR target/49168
15209         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
15210
15211 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15212
15213         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
15214         DW_TAG_rvalue_reference_type even for
15215         -gdwarf-4 -fno-debug-types-section.
15216
15217 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15218
15219         PR tree-optimization/46728
15220         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
15221         (build_and_insert_binop): New.
15222         (gimple_expand_builtin_pow): Reorder args for
15223         build_and_insert_call; use build_and_insert_binop; add more
15224         optimizations for fractional exponents.
15225
15226 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
15227
15228         PR bootstrap/49190
15229
15230         Revert:
15231         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15232
15233         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15234         tree_common.
15235         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15236         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15237         TS_BASE instead of TS_COMMON.
15238         * varasm.c (assemble_name): Remove assert.
15239
15240 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
15241
15242         * config.gcc: Keep obselete list sorted.
15243
15244 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15245             Eric Botcazou  <ebotcazou@adacore.com>
15246
15247         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
15248         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
15249         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
15250         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
15251         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
15252
15253 2011-05-30  Richard Guenther  <rguenther@suse.de>
15254
15255         * gimple.c (gimple_types_compatible_p_1): Compare record
15256         and union type members properly.
15257
15258 2011-05-30  Richard Guenther  <rguenther@suse.de>
15259
15260         PR tree-optimization/49210
15261         * ipa-split.c (split_function): Care for the case where the call
15262         result is not trivially convertible to the result holding variable.
15263
15264 2011-05-30  Richard Guenther  <rguenther@suse.de>
15265
15266         PR tree-optimization/49218
15267         * tree-vrp.c (adjust_range_with_scev): Properly check whether
15268         overflow occured.
15269
15270 2011-05-30  Richard Guenther  <rguenther@suse.de>
15271
15272         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
15273         New function split out from ...
15274         (forward_propagate_into_gimple_cond): ... here.  Adjust.
15275         (forward_propagate_into_cond): Likewise.
15276         (forward_propagate_comparison): Also propagate into
15277         comparisons on assignment RHS.  Change return value to
15278         behave similar to forward_propagate_into_cond.
15279         (tree_ssa_forward_propagate_single_use_vars): Handle
15280         strict-overflow warnings properly for forward_propagate_comparison.
15281
15282 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15283
15284         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
15285         from plugin linker.
15286         * configure: Regenerate.
15287
15288 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
15289
15290         PR tree-optimization/49199
15291         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
15292         non-reduction operands are either defined in the loop or by induction.
15293
15294 2011-05-29  Xinliang David Li  <davidxl@google.com>
15295
15296         * opts-global.c (handle_common_deferred_options): Handle new options.
15297         * passes.c (register_one_dump_file): Call register_pass_name.
15298         (execute_one_pass): Check explicit enable/disable flag.
15299         (passr_hash): New function.
15300         (passr_eq): Ditto.
15301         (register_pass_name): Ditto.
15302         (get_pass_by_name): Ditto.
15303         (pass_hash): Ditto.
15304         (pass_eq): Ditto.
15305         (enable_pass): Ditto.
15306         (disable_pass): Ditto.
15307         (is_pass_explicitly_enabled_or_disabled): Ditto.
15308
15309 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
15310
15311         * config/i386/i386.md (*movoi_internal_avx): Use
15312         standard_sse_constant_opcode for alternative 0.
15313         (*movti_internal_sse): Ditto.
15314         (*movti_internal_rex64): Use standard_sse_constant_opcode for
15315         alternative 2.
15316         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
15317         sselog1 type moves.
15318         (*movsi_internal): Ditto.
15319         (*movdi_internal): Ditto.  Add ssecvt type moves.
15320
15321 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15322
15323         PR target/48830
15324         * rtlanal.c (simplify_subreg_regno): Adjust comment.
15325
15326 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
15327
15328         PR rtl-optimization/49095
15329         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
15330         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
15331
15332 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15333
15334         PR target/43995
15335         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
15336         recurse_p argument.  Only follow register copies if it is set,
15337         and prevent mips_find_pic_call_symbol from recursing.
15338         (mips_find_pic_call_symbol): Add a recurse_p argument.
15339         Pass it to mips_pic_call_symbol_from_set.
15340         (mips_annotate_pic_calls): Update accordingly.
15341
15342 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15343
15344         * emit-rtl.c (try_split): Use a loop to search for
15345         NOTE_INSN_CALL_ARG_LOCATIONs.
15346
15347 2011-05-29  Richard Guenther  <rguenther@suse.de>
15348
15349         PR tree-optimization/49217
15350         * ipa-pure-const.c (propagate_pure_const): Fix typos.
15351
15352 2011-05-28  Jan Hubicka  <jh@suse.cz>
15353
15354         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
15355         length.
15356         (string_slot_free): Remove
15357         (create_output_block): Initialize obstack.
15358         (destroy_output_block): Free obstack.
15359         (lto_string_index): Add PERSISTENT parameter; do not duplicate
15360         the string unless it needs to be added into the hash.
15361         (lto_output_string_with_length): Add persistent attribute;
15362         handle NULL strings.
15363         (lto_output_string): Add PERSISTENT parameter.
15364         (output_string_cst, output_identifier): Simplify.
15365         (lto_output_location_bitpack): Update.
15366         (lto_output_builtin_tree): Update.
15367         * lto-streamer.h (struct output_block): Add obstack.
15368         (lto_output_string, lto_output_string_with_length): Remove
15369         declarations; functions are static now.
15370
15371 2011-05-28  Jan Hubicka  <jh@suse.cz>
15372
15373         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
15374         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
15375         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
15376         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
15377         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
15378         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
15379         unpack_ts_decl_with_vis_value_fields,
15380         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
15381         lto_get_builtin_tree): Use enum and variable length i/o.
15382         * basic-block.h (profile_status_d): Add PROFILE_LAST.
15383         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
15384         New functions.
15385         (bp_pack_enum, bp_unpack_enum): New macros.
15386
15387 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15388
15389         * genrecog.c: Remove redundant forward declarations.
15390
15391 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15392
15393         * config.gcc: Deprecate mips*-*-openbsd*.
15394
15395 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15396
15397         PR bootstrap/49195
15398         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
15399         for match_op_dup.
15400
15401 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
15402
15403         PR middle-end/48981
15404         * gengtype.c (vec_prefix_type): New function.
15405         (note_def_vec): Use vec_prefix_type and change the length
15406         attribute to be based on the prefix.
15407         * vec.c: Include coretypes.h before vec.h.
15408         (struct vec_prefix): Remove.
15409         (vec_gc_p_reserve): Change the offsetof to sizeof.
15410         (vec_gc_p_reserve_exact): Likewise.
15411         (vec_heap_p_reserve): Likewise.
15412         (vec_heap_p_reserve_exact): Likewise.
15413         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
15414         (vec_stack_p_reserve): Change the offsetof to sizeof.
15415         (vec_stack_p_reserve_exact): Likewise.
15416         * vec.h (struct vec_prefix): New struct definition.
15417         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
15418         (VEC_T_GTY(T,B)): Likewise.
15419         (DEF_VEC_FUNC_P(T)): Use prefix field.
15420         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
15421         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
15422
15423 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15424
15425         PR tree-optimization/46728
15426         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
15427         (powi_as_mults): Add gimple_set_location.
15428         (build_and_insert_call): New.
15429         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
15430         0.5, 0.25, 0.75, 1./3., or 1./6.
15431
15432 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
15433
15434         * doc/contrib.texi: Update copyright years.
15435         (Contributors): Add Zdenek Sojka.
15436
15437 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
15438
15439         * c-decl.c (c_push_function_context): Copy the current statement
15440         list stack.
15441         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
15442         (finish_struct): Call building_stmt_list_p instead of checking
15443         cur_stmt_list.
15444         * c-parser.c (c_parser_postfix_expression): Likewise.
15445         * c-typeck.c (c_end_compound_stmt): Likewise.
15446         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
15447         * tree-iterator.c (stmt_list_cache): Change to a VEC.
15448         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
15449         (free_stmt_list): Likewise.
15450         * tree.h (struct tree_statement_list): Include typed_tree instead
15451         of tree_common.
15452         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
15453         as TS_TYPED instead of TS_COMMON.
15454
15455 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15456             Uros Bizjak  <ubizjak@gmail.com>
15457
15458         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
15459         (HAVE_AS_IX86_TLSGDPTL): Define.
15460         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
15461         (HAVE_AS_IX86_TLSLDMPLT): Define.
15462         * configure: Regenerate.
15463         * config.in: Regenerate.
15464         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
15465         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
15466         TARGET_SUN_TLS, use @tlsgdplt or @plt.
15467         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
15468         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
15469         @tlsldmplt or @plt.
15470         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
15471
15472 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15473
15474         * sched-int.h (struct _haifa_deps_insn_data): New members cond
15475         and reverse_cond.
15476         (INSN_COND, INSN_REVERSE_COND): New macros.
15477         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
15478         once.
15479         (sched_get_condition_with_rev): Cache the results, and look them up
15480         if possible.
15481         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
15482         are clobbered by the current insn.
15483         * target.def (exposed_pipline): New sched data hook.
15484         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
15485         * doc/tm.texi: Regenerate.
15486
15487 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15488
15489         PR tree-optimization/49170
15490         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
15491         sincos or cexp.
15492
15493 2011-05-27  Richard Guenther  <rguenther@suse.de>
15494
15495         PR middle-end/49189
15496         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
15497         of comparisons.
15498
15499 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15500
15501         * haifa-sched.c (sched_scan_info): Remove.
15502         (schedule_block): Call sched_extend_luids rather than sched_init_luids
15503         with NULL args.
15504         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
15505         Remove functions.
15506         (sched_scan): Remove.
15507         (sched_extend_luids): Renamed from luids_extend_insn and no longer
15508         static.  All callers changed.
15509         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
15510         static.  All callers changed.
15511         (sched_init_luids): Remove all arguments except the first.  All
15512         callers changed.  Don't use sched_scan.
15513         (haifa_init_h_i_d): Likewise.
15514         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
15515         manually rather than using sched_init_luids.  Likewise with
15516         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
15517         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
15518         rather than sched_init_luids with NULL args.
15519         * sel-sched-ir.c (new_insns): Remove variable.
15520         (sched_scan): New static function, previously in haifa-sched.c.  Remove
15521         all arguments but the first two; all callers changed.
15522         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
15523         rather than sched_init_luids.
15524         (sel_init_bbs): Remove second argument.  All callers changed.
15525         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
15526         with NULL arguments.
15527         (create_insn_rtx_from_pattern): Likewise.
15528         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
15529         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
15530         (sched_init_insn_luid, sched_extend_luids): Declare.
15531         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
15532         declarations.
15533
15534 2011-05-27  Richard Guenther  <rguenther@suse.de>
15535
15536         PR middle-end/49177
15537         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
15538         A CMP B ? (T) true : (T) false for non-integral types T again.
15539
15540 2011-05-27  Jan Hubicka  <jh@suse.cz>
15541
15542         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
15543         so 0 means NULL string.
15544         (lto_output_string_with_length): ... here.
15545         (lto_output_string, output_string_cst, output_identifier): Update
15546         handling of NULL strings.
15547         (lto_output_location_bitpack): New function.
15548         (lto_output_location): Use it.
15549         (lto_output_tree_ref): Use output_record_start.
15550         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
15551         len values.
15552         * lto-streamer-in.c (string_for_index): Break out from ...; offset
15553         values by 1.
15554         (input_string_internal): ... here;
15555         (input_string_cst, input_identifier, lto_input_string): Update handling
15556         of NULL strings.
15557         (lto_input_location_bitpack): New function
15558         (lto_input_location): Use it.
15559         (unpack_ts_type_common_value_fields): Pack align & alias in var len
15560         values.
15561         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
15562         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
15563         (bp_pack_value): Sanity check the value range.
15564         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
15565         New functions.
15566         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
15567         New functions.
15568
15569 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
15570
15571         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
15572         call_arg_location instructions down the floor.
15573
15574 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
15575
15576         PR rtl-optimization/49154
15577         * ira.c (setup_pressure_classes): Process class without sublcasses
15578         as a candidate for pressure classes.
15579
15580 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
15581
15582         PR rtl-optimization/48575
15583         * genrecog.c (position_type): New enum.
15584         (position): New structure.
15585         (decision): Use position structure instead of a string.
15586         (root_pos, peep2_insn_pos_list): New variables.
15587         (next_position, compare_positions): New functions.
15588         (new_decision): Use position structures instead of strings.
15589         (maybe_both_true): Likewise.
15590         (change_state): Likewise.
15591         (write_tree): Likewise.
15592         (make_insn_sequence): Likewise.
15593
15594 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15595
15596         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
15597         TS_BASE instead of TS_COMMON.
15598         (find_decls_types_r): Check for TS_TYPED structure before looking at
15599         TREE_TYPE.
15600         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
15601         Add chain field.
15602         (BLOCK_CHAIN): Use new chain field.
15603
15604 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
15605
15606         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
15607         moves expensive on Power7 also.
15608
15609 2011-05-26  Richard Guenther  <rguenther@suse.de>
15610
15611         * fold-const.c (fold_unary_loc): Remove bogus code.
15612
15613 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15614
15615         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15616         tree_common.
15617         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15618         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15619         TS_BASE instead of TS_COMMON.
15620         * varasm.c (assemble_name): Remove assert.
15621
15622 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15623
15624         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
15625         substituted first.
15626         * libgcc-std.ver: Delete file.
15627
15628 2011-05-26  Richard Guenther  <rguenther@suse.de>
15629
15630         PR tree-optimization/48702
15631         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
15632         only when we know the base address is within bounds.
15633         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
15634         assume the base address of TARGET_MEM_REFs is in bounds.
15635
15636 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15637
15638         PR target/49099
15639         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
15640         declaration in TARGET_SOLARIS.
15641
15642 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
15643
15644         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
15645         The instruction is then expanded explicitly.
15646         (supported_compare): Callable instruction.
15647         (compare): Likewise.
15648
15649 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15650
15651         PR c++/49165
15652         * gimplify.c (shortcut_cond_r): Don't special case
15653         COND_EXPRs if they have void type on one of their arms.
15654
15655 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15656
15657         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
15658         to reduce duplication, and to achieve a slightly more logical order
15659         of operations.
15660
15661 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15662
15663         PR tree-optimization/49161
15664         * tree-vrp.c (struct case_info): New type.
15665         (compare_case_labels): Sort case_info structs instead of
15666         trees, and not primarily by CASE_LABEL uids but by
15667         label_for_block indexes.
15668         (find_switch_asserts): Put case labels into struct case_info
15669         array instead of TREE_VEC, adjust sorting, compare label_for_block
15670         values instead of CASE_LABELs.
15671
15672 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15673
15674         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
15675         ("orndi3_neon"): Likewise.
15676         ("bic<mode>3_neon"): Likewise.
15677
15678 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
15679
15680         PR tree-optimization/49038
15681         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
15682         Ensure at least one epilogue iteration if required by data
15683         accesses with gaps.
15684         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15685         to mark loops that require peeling for gaps.
15686         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
15687         (vect_get_known_peeling_cost): Take peeling for gaps into
15688         account.
15689         (vect_transform_loop): Generate epilogue if required by data
15690         access with gaps.
15691         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
15692         loop as requiring an epilogue if there are gaps in the end of
15693         the strided group.
15694
15695 2011-05-25  Ian Lance Taylor  <iant@google.com>
15696
15697         * godump.c (go_format_type): Output the first field with a usable
15698         Go type, if any.
15699
15700 2011-05-25  Ian Lance Taylor  <iant@google.com>
15701
15702         * godump.c (go_format_type): Check for invalid type names, pointer
15703         target types, and struct field types.
15704
15705 2011-05-25  Jason Merrill  <jason@redhat.com>
15706
15707         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
15708
15709 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
15710
15711         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
15712
15713 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15714
15715         * config/i386/i386.md (*movqi_extv_1)): Put back
15716         "register_operand" check in "type" calculation.
15717         (*movqi_extzv_2): Likewise.
15718
15719 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15720
15721         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
15722
15723 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15724
15725         PR bootstrap/49160
15726         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
15727         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
15728         __divxc3, __divtc3): Wrap definitions in #ifndef.
15729
15730 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15731
15732         PR target/49142
15733         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
15734         "register_operand" check and replace q_regs_operand with
15735         QIreg_operand in "type" calculation.
15736         (*movqi_extv_1): Likewise.
15737         (*movqi_extzv_2_rex64): Likewise.
15738         (*movqi_extzv_2): Likewise.
15739
15740         * config/i386/predicates.md (QIreg_operand): New.
15741
15742 2011-05-25  Richard Guenther  <rguenther@suse.de>
15743
15744         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
15745         type-based offset disambiguation, streamline MEM_REF and
15746         TARGET_MEM_REF handling.
15747
15748 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15749
15750         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
15751         (bdesc_special_args): Add pause intrinsic.
15752
15753         * config/i386/i386.md (UNSPEC_PAUSE): New.
15754         (pause): Likewise.
15755         (*pause): Likewise.
15756         * config/i386/ia32intrin.h (__pause): Likewise.
15757
15758         * doc/extend.texi (X86 Built-in Functions): Add documentation for
15759         pause intrinsic.
15760
15761 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15762
15763         PR tree-optimization/46728
15764         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
15765         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
15766
15767 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
15768
15769         * tree.h (struct tree_exp): Inherit from struct tree_typed.
15770         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
15771         instead of TS_COMMON.
15772
15773 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15774
15775         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
15776         LIBGCC2_GNU_PREFIX is defined.
15777         (__N): New macro.
15778         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
15779         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
15780         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
15781         __clz_tab): Define using __N.
15782         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
15783         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
15784         * target.def (libfunc_gnu_prefix): New hook.
15785         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
15786         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
15787         * doc/tm.texi: Regenerate.
15788         * system.h (LIBGCC2_GNU_PREFIX): Poison.
15789         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
15790         account.
15791         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
15792         (init_optabs): Likewise for the bswap libfuncs.
15793         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
15794         and divide.
15795         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
15796         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
15797         * libgcc-std.ver: Remove.
15798         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
15799         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
15800         libgcc-std.ver.
15801         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15802         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
15803         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
15804         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
15805         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
15806         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15807         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15808         * config/fixed-bit.h (FIXED_OP): Define differently depending on
15809         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
15810         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
15811
15812 2011-05-25  Jan Hubicka  <jh@suse.cz>
15813
15814         * lto-streamer-out.c (output_record_start): Use lto_output_enum
15815         (lto_output_tree): Use output_record_start.
15816         * lto-streamer-in.c (input_record_start): Use lto_input_enum
15817         (lto_get_pickled_tree): Use input_record_start.
15818         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
15819         (lto_value_range_error): New function.
15820         * lto-streamer.h (lto_value_range_error): Declare.
15821         (lto_output_int_in_range, lto_input_int_in_range): New functions.
15822         (lto_output_enum, lto_input_enum): New macros.
15823
15824 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15825
15826         * common.opt (flag_stack_usage_info): New variable.
15827         (-Wstack-usage): New option.
15828         * doc/invoke.texi (Warning options): Document -Wstack-usage.
15829         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
15830         <OPT_fstack_usage>: Likewise.
15831         * toplev.c (output_stack_usage): Handle -Wstack-usage.
15832         * calls.c (expand_call): Test flag_stack_usage_info variable instead
15833         of flag_stack_usage.
15834         (emit_library_call_value_1): Likewise.
15835         * explow.c (allocate_dynamic_stack_space): Likewise.
15836         * function.c (instantiate_virtual_regs ): Likewise.
15837         (prepare_function_start): Likewise.
15838         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
15839         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
15840         * config/arm/arm.c (arm_expand_prologue): Likewise.
15841         (thumb1_expand_prologue): Likewise.
15842         * config/avr/avr.c (expand_prologue): Likewise.
15843         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15844         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15845         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
15846         * config/mips/mips.c (mips_expand_prologue): Likewise.
15847         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15848         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15849         * config/s390/s390.c (s390_emit_prologue): Likewise.
15850         * config/sh/sh.c (sh_expand_prologue): Likewise.
15851         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15852         * config/spu/spu.c (spu_expand_prologue): Likewise.
15853
15854 2011-05-25  Richard Guenther  <rguenther@suse.de>
15855
15856         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
15857         (gimple_canonical_types_compatible_p): Likewise.
15858
15859 2011-05-25  Jan Hubicka  <jh@suse.cz>
15860
15861         PR middle-end/49062
15862         * ipa.c (function_and_variable_visibility): Only add to same
15863         comdat group list if DECL_ONE_ONLY.
15864
15865 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
15866
15867         PR rtl-optimization/49014
15868         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
15869
15870 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
15871
15872         PR target/49128
15873         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15874
15875 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15876
15877         PR rtl-optimization/48757
15878         * ira-build.c (loop_with_eh_edge_p): Rename to
15879         loop_with_complex_edge_p, check edges on complexity, make function
15880         conditional.
15881         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
15882         conditional.
15883
15884 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15885
15886         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
15887         force flag_ira_share_save_slots to 0.
15888
15889 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15890
15891         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
15892         (vt_initialize): Set PROLOGUE_BB unconditionally.
15893         Add block comment about CFA_BASE_RTX machinery.
15894         Reset FP_CFA_OFFSET to -1 on all invalid paths.
15895         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
15896
15897 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
15898
15899         PR objc/48187
15900         * c-parser.c (c_parser_objc_class_instance_variables): More robust
15901         parsing of syntax error in ObjC instance variable lists.  In
15902         particular, avoid an infinite loop if there is a stray ']'.
15903         Updated error message.
15904
15905 2011-05-24  Ian Lance Taylor  <iant@google.com>
15906
15907         * godump.c (go_define): Don't accept a string immediately after
15908         another operand.
15909
15910 2011-05-24  Ian Lance Taylor  <iant@google.com>
15911
15912         * godump.c (struct godump_container): Add invalid_hash field.
15913         (go_format_type): Return false if type is found in invalid_hash.
15914         (go_output_typedef): Add invalid type to invalid_hash.
15915         (go_finish): Create and delete invalid_hash.
15916
15917 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15918
15919         PR tree-optimization/46728
15920         * tree-ssa-math-opts.c (powi_table): New.
15921         (powi_lookup_cost): New.
15922         (powi_cost): New.
15923         (powi_as_mults_1): New.
15924         (powi_as_mults): New.
15925         (gimple_expand_builtin_powi): New.
15926         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
15927         (gate_cse_sincos): Remove sincos/cexp restriction.
15928
15929 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15930
15931         PR target/3746
15932         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
15933         mips-tdump native.
15934         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
15935         * mips-tdump.c: Likewise.
15936
15937 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15938
15939         PR target/49128
15940         * config/i386/driver-i386.c (host_detect_local_cpu): Always
15941         add -mno-XXX.  Handle FMA.
15942
15943 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15944
15945         PR rtl-optimization/48633
15946         * ira-build.c (loop_with_eh_edge_p): New function.
15947         (mark_loops_for_removal): Use it.
15948
15949 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15950
15951         PR rtl-optimization/48971
15952         * ira.c (setup_pressure_classes): Don't check register move cost
15953         for classes with one registers.  Don't add pressure class if there
15954         is a pressure class with the same available hard registers.
15955         Check contains_reg_of_mode.  Fix a typo in collecting
15956         temp_hard_regset.  Ignore hard registers not belonging to a class.
15957
15958 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
15959
15960         PR target/49133
15961         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
15962
15963 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15964             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15965
15966         PR gcov-profile/48845
15967         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
15968
15969 2011-05-24  Richard Guenther  <rguenther@suse.de>
15970
15971         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
15972         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
15973         (gimple_types_compatible_p_1): Adjust.
15974         (iterative_hash_canonical_type): Do not bother about complete vs.
15975         incomplete types.
15976         (gimple_canonical_types_compatible_p): Likewise.
15977
15978 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15979
15980         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
15981
15982 2011-05-24  Richard Guenther  <rguenther@suse.de>
15983
15984         PR bootstrap/49078
15985         * gimple.c (gimple_register_canonical_type): Revert
15986         previous change.
15987         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
15988         does not for a tree for the case where it matters.  Cache
15989         pointer-type alias-sets.
15990
15991 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
15992
15993         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
15994         (OBJS): Remove options.o, opts-common.o and prefix.o.
15995         (OBJS-libcommon-target): New.
15996         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
15997         (BACKEND): Include libcommon-target.a.
15998         (MOSTLYCLEANFILES): Include libcommon-target.a.
15999         (libcommon-target.a): New.
16000         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
16001         prefix.o.
16002
16003 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
16004
16005         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
16006         parts of output shared with the driver.
16007         * optc-gen.awk: Don't generate parts of output not shared with the
16008         driver.
16009         * opth-gen.awk: Remove GCC_DRIVER conditionals.
16010         * doc/options.texi (SourcerInclude): Mention options-save.c.
16011         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
16012         (OBJS): Add options-save.o.
16013         (options-save.c, options-save.o): New.
16014         (options.o): Update dependencies.
16015         (gcc-options.o): Remove.
16016         (mostlyclean): Remove options-save.c.
16017
16018 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16019
16020         PR debug/49032
16021         * dbxout.c: Include cgraph.h.
16022         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
16023         and without value expr, return NULL if no varpool node exists for
16024         it or if it is not needed.
16025         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
16026
16027         PR c/49120
16028         * c-decl.c (start_decl): Convert expr to void_type_node.
16029
16030 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
16031
16032         PR rtl-optimization/48826
16033         * emit-rtl.c (try_split): When splitting a call that is followed
16034         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
16035
16036 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16037
16038         * cfgexpand.c (expand_debug_expr): For unused non-addressable
16039         parameters passed in memory prefer using DECL_INCOMING_RTL over
16040         the pseudos it will be copied into.
16041
16042 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16043
16044         PR target/47315
16045         * config/i386/i386.c (ix86_option_override_internal): Save the
16046         initial options after checking vzeroupper.
16047
16048 2011-05-23  David Li  <davidxl@google.com>
16049
16050         PR tree-optimization/48988
16051         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
16052         Initialize has_valid_pred for each pred chain.
16053
16054 2011-05-23  Richard Guenther  <rguenther@suse.de>
16055
16056         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
16057         (iterative_hash_gimple_type): Always hash type names.
16058
16059 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
16060
16061         * c-typeck.c (build_function_call_vec): Tweak call to
16062         check_function_arguments.
16063
16064 2011-05-23  Richard Guenther  <rguenther@suse.de>
16065
16066         PR tree-optimization/49115
16067         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
16068         is not necessarily carried out, do not claim it kills the ref.
16069         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
16070
16071 2011-05-23  Richard Guenther  <rguenther@suse.de>
16072
16073         PR middle-end/15419
16074         * builtins.c (fold_builtin_memory_op): Be less restrictive about
16075         what pointer types we accept for folding.
16076
16077 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16078
16079         * gthr-gnat.c: Remove.
16080         * gthr-gnat.h: Remove.
16081         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
16082         * config/t-freebsd (LIB2ADDEH): Likewise.
16083         * config/t-linux (LIB2ADDEH): Likewise.
16084         * config/t-sol2 (LIB2ADDEH): Likewise.
16085         * config/ia64/t-vms (LIB2ADDEH): Likewise.
16086         * configure.ac (target_thread_file): Remove gnat handling.
16087         * configure: Regenerate.
16088         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
16089
16090 2011-05-23  Tristan Gingold  <gingold@adacore.com>
16091             Eric Botcazou  <ebotcazou@adacore.com>
16092
16093         * gcov.c (create_file_names): If no object directory is specified,
16094         keep the directory of the file.
16095
16096 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16097
16098         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
16099         * configure: Regenerate.
16100
16101 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16102
16103         PR middle-end/48973
16104         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
16105         failed and the comparison has a single bit signed type, use
16106         constm1_rtx instead of const1_rtx for true value.
16107         (do_store_flag): If ops->type is single bit signed type, disable
16108         signel bit test optimization and pass -1 instead of 1 as last
16109         parameter to emit_store_flag_force.
16110
16111 2011-05-23  Tom de Vries  <tom@codesourcery.com>
16112
16113         PR target/45098
16114         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
16115         function.
16116         (infer_loop_bounds_from_undefined): Use new function.
16117
16118 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16119
16120         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
16121         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
16122         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
16123         and -O0 otherwise.
16124         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
16125
16126 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16127
16128         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
16129         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
16130         returns true.
16131
16132 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16133
16134         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
16135
16136 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16137
16138         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
16139         UNSPEC_MOVE_PIC pattern.
16140
16141 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16142
16143         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
16144         (sparc-*-rtems*): Likewise.
16145         (sparc64-*-elf*): Likewise.
16146         (sparc64-*-rtems*): Likewise.
16147         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
16148         * config/sparc/t-crtin: New file.
16149         * config/sparc/t-sol2 (crti.o): Delete rule.
16150         (crtn.o): Likewise.
16151         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
16152         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
16153         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
16154         (ENDFILE_SPEC): Add crtn.o.
16155
16156 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16157
16158         PR middle-end/48689
16159         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
16160         CODE_CONTAINS_STRUCT (TS_COMMON).
16161
16162 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
16163
16164         PR middle-end/49029
16165         * expmed.c (extract_fixed_bit_field): Test whether target can be used
16166         only after deciding which mode to use.
16167
16168 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16169
16170         PR target/45098
16171         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
16172         for call to get_shiftadd_cost.
16173
16174 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
16175
16176         PR target/49104
16177         * config/i386/cpuid.h (bit_MMXEXT): New define.
16178
16179 2011-05-22  Nick Clifton  <nickc@redhat.com>
16180
16181         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
16182         initialisation of non-existant args[2] element.  Use args[] array
16183         not arg[] array to pass arguments to build_function_type_list.
16184
16185 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
16186
16187         PR tree-optimization/49087
16188         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
16189
16190 2011-05-21  Jason Merrill  <jason@redhat.com>
16191
16192         PR c++/49092
16193         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
16194         static storage duration.
16195
16196 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16197
16198         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
16199         frame pointer.
16200
16201 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16202
16203         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
16204         false if there are call-saved registers here...
16205         (sparc_can_use_return_insn_p): ...but here instead.
16206         (save_or_restore_regs): Fix thinko.
16207         (sparc_expand_prologue): Use current_function_is_leaf.
16208         (sparc_frame_pointer_required): Likewise.
16209
16210 2011-05-21  Nick Clifton  <nickc@redhat.com>
16211
16212         PR target/49098
16213         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
16214
16215 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16216
16217         * gengtype.c (walk_type): Implemented "atomic" GTY option.
16218         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
16219
16220 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
16221
16222         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
16223         * optc-gen.awk: Move common code to opt-read.awk.
16224         * opth-gen.awk: Likewise.
16225         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
16226
16227 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
16228
16229         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
16230
16231 2011-05-20  Tom de Vries  <tom@codesourcery.com>
16232
16233         PR target/45098
16234         * tree-ssa-loop-ivopts.c: Include expmed.h.
16235         (get_shiftadd_cost): New function.
16236         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
16237
16238 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16239
16240         PR bootstrap/49086
16241         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
16242         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
16243
16244 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16245
16246         * Makefile.in: Update comment referring to $(OBJS-common).
16247
16248 2011-05-20  Ian Lance Taylor  <iant@google.com>
16249
16250         * godump.c (go_output_typedef): Put enum constants in the macro
16251         hash table to avoid duplicate Go const definitions.
16252
16253 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16254
16255         * Makefile.in (LIBDEPS): Add libcommon.a.
16256         (LIBS): Likewise.
16257         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
16258         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
16259         pretty-print.o and version.o.
16260         (OBJS-libcommon): New.
16261         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
16262         (BACKEND): Add libcommon.a.
16263         (MOSTLYCLEANFILES): Likewise.
16264         (libcommon.a): New.
16265         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
16266         (cpp$(exeext)): Likewise.
16267         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
16268         pretty-print.o and input.o.
16269         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
16270         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
16271         (errors.o): Remove.
16272         (mips-tfile): Don't explicitly use version.o.
16273         (mips-tdump): Likewise.
16274         (gcov.o): Depend on $(DIAGNOSTIC_H).
16275         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
16276         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
16277         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
16278         * gcov-dump.c: Include intl.h and diagnostic.h.
16279         (main): Initialize diagnostics.
16280         * gcov.c: Include diagnostic.h.
16281         (fnotice): Remove.
16282         (main): Initialize diagnostics.
16283         * lto-wrapper.c: Include diagnostic.h.
16284         (main): Initialize diagnostics.
16285
16286 2011-05-20  Michael Matz  <matz@suse.de>
16287
16288         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
16289
16290 2011-05-20  Michael Matz  <matz@suse.de>
16291             Richard Guenther  <rguenther@suse.de>
16292
16293         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
16294         use lto_streamer_cache_append directly instead of returning a VEC.
16295         (preload_common_node): Remove.
16296         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
16297         track seen nodes.
16298         (lto_streamer_cache_create): Call lto_preload_common_nodes.
16299
16300 2011-05-20  Richard Guenther  <rguenther@suse.de>
16301
16302         PR tree-optimization/49079
16303         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
16304         MEM_REFs correctly for the trailing array access detection.
16305         Special case constants the same way as decls for overall size
16306         constraining.
16307
16308 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
16309
16310         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
16311         argument expansion.
16312
16313 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16314
16315         PR tree-optimization/49073
16316         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
16317         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
16318         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
16319
16320 2011-05-20  Richard Guenther  <rguenther@suse.de>
16321
16322         PR middle-end/48849
16323         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
16324         of pointer types the same way the middle-end does.
16325
16326 2011-05-20  Richard Guenther  <rguenther@suse.de>
16327
16328         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
16329         or pointer-to chains.  Delay all fixup to uniquify_nodes.
16330
16331 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
16332
16333         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
16334         (fma4_fmaddsub): Likewise
16335
16336 2011-05-19  Jan Hubicka  <jh@suse.cz>
16337
16338         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
16339         (GIMPLE_TYPE_PAIR_SIZE): New macro.
16340         (type_pair_cache): New static var.
16341         (lookup_type_pair): Use fixed sized custom hash; make inline.
16342         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
16343         calls of lookup_type_pair.
16344         (print_gimple_types_stats): Remove cache stats.
16345         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
16346         and gtc_ob.
16347
16348 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
16349
16350         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
16351         when TARGET_RDRND is active.
16352         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
16353         Generate dummy SImode target register when target is NULL.
16354
16355 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16356
16357         * config/arm/arm-fpus.def: New.
16358         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
16359         arm-fpus.def.
16360         * config/arm/arm-tables.opt: Regenerate.
16361         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
16362         (arm_option_override): Don't decode FPU name to string here.
16363         * config/arm/arm.opt (mfpu=): Use Enum.
16364         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
16365         Update dependencies.
16366
16367 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16368
16369         * collect2.c: Include diagnostic.h.
16370         (fatal_perror, fatal, error, fancy_abort): Remove.
16371         (main): Set progname.  Call xmalloc_set_program_name and
16372         diagnostic_initialize.
16373         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
16374         scan_libraries, resolve_lib_name): Call fatal_error instead of
16375         fatal and fatal_perror.
16376         * collect2.h (error, fatal, fatal_perror): Don't declare.
16377         * tlink.c: Include diagnostic-core.h.
16378         (recompile_files): Call fatal_error instead of fatal_perror.
16379         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
16380         pretty-print.o and input.o.
16381         (collect2.o, tlink.o): Update dependencies.
16382
16383 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16384
16385         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
16386
16387 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16388
16389         PR target/40483
16390         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
16391         COMDAT group syntax, both SPARC and x86 variants.
16392         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
16393         * configure: Regenerate.
16394         * config/sol2.h (TARGET_SOLARIS): Define.
16395         (PUSHSECTION_FORMAT): Remove.
16396         (SECTION_NAME_FORMAT): Define.
16397         * config/sol2.c: Include hashtab.h.
16398         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
16399         expansion, using SECTION_NAME_FORMAT.
16400         (solaris_comdat_htab): New variable.
16401         (struct comdat_entry): Define.
16402         (comdat_hash): New function.
16403         (comdat_eq): New function.
16404         (solaris_elf_asm_comdat_section): New function.
16405         (solaris_define_comdat_signature): New function.
16406         (solaris_code_end): New function.
16407         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
16408         (solaris_code_end): Declare.
16409         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
16410         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
16411         solaris_code_end.
16412         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
16413         Remove ATTRIBUTE_UNUSED.
16414         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
16415         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
16416         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
16417         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
16418         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
16419         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
16420         (PUSHSECTION_FORMAT): Remove.
16421         (SECTION_NAME_FORMAT): Redefine.
16422
16423 2011-05-19  Kai Tietz  <ktietz@redhat.com>
16424
16425         * tree-cfg.c (verify_gimple_assign_binary): Barf on
16426         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16427         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
16428
16429 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
16430             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16431
16432         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
16433
16434 2011-05-19  Richard Guenther  <rguenther@suse.de>
16435
16436         PR middle-end/48985
16437         * tree-object-size.c (addr_object_size): If the pointed-to
16438         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
16439
16440 2011-05-19  Richard Guenther  <rguenther@suse.de>
16441
16442         * gimple.c (gimple_types_compatible_p_1): Compare names of
16443         the types themselves.
16444         (iterative_hash_gimple_type): And hash them that way.
16445         (gimple_register_type_1): If we register a main variant properly
16446         initialize the leader to ourselves.
16447
16448 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16449
16450         PR target/45098
16451         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
16452         get_loop_invariant_expr_id.
16453         (get_loop_invariant_expr_id): Use get_expr_id.
16454         (parm_decl_cost): New function.
16455         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
16456         Improve bound cost estimation.  Use different inv_expr_id for elim and
16457         express cases.
16458
16459 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16460
16461         PR target/45098
16462         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
16463         cost_base.cost == 0.
16464
16465 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
16466
16467         PR target/49002
16468         * config/i386/sse.md
16469         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
16470         load cast.
16471
16472 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16473
16474         PR tree-optimization/49039
16475         * tree-vrp.c (extract_range_from_binary_expr): For
16476         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
16477         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
16478
16479 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16480
16481         PR target/45098
16482         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
16483
16484 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
16485
16486         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
16487         (*tls_global_dynamic_64): Ditto.
16488         (*tls_local_dynamic_base_32_gnu): Ditto.
16489         (*tls_local_dynamic_base_64): Ditto.
16490         (tls_initial_exec_64_sun): Ditto.
16491
16492 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
16493
16494         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
16495         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
16496         bf592-none.
16497         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
16498         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
16499         * config/bfin/bfin.c (bfin_cpus): Add bf592.
16500         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
16501         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
16502         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
16503         * config/bfin/elf.h (LIB_SPEC): Add bf592.
16504
16505 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
16506
16507         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
16508         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
16509         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
16510         target_thread_pointer, arm_structure_size_boundary, struct
16511         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
16512         struct abi_name, arm_all_abis): Remove.
16513         (arm_option_override) Don't process most enumerated option values here.
16514         Don't process target_fpe_name here.  Work with integer not string for
16515         structure size boundary; use separate diagnostics for each case.
16516         * config/arm/arm.h (enum float_abi_type, enum
16517         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
16518         to arm-opts.h.
16519         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
16520         arm_structure_size_boundary): Remove.
16521         * config/arm/arm.opt (mabi=): Use Enum and Init.
16522         (arm_abi_type): New Enum and EnumValue entries.
16523         (mfloat-abi=): Use Enum and Init.
16524         (float_abi_type): New Enum and EnumValue entries.
16525         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
16526         (mfp16-format=): Use Enum and Init.
16527         (arm_fp16_format_type): New Enum and EnumValue entries.
16528         (mstructure-size-boundary=): Use UInteger and Init.
16529         (mtp=): Use Enum and Init.
16530         (arm_tp_type): New Enum and EnumValue entries.
16531
16532 2011-05-18  Richard Guenther  <rguenther@suse.de>
16533
16534         PR tree-optimization/49018
16535         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
16536         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
16537         gimple_has_side_effects.
16538
16539 2011-05-18  Richard Guenther  <rguenther@suse.de>
16540
16541         * gimple.c (gimple_register_type_1): New function, split out from ...
16542         (gimple_register_type): ... here.  Avoid infinite recursion.
16543
16544 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16545
16546         PR tree-optimization/41881
16547         * tree-vectorizer.h (struct _loop_vec_info): Add new field
16548         reduction_chains along with a macro for its access.
16549         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
16550         (destroy_loop_vec_info): Free reduction chains.
16551         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
16552         (vect_is_slp_reduction): New function.
16553         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
16554         (vect_create_epilog_for_reduction): Support SLP reduction chains.
16555         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
16556         definition types for reduction chains.
16557         (vect_supported_load_permutation_p): Don't allow permutations for
16558         reduction chains.
16559         (vect_analyze_slp_instance): Support reduction chains.
16560         (vect_analyze_slp): Try to build SLP instance from reduction chains.
16561         (vect_get_constant_vectors):  Handle reduction chains.
16562         (vect_schedule_slp_instance): Mark the first statement of the
16563         reduction chain as reduction.
16564
16565 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16566
16567         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
16568         names for group elements access.
16569         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
16570         reduction chains as well.  Remove data reference and interleaving
16571         related words from the fields names.
16572         * tree-vect-loop.c (vect_transform_loop): Use new names for group
16573         elements access.
16574         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
16575         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
16576         vect_update_interleaving_chain, vect_same_range_drs,
16577         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
16578         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
16579         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
16580         vect_analyze_group_access, vect_analyze_data_ref_access,
16581         vect_create_data_ref_ptr, vect_transform_strided_load,
16582         vect_record_strided_load_vectors): Likewise.
16583         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
16584         vect_model_load_cost, vectorizable_store, vectorizable_load,
16585         vect_remove_stores, new_stmt_vec_info): Likewise.
16586         * tree-vect-slp.c (vect_build_slp_tree,
16587         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
16588
16589 2011-05-18  Richard Guenther  <rguenther@suse.de>
16590
16591         PR middle-end/48989
16592         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
16593         operand verification.
16594         (verify_gimple_assign_binary): Likewise.
16595         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
16596         to non-1-precision BOOLEAN_TYPEs.
16597
16598 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16599
16600         PR target/45098
16601         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
16602
16603 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16604
16605         PR tree-optimization/49000
16606         * tree-ssa.c (execute_update_addresses_taken): Call
16607         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
16608         be rewritten and decl has been marked for renaming, reset
16609         the debug stmt.
16610
16611 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
16612
16613         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
16614         enum_opts_set when testing if attributes have set -mfpmath=.
16615
16616 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
16617
16618         * config/mips/mips.c (mips_handle_option): Remove unused variable.
16619
16620 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16621
16622         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
16623         info->entry with 0
16624         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
16625         id.transform_lang_insert_block with NULL.
16626
16627 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16628
16629         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
16630         (output_fp_compare): Change args 3 and 4 to bool.
16631         (ix86_expand_call): Change arg 6 to bool.
16632         (ix86_attr_length_immediate_default): Change arg 2 to bool.
16633         (ix86_attr_length_vex_default): Change arg 3 to bool.
16634         * config/i386/i386.md: Update all uses.
16635         * config/i386/i386.c: Ditto.
16636         (ix86_flags_dependent): Change return type to bool.
16637
16638 2011-05-17  Richard Guenther  <rguenther@suse.de>
16639
16640         * gimple.c (type_hash_pair_compare): Fix comparison.
16641
16642 2011-05-17  Richard Guenther  <rguenther@suse.de>
16643
16644         * gimple.c (iterative_hash_gimple_type): Simplify singleton
16645         case some more, fix final hash value of the non-singleton case.
16646
16647 2011-05-17  Richard Guenther  <rguenther@suse.de>
16648
16649         PR bootstrap/49013
16650         Revert
16651         2011-05-16  Richard Guenther  <rguenther@suse.de>
16652
16653         * gimple.c (gimple_types_compatible_p_1): Use names of the
16654         type itself, not its main variant.
16655         (iterative_hash_gimple_type): Likewise.
16656
16657 2011-05-17  Richard Guenther  <rguenther@suse.de>
16658
16659         * gimple.c (gimple_register_canonical_type): Use the main-variant
16660         leader for computing the canonical type.
16661
16662 2011-05-17  Nick Clifton  <nickc@redhat.com>
16663
16664         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
16665         moves.
16666
16667         * config/rx/rx.md: Add peephole to remove redundant extensions
16668         after loads.
16669         (bitset_in_memory): Use rx_restricted_mem_operand.
16670         (bitinvert_in_memory): Likewise.
16671         (bitclr_in_memory): Likewise.
16672
16673 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
16674             Nick Clifton  <nickc@redhat.com>
16675
16676         * config/rx/rx.md: Add peepholes to match a register move followed
16677         by a comparison of the moved register.  Replace these with an
16678         addition of zero that does both actions in one instruction.
16679
16680 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
16681
16682         PR target/48986
16683         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
16684         predicate to allow CONST_INT.
16685         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
16686
16687 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16688
16689         * opts-common.c (opt_enum_arg_to_value): New.
16690         * opts.h (opt_enum_arg_to_value): Declare.
16691         * config/i386/i386.opt (fpmath): Remove.
16692         (mfpmath=): Use Enum, Init and Save.
16693         (fpmath_unit): New Enum and EnumValue entries.
16694         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
16695         name for function fpmath state.
16696         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
16697         * config/i386/i386.c: Include diagnostic.h.
16698         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
16699         (ix86_target_string): Take enum fpmath_unit value instead of string.
16700         (ix86_debug_options): Update call to ix86_target_string.
16701         (ix86_option_override_internal): Don't process fpmath strings here.
16702         (x86_function_specific_save, ix86_function_specific_restore):
16703         Don't handle fpmath state specially.
16704         (ix86_function_specific_print): Pass fpmath state to
16705         ix86_target_string instead of printing in this function.
16706         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
16707         Handle enum attributes.
16708         (IX86_ATTR_ENUM, ix86_opt_enum): New.
16709         (ix86_valid_target_attribute_tree): Update option_strings
16710         handling.  Handle fpmath as enum option.
16711         (ix86_can_inline_p): Update field names for function fpmath state.
16712         (ix86_expand_builtin): Update call to ix86_target_string.
16713         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
16714         (ix86_fpmath): Remove.
16715         * config/i386/t-i386 (i386.o): Update dependencies.
16716
16717 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16718
16719         PR preprocessor/48677
16720         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
16721         from decoded_options[0], not from itself.
16722
16723 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
16724
16725         * config/i386/constraints.md (z): New constraint.
16726         * config/i386/i386.c (c): New mode attribute.
16727         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
16728         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
16729         constraint for operand 0.
16730         (*call_vzeroupper): Ditto.
16731         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
16732         (*call_rex64_ms_sysv_vzeroupper): Ditto.
16733         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
16734         Use "lzm" constraint for operand 0.
16735         (*call_pop_vzeroupper): Ditto.
16736         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
16737         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
16738         constraint for operand 0.
16739         (*sibcall_vzeroupper): Ditto.
16740         (*sibcall_rex64_ms_sysv): Ditto.
16741         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
16742         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
16743         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
16744         (*sibcall_pop_vzeroupper): Ditto.
16745         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
16746         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
16747         mode iterator.  Use "<c>zm" constraint for operand 1.
16748         (*call_value_vzeroupper): Ditto.
16749         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
16750         for operand 1.
16751         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
16752         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
16753         *call_value_pop_1.  Use "lzm" constraint for operand 1.
16754         (*call_value_pop_vzeroupper): Ditto.
16755         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
16756         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
16757         mode iterator.  Use "Uz" constraint for operand 1.
16758         (*sibcall_value_vzeroupper): Ditto.
16759         (*sibcall_value_rex64_ms_sysv): Ditto.
16760         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
16761         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
16762         constraint for operand 1.
16763         (*sibcall_value_pop_vzeroupper): Ditto.
16764         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
16765         and "z" constraint for operand 2.
16766         (*tls_global_dynamic_32_gnu): Ditto.
16767         (*tls_local_dynamic_base_32_gnu): Ditto.
16768         (*tls_local_dynamic_base_64): Ditto.
16769         (*tls_local_dynamic_32_once): Ditto.
16770         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
16771         Update all callers.
16772         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
16773
16774 2011-05-16  Richard Guenther  <rguenther@suse.de>
16775
16776         * gimple.c (gimple_types_compatible_p_1): Use names of the
16777         type itself, not its main variant.
16778         (iterative_hash_gimple_type): Likewise.
16779
16780 2011-05-16  Richard Guenther  <rguenther@suse.de>
16781
16782         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
16783         always visit pointer target and function result and argument types.
16784
16785 2011-05-16  Jason Merrill  <jason@redhat.com>
16786
16787         PR c++/48999
16788         * tree-inline.c (copy_statement_list): Put back recursion.
16789
16790 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16791
16792         PR target/27663
16793         PR target/41076
16794         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
16795         * config/avr/avr.md ("*ior<mode>qi.byte0",
16796         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
16797
16798 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16799
16800         PR target/45099
16801         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
16802         register is needed for a function argument.
16803
16804 2011-05-16  Richard Guenther  <rguenther@suse.de>
16805
16806         * gimple.c (struct type_hash_pair): New type.
16807         (type_hash_pair_compare): New function.
16808         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
16809
16810 2011-05-16  Revital Eres  <revital.eres@linaro.org>
16811
16812         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
16813
16814 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16815
16816         * config/i386/i386.md (floating point move splitters): Fix
16817         usage of standard_80387_constant_p.
16818         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
16819
16820 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16821
16822         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
16823
16824 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16825
16826         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
16827         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
16828         (tree_ssa_lim_finalize): Likewise.
16829
16830 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
16831
16832         * config/i386/constraint.md (Yd, Yx): New register constraints.
16833         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
16834         Yd conditional register constraint.
16835         (*movtf_internal): Use standard_sse_constant_opcode.
16836         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
16837         Yx conditional register constraint.
16838         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
16839         Yd conditional register constraint.  Use standard_sse_constant_p to
16840         check for valid SSE constants and call standard_sse_constant_opcode to
16841         output SSE insn.
16842         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
16843         constants and call standard_sse_constant_opcode to output SSE insn.
16844         * config/i386/i386.c (ix86_option_ovverride_internal): Set
16845         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
16846         optimize_size is set.
16847         (standard_sse_constant_opcode): Output conditional AVX insn templates.
16848
16849 2011-05-14  Tobias Burnus  <burnus@net-b.de>
16850
16851         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
16852
16853 2011-05-13  Martin Jambor  <mjambor@suse.cz>
16854
16855         * ipa-prop.c (ipa_cst_from_jfunc): New function.
16856         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
16857         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
16858         (evaluate_conditions_for_ipcp_clone): Removed.
16859         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
16860         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
16861         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
16862
16863 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
16864
16865         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
16866         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
16867         lieu of MAY_HAVE_DEBUG_STMTS.
16868         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
16869         debug statements if !MAY_HAVE_DEBUG_STMTS.
16870
16871 2011-05-13  Martin Thuresson  <martint@google.com>
16872
16873         PR gcov-profile/47793
16874         * libgcov.c (gcov_exit): Support relative profile paths.
16875         * doc/invoke.texi (-fprofile-dir): Update for above change.
16876
16877 2011-05-13  Richard Guenther  <rguenther@suse.de>
16878
16879         * gimple.c (gimple_canonical_types_compatible_p): Do not use
16880         type-pair caching, do not compare hashes.
16881
16882 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
16883
16884         PR middle-end/48965
16885         * tree-cfg.c (edge_to_cases_cleanup): Return true.
16886         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
16887
16888 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16889
16890         * gimplify.c (gimplify_expr): Make sure operand is boolified.
16891         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
16892         compatible type for TRUTH_NOT_EXPR.
16893
16894 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16895
16896         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
16897         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
16898         can_create_pseudo_p ().
16899
16900 2011-05-13  Richard Guenther  <rguenther@suse.de>
16901
16902         PR lto/48978
16903         * gimple.c (iterative_hash_gimple_type): Revert change in
16904         pointer target and function result and argument hashing.
16905
16906 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
16907
16908         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
16909         (*movxf_internal_nointeger): Ditto.
16910         (*movdf_internal_rex64): Ditto.
16911         (*movdf_internal): Ditto.
16912         (*movdf_internal_nointeger): Ditto.
16913         (*movsf_internal): Ditto.
16914         (sincos splitters): Use can_create_pseudo ().
16915
16916 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
16917
16918         * config/i386/i386-opts.h: New.
16919         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
16920         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
16921         ix86_section_threshold): Remove.
16922         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
16923         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
16924         OPT_mbranch_cost_.
16925         (ix86_option_override_internal): Don't decode strings for options
16926         other than -march=, -mtune= and -mfpmath=.  Don't allow for
16927         __attribute__ uses in remaining diagnostics for options with
16928         string arguments.  Don't check for integer arguments being negative.
16929         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
16930         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
16931         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
16932         ix86_branch_cost, ix86_section_threshold): Remove.
16933         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
16934         HeaderInclude.
16935         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
16936         but not Var.
16937         (masm=): Use Enum and Init.
16938         (asm_dialect): New Enum and EnumValue entries.
16939         (mbranch-cost=): Use UInteger.
16940         (mlarge-data-threshold=): Use UInteger and Init.
16941         (mcmodel=): Use Enum and Init.
16942         (cmodel): New Enum and EnumValue entries.
16943         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
16944         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
16945         mregparm=): Use UInteger.
16946         (mstringop-strategy=): Use Enum and Init.
16947         (stringop_alg): New Enum and EnumValue entries.
16948         (mtls-dialect=): Use Enum and Init.
16949         (tls_dialect): New Enum and EnumValue entries.
16950         (mabi=): Use Enum and Init.
16951         (calling_abi): New Enum and EnumValue entries.
16952         (mveclibabi=): Use Enum and Init.
16953         (ix86_veclibabi): New Enum and EnumValue entries.
16954
16955 2011-05-13  Nick Clifton  <nickc@redhat.com>
16956
16957         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
16958         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
16959
16960 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16961
16962         PR middle-end/48984
16963         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
16964         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
16965         (gimple_boolify): Check for cast for boolean_type_node instead for
16966         BOOLEAN_TYPE.
16967
16968 2011-05-13  Richard Guenther  <rguenther@suse.de>
16969
16970         PR tree-optimization/48172
16971         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
16972         multiplying by number of iterations for equal step.
16973         (vect_create_cond_for_alias_checks): Likewise.
16974
16975 2011-05-13  Andreas Schwab  <schwab@redhat.com>
16976
16977         * configure.ac: Use AS_HELP_STRING throughout.
16978         * configure: Regenerate.
16979
16980 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16981
16982         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
16983         (ix86_emit_restore_regs_using_mov): Likewise.
16984         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16985
16986 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
16987
16988         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
16989         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
16990         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
16991         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
16992         RTX_OK_FOR_OLO10_P): ...here.
16993         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
16994         SYMBOLIC_CONST.
16995
16996 2011-05-12  Kai Tietz  <ktietz@redhat.com>
16997
16998         * gimplify.c (gimple_boolify): Re-boolify expression
16999         arguments even if expression type is of kind BOOLEAN_TYPE.
17000         (gimplify_boolean_expr): Removed.
17001         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
17002         and XOR. Additional take care that we keep expression's type.
17003         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
17004         of TRUTH_AND|OR|XOR_EXPR.
17005
17006 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17007
17008         PR tree-optimization/48975
17009         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
17010         on all bbs here and free and clear ifc_bbs at the end.
17011
17012 2011-05-12  Richard Guenther  <rguenther@suse.de>
17013
17014         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
17015         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
17016         until after simple checks.
17017         (gimple_types_compatible_p): Likewise.
17018         (iterative_hash_gimple_type): Always hash pointer targets
17019         and function return and argument types.
17020         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
17021         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
17022         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
17023         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
17024         completely in the simple compare section.
17025         (gimple_register_canonical_type): Query the cache again after
17026         registering.
17027
17028 2011-05-12  Richard Guenther  <rguenther@suse.de>
17029
17030         PR tree-optimization/48172
17031         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
17032         the number of iterations from the segment size calculation.
17033         (vect_create_cond_for_alias_checks): Adjust.
17034
17035 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
17036
17037         PR debug/48967
17038         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
17039         if validate_subreg fails.
17040
17041 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
17042
17043         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
17044         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
17045         early.
17046
17047 2011-05-12  DJ Delorie  <dj@redhat.com>
17048
17049         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
17050         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
17051         created builtin into rx_builtins array.
17052         (rx_builtin_decl): New function.
17053         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
17054
17055 2011-05-12  DJ Delorie  <dj@redhat.com>
17056             Nick Clifton  <nickc@redhat.com>
17057
17058         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
17059         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
17060         (rx_is_legitimate_address): Add pre-decrement and post-increment
17061         addressing in HImode and QImode.  Fix test for out of range
17062         REG+INT addressing.
17063         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
17064         (rx_align_for_label): Test label before extracting its usage count.
17065         (rx_adjust_insn_lengths): Fix selection of insn codes.
17066         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
17067
17068 2011-05-11  Jason Merrill  <jason@redhat.com>
17069
17070         * tree.c (type_hash_canon): Use struct tree_type_non_common.
17071
17072 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17073
17074         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
17075         reindent the subsequent block.
17076
17077 2011-05-11  Satoru Takabayashi  <satorux@google.com>
17078             Paul Pluzhnikov  <ppluzhnikov@google.com>
17079
17080         * doc/install.texi (Configuration): Document --with-linker-hash-style.
17081         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
17082         * config.in: Add LINKER_HASH_STYLE.
17083         * configure.ac: Add --with-linker-hash-style.
17084         * configure: Regenerate.
17085
17086 2011-05-11  Richard Guenther  <rguenther@suse.de>
17087
17088         PR middle-end/48964
17089         * gimple.c (iterative_hash_canonical_type): Fix typo.
17090
17091 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
17092
17093         * config/i386/i386.c (legitimize_tls_address)
17094         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17095         expanders directly for TARGET_GNU2_TLS.  Determine pic and
17096         __tls_get_addr symbol reference here.  Update call to
17097         gen_tls_global_dynamic_{32,64} for added arguments.
17098         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17099         expanders directly for TARGET_GNU2_TLS.  Determine
17100         __tls_get_addr symbol reference here.  Update call to
17101         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
17102         unique UNSPEC REG_EQUIV to libcall block.
17103         (ix86_tls_get_addr): Declare static.
17104         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
17105         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
17106         Do not determine pic and __tls_get_addr symbol reference here. Do not
17107         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
17108         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
17109         (tls_global_dynamic_64): Add operand 2.  Do not determine
17110         __tls_get_addr symbol reference here.  Do not call
17111         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
17112         (tls_local_dynamic_base64): Ditto for operand 1.
17113
17114 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17115
17116         * function.c (expand_function_start): Initialize stack_check_probe_note
17117         only if the generic stack checking mechanism is used.
17118
17119 2011-05-11  Richard Guenther  <rguenther@suse.de>
17120
17121         PR tree-optimization/15256
17122         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
17123         (A & B) | C, combine (A op CST1) op CST2.
17124         (tree_ssa_forward_propagate_single_use_vars): Only bother to
17125         visit assigns that have uses.
17126
17127 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
17128
17129         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
17130         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
17131         (unpack_ts_type_common_value_fields): ...this.  Update comment.
17132         (unpack_value_fields): Adjust for renaming.
17133         (lto_input_ts_type_tree_pointers): Split into...
17134         (lto_input_ts_type_common_tree_pointer): ...this and...
17135         (lto_input_ts_type_non_common_tree_pointers): ...this.
17136         (lto_input_tree_pointers): Adjust for above split.
17137         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
17138         (pack_ts_type_common_value_fields): ...this.  Update comment.
17139         (lto_output_ts_type_tree_pointers): Split into...
17140         (lto_output_ts_type_common_tree_pointers): ...this and...
17141         (lto_output_ts_type_non_common_tree_pointers): ...this.
17142         (lto_output_tree_pointers): Adjust for above split.
17143         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
17144         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
17145         * stor-layout.c (vector_type_mode): Adjust location of mode field.
17146         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
17147         Define.
17148         (struct tree_type): Split into...
17149         (struct tree_type_common: ...this and...
17150         (struct tree_type_with_lang_specific): ...this and...
17151         (struct tree_type_non_common): ...this.  Adjust accessor macros
17152         accordingly.
17153         (TYPE_VALUES_RAW): Define.
17154         (union tree_node): Update for above changes.
17155         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
17156         TS_TYPE_NON_COMMON.
17157         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
17158         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
17159         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
17160         * treestructu.def (TS_TYPE): Remove.
17161         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
17162         Define.
17163
17164 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
17165
17166         PR debug/48159
17167         * tree-ssa.c (reset_debug_uses): New function.
17168         * tree-flow.h (reset_debug_uses): New prototype.
17169         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
17170         * tree-loop-distribution.c (generate_loops_for_partition): Call
17171         reset_debug_uses on the stmts that will be removed.  Keep around
17172         all debug stmts, don't count them as bits in partition bitmap.
17173         (generate_builtin): Don't count debug stmts or labels as bits in
17174         partition bitmap.
17175
17176 2011-05-11  Richard Guenther  <rguenther@suse.de>
17177
17178         * gimple.c (gimple_type_hash_1): Merge with ...
17179         (gimple_type_hash): ... this.
17180         (gtc_visit): Remove mode parameter and simplify accordingly.
17181         (gimple_types_compatible_p_1): Likewise.
17182         (gimple_types_compatible_p): Likewise.
17183         (iterative_hash_gimple_type): Likewise.
17184         (visit): Likewise.
17185         (gimple_type_eq): Adjust.
17186
17187 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17188
17189         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
17190         enters the branch create an anti edge in the opposite direction
17191         to prevent the creation of reg-moves.
17192         * modulo-sched.c: Adjust comment to reflect the fact we are
17193         scheduling closing branch.
17194         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
17195         (stage_count): New field in struct partial_schedule.
17196         (calculate_stage_count): New function.
17197         (normalize_sched_times): Rename to reset_sched_times and handle
17198         incrementing the sched time of the nodes by a constant value
17199         passed as parameter.
17200         (duplicate_insns_of_cycles): Skip closing branch.
17201         (sms_schedule_by_order): Schedule closing branch.
17202         (ps_insn_find_column): Handle closing branch.
17203         (sms_schedule): Call reset_sched_times and adjust the code to
17204         support scheduling of the closing branch.
17205         (ps_insert_empty_row): Update calls to normalize_sched_times
17206         and rotate_partial_schedule functions.
17207
17208 2011-05-11  Richard Guenther  <rguenther@suse.de>
17209
17210         PR middle-end/48953
17211         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
17212
17213 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
17214
17215         * opts.c (finish_options): Move warning settings from process_options.
17216         * toplev.c (process_options): Move warning settings to finish_options.
17217
17218 2011-05-11  Richard Guenther  <rguenther@suse.de>
17219
17220         PR tree-optimization/18041
17221         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
17222         (simplify_bitwise_binary): ... this.  Handle operand conversions
17223         by applying them to the result instead.
17224         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
17225
17226 2011-05-11  Richard Guenther  <rguenther@suse.de>
17227
17228         * gimple.c (gimple_canonical_types_compatible_p): Split out
17229         from gimple_types_compatible_p and friends.  Do not recurse
17230         to pointed-to types.
17231         (gimple_canonical_type_eq): Use it.
17232         (iterative_hash_canonical_type): Split out from
17233         iterative_hash_gimple_type and friends.  Do not recurse
17234         to pointed-to types.
17235         (gimple_canonical_type_hash): Use it, allocate the hash here.
17236
17237 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17238
17239         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
17240         recognizing doloop.
17241
17242 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17243
17244         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
17245         instead of PREV_INSN.
17246
17247 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17248
17249         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
17250         * loop-doloop.c (doloop_condition_get): Likewise.
17251         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
17252         (doloop_end): New.
17253         * config/arm/arm.md (*addsi3_compare0): Remove "*".
17254
17255 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
17256
17257         * tree.def (CASE_LABEL_EXPR): Add an operand.
17258         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
17259
17260 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17261
17262         * c-decl.c (c_override_global_bindings_to_false): Remove.
17263         (global_bindings_p): Don't check
17264         c_override_global_bindings_to_false.
17265         * c-tree.h (c_override_global_bindings_to_false): Remove.
17266         * c-typeck.c (composite_type): Don't set
17267         c_override_global_bindings_to_false.
17268
17269 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17270
17271         PR target/48857, 48495
17272         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
17273         (VSX_MODE): Ditto.
17274         (VSX_MOVE_MODE): Ditto.
17275         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
17276         VSX vector types.  Add V2DImode.
17277         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
17278         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
17279         (MODES_TIEABLE_P): Ditto.
17280
17281         * config/rs6000/rs6000.c (rs6000_emit_move): Use
17282         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
17283         VSX_VECTOR_MODE.
17284         (init_cumulative_args): Ditto.
17285         (rs6000_function_arg_boundary): Ditto.
17286         (rs6000_function_arg_advance_1): Ditto.
17287         (rs6000_function_arg): Ditto.
17288         (rs6000_function_ok_for_sibcall): Ditto.
17289         (emit_frame_save): Ditto.
17290         (rs6000_function_value): Ditto.
17291         (rs6000_libcall_value): Ditto.
17292
17293 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17294
17295         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17296         i386/darwin-lib.h to $libgcc_tm_file.
17297         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
17298
17299 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17300
17301         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
17302
17303 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17304
17305         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
17306         * config/rs6000/rs6000-tables.opt: New file (generated).
17307         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
17308         rs6000/rs6000-tables.opt to extra_options.
17309         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
17310         * config/rs6000/rs6000.c (rs6000_select): Remove.
17311         (processor_target_table): Move contents to rs6000-cpus.def.
17312         (darwin_rs6000_override_options): Check
17313         global_options_set.x_rs6000_cpu_index instead of
17314         rs6000_select[1].string.
17315         (rs6000_option_override_internal): Likewise.
17316         (rs6000_handle_option): Don't assert that global structures are in
17317         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
17318         (rs6000_default_cpu): New variable.
17319         (rs6000_file_start): Set it instead of local default_cpu.  Check
17320         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
17321         global_options_set.x_rs6000_tune_index instead of rs6000_select.
17322         (rs6000_darwin_file_start): Check rs6000_default_cpu and
17323         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
17324         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
17325         rs6000_select): Remove.
17326         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
17327         Remove.
17328         (mcpu=, mtune=): Use Var, Init, Enum and Save.
17329         * config/rs6000/t-rs6000
17330         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
17331         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17332         global_options_set.x_rs6000_cpu_index instead of
17333         rs6000_select[1].string.
17334         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17335         global_options_set.x_rs6000_cpu_index instead of
17336         rs6000_select[1].string.
17337
17338 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17339
17340         * config.gcc (libgcc_tm_file): Define instead of including files
17341         from ../../libgcc/config/ in tm_file.
17342         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
17343         * configure: Regenerate.
17344         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
17345         libgcc_tm.h, cs-libgcc_tm.h): New.
17346         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
17347         (clean): Remove libgcc_tm.h.
17348         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
17349         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
17350         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
17351
17352 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
17353
17354         PR target/48896
17355         * config/avr/avr.c (avr_ret_register): Return unsigned int
17356         instead of int.
17357         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
17358         it to avr_libcall_value.
17359         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
17360         expand_expr.
17361         (avr_expand_binop_builtin): Ditto.
17362         (avr_expand_unop_builtin): Ditto.
17363
17364 2011-05-10  DJ Delorie  <dj@redhat.com>
17365
17366         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
17367         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
17368         * config/rx/rx.c (rx_align_for_label): Add label and
17369         uses_threshold parameters.  Do not align when the label is not
17370         used enough.
17371         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
17372
17373 2011-05-10  Richard Guenther  <rguenther@suse.de>
17374
17375         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
17376         a series of conversions and apply foldings similar to what
17377         fold-const does.
17378         (tree_ssa_forward_propagate_single_use_vars): Call it.
17379
17380 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
17381
17382         PR tree-optimization/48611
17383         PR tree-optimization/48794
17384         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
17385         referenced from RESX or EH_DISPATCH arguments.
17386
17387         PR debug/48928
17388         * dfp.c (decimal_to_decnumber): Handle conversion from
17389         dconst{1,2,m1,half}.
17390
17391 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17392
17393         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
17394         for !flag_prefer_avx128.
17395         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
17396
17397 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17398
17399         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
17400         (fold_ternary_loc): Use expr_location_or.
17401
17402 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17403
17404         PR debug/48853
17405         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
17406         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
17407         Pmode and mem_mode is not VOIDmode.
17408
17409 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
17410
17411         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
17412         TYPE_QUAL_RESTRICT): Convert to enum.
17413
17414 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17415
17416         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
17417         (const_pow2_1_to_8_operand): Ditto.
17418         (const_pow2_1_to_128_operand): Ditto.
17419         (const_pow2_1_to_32768_operand): Ditto.
17420         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
17421         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
17422         in insn constraint to check integer value of operand 3.
17423         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
17424
17425         (PINSR_MODE): New mode iterator.
17426         (sse2p4_1): New mode attribute.
17427         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
17428         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
17429         iterator.  Use const_int_operand instead of
17430         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
17431         exact_log2 in insn constraint to check integer value of operand 3.
17432
17433 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17434
17435         * config/i386/sse.md (blendbits): Remove mode attribute.
17436         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
17437         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
17438         Check integer value of operand 3 in insn constraint.
17439
17440 2011-05-09  Richard Guenther  <rguenther@suse.de>
17441
17442         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
17443         for diagnostics.
17444         (lto_symtab_merge): Likewise.  Do not register types here.
17445         (lto_symtab_merge_decls_2): Likewise.
17446         (lto_symtab_merge_decls_1): Likewise.
17447         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
17448         * gimple.c (enum gtc_mode): Declare.
17449         (gimple_types_compatible_p): Make static.
17450
17451 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17452
17453         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
17454         temporary register to match Pmode.
17455
17456 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17457
17458         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
17459         and *vec_concatv4si_1_avx.
17460
17461 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17462
17463         PR rtl-optimization/48927
17464         * ira-conflicts.c (commutative_constraint_p): Use
17465         recog_data.alternative_enabled_p to disable alternatives where
17466         "enabled" attribute is false.
17467         (get_dup_num): Ditto.
17468         * ira-lives.c (single_reg_class): Ditto.
17469         (ira_implicitly_set_insn_hard_regs): Ditto.
17470
17471 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17472
17473         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
17474         (dataflow_set_preserve_mem_locs): Likewise.
17475
17476 2011-05-09  Philipp Thomas  <pth@suse.de>
17477
17478         * config/mep/mep.c (mep_validate_vliw): Syntax description
17479         should not be translated.
17480
17481 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
17482
17483         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
17484         * config/mips/mips-tables.opt: New file (generated).
17485         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
17486         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
17487         MIPS_ARCH_OPTION_NATIVE): Define.
17488         * config/mips/mips.c (mips_cpu_info_table): Move contents to
17489         mips-cpus.def.
17490         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
17491         mips_parse_cpu): Remove.
17492         (mips_cpu_info_from_opt, mips_default_arch): New.
17493         (mips_handle_option): Don't assert that global structures are in
17494         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
17495         (mips_option_override): Use new variables and functions to set
17496         state of these options.  Use strcmp to check for individual CPU names.
17497         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
17498         definition.
17499         * config/mips/mips.opt (march=): Use ToLower and Enum.
17500         (mips): Use ToLower, Enum and Var.
17501         (mtune=): Use ToLower and Enum.
17502         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
17503
17504 2011-05-08  Jan Hubicka  <jh@suse.cz>
17505
17506         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
17507         Arrange type pairs to be UID ordered.
17508         (gimple_lookup_type_leader): Make inline.
17509
17510 2011-05-09  Nick Clifton  <nickc@redhat.com>
17511
17512         PR target/48899
17513         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
17514         PROCESSOR_DEFAULT.
17515
17516         PR target/48897
17517         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
17518         variable 's'.
17519
17520 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
17521
17522         * combine.c (simplify_comparison): Abstract out parts into...
17523         (simplify_compare_const): ... new function.
17524         (try_combine): Generalize parallel arithmetic/compare combining
17525         to call simplify_compare_const() and CANONICALIZE_COMPARE().
17526
17527 2011-05-08  Jan Hubicka  <jh@suse.cz>
17528
17529         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
17530         (cgraph_create_virtual_clone): Call hooks once virtual clone
17531         is finished.
17532         * cgraph.h (cgraph_clone_node): Update prototype.
17533         * ipa-cp.c (ipcp_estimate_growth): Use
17534         estimate_ipcp_clone_size_and_time.
17535         * ipa-inline-transform.c (clone_inlined_nodes): Update.
17536         * lto-cgraph.c (input_node): Update.
17537         * ipa-inline.c (recursive_inlining): Update.
17538         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
17539         (evaluate_conditions_for_known_args): Break out from ...
17540         (evaluate_conditions_for_edge): ... here.
17541         (evaluate_conditions_for_ipcp_clone): New function.
17542         (inline_node_duplication_hook): Update clone summary based
17543         on parameter map.
17544         (estimate_callee_size_and_time): Rename to ...
17545         (estimate_node_size_and_time): take NODE instead of EDGE;
17546         take POSSIBLE_TRUTHS as argument.
17547         (estimate_callee_size_and_time): Update.
17548         (estimate_ipcp_clone_size_and_time): New function.
17549         (do_estimate_edge_time): Update.
17550
17551 2011-05-08  Richard Guenther  <rguenther@suse.de>
17552
17553         PR middle-end/48908
17554         PR middle-end/48905
17555         * expmed.c (expand_shift_1): Compute adjusted constant shift
17556         amount manually.
17557
17558 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17559
17560         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
17561
17562 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17563
17564         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
17565
17566 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
17567
17568         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
17569
17570 2011-05-07  Jan Hubicka  <jh@suse.cz>
17571
17572         * ipa-inline-transform.c (inline_call): Account when program size
17573         decreases.
17574         * ipa-inline.c (relative_time_benefit): New function.
17575         (edge_badness): Reorganize to be power 2 based; fix thinko when
17576         computing badness for negative growth; update comments to match
17577         reality; better dumps.
17578
17579 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
17580
17581         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
17582         type to bool and adjust comment.
17583         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
17584         (fold_mathfn_compare): Remove calls to global_bindings_p.
17585         (fold_inf_compare): Likewise.
17586         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
17587         * c-tree.h (global_bindings_p): Adjust prototype.
17588         * c-decl.c (global_bindings_p): Return bool and simplify.
17589
17590 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
17591
17592         PR tree-optimization/48837
17593         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
17594         when accumulator transformation is performed.
17595
17596 2011-05-06  Jan Hubicka  <jh@suse.cz>
17597
17598         * i386.h (ix86_tune_indices): Add
17599         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
17600         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
17601         * i386.c (initial_ix86_tune_features): Add
17602         X86_SOFTARE_PREFETCHING_BENEFICIAL.
17603         (software_prefetching_beneficial_p): Remove predicate.
17604         (ix86_option_override_internal): Use new macro.
17605
17606 2011-05-06  Jan Hubicka  <jh@suse.cz>
17607
17608         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
17609
17610 2011-05-06  Jan Hubicka  <jh@suse.cz>
17611
17612         * cgraph.c (cgraph_add_thunk): Create real function node instead
17613         of alias node; finalize it and mark needed/reachale; arrange visibility
17614         to be right and add it into the corresponding same comdat group list.
17615         (dump_cgraph_node): Dump thunks.
17616         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
17617         cgraph_function_with_gimple_body_p,
17618         cgraph_first_function_with_gimple_body,
17619         cgraph_next_function_with_gimple_body): New functions.
17620         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
17621         New macros.
17622         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
17623         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17624         * cgraphunit.c (cgraph_finalize_function): Only look into possible
17625         devirtualization when optimizing.
17626         (verify_cgraph_node): Verify thunks.
17627         (cgraph_analyze_function): Analyze thunks.
17628         (cgraph_mark_functions_to_output): Output thunks only in combination
17629         with function they are assigned to.
17630         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
17631         alias into normal node.
17632         (assemble_thunks): New functoin.
17633         (cgraph_expand_function): Use it.
17634         * lto-cgraph.c (lto_output_node): Stream thunks.
17635         (input_overwrite_node): Stream in thunks.
17636         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
17637         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
17638         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
17639         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
17640         (inline_analyze_function): Do not care about thunk jump functions.
17641         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
17642         * ipa-prop.c (ipa_prop_write_jump_functions): Use
17643         cgraph_function_with_gimple_body_p.
17644         * passes.c (do_per_function_toporder): Use
17645         cgraph_function_with_gimple_body_p.
17646         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17647         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
17648         (function_called_by_processed_nodes_p): Likewise.
17649
17650 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17651
17652         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
17653         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
17654         entries.
17655         (mabi=): Replace with separate entries for mabi=altivec,
17656         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
17657         mabi=ieeelongdouble and mabi=ibmlongdouble.
17658         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
17659         check for -mabi=spe without SPE ABI support here.
17660         (rs6000_handle_option): Replace OPT_mabi_ handling with
17661         OPT_mabi_altivec and OPT_mabi_spe handling.
17662
17663 2011-05-06  Cary Coutant  <ccoutant@google.com>
17664
17665         * dwarf2out.c (contains_subprogram_definition): New function.
17666         (should_move_die_to_comdat): Call it.
17667
17668 2011-05-06  Jeff Law  <law@redhat.com>
17669
17670         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
17671         remove_ctrl_stmt_and_useless_edges.
17672         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
17673         (fixup_template_block, thread_single_edge): Likewise.
17674         (mark_threaded_blocks): Use THREAD_TARGET.
17675
17676 2011-05-06  Alan Modra  <amodra@gmail.com>
17677
17678         PR target/48900
17679         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17680         const0_rtx as the arg to the dummy __tls_get_addr libcall.
17681
17682 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17683
17684         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
17685         constraint modifier to "r".
17686
17687 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17688
17689         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
17690         fall through for OPT_mcmodel_.
17691
17692 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17693
17694         * config/s390/s390.c (s390_asm_trampoline_template): Comment
17695         instruction sizes.
17696         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
17697
17698 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17699
17700         PR target/47930
17701         * config/arm/arm.opt (marm): Document it.
17702         (mthumb): Reject negative variant.
17703
17704 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17705
17706         PR target/48898
17707         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17708         Fix typo in "ccvt" variable name.
17709
17710 2011-05-06  Tristan Gingold  <gingold@adacore.com>
17711
17712         PR target/48895
17713         * config/vms/vms-ar.c (main): Remove cwd variable.
17714
17715 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
17716
17717         PR debug/48902
17718         * var-tracking.c (prepare_call_arguments): Move else before #endif.
17719
17720 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
17721
17722         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
17723         * gimplify.c (gimplify_switch_expr): Likewise.
17724         * omp-low.c (expand_omp_sections): Likewise.
17725         * tree-eh.c (lower_try_finally_switch): Likewise.
17726         (lower_eh_dispatch): Likewise.
17727         * tree.h (build_case_label): Declare.
17728         * tree.c (build_case_label): Define.
17729
17730 2011-05-05  Jason Merrill  <jason@redhat.com>
17731
17732         PR c++/40975
17733         * tree-inline.c (copy_tree_r): Use copy_statement_list.
17734         (copy_statement_list): Don't recurse.
17735         * stor-layout.c (copy_self_referential_tree_r): Don't allow
17736         STATEMENT_LIST.
17737
17738 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17739
17740         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
17741         through from -mfpu= handling.
17742         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
17743
17744 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
17745
17746         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
17747         POST_MODIFY.
17748
17749 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
17750
17751         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
17752         for 11.31.
17753         (hppa[12]*-*-hpux11*): Ditto.
17754         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
17755         * config/ia64/hpux-unix2003.h: New.
17756         * config/pa/pa-hpux1131.opt: New.
17757         * config/pa/pa-hpux1131.h: New.
17758         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
17759         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
17760         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
17761
17762 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17763
17764         PR debug/48853
17765         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
17766         instead of mode as 3rd argument to recursive call.
17767         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
17768         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
17769         VOIDmode.
17770         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
17771         don't give up if mode is Pmode and mem_mode is not VOIDmode.
17772         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
17773         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
17774
17775 2011-05-05  Julian Brown  <julian@codesourcery.com>
17776
17777         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
17778         parenthesis in D-register case.
17779
17780 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17781
17782         * opt-functions.awk (var_type_struct): Handle Enum options.
17783         * optc-gen.awk: Don't check range of variables of character type.
17784         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
17785         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
17786         rs6000_sdata_name, rs6000_explicit_options): Remove.
17787         (rs6000_option_override_internal): Check for -malign-power here.
17788         Use global_options_set instead of rs6000_explicit_options.
17789         (rs6000_parse_fpu_option): Remove.
17790         (rs6000_handle_option): Access variables via opts and opts_set
17791         pointers.  Use error_at and warning_at.  Add fall-through
17792         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
17793         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
17794         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
17795         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
17796         here.  Don't use rs6000_parse_fpu_option.
17797         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
17798         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
17799         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
17800         (mrecip=): Use Var.
17801         (mspe): Use Var and Save.
17802         (mtraceback=): Use Enum and Var.
17803         (rs6000_traceback_type): New Enum and EnumValue entries.
17804         (mfloat-gprs=): Use Enum, Var and Save.
17805         (rs6000_float_gprs): New Enum and EnumValue entries.
17806         (mlong-double-): use Var and Save.
17807         (msched-costly-dep=, minsert-sched-nops=): Use Var.
17808         (malign-): Use Enum and Var.
17809         (rs6000_alignment_flags): New Enum and EnumValue entries.
17810         (mfpu=): Use Enum.
17811         (fpu_type_t): New Enum and EnumValue entries.
17812         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17813         global_options_set instead of rs6000_explicit_options.
17814         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17815         global_options_set instead of rs6000_explicit_options.
17816         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17817         global_options_set instead of rs6000_explicit_options.
17818         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17819         global_options_set instead of rs6000_explicit_options.
17820         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
17821         global_options_set instead of rs6000_explicit_options.
17822         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17823         global_options_set instead of rs6000_explicit_options.
17824         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
17825         definition.
17826         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17827         global_options_set instead of rs6000_explicit_options.
17828         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
17829         (rs6000_cmodel): New Enum and EnumValue entries.
17830         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17831         global_options_set instead of rs6000_explicit_options.
17832         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
17833         (mtls-size=): Use Enum and Var.
17834         (rs6000_tls_size): New Enum and EnumValue entries.
17835
17836 2011-05-05  Michael Matz  <matz@suse.de>
17837
17838         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
17839         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
17840         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
17841         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
17842         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
17843         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
17844         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
17845         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
17846         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
17847         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
17848         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
17849         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
17850         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
17851         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
17852         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
17853         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
17854
17855 2011-05-05  Richard Guenther  <rguenther@suse.de>
17856
17857         * expmed.c (expand_variable_shift): Rename to ...
17858         (expand_shift_1): ... this.  Take an expanded shift amount.
17859         For rotates recurse directly not building trees for the shift amount.
17860         (expand_variable_shift): Wrap around expand_shift_1.
17861         (expand_shift): Adjust.
17862
17863 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17864
17865         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
17866
17867 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17868
17869         * tree.h (get_pending_sizes): Remove prototype.
17870         (put_pending_size): Likewise.
17871         (put_pending_sizes): Likewise.
17872         * stor-layout.c (pending_sizes): Delete.
17873         (get_pending_sizes): Likewise.
17874         (put_pending_size): Likewise.
17875         (put_pending_sizes): Likewise.
17876         (variable_size): Do not call put_pending_size and tidy up.
17877         * function.h (struct function): Remove dont_save_pending_sizes_p.
17878         * lto-streamer-in.c (input_function): Do not stream it.
17879         * lto-streamer-out.c (output_function): Likewise.
17880         * tree-inline.c (initialize_cfun): Do not copy it.
17881         * c-decl.c (store_parm_decls): Do not set it.
17882         * omp-low.c (create_task_copyfn): Likewise.
17883         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17884
17885 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
17886
17887         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
17888         conditions.
17889         (*movdf_internal): Ditto.
17890         (*movdf_internal_nointeger): Ditto.
17891         (*movsf_internal): Ditto.
17892
17893 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17894
17895         * c-decl.c (finish_decl): Don't call get_pending_sizes.
17896         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
17897         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
17898         (c_variable_size): Remove.
17899         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
17900         call put_pending_sizes.
17901         (get_parm_info): Add parameter expr.  Use it to set
17902         arg_info->pending_sizes.
17903         (store_parm_decls): Use arg_info->pending_sizes instead or calling
17904         get_pending_sizes.
17905         * c-parser.c (c_parser_parms_declarator): Update call to
17906         c_parser_parms_list_declarator.
17907         (c_parser_parms_list_declarator): Take parameter expr.  Update
17908         call to push_parm_decl.  Update recursive call.  Don't call
17909         get_pending_sizes.  Update calls to get_parm_info.
17910         (c_parser_objc_method_definition): Update calls to
17911         c_parser_objc_method_decl and objc_start_method_definition.
17912         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
17913         (c_parser_objc_method_decl): Add parameter expr.  Update call to
17914         grokparm.
17915         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
17916         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
17917         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
17918
17919 2011-05-05  Michael Hope  <michael.hope@linaro.org>
17920
17921         PR pch/45979
17922         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
17923         __ARM_EABI__ hosts.
17924
17925 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17926
17927         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
17928         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
17929         (spu_output_mi_thunk): New function.
17930
17931 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17932
17933         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
17934         targetm.asm_out.print_operand.
17935         * config/sol2.c: Include target.h.
17936
17937 2011-05-04  Jan Hubicka  <jh@suse.cz>
17938
17939         * ipa-inline.c (reset_edge_caches): New function.
17940         (update_caller_keys): Add check_inlinablity_for; do not
17941         reset edge caches; remove now unnecesary loop.
17942         (update_callee_keys): Add comments; reset node_growth_cache of callee.
17943         (update_all_callee_keys): Likewise.
17944         (inline_small_functions): Sanity check cache; update code
17945         recomputing it.
17946
17947 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
17948
17949         PR rtl-optimization/47612
17950         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
17951         as the last insn of the sequence to be moved.
17952
17953 2011-05-04  Tobias Burnus  <burnus@net-b.de>
17954
17955         PR fortran/48864
17956         * doc/invoke.texi (Ofast): Document that it
17957         enables Fortran's -fno-protect-parens.
17958
17959 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
17960
17961         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
17962
17963 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17964
17965         * stor-layout.c (variable_size): Do not issue errors.
17966
17967 2011-05-04  Richard Guenther  <rguenther@suse.de>
17968
17969         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
17970         for array-ref indices.
17971         (tree_coverage_counter_addr): Likewise.
17972         (build_fn_info_type): Use size_int for index types.
17973         (build_gcov_info): Likewise.
17974
17975 2011-05-04  Richard Guenther  <rguenther@suse.de>
17976
17977         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
17978         to build_int_cst.
17979         * c-typeck.c (really_start_incremental_init): Use bitsize_int
17980         for constructor indices.
17981         (push_init_level): Likewise.
17982
17983 2011-05-04  Richard Guenther  <rguenther@suse.de>
17984
17985         * explow.c (promote_mode): Move variable declarations before code.
17986
17987 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
17988
17989         * tree.h (build_function_type_array): Declare.
17990         (build_varargs_function_type_array): Declare.
17991         (build_function_type_vec, build_varargs_function_type_vec): Define.
17992         * tree.c (build_function_type_array_1): New function.
17993         (build_function_type_array): New function.
17994         (build_varargs_function_type_array): New function.
17995
17996 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
17997
17998         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
17999         before setting STMT_VINFO_TYPE.
18000
18001 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18002
18003         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
18004         instead of spu_pass_by_reference.
18005
18006 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18007
18008         * calls.c (emit_library_call_value_1): Invoke
18009         promote_function_mode hook on libcall arguments.
18010         * explow.c (promote_function_mode, promote_mode): Handle TYPE
18011         argument being NULL.
18012         * targhooks.c (default_promote_function_mode): Lisewise.
18013         * config/s390/s390.c (s390_promote_function_mode): Likewise.
18014         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
18015
18016         * doc/tm.texi: Document that TYPE argument might be NULL.
18017
18018 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18019
18020         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
18021
18022 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18023
18024         From Bernd Schmidt
18025         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
18026
18027 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18028
18029         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
18030         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
18031         Move ...
18032         * mips-tfile.c: ... here.
18033         Don't include coretypes.h, tm.h, filenames.h.
18034         (saber_stop): Remove definition and all calls.
18035         [__SABER__]: Remove.
18036         (__LINE__): Remove default.
18037         (Size_t, Ptrdiff_t): Remove definitions.
18038         Replace by size_t, ptrdiff_t.
18039         [!MIPS_DEBUGGING_INFO]: Remove.
18040         (SHASH_SIZE, THASH_SIZE): Remove defaults.
18041         (progname): Add const.
18042         (STATIC): Remove.
18043         Replace all uses by static.
18044         (ALIGN_SYMTABLE_OFFSET): Remove default.
18045         * mips-tdump.c: Don't include coretypes.h, tm.h.
18046         Remove !MIPS_IS_STAB guard.
18047         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
18048         $(TM_H), filenames.h dependencies.
18049         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
18050
18051 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18052
18053         From Jie Zhang
18054         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
18055         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
18056
18057 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18058
18059         From Bernd Schmidt
18060         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
18061         account and save/restore RETS.
18062         (PROFILE_BEFORE_PROLOGUE): Define.
18063         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
18064         the push insn to use predecrement.
18065
18066 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18067
18068         From Jie Zhang
18069         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
18070
18071 2011-05-04  Nick Clifton  <nickc@redhat.com>
18072
18073         * config/mn10300/mn10300.c: Include cfgloop.h.
18074         (DUMP): New macro.
18075         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
18076         Lcc or a FLcc insn into the instruction stream.
18077         (mn10300_block_contains_call): New function.  Returns true if the
18078         given basic block contains a CALL insn.
18079         (mn10300_loop_contains_call_insn): New function.  Returns true if
18080         the given loop contains a CALL insn.
18081         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
18082         to use the SETLB and Lcc or FLcc insns.
18083         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
18084         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
18085         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
18086         disable the SETLB optimization.
18087         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
18088         __SETLB__ or __NO_SETLB__.
18089         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
18090         (movsf_internal): Handle MDR register.
18091         (cmpsi): Make visible.
18092         (setlb): New pattern.
18093         (Lcc): New pattern.
18094         (FLcc): New pattern.
18095
18096 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
18097
18098         PR target/48860
18099         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
18100         for reg<->xmm moves.
18101         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
18102         (vec_concatv2di_rex64_sse): Ditto.
18103         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
18104         (*vec_extractv2di_1_rex64): Ditto.
18105
18106         Revert:
18107         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18108
18109         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18110         reg<->xmm moves.
18111         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
18112
18113 2011-05-04  Richard Guenther  <rguenther@suse.de>
18114
18115         * tree.h (int_const_binop): Remove notrunc argument.
18116         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
18117         create integer constants that are properly truncated.
18118         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
18119         (const_binop): Remove zero notrunc argument to int_const_binop.
18120         (size_binop_loc): Likewise.
18121         (fold_div_compare): Likewise.
18122         (maybe_canonicalize_comparison_1): Likewise.
18123         (fold_comparison): Likewise.
18124         (fold_binary_loc): Likewise.
18125         (multiple_of_p): Likewise.
18126         * expr.c (store_constructor): Likewise.
18127         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18128         (maybe_fold_stmt_addition): Likewise.
18129         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
18130         * stor-layout.c (layout_type): Likewise.
18131         * tree-data-ref.c (tree_fold_divides_p): Likewise.
18132         * tree-sra.c (build_ref_for_offset): Likewise.
18133         (build_user_friendly_ref_for_offset): Likewise.
18134         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
18135         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
18136         * tree-ssa-loop-niter.c (inverse): Likewise.
18137         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18138         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
18139         * tree-switch-conversion.c (check_range): Likewise.
18140         (build_constructors): Likewise.
18141         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
18142         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
18143         (extract_range_from_assert): Likewise.
18144         (vrp_int_const_binop): Likewise.
18145         (extract_range_from_binary_expr): Likewise.
18146         (extract_range_from_unary_expr): Likewise.
18147         (check_array_ref): Likewise.
18148         (find_case_label_range): Likewise.
18149         (simplify_div_or_mod_using_ranges): Likewise.
18150         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
18151         comparing case labels for merging.
18152
18153 2011-05-03  Mark Wielaard  <mjw@redhat.com>
18154
18155         * dwarf2out.c (debug_str_hash_forced): Removed.
18156         (gen_label_for_indirect_string): Removed.
18157         (get_debug_string_label): Removed.
18158         (AT_string_form): Generate label directly.
18159         (output_indirect_string): Test indirect_string_node for
18160         DW_FORM_strp instead of checking label and refcount.
18161         (prune_indirect_string): Removed.
18162         (prune_unused_types): Don't check debug_str_hash_forced or
18163         call prune_indirect_string.
18164
18165 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18166
18167         PR other/48093
18168         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
18169
18170 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18171
18172         PR debug/47994
18173         PR debug/47919
18174         * combine.c (try_combine): Skip debug insns at m_split tests.
18175
18176 2011-04-26  Mark Wielaard  <mjw@redhat.com>
18177
18178         PR42288
18179         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
18180         when info_section_emitted.
18181
18182 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
18183
18184         * config/mips/mips-opts.h: New.
18185         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
18186         to mips-opts.h.
18187         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
18188         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
18189         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
18190         via opts pointer.
18191         * config/mips/mips.h (enum mips_code_readable_setting): Move to
18192         mips-opts.h.
18193         (mips_abi, mips_code_readable): Don't declare.
18194         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
18195         (mabi=): Use Enum and Var.
18196         (mips_abi): New Enum and EnumValue entries.
18197         (mcode-readable=): Use Enum and Var.
18198         (mips_code_readable_setting): New Enum and EnumValue entries.
18199         (mr10k-cache-barrier=): Use Enum and Var.
18200         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
18201
18202 2011-05-03  Jan Hubicka  <jh@suse.cz>
18203
18204         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
18205         replace hash by pointer map.
18206         (cgraph_node_set_element_def, cgraph_node_set_element,
18207         const_cgraph_node_set_element, varpool_node_set_element_def,
18208         varpool_node_set_element, const_varpool_node_set_element): Remove.
18209         (free_cgraph_node_set, free_varpool_node_set): New function.
18210         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
18211         * tree-emutls.c: Free varpool node set.
18212         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
18213         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18214         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
18215         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18216         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
18217         Move here from ipa.c; implement using pointer_map
18218         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
18219         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18220         debug_cgraph_node_set, varpool_node_set_new,
18221         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18222         dump_varpool_node_set, debug_varpool_node_set):
18223         Move to ipa-uitls.c.
18224         * passes.c (ipa_write_summaries): Update.
18225
18226 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18227
18228         From Mike Frysinger:
18229         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
18230         bf542/bf544/bf547/bf548/bf549.
18231
18232 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18233
18234         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
18235
18236 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18237
18238         From Bernd Schmidt:
18239         * config/bfin/bfin.md (MOVCC): New mode_macro.
18240         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
18241         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
18242         comments from generated assembly.
18243
18244 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18245
18246         From Bernd Schmidt
18247         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
18248         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
18249         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
18250         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
18251         * config/bfin/lib1funcs.asm (___muldi3): New function.
18252
18253 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18254
18255         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
18256         build_function_type_list instead of build_function_type.
18257         Rearrange initialization of `args' to do so.
18258
18259 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18260
18261         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
18262         instead of build_function_type.
18263
18264 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18265
18266         * config/rs6000/rs6000.c (spe_init_builtins): Call
18267         build_function_type_list instead of build_function_type.
18268         (paired_init_builtins, altivec_init_builtins): Likewise.
18269         (builtin_function_type): Likewise.
18270
18271 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18272
18273         * config/sh/sh.c (sh_media_init_builtins): Call
18274         build_function_type_list instead of build_function_type.
18275
18276 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18277
18278         * config/sparc/sparc.c (sparc_file_end): Call
18279         build_function_type_list instead of build_function_type.
18280
18281 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18282
18283         * config/alpha/alpha.c (alpha_init_builtins): Call
18284         build_function_type_list instead of build_function_type.
18285
18286 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18287
18288         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
18289         build_function_type_list instead of build_function_type.
18290
18291 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18292
18293         * config/iq2000/i2000.c (iq2000_init_builtins): Call
18294         build_function_type_list instead of build_function_type.
18295         Delete `endlink' variable.
18296
18297 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18298
18299         * config/avr/avr.c (avr_init_builtins): Call
18300         build_function_type_list instead of build_function_type.
18301
18302 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18303
18304         * config/picochip/picochip.c (picochip_init_builtins): Call
18305         build_function_type_list instead of build_function_type.
18306         Delete `endlink' variable.
18307
18308 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18309
18310         * config/bfin/bfin.c (bfin_init_builtins): Call
18311         build_function_type_list instead of build_function_type.
18312
18313 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18314
18315         From Bernd Schmidt
18316         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
18317         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
18318
18319 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18320
18321         From Jie Zhang:
18322         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
18323         libbffastfp overrides libgcc when -mfast-fp.
18324
18325 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18326
18327         Originally from Bernd Schmidt
18328         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
18329         * config/bfin/bfin.c (override_options): Test it and error if
18330         TARGET_FDPIC.
18331
18332 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18333
18334         Originally From Bernd Schmidt
18335         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
18336         FD-PIC.
18337
18338 2011-05-03  Jeff Law  <law@redhat.com>
18339
18340         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
18341         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
18342         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
18343         than accessing AUX field directly.  Free the AUX field before
18344         clearing it.
18345         (thread_block, thread_through_loop_header): Likewise.
18346         (thread_single_edge, mark_threaded_blocks): Likewise.
18347         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
18348         (register_jump_thread): Do not attempt to thread to a NULL edge.
18349
18350 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18351
18352         * function.c (init_function_start): Call decide_function_section.
18353         * varasm.c (decide_function_section): New function.
18354         (assemble_start_function): When not using
18355         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
18356         or first_function_block_is_cold.
18357         * rtl.h (decide_function_section): Declare.
18358
18359 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18360             Jakub Jelinek  <jakub@redhat.com>
18361
18362         PR target/48774
18363         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
18364         only succeed if req_mode is the same as set_mode.
18365
18366 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18367
18368         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
18369         * genemit.c (gen_exp): Handle RETURN.
18370         * emit-rtl.c (verify_rtx_sharing): Likewise.
18371         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
18372         * rtl.c (copy_rtx): RETURN is shared.
18373         * rtl.h (enum global_rtl_index): Add GR_RETURN.
18374         (ret_rtx): New.
18375         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
18376         * config/s390/s390.c (s390_emit_epilogue): Likewise.
18377         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
18378         * config/cris/cris.c (cris_expand_return): Likewise.
18379         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
18380         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
18381         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
18382         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
18383         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
18384         Likewise.
18385         * config/v850/v850.c (expand_epilogue): Likewise.
18386         * config/bfin/bfin.c (bfin_expand_call): Likewise.
18387         * config/arm/arm.md (epilogue): Likewise.
18388         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
18389         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
18390         variable to ret_reg.
18391
18392 2011-05-03  Richard Guenther  <rguenther@suse.de>
18393
18394         PR lto/48846
18395         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
18396         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
18397         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18398
18399 2011-05-03  Richard Guenther  <rguenther@suse.de>
18400
18401         * c-decl.c (grokdeclarator): Instead of looking at
18402         TREE_OVERFLOW check if the constant fits in the index type.
18403
18404 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18405
18406         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
18407         (vec_store_lanes<mode><mode>): Likewise.
18408
18409 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18410
18411         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
18412         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
18413         convert_optab_index values.
18414         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
18415         * genopinit.c (optabs): Initialize the new optabs.
18416         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
18417         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
18418         (expand_STORE_LANES): New functions.
18419         * tree.h (build_array_type_nelts): Declare.
18420         * tree.c (build_array_type_nelts): New function.
18421         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
18422         (vect_model_load_cost): Likewise.
18423         (vect_store_lanes_supported, vect_load_lanes_supported)
18424         (vect_record_strided_load_vectors): Declare.
18425         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
18426         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
18427         (vect_transform_strided_load): Split out statement recording into...
18428         (vect_record_strided_load_vectors): ...this new function.
18429         * tree-vect-stmts.c (create_vector_array, read_vector_array)
18430         (write_vector_array, create_array_ref): New functions.
18431         (vect_model_store_cost): Add store_lanes_p argument.
18432         (vect_model_load_cost): Add load_lanes_p argument.
18433         (vectorizable_store): Try to use store-lanes functions for
18434         interleaved stores.
18435         (vectorizable_load): Likewise load-lanes and loads.
18436         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
18437         to vect_model_store_cost.
18438         (vect_build_slp_tree): Likewise vect_model_load_cost.
18439
18440 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18441
18442         * hooks.h (hook_bool_mode_uhwi_false): Declare.
18443         * hooks.c (hook_bool_mode_uhwi_false): New function.
18444         * target.def (array_mode_supported_p): New hook.
18445         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
18446         * doc/tm.texi: Regenerate.
18447         * stor-layout.c (mode_for_array): New function.
18448         (layout_type): Use it.
18449         * config/arm/arm.c (arm_array_mode_supported_p): New function.
18450         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
18451
18452 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
18453
18454         PR target/48723
18455         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
18456         for -fstack-check if the size to allocate is negative.
18457
18458 2011-05-02  Lawrence Crowl  <crowl@google.com>
18459
18460         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
18461         (timevar_cond_start): New for starting a timer only when it is not
18462         already running.
18463         (timevar_cond_stop): New for stopping a timer when it was not already
18464         running.
18465
18466         * timevar.c (timevar_stop): Enable start/stop timers to start again.
18467         (timevar_cond_start): New as above.
18468         (timevar_cond_stop): New as above.
18469
18470         * timevar.def: Add start/stop timers for compiler phases,
18471         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
18472         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
18473         and TV_PHASE_FINALIZE.
18474         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
18475         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
18476         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
18477         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
18478         Make unused TV_OVERLOAD into a start/stop timer.
18479
18480         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
18481         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
18482         to indicate that they are start/stop timers.
18483
18484         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
18485         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
18486         Move initialization to do_compile.
18487         (do_compile): Add initialization from above.
18488         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
18489
18490         * c-decl.c (c_write_global_declarations): Add start/stop of
18491         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
18492
18493         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
18494         or TV_PARSE_INLINE, as appropriate.
18495         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
18496         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
18497
18498 2011-05-02  Jason Merrill  <jason@redhat.com>
18499
18500         PR c++/40975
18501         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
18502
18503 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
18504
18505         PR c/35445
18506         * c-decl.c (finish_decl): Only create a composite if the types are
18507         compatible.
18508
18509 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18510
18511         * config/fr30/fr30-protos.h (Mmode): Don't define.
18512         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
18513         definition where used.
18514         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
18515         define.  Expand definitions where used.
18516         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
18517         Expand definitions where used.
18518         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
18519         rx_function_arg, rx_function_arg_advance,
18520         rx_function_arg_boundary): Expand definitions of those macros.
18521         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
18522         definition where used.
18523
18524 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18525
18526         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18527         reg<->xmm moves.
18528         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
18529         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
18530         with *movv2sf_internal_rex64_avx.
18531         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
18532         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
18533         Use %v prefix in insn mnemonic to handle TARGET_AVX.
18534         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
18535         "vex" in "prefix" attribute calculation.
18536         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
18537
18538 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
18539
18540         PR target/47951
18541         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
18542         inputs match the output.
18543
18544 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
18545
18546         PR target/47955
18547         * config/m68k/m68k.c (m68k_expand_prologue): Set
18548         current_function_static_stack_size.
18549
18550 2011-05-02   Jan Hubicka  <jh@suse.cz>
18551
18552         * lto-streamer.c (lto_streamer_cache_insert_1,
18553         lto_streamer_cache_lookup, lto_streamer_cache_create,
18554         lto_streamer_cache_delete): Use pointer map instead of hashtable.
18555         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
18556
18557 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18558
18559         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
18560         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
18561         config/m68k/t-opts: New files.
18562         * config/m68k/m68k-tables.opt: New file (generated).
18563         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
18564         extra_options and m68k/t-opts to tmake_file.
18565         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
18566         (all_isas): Initialize using m68k-isas.def.
18567         (all_microarchs): Initialize using m68k-microarchs.def.
18568         (m68k_find_selection): Remove.
18569         (m68k_handle_option): Don't assert that global structures are in
18570         use.  Use error_at.  Access variables via opts pointer.  Don't
18571         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
18572         directly for -m68020-40 and -m68020-60.
18573         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
18574         m68k_tune_entry here.
18575         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
18576         to m68k-opts.h.
18577         (m68k_library_id_string): Remove declaration.
18578         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
18579         (m68k_library_id_string): New Variable.
18580         (march=, mcpu=, mtune=): Use Enum and Var.
18581
18582 2011-05-02  Richard Guenther  <rguenther@suse.de>
18583
18584         * varasm.c (output_constructor_regular_field): Compute zero-based
18585         index with double-ints.  Make sure to ICE instead of producing
18586         wrong code.
18587         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
18588         in asserts.  Properly use a signed type.
18589
18590 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18591
18592         * config/i386/sse.md (V): New mode iterator.
18593         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
18594         TARGET_SSE2.
18595         (V_256): Rename from AVX256MODE.
18596         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
18597         condition to all users.
18598         (VF1): Ditto.
18599         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
18600         condition to all users.
18601         (VF_128): Make V4SF mode unconditional.
18602         (VF_256): Rename from AVX256MODEF2P.
18603         (VI4F_128): Rename from SSEMODE4S.
18604         (VI8F_128): Rename from SSEMODE2D.
18605         (VI4F_256): Rename from AVX256MODE8P.
18606         (VI8F_256): Rename from AVX256MODE4P.
18607         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
18608         (ssescalarmodesuffix): Remove SF and DF modes.
18609         (SSEMODE124): Remove.
18610         (SSEMODE1248): Ditto.
18611         (SSEMODEF2P): Ditto.
18612         (AVXMODEF2P): Ditto.
18613         (AVXMODEFDP): Ditto.
18614         (AVXMODEFSP): Ditto.
18615         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
18616         unconditional.
18617         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
18618         unconditional.
18619         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
18620         xop_pcmov_<mode>256.  Use V mode iterator.
18621
18622         Adjust RTX patterns globally for renamed mode attributes.
18623
18624 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18625
18626         * haifa-sched.c (sched_emit_insn): Emit insn before first
18627         non-scheduled insn.  Inform back-end about new insn.  Add
18628         new insn to scheduled_insns list.
18629
18630 2011-05-02  Richard Guenther  <rguenther@suse.de>
18631
18632         PR tree-optimization/48822
18633         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
18634         (process_scc): Indicate which iteration we start.
18635
18636 2011-05-02  Jan Hubicka  <jh@suse.cz>
18637
18638         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
18639         (lto_section_overrun): New.
18640         * lto-section-out.c (append_block): Rename to ...
18641         (lto_append_block): ... this one; export.
18642         (lto_output_1_stream): Move lto lto-streamer.h
18643         (lto_output_data_stream): Update.
18644         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
18645         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
18646         functions.
18647
18648 2011-05-02  Richard Guenther  <rguenther@suse.de>
18649
18650         * tree.c (tree_code_counts): New global array.
18651         (record_node_allocation_statistics): Count individual tree codes.
18652         (dump_tree_statistics): Dump individual code stats.
18653
18654 2011-05-01  Jan Hubicka  <jh@suse.cz>
18655
18656         * ipa-inline.c (caller_growth_limits): Fix thinko when
18657         looking for largest stack frame.
18658         * ipa-inline.h (dump_inline_summary): Declare.
18659         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
18660         on stack usage.
18661         (dump_inline_summary): Export.
18662         (debug_inline_summary): Declare as DEBUG_FUNCTION.
18663
18664 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
18665
18666         * reginfo.c (memory_move_cost): Change rclass argument type form
18667         'enum reg_class' to reg_class_t.
18668         * reload.h (memory_move_cost): Update prototype.
18669         * postreload.c reload_cse_simplify_set): Change type dclass var to
18670         reg_class_t.
18671         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
18672         Update prototype.
18673         (ira_allocate_and_set_costs): Change aclass argument type form
18674         'enum reg_class' to reg_class_t.
18675         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
18676         Change aclass argument type to reg_class_t.
18677         (update_conflict_hard_reg_costs): Change type aclass and pref vars
18678         to reg_class_t.
18679         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
18680         memory_move_cost call.
18681
18682         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
18683         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
18684         Change type tmp var to reg_class_t.
18685
18686 2011-04-30  Jan Hubicka  <jh@suse.cz>
18687
18688         * ipa-inline.c (can_inline_edge_p): Disregard limits when
18689         inlining into function with flatten attribute.
18690         (want_inline_small_function_p): Be more realistic about inlining
18691         cold calls where callee size grows.
18692
18693 2011-04-30  Jan Hubicka  <jh@suse.cz>
18694
18695         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
18696         flags.
18697
18698 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
18699
18700         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
18701         PRINT_OPERAND_PUNCT_VALID_P): Remove.
18702         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
18703         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
18704         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18705         (print_operand): Rename to...
18706         (sparc_print_operand): ...this. Make static. Adjust
18707         sparc_print_operand function call.
18708         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
18709         functions.
18710
18711 2011-04-30  Jan Hubicka  <jh@suse.cz>
18712
18713         PR middle-end/48752
18714         * ipa-inline.c (early_inliner): Disable when doing late
18715         addition of function.
18716
18717 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
18718
18719         * dwarf2out.c (get_address_mode): New inline.
18720         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
18721         if not dwarf_strict emit
18722         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
18723         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
18724         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
18725         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
18726         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
18727         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
18728         mem_loc_descriptor callers.
18729         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18730         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
18731         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
18732         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
18733         (base_types): New variable.
18734         (get_base_type_offset, calc_base_type_die_sizes,
18735         base_type_for_mode, mark_base_types, base_type_cmp,
18736         move_marked_base_types): New functions.
18737         (calc_die_sizes): Assert that die_offset is 0 or equal to
18738         next_die_offset.
18739         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
18740         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
18741         callers.  If not dwarf_strict, call mem_loc_descriptor even for
18742         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
18743         (gen_subprogram_die): Don't give up on call site parameters
18744         with non-integral or large integral modes.  Adjust
18745         mem_loc_descriptor callers.
18746         (prune_unused_types): Call prune_unused_types_mark on base_types
18747         vector entries.
18748         (resolve_addr): Call mark_base_types.
18749         (dwarf2out_finish): Call move_marked_base_types.
18750
18751         PR tree-optimization/48809
18752         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
18753         type.
18754         (gen_inbound_check): Don't compute index_expr - range_min in utype
18755         again, instead reuse SSA_NAME initialized in build_arrays.
18756         Remove two useless gsi_for_stmt calls.
18757
18758 2011-04-29  Jeff Law  <law@redhat.com>
18759
18760         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
18761
18762 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18763
18764         * cgraph.h (cgraph_postorder): Remove declaration.
18765         * ipa-utils.h (ipa_free_postorder_info): Declare.
18766         (ipa_reverse_postorder): Likewise.
18767         * cgraphunit.c: Include ipa-utils.h.
18768         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
18769         * ipa-inline.c: Include ipa-utils.h.
18770         (ipa_inline): Update call to ipa_reverse_postorder.
18771         * ipa-pure-const.c (propagate_pure_const): Update call to
18772         ipa_reduced_postorder and ipa_print_order.  Call
18773         ipa_free_postorder_info to clean up.
18774         (propagate_nothrow): Likewise.
18775         * ipa-reference.c (propagate): Removed a useless call to
18776         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
18777         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
18778         * ipa.c: Include ipa-utils.h.
18779         (ipa_profile): Update call to ipa_reverse_postorder.
18780         (cgraph_postorder): Moved to...
18781         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
18782         (ipa_utils_print_order): Renamed to ipa_print_order.
18783         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
18784         comments.
18785         (ipa_free_postorder_info): New function.
18786         * passes.c: Include ipa-utils.h.
18787         (do_per_function_toporder): Update call to ipa_reverse_postorder.
18788         (ipa_write_summaries): Likewise.
18789         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
18790         (cgraphunit.o): Likewise.
18791         (ipa.o): Likewise.
18792         (ipa-inline.o): Likewise.
18793
18794 2011-04-29  Jan Hubicka  <jh@suse.cz>
18795
18796         * gcc.dg/tree-ssa/inline-10.c: New testcase.
18797         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
18798         * ipa-inline.h (clause_t): Turn into unsigned int.
18799         * ipa-inline-analysis.c (add_clause): Do more simplification.
18800         (and_predicates): Shortcut more cases.
18801         (predicates_equal_p): Move forward; check that clauses are properly
18802         ordered.
18803         (or_predicates): Shortcut more cases.
18804         (edge_execution_predicate): Rewrite as...
18805         (set_cond_stmt_execution_predicate): ... this function; handle
18806         __builtin_constant_p.
18807         (set_switch_stmt_execution_predicate): New .
18808         (compute_bb_predicates): New.
18809         (will_be_nonconstant_predicate): Update TODO.
18810         (estimate_function_body_sizes): Use compute_bb_predicates
18811         and free them later, always try to estimate if stmt is constant.
18812         (estimate_time_after_inlining, estimate_size_after_inlining):
18813         Gracefully handle optimized out edges.
18814         (read_predicate): Fix off by one error.
18815
18816 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
18817
18818         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
18819
18820 2011-04-27  Xinliang David Li  <davidxl@google.com>
18821
18822         * tree-profile.c (init_ic_make_global_vars): Set
18823         tls attribute on ic vars.
18824         * coverage.c (coverage_end_function): Initialize
18825         function_list with zero.
18826
18827 2011-04-29  Richard Guenther  <rguenther@suse.de>
18828
18829         * builtins.c (fold_builtin_classify_type): Use integer_type_node
18830         for the type of the result.
18831         (fold_builtin_isascii): Likewise.
18832         (fold_builtin_toascii): Use integer_type_node where appropriate.
18833         (fold_builtin_logb): Likewise.
18834         (fold_builtin_frexp): Likewise.
18835         (fold_builtin_strstr): Likewise.
18836         (fold_builtin_strpbrk): Likewise.
18837         (fold_builtin_fputs): Likewise.
18838         (fold_builtin_sprintf): Likewise.
18839         (fold_builtin_snprintf): Likewise.
18840         (fold_builtin_printf): Likewise.
18841         (do_mpfr_remquo): Use a proper type for the assigned constant.
18842         (do_mpfr_lgamma_r): Likewise.
18843         * dwarf2out.c (resolve_one_addr): Use size_int.
18844         * except.c (init_eh): Likewise.
18845         (assign_filter_values): Use integer_type_node for filter values.
18846         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
18847         indices.
18848         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
18849         for EH region numbers.
18850         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
18851         for the shift amount.
18852
18853 2011-04-29  Richard Guenther  <rguenther@suse.de>
18854
18855         * expr.h (expand_shift): Rename to ...
18856         (expand_variable_shift): ... this.
18857         (expand_shift): Take a constant shift amount.
18858         * expmed.c (expand_shift): Rename to ...
18859         (expand_variable_shift): ... this.
18860         (expand_shift): New wrapper around expand_variable_shift.
18861         * expr.c (convert_move, emit_group_load_1, emit_group_store,
18862         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
18863         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
18864         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
18865         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
18866         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
18867         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
18868         emit_store_flag_1, emit_store_flag): Likewise.
18869         * builtins.c (expand_builtin_signbit): Likewise.
18870         * calls.c (load_register_parameters): Likewise.
18871         * function.c (assign_parm_setup_block): Likewise.
18872         * lower-subreg.c (resolve_shift_zext): Likewise.
18873         * optabs.c (widen_bswap, expand_abs_nojump,
18874         expand_one_cmpl_abs_nojump, expand_float): Likewise.
18875         * spu/spu.c (spu_expand_extv): Likewise.
18876         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
18877
18878 2011-04-29  Richard Guenther  <rguenther@suse.de>
18879
18880         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
18881         for the remapped region number.
18882         * predict.c (build_predict_expr): Use integer_type_node for the
18883         predict kind.
18884         * fold-const.c (fold_binary_loc): Use integer_type_node for
18885         the shift amount.  Use a proper type for the PLUS_EXPR operand.
18886
18887 2011-04-29  Michael Matz  <matz@suse.de>
18888
18889         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
18890         other trees that just builtins.
18891         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
18892
18893 2011-04-29  Richard Guenther  <rguenther@suse.de>
18894
18895         * tree-nested.c (get_trampoline_type): Use size_int.
18896         (get_nl_goto_field): Likewise.
18897         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
18898         for all indexes.
18899         (lower_eh_constructs_2): Likewise.
18900         (lower_resx): Likewise.
18901         (lower_eh_dispatch): Likewise.
18902         * tree-mudflap.c (mf_build_string): Use size_int.
18903         (mudflap_register_call): Use integer_type_node for the flag.
18904         (mudflap_enqueue_constant): Use size_int.
18905         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
18906         instead of rebuilding it.
18907
18908 2011-04-29  Richard Guenther  <rguenther@suse.de>
18909
18910         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
18911         Handle OBJ_TYPE_REF.
18912         (find_func_aliases_for_call): Use it more consistently.
18913
18914 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
18915
18916         * haifa-sched.c (last_nondebug_scheduled_insn): New.
18917         (rank_for_schedule): Use it.
18918         (schedule_block): Set it.
18919
18920 2011-04-28  David Li  <davidxl@google.com>
18921
18922         * tree.c (crc32_string): Use crc32_byte.
18923         (crc32_byte): New function.
18924         * tree.h (crc32_byte): New function.
18925         * gcov.c (read_graph_file): Handle new cfg_cksum.
18926         (read_count_file): Ditto.
18927         * profile.c (instrument_values): Ditto.
18928         (get_exec_counts): Ditto.
18929         (read_profile_edge_counts): Ditto.
18930         (compute_branch_probabilities): Ditto.
18931         (compute_value_histograms): Ditto.
18932         (branch_prob): Ditto.
18933         (end_branch_prob): Ditto.
18934         * coverage.c (read_counts_file): Ditto.
18935         (get_coverage_counts): Ditto.
18936         (tree_coverage_counter_addr): Ditto.
18937         (coverage_checksum_string): Ditto.
18938         (coverage_begin_output): Ditto.
18939         (coverage_end_function): Ditto.
18940         (build_fn_info_type): Ditto.
18941         (build_fn_info_value): Ditto.
18942         * libgcov.c (gcov_exit): Ditto.
18943         * gcov-dump.c (tag_function): Ditto.
18944         (compute_checksum): Remove.
18945
18946 2011-04-29  Alan Modra  <amodra@gmail.com>
18947
18948         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18949         unspec plus offset.  Tidy macho code.
18950
18951 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18952
18953         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
18954         node instead of a decl.  Update all callers.
18955         * cgraph.h: Update declaration.
18956
18957 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
18958
18959         PR tree-optimization/48765
18960         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
18961         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
18962         to indicate if loop aware SLP is being used.  Scan the statements
18963         and update the vectorization factor according to the type of
18964         vectorization before statement analysis.
18965         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
18966         pass it to vect_analyze_loop_operations.
18967         (vectorizable_reduction): Set number of copies to 1 in case of pure
18968         SLP statement.
18969         * tree-vect-stmts.c (vectorizable_conversion,
18970         vectorizable_assignment, vectorizable_shift,
18971         vectorizable_operation, vectorizable_type_demotion,
18972         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
18973         Likewise.
18974         (vectorizable_condition): Move the check that it is not SLP
18975         vectorization before the number of copies check.
18976         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
18977         to vectorize the loop using SLP.
18978
18979 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
18980
18981         PR middle-end/48597
18982         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
18983         inline asm.
18984
18985 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
18986
18987         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
18988         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
18989         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18990         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18991         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
18992         linux*.h headers.
18993         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
18994         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18995         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18996         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18997         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18998         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
18999         REG_NAME.
19000         * config/i386/linux.h (REG_NAME): Don't define.
19001         * config/i386/linux64.h (REG_NAME): Don't define.
19002         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
19003         Undefine before defining.
19004
19005 2011-04-28  Jan Hubicka  <jh@suse.cz>
19006
19007         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
19008         nonconstant_names array.
19009         (estimate_function_body_sizes): Build nonconstant_names array; handle
19010         BUILT_IN_CONSTANT_P.
19011
19012 2011-04-28  Richard Guenther  <rguenther@suse.de>
19013
19014         PR bootstrap/48804
19015         Revert
19016         2011-04-28  Richard Guenther  <rguenther@suse.de>
19017
19018         * tree-ssa-structalias.c (solve_constraints): Build succ graph
19019         as late as possible.
19020
19021 2011-04-28  Richard Guenther  <rguenther@suse.de>
19022
19023         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
19024         (debug_constraint): Do it here.
19025         (dump_constraints): And here.
19026         (rewrite_constraints): And here.
19027         (dump_constraint_edge): Remove.
19028         (dump_constraint_graph): Rewrite to produce DOT output.
19029         (solve_constraints): Build succ graph as late as possible.
19030         Dump constraint graphs before and after solving.
19031
19032 2011-04-28  Richard Guenther  <rguenther@suse.de>
19033
19034         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19035         New function split out from ...
19036         (find_func_aliases): ... here.  Call it.
19037         (find_func_aliases_for_call): Likewise.
19038
19039 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19040
19041         * internal-fn.h (internal_fn_name_array): Declare.
19042         (internal_fn_flags_array): Likewise.
19043
19044 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19045
19046         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
19047         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
19048         Move from sse.md.
19049         (ssemodefsuffix): Remove.
19050         (ssevecmodesuffix): New mode attribute.
19051         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
19052         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
19053         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
19054         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
19055         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
19056         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
19057         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
19058         ssemodesuffix mode attribute.
19059         (float splitters): Use ssevecmodesuffix mode attribute.
19060         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
19061         (sseinsmode): Rename from avxvecmode.
19062         (avxsizesuffix): Rename from avxmodesuffix.
19063         (sseintvecmode): Rename from avxpermvecmode.
19064         (ssedoublevecmode): Rename from ssedoublesizemode.
19065         (ssehalfvecmode): Rename from avxhalfvecmode.
19066         (ssescalarmode): Rename from avxscalarmode.
19067         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
19068         templates for ssemodesuffix mode attribute.
19069         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
19070         mode attribute.
19071
19072         Adjust RTX patterns globally for renamed mode attributes.
19073
19074 2011-04-27  Jan Hubcika  <jh@suse.cz>
19075
19076         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
19077         * ipa-inline-analysis.c: Include alloc-pool.h.
19078         (edge_predicate_pool): New.
19079         (trye_predicate_p): New function
19080         (false_predicate_p): New function.
19081         (add_clause): Sanity check that false clauses are "optimized";
19082         never add clauses to predicate that is already known to be false.
19083         (and_predicate): Use flase_predicate_p.
19084         (evaulate_predicate): Rename to ...
19085         (evaluate_predicate): ... this one; update all callers; assert
19086         that false is not listed among possible truths.
19087         (dump_predicate): Use true_predicate_p.
19088         (account_size_time): Use false_predicate_p.
19089         (evaulate_conditions_for_edge): Rename to ...
19090         (evaluate_conditions_for_edge) ... this one.
19091         (edge_set_predicate): New function.
19092         (inline_edge_duplication_hook): Duplicate edge predicates.
19093         (inline_edge_removal_hook): Free edge predicates.
19094         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
19095         (dump_inline_summary): Update.
19096         (estimate_function_body_sizes): Set edge predicates.
19097         (estimate_calls_size_and_time): Handle predicates.
19098         (estimate_callee_size_and_time): Update.
19099         (remap_predicate): Add toplev_predicate; update comment.
19100         (remap_edge_predicates): New function.
19101         (inline_merge_summary): Compute toplev predicate; update.
19102         (read_predicate): New function.
19103         (read_inline_edge_summary): Use it.
19104         (inline_read_section): Likewise.
19105         (write_predicate): New function.
19106         (write_inline_edge_summary): Use it.
19107         (inline_write_summary): Likewise.
19108         (inline_free_summary): Free alloc pool and edge summary vec.
19109
19110 2011-04-27  Richard Guenther  <rguenther@suse.de>
19111
19112         * tree-ssa-structalias.c (changed_count): Remove.
19113         (changed): Use a bitmap.
19114         (unify_nodes): Adjust.
19115         (do_sd_constraint): Likewise.
19116         (do_ds_constraint): Likewise.
19117         (do_complex_constraint): Likewise.
19118         (solve_graph): Likewise.
19119
19120 2011-04-27  Jan Hubicka  <jh@suse.cz>
19121
19122         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
19123
19124 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19125
19126         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
19127         (avx_vperm2f128_*_operand): Ditto.
19128         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
19129         Use avx_vpermilp_parallel in insn condition.
19130         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
19131         Use avx_vperm2f128_parallel in insn condition.
19132
19133 2011-04-27  Richard Guenther  <rguenther@suse.de>
19134
19135         * Makefile.in (tree-ssa-structalias.o): Remove
19136         gt-tree-ssa-structalias.h dependency.
19137         (GTFILES): Remove tree-ssa-structalias.c.
19138         * tree.c (allocate_decl_uid): New function.
19139         (make_node_stat): Use it.
19140         (copy_node_stat): Likewise.
19141         * tree.h (allocate_decl_uid): Declare.
19142         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
19143         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
19144         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
19145         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
19146         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
19147         (struct heapvar_map): Likewise.
19148         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
19149         heapvar_insert): Likewise.
19150         (make_heapvar_for): Rename to ...
19151         (make_heapvar): ... this.  Simplify.
19152         (fake_var_decl_obstack): New global var.
19153         (build_fake_var_decl): New function.
19154         (make_constraint_from_heapvar): Adjust.
19155         (handle_lhs_call): Likewise.
19156         (create_function_info_for): Likewise.
19157         (intra_create_variable_infos): Likewise.
19158         (init_alias_vars): Allocate fake_var_decl_obstack.
19159         (init_alias_heapvars, delete_alias_heapvars): Remove.
19160         (compute_points_to_sets): Do not call init_alias_heapvars.
19161         (ipa_pta_execute): Likewise.
19162         (delete_points_to_sets): Free fake_var_decl_obstack.
19163
19164 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19165
19166         * config/spu/divmovti4.c (union qword_UTItype): New data type.
19167         (si_from_UTItype, si_to_UTItype): New functions.
19168         (__udivmodti4): Use them to implement type-punning.
19169         * config/spu/multi3.c (union qword_TItype): New data type.
19170         (si_from_TItype, si_to_TItype): New functions.
19171         (__multi3): Use them to implement type-punning.
19172
19173 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19174
19175         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
19176
19177 2011-04-27  Jan Hubicka  <jh@suse.cz>
19178
19179         * ipa-prop.c (function_insertion_hook_holder): New holder.
19180         (ipa_add_new_function): New function.
19181         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
19182         Register/deregister holder.
19183
19184 2011-04-27  Richard Guenther  <rguenther@suse.de>
19185
19186         PR tree-optimization/48772
19187         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
19188
19189 2011-04-27  Richard Guenther  <rguenther@suse.de>
19190
19191         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
19192         TARGET_MEM_REF handling.
19193
19194 2011-04-27  Nick Clifton  <nickc@redhat.com>
19195
19196         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
19197         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
19198         (REG_CLASS_NAMES): Likewise.
19199         (REG_CLASS_CONTENTS): Likewise.
19200         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19201         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19202         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
19203         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
19204         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
19205         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
19206         duplicate register classes.
19207         (frv_class_likely_spilled_p): Likewise.
19208         (frv_register_move_cost): Likewise.
19209
19210         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
19211         end of the regno_reg_class array.
19212
19213 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
19214
19215         PR c/48742
19216         * c-typeck.c (build_binary_op): Don't wrap arguments if
19217         int_operands is true.
19218
19219 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
19220
19221         PR target/48767
19222         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
19223         targetm.calls.must_pass_in_stack for void type.
19224
19225 2011-04-26  Jan Hubicka  <jh@suse.cz>
19226
19227         * cgraphbuild.c (build_cgraph_edges): Update call
19228         of cgraph_create_edge and cgraph_create_indirect_edge.
19229         * cgraph.c (cgraph_create_edge_including_clones,
19230         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
19231         cgraph_update_edges_for_call_stmt_node): Do not take nest
19232         argument; do not initialize call_stmt_size/time.
19233         (dump_cgraph_node): Do not dump nest.
19234         (cgraph_clone_edge): Do not take loop_nest argument;
19235         do not propagate it; do not clone call_stmt_size/time.
19236         (cgraph_clone_node): Likewise.
19237         (cgraph_create_virtual_clone): Update.
19238         * cgraph.h (struct cgraph_edge): Remove
19239         call_stmt_size/call_stmt_time/loop_nest.
19240         (cgraph_create_edge, cgraph_create_indirect_edge,
19241         cgraph_create_edge_including_clones, cgraph_clone_node): Update
19242         prototype.
19243         * tree-emutls.c (gen_emutls_addr): Update.
19244         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
19245         loop_nest; handle indirect calls, too.
19246         (clone_inlined_nodes): Do not care about updating inline summaries.
19247         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
19248         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
19249         stream call_stmt_size/call_stmt_time/loop_nest.
19250         * ipa-inline.c (edge_badness): Update.
19251         (ipa_inline): dump summaries after inlining.
19252         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
19253         New.
19254         (inline_edge_summary): New function.
19255         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
19256         (inline_edge_removal_hook): Handle edge summaries.
19257         (inline_edge_duplication_hook): New hook.
19258         (inline_summary_alloc): Alloc hooks.
19259         (initialize_growth_caches): Do not register removal hooks.
19260         (free_growth_caches); Do not free removal hook.
19261         (dump_inline_edge_summary): New function.
19262         (dump_inline_summary): Use it.
19263         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
19264         (inline_update_callee_summaries): New function.
19265         (inline_merge_summary): Use it.
19266         (do_estimate_edge_time, do_estimate_edge_growth): Update.
19267         (read_inline_edge_summary): New function.
19268         (inline_read_section): Use it.
19269         (write_inline_edge_summary): New function.
19270         (inline_write_summary): Use it.
19271         (inline_free_summary): Free edge new holders.
19272         * tree-inline.c (copy_bb): Update.
19273
19274 2011-04-26  Jason Merrill  <jason@redhat.com>
19275
19276         * tree-eh.c (lower_try_finally_switch): Create the label along with
19277         the CASE_LABEL_EXPR.
19278
19279 2011-04-26  David S. Miller  <davem@davemloft.net>
19280             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19281
19282         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
19283         * configure: Regenerate.
19284
19285 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19286
19287         PR target/48258
19288         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
19289         reduction.
19290         (VEC_reduc): New code iterator and splitters for vector reduction.
19291         (VEC_reduc_name): Ditto.
19292         (VEC_reduc_rtx): Ditto.
19293         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
19294         (reduc_<VEC_reduc_name>_v4sf): Ditto.
19295
19296         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
19297         support for extracting SF on VSX.
19298
19299         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
19300         generating xscvspdp.
19301         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
19302         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
19303         double add, minimum, maximum vector reduction.
19304         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
19305         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
19306         optimize double vector reduction.
19307         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
19308
19309 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
19310
19311         * config/fr30/fr30.h (inhibit_libc): Don't define.
19312         * config/m32r/m32r-protos.h: Correct comment.
19313         * config/v850/v850.h (GHS_default_section_names,
19314         GHS_current_section_names): Use tree, not union tree_node *.
19315
19316 2011-04-26  Xinliang David Li  <davidxl@google.com>
19317
19318         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
19319         * c-family/c-opts.c (c_common_handle_option): Set
19320         warn_maybe_uninitialized.
19321         * opts.c (common_handle_option): Ditto.
19322         * common.opt:  New option.
19323         * tree-ssa.c (warn_uninit): Add one more parameter.
19324         (warn_uninitialized_var): Pass warning code.
19325         * tree-flow.h: Interface change.
19326
19327 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19328
19329         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
19330         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
19331         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
19332
19333 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19334
19335         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
19336         * config/mips/mips.opt (mmips-tfile): Remove.
19337
19338         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
19339         mips-tdump reference to ...
19340         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
19341         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
19342         reference by Tru64 UNIX.
19343
19344 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
19345
19346         PR debug/48768
19347         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
19348         is error_mark_node, set value to NULL.
19349
19350         PR tree-optimization/48734
19351         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
19352         if return value from maybe_fold_*_comparsions isn't something
19353         the code is prepared to handle.
19354
19355 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
19356
19357         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
19358         mode check.
19359         (ext_QIreg_nomode_operands): Remove.
19360         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
19361         (*andsi_1): Ditto.
19362         (*andhi_1): Ditto.
19363
19364 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
19365
19366         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
19367
19368 2011-04-26  Richard Guenther  <rguenther@suse.de>
19369
19370         * c-typeck.c (build_unary_op): Do not expand array-refs via
19371         pointer arithmetic.  Only adjust qualifiers for function types.
19372
19373 2011-04-26  Richard Guenther  <rguenther@suse.de>
19374
19375         PR middle-end/48694
19376         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
19377         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
19378         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
19379         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
19380
19381 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
19382
19383         * doc/extend.texi: Document __underlying_type.
19384
19385 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
19386
19387         * config/rs6000/titan.md (automata_option "progress"): Remove.
19388
19389 2011-04-25  Jeff Law  <law@redhat.com>
19390
19391         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
19392
19393 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
19394
19395         * system.h (ENUM_BITFIELD): Remove.
19396
19397 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
19398             Eric Botcazou  <ebotcazou@adacore.com>
19399
19400         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
19401         for STORE_FLAG_VALUE==-1 case.
19402
19403 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
19404
19405         PR target/43804
19406         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
19407         LEGITIMATE_PIC_OPERAND_P.
19408
19409 2011-04-24  Jan Hubicka  <jh@suse.cz>
19410
19411         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
19412         WPA hack.
19413         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
19414         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
19415         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
19416         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
19417         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
19418         Sanity check predicate length.
19419         (remap_predicate): Likewise; sanity check jump functions.
19420         (inline_read_section, inline_write_summary): Sanity check
19421         predicate length.
19422
19423 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
19424
19425         PR other/48748
19426         * doc/extend.texi (Type Traits): Document __is_standard_layout,
19427         __is_literal_type, and __is_trivial; update throughout about
19428         possibly cv-qualified void types.
19429
19430 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19431
19432         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
19433         testsuite and make it version agnostic.
19434
19435 2011-04-22  Jan Hubicka  <jh@suse.cz>
19436
19437         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
19438
19439 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
19440
19441         PR c/48685
19442         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
19443         to VOID_TYPE even around MODIFY_EXPR.
19444
19445 2011-04-22  Mike Stump  <mikestump@comcast.net>
19446
19447         * gensupport.c (read_md_rtx): Fix typo in comment.
19448         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
19449         comment.
19450
19451 2011-04-22  Jan Hubicka  <jh@suse.cz>
19452
19453         * gengtype.c (open_base_files): Add ipa-inline.h include.
19454         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
19455         ipa-prop.c; update all uses.
19456         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
19457         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
19458         merge summary of inlined function into former caller.
19459         * ipa-inline.c (max_benefit): Remove.
19460         (edge_badness): Compensate for removal of benefits.
19461         (update_caller_keys): Use
19462         reset_node_growth_cache/reset_edge_growth_cache.
19463         (update_callee_keys): Likewise.
19464         (update_all_callee_keys): Likewise.
19465         (inline_small_functions): Do not collect max_benefit; do not reset
19466         estimated_growth; call free_growth_caches and initialize_growth_caches.
19467         * ipa-inline.h (struct condition, type clause_t, struct predicate,
19468         struct size_time_entry): New structures.
19469         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
19470         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
19471         and estimated_growth.
19472         (edge_growth_cache_entry): New structure.
19473         (node_growth_cache, edge_growth_cache): New global vars.
19474         (estimate_growth): Turn into inline.
19475         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
19476         initialize_growth_caches, free_growth_caches): Declare.
19477         (estimate_edge_growth): Rewrite.
19478         (estimate_edge_time): Implement as inline cache lookup.
19479         (reset_node_growth_cache, reset_edge_growth_cache): New inline
19480         functions.
19481         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
19482         (NUM_CONDITIONS): New constant.
19483         (predicate_conditions): New enum.
19484         (IS_NOT_CONSTANT): New constant.
19485         (edge_removal_hook_holder): New var.
19486         (node_growth_cache, edge_growth_cache): New global vars.
19487         (true_predicate, single_cond_predicate, false_predicate,
19488         not_inlined_predicate, add_condition, add_clause, and_predicates,
19489         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
19490         dump_clause, dump_predicate, account_size_time,
19491         evaulate_conditions_for_edge): New functions.
19492         (inline_summary_alloc): Move to heap.
19493         (inline_node_removal_hook): Clear condition and entry vectors.
19494         (inline_edge_removal_hook): New function.
19495         (initialize_growth_caches, free_growth_caches): New function.
19496         (dump_inline_summary): Update.
19497         (edge_execution_predicate): New function.
19498         (will_be_nonconstant_predicate): New function.
19499         (estimate_function_body_sizes): Compute BB and constantness predicates.
19500         (compute_inline_parameters): Do not clear estimated_growth.
19501         (estimate_edge_size_and_time): New function.
19502         (estimate_calls_size_and_time): New function.
19503         (estimate_callee_size_and_time): New function.
19504         (remap_predicate): New function.
19505         (inline_merge_summary): New function.
19506         (do_estimate_edge_time): New function based on...
19507         (estimate_edge_time): ... this one.
19508         (do_estimate_edge_growth): New function.
19509         (do_estimate_growth): New function based on....
19510         (estimate_growth): ... this one.
19511         (inline_analyze_function): Analyze after deciding on jump functions.
19512         (inline_read_section): New function.
19513         (inline_read_summary): Use it.
19514         (inline_write_summary): Write all the new data.
19515         * ipa-prop.c (ipa_get_param_decl_index): Export.
19516         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
19517         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
19518         Declare.
19519         (ipa_get_lattice): Move here from ipa-cp.c
19520         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
19521         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
19522         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
19523         cgraph_edge_inlinable_p): Remove.
19524         * cgraphunit.c: Include ipainline.h
19525         (cgraph_process_new_functions): Update call of
19526         compute_inline_parameters.
19527
19528 2011-04-22  Richard Guenther  <rguenther@suse.de>
19529
19530         * tree.c (build_int_cst): Properly create canonicalized integer
19531         constants.
19532         (build_int_cst_type): Remove scary comments.
19533
19534 2011-04-22  Xinliang David Li  <davidxl@google.com>
19535
19536         * toplev.c (process_options): Enable -Werror=coverage-mismatch
19537         by default when -Wno-error is not specified.
19538         * opts-global.c (decode_options): Remove call to
19539         control_warning_options.
19540
19541 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19542
19543         PR tree-optimization/48717
19544         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
19545         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
19546
19547 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
19548
19549         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
19550         definition where used.
19551
19552 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19553
19554         PR c/48716
19555         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
19556         TREE_STATIC variables declared inside of some OpenMP construct.
19557
19558 2011-04-22  Martin Jambor  <mjambor@suse.cz>
19559
19560         PR middle-end/48585
19561         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
19562
19563 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
19564
19565         PR c/36750
19566         * c-typeck.c (pop_init_level): Do not warn about initializing
19567         with ` = {0}'.
19568
19569 2011-04-22  Alan Modra  <amodra@gmail.com>
19570
19571         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
19572         when returning call_cookie.
19573         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
19574         pointers, to functions with no more vector args than the current
19575         function, and some non-local calls for ABI_V4.
19576         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
19577         sibcall_nonlocal_aix64): Combine to ..
19578         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
19579         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
19580         (sibcall_value_nonlocal_aix<mode>): ..likewise.
19581         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
19582         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
19583         operand.
19584         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
19585         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
19586         sibcall_value_symbolic_64): Delete.
19587
19588 2011-04-21  Xinliang David Li  <davidxl@google.com>
19589
19590         * cgraph.h: Remove pid.
19591         * cgraph.c: Remove pid.
19592         * value-prof.c (init_node_map): New function.
19593         (del_node_map): New function.
19594         (find_func_by_funcdef_no): New function.
19595         (gimple_ic_transform): Call new function.
19596         * cgraphunit.c (cgraph_finalize_function): Remove pid.
19597         * function.c (get_last_funcdef_no): New function.
19598         * function.h (get_last_funcdef_no): New function.
19599         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
19600         to libgcov function.
19601         (tree-profiling): Call node map init and delete function.
19602
19603 2011-04-21  Ian Lance Taylor  <iant@google.com>
19604
19605         * godump.c (go_format_type): Use exported Go name for anonymous
19606         field name.
19607
19608 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19609
19610         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
19611         Call builtin_function_type_list instead of builtin_function_type.
19612         (UNARY, BINARY, TRINARY, QUAD): Likewise.
19613
19614 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19615
19616         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
19617         build_function_type_list instead of build_function_type.
19618         Delete variable `endlink'.
19619
19620 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19621
19622         * config/s390/s390.c (s390_init_builtins): Call
19623         build_function_type_list instead of build_function_type.
19624
19625 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19626
19627         * config/ia64/ia64.c (ia64_init_builtins): Call
19628         build_function_type_list instead of builtin_function_type.
19629
19630 2011-04-21  Easwaran Raman  <eraman@google.com>
19631
19632         * cfgexpand.c (stack_var): Remove OFFSET...
19633         (add_stack_var): ...and its reference here...
19634         (expand_stack_vars): ...and here.
19635         (stack_var_cmp): Sort by descending order of size.
19636         (partition_stack_vars): Change heuristic.
19637         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
19638         (dump_stack_var_partition): Add newline after each partition.
19639
19640 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
19641             Jeff Law  <law@redhat.com>
19642
19643         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
19644         * gengtype.c (matching_file_name_substitute): Likewise.
19645
19646 2011-04-21  Richard Guenther  <rguenther@suse.de>
19647
19648         PR lto/48703
19649         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
19650
19651 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
19652
19653         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
19654
19655 2011-04-21  Richard Guenther  <rguenther@suse.de>
19656
19657         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
19658         file name.
19659
19660 2011-04-21  Richard Guenther  <rguenther@suse.de>
19661
19662         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
19663         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
19664         Use DECL_P, not SSA_VAR_P.
19665         (ptr_derefs_may_alias_p): Likewise.
19666         (ptr_deref_may_alias_ref_p_1): Likewise.
19667         (decl_refs_may_alias_p): Likewise.
19668         (refs_may_alias_p_1): Likewise.
19669         (ref_maybe_used_by_call_p_1): Likewise.
19670         (call_may_clobber_ref_p_1): Likewise.
19671         (indirect_ref_may_alias_decl_p): Assume indirect refrences
19672         are either MEM_REF or TARGET_MEM_REF.
19673         (indirect_refs_may_alias_p): Likewise.
19674         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
19675         for MEM_EXPR of indirect calls.
19676
19677 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19678
19679         * vmsdbgout.c (write_srccorr): Compute file length from the string.
19680         (dst_file_info_struct): Remove flen field.
19681         (lookup_filename): Remove code that set flen field.
19682
19683 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19684
19685         * config/ia64/ia64.c (ia64_start_function): Add a guard.
19686
19687 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
19688
19689         PR target/48708
19690         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
19691         vec_extract and vec_concat for non-SSE4_1 targets.
19692
19693 2011-04-21  Richard Guenther  <rguenther@suse.de>
19694
19695         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
19696         return statements.
19697
19698 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19699
19700         * config/i386/cygming.h (union tree_node, TREE): Don't define or
19701         undefine.
19702         (FILE): Don't undefine.
19703
19704 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19705
19706         * config/alpha/alpha.c (struct machine_function): Use rtx, not
19707         struct rtx_def *.
19708         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
19709         struct rtx_def *.
19710         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
19711         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
19712         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
19713         rtx_def *.
19714         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
19715         definitions where used.
19716         * config/microblaze/microblaze.h (struct microblaze_args): Use
19717         rtx, not struct rtx_def *.
19718         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
19719         rtx_def *.
19720         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
19721         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
19722         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
19723         not struct rtx_def *.
19724         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
19725         struct rtx_def *.
19726         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
19727         rtx_def *.
19728         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
19729
19730 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19731
19732         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
19733         operand_equal_p to compare DR_BASE_ADDRESSes.
19734         (vect_check_interleaving): Likewise.
19735
19736 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19737
19738         PR target/46329
19739         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
19740         for all Neon struct constants.
19741
19742 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19743
19744         * target.def (legitimate_constant_p): New hook.
19745         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
19746         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
19747         * doc/tm.texi: Regenerate.
19748         * hooks.h (hook_bool_mode_rtx_true): Declare.
19749         * hooks.c (hook_bool_mode_rtx_true): Define.
19750         * system.h (LEGITIMATE_CONSTANT_P): Poison.
19751         * calls.c (precompute_register_parameters): Replace uses of
19752         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
19753         (emit_library_call_value_1): Likewise.
19754         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
19755         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
19756         * ira-costs.c (scan_one_insn): Likewise.
19757         * recog.c (general_operand, immediate_operand): Likewise.
19758         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
19759         * reload1.c (init_eliminable_invariants): Likewise.
19760
19761         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
19762         mode argument.
19763         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
19764         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
19765         argument.
19766         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19767         * config/alpha/predicates.md (input_operand): Update call to
19768         alpha_legitimate_constant_p.
19769
19770         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
19771         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
19772         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
19773         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19774         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
19775         (arm_legitimate_constant_p): New functions.
19776         (arm_cannot_force_const_mem): Make static.
19777
19778         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
19779
19780         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
19781         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
19782         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
19783         instead of bfin_legitimate_constant_p.
19784         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
19785         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19786
19787         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
19788
19789         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
19790
19791         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
19792         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
19793         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19794         (frv_legitimate_constant_p): Make static.  Add a mode argument.
19795
19796         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
19797         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
19798         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
19799
19800         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
19801         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
19802         * config/i386/i386.c (legitimate_constant_p): Rename to...
19803         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
19804         argument.
19805         (ix86_cannot_force_const_mem): Update accordingly.
19806         (ix86_legitimate_address_p): Likewise.
19807         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19808         * config/i386/i386.md: Update commentary.
19809
19810         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
19811         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
19812         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19813         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
19814
19815         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
19816
19817         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
19818         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
19819         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19820         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
19821
19822         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
19823         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
19824         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
19825
19826         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
19827         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19828         (m32r_legitimate_constant_p): New function.
19829
19830         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
19831         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
19832         LEGITIMATE_CONSTANT_P.
19833         (LEGITIMATE_CONSTANT_P): Delete.
19834         * config/m68k/m68k.c (m68k_expand_prologue): Call
19835         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
19836         (m68k_legitimate_constant_p): New function.
19837         * config/m68k/m68k.md: Update comments.
19838
19839         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
19840         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19841         (mcore_legitimate_constant_p): New function.
19842
19843         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
19844         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
19845         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
19846         Add a mode argument.
19847         (mep_legitimate_address): Update accordingly.
19848         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19849
19850         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
19851         Delete.
19852         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
19853         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
19854         static.  Check OP's mode for VOIDmode.
19855         (microblaze_legitimate_constant_p): New function.
19856         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19857
19858         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
19859         * config/mips/mips.c (mips_legitimate_constant_p): New function.
19860         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
19861         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19862         * config/mips/predicates.md: Update comments.
19863
19864         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
19865         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
19866         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19867         (mmix_legitimate_constant_p): Make static, return a bool, and take
19868         a mode argument.
19869         (mmix_print_operand_address): Update accordingly.
19870
19871         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
19872         Delete.
19873         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
19874         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
19875         static.  Add a mode argument.
19876         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19877
19878         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
19879
19880         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
19881         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19882         (pa_legitimate_constant_p): New function.
19883
19884         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
19885
19886         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
19887         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19888         (pdp11_legitimate_constant_p): New function.
19889
19890         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
19891         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19892         (rs6000_legitimate_constant_p): New function.
19893
19894         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
19895         (rx_legitimate_constant_p): ...this.
19896         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
19897         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
19898         (rx_legitimate_constant_p): ...this.
19899         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19900         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
19901
19902         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
19903         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
19904         * config/s390/s390.c (legitimate_constant_p): Rename to...
19905         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
19906         and add a mode argument.
19907         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19908
19909         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
19910
19911         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
19912         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19913         (sh_legitimate_constant_p): New function.
19914
19915         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
19916         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
19917         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19918         (legitimate_constant_p): Rename to...
19919         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
19920         argument.
19921         (constant_address_p): Update accordingly.
19922
19923         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
19924         argument and return a bool.
19925         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
19926         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19927         (spu_legitimate_constant_p): Add a mode argument and return a bool.
19928         (spu_rtx_costs): Update accordingly.
19929         * config/spu/predicates.md (vec_imm_operand): Likewise.
19930
19931         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
19932
19933         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
19934         * config/v850/v850.c (v850_legitimate_constant_p): New function.
19935         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19936
19937         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
19938         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
19939         * config/vax/vax.c (legitimate_constant_p): Likewise.
19940
19941         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
19942         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19943         (xtensa_legitimate_constant_p): New function.
19944
19945 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19946
19947         * target.def (cannot_force_const_mem): Add a mode argument.
19948         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
19949         * doc/tm.texi: Regenerate.
19950         * hooks.h (hook_bool_mode_rtx_false): Declare.
19951         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
19952         (hook_bool_mode_const_rtx_true): Likewise.
19953         (hook_bool_mode_rtx_false): New function.
19954         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
19955         to be non-VOID.  Update call to cannot_force_const_mem.
19956         (find_reloads): Update accordingly.
19957         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
19958         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
19959         argument.
19960         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
19961         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
19962         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
19963         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
19964         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
19965         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
19966         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
19967         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19968         (m68k_cannot_force_const_mem): ...this new function.
19969         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
19970         argument.
19971         (mips_const_insns, mips_legitimize_const_move): Update calls.
19972         (mips_secondary_reload_class): Likewise.
19973         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19974         (pa_cannot_force_const_mem): ...this new function.
19975         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
19976         (rs6000_cannot_force_const_mem): ...this new function.
19977         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
19978         argument.
19979         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
19980         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
19981         to...
19982         (xtensa_cannot_force_const_mem): ...this new function.
19983
19984 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19985
19986         * config/mips/mips.c (mips16_build_function_stub): Call
19987         build_function_type_list instead of build_function_type.
19988         (mips16_build_call_stub): Likewise.
19989
19990 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19991
19992         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
19993         instead of build_function_type.
19994
19995 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19996
19997         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
19998         instead of build_function_type.
19999
20000 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
20001
20002         PR target/48678
20003         * config/i386/i386.md (insv): Change operand 0 constraint to
20004         "register_operand".  Change operand 1 and 2 constraint to
20005         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
20006         * config/i386/sse.md (sse4_1_pinsrb): Export.
20007         (sse2_pinsrw): Ditto.
20008         (sse4_1_pinsrd): Ditto.
20009         (sse4_1_pinsrq): Ditto.
20010         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
20011         * config/i386/i386.c (ix86_expand_pinsr): New.
20012
20013 2011-04-20  Easwaran Raman  <eraman@google.com>
20014
20015         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
20016         containing union type only with -fstrict-aliasing.
20017
20018 2011-04-20  Jim Meyering  <meyering@redhat.com>
20019
20020         Remove useless if-before-free tests.
20021         * calls.c (expand_call, save_area): Likewise.
20022         * cfgcleanup.c (try_forward_edges): Likewise.
20023         * collect2.c (collect_execute): Likewise.
20024         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
20025         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
20026         * coverage.c (coverage_checksum_string): Likewise.
20027         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
20028         * cselib.c (cselib_init): Likewise.
20029         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
20030         (df_set_clean_cfg): Likewise.
20031         * function.c (free_after_compilation): Likewise.
20032         * gcc.c (do_spec_1, main): Likewise.
20033         * gcov.c (create_file_names): Likewise.
20034         * gensupport.c (identify_predicable_attribute): Likewise.
20035         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
20036         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
20037         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
20038         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
20039         * ipa-pure-const.c (local_pure_const): Likewise.
20040         * ipa-reference.c (propagate): Likewise.
20041         * ira-costs.c (free_ira_costs): Likewise.
20042         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
20043         * matrix-reorg.c (mat_free): Likewise.
20044         * prefix.c (get_key_value): Likewise.
20045         * profile.c (compute_value_histograms): Likewise.
20046         * reload1.c (free_reg_equiv): Likewise.
20047         * sched-deps.c (free_deps): Likewise.
20048         * sel-sched-ir.c (fence_clear): Likewise.
20049         * sese.c (set_rename, if_region_set_false_region): Likewise.
20050         * tree-data-ref.c (free_rdg): Likewise.
20051         * tree-eh.c (lower_try_finally): Likewise.
20052         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
20053         * tree-ssa-live.c (delete_var_map): Likewise.
20054         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
20055         * tree-ssa-pre.c (phi_trans_add): Likewise.
20056
20057 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
20058
20059         PR tree-optimization/48611
20060         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
20061         beyond ERT_MUST_NOT_THROW region.
20062
20063 2011-04-20  Catherine Moore  <clm@codesourcery.com>
20064
20065         * config/mips/mips.opt (mfix-24k): New.
20066         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
20067         * config/mips/mips.md (length): Increase by 4 for stores if
20068         fixing 24K errata.
20069         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
20070         all noreorder if fixing 24K errata.
20071         * doc/invoke.texi: Document mfix-24k.
20072
20073 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
20074
20075         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
20076         quad-word modes, reduce to 9-bit index range when above 1016 limit.
20077
20078 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20079
20080         * config/arm/arm.c (arm_gen_constant): Move movw support ....
20081         (const_ok_for_op): ... to here.
20082
20083 2011-04-20  Kai Tietz  <ktietz@redhat.com>
20084
20085         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
20086         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
20087
20088 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20089
20090         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
20091
20092 2011-04-20  Richard Guenther  <rguenther@suse.de>
20093
20094         PR tree-optimization/47892
20095         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
20096         are if-convertible.
20097
20098 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
20099
20100         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
20101
20102 2011-04-20  Tristan Gingold  <gingold@adacore.com>
20103
20104         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
20105
20106 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
20107
20108         PR target/18145
20109
20110         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
20111         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
20112         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
20113         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
20114         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
20115
20116         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
20117         New prototype.
20118
20119         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
20120         (avr_asm_named_section, avr_asm_output_aligned_common,
20121         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
20122         New functions to update...
20123         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
20124         (avr_asm_init_sections): Overwrite section callbacks for
20125         data_section, bss_section.
20126         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
20127         from here to...
20128         (avr_file_end): ...here.
20129
20130 2011-04-20  Richard Guenther  <rguenther@suse.de>
20131
20132         PR middle-end/48695
20133         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
20134         objects and types here.  Adjust for their offset before comparing.
20135
20136 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20137
20138         * tree-vect-stmts.c (vectorizable_store): Only chain one related
20139         statement per copy.
20140
20141 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20142
20143         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
20144         (GIMPLE_H): Include $(INTERNAL_FN_H).
20145         (OBJS-common): Add internal-fn.o.
20146         (internal-fn.o): New rule.
20147         * internal-fn.def: New file.
20148         * internal-fn.h: Likewise.
20149         * internal-fn.c: Likewise.
20150         * gimple.h: Include internal-fn.h.
20151         (GF_CALL_INTERNAL): New gf_mask.
20152         (gimple_statement_call): Put fntype into a union with a new
20153         internal_fn field.
20154         (gimple_build_call_internal): Declare.
20155         (gimple_build_call_internal_vec): Likewise.
20156         (gimple_call_same_target_p): Likewise.
20157         (gimple_call_internal_p): New function.
20158         (gimple_call_internal_fn): Likewise.
20159         (gimple_call_fntype): Return null for internal calls.
20160         (gimple_call_set_fntype): Assert that the function is not internal.
20161         (gimple_call_set_fn): Likewise.
20162         (gimple_call_set_fndecl): Likewise.
20163         (gimple_call_set_internal_fn): New function.
20164         (gimple_call_addr_fndecl): Handle null functions.
20165         (gimple_call_return_type): Likewise null types.
20166         * gimple.c (gimple_build_call_internal_1): New function.
20167         (gimple_build_call_internal): Likewise.
20168         (gimple_build_call_internal_vec): Likewise.
20169         (gimple_call_same_target_p): Likewise.
20170         (gimple_call_flags): Handle calls to internal functions.
20171         (gimple_call_fnspec): New function.
20172         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
20173         (gimple_has_side_effects): Handle null functions.
20174         (gimple_rhs_has_side_effects): Likewise.
20175         (gimple_call_copy_skip_args): Handle calls to internal functions.
20176         * cfgexpand.c (expand_call_stmt): Likewise.
20177         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
20178         * gimple-fold.c (gimple_fold_call): Handle null functions.
20179         (gimple_fold_stmt_to_constant_1): Don't fold
20180         calls to internal functions.
20181         * gimple-low.c (gimple_check_call_args): Handle calls to internal
20182         functions.
20183         * gimple-pretty-print.c (dump_gimple_call): Likewise.
20184         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
20185         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
20186         (do_warn_unused_result): Likewise.
20187         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
20188         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
20189         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
20190         the target of a call.
20191         (initialize_hash_element): Update accordingly.
20192         (hashable_expr_equal_p): Use gimple_call_same_target_p.
20193         (iterative_hash_hashable_expr): Handle calls to internal functions.
20194         (print_expr_hash_elt): Likewise.
20195         * tree-ssa-pre.c (can_value_number_call): Likewise.
20196         (eliminate): Handle null functions.
20197         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
20198         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
20199         (find_func_aliases): Likewise.
20200         * value-prof.c (gimple_ic_transform): Likewise.
20201         (gimple_indirect_call_to_profile): Likewise.
20202         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20203         * lto-streamer-out.c (output_gimple_stmt): Likewise.
20204
20205 2011-04-19  Jan Hubicka  <jh@suse.cz>
20206
20207         * ipa-inline-transform.c (save_inline_function_body): Add comments.
20208         * ipa-inline.c (inline_small_functions): Compute summaries first,
20209         populate heap later.
20210
20211 2011-04-19  Jan Hubicka  <jh@suse.cz>
20212
20213         * cgraph.h (save_inline_function_body): Remove.
20214         * ipa-inline-transform.c: New file, broke out of...
20215         * ipa-inline.c: ... this one; Update toplevel comment.
20216         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
20217         make global.
20218         (update_noncloned_frequencies): Move to ipa-inline-transform.c
20219         (cgraph_mark_inline_edge): Rename to inline_call; move to
20220         ipa-inline-transform.c.
20221         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
20222         move to ipa-inline-transform.c
20223         (recursive_inlining, inline_small_functions, flatten_function,
20224         ipa_inline, inline_always_inline_functions,
20225         early_inline_small_functions): Update.
20226         (inline_transform): Move to ipa-inline-transform.c.
20227         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
20228         Declare.
20229         * Makefile.in (ipa-inline-transform.o): New file.
20230         * cgraphunit.c (save_inline_function_body): Move to
20231         ipa-inline-transform.c
20232
20233 2011-04-19  DJ Delorie  <dj@redhat.com>
20234
20235         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
20236         registers if we already know there aren't any.
20237         (m32c_emit_epilogue): Don't emit a barrier here.
20238         (m32c_emit_eh_epilogue): Likewise.
20239         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
20240         operands at expand time.
20241         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
20242         int" wchar type.
20243         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
20244         duplicates.  Provide aliases instead.
20245         * config/m32c/prologue.md (eh_return): Emit a barrier here.
20246         (eh_epilogue): Add a "(return)" here as a hint to other parts of
20247         the compiler.
20248
20249 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
20250
20251         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
20252         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
20253         (general_or_i64_p, sparc_register_move_cost): New function.
20254
20255 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20256
20257         * doc/install.texi (Configuration, --enable-threads): Remove mach.
20258         Add lynx, mipssde.  Sort table.
20259
20260 2011-04-19  Xinliang David Li  <davidxl@google.com>
20261
20262         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
20263         not negative.
20264
20265 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
20266
20267         PR target/48678
20268         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
20269         is a SUBREG with non-MODE_INT mode inside of it.
20270
20271 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20272
20273         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
20274         also according to actual contants.
20275         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
20276         (gimple_fold_call): Use it.
20277         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
20278
20279 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20280
20281         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
20282         non-pointer assignments.
20283
20284 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20285
20286         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
20287         account anc_offset and otr_type from the indirect edge info.
20288         * ipa-prop.c (get_ancestor_addr_info): New function.
20289         (compute_complex_ancestor_jump_func): Assignment analysis moved to
20290         get_ancestor_addr_info, call it.
20291         (ipa_note_param_call): Do not initialize information about polymorphic
20292         calls, return the indirect call graph edge.  Remove the last
20293         parameter, adjust all callers.
20294         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
20295         parameters.  Initialize polymorphic information in the indirect edge.
20296
20297 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20298
20299         PR lto/48148
20300         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
20301         the types if they have different enumeration identifiers.
20302
20303 2011-04-19  Jan Hubicka  <jh@suse.cz>
20304
20305         * cgraph.h (cgraph_optimize_for_size_p): Declare.
20306         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
20307         * predict.c (cgraph_optimize_for_size_p): Break out from ...
20308         (optimize_function_for_size_p) ... here.
20309
20310 2011-04-19  Richard Guenther  <rguenther@suse.de>
20311
20312         PR lto/48207
20313         * tree.c (free_lang_data): Do not reset the decl-assembler-name
20314         langhook.
20315
20316 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20317
20318         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
20319         if DECL_NO_INLINE_WARNING_P is set on the function.
20320
20321 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
20322
20323         PR fortran/47976
20324         * reload1.c (inc_for_reload): Return void. All callers changed.
20325         (emit_input_reload_insns): Don't try to delete previous output
20326         reloads to a register, or record spill_reg_store for autoincs.
20327
20328 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
20329
20330         * gengtype.h: Updated copyright year.
20331         (struct input_file_st): Add inpisplugin field.
20332         (type_fileloc): New function.
20333         * gengtype.c
20334         (write_typed_struct_alloc_def): Add gcc_assert.
20335         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
20336         (write_typed_alloc_defns): Don't output for plugin files.
20337         (input_file_by_name): Clear inpisplugin field.
20338         (main): Set inpisplugin field for plugin files.
20339
20340 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
20341
20342         * gengtype-state.c (string_eq): New.
20343         (read_state): Use string_eq instead of strcmp when creating the
20344         state_ident_tab.
20345
20346 2011-04-19  Wei Guozhi  <carrot@google.com>
20347
20348         PR target/47855
20349         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
20350         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
20351         linkage.
20352         * config/arm/constraints.md (Uu): New constraint.
20353         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
20354
20355 2011-04-19  Tristan Gingold  <gingold@adacore.com>
20356
20357         * config.gcc (-*-*-*vms): Added.
20358         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
20359         definitions moved.
20360         * config/vms/vms-ld.c: New file.
20361         * config/vms/vms-ar.c: New file.
20362         * config/vms/t-vmsnative: New file.
20363
20364 2011-04-18  Xinliang David Li  <davidxl@google.com>
20365
20366         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
20367
20368 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20369
20370         PR middle-end/48661
20371         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
20372         if TREE_TYPE (v) is non-NULL.
20373
20374         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
20375         gimple_get_virt_mehtod_for_binfo.
20376         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
20377         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
20378         callers.
20379         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
20380
20381 2011-04-18  Michael Matz  <matz@suse.de>
20382             Steve Ellcey  <sje@cup.hp.com>
20383
20384         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
20385         use its mode as source mode if it isn't VOIDmode.
20386
20387 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
20388
20389         * doc/passes.texi: Fill crossref nodes.
20390
20391 2011-04-18  Jim Meyering  <meyering@redhat.com>
20392
20393         Fix doubled-word typos in comments and strings
20394         * config/alpha/vms-unwind.h: s/for for/for/
20395         * config/arm/unwind-arm.h: Likewise.
20396         * config/microblaze/microblaze.c: Likewise.
20397         * config/sh/constraints.md: s/in in/in/
20398         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
20399
20400 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
20401
20402         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
20403         (AVX_FLOAT_MODE_P): Ditto.
20404         (AVX128_VEC_FLOAT_MODE_P): Ditto.
20405         (AVX256_VEC_FLOAT_MODE_P): Ditto.
20406         (AVX_VEC_FLOAT_MODE_P): Ditto.
20407         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
20408         (UNSPEC_MASKSTORE): Ditto.
20409         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
20410         Merge from <sse>_movmsk<ssemodesuffix> and
20411         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
20412         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
20413         iterator.
20414         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
20415         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
20416         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
20417
20418 2011-04-18  Jan Hubicka  <jh@suse.cz>
20419
20420         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
20421
20422         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
20423         (want_inline_function_called_once_p): Break out the logic from
20424         ipa_inline.
20425         (edge_badness): Ensure that profile is not misupdated.
20426         (lookup_recursive_calls): Prioritize by call frequencies.
20427         (inline_small_functions): Move program size estimates here;
20428         actually process whole queue even when unit growth has been
20429         met. (to properly compute inline_failed reasons and for the
20430         case unit size decrease.) Revisit comments on recursive inlining.
20431         (ipa_inline): Remove unit summary code; first inline hot calls
20432         of functions called once, cold calls next.
20433         (order, nnodes): Remove unused variables.
20434         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
20435         (GTFILES): Remove ipa-inline.c
20436         * sel-sched.c (fill_insns): Silence uninitialized var warning.
20437
20438 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20439
20440         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
20441
20442 2011-04-18  Jie Zhang  <jie@codesourcery.com>
20443             Richard Earnshaw  <rearnsha@arm.com>
20444
20445         * arm.c (neon_builtin_type_bits): Remove.
20446         (typedef enum neon_builtin_mode): New.
20447         (T_MAX): Don't define.
20448         (typedef enum neon_builtin_datum): Remove bits, codes[],
20449         num_vars and base_fcode.  Add mode, code and fcode.
20450         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
20451         VAR10): Change accordingly.
20452         (neon_builtin_data[]): Change accordingly
20453         (arm_init_neon_builtins): Change accordingly.
20454         (neon_builtin_compare): Remove.
20455         (locate_neon_builtin_icode): Remove.
20456         (arm_expand_neon_builtin): Change accordingly.
20457
20458         * arm.h (enum arm_builtins): Move to ...
20459         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
20460
20461         * arm.c (arm_builtin_decl): Declare.
20462         (TARGET_BUILTIN_DECL): Define.
20463         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
20464         (arm_builtin_decls[]): New.
20465         (arm_init_neon_builtins): Store builtin declarations in
20466         arm_builtin_decls[].
20467         (arm_init_tls_builtins): Likewise.
20468         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
20469         (arm_builtin_decl): New.
20470
20471 2011-04-18  Richard Guenther  <rguenther@suse.de>
20472
20473         * tree.c (upper_bound_in_type): Build properly canonicalized
20474         INTEGER_CSTs.
20475         (lower_bound_in_type): Likewise.
20476
20477 2011-04-18  Richard Guenther  <rguenther@suse.de>
20478
20479         * gimple.h (gimple_call_addr_fndecl): New function.
20480         (gimple_call_fndecl): Use it.
20481         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
20482         for direct calls.
20483         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
20484         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
20485
20486 2011-04-18  Richard Guenther  <rguenther@suse.de>
20487
20488         PR middle-end/48650
20489         * tree.c (build_string): STRING_CST is now derived from tree_typed.
20490
20491 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20492
20493         PR lto/48492
20494         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
20495         DECL_IN_CONSTANT_POOL without RTL.
20496
20497 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
20498             Ira Rosen  <ira.rosen@linaro.org>
20499
20500         PR target/48252
20501         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
20502         to match neon_vzip/vuzp/vtrn_internal.
20503         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
20504         outputs explicitly dependent on both inputs.
20505         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
20506
20507 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20508
20509         PR tree-optimization/48616
20510         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
20511         whether the shift is by scalar or vector based on whether all SLP
20512         scalar stmts have the same rhs.
20513
20514 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
20515
20516         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
20517         memory operands.
20518
20519 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
20520
20521         PR target/43700
20522         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
20523         registers.
20524
20525 2011-04-17  Jan Hubicka  <jh@suse.cz>
20526
20527         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
20528         * cgrpahunit.c (cgraph_finalize_function): Do not set
20529         finalized_by_frontend.
20530         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20531         finalized_by_frontend.
20532
20533 2011-04-17  Jan Hubicka  <jh@suse.cz>
20534
20535         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
20536         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
20537         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
20538         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
20539         method.
20540         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
20541         gimple-fold.c
20542         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
20543
20544 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
20545
20546         PR lto/48538
20547         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
20548         is non-null before accessing it.
20549         (input_cgraph): Remove trailing spaces.
20550
20551 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20552
20553         * params.def (sms-min-sc): New param flag.
20554         * modulo-sched.c (sms_schedule): Use it.
20555         * doc/invoke.texi (sms-min-sc): Document it.
20556
20557 2011-04-17  Jan Hubicka  <jh@suse.cz>
20558
20559         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
20560         present, also set gimple_call_set_cannot_inline.
20561         * ipa-inline.c: Update toplevel comment.
20562         (MAX_TIME): Remove.
20563         (cgraph_clone_inlined_nodes): Fix linebreaks.
20564         (cgraph_check_inline_limits): Restructure to ...
20565         (caller_growth_limits): ... this one; be more tolerant
20566         on growth in nested inline chains; add explanatory comment;
20567         fix stack accounting thinko introduced by previous patch.
20568         (cgraph_default_inline_p): Remove.
20569         (report_inline_failed_reason): New function.
20570         (can_inline_edge_p): New function.
20571         (can_early_inline_edge_p): New function.
20572         (leaf_node_p): Move upwards in file.
20573         (want_early_inline_function_p): New function.
20574         (want_inline_small_function_p): New function.
20575         (want_inline_self_recursive_call_p): New function.
20576         (cgraph_edge_badness): Rename to ...
20577         (edge_badness) ... this one; fix linebreaks.
20578         (update_edge_key): Update call of edge_baddness; add
20579         detailed dump about queue updates.
20580         (update_caller_keys): Use can_inline_edge_p and
20581         want_inline_small_function_p.
20582         (cgraph_decide_recursive_inlining): Rename to...
20583         (recursive_inlining): Use can_inline_edge_p and
20584         want_inline_self_recursive_call_p; simplify and remove no longer
20585         valid FIXME.
20586         (cgraph_set_inline_failed): Remove.
20587         (add_new_edges_to_heap): Use can_inline_edge_p and
20588         want_inline_small_function_p.
20589         (cgraph_decide_inlining_of_small_functions): Rename to ...
20590         (inline_small_functions): ... this one; cleanup; use
20591         can/want predicates; cleanup debug ouput; work edges till fibheap
20592         is exhausted and do not stop once unit growth is reached; remove
20593         later loop processing remaining edges.
20594         (cgraph_flatten): Rename to ...
20595         (flatten_function): ... this one; use can_inline_edge_p
20596         and can_early_inline_edge_p predicates.
20597         (cgraph_decide_inlining): Rename to ...
20598         (ipa_inline): ... this one; remove unreachable nodes before
20599         inlining functions called once; simplify the pass.
20600         (cgraph_perform_always_inlining): Rename to ...
20601         (inline_always_inline_functions): ... this one; use
20602         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
20603         (cgraph_decide_inlining_incrementally): Rename to ...
20604         (early_inline_small_functions): ... this one; simplify
20605         using new predicates; cleanup; make dumps prettier.
20606         (cgraph_early_inlining): Rename to ...
20607         (early_inliner): newer inline regular functions into always-inlines;
20608         fix updating of call stmt summaries.
20609         (pass_early_inline): Update for new names.
20610         (inline_transform): Fix formating.
20611         (gate_cgraph_decide_inlining): Rename to ...
20612         (pass_ipa_inline): ... this one.
20613         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
20614         * ipa-inline-analysis.c (dump_inline_summary): Update.
20615         (compute_inline_parameters): Do not compute disregard_inline_limits;
20616         look for mismatching arguments.
20617         (estimate_growth): Fix handlig of non-trivial self recursion.
20618         (inline_read_summary): Do not read info->disregard_inline_limits.
20619         (inline_write_summary): Do not write info->disregard_inline_limits.
20620         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
20621         and move all checks into can_inline_edge_p predicate; re-enable code
20622         comparing optimization levels.
20623         (expand_call_inline): Do not test inline_forbidden_into_p.
20624         * Makefile.in (ipa-inline.o): Update arguments.
20625
20626 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20627
20628         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
20629
20630 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20631
20632         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
20633
20634 2011-04-17  Michael Matz  <matz@suse.de>
20635
20636         PR tree-optimization/48622
20637         PR lto/48645
20638         * ipa-inline-analysis.c (inline_read_summary): Read size/time
20639         in same order as they're written.
20640
20641 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20642
20643         * config/pa/predicates.md: Reorganize and simplify predicates.
20644         Eliminate duplicate code checks.
20645         (arith_operand): Rename to arith14_operand
20646         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
20647         * config/pa/pa.md: Use renamed operands.
20648         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
20649         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
20650         arith11_operand, adddi3_operand, indexed_memory_operand,
20651         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
20652         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
20653         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
20654         move_dest_operand, move_src_operand, prefetch_cc_operand,
20655         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
20656         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
20657         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
20658         div_operand, int5_operand, movb_comparison_operator,
20659         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
20660         arith_double_operand, ireg_operand, lhs_lshift_operand,
20661         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
20662         integer_store_memory_operand): Likewise.
20663         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
20664         (integer_store_memory_operand, read_only_operand,
20665         function_label_operand, borx_reg_operand,
20666         non_hard_reg_operand): Likewise.
20667         (eq_neq_comparison_operator): Delete unused operator.
20668         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
20669         function_label_operand.
20670         (emit_move_sequence): Likewise.
20671
20672 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20673
20674         * config/i386/sse.md (sseunpackmode): New mode attribute.
20675         (ssepackmode): Ditto.
20676         (vec_pack_trunc_<mode>): Macroize expander from
20677         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
20678         (vec_unpacks_lo_<mode>): Macroize expander from
20679         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20680         (vec_unpacks_hi_<mode>): Macroize expander from
20681         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20682         (vec_unpacku_lo_<mode>): Macroize expander from
20683         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20684         (vec_unpacku_hi_<mode>): Macroize expander from
20685         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20686         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
20687         ix86_expand_sse4_unpack.
20688         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
20689
20690 2011-04-16  Jan Hubicka  <jh@suse.cz>
20691
20692         * cgraphbuild.c: Include ipa-inline.h.
20693         (reset_inline_failed): Use initialize_inline_failed.
20694         * cgraph.c: Include ipa-inline.h.
20695         (cgraph_create_node_1): Do not initialize estimated_growth.
20696         (initialize_inline_failed): More to ipa-inline-analysis.c
20697         (dump_cgraph_node): Do not dump inline flags.
20698         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
20699         and disregard_inline_limits flags.
20700         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
20701         time, size, estimated_growth.
20702         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
20703         Update.
20704         * cgraphunit.c (cgraph_decide_is_function_needed): Use
20705         DECL_DISREGARD_INLINE_LIMITS.
20706         (cgraph_analyze_function): Do not initialize
20707         node->local.disregard_inline_limits.
20708         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20709         inlinable, versionable and disregard_inline_limits.
20710         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
20711         cgraph_check_inline_limits, cgraph_default_inline_p,
20712         cgraph_edge_badness, update_caller_keys, update_callee_keys,
20713         add_new_edges_to_heap): Update.
20714         (cgraph_decide_inlining_of_small_function): Update; set
20715         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
20716         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
20717         cgraph_decide_inlining_incrementally): Update.
20718         * ipa-inline.h (inline_summary): Add inlinable, versionable,
20719         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
20720         time, size and estimated_growth parameters.
20721         (estimate_edge_growth): Update.
20722         (initialize_inline_failed): Declare.
20723         * ipa-split.c: Include ipa-inline.h
20724         (execute_split_functions): Update.
20725         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
20726         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
20727         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
20728         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
20729         estimated_growth to INT_MIN.
20730         (inline_node_duplication_hook): Likewise.
20731         (dump_inline_summary): Dump new fields.
20732         (compute_inline_parameters): Update.
20733         (estimate_edge_time, estimate_time_after_inlining,
20734         estimate_size_after_inlining, estimate_growth, inline_read_summary,
20735         inline_write_summary):
20736         (initialize_inline_failed): Move here from cgraph.c.
20737         * tree-sra.c: Include ipa-inline.h.
20738         (ipa_sra_preliminary_function_checks): Update.
20739         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
20740         ipa-inline.h.
20741
20742 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20743
20744         * config/i386/sse.md (V16): New mode iterator.
20745         (VI1, VI8): Ditto.
20746         (AVXMODEQI, AVXMODEDI): Remove.
20747         (sse2, sse3): New mode attribute.
20748         (mov<mode>): Use V16 mode iterator.
20749         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
20750         (push<mode>1): Use V16 mode iterator.
20751         (movmisalign<mode>): Ditto.
20752         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20753         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
20754         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20755         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
20756         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
20757         avx_movdqu<avxmodesuffix>.
20758         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
20759         *avx_movdqu<avxmodesuffix>.
20760         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
20761         avx_lddqu<avxmodesuffix>.
20762         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
20763         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
20764         avx_movnt<AVXMODEDI:mode>.
20765         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
20766         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
20767
20768 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20769
20770         PR target/48629
20771         * haifa-sched.c (prune_ready_list, schedule_block): Use
20772         sched_pressure_p rather than flag_sched_pressure.
20773
20774 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
20775
20776         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20777         cgraph_get_node instead of cgraph_get_create_node.
20778
20779 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
20780
20781         * cfgexpand.c (expand_debug_expr): Use
20782         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
20783
20784 2011-04-15  Michael Matz  <matz@suse.de>
20785
20786         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
20787         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
20788         * function.c (gimplify_parameters): Ditto.
20789         * gimplify.c (gimplify_vla_decl): Ditto.
20790
20791         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
20792         (gimple_call_set_alloca_for_var): New inline function.
20793         (gimple_call_alloca_for_var_p): Ditto.
20794         * gimple.c (gimple_build_call_from_tree): Remember
20795         CALL_ALLOCA_FOR_VAR_P state.
20796         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
20797
20798         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
20799         calls if they were for VLA objects.
20800
20801 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20802
20803         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
20804         of ADR_EXPRs.
20805
20806 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20807
20808         PR middle-end/48601
20809         * tree-emutls.c (lower_emutls_function_body): Call
20810         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
20811         result is non-NULL.
20812
20813 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
20814
20815         * c-decl.c (detect_field_duplicates): Call
20816         objc_detect_field_duplicates instead of objc_get_interface_ivars.
20817
20818 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
20819
20820         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
20821         * gimple.c (gimple_asm_clobbers_memory_p): Define.
20822         * ipa-pure-const.c (check_stmt): Call it.
20823         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
20824
20825 2011-04-15  Richard Guenther  <rguenther@suse.de>
20826
20827         PR tree-optimization/48290
20828         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
20829         Properly decide inhibiting propagation based on the valueized
20830         operand.  Do loop-closed SSA form preserving here ...
20831         (init_copy_prop): ... not here.
20832
20833 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20834
20835         PR target/48612
20836         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
20837         (*ieee_smax<mode>3): Likewise.
20838
20839 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20840
20841         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
20842         Replace match_operand with match_dup for the third operand in
20843         these expanders.
20844
20845 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20846
20847         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
20848         to track processing of conditionals.  Update all callers.
20849         (try_combine, simplify_if_then_else): Update.
20850
20851 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20852
20853         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
20854         -fsched-pressure.
20855
20856 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
20857
20858         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
20859         instead of match_operand for operand 3.
20860
20861 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
20862
20863         * recog.h (insn_operand_data): Add an "allows_mem" field.
20864         * genoutput.c (output_operand_data): Initialize it.
20865         * optabs.c (maybe_legitimize_operand_same_code): New function.
20866         (maybe_legitimize_operand): Use it when matching the original
20867         op->value.
20868
20869 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20870
20871         * gimplify.c: Fix issues in comments throughout.
20872         (voidify_wrapper_expr): Fix long line.
20873         (build_stack_save_restore): Likewise.
20874         (gimplify_loop_expr): Likewise.
20875         (gimplify_compound_lval): Likewise.
20876         (gimplify_init_ctor_eval): Likewise.
20877         (gimplify_modify_expr_rhs): Likewise.
20878         (omp_notice_threadprivate_variable): Likewise.
20879
20880 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20881
20882         * cfgexpand.c (expand_call_stmt): Convert the function type to the
20883         original one if this is not a builtin function.
20884
20885 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
20886
20887         PR target/48605
20888         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
20889         offset it as needed based on top 2 bits in operands[3], change
20890         MEM mode to SFmode and mask those 2 bits away from operands[3].
20891
20892 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20893
20894         * c-parser.c (c_parser_objc_protocol_definition): Updated for
20895         change from objc_declare_protocols() to objc_declare_protocol().
20896
20897 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
20898
20899         * config/i386/sse.md (sse4_1): New mode attribute.
20900         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
20901         avx_blend<ssemodesuffix><avxmodesuffix> and
20902         sse4_1_blend<ssemodesuffix> using VF mode iterator.
20903         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
20904         avx_blendv<ssemodesuffix><avxmodesuffix> and
20905         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
20906         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
20907         avx_dp<ssemodesuffix><avxmodesuffix> and
20908         sse4_1_dp<ssemodesuffix> using VF mode iterator.
20909         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
20910         (sse4_1_packusdw): Merge with *avx_packusdw.
20911         (sse4_1_pblendvb): Merge with *avx_pblendvb.
20912         (sse4_1_pblendw): Merge with *avx_pblendw.
20913         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
20914         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
20915         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
20916         VF mode iterator.
20917         (sse4_1_round<ssescalarmodesuffix>): Merge with
20918         *avx_round<ssescalarmodesuffix>.
20919         (aesenc): Merge with *avx_aesenc.
20920         (aesenclast): Merge with *avx_aesenclast.
20921         (aesdec): Merge with *avx_aesdec.
20922         (aesdeclast): Merge with *avx_aesdeclast.
20923         (pclmulqdq): Merge with *pclmulqdq.
20924         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
20925         New predicate.
20926         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
20927
20928 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
20929
20930         PR middle-end/48608
20931         * cfgexpand.c (get_decl_align_unit): Renamed to ...
20932         (align_local_variable): This.  Update DECL_ALIGN.
20933         (add_stack_var): Updated.
20934         (expand_one_stack_var): Likewise.
20935
20936 2011-04-14  Richard Guenther  <rguenther@suse.de>
20937
20938         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
20939         Remove.
20940         (dse_initialize_block_local_data, dse_leave_block,
20941         record_voperand_set, get_stmt_uid): Likewise.
20942         (dse_possible_dead_store_p): Allow any kind of killing stmt.
20943         (dse_optimize_stmt): Remove voperand set handling code.
20944         Simplify and improve to handle any kind of killing stmt.
20945         (dse_record_phi): Remove.
20946         (dse_enter_block): Simplify.
20947         (tree_ssa_dse): Likewise.
20948         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
20949
20950 2011-04-14  Jan Hubicka  <jh@suse.cz>
20951
20952         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
20953         * cgraph.h (struct inline_summary): Move to ipa-inline.h
20954         (cgraph_local_info): Remove inline_summary.
20955         * ipa-cp.c: Include ipa-inline.h.
20956         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
20957         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
20958         accesor.
20959         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
20960         (input_overwrite_node): Do not set inline summary.
20961         (input_node): Do not stream inline summary.
20962         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
20963         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
20964         growth; we do not have inline parameters computed for that anyway.
20965         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
20966         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
20967         (inline_summary_t): New type and VECtor.
20968         (debug_inline_summary, dump_inline_summaries): Declare.
20969         (inline_summary): Use VOCtor.
20970         (estimate_edge_growth): Kill hack computing call stmt size directly.
20971         * lto-section-in.c (lto_section_name): Add inline section.
20972         * ipa-inline-analysis.c: Include lto-streamer.h
20973         (node_removal_hook_holder, node_duplication_hook_holder): New holders
20974         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
20975         (inline_summary_vec): Define.
20976         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
20977         dump_inline_summaries): New functions.
20978         (estimate_function_body_sizes): Properly compute size/time of outgoing
20979         calls.
20980         (compute_inline_parameters): Alloc inline_summary; do not compute
20981         size/time of incomming calls.
20982         (estimate_edge_time): Avoid missing time summary hack.
20983         (inline_read_summary): Read inline summary info.
20984         (inline_write_summary): Write inline summary info.
20985         (inline_free_summary): Free all hooks and inline summary vector.
20986         * lto-streamer.h: Add LTO_section_inline_summary section.
20987         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
20988         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
20989
20990 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20991
20992         * tree-vectorizer.h (vect_strided_store_supported): Add a
20993         HOST_WIDE_INT argument.
20994         (vect_strided_load_supported): Likewise.
20995         (vect_permute_store_chain): Return void.
20996         (vect_transform_strided_load): Likewise.
20997         (vect_permute_load_chain): Delete.
20998         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
20999         count argument.  Check that the count is a power of two.
21000         (vect_strided_load_supported): Likewise.
21001         (vect_permute_store_chain): Return void.  Update after above changes.
21002         Assert that the access is supported.
21003         (vect_permute_load_chain): Likewise.
21004         (vect_transform_strided_load): Return void.
21005         * tree-vect-stmts.c (vectorizable_store): Update calls after
21006         above interface changes.
21007         (vectorizable_load): Likewise.
21008         (vect_analyze_stmt): Don't check for strided powers of two here.
21009
21010 2011-04-14  Richard Guenther  <rguenther@suse.de>
21011
21012         PR tree-optimization/48590
21013         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
21014         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21015         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
21016         BUILT_IN_STACK_SAVE.
21017         * tree-ssa-dce.c (propagate_necessity): Handle
21018         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
21019
21020 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
21021
21022         * c-parser.c (c_parser_objc_class_declaration): Updated call to
21023         objc_declare_class.
21024
21025 2011-04-14  Richard Guenther  <rguenther@suse.de>
21026
21027         * tree.h (get_object_alignment_1): Declare.
21028         * builtins.c (get_object_alignment_1): Split out worker from ...
21029         (get_object_alignment): ... here.
21030         * fold-const.c (get_pointer_modulus_and_residue): Use
21031         get_object_alignment_1.
21032
21033 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21034
21035         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
21036         type parameter.
21037         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
21038         parameter.  Generalise code to handle arrays as well as vectors.
21039         (vect_setup_realignment): Update accordingly.
21040         * tree-vect-stmts.c (vectorizable_store): Likewise.
21041         (vectorizable_load): Likewise.
21042
21043 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21044
21045         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
21046         within the per-copy loop.
21047
21048 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21049
21050         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
21051         in the dump file.
21052
21053 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21054
21055         * doc/options.texi (Negative): Explicitly mention that the
21056         Negative chain must be circular.
21057
21058 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
21059
21060         * function.h (block_chainon): Declare.
21061         * function.c (block_chainon): Define.
21062
21063 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
21064             Eric Weddington  <eric.weddington@atmel.com>
21065             Georg-Johann Lay  <avr@gjlay.de>
21066
21067         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
21068         New Includes
21069         (avr_init_builtins, avr_expand_builtin,
21070         avr_expand_delay_cycles, avr_expand_unop_builtin,
21071         avr_expand_binop_builtin ): New functions.
21072         (avr_builtin_id): New enum
21073         (struct avr_builtin_description): New struct
21074         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
21075         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
21076
21077         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
21078         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
21079         UNSPECV_DELAY_CYCLES): new enumeration values
21080         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
21081         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
21082         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
21083         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
21084         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
21085         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
21086         "fmulsu"): New insns
21087
21088         * config/avr/avr-c.c: fix line endings
21089         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
21090         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
21091         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
21092         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
21093         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
21094
21095         * doc/extend.texi (AVR Built-in Functions): New node
21096         (Target Builtins): Add documentation of AVR
21097         built-in functions.
21098
21099 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
21100
21101         PR target/44643
21102         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
21103         alone. Error if non-const data has attribute progmem.
21104
21105 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21106
21107         * tree.h (struct tree_constructor): Include tree_typed instead of
21108         tree_common.
21109         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
21110         TS_TYPED instead of TS_COMMON.
21111
21112 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21113
21114         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
21115         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
21116         (sse2_psadbw): Merge with *avx_psadbw.
21117         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
21118         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
21119         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
21120         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
21121         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
21122         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
21123         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
21124         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
21125         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
21126         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
21127         (ssse3_palignrti): Merge with *avx_palignrti.
21128
21129 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21130
21131         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
21132         * tree-ssanames.c (fini_ssanames): VEC_free it.
21133         (make_ssa_name_fn): Update for VECness of free_ssanames.
21134         (release_ssa_name, release_dead_ssa_names): Likewise.
21135         * tree.h (struct tree_ssa_name): Include tree_typed instead of
21136         tree_common.
21137         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
21138         TS_TYPED instead of TS_COMMON.
21139
21140 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21141
21142         * postreload-gcse.c (gcse_after_reload_main): Add calls to
21143         statistics_counter_event.
21144         * tree-ssa-copyrename.c (stats): Define.
21145         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
21146         statistics_counter_event.
21147         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
21148         (bswap_stats, widen_mul_stats): Define.
21149         (insert_reciprocals): Increment rdivs_inserted.
21150         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
21151         rfuncs_inserted.  Add calls to statistics_counter_event.
21152         (execute_cse_sincos_1): Increment inserted.
21153         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
21154         statistics_counter_event.
21155         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
21156         of bswap_stats.  Add calls to statistics_counter_event.
21157         (convert_mult_to_widen): Increment widen_mults_inserted.
21158         (convert_plusminus_to_widen): Increment maccs_inserted.
21159         (convert_mult_to_fma): Increment fmas_inserted.
21160         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
21161         calls to statistics_counter_event.
21162
21163 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
21164
21165         PR rtl-optimization/48455
21166         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
21167         `temp_costs->mem_cost'.
21168
21169 2011-04-13  Jan Hubicka  <jh@suse.cz>
21170
21171         * ipa-inline.h: New file.
21172         * ipa-inline-analysis.c: New file. Broken out of ...
21173         * ipa-inline.c: ... this file; update toplevel comment;
21174         include ipa-inline.h
21175         (inline_summary): Move to ipa-inline.h
21176         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
21177         ipa-inline-analysis.c.
21178         (cgraph_estimate_time_after_inlining): Rename to
21179         estiamte_time_after_inlining; move to ipa-inline-analysis.c
21180         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
21181         to estimate_edge_growth.
21182         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
21183         rename to estimate_size_after_inlining.
21184         (cgraph_mark_inline_edge): Update for new naming convention.
21185         (cgraph_check_inline_limits): Likewise.
21186         (cgraph_edge_badness): Likewise.
21187         (cgraph_decide_recursive_inlining): Likewise.
21188         (cgraph_decide_inlining_of_small_functions): Likewise.
21189         (cgraph_decide_inlining_incrementally): Likewise.
21190         (cgraph_estimate_growth): Rename to estimate_growth; move to
21191         ipa-inline-analysis.c.
21192         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
21193         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
21194         (compute_inline_parameters): Likewise.
21195         (compute_inline_parameters_for_current): Likewise.
21196         (pass_inline_parameters): Likewise.
21197         (inline_indirect_intraprocedural_analysis): Likewise.
21198         (analyze_function): Rename to inline_analyze_function; likewise.
21199         (add_new_function): Move to ipa-inline-analysis.c.
21200         (inline_generate_summary): Likewise.
21201         (inline_read_summary): Likewise.
21202         (inline_write_summary): Likewise.
21203         * Makefile.in (ipa-inline-analysis.c): New file.
21204
21205 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21206
21207         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
21208         * configure: Regenerate.
21209
21210 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21211
21212         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
21213         instead of tree_common.
21214         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
21215         Likewise.
21216         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
21217         TS_TYPED rather than TS_COMMON.
21218         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
21219
21220 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
21221
21222         PR target/45263
21223         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
21224         r20 around calls of __tablejump_elpm__
21225
21226 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
21227
21228         PR middle-end/48591
21229         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
21230         NULL.
21231         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
21232
21233 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
21234
21235         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
21236         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
21237         (cfi_vec): New typedef.
21238         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
21239         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
21240         (cie_cfi_vec): New static variable.
21241         (cie_cfi_head): Delete.
21242         (add_cfi): Accept a cfi_vec * as first argument. All callers and
21243         declaration changed. Use vector rather than list operations.
21244         (new_cfi): Don't initialize the dw_cfi_next field.
21245         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
21246         rather than list operations.
21247         (lookup_cfa): Use vector rather than list operations.
21248         (output_cfis): New argument upto. Accept a cfi_vec rather than
21249         a dw_cfi_ref list head as argument. All callers changed.
21250         Iterate over the vector using upto as a maximum index.
21251         (output_all_cfis): New static function.
21252         (output_fde): Use vector rather than list operations. Use the
21253         new upto argument for output_cfis rather than manipulating a
21254         list.
21255         (dwarf2out_begin_prologue): Change initializations to match
21256         new struct members.
21257         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
21258         from the vector length rather than searching for the end of a list.
21259         Use output_all_cfis.
21260         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
21261
21262 2011-04-13  Nick Clifton  <nickc@redhat.com>
21263
21264         * config/rx/rx.md (movmemsi): Do not use this pattern when
21265         volatile pointers are involved.
21266
21267 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21268
21269         * config/i386/sse.md (pinsrbits): Remove.
21270         (sse2_packsswb): Merge with *avx_packsswb.
21271         (sse2_packssdw): Merge with *avx_packssdw.
21272         (sse2_packuswb): Merge with *avx_packuswb.
21273         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
21274         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
21275         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
21276         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
21277         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
21278         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
21279         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
21280         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
21281         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
21282         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
21283         (sse2_loadld): Merge with *avx_loadld.
21284         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
21285         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
21286         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
21287         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
21288         (vec_concatv2di): Merge with *vec_concatv2di_avx.
21289
21290 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
21291
21292         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
21293         calling TREE_CHAIN.
21294         * print-tree.c (print_node): Likewise.
21295         * tree-inline.c (copy_tree_r): Likewise.
21296         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
21297         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
21298         instead of TS_COMMON.
21299         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
21300         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
21301         (copy_node_stat): Zero TREE_CHAIN only if necessary.
21302         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
21303         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
21304         ...and these...
21305         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
21306         * tree.h: ...here.
21307         (TREE_CHAIN): Check for a TS_COMMON structure.
21308         (TREE_TYPE): Check for a TS_TYPED structure.
21309
21310 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
21311
21312         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
21313         cgraph_get_create_node instead of cgraph_node.
21314
21315 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21316
21317         * c-parser.c (c_parser_initelt): Updated call to
21318         objc_build_message_expr.
21319         (c_parser_postfix_expression): Likewise.
21320
21321 2011-04-12  Kai Tietz  <ktietz@redhat.com>
21322
21323         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
21324         MASK_MS_BITFIELD_LAYOUT bit.
21325
21326 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21327
21328         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
21329         assert it is always true.
21330         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
21331         moves.
21332
21333 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21334
21335         * c-parser.c (c_lex_one_token): Rewritten conditional used when
21336         compiling Objective-C to be more efficient.
21337
21338 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
21339
21340         * opts-common.c (decode_cmdline_options_to_array): Remove variable
21341         argv_copied.
21342
21343 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21344
21345         * recog.h, genoutput.c, optabs.c: Revert last patch.
21346
21347 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21348
21349         PR target/48090
21350         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
21351
21352 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21353
21354         * recog.h (insn_operand_data): Add an "allows_mem" field.
21355         * genoutput.c (output_operand_data): Initialize it.
21356         * optabs.c (maybe_legitimize_operand_same_code): New function.
21357         (maybe_legitimize_operand): Use it when matching the original
21358         op->value.
21359
21360 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21361
21362         * genpreds.c (process_define_predicate): Move most processing
21363         to gensupport.c.  Continue to validate the expression.
21364         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
21365         (process_define_predicate): Move processing to gensupport.c.
21366         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
21367         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
21368         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
21369         argument.
21370         (valid_predicate_name_p): New function, split out from old
21371         genpreds.c:process_define_predicate.
21372         (process_define_predicate): New function, combining code from
21373         old genpreds.c and genrecog.c functions.
21374         (process_rtx): Call it for DEFINE_PREDICATE and
21375         DEFINE_SPECIAL_PREDICATE.
21376
21377 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21378
21379         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
21380         size of a '%A' memory reference.
21381         (T_DREG, T_QREG): New neon_builtin_type_bits.
21382         (arm_init_neon_builtins): Assert that the load and store operands
21383         are neon_struct_operands.
21384         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
21385         (NEON_ARG_MEMORY): New builtin_arg.
21386         (neon_dereference_pointer): New function.
21387         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
21388         Handle NEON_ARG_MEMORY.
21389         (arm_expand_neon_builtin): Update after above interface changes.
21390         Use NEON_ARG_MEMORY for loads and stores.
21391         * config/arm/predicates.md (neon_struct_operand): New predicate.
21392         * config/arm/iterators.md (V_two_elem): Tweak formatting.
21393         (V_three_elem): Use BLKmode for accesses that have no associated mode.
21394         (V_four_elem): Tweak formatting.
21395         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
21396         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
21397         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
21398         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
21399         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
21400         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
21401         (neon_vst4<mode>): Replace pointer operand with a memory operand.
21402         Use %A in the output template.
21403         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
21404         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
21405         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
21406         the width of the memory access.  Remove post-increment.
21407         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
21408
21409 2011-04-12  Nick Clifton  <nickc@redhat.com>
21410
21411         * config/v850/v850.c (expand_prologue): Do not use the CALLT
21412         instruction for interrupt handlers if the target is the basic V850
21413         architecture.
21414         (expand_epilogue): Likewise.
21415
21416 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21417
21418         PR rtl-optimization/48549
21419         * combine.c (propagate_for_debug): Also stop after BB_END of
21420         this_basic_block.  Process LAST and just stop processing after it.
21421         (combine_instructions): If last_combined_insn has been deleted,
21422         set last_combined_insn to its PREV_INSN.
21423
21424 2011-04-12  Richard Guenther  <rguenther@suse.de>
21425
21426         PR tree-optimization/46076
21427         * gimple.h (struct gimple_statement_call): Add fntype field.
21428         (gimple_call_fntype): Adjust.
21429         (gimple_call_set_fntype): New function.
21430         * gimple.c (gimple_build_call_1): Set the call function type.
21431         * gimplify.c (gimplify_call_expr): Preserve the function
21432         type the frontend used for the call.
21433         (gimplify_modify_expr): Likewise.
21434         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
21435         function type.
21436         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
21437         function type.
21438         * tree-ssa.c (useless_type_conversion_p): Function pointer
21439         conversions are useless.
21440
21441 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21442
21443         * cgraph.h (cgraph_node): Remove function declaration.
21444         (cgraph_create_node): Declare.
21445         (cgraph_get_create_node): Likewise.
21446         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
21447         Updated all callers.
21448         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
21449         the decl does not already exist.  Call cgraph_get_create_node instead
21450         of cgraph_node.
21451         (cgraph_get_create_node): New function.
21452         (cgraph_same_body_alias): Update comment.
21453         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
21454         assert it does not return NULL.
21455         (cgraph_update_edges_for_call_stmt): Likewise.
21456         (cgraph_clone_edge): Likewise.
21457         (cgraph_create_virtual_clone): Likewise.
21458         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
21459         instead of cgraph_node.
21460         (cgraph_add_new_function): Call cgraph_create_node or
21461         cgraph_get_create_node instead of cgraph_node.
21462         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
21463         instead of cgraph_node.
21464         (record_eh_tables): Likewise.
21465         (mark_address): Likewise.
21466         (mark_load): Likewise.
21467         (build_cgraph_edges): Call cgraph_get_create_node instead
21468         of cgraph_node.
21469         (rebuild_cgraph_edges): Likewise.
21470         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
21471         instead of cgraph_node.
21472         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
21473         cgraph_node.
21474         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
21475         cgraph_create_node instead of cgraph_node.
21476         * c-decl.c (finish_function): Call cgraph_get_create_node instead
21477         of cgraph_node.
21478         * lto-cgraph.c (input_node): Likewise.
21479         * lto-streamer-in.c (input_function): Likewise.
21480         * varasm.c (mark_decl_referenced): Likewise.
21481         (assemble_alias): Likewise.
21482
21483 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21484
21485         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
21486         instead of cgraph_node and assert it does not return NULL.
21487         * lto-streamer-in.c (lto_read_body): Likewise.
21488         * omp-low.c (new_omp_context): Likewise.
21489         (create_task_copyfn): Likewise.
21490         * tree-emutls.c (lower_emutls_function_body): Likewise.
21491         * matrix-reorg.c (transform_allocation_sites): Likewise.
21492
21493 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21494
21495         PR c/48552
21496         * c-typeck.c (build_asm_expr): Error out on attempts to use
21497         void type outputs or inputs for constraints that allow reg or
21498         don't allow memory.
21499
21500 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
21501             Richard Earnshaw  <rearnsha@arm.com>
21502
21503         PR target/48250
21504         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
21505         to use sign-magnitude offsets. Reject unsupported unaligned
21506         cases. Add detailed description in comments.
21507         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
21508         condition from TARGET_32BIT to TARGET_ARM.
21509
21510 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
21511
21512         * tree.h (struct typed_tree): New.
21513         (struct tree_common): Include it instead of tree_base.
21514         (TREE_TYPE): Update for new location of type field.
21515         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
21516         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
21517         (union tree_node): Add typed field.
21518         * treestruct.def (TS_TYPED): New.
21519         * lto-streamer.c (check_handled_ts_structures): Handle it.
21520         * tree.c (MARK_TS_TYPED): New macro.
21521         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
21522
21523 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
21524
21525         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
21526         (force_nonfallthru): Do not alter the loop nest if no basic block
21527         was created.
21528
21529 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21530
21531         * config/i386/sse.md (VI): New mode iterator.
21532         (SSEMODEI): Remove.
21533         (AVX256MODEI): Ditto.
21534         (AVXMODEF4P): Ditto.
21535         (avxvecpsmode): Ditto.
21536         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
21537         (sse2_andnot<mode>3): New expander.
21538         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
21539         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
21540         (<any_logic:code><mode>3): Use VI mode iterator.
21541         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
21542         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
21543         (*andnottf3): Handle AVX three-operand constraints.
21544         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
21545
21546 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21547             Robert Millan  <rmh@gnu.org>
21548
21549         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
21550         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
21551         GNU_USER_DYNAMIC_LINKER64): Define.
21552         (REG_NAME): Don't undefine.
21553         (MD_UNWIND_SUPPORT): Undefine.
21554         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
21555         (REG_NAME): Don't undefine.
21556         (MD_UNWIND_SUPPORT): Undefine.
21557         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
21558
21559 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21560
21561         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
21562         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
21563
21564 2011-04-11  Xinliang David Li  <davidxl@google.com>
21565
21566         * value-profile.c (check_ic_target): New function.
21567         (gimple_ic_transform): Sanity check indirect call target.
21568         * gimple-low.c (gimple_check_call_args): Interface change.
21569         (gimple_check_call_matching_types): New function.
21570         * tree-inline.c (tree_can_inline_p): Call new function.
21571
21572 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
21573
21574         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
21575         tree-pretty-print.h & realmpfr.h.
21576
21577 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
21578
21579         PR middle-end/48464
21580         * ira.c (setup_pressure_classes): Fix typo in loop condition.
21581         (setup_allocno_and_important_classes): Ditto.
21582
21583 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21584
21585         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
21586         GNU_USER_DYNAMIC_LINKER.
21587         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
21588         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21589         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
21590         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21591         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21592         GNU_USER_TARGET_OS_CPP_BUILTINS.
21593         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
21594         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21595         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21596         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21597         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
21598         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21599         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21600         GNU_USER_TARGET_OS_CPP_BUILTINS.
21601         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21602         GNU_USER_DYNAMIC_LINKER.
21603         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21604         GNU_USER_TARGET_OS_CPP_BUILTINS.
21605         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
21606         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21607         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
21608         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21609         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
21610         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
21611         GNU_USER_DYNAMIC_LINKER64): Remove.
21612         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
21613         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21614         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21615         GNU_USER_DYNAMIC_LINKER.
21616         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21617         GNU_USER_TARGET_OS_CPP_BUILTINS.
21618         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21619         GNU_USER_TARGET_OS_CPP_BUILTINS.
21620         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
21621         to GNU_USER_TARGET_OS_CPP_BUILTINS.
21622         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21623         GNU_USER_TARGET_OS_CPP_BUILTINS.
21624         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
21625         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
21626         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21627         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
21628         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21629         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21630         GNU_USER_DYNAMIC_LINKER.
21631         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21632         GNU_USER_TARGET_OS_CPP_BUILTINS.
21633         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
21634         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21635         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21636         GNU_USER_DYNAMIC_LINKER.
21637         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21638         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21639         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
21640         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21641         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21642         GNU_USER_DYNAMIC_LINKER.
21643         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
21644         GNU_USER_DYNAMIC_LINKERN32.
21645         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
21646         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
21647         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
21648         GNU_USER_DYNAMIC_LINKER32.
21649         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
21650         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21651         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21652         GNU_USER_DYNAMIC_LINKER.
21653         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21654         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21655         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
21656         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21657         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21658         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
21659         GNU_USER_DYNAMIC_LINKER32.
21660         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21661         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
21662         GNU_USER_DYNAMIC_LINKER.
21663         * config/s390/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_LINKER32 to
21666         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
21667         GNU_USER_DYNAMIC_LINKER64.
21668         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
21669         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21670         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21671         GNU_USER_DYNAMIC_LINKER.
21672         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
21673         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21674         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21675         GNU_USER_DYNAMIC_LINKER.
21676         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
21677         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21678         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21679         GNU_USER_DYNAMIC_LINKER32.
21680         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21681         GNU_USER_DYNAMIC_LINKER64.
21682         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21683         GNU_USER_DYNAMIC_LINKER64.
21684         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
21685         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21686         * config/xtensa/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 GNU_USER_DYNAMIC_LINKER.
21689
21690 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21691
21692         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
21693         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
21694         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
21695         GNU_USER_DYNAMIC_LINKER.
21696         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21697         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
21698         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
21699         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
21700         GNU_USER_DYNAMIC_LINKER64.
21701         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21702         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
21703         GNU_USER_LINK_EMULATION.
21704         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
21705         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
21706         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
21707         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
21708         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
21709         CPP_SPEC, CC1_SPEC): Remove.
21710         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
21711         (GNU_USER_DYNAMIC_LINKER): Define.
21712         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
21713         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
21714         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
21715         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
21716         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
21717         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
21718         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21719         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
21720         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
21721         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
21722         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
21723         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
21724         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
21725         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
21726         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
21727         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21728         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21729         GNU_USER_DYNAMIC_LINKER.
21730         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21731         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21732         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21733         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21734         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21735         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21736         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
21737         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
21738         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
21739         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
21740
21741 2011-04-11  Kai Tietz  <ktietz@redhat.com>
21742
21743         PR target/9601
21744         PR target/11772
21745         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
21746         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
21747         comment.
21748         (ix86_is_msabi_thiscall): Removed.
21749         (ix86_is_type_thiscall): Likewise.
21750         (ix86_get_callcvt): New function.
21751         (ix86_comp_type_attributes): Simplify check.
21752         (ix86_function_regparm): Use ix86_get_callcvt for calling
21753         convention attribute checks.
21754         (ix86_return_pops_args): Likewise.
21755         (ix86_static_chain): Likewise.
21756         (x86_this_parameter): Likewise.
21757         (x86_output_mi_thunk): Likewise.
21758         (ix86_function_type_abi): Optimize check for types without attributes.
21759         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
21760         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
21761         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
21762         by flag-values.
21763         (IX86_BASE_CALLCVT): Helper macro.
21764         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
21765         Use ix86_get_callcvt for calling convention attribute checks and avoid
21766         symbol-decoration for stdcall in TARGET_RTD case.
21767         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
21768         Likewise.
21769         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
21770         for declaration.
21771
21772 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21773
21774         * config/i386/sse.md (VI_128): New mode iterator.
21775         (VI12_128): Rename from SSEMODE12.
21776         (VI14_128): Rename from SSEMODE14.
21777         (VI124_128): New mode iterator.
21778         (VI24_128): Rename from SSEMODE248.
21779         (VI248_128): Rename from SSEMODE248.
21780         (SSEMODE124C8): Remove.
21781         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21782         (*sse2_<plusminus_insn><mode>3): Merge with
21783         *avx_<plusminus_insn><mode>3.
21784         (*mulv8hi3): Merge with *avx_mulv8hi3.
21785         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
21786         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
21787         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
21788         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
21789         (ashr<mode>3): Merge with *avx_ashr<mode>3.
21790         (lshr<mode>3): Merge with *avx_lshr<mode>3.
21791         (ashl<mode>3): Merge with *avx_ashl<mode>3.
21792         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
21793         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
21794         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21795         (*<smaxmin:code>v8hi3): Ditto.
21796         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
21797         (*<smaxmin:code>v16qi3): Ditto.
21798         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
21799         (*sse2_eq<mode>3): Ditto.
21800         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
21801         (*sse2_gt<mode>3): Ditto.
21802         (vcondv2di): Split out of vcond<mode>.
21803         (vconduv2di): Split out of vcondu<mode>.
21804
21805 2011-04-11  Richard Guenther  <rguenther@suse.de>
21806
21807         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
21808         before calling tree_low_cst.
21809
21810 2011-04-11  Richard Guenther  <rguenther@suse.de>
21811
21812         * stor-layout.c (layout_type): Compute all array index size operations
21813         in the original type.
21814         (initialize_sizetypes): Add comment.
21815         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
21816
21817 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21818
21819         * common.opt (Tbss=, Tdata=, Ttext=): New options.
21820
21821 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21822
21823         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
21824         of cgraph_node, handle NULL return value.
21825         (cgraph_global_info): Likewise.
21826         (cgraph_rtl_info): Likewise.
21827         * tree-inline.c (estimate_num_insns): Likewise.
21828         * gimplify.c (unshare_body): Likewise.
21829         (unvisit_body): Likewise.
21830         (gimplify_body): Likewise.
21831         * predict.c (optimize_function_for_size_p): Likewise.
21832         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21833         (call_may_clobber_ref_p_1): Likewise.
21834         * varasm.c (function_section_1): Likewise.
21835         (assemble_start_function): Likewise.
21836
21837 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21838
21839         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
21840         of cgraph_node.
21841         * final.c (rest_of_clean_state): Likewise.
21842         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
21843         * passes.c (pass_init_dump_file): Likewise.
21844         (execute_all_ipa_transforms): Likewise.
21845         (function_called_by_processed_nodes_p): Likewise.
21846         * predict.c (maybe_hot_frequency_p): Likewise.
21847         (probably_never_executed_bb_p): Likewise.
21848         (compute_function_frequency): Likewise.
21849         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
21850         (unnest_nesting_tree_1): Likewise.
21851         (lower_nested_functions): Likewise.
21852         * tree-optimize.c (execute_fixup_cfg): Likewise.
21853         (tree_rest_of_compilation): Likewise.
21854         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
21855         * tree-sra.c (ipa_early_sra): Likewise.
21856         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21857         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
21858         * ipa.c (record_cdtor_fn): Likewise.
21859         * ipa-inline.c (cgraph_early_inlining): Likewise.
21860         (compute_inline_parameters_for_current): Likewise.
21861         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21862         * ipa-pure-const.c (local_pure_const): Likewise.
21863         * ipa-split.c (split_function): Likewise.
21864         (execute_split_functions): Likewise.
21865         * cgraphbuild.c (build_cgraph_edges): Likewise.
21866         (rebuild_cgraph_edges): Likewise.
21867         (cgraph_rebuild_references): Likewise.
21868         (remove_cgraph_callee_edges): Likewise.
21869         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
21870         (verify_cgraph_node): Likewise.
21871         (cgraph_analyze_functions): Likewise.
21872         (cgraph_preserve_function_body_p): Likewise.
21873         (save_inline_function_body): Likewise.
21874         (save_inline_function_body): Likewise.
21875         * tree-inline.c (copy_bb): Likewise.
21876         (optimize_inline_calls): Likewise.
21877
21878 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21879
21880         PR tree-optimization/48195
21881         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
21882         ipa_check_create_edge_args.
21883         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
21884         ipa_check_create_edge_args.
21885         * ipa-inline.c (inline_generate_summary): Do not call
21886         ipa_check_create_node_params and ipa_check_create_edge_args.
21887         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
21888         ipa_check_create_edge_args.
21889
21890 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
21891
21892         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
21893         instead of loop.
21894         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21895         * function.c (record_hard_reg_sets): Likewise.
21896         * ira.c (compute_regs_asm_clobbered): Likewise.
21897         * sched-deps.c (sched_analyze_1): Likewise.
21898         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
21899
21900 2011-04-09  Xinliang David Li  <davidxl@google.com>
21901
21902         PR tree-optimization/PR48484
21903         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
21904         has_valid_pred lazily
21905
21906 2011-04-09  Duncan Sands  <baldrick@free.fr>
21907
21908         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
21909
21910 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21911
21912         * combine.c (combine_validate_cost): Adjust comments.  Set registered
21913         cost of I0 to zero at the end, if any.
21914
21915 2011-04-08  Xinliang David Li  <davidxl@google.com>
21916
21917         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
21918         to insane profile data.
21919
21920 2011-04-08  Xinliang David Li  <davidxl@google.com>
21921
21922         * ipa-cp.c (ipcp_update_profiling): Correct
21923          negative scale factor due to insane profile data.
21924
21925 2011-04-08  Xinliang David Li  <davidxl@google.com>
21926
21927         * final.c (dump_basic_block_info): New function.
21928         (final): Dump basic block.
21929         (final_scan_insn): Remove old dump.
21930
21931 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
21932
21933         PR target/47829
21934         * config.gcc (i386-*-freebsd): Disable unwind table generation for
21935         crtbegin/crtend.
21936
21937 2011-04-08  Michael Matz  <matz@suse.de>
21938
21939         PR middle-end/48389
21940         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
21941         functions.
21942         (rebuild_jump_labels): Call rebuild_jump_labels_1.
21943         * rtl.h (rebuild_jump_labels_chain): Declare.
21944         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
21945         insns inserted on edges.
21946
21947 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
21948
21949         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
21950         * config/arm/arm-arches.def: New.
21951         * config/arm/arm-opts.h: New.
21952         * config/arm/genopt.sh: New.
21953         * config/arm/arm-tables.opt: New (generated).
21954         * config/arm/arm.c (arm_handle_option, arm_target_help,
21955         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
21956         (all_architectures): Get most table contents from arm-arches.def.
21957         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
21958         arm_selected_tune here.
21959         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
21960         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
21961         (march=, mcpu=, mtune=): Use Enum and Var.
21962         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
21963         (arm.o): Update dependencies.
21964
21965 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
21966
21967         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
21968         of header_file.
21969         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
21970         (write_typed_alloc_defns): Likewise.
21971         (main): Calls write_typed_alloc_defns with output_header.
21972
21973 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
21974
21975         PR inline-asm/48435
21976         * ira-color.c (setup_profitable_hard_regs): Add comments.
21977         Don't take prohibited hard regs into account.
21978         (setup_conflict_profitable_regs): Rename to
21979         get_conflict_profitable_regs.
21980         (check_hard_reg_p): Check prohibited hard regs.
21981
21982 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
21983
21984         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
21985         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
21986         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
21987
21988 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21989
21990         PR target/48366
21991         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
21992         move from floating point to shift amount register.
21993         (emit_move_sequence): Remove secondary reload support for floating
21994         point to shift amount amount register copies.
21995         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
21996         amount register copies.
21997         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
21998         register, return false if mode isn't a scalar integer mode.
21999         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
22000
22001 2011-04-08  Richard Guenther  <rguenther@suse.de>
22002
22003         * gimple.c (gimple_call_flags): Remove kludge.
22004
22005 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22006
22007         * sel-sched.c (sel_region_init): Move call to
22008         sel_setup_region_sched_flags after setup_current_loop_nest.
22009
22010 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
22011
22012         PR rtl-optimization/48272
22013         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
22014         init_insn_reg_pressure_info.  Adjust a caller.
22015         * sched-int.h (init_insn_reg_pressure_info): Declare.
22016         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
22017         when sched-pressure is enabled.
22018
22019 2011-04-08  Richard Guenther  <rguenther@suse.de>
22020
22021         * gimple.c (gimple_set_modified): Do not queue calls to
22022         MODIFIED_NORETURN_CALLS here ...
22023         * tree-ssa-operands.c (update_stmt_operands): ... but here.
22024
22025 2011-04-08  Richard Guenther  <rguenther@suse.de>
22026
22027         PR lto/48467
22028         * toplev.c (lang_dependent_init): Do not open asm_out_file
22029         in WPA mode, nor perform debug machinery initialization.
22030         (finalize): Do not unlink asm_out_file in WPA mode.
22031
22032 2011-04-08  Richard Guenther  <rguenther@suse.de>
22033
22034         * gimple.h (gimple_call_fntype): New function.
22035         (gimple_call_return_type): Use it.
22036         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
22037         * gimple-low.c (gimple_check_call_args): Likewise.
22038         * gimple.c (gimple_call_flags): Likewise.
22039         (gimple_call_arg_flags): Likewise.
22040         (gimple_call_return_flags): Likewise.
22041         * tree-cfg.c (verify_gimple_call): Likewise.
22042         (do_warn_unused_result): Likewise.
22043         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
22044         * value-prof.c (gimple_ic_transform): Fix fndecl check.
22045
22046 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
22047
22048         PR rtl-optimization/48235
22049         * sel-sched.c (code_motion_process_successors): Recompute the last
22050         insn in basic block if control flow changed.
22051         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
22052         Update condition for ilist_remove.
22053
22054 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22055
22056         PR rtl-optimization/48302
22057         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
22058         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
22059         it to record added preheader blocks.
22060         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
22061         on to sel_add_loop_preheaders.
22062         (sel_region_init): Move call to setup_current_loop_nest after
22063         sel_init_bbs.
22064
22065 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22066
22067         PR target/48273
22068         * cfgloop.h (loop_has_exit_edges): New helper.
22069         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
22070         non-clonable.
22071         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
22072         that have no exit edges.
22073
22074 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22075
22076         PR rtl-optimization/48442
22077         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
22078         all callers.  Adjust assert.
22079
22080 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
22081
22082         PR tree-optimization/48377
22083         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
22084         is_packed to true even for types with smaller TYPE_ALIGN than
22085         TYPE_SIZE.
22086
22087 2011-04-08  Richard Guenther  <rguenther@suse.de>
22088
22089         PR bootstrap/48513
22090         * doc/tm.texi: Re-generate.
22091
22092 2011-04-08  Wei Guozhi  <carrot@google.com>
22093
22094         PR target/47855
22095         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
22096         * config/arm/arm.c (arm_attr_length_push_multi): New function.
22097         * config/arm/arm.md (*push_multi): Change the length computation to
22098         call a C function.
22099
22100 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
22101
22102         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
22103         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
22104         * doc/tm.texi: Regenerate.
22105         * system.h (ASM_OUTPUT_BSS): Poison.
22106         * varasm.c (asm_output_bss): Remove function.
22107         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
22108
22109         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
22110         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
22111         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
22112         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22113         Likewise.
22114         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22115         Likewise.
22116         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22117         Likewise.
22118         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
22119
22120 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22121
22122         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
22123         EnumValue lines.
22124
22125 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22126
22127         * config/m68k/m68k.c (m68k_handle_option): Don't handle
22128         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
22129         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
22130         OPT_mcpu32.
22131         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22132         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
22133         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
22134         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
22135         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
22136         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
22137         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22138         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
22139         options.  Don't map other m68k options manually.  Don't handle
22140         old-style options as canonical.
22141         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22142         * doc/install.texi (m68k-*-*): Document binutils version requirement.
22143
22144 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22145
22146         * basic-block.h (force_nonfallthru): Move to...
22147         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
22148         (force_nonfallthru): ...here.
22149         * cfghooks.c (force_nonfallthru): New function.
22150         * cfgrtl.c (force_nonfallthru): Rename into...
22151         (rtl_force_nonfallthru): ...this.
22152         (commit_one_edge_insertion): Do not set AUX field.
22153         (commit_edge_insertions): Do not discover new basic blocks.
22154         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
22155         (cfg_layout_rtl_cfg_hooks): Likewise.
22156         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
22157         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
22158         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
22159
22160 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
22161
22162         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
22163         Remove macros.
22164
22165 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
22166
22167         * config/i386/sse.md: Update copyright year.
22168         (avxcvtvecmode): Remove.
22169         (sse_movhlps): Merge with *avx_movhlps.
22170         (sse_movlhps): Merge with *avx_movlhps.
22171         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
22172         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
22173         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
22174         (sse_loadhps): Merge with *avx_loadhps.
22175         (sse_storelps): Merge with *avx_storelps.
22176         (sse_loadlps): Merge with *avx_loadlps.
22177         (sse_movss): Merge with *avx_movss.
22178         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
22179         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
22180         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
22181         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
22182         (vec_set<mode>_0): Ditto.
22183         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
22184         (sse4_1_insertps): Merge with *avx_insertps.
22185         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
22186         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
22187         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
22188         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
22189         (sse2_storehpd): Merge with *avx_storehpd.
22190         (sse2_loadhpd): Merge with *avx_loadhpd.
22191         (sse2_loadlpd): Merge with *avx_loadlpd.
22192         (sse2_movsd): Merge with *avx_movsd.
22193         (*vec_concatv2df): Merge with *vec_concatv2df.
22194
22195 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
22196
22197         PR debug/48343
22198         * combine.c (combine_instructions): Add last_combined_insn,
22199         update it if insn is after it, pass it to all try_combine calls.
22200         (try_combine): Add last_combined_insn parameter, pass it instead of
22201         i3 to propagate_for_debug.
22202
22203 2011-04-07  Nick Clifton  <nickc@redhat.com>
22204
22205         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
22206         to handle MDR <-> data register transfers.
22207         (movhi_internal): Likewise.
22208
22209 2011-04-07  Alan Modra  <amodra@gmail.com>
22210
22211         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
22212         previous stack info.
22213
22214 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22215
22216         PR target/43920
22217         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
22218         flow_find_cross_jump.  Swap variables to implement backward replacement.
22219         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
22220
22221 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22222
22223         PR target/43920
22224         * cfgcleanup.c (walk_to_nondebug_insn): New function.
22225         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
22226         and bb2.
22227         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
22228         src1 or src2.  Redirect edges to the last basic block.  Update
22229         frequency and count on multiple basic blocks in case of fallthru.
22230
22231 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22232
22233         PR target/43920
22234         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
22235         function.
22236         (old_insns_match_p): Change return type.  Replace return false/true
22237         with return dir_none/dir_both.  Use can_replace_by.
22238         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
22239         direction from dir_p.  Register replacement direction in dir, last_dir
22240         and afterlast_dir.  Handle new return type of old_insns_match_p using
22241         merge_dir.  Return replacement direction in dir_p.
22242         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
22243         return type of old_insns_match_p.
22244         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
22245         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
22246         flow_find_cross_jump.
22247         * basic-block.h (enum replace_direction): New type.
22248         (flow_find_cross_jump): Add parameter to declaration.
22249
22250 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22251
22252         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
22253         (AVXMODEDCVTPS2DQ): Ditto.
22254         (VEC_FLOAT_MODE): Ditto.
22255         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
22256         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22257         (<any_logic:code><mode>3): Use VF mode iterator.
22258         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
22259         Use VF mode iterator.
22260         (copysign<mode>3): Use VF mode iterator.
22261         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
22262         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22263         (*<any_logic:code><MODEF:mode>3): Merge with
22264         *avx_<any_logic:code><MODEF:mode>3.
22265         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
22266         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
22267         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
22268         (avx_cvtdq2ps<avxmodesuffix>): Remove.
22269         (sse2_cvtdq2ps): Use %v modifier.
22270         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
22271         (avx_cvtps2dq<avxmodesuffix>): Remove.
22272         (sse2_cvtps2dq): Use %v modifier.
22273         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
22274         (avx_cvttps2dq<avxmodesuffix>): Remove.
22275         (sse2_cvttps2dq): Use %v modifier.
22276         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
22277         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
22278         (sse2_cvtsd2siq): Fix insn template.
22279         (sse2_cvtsd2siq_2): Ditto.
22280         (sse2_cvttsd2siq): Ditto.
22281         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
22282         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
22283
22284 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22285
22286         * gcov-io.c: Use GCC Runtime Library Exception.
22287
22288 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
22289
22290         PR debug/48466
22291         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
22292         as base_reg whatever register reg has been eliminated to, instead
22293         of hardcoding STACK_POINTER_REGNUM.
22294
22295 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22296
22297         * doc/tm.texi.in: Document C target hooks as separate from general
22298         target hooks.
22299         * doc/tm.texi: Regenerate.
22300         * genhooks.c (struct hook_desc): Add docname field.
22301         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
22302         docname field.
22303         (hook_array): Include c-target.def.
22304         (emit_documentation): Use docname field in output.
22305         (emit_init_macros): Take docname argument.  Only emit definitions
22306         for hooks matching docname.
22307         (main): Expect additional arguments in all cases.  Pass argument
22308         to emit_init_macros.
22309         * target.def: Move initial macro definitions and comments to
22310         target-hooks-macros.h.
22311         (gcc_targetcm): Move to c-family/c-target.def.
22312         * target.h (targetcm): Move declaration to c-family/c-target.h.
22313         * targhooks.c (default_handle_c_option): Move to
22314         c-family/c-opts.c.
22315         * targhooks.h (default_handle_c_option): Move declaration to
22316         c-family/c-common.h.
22317         * target-hooks-macros.h: New file.
22318         * config.gcc (target_has_targetcm): Define and use to add to
22319         c_target_objs and cxx_target_objs.
22320         * config/default-c.c: New file.
22321         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
22322         of target.h and target-def.h.
22323         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
22324         (darwin_objc_construct_string, darwin_cfstring_ref_p,
22325         darwin_check_cfstring_format_arg): Make static.
22326         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22327         TARGET_STRING_OBJECT_REF_TYPE_P,
22328         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
22329         * config/darwin-protos.h (darwin_objc_construct_string,
22330         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
22331         declare.
22332         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22333         TARGET_STRING_OBJECT_REF_TYPE_P,
22334         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
22335         * config/t-darwin (darwin-c.o): Update dependencies.
22336         * system.h (TARGET_HAS_TARGETCM): Poison.
22337         * Makefile.in (TARGET_H): Update.
22338         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
22339         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
22340         (default-c.o): New target.
22341         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
22342         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
22343         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
22344         c-target.def.
22345         (build/genhooks.o): Update dependencies.
22346
22347 2011-04-06  Richard Guenther  <rguenther@suse.de>
22348
22349         * ipa-inline.c (enum inlining_mode): Remove.
22350         (cgraph_flatten): Use some other token.
22351         (cgraph_edge_early_inlinable_p): New function, split out from ...
22352         (cgraph_perform_always_inlining): New function, split out from ...
22353         (cgraph_decide_inlining_incrementally): ... here.
22354         (cgraph_mark_inline_edge): Adjust.
22355         (cgraph_early_inlining): Re-structure.
22356         (pass_early_inline): Require SSA form.
22357
22358 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
22359             Julian Brown  <julian@codesourcery.com>
22360             Mark Shinwell  <shinwell@codesourcery.com>
22361
22362         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
22363         LO_REGS only for Thumb-1.
22364         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
22365         be used in short instructions when optimising for size on Thumb-2.
22366
22367 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22368
22369         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
22370         associated with user returns to be preserved.
22371
22372 2011-04-06  Tristan Gingold  <gingold@adacore.com>
22373
22374         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
22375         symbol_queue_size, DBXOUT_DECR_NESTING,
22376         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
22377         if XCOFF_DEBUGGING_INFO.
22378
22379 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22380
22381         * config/i386/i386.md (attribute isa): New.
22382         (attribute enabled): New.
22383         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
22384         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
22385         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
22386         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
22387         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
22388         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22389         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
22390         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
22391
22392         * config/i386/sse.md (VF): New mode iterator.
22393         (VF1): Ditto.
22394         (VF2): Ditto.
22395         (VF_128): Ditto.
22396         (SSEMODEF4): Remove.
22397         (attribute sse): Handle V8SF and V4DF modes.
22398         (<absneg:code><mode>2): Use VF mode iterator.
22399         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
22400         mode iterator.
22401         (<plusminus_insn><mode>3): Use VF mode iterator.
22402         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
22403         Use VF mode iterator.
22404         (<sse>_vm<plusminus_insn><mode>3): Merge with
22405         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
22406         (mul<mode>3): Use VF mode iterator.
22407         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
22408         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
22409         mode iterator.
22410         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
22411         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
22412         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
22413         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
22414         mode iterator.
22415         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
22416         Use VF1 mode iterator.
22417         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
22418         (sqrt<VF2:mode>2): New expander.
22419         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
22420         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
22421         and sqrtv2df2.  Use VF mode iterator.
22422         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
22423         mode iterator.
22424         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
22425         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
22426         Use VF1 mode iterator.
22427         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
22428         (<smaxmin:code><mode>3): Use VF mode iterator.
22429         (*<smaxmin:code><mode>3_finite): Merge with
22430         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
22431         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22432         (<sse>_vm<smaxmin:code><mode>2): Merge with
22433         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
22434         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
22435         mode iterator.
22436         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
22437         mode iterator.
22438         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
22439         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
22440         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
22441         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
22442         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
22443         VF mode iterator.
22444         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
22445         Use VF_128 mode iterator.
22446         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
22447         mode iterator.
22448         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
22449         VF_128 mode iterator.
22450         (vcond<mode>): Use VF mode iterator.
22451         * config/i386/predicates.md (sse_comparison_operator): Merge with
22452         avx_comparison_float_operator.  Do not declare as special_predicate.
22453         * config/i386/i386.c (struct builtin_description): Update for renamed
22454         compare patterns.
22455         (ix86_expand_args_builtin): Ditto.
22456         (ix86_expand_sse_compare_mask): Ditto.
22457
22458 2011-04-06  Richard Guenther  <rguenther@suse.de>
22459
22460         * tree-inline.c (estimate_num_insns): For calls simply account
22461         for all passed arguments and a used return value.
22462
22463 2011-04-06  Richard Guenther  <rguenther@suse.de>
22464
22465         PR tree-optimization/47663
22466         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
22467         call_stmt_time fields.
22468         (cgraph_edge_inlinable_p): Declare.
22469         (cgraph_edge_recursive_p): New inline function.
22470         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
22471         (cgraph_clone_edge): Copy it.
22472         * ipa-inline.c (cgraph_estimate_edge_time): New function.
22473         Account for call stmt time.
22474         (cgraph_estimate_time_after_inlining): Take edge argument.
22475         (cgraph_estimate_edge_growth): Account call stmt size.
22476         (cgraph_estimate_size_after_inlining): Take edge argument.
22477         (cgraph_mark_inline_edge): Adjust.
22478         (cgraph_check_inline_limits): Likewise.
22479         (cgraph_recursive_inlining_p): Remove.
22480         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
22481         (cgraph_decide_recursive_inlining): Take edge argument and
22482         adjust.
22483         (cgraph_decide_inlining_of_small_functions): Do not avoid
22484         diags for recursive inlining here.
22485         (cgraph_flatten): Adjust.
22486         (cgraph_decide_inlining_incrementally): Likewise.
22487         (estimate_function_body_sizes): Remove call cost handling.
22488         (compute_inline_parameters): Initialize caller edge call costs.
22489         (cgraph_estimate_edge_growth): New function.
22490         (cgraph_estimate_growth): Use it.
22491         (cgraph_edge_badness): Likewise.
22492         (cgraph_check_inline_limits): Take an edge argument.
22493         (cgraph_decide_inlining_of_small_functions): Adjust.
22494         (cgraph_decide_inlining): Likewise.
22495         * tree-inline.c (estimate_num_insns): Only account for call
22496         return value if it is used.
22497         (expand_call_inline): Avoid diagnostics on recursive inline
22498         functions here.
22499         * lto-cgraph.c (lto_output_edge): Output edge call costs.
22500         (input_edge): Input edge call costs.
22501
22502 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22503
22504         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
22505
22506 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
22507
22508         * doc/invoke.texi (Spec Files): Fix typo.
22509
22510 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22511
22512         * profile.c (branch_prob): Move declaration of local variable.  Remove
22513         obsolete ??? comment.  Expand the location explicitly instead of using
22514         the LOCATION_FILE and LOCATION_LINE macros.
22515
22516 2011-04-06  Wei Guozhi  <carrot@google.com>
22517
22518         PR target/47855
22519         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
22520         (arm_cond_branch): Likewise.
22521         (arm_cond_branch_reversed): Likewise.
22522         (arm_jump): Likewise.
22523         (push_multi): Likewise.
22524         * config/arm/constraints.md (Py): New constraint.
22525
22526 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22527
22528         PR bootstrap/48471
22529         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
22530         Move these...
22531         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
22532         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
22533         #ifdef DBX_DEBUGGING_INFO.
22534
22535 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
22536
22537         PR bootstrap/48403
22538         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
22539         if old and new states differ.
22540
22541 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22542
22543         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
22544         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
22545         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22546         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
22547         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
22548         mcfv4e): Use Alias.
22549         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
22550         ColdFire options to -mcpu= options.
22551
22552 2011-04-05  Jeff Law  <law@redhat.com>
22553
22554         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
22555         check if BB is a successor of LOOP->header and return
22556         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
22557
22558 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22559
22560         * cprop.c (struct reg_use): Remove.
22561         (reg_use_table): Make an array of RTX.
22562         (find_used_regs, constprop_register, local_cprop_pass,
22563         bypass_block): Simplify users of reg_use_table.
22564         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
22565         on one of the uses found by find_used_regs.
22566
22567 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22568
22569         PR bootstrap/48469
22570         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
22571         declaration.
22572
22573 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22574
22575         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
22576         as an rtx.
22577         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
22578
22579 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22580
22581         PR middle-end/48441
22582         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
22583
22584 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22585
22586         * combine.c: Include obstack.h.
22587         (struct insn_link): Define.
22588         (uid_log_links): Adjust type.
22589         (FOR_EACH_LOG_LINK): New macro.
22590         (insn_link_obstack): Declare.
22591         (alloc_insn_link): Define.
22592         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
22593         type of link variables.
22594         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
22595         (try_combine, record_promoted_values, distribute_notes): Likewise.
22596         (distribute_links): Likewise.  Tweak prototype.
22597         (clear_log_links): Delete.
22598         (adjust_for_new_dest): Call alloc_insn_link.
22599         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
22600
22601 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22602
22603         * gcse.c (modify_mem_list): Convert to an array of VECs.
22604         (canon_modify_mem_list, compute_transp): Tweak formatting.
22605         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
22606         (load_killed_in_block_p): Likewise.
22607         (record_last_mem_set_info): Likewise.
22608         (clear_modify_mem_tables): Likewise.
22609
22610 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22611
22612         PR middle-end/48461
22613         * function.c (emit_use_return_register_into_block): Only define if
22614         HAVE_return.
22615
22616 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
22617
22618         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
22619
22620 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22621
22622         * config/rx/rx-opts.h: New.
22623         * config/rx/rx.c (rx_cpu_type): Remove.
22624         (rx_handle_option): Don't assert that global structures are in
22625         use.  Access variables via opts pointer.  Defer most handling of
22626         OPT_mint_register_.  Use error_at.
22627         (rx_option_override): Handle deferred OPT_mint_register_ here.
22628         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
22629         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
22630         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
22631         (rx_cpu_types): New Enum and EnumValue entries.
22632         (mint-register=): Use Defer and use Var accordingly.
22633
22634 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22635
22636         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
22637         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
22638         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
22639         Move these...
22640         (debug_free_queue, debug_nesting, symbol_queue_index):
22641         ...and these...
22642         * dbxout.c: ...to here.  Make static.
22643
22644 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22645
22646         * gcse.c (modify_pair): Define.  Define a VEC of it.
22647         (canon_modify_mem_list): Convert to an array of VECs.
22648         (free_insn_expr_list_list): Delete.
22649         (clear_modify_mem_tables): Call VEC_free instead.
22650         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
22651         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
22652         (canon_list_insert, compute_transp): Likewise.
22653
22654 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22655
22656         PR target/43920
22657         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
22658         for size.
22659
22660 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22661
22662         PR target/43920
22663         * function.c (emit_use_return_register_into_block): New function.
22664         (thread_prologue_and_epilogue_insns): Use
22665         emit_use_return_register_into_block.
22666
22667 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22668
22669         PR target/43920
22670         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
22671         insn.
22672
22673 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22674
22675         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
22676
22677 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
22678
22679         * config/arm/arm.md (define_constants for unspec): Replace with
22680         define_c_enum.
22681         (define_constants for unspecv): Replace with define_c_enum.
22682         * config/arm/neon.md (define_constants for unspec): Replace with
22683         define_c_enum.
22684
22685 2011-04-04  Richard Henderson  <rth@redhat.com>
22686
22687         PR bootstrap/48400
22688         * dwarf2out.c (output_line_info): Always emit line info from
22689         at least one section.
22690         (dwarf2out_init): Create text_section_line_info here ...
22691         (set_cur_line_info_table): ... not here.
22692
22693 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
22694
22695         PR target/48380
22696         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
22697         not called.
22698
22699         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
22700
22701 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
22702
22703         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
22704         (expr_equiv_p): Remove.
22705         (insert_set_in_table): Look at <dest, src> pair instead of expr.
22706         (hash_scan_set): Update call to insert_set_in_table.
22707         (dump_hash_table): Dump <dest, src> pair.
22708         (lookup_set): Simplify.  Lookup <dest, src> pair.
22709         (compute_transp): Remove, fold heavily simplified code into...
22710         (compute_local_properties): ...here.  Expect COMP and TRANSP
22711         unconditionally.
22712         (find_avail_set): Take set directly from struct expr.
22713         (find_bypass-set): Likewise.
22714         (bypass_block): Likewise.
22715         (cprop_insn): Likewise.  Remove redundant INSN_P test.
22716
22717         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
22718         checks on form of COND from find_implicit_sets to here.
22719         (find_implicit_sets): Cleanup control flow. Split critical edges
22720         if it exposes implicit sets.  Allocate/resize implicit_sets as
22721         necessary.
22722         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
22723         changed something.  Run df_analyze after find_implicit_sets if any
22724         edges were split.  Do not allocate implicit_sets here.
22725
22726         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
22727         (gcse_obstack): Renamed to cprop_obstack.
22728         (GNEW, GNEWVEC, GNEWVAR): Remove.
22729         (gmalloc): Remove.
22730         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
22731         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
22732         (gcse_alloc): Likewise, and rename to cprop_alloc.
22733         (alloc_gcse_men, free_gcse_mem): Remove.
22734         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
22735         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
22736         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
22737
22738         * cprop.c (oprs_not_set_p): Remove.
22739         (mark_set, mark_clobber): Remove.
22740         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
22741         (reg_not_set_p): New function.
22742         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
22743         (cprop_insn): Likewise.
22744         (cprop_jump): Use FOR_EACH_EDGE.
22745
22746 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
22747
22748         PR bootstrap/48403
22749         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
22750         (rank_for_schedule): Use scheduled_insns vector instead of
22751         last_scheduled_insn.
22752         (ok_for_early_queue_removal): Likewise.
22753         (queue_to_ready): Search forward in nonscheduled_insns_begin if
22754         we have a dbg_cnt.
22755         (choose_ready): Likewise.
22756         (commit_schedule): Use VEC_iterate.
22757         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
22758         a dbg_cnt, use it and ensure the first insn is in the ready list.
22759         (haifa_sched_init): Allocate scheduled_insns.
22760         (sched_extend_ready_list): Don't allocate it; reserve space.
22761         (haifa_sched_finish): Free it.
22762
22763 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22764
22765         * optc-gen.awk: Always remove type from Variable entry before
22766         recording in var_seen.
22767
22768 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
22769
22770         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
22771         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
22772         call to tidy_fallthru_edges.
22773
22774 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22775
22776         * doc/options.texi (ToLower): Document.
22777         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
22778         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
22779         * opts.h (cl_option): Add cl_tolower field.
22780         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
22781         arguments with lowercase strings.
22782         * config/rx/rx.opt (mcpu=): Add ToLower.
22783         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
22784         argument.
22785
22786 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22787
22788         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
22789
22790 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22791
22792         * config/vax/vax.c: Include reload.h.
22793
22794 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
22795
22796         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
22797         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22798         (sparc_preferred_reload_class): New function.
22799
22800 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
22801
22802         PR debug/48401
22803         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
22804         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
22805
22806 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
22807
22808         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
22809         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
22810
22811 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
22812
22813         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
22814         (ASM_OUTPUT_ALIGNED_BSS): Define.
22815
22816 2011-04-03  Michael Matz  <matz@suse.de>
22817
22818         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
22819         and next_slot members.
22820         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
22821         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
22822         (lto_streamer_cache_append): Declare.
22823         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
22824         unsigned index, remove offset parameter, ensure that we append
22825         or update existing entries.
22826         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
22827         parameter, update next_slot for append.
22828         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
22829         parameter.
22830         (lto_streamer_cache_insert_at): Likewise.
22831         (lto_streamer_cache_append): New function.
22832         (lto_streamer_cache_lookup): Use unsigned index.
22833         (lto_streamer_cache_get): Likewise.
22834         (lto_record_common_node): Don't test tree_node_can_be_shared.
22835         (preload_common_node): Adjust call to lto_streamer_cache_insert.
22836         (lto_streamer_cache_delete): Don't free offsets member.
22837         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
22838         (lto_output_string_with_length): Use lto_output_data_stream.
22839         (lto_output_tree_header): Remove ix parameter, don't write it.
22840         (lto_output_builtin_tree): Likewise.
22841         (lto_write_tree): Adjust callers to above, don't track and write
22842         offset, write unsigned index.
22843         (output_unreferenced_globals): Don't emit all global vars.
22844         (write_global_references): Use unsigned indices.
22845         (lto_output_decl_state_refs): Likewise.
22846         (write_symbol): Likewise.
22847         * lto-streamer-in.c (lto_input_chain): Move earlier.
22848         (input_function): Use unsigned index.
22849         (input_alias_pairs): Don't read and then ignore all global vars.
22850         (lto_materialize_tree): Remove ix_p parameter, don't read index,
22851         don't pass it back, use lto_streamer_cache_append.
22852         (lto_register_var_decl_in_symtab): Use unsigned index.
22853         (lto_register_function_decl_in_symtab): Likewise.
22854         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
22855         index.
22856         (lto_get_builtin_tree): Don't read index, use
22857         lto_streamer_cache_append.
22858         (lto_read_tree): Adjust call to lto_materialize_tree.
22859
22860         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
22861         don't use function calls in arguments to MIN.
22862
22863         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
22864         twice.
22865
22866         * gimple.c (gimple_type_leader_entry): Mark deletable.
22867
22868 2011-04-03  Alan Modra  <amodra@gmail.com>
22869
22870         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
22871
22872 2011-04-03  Michael Matz  <matz@suse.de>
22873
22874         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
22875         an integer.
22876         * tree.h (tree_decl_non_common.vindex): Adjust comment.
22877
22878 2011-04-03  Michael Matz  <matz@suse.de>
22879
22880         * cgraphbuild.c (record_reference): Canonicalize constructor values.
22881         * gimple-fold.c (canonicalize_constructor_val): Accept being called
22882         without function context.
22883         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
22884         current_function_decl and cfun.
22885
22886 2011-04-03  Michael Matz  <matz@suse.de>
22887
22888         * tree.c (decl_init_priority_insert): Don't create entry for
22889         default priority.
22890         (decl_fini_priority_insert): Ditto.
22891         (fields_compatible_p, find_compatible_field): Remove.
22892         * tree.h (fields_compatible_p, find_compatible_field): Remove.
22893         * gimple.c (gimple_compare_field_offset): Adjust block comment.
22894
22895 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
22896
22897         * combine.c (try_combine): Remove useless local variable.
22898
22899 2011-04-03  Richard Guenther  <rguenther@suse.de>
22900             Ira Rosen  <ira.rosen@linaro.org>
22901
22902         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
22903         non-variable offsets and compare the remaining bases of the two
22904         accesses instead of looking for exact same data-ref.
22905
22906 2011-04-02  Kai Tietz  <ktietz@redhat.com>
22907
22908         PR target/48416
22909         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
22910
22911         * i386.c (ix86_is_msabi_thiscall): New helper function.
22912         (ix86_is_type_thiscall): New helper function.
22913         (ix86_comp_type_attributes): Handle thiscall for method-functions
22914         special.
22915         (init_cumulative_args): Likewise.
22916         (find_drap_reg): Likewise.
22917         (ix86_static_chain): Likewise.
22918         (x86_this_parameter): Likewise.
22919         (x86_output_mi_thunk): Likewise.
22920
22921 2011-04-01  Olivier Hainque  <hainque@adacore.com>
22922             Nicolas Setton  <setton@adacore.com>
22923             Eric Botcazou  <ebotcazou@adacore.com>
22924
22925         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
22926         (add_gnat_descriptive_type_attribute): New function.
22927         (gen_array_type_die): Call it.
22928         (gen_enumeration_type_die): Likewise.
22929         (gen_struct_or_union_type_die): Likewise.
22930         (modified_type_die): Likewise.
22931         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
22932         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
22933         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
22934
22935 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22936
22937         PR bootstrap/48148
22938         * dwarf2out.c (resolve_addr): Don't call force_decl_die
22939         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
22940
22941         Revert:
22942         2011-03-17  Richard Guenther  <rguenther@suse.de>
22943
22944         PR bootstrap/48148
22945         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22946         origin for decls in other ltrans units.
22947         (input_varpool_node): Likewise.
22948
22949 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22950
22951         PR middle-end/48335
22952         * expr.c (expand_assignment): Handle all possibilities
22953         if TO_RTX is CONCAT.
22954         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
22955         (store_split_bit_field): If SUBREG_REG (op0) or
22956         op0 itself has smaller mode than word, return it
22957         for offset 0 and const0_rtx for out-of-bounds stores.
22958         If word is const0_rtx, skip it.
22959
22960 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
22961
22962         * config/h8300/h8300.c (print_operand_address): Rename to...
22963         (h8300_print_operand_address): ...this. Make static. Adjust comments.
22964         Call h8300_print_operand and h8300_print_operand_address instead of
22965         print_operand and print_operand_address. Declare.
22966         (print_operand): Renake to...
22967         (h8300_print_operand): ...this. Make static. Adjust comments.
22968         Call h8300_print_operand instead of print_operand. Declare.
22969         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
22970         (h8300_register_move_cost): Likewise.
22971         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
22972         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
22973         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
22974         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
22975         * config/h8300/h8300-protos.h (print_operand): Delete.
22976         (print_operand_address): Delete.
22977
22978 2011-04-01  Richard Henderson  <rth@redhat.com>
22979
22980         PR 48400
22981         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
22982         in strict mode before dwarf4.  Re-order tests to early out
22983         before switching sections.
22984
22985 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
22986
22987         * config/h8300/constraints.md: New file.
22988         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
22989         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
22990         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
22991         * config/h8300/predicates.md (bit_operand): Likewise.
22992         (incdec_operand): Use satisfies_constraint_M and
22993         satisfies_constraint_O.  Don't use C code block.
22994         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
22995         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
22996         (compute_mov_length): Use satisfies_constraint_G.
22997         (fix_bit_operand): Use satisfies_constraint_U.
22998         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
22999         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
23000         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
23001         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
23002         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
23003         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
23004         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23005         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
23006         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
23007         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
23008         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
23009         (EXTRA_MEMORY_CONSTRAINT): Delete.
23010
23011 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
23012             Michael Meissner  <meissner@linux.vnet.ibm.com>
23013
23014         PR target/48262
23015         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
23016         operands, as per the specifications.
23017
23018         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
23019         (vec_extract_evenv4sf): Ditto.
23020         (vec_extract_evenv8hi): Ditto.
23021         (vec_extract_evenv16qi): Ditto.
23022         (vec_extract_oddv4si): Ditto.
23023
23024 2011-03-31  Mark Wielaard  <mjw@redhat.com>
23025
23026         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
23027         high_pc attribute if the CU has no associated code. Only output
23028         DW_AT_entry_pc for CU if not generating strict dwarf and
23029         dwarf_version < 4.
23030
23031 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
23032
23033         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
23034         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
23035         out of ...
23036         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
23037         * final.c (final_start_function): Call the new function rather
23038         than using a NULL argument for dwarf2out_frame_debug.
23039
23040         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
23041         that contains the prologue.
23042
23043         * haifa-sched.c (queue_insn): New arg REASON.  All callers
23044         changed.  Print it in debugging output.
23045
23046         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
23047
23048         * sched-ebb.c (begin_schedule_ready): Remove second argument.
23049         Split most of the code into...
23050         (begin_move_insn): ... here.  New function.
23051         (ebb_sched_info): Add a pointer to it.
23052         * haifa-sched.c (scheduled_insns): New static variable.
23053         (sched_extend_ready_list): Allocate it.
23054         (schedule_block): Use it to record the order of scheduled insns.
23055         Perform RTL changes to move insns only after all scheduling
23056         decisions have been made.
23057         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
23058         begin_move_insn field.
23059         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
23060         * sched-int.h (struct haifa_sched_info): Remove second argument
23061         from begin_schedule_ready hook.  Add new member begin_move_insn.
23062         * sched-rgn.c (begin_schedule_ready): Remove second argument.
23063         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
23064
23065         * haifa-sched.c (prune_ready_list): New function, broken out of
23066         schedule_block.
23067         (schedule_block): Use it.
23068
23069 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23070
23071         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
23072
23073 2011-04-01  Kai Tietz  <ktietz@redhat.com>
23074
23075         * config.gcc (*-*-mingw*): Allow as option the
23076         posix threading model.
23077         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
23078         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
23079         definition.
23080         (CPP_SPEC): Add pthread/no-pthread handling.
23081         (LIB_SPEC): Likewise.
23082         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
23083         (LIB_SPEC): Likewise.
23084         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
23085         flag to pass -pthread option for shared libgcc build.
23086         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
23087         for shared libgcc build.
23088         * config/i386/t-mingw-pthread: New file.
23089         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
23090         New define to enable use of library pthread by default.
23091         * config/i386/mingw.opt (pthread): New driver option.
23092         (no-pthread): New driver option.
23093         * config/i386/cygming.opt: Make sure trailing empty line is retained.
23094         * config/i386/mingw-w64.opt: Likewise.
23095
23096 2011-04-01  Gary Funck  <gary@intrepid.com>
23097
23098         * c-decl.c (grokdeclarator): Fix formatting.
23099
23100 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23101
23102         * expr.c (emit_block_move_via_movmem): Use n_generator_args
23103         instead of n_operands.
23104         (set_storage_via_setmem): Likewise.
23105         * optabs.c (maybe_gen_insn): Likewise.
23106         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
23107         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
23108         (mips_expand_builtin_direct): Likewise.
23109         * config/spu/spu.c (expand_builtin_args): Likewise.
23110
23111 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23112
23113         * recog.h (insn_data_d): Add n_generator_args.
23114         * genoutput.c (data): Likewise.
23115         (output_insn_data): Print it.
23116         (max_opno, num_dups): Delete.
23117         (scan_operands): Just fill in "d->operand[...]".
23118         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
23119
23120 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23121
23122         * gensupport.h (pattern_stats): New structure.
23123         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
23124         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
23125         (max_operand_1, max_operand_vec): Delete.
23126         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
23127
23128 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
23129
23130         * emit-rtl.c (emit_pattern_after_setloc): New function.
23131         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
23132         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
23133         (emit_pattern_after): New function.
23134         (emit_insn_after, emit_jump_insn_after): Call it.
23135         (emit_call_insn_after, emit_debug_insn_after): Likewise.
23136         (emit_pattern_before_setloc): New function.
23137         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
23138         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
23139         Likewise.
23140         (emit_pattern_before): New function.
23141         (emit_insn_before, emit_jump_insn_before): Call it.
23142         (emit_call_insn_before, emit_debug_insn_before): Likewise.
23143
23144 2011-03-31  Richard Henderson  <rth@redhat.com>
23145
23146         * dwarf2out.c (dw_separate_line_info_ref): Remove.
23147         (dw_separate_line_info_entry): Remove.
23148         (enum dw_line_info_opcode): New.
23149         (dw_line_info_entry): Use it.
23150         (dw_line_info_table, dw_line_info_table_p): New.
23151         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
23152         (line_info_table, line_info_label_num): Remove.
23153         (line_info_table_in_use): Remove.
23154         (separate_line_info_table): Remove.
23155         (separate_line_info_table_allocated): Remove.
23156         (separate_line_info_table_in_use): Remove.
23157         (LINE_INFO_TABLE_INCREMENT): Remove.
23158         (line_info_label_num): New.
23159         (cur_line_info_table): New.
23160         (text_section_line_info, cold_text_section_line_info): New.
23161         (separate_line_info): New.
23162         (SEPARATE_LINE_CODE_LABEL): Remove.
23163         (print_dwarf_line_table): Remove.
23164         (debug_dwarf): Don't dump it.
23165         (output_one_line_info_table): New.
23166         (output_line_info): Use it.
23167         (new_line_info_table): New.
23168         (set_cur_line_info_table): New.
23169         (dwarf2out_switch_text_section): Use it.
23170         (dwarf2out_begin_function): Likewise.
23171         (push_dw_line_info_entry): New.
23172         (dwarf2out_source_line): Rewrite for new line info tables.
23173         (dwarf2out_init): Remove dead initailizations.
23174
23175 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23176
23177         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
23178         various flags.
23179         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
23180         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
23181         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
23182         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
23183         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
23184         * opt-functions.awk (flag_init, switch_bit_fields): New.
23185         (switch_flags): Don't handle flags moved to bit-fields.  Don't
23186         generate CL_MISSING_OK or CL_SAVE.
23187         * optc-gen.awk: Update to generate bit-field output as well as
23188         flags field.
23189         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
23190         bit-field instead of CL_REJECT_DRIVER flag.
23191         * opts-common.c (generate_canonical_option,
23192         decode_cmdline_option): Use bit-fields instead of CL_* flags.
23193         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
23194         instead of CL_REJECT_NEGATIVE flag.
23195         * toplev.c (print_switch_values): Use cl_report bit-field instead
23196         of CL_REPORT flag.
23197
23198 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23199
23200         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
23201         a zero minimum index only if it is redundant.
23202
23203 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
23204
23205         PR rtl-optimization/48381
23206         * ira-color.c (assign_hard_reg): Use hard reg set intersection
23207         instead of ira_class_hard_reg_index for calculating conflicting
23208         hard registers.
23209
23210 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
23211
23212         * cprop.c: Clean up hash table building.
23213         (reg_avail_info): Remove.
23214         (oprs_available_p): Remove.
23215         (record_last_reg_set_info): Remove.
23216         (record_last_set_info): Remove.
23217         (reg_available_p): New function.
23218         (gcse_constant_p): Do not treat unfolded conditions as constants.
23219         (make_set_regs_unavailable): New function.
23220         (hash_scan_set): Simplify with new reg_available_p.
23221         (compute_hash_table_work): Traverse insns stream only once.
23222         Do not compute reg_avail_info. Traverse insns in reverse order.
23223         Record implicit sets after recording explicit sets from the block.
23224
23225 2011-03-31  Michael Matz  <matz@suse.de>
23226
23227         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
23228
23229 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
23230
23231         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
23232         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
23233         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23234         (h8300_mode_dependent_address_p): New function.
23235         (h8300_get_index): Make static.
23236
23237 2011-03-31  Jeff Law  <law@redhat.com>
23238
23239         * reload1.c (elimination_effects): Fix typo in recent change.
23240
23241         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
23242         typo potentially leading to null pointer dereference.
23243
23244         * caller-save.c (new_saved_hard_reg): Eliminate return value.
23245         (setup_save_areas): Corresponding changes to avoid useless
23246         assignments.
23247
23248         * jump.c (reversed_comparison_code_parts): Avoid successive return
23249         statements when REVERSE_CONDITION is defined.
23250
23251         * expr.c (expand_assignment): Avoid useless assignments.
23252         (expand_expr_real_1): Likewise.
23253         (expand_expr_real_2): Avoid useless statements.
23254
23255         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
23256
23257         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
23258
23259         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
23260         statements.
23261
23262         * stmt.c (expand_expr_stmt): Avoid useless assignment.
23263
23264 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23265
23266         PR target/47109
23267         * doc/tm.texi.in (TARGET_VERSION): Remove.
23268         * doc/tm.texi: Regenerate.
23269         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
23270         * collect2.c (main): Don't use TARGET_VERSION.
23271         * mips-tdump.c (main): Don't use TARGET_VERSION.
23272         * mips-tfile.c (main): Don't use TARGET_VERSION.
23273         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
23274         * config/rs6000/vxworksae.h: Remove.
23275         * config/alpha/alpha.h (TARGET_VERSION): Remove.
23276         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
23277         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
23278         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
23279         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23280         * config/arm/arm.h (TARGET_VERSION): Remove.
23281         * config/arm/coff.h (TARGET_VERSION): Remove.
23282         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
23283         * config/arm/elf.h (TARGET_VERSION): Remove.
23284         * config/arm/freebsd.h (TARGET_VERSION): Remove.
23285         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
23286         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
23287         * config/arm/pe.h (TARGET_VERSION): Remove.
23288         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
23289         * config/arm/semi.h (TARGET_VERSION): Remove.
23290         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
23291         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
23292         * config/arm/vxworks.h (TARGET_VERSION): Remove.
23293         * config/avr/avr.h (TARGET_VERSION): Remove.
23294         * config/bfin/bfin.h (TARGET_VERSION): Remove.
23295         * config/fr30/fr30.h (TARGET_VERSION): Remove.
23296         * config/frv/frv.h (TARGET_VERSION): Remove.
23297         * config/h8300/h8300.h (TARGET_VERSION): Remove.
23298         * config/i386/cygwin.h (TARGET_VERSION): Remove.
23299         * config/i386/darwin.h (TARGET_VERSION): Remove.
23300         * config/i386/darwin64.h (TARGET_VERSION): Remove.
23301         * config/i386/djgpp.h (TARGET_VERSION): Remove.
23302         * config/i386/freebsd.h (TARGET_VERSION): Remove.
23303         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
23304         * config/i386/gnu.h (TARGET_VERSION): Remove.
23305         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
23306         * config/i386/i386elf.h (TARGET_VERSION): Remove.
23307         * config/i386/linux.h (TARGET_VERSION): Remove.
23308         * config/i386/linux64.h (TARGET_VERSION): Remove.
23309         * config/i386/lynx.h (TARGET_VERSION): Remove.
23310         * config/i386/mingw32.h (TARGET_VERSION): Remove.
23311         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
23312         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
23313         * config/i386/netware.h (TARGET_VERSION): Remove.
23314         * config/i386/nto.h (TARGET_VERSION): Remove.
23315         * config/i386/openbsd.h (TARGET_VERSION): Remove.
23316         * config/i386/vxworks.h (TARGET_VERSION): Remove.
23317         * config/ia64/elf.h (TARGET_VERSION): Remove.
23318         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
23319         * config/ia64/hpux.h (TARGET_VERSION): Remove.
23320         * config/ia64/linux.h (TARGET_VERSION): Remove.
23321         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23322         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
23323         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23324         * config/lm32/lm32.h (TARGET_VERSION): Remove.
23325         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
23326         * config/m32c/m32c.h (TARGET_VERSION): Remove.
23327         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
23328         * config/m32r/m32r.h (TARGET_VERSION): Remove.
23329         * config/m68k/linux.h (TARGET_VERSION): Remove.
23330         * config/m68k/m68k.h (TARGET_VERSION): Remove.
23331         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
23332         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
23333         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
23334         * config/mep/mep.h (TARGET_VERSION): Remove.
23335         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
23336         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23337         * config/mips/iris6.h (MACHINE_TYPE): Remove.
23338         * config/mips/linux.h (TARGET_VERSION): Remove.
23339         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
23340         * config/mips/vxworks.h (TARGET_VERSION): Remove.
23341         * config/mmix/mmix.h (TARGET_VERSION): Remove.
23342         * config/mn10300/linux.h (TARGET_VERSION): Remove.
23343         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
23344         * config/pa/pa.h (TARGET_VERSION): Remove.
23345         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
23346         * config/picochip/picochip.h (TARGET_VERSION): Remove.
23347         * config/rs6000/aix.h (TARGET_VERSION): Remove.
23348         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
23349         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
23350         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
23351         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
23352         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
23353         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
23354         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
23355         * config/rs6000/linux.h (TARGET_VERSION): Remove.
23356         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
23357         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
23358         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
23359         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
23360         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
23361         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
23362         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
23363         * config/s390/linux.h (TARGET_VERSION): Remove.
23364         * config/s390/s390.h (TARGET_VERSION): Remove.
23365         * config/s390/tpf.h (TARGET_VERSION): Remove.
23366         * config/score/score.h (TARGET_VERSION): Remove.
23367         * config/sh/linux.h (TARGET_VERSION): Remove.
23368         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
23369         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
23370         * config/sh/sh.h (TARGET_VERSION): Remove.
23371         * config/sh/sh64.h (TARGET_VERSION): Remove.
23372         * config/sh/superh.h (TARGET_VERSION): Remove.
23373         * config/sh/vxworks.h (TARGET_VERSION): Remove.
23374         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
23375         * config/sparc/linux.h (TARGET_VERSION): Remove.
23376         * config/sparc/linux64.h (TARGET_VERSION): Remove.
23377         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
23378         TARGET_NAME32, TARGET_NAME): Remove.
23379         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
23380         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
23381         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
23382         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
23383         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
23384         * config/spu/spu.h (TARGET_VERSION): Remove.
23385         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
23386         * config/v850/v850.h (TARGET_VERSION): Remove.
23387         * config/vax/linux.h (TARGET_VERSION): Remove.
23388         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
23389         * config/xtensa/elf.h (TARGET_VERSION): Remove.
23390         * config/xtensa/linux.h (TARGET_VERSION): Remove.
23391
23392 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23393
23394         PR target/48142
23395         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
23396         frame-related from frame-unrelated adjustments to the stack pointer.
23397
23398 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
23399
23400         * common.opt (fdebug-types-section): Move earlier.
23401         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
23402
23403 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
23404
23405         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
23406         var.
23407
23408 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
23409
23410         * tree.h (CASE_CHAIN): Define.
23411         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
23412         (gimple_redirect_edge_and_branch): Likewise.
23413
23414 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23415
23416         PR middle-end/48367
23417         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
23418         calculation.
23419
23420 2011-03-30  Jeff Law  <law@redhat.com>
23421
23422         * PR bootstrap/48371
23423         * reload1.c (reload): Fix botch in last change.
23424
23425         * reload.h (struct reload): Fix typo introduced in last change.
23426
23427 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23428
23429         * config/arm/arm.opt (mhard-float, msoft-float): Mark
23430         Undocumented.  Remove help text.
23431         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
23432         -mhard-float.
23433
23434 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23435
23436         * doc/options.texi (NegativeAlias): Document.
23437         (Alias): Mention NegativeAlias.
23438         * opt-functions.awk: Handle NegativeAlias.
23439         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
23440         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
23441         * opts.h (CL_NEGATIVE_ALIAS): Define.
23442         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
23443         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
23444         OPT_mspe_.
23445         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
23446         Alias entries.
23447         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
23448         mno-spe and mno-isel instead of mspe=no and -misel=no.
23449
23450 2011-03-29  Mark Wielaard  <mjw@redhat.com>
23451
23452         * common.opt (fdebug-types-section): New flag.
23453         * doc/invoke.texi: Document new -fno-debug-types-section flag.
23454         * dwarf2out.c (use_debug_types): New define.
23455         (struct die_struct): Mark die_id with GTY desc use_debug_types.
23456         (print_die): Guard output of type unit signatures using
23457         use_debug_types.
23458         (build_abbrev_table): Replace assert of dwarf_version >= 4
23459         with assert on use_debug_types.
23460         (size_of_die): Likewise.
23461         (unmark_dies): Likewise.
23462         (value_format): Decide AT_ref_external form on use_debug_types.
23463         (output_die): Replace dwarf_version version check guard with
23464         use_debug_types where appropriate.
23465         (modified_type_die): Likewise.
23466         (gen_reference_type_die): Likewise.
23467         (dwarf2out_start_source_file): Likewise.
23468         (dwarf2out_end_source_file): Likewise.
23469         (prune_unused_types_walk_attribs): Likewise.
23470         (dwarf2out_finish): Likewise.
23471
23472 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23473
23474         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
23475
23476 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23477
23478         PR rtl-optimization/48332
23479         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
23480         mode of input operand N and modeN to its actual mode.
23481
23482 2011-03-30  Jeff Law  <law@redhat.com>
23483
23484         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
23485         define accessor macro.
23486         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
23487         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
23488         (reg_equiv_init): Likewise.
23489         (reg_equivs_size): New variable.
23490         (reg_equiv_init_size): Remove.
23491         (allocate_initial_values): Move prototype to here from....
23492         * integrate.h (allocate_initial_values): Remove prototype.
23493         * integrate.c: Include reload.h.
23494         (allocate_initial_values): Corresponding changes.
23495         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
23496         (fix_reg_equiv_init, no_equiv): Corresponding changes.
23497         (update_equiv_regs): Corresponding changes.
23498         (ira): Corresponding changes.
23499         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
23500         (push_secondary_reload): Corresponding changes.
23501         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
23502         (make_memloc, find_reloads_address): Corresponding changes.
23503         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
23504         (find_reloads_address_1): Corresponding changes.
23505         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
23506         (refers_to_regno_for_reload_p): Corresponding changes.
23507         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
23508         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
23509         * reload1.c: Include ggc.h.
23510         (grow_reg_equivs): New function.
23511         (replace_pseudos_in, reload): Corresponding changes.
23512         (calculate_needs_all_insns, alter_regs): Corresponding changes.
23513         (eliminate_regs_1, elimination_effects): Corresponding changes.
23514         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
23515         (delete_output_reload): Likewise.
23516         * caller-save.c (mark_referenced_regs): Corresponding changes.
23517         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
23518         * frv/predicates.md (frv_load_operand): Corresponding changes.
23519         * microblaze/microblaze.c (double_memory_operand): Corresponding
23520         changes.
23521         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
23522         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
23523         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
23524         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
23525         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
23526         changes.
23527         * pa/pa.c (emit_move_sequence): Corresponding changes.
23528         * vax/vax.c (nonindexed_address_p): Corresponding changes.
23529
23530 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23531
23532         PR target/47551
23533         * config/arm/arm.c (coproc_secondary_reload_class): Handle
23534         structure modes.  Don't check neon_vector_mem_operand for
23535         vector or structure modes.
23536
23537 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23538             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23539
23540         PR target/43590
23541         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
23542         operand 1 and reshuffle the operands to match.
23543         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
23544
23545 2011-03-30  Christian Schüler  <cschueler@gmx.de>
23546
23547         PR driver/48208
23548         * config/c.opt (F): Added 'Driver' to -F option.
23549
23550         PR driver/48260
23551         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
23552           handler function.
23553         * config/darwin.opt: Added '-arch' option.
23554
23555 2011-03-30  Nick Clifton  <nickc@redhat.com>
23556
23557         * config/rx/rx.md: Add peepholes and patterns to combine
23558         extending loads and simple arithmetic instructions.
23559         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
23560         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
23561         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
23562         modes to use pre-decrement and post-increment addressing.
23563         (rx_is_restricted_memory_address): Add range checking of REG+INT
23564         addresses.
23565         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
23566         (rx_memory_move_cost): Adjust cost of stores.
23567         (rx_adjust_insn_length): New function.
23568
23569 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
23570
23571         PR c/48305
23572         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23573         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
23574         matching arg00/arg01 types.
23575
23576 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23577
23578         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
23579         last_location to UNKNOWN_LOCATION.
23580
23581 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23582
23583         PR target/48349
23584         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
23585         FLOAT_SSE_REGS.
23586
23587 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23588             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23589
23590         PR bootstrap/48337
23591         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
23592         Init(PROCESSOR_V7).
23593         (sparc_cpu): Likewise.
23594         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
23595         PROCESSOR_V7.
23596
23597 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23598
23599         PR target/48336
23600         PR middle-end/48342
23601         PR rtl-optimization/48345
23602         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
23603         hard regs for given mode from profitable regs when doing secondary
23604         allocation.
23605
23606 2011-03-29  Jeff Law  <law@redhat.com>
23607
23608         PR bootstrap/48327
23609         * tree-ssa-threadupdate.c (struct redirection_data): Remove
23610         do_not_duplicate field.
23611         (lookup_redirection_data): Corresponding changes.
23612         (create_duplicates): Always create a template block.
23613         (redirect_edges): Remove code which reused the original block
23614         when it was going to become unreachable code.
23615         (thread_block): Don't set do_not_duplicate field.
23616
23617 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
23618
23619         * lto-opts.c (register_user_option_p, lto_register_user_option):
23620         Make type argument unsigned.
23621         * lto-streamer.h (lto_register_user_option): Make type argument
23622         unsigned.
23623         * opth-gen.awk: Make CL_* macros unsigned.
23624         * opts-common.c (find_opt): Make lang_mask argument unsigned.
23625         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
23626         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
23627         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
23628         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
23629         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
23630         (find_opt): Make lang_mask argument unsigned.
23631
23632 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23633
23634         PR rtl-optimization/48331
23635         PR rtl-optimization/48334
23636         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
23637         for any used algorithm.
23638
23639 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23640
23641         * ira-conflicts.c (build_object_conflicts): Add unused attribute
23642         to parent_max.
23643
23644 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
23645
23646         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
23647         (alpha_option_override): Don't set alpha_sr_alias_set.
23648         (emit_frame_store_1): Use gen_frame_mem rather than calling
23649         set_mem_alias_set.
23650         (alpha_expand_epilogue): Ditto.
23651
23652 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
23653
23654         PR tree-optimization/48290
23655         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
23656         vectorization, check that relevant phis in the basic block after
23657         the inner loop are really inner loop's exit phis.
23658
23659 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
23660
23661         PR debug/48190
23662         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
23663         (cached_dw_loc_list_def): New structure.
23664         (cached_dw_loc_list): New typedef.
23665         (cached_dw_loc_list_table): New variable.
23666         (cached_dw_loc_list_table_hash): New function.
23667         (cached_dw_loc_list_table_eq): Likewise.
23668         (add_location_or_const_value_attribute): Take a bool cache_p.
23669         Cache the list when the parameter is true.
23670         (gen_formal_parameter_die): Update caller.
23671         (gen_variable_die): Likewise.
23672         (dwarf2out_finish): Likewise.
23673         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
23674         while generating debug info for the decl.
23675         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
23676         (dwarf2out_init): Initialize cached_dw_loc_list_table.
23677         (resolve_addr): Cache the result of resolving a chain of
23678         location lists.
23679
23680 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23681
23682         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
23683         conflict object hard regset nodes have intersecting hard reg sets.
23684
23685         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
23686         after regstat_init_n_sets_and_refs.
23687
23688         * ira.c: Add more comments at the top.
23689         (setup_stack_reg_pressure_class, setup_pressure_classes):
23690         Add comments how we compute the register pressure classes.
23691         (setup_allocno_and_important_classes): Add more comments.
23692         (setup_class_translate_array, reorder_important_classes)
23693         (setup_reg_class_relations): Add comments.
23694
23695         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
23696         start of the file.
23697
23698         * ira-color.c: Add 2011 to the Copyright line.
23699         (assign_hard_reg):  Add more comments.
23700         (improve_allocation): Ditto.
23701
23702         * ira-costs.c: Add 2011 to the Copyright line.
23703         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
23704         comments.
23705         (setup_regno_cost_classes_by_mode): Ditto.
23706
23707         Initial patches from ira-improv branch:
23708
23709         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23710
23711         * ira-build.c (ira_create_object): Remove initialization of
23712         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
23713         (ira_create_allocno): Remove initialization of
23714         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
23715         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
23716         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23717         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
23718         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
23719         Initialize ALLOCNO_ADD_DATA.
23720         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
23721         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
23722         ALLOCNO_REG.
23723         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
23724         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
23725
23726         * ira.c (ira_reallocate): Remove.
23727         (setup_pressure_classes): Call
23728         ira_init_register_move_cost_if_necessary.  Use
23729         ira_register_move_cost instead of ira_get_register_move_cost.
23730         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
23731         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
23732
23733         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
23734         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23735         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
23736         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
23737         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
23738         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
23739         Fix formatting.
23740         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
23741         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23742         (struct allocno_color_data): New.
23743         (allocno_color_data_t): New typedef.
23744         (allocno_color_data): New definition.
23745         (ALLOCNO_COLOR_DATA): New macro.
23746         (struct object_color_data): New.
23747         (object_color_data_t): New typedef.
23748         (object_color_data): New definition.
23749         (OBJECT_COLOR_DATA): New macro.
23750         (update_copy_costs, calculate_allocno_spill_cost): Call
23751         ira_init_register_move_cost_if_necessary.  Use
23752         ira_register_move_cost instead of ira_get_register_move_cost.
23753         (move_spill_restore, update_curr_costs): Ditto.
23754         (allocno_spill_priority): Make it inline.
23755         (color_pass): Allocate and free allocno_color_dat and object_color_data.
23756         (struct coalesce_data, coalesce_data_t): New.
23757         (allocno_coalesce_data): New definition.
23758         (ALLOCNO_COALESCE_DATA): New macro.
23759         (merge_allocnos, coalesced_allocno_conflict_p): Use
23760         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
23761         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
23762         (coalesce_allocnos): Ditto.
23763         (setup_coalesced_allocno_costs_and_nums): Ditto.
23764         (collect_spilled_coalesced_allocnos): Ditto.
23765         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
23766         (setup_slot_coalesced_allocno_live_ranges): Ditto.
23767         (coalesce_spill_slots): Ditto.
23768         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
23769         free allocno_coalesce_data.
23770
23771         * ira-conflicts.c: Fix formatting.
23772         (process_regs_for_copy): Call
23773         ira_init_register_move_cost_if_necessary.  Use
23774         ira_register_move_cost instead of ira_get_register_move_cost.
23775         (build_object_conflicts): Optimize.
23776
23777         * ira-costs.c (record_reg_classes): Optimize.  Call
23778         ira_init_register_move_cost_if_necessary.  Use
23779         ira_register_move_cost, ira_may_move_in_cost, and
23780         ira_may_move_out_cost instead of ira_get_register_move_cost and
23781         ira_get_may_move_cost.
23782         (record_address_regs): Ditto.
23783         (scan_one_insn): Optimize.
23784         (find_costs_and_classes): Optimize.
23785         (process_bb_node_for_hard_reg_moves): Call
23786         ira_init_register_move_cost_if_necessary.  Use
23787         ira_register_move_cost instead of ira_get_register_move_cost.
23788
23789         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
23790         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
23791         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
23792         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
23793         definitions.
23794         (ira_initiate_emit_data, ira_finish_emit_data)
23795         (create_new_allocno): New functions.
23796         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
23797         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
23798         Use ira_register_move_cost instead of ira_get_register_move_cost.
23799
23800         * ira-int.h: Fix some comments.
23801         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
23802         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23803         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
23804         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
23805         add_data.
23806         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
23807         bitfield after mode.  Make hard_regno a short int.  Make
23808         hard_regno short.  Remove first_coalesced_allocno and
23809         next_coalesced_allocno.  Move mem_optimized_dest_p,
23810         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
23811         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
23812         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
23813         temp, colorable_p.  Add new member add_data.
23814         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
23815         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
23816         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
23817         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
23818         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
23819         (ALLOCNO_ADD_DATA): New macro.
23820         (ira_emit_data_t): New typedef.
23821         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
23822         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
23823         from struct ira_allocno.
23824         (ALLOCNO_EMIT_DATA): New macro.
23825         (ira_allocno_emit_data, allocno_emit_reg): New.
23826         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
23827         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
23828         (OBJECT_ADD_DATA): New macro.
23829         (ira_reallocate): Remove.
23830         (ira_initiate_emit_data, ira_finish_emit_data): New.
23831         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
23832         (ira_init_register_move_cost_if_necessary): New.
23833         (ira_object_conflict_iter_next): Merge into
23834         ira_object_conflict_iter_cond.
23835         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
23836
23837         * ira-live.c (process_single_reg_class_operands): Call
23838         ira_init_register_move_cost_if_necessary.  Use
23839         ira_register_move_cost instead of ira_get_register_move_cost.
23840
23841         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23842
23843         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
23844
23845         * ira-costs.c: Fix formatting.
23846         (cost_classes, cost_classes_num): Remove.
23847         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
23848         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
23849         (cost_classes_del, cost_classes_htab): New.
23850         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
23851         (initiate_regno_cost_classes, setup_cost_classes): New.
23852         (setup_regno_cost_classes_by_aclass): New.
23853         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
23854         (record_reg_classes): Use regno_cost_classes instead of
23855         cost_classes.  Move checking opposite operand up.
23856         (record_address_regs): Use regno_cost_classes
23857         instead of cost_classes.
23858         (scan_one_insn): Ditto.  Use always general register.
23859         (print_allocno_costs): Use regno_cost_classes instead of
23860         cost_classes.
23861         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
23862         (find_costs_and_classes): Set up cost classes for each registers.
23863         Use also their mode for this.  Use regno_cost_classes instead of
23864         cost_classes.
23865         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
23866         cost_classes.
23867         (free_ira_costs, ira_init_costs): Don't use cost_classes.
23868         (ira_costs, ira_set_pseudo_classes): Call
23869         initiate_regno_cost_classes and finish_regno_cost_classes.
23870
23871         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
23872
23873         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
23874
23875         * target.def (ira_cover_classes): Remove.
23876
23877         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
23878
23879         * doc/tm.texi.in: Ditto.
23880
23881         * ira-conflicts.c: Remove mentioning cover classes from the file.
23882         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
23883         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
23884
23885         * targhooks.c (default_ira_cover_classes): Remove.
23886
23887         * targhooks.h (default_ira_cover_classes): Ditto.
23888
23889         * haifa-sched.c: Remove mentioning cover classes from the file.
23890         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
23891         ira_pressure_classes and ira_pressure_classes_num instead of
23892         ira_reg_class_cover_size and ira_reg_class_cover.  Use
23893         sched_regno_pressure_class instead of sched_regno_cover_class.
23894         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
23895         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23896
23897         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
23898         classes from the file.
23899         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
23900         (struct object_hard_regs, struct object_hard_regs_node): New.
23901         (struct ira_object): New members profitable_hard_regs,
23902         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
23903         (struct ira_allocno): Rename cover_class to aclass.  Rename
23904         cover_class_cost and updated_cover_class_cost to class_cost and
23905         updated_class_cost.  Remove splay_removed_p and
23906         left_conflict_size.  Add new members colorable_p.
23907         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
23908         (ALLOCNO_COLORABLE_P): New macro.
23909         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
23910         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
23911         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
23912         (OBJECT_...): Rename parameter C to O.
23913         (OBJECT_PROFITABLE_HARD_REGS): New macro.
23914         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
23915         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
23916         (struct target_ira_int): New members x_ira_max_memory_move_cost,
23917         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
23918         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
23919         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
23920         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
23921         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
23922         x_ira_reg_class_subunion.
23923         (ira_max_memory_move_cost, ira_max_register_move_cost)
23924         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
23925         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
23926         (ira_important_class_nums, ira_reg_class_superunion): New macros.
23927         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
23928         (ira_reg_class_union): Rename to ira_reg_class_subunion.
23929         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
23930         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
23931         (ira_tune_allocno_costs_and_cover_classes): Rename to
23932         ira_tune_allocno_costs.
23933         (ira_debug_hard_regs_forest): New.
23934         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
23935         (ira_object_conflict_iter_next): Fix comments.
23936         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
23937         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
23938         cover_class to aclass.
23939         (ira_allocate_and_accumulate_costs): Ditto.
23940         (ira_allocate_and_set_or_copy_costs): Ditto.
23941
23942         * opts.c (decode_options): Remove ira_cover_class check.
23943
23944         * ira-color.c: Remove mentioning cover classes from the file.  Use
23945         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
23946         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
23947         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
23948         (splay-tree.h): Remove include.
23949         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
23950         before copy_freq_compare_func.
23951         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
23952         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
23953         New definitions.
23954         (hard_regs_roots, hard_regs_node_vec): Ditto.
23955         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
23956         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
23957         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
23958         (create_new_object_hard_regs_node): Ditto.
23959         (add_new_object_hard_regs_node_to_forest): Ditto.
23960         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
23961         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
23962         Ditto.
23963         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
23964         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
23965         (remove_unused_object_hard_regs_nodes): Ditto.
23966         (enumerate_object_hard_regs_nodes): Ditto.
23967         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
23968         (object_hard_regs_subnode_t): Ditto.
23969         (struct object_hard_regs_subnode): Ditto.
23970         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
23971         (setup_object_hard_regs_subnode_index): Ditto.
23972         (get_object_hard_regs_subnodes_num): Ditto.
23973         (form_object_hard_regs_nodes_forest): Ditto.
23974         (finish_object_hard_regs_nodes_tree): Ditto.
23975         (finish_object_hard_regs_nodes_forest): Ditto.
23976         (allocnos_have_intersected_live_ranges_p): Rename to
23977         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23978         (pseudos_have_intersected_live_ranges_p): Rename to
23979         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23980         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
23981         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
23982         (update_copy_costs): Remove assert.  Skip cost update if the hard
23983         reg does not belong the class.
23984         (assign_hard_reg): Process only profitable hard regs.
23985         (uncolorable_allocnos_num): Make it scalar.
23986         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
23987         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
23988         and ira_reg_class_max_nregs.
23989         (bucket_allocno_compare_func): Check frequency first.
23990         (sort_bucket): Add compare function as a parameter.
23991         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
23992         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
23993         (push_allocno_to_stack): Rewrite for checking new allocno
23994         colorability.
23995         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
23996         (push_only_colorable): Pass new parameter to sort_bucket.
23997         (push_allocno_to_spill): Remove.
23998         (allocno_spill_priority_compare): Make it inline and rewrite.
23999         (splay_tree_allocate, splay_tree_free): Remove.
24000         (allocno_spill_sort_compare): New function.
24001         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
24002         build and use splay tree.  Choose first allocno in uncolorable
24003         allocno bucket to spill.  Remove setting spill cost.
24004         (all_conflicting_hard_regs): Remove.
24005         (setup_allocno_available_regs_num): Check only profitable hard
24006         regs.  Print info about hard regs nodes.
24007         (setup_allocno_left_conflicts_size): Remove.
24008         (put_allocno_into_bucket): Don't call
24009         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
24010         (improve_allocation): New.
24011         (color_allocnos): Call setup_profitable_hard_regs,
24012         form_object_hard_regs_nodes_forest, improve_allocation,
24013         finish_object_hard_regs_nodes_forest.  Setup spill cost.
24014         (print_loop_title): Use pressure classes.
24015         (color_allocnso): Ditto.
24016         (do_coloring): Remove allocation and freeing splay_tree_node_pool
24017         and allocnos_for_spilling.
24018         (ira_sort_regnos_for_alter_reg): Don't setup members
24019         {first,next}_coalesced_allocno.
24020         (color): Remove allocating and freeing removed_splay_allocno_vec.
24021         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
24022         prohibited_class_mode_regs.
24023
24024         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
24025         formatting.
24026         (update_allocno_pressure_excess_length): Use pressure classes.
24027         (inc_register_pressure, dec_register_pressure): Check for pressure
24028         class.
24029         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
24030         pressure class.  Use ira_reg_class_nregs instead of
24031         ira_reg_class_max_nregs.
24032         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
24033         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
24034         (single_reg_class): Use ira_reg_class_nregs instead of
24035         ira_reg_class_max_nregs.
24036         (process_bb_node_lives): Use pressure classes.
24037
24038         * ira-emit.c: Remove mentioning cover classes from the file.  Use
24039         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24040         (change_loop): Use pressure classes.
24041         (modify_move_list): Call ira_set_allocno_class instead of
24042         ira_set_allocno_cover_class.
24043
24044         * ira-build.c: Remove mentioning cover classes from the file.  Use
24045         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
24046         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
24047         ALLOCNO_UPDATED_CLASS_COST instead of
24048         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
24049         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
24050         (ira_create_allocno): Remove initialization of
24051         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
24052         ALLOCNO_COLORABLE_P.
24053         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
24054         Update conflict regs for the objects.
24055         (create_cap_allocno): Remove assert.  Don't propagate
24056         ALLOCNO_AVAILABLE_REGS_NUM.
24057         (ira_free_allocno_costs): New function.
24058         (finish_allocno): Change a part of code into call of
24059         ira_free_allocno_costs.
24060         (low_pressure_loop_node_p): Use pressure classes.
24061         (object_range_compare_func): Don't compare classes.
24062         (setup_min_max_conflict_allocno_ids): Ditto.
24063
24064         * loop-invariant.c: Remove mentioning cover classes from the file.
24065         Use ira_pressure_classes and ira_pressure_classes_num instead of
24066         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
24067         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
24068         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24069         Use reg_allocno_class instead of reg_cover_class.
24070         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
24071         STACK_REG_COVER_CLASS.
24072         (get_regno_cover_class): Rename to get_regno_pressure_class.
24073         (move_loop_invariants): Initialize and finalize regstat.
24074
24075         * ira.c: Remove mentioning cover classes from the file.  Add
24076         comments about coloring without cover classes.  Use ALLOCNO_CLASS
24077         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24078         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
24079         setup_class_subset_and_memory_move_costs.
24080         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
24081         (setup_cover_and_important_classes): Rename to
24082         setup_allocno_and_important_classes.
24083         (setup_class_translate_array): New.
24084         (setup_class_translate): Call it for allocno and pressure classes.
24085         (cover_class_order): Rename to allocno_class_order.
24086         (comp_reg_classes_func): Use ira_allocno_class_translate instead
24087         of ira_class_translate.
24088         (reorder_important_classes): Set up ira_important_class_nums.
24089         (setup_reg_class_relations): Set up ira_reg_class_superunion.
24090         (print_class_cover): Rename to print_classes.  Add parameter.
24091         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
24092         Print pressure classes too.
24093         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
24094         setup_reg_subclasses.
24095         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24096         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24097         (setup_prohibited_class_mode_regs): Use
24098         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
24099         (clarify_prohibited_class_mode_regs): New function.
24100         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
24101         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
24102         (ira_init_once): Initialize them.
24103         (free_register_move_costs): Process them.
24104         (ira_init): Move calls of find_reg_classes and
24105         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
24106         Call clarify_prohibited_class_mode_regs.
24107         (ira_no_alloc_reg): Remove.
24108         (too_high_register_pressure_p): Use pressure classes.
24109
24110         * sched-deps.c: Remove mentioning cover classes from the file.
24111         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
24112         ira_pressure_classes and ira_pressure_classes_num instead of
24113         ira_reg_class_cover_size and ira_reg_class_cover.
24114         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
24115         sched_regno_pressure_class instead of sched_regno_cover_class.
24116         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
24117         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24118
24119         * ira.h: Add 2010 to Copyright.
24120         (ira_no_alloc_reg): Remove external.
24121         (struct target_ira): Rename x_ira_hard_regno_cover_class,
24122         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
24123         x_ira_class_translate to x_ira_hard_regno_allocno_class,
24124         x_ira_allocno_classes_num, x_ira_allocno_classes, and
24125         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
24126         x_ira_pressure_classes, x_ira_pressure_class_translate, and
24127         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
24128         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
24129         x_ira_no_alloc_regs.
24130         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24131         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
24132         ira_allocno_classes_num and ira_allocno_classes.
24133         (ira_class_translate): Rename to ira_allocno_class_translate.
24134         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
24135         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
24136         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24137         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
24138         (ira_no_alloc_regs): New.
24139
24140         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
24141         classes from the file.  Use ALLOCNO_CLASS instead of
24142         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
24143         ALLOCNO_COVER_CLASS_COST.
24144         (regno_cover_class): Rename to regno_aclass.
24145         (record_reg_classes): Use ira_reg_class_subunion instead of
24146         ira_reg_class_union.
24147         (record_address_regs): Check overflow.
24148         (scan_one_insn): Ditto.
24149         (print_allocno_costs): Print total mem cost fore regional allocation.
24150         (print_pseudo_costs): Use REG_N_REFS.
24151         (find_costs_and_classes): Use classes intersected with them on the
24152         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
24153         ira_reg_class_union.  Use ira_allocno_class_translate and
24154         regno_aclass instead of ira_class_translate and regno_cover_class.
24155         Modify code for finding regno_aclass.  Setup preferred classes for
24156         the next pass.
24157         (setup_allocno_cover_class_and_costs): Rename to
24158         setup_allocno_class_and_costs.  Use regno_aclass instead of
24159         regno_cover_class.  Use ira_set_allocno_class instead of
24160         ira_set_allocno_cover_class.
24161         (init_costs, finish_costs): Use regno_aclass instead of
24162         regno_cover_class.
24163         (ira_costs): Use setup_allocno_class_and_costs instead of
24164         setup_allocno_cover_class_and_costs.
24165         (ira_tune_allocno_costs_and_cover_classes): Rename to
24166         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
24167         by processing objects.  Use ira_reg_class_max_nregs instead of
24168         ira_reg_class_nregs.
24169
24170         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
24171
24172         * sched-int.h: Remove mentioning cover classes from the file.
24173         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
24174
24175         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
24176         classes from the file.
24177         (struct reg_pref): Rename coverclass into allocnoclass.
24178         (reg_cover_class): Rename to reg_allocno_class.
24179
24180         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
24181
24182         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
24183
24184         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
24185
24186         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
24187
24188         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
24189
24190         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
24191
24192         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
24193
24194         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
24195
24196         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
24197
24198         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
24199
24200         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
24201         (i386_ira_cover_classes): Ditto.
24202
24203         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
24204
24205         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
24206
24207         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
24208
24209         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
24210
24211         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
24212
24213         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
24214
24215         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
24216         (mips_ira_cover_classes): Ditto.
24217
24218         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
24219
24220         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
24221
24222         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
24223
24224         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
24225
24226         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
24227
24228         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
24229         (IRA_COVER_CLASSES_VSX): Ditto.
24230
24231         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
24232         (rs6000_ira_cover_classes): Ditto.
24233
24234         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
24235
24236         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
24237
24238         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
24239
24240         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
24241
24242         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
24243
24244         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
24245
24246         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
24247
24248         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
24249
24250         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
24251
24252         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
24253
24254 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
24255
24256         PR debug/48253
24257         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
24258         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
24259         dw_fde_unlikely_section_end_label, cold_in_std_section,
24260         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
24261         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
24262         fields.
24263         (output_fde): Use dw_fde_second_{begin,end} if second is
24264         true, otherwise dw_fde_{begin,end}.
24265         (output_call_frame_info): Test dw_fde_second_begin != NULL
24266         instead of dw_fde_switched_sections.
24267         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
24268         fields, initialize new fields.  Initialize in_std_section
24269         unconditionally from the first partition.
24270         (dwarf2out_end_epilogue): Don't override dw_fde_end when
24271         dw_fde_second_begin is non-NULL.
24272         (dwarf2out_switch_text_section): Stop initializing removed
24273         dw_fde_struct fields, initialize new fields, initialize
24274         also dw_fde_end here.  Set dw_fde_switch_cfi even when
24275         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
24276         (struct var_loc_list_def): Add last_before_switch field.
24277         (arange_table, arange_table_allocated, arange_table_in_use,
24278         ARANGE_TABLE_INCREMENT, add_arange): Removed.
24279         (size_of_aranges): Count !in_std_section and !second_in_std_section
24280         hunks in fdes, instead of looking at arange_table_in_use.
24281         (output_aranges): Add aranges_length argument, don't call
24282         size_of_aranges here.  Instead of using aranges_table*
24283         emit ranges for fdes when !in_std_section resp.
24284         !second_in_std_section.
24285         (dw_loc_list): Break ranges crossing section switch.
24286         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
24287         use dw_fde_second_end instead of dw_fde_end as end of last range.
24288         (gen_subprogram_die): Don't call add_arange.  Use
24289         dw_fde_{begin,end} for first partition and if switched
24290         section dw_fde_second_{begin,end} for the second.
24291         (var_location_switch_text_section_1,
24292         var_location_switch_text_section): New functions.
24293         (dwarf2out_begin_function): Initialize cold_text_section even
24294         when function_section () isn't text_section.
24295         (prune_unused_types): Don't walk arange_table.
24296         (dwarf2out_finish): Don't needlessly test
24297         flag_reorder_blocks_and_partition when testing cold_text_section_used.
24298         If info_section_emitted, call size_of_aranges and if it indicates
24299         non-empty .debug_aranges, call output_aranges with the computed
24300         size.  Stop using removed dw_fde_struct fields, use
24301         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
24302         for second.
24303
24304         PR debug/48203
24305         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
24306         create ENTRY_VALUE if incoming or address of incoming's MEM
24307         is a hard REG.
24308         * dwarf2out.c (mem_loc_descriptor): Don't emit
24309         DW_OP_GNU_entry_value of DW_OP_fbreg.
24310         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
24311         on ENTRY_VALUE is able to find the canonical parameter VALUE.
24312         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
24313         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
24314         ENTRY_VALUE_EXPs.
24315         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
24316         is a REG_P or MEM_P with REG_P address, compute hash directly
24317         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
24318         (preserve_only_constants): Don't clear VALUES forwaring
24319         ENTRY_VALUE to some other VALUE.
24320
24321 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
24322
24323         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
24324         instead of GEN_INT.
24325
24326 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24327
24328         * cfgexpand.c (expand_gimple_cond): Always set the source location and
24329         block before expanding the statement.
24330         (expand_gimple_stmt_1): Likewise.  Set them here...
24331         (expand_gimple_stmt): ...and not here.  Tidy.
24332         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
24333         unknown.
24334
24335 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24336
24337         * Makefile.in: New rule for cprop.o.
24338         * gcse.c: Move constant/copy propagation to cprop.c.
24339         (compute_local_properties): Only handle expression tables.
24340         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
24341         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
24342         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
24343         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
24344         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
24345         compute_cprop_data, find_used_regs, try_replace_reg,
24346         find_avail_set, cprop_jump, constprop_register, cprop_insn,
24347         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
24348         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
24349         find_bypass_set, reg_killed_on_edge, bypass_block,
24350         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
24351         execute_rtl_cprop, pass_rtl_cprop): Move to...
24352         * cprop.c: ...here.  New file, constant/copy propagation for RTL
24353         moved from gcse.c to here with minor cleanups in duplicated code.
24354
24355 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
24356
24357         * config/i386/i386.c (flag_opts): Fix a typo in
24358         -mavx256-split-unaligned-store.
24359
24360 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24361
24362         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24363         LIBCALL_VALUE): Remove macros.
24364         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24365         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24366         (h8300_function_value, h8300_libcall_value,
24367         h8300_function_value_regno_p): New functions.
24368
24369 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24370
24371         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
24372
24373 2011-03-28  Jeff Law  <law@redhat.com>
24374
24375         * tree-ssa-threadupdate.c (redirect_edges): Call
24376         create_edge_and_update_destination_phis as needed.
24377         (create_edge_and_update_destination_phis): Accept new BB argument.
24378         All callers updated.
24379         (thread_block): Do not update the profile when threading around
24380         intermediate blocks.
24381         (thread_single_edge): Likewise.
24382         (determine_bb_domination_status): If BB is not a successor of the
24383         loop header, return NONDOMINATING.
24384         (register_jump_thread): Note when we register a jump thread around
24385         an intermediate block.
24386         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
24387         (thread_across_edge): Use it.
24388
24389 2011-03-28  Tristan Gingold  <gingold@adacore.com>
24390
24391         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
24392         when for_return is 2.
24393
24394 2011-03-28  Jeff Law  <law@redhat.com>
24395
24396         * var-tracking.c (canonicalize_values_mark): Delete unused
24397         lhs assignment.
24398         (canonicalize_values_star, set_variable_part): Likewise.
24399         (clobber_variable_part, delete_variable_part): Likewise.
24400
24401 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24402
24403         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
24404
24405 2011-03-28  Martin Jambor  <mjambor@suse.cz>
24406
24407         * tree-inline.c (expand_call_inline): Do not check that destination
24408         node is analyzed.
24409         (optimize_inline_calls): Assert that destination node is analyzed.
24410         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
24411         not call tree_lowering_passes.
24412         * cgraph.h (cgraph_analyze_function): Declare.
24413         * cgraphunit.c (cgraph_analyze_function): Make public.
24414
24415 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
24416
24417         * config/sparc/sparc-opts.h: New.
24418         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
24419         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
24420         (sparc_option_override): Store processor_type enumeration rather
24421         than string in cpu_default.  Remove name and enumeration from
24422         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
24423         without using sparc_select.  Use target_flags_explicit instead of
24424         fpu_option_set.
24425         * config/sparc/sparc.h (enum processor_type): Move to
24426         sparc-opts.h.
24427         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
24428         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
24429         HeaderInclude entry.
24430         (mcpu=, mtune=): Use Var and Enum.
24431         (sparc_processor_type): New Enum and EnumValue entries.
24432
24433 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24434             Iain Sandoe  <iains@gcc.gnu.org>
24435
24436         PR target/48245
24437         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
24438
24439 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24440
24441         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
24442         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
24443         Insert new statements at it in lieu of STMT.
24444         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
24445         * tree-vect-stmts.c (vectorizable_store): Likewise.
24446         (vectorizable_load): Likewise.
24447
24448 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
24449
24450         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
24451         (divtf3): Ditto.
24452         (multf3): Ditto.
24453         (subtf3): Ditto.
24454
24455 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24456
24457         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
24458         unaligned 256bit load/store.
24459         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
24460         (*avx_movdqu<avxmodesuffix>): Likewise.
24461
24462 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24463
24464         PR target/48288
24465         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
24466         * config/pa/pa.md (iordi3): Use new predicate in expander.
24467         (iorsi3): Likewise.
24468
24469 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
24470
24471         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
24472         FUNCTION_VALUE_REGNO_P): Remove macros.
24473         * config/mips/mips-protos.h (mips_function_value): Remove.
24474         * config/mips/mips.c (mips_function_value): Rename to...
24475         (mips_function_value_1): ... this. Make static.  Handle receiving
24476         the function type in 'fn_decl_or_type' argument.
24477         (mips_function_value, mips_libcall_value,
24478         mips_function_value_regno_p): New function.
24479         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24480         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24481
24482 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24483
24484         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
24485         and -mavx256-split-unaligned-store.
24486         (ix86_option_override_internal): Split 32-byte AVX unaligned
24487         load/store by default.
24488         (ix86_avx256_split_vector_move_misalign): New.
24489         (ix86_expand_vector_move_misalign): Use it.
24490
24491         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
24492         -mavx256-split-unaligned-store.
24493
24494         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
24495         256bit load/store.  Generate unaligned store on misaligned memory
24496         operand.
24497         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
24498         256bit load/store.
24499         (*avx_movdqu<avxmodesuffix>): Likewise.
24500
24501         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
24502         -mavx256-split-unaligned-store.
24503
24504 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24505
24506         PR target/38598
24507         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
24508         Update commentary.
24509
24510 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24511
24512         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
24513         opno arguments with an expand_operand.  Use create_input_operand.
24514         (mips_prepare_builtin_target): Delete.
24515         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
24516         functions.
24517         (mips_expand_builtin_direct): Use create_output_operand and
24518         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
24519         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
24520         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
24521
24522 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
24523
24524         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
24525         function.
24526         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
24527
24528 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
24529
24530         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
24531         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
24532         basic blocks and call commit_edge_insertions directly.
24533         (fixup_abnormal_edges): Move from here to...
24534         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
24535         on the edges and return whether some have actually been inserted.
24536         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
24537         compensation code.
24538
24539 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
24540
24541         PR rtl-optimization/48144
24542         * sel-sched-ir.c (merge_history_vect): Factor out from ...
24543         (merge_expr_data): ... here.
24544         (av_set_intersect): Rename to av_set_code_motion_filter.
24545         Update all callers.  Call merge_history_vect when an expression
24546         is found in both sets.
24547         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
24548
24549 2011-03-26  Alan Modra  <amodra@gmail.com>
24550
24551         * config/rs6000/predicates.md (word_offset_memref_op): Handle
24552         cmodel medium addresses.
24553         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
24554         64-bit gpr loads and stores.
24555         (rs6000_secondary_reload_ppc64): New function.
24556         * config/rs6000/rs6000-protos.h: Declare it.
24557         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
24558
24559 2011-03-26  Alan Modra  <amodra@gmail.com>
24560
24561         PR target/47487
24562         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
24563         GNU Go in traceback table.
24564
24565 2011-03-25  Richard Henderson  <rth@redhat.com>
24566
24567         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
24568         if there are exactly 6 operands.
24569         (set_storage_via_setmem): Similarly.
24570
24571 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24572
24573         * collect2.c (write_c_file_stat): Handle backslash
24574         as right-hand directory separator.
24575         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
24576         checking just for slash.
24577         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
24578         instead of checking for trailing slash.
24579         * gcc.c (record_temp_file): Use filename_cmp instead
24580         of strcmp.
24581         (do_spec_1): Likewise.
24582         (replace_outfile_spec_function): Likewise.
24583         (is_directory): Use filename_ncmp instead of strncmp.
24584         (print_multilib_info): Likewise.
24585         * gcov.c (find_source): Use filename_cmp instead
24586         instead of strcmp.
24587         (make_gcov_file_name): Fix order of slash/backslash
24588         checks.
24589         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
24590         (add_standard_paths): Likewise.
24591         * mips-tfile.c (saber_stop): Handle backslash.
24592         * prefix.c (update_path): Use filename_ncmp instead of
24593         strncmp.
24594         * profile.c (output_location): Use filename_cmp instead
24595         of strcmp.
24596         * read-md.c (handle_toplevel_file): Handle backslash.
24597         * tlink.c (frob_extension):  Likewise.
24598         * tree-cfg.c (same_line_p): Use filename_cmp instead of
24599         strcmp.
24600         * tree-dump.c (dequeue_and_dump): Handle backslash.
24601         * tree.c (get_file_function_name): Likewise.
24602         * gengtype.c (read_input_list): Likewise.
24603         (get_file_realbasename): Likewise.
24604         (get_output_file_with_visibility): Use filename_cmp
24605         instead of strcmp.
24606
24607 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
24608
24609         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
24610         case to VFPv1.
24611
24612 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24613
24614         * fold-const.c (expr_location_or): New function.
24615         (fold_truth_not_expr): Call it.
24616
24617 2011-03-25  Jeff Law  <law@redhat.com>
24618
24619         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
24620         va_end.
24621         * c-family/c-common.c (def_fn_type): Likewise.
24622         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
24623         * emit-rtl.c (gen_rtvec): Likewise.
24624         * lto/lto-lang.c (def_fn_type): Likewise.
24625
24626 2011-03-25  Richard Guenther  <rguenther@suse.de>
24627
24628         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
24629         also generate copies.
24630         (fini_copy_prop): Handle constant values properly.
24631
24632 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
24633
24634         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
24635         mode size instead of bitsize with DWARF2_ADDR_SIZE.
24636         (hash_loc_operands, compare_loc_operands): Handle
24637         DW_OP_GNU_entry_value.
24638
24639 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24640
24641         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
24642         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
24643         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
24644         comment and use macro TARGET_64BIT_MS_ABI instead.
24645         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
24646         and change default behavior for 32-bit MS_ABI.
24647         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
24648         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
24649         32-bit, too.
24650         (ix86_cfun_abi): Likewise.
24651         (ix86_maybe_switch_abi): Adjust comment.
24652         (init_cumulative_args): Check for bit-ness in MS_ABI case.
24653         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
24654         instead of checking for SYSV_ABI.
24655         (ix86_nsaved_sseregs): Likewise.
24656         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
24657         to 16 bytes.
24658         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
24659         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
24660         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
24661         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
24662         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
24663
24664 2011-03-25  Richard Guenther  <rguenther@suse.de>
24665
24666         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
24667         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24668         (verify_gimple): Remove.
24669         * tree-cfg.c (verify_gimple_call): Merge verification
24670         from verify_stmts.
24671         (verify_gimple_phi): Merge verification from verify_stmts.
24672         (verify_gimple_label): New function.
24673         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
24674         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24675         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
24676         (verify_stmts): Rename to verify_gimple_in_cfg.
24677         (verify_gimple_in_cfg): New function.
24678         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
24679         * tree-ssa.c (verify_ssa): Likewise.
24680         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
24681
24682 2011-03-25  Richard Guenther  <rguenther@suse.de>
24683
24684         * passes.c (init_optimization_passes): Add FRE pass after
24685         early SRA.
24686
24687 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
24688             Andrew Stubbs  <ams@codesourcery.com>
24689
24690         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
24691         for Cortex-A8.
24692         (arm_movdi_vfp_cortexa8): New pattern.
24693         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
24694         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
24695         instructions when tuning for Cortex-A8.  Set attribute "arch".
24696         * config/arm/arm.md: Move include arm-tune.md up a bit.
24697         (define_attr "arch"): Add "onlya8" and "nota8" values.
24698         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
24699
24700 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24701
24702         PR bootstrap/48282
24703         Revert:
24704         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24705
24706         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24707         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24708         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24709         * passes.c (init_optimization_passes): Move
24710         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24711
24712 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24713
24714         * c-typeck.c (comptypes_internal): Replace target
24715         hook call of comp_type_attributes by version in tree.c file.
24716         * gimple.c (gimple_types_compatible_p_1): Likewise.
24717         * tree-ssa.c (useless_type_conversion_p): Likewise.
24718         * tree.c (build_type_attribute_qual_variant): Likewise.
24719         (attribute_value_equal): New static helper function.
24720         (comp_type_attributes): New function.
24721         (merge_attributes): Use attribute_value_equal for comparison.
24722         (attribute_list_contained): Likewise.
24723         * tree.h (comp_type_attributes): New prototype.
24724
24725 2011-03-25  Richard Guenther  <rguenther@suse.de>
24726
24727         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
24728         of complex types at -O0.
24729         (verify_gimple_assign_binary): Likewise.
24730         (verify_gimple_assign_ternary): Likewise.
24731
24732 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24733
24734         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
24735         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
24736
24737 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24738
24739         PR debug/48041
24740         * dwarf2out.c (output_abbrev_section): Only write table when
24741         abbrev_die_table_in_use > 1.
24742
24743 2011-02-24  Richard Henderson  <rth@redhat.com>
24744
24745         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
24746         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
24747         (alpha_expand_unaligned_load_words): Use extql.
24748         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
24749         (emit_insxl): Handle all modes for consistency.
24750
24751 2011-02-24  Richard Henderson  <rth@redhat.com>
24752
24753         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
24754         (alpha_expand_unaligned_load): Likewise.
24755         (alpha_expand_unaligned_store): Likewise.
24756         (alpha_expand_unaligned_load_words): Likewise.
24757         (alpha_expand_unaligned_store_words): Likewise.
24758         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
24759         (alpha_split_lock_test_and_set_12): Likewise.
24760         (print_operand, alpha_fold_builtin_extxx): Likewise.
24761         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
24762         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
24763         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
24764         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
24765         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
24766         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
24767         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
24768         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
24769         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
24770         (extwl, extll, extql): Similarly.
24771         (inswh, inslh, insqh): Similarly.
24772         (mskbl, mskwl, mskll, mskql): Similarly.
24773         (mskwh, msklh, mskqh): Similarly.
24774
24775 2011-02-24  Richard Henderson  <rth@redhat.com>
24776
24777         * config/alpha/alpha.md (attribute isa): Add er, ner.
24778         (attribute enabled): Handle them.
24779         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
24780
24781 2011-02-24  Richard Henderson  <rth@redhat.com>
24782
24783         * config/alpha/alpha.md (attribute isa): Add vms.
24784         (attribute enabled): Handle it.
24785         (*movsf): Merge *movsf_{nofix,fix,nofp}.
24786         (*movdf): Merge *movdf_{nofix,fix,nofp}.
24787         (*movtf): Rename from *movtf_internal for consistency.
24788         (*movsi): Merge with *movsi_nt_vms.
24789         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
24790         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
24791         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
24792         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
24793
24794 2011-02-24  Richard Henderson  <rth@redhat.com>
24795
24796         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
24797         (extendqisi2, extendhisi2): Likewise.
24798         (extendqidi2): Simplify BWX/non-BWX expansions.
24799         (extendhidi2): Similarly.
24800
24801 2011-02-24  Richard Henderson  <rth@redhat.com>
24802
24803         * config/alpha/alpha.md (attribute isa): New.
24804         (attribute enabled): New.
24805         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
24806         (zero_extendqisi2, zero_extendqidi2): Similarly.
24807         (zero_extendhisi2, zero_extendhidi2): Similarly.
24808         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
24809
24810 2011-02-24  Richard Henderson  <rth@redhat.com>
24811
24812         * config/alpha/predicates.md (input_operand): Revert last change;
24813         update comment to mention 32-bit VMS rather than Windows.
24814
24815 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24816
24817         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24818         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24819         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24820         * passes.c (init_optimization_passes): Move
24821         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24822
24823 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24824
24825         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
24826
24827 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24828
24829         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
24830         correctly.
24831
24832 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
24833
24834         PR debug/48204
24835         * simplify-rtx.c (simplify_const_unary_operation): Call
24836         real_convert when changing mode class with FLOAT_EXTEND.
24837
24838 2011-03-24  Nick Clifton  <nickc@redhat.com>
24839
24840         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
24841         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
24842         * config/rx/rx.c (rx_option_override): Set align_jumps,
24843         align_loops and align_labels if not set by the user.
24844         (rx_align_for_label): New function.
24845         (rx_max_skip_for_label): New function.
24846         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
24847         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
24848         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
24849         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
24850         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
24851
24852 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24853
24854         PR rtl-optimization/48263
24855         * optabs.c (expand_binop_directly): Reinstate convert_modes code
24856         and original commutative_p handling.  Use maybe_gen_insn.
24857
24858 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24859
24860         * reload.c (find_reloads_subreg_address): Add address_reloaded
24861         parameter and return true there if the full address has been
24862         reloaded.
24863         (find_reloads_toplev): Pass address_reloaded flag.
24864         (find_reloads_address_1): Don't use address_reloaded parameter.
24865
24866 2011-03-24  Jeff Law  <law@redhat.com>
24867
24868         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
24869         unused variable "ann".
24870         (remove_unused_locals): Likewise.
24871
24872         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
24873         statement.
24874
24875         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
24876         after it is freed.
24877
24878 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24879
24880         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
24881         for invalid symbolic addresses.
24882         (s390_secondary_reload): Don't use s390_check_symref_alignment for
24883         larl operands.
24884
24885 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24886
24887         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
24888         the argument in calls to fold_truth_not_expr.
24889
24890 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24891
24892         * tree.c (record_node_allocation_statistics): New function.
24893         (make_node_stat, copy_node_stat, build_string): Call it.
24894         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
24895         (build1_stat, build_omp_clause): Likewise.
24896
24897 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24898
24899         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
24900         last commit.
24901
24902 2011-03-24  Richard Guenther  <rguenther@suse.de>
24903
24904         PR tree-optimization/48271
24905         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
24906         blocks that still exist.
24907
24908 2011-03-24  Richard Guenther  <rguenther@suse.de>
24909
24910         PR tree-optimization/48270
24911         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
24912         not free datarefs before ddrs.
24913
24914 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24915
24916         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
24917         from the address built for a reference with variable offset.
24918
24919 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24920
24921         PR target/48237
24922         * config/i386/i386.md (*movdf_internal_rex64): Do not split
24923         alternatives that can be handled with movq or movabsq insn.
24924         (*movdf_internal): Disable for !TARGET_64BIT.
24925         (*movdf_internal_nointeger): Ditto.
24926         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
24927
24928 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24929
24930         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
24931         (FUNCTION_ARG_ADVANCE): Likewise.
24932         * tm.texi.in: Change references to them to hook references.
24933         * tm.texi: Regenerate.
24934         * targhooks.c (default_function_arg): Eliminate check for target macro.
24935         (default_function_incoming_arg): Likewise.
24936         (default_function_arg_advance): Likewise.
24937         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
24938         (function_arg_advance): Likewise.
24939         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
24940
24941 2011-03-24  Richard Guenther  <rguenther@suse.de>
24942
24943         PR middle-end/48269
24944         * tree-object-size.c (addr_object_size): Do not double-account
24945         for MEM_REF offsets.
24946
24947 2011-03-24  Diego Novillo  <dnovillo@google.com>
24948
24949         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
24950         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
24951         (lto_input_data_block): Move from lto-opts.c.  Make extern.
24952         Update all users.
24953         (lto_input_string): Rename from input_string.  Make extern.
24954         Update all users.
24955         * lto-streamer-out.c (lto_output_string_with_length): Rename from
24956         output_string_with_length.
24957         Output 0 to indicate a non-NULL string.  Update all callers to
24958         not emit 0.
24959         (lto_output_string): Rename from output_string.  Make extern.
24960         Update all users.
24961         (lto_output_decl_state_streams): Make extern.
24962         (lto_output_decl_state_refs): Make extern.
24963         * lto-streamer.h (lto_input_string): Declare.
24964         (lto_input_data_block): Declare.
24965         (lto_output_string): Declare.
24966         (lto_output_string_with_length): Declare.
24967         (lto_output_decl_state_streams): Declare.
24968         (lto_output_decl_state_refs): Declare.
24969
24970 2011-03-24  Richard Guenther  <rguenther@suse.de>
24971
24972         PR tree-optimization/46562
24973         * tree.c (build_invariant_address): New function.
24974         * tree.h (build_invariant_address): Declare.
24975         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
24976         a renamed function moved ...
24977         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
24978         Take valueization callback parameter.
24979         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
24980         * gimple-fold.h: New file.
24981         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
24982         (ccp_fold, fold_const_aggregate_ref,
24983         fold_ctor_reference, fold_nonarray_ctor_reference,
24984         fold_array_ctor_reference, fold_string_cst_ctor_reference,
24985         get_base_constructor): Move ...
24986         * gimple-fold.c: ... here.
24987         (gimple_fold_stmt_to_constant_1): New function
24988         split out from ccp_fold.  Take a valueization callback parameter.
24989         Valueize all operands.
24990         (gimple_fold_stmt_to_constant): New wrapper function.
24991         (fold_const_aggregate_ref_1): New function split out from
24992         fold_const_aggregate_ref.  Take a valueization callback parameter.
24993         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
24994         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
24995         invariant POINTER_PLUS_EXPRs to invariant form.
24996         (vn_valueize): New function.
24997         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
24998         * tree-vrp.c (vrp_valueize): New function.
24999         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
25000         to fold statements to constants.
25001         * tree-ssa-pre.c (eliminate): Properly guard propagation of
25002         function declarations.
25003         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
25004         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
25005
25006 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
25007
25008         * config/h8300/predicates.md (jump_address_operand): Fix register
25009         mode check.
25010
25011 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
25012
25013         * doc/invoke.texi (max-stores-to-sink): Document.
25014         * params.h (MAX_STORES_TO_SINK): Define.
25015         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
25016         if either vectorization or if-conversion is disabled.
25017         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
25018         tree-vect-data-refs.c vect_equal_offsets.
25019         (dr_equal_offsets_p): New function.
25020         (find_data_references_in_bb): Remove static.
25021         * tree-data-ref.h (find_data_references_in_bb): Declare.
25022         (dr_equal_offsets_p): Likewise.
25023         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
25024         (vect_drs_dependent_in_basic_block): Update calls to
25025         vect_equal_offsets.
25026         (vect_check_interleaving): Likewise.
25027         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
25028         (cond_if_else_store_replacement): Rename to...
25029         (cond_if_else_store_replacement_1): ... this.  Change arguments and
25030         documentation.
25031         (cond_if_else_store_replacement): New function.
25032         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
25033         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
25034
25035 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
25036
25037         PR target/46934
25038         * config/arm/arm.md (casesi): Use the gen_int_mode() function
25039         to subtract lower bound instead of GEN_INT().
25040
25041 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
25042
25043         PR other/48179
25044         PR other/48221
25045         PR other/48234
25046         * doc/extend.texi (Alignment): Move section to match order in TOC.
25047         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
25048         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
25049
25050 2011-03-23  Jeff Law  <law@redhat.com>
25051
25052         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
25053         before removing the edge.
25054
25055         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
25056         it may have been freed by redirect_branch_edge or
25057         redirect_edge_succ_nodup.
25058
25059 2011-03-23  Richard Guenther  <rguenther@suse.de>
25060
25061         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
25062         (check_va_list_escapes): Likewise.
25063         (check_all_va_list_escapes): Likewise.
25064
25065 2011-03-23  Richard Guenther  <rguenther@suse.de>
25066
25067         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
25068         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
25069         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
25070         (alias.o): Likewise.
25071         (ipa-type-escape.o): Remove.
25072         (ipa-struct-reorg.o): Likewise.
25073         (GTFILES): Remove ipa-struct-reorg.c.
25074         * alias.c: Do not include ipa-type-escape.h.
25075         * tree-ssa-alias.c: Likewise.
25076         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
25077         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
25078         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
25079         and ipa-type-escape passes.
25080         * tree-pass.h (pass_ipa_type_escape): Remove.
25081         (pass_ipa_struct_reorg): Likewise.
25082         * ipa-struct-reorg.h: Remove.
25083         * ipa-struct-reorg.c: Likewise.
25084         * ipa-type-escape.h: Likewise.
25085         * ipa-type-escape.c: Likewise.
25086         * doc/invoke.texi (-fipa-struct-reorg): Remove.
25087         (--param struct-reorg-cold-struct-ratio): Likewise.
25088         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25089         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25090         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
25091
25092 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25093
25094         * config/s390/2084.md: Enable all insn reservations also for z9_ec
25095         cpu attribute value.
25096         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
25097         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
25098         * config/s390/s390.c (processor_flags_table): New constant array.
25099         (s390_handle_arch_option): Remove.
25100         (s390_handle_option): Remove s390_handle_arch_option invocations
25101         and OPT_mwarn_framesize_ handling.
25102         (s390_option_override): Remove s390_handle_arch_option invocation.
25103         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
25104         warnings.
25105         * config/s390/s390.md (cpu attribute): Add z9_ec value.
25106         * config/s390/s390.opt (s390_tune, s390_arch)
25107         (march=): Replace s390_arch_option enum and values with
25108         processor_type.  Set variable name to s390_arch.  Set
25109         initialization value.
25110         (mtune=): Replace s390_arch_option with processor_type.  Set
25111         variable name to s390_tune.  Set initialization value.
25112
25113 2011-03-23  Julian Brown  <julian@codesourcery.com>
25114
25115         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
25116         accesses which are not naturally aligned.
25117
25118 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25119
25120         PR target/47553
25121         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
25122
25123 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25124
25125         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
25126         parameter from "int" to "enum insn_code".
25127         (expand_operand_type): New enum.
25128         (expand_operand): New structure.
25129         (create_expand_operand): New function.
25130         (create_fixed_operand, create_output_operand): Likewise
25131         (create_input_operand, create_convert_operand_to): Likewise.
25132         (create_convert_operand_from, create_address_operand): Likewise.
25133         (create_integer_operand): Likewise.
25134         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
25135         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25136         (expand_insn, expand_jump_insn): Likewise.
25137         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
25138         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
25139         (expand_movstr, expand_builtin___clear_cache): Likewise.
25140         (expand_builtin_lock_release): Likewise.
25141         * explow.c (allocate_dynamic_stack_space): Likewise.
25142         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
25143         and use the default handling in that case.
25144         * expmed.c (check_predicate_volatile_ok): Delete.
25145         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
25146         (emit_cstore): Likewise.
25147         * expr.c (emit_block_move_via_movmem): Likewise.
25148         (set_storage_via_setmem, expand_assignment): Likewise.
25149         (emit_storent_insn, try_casesi): Likewise.
25150         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
25151         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
25152         (expand_vec_shift_expr, expand_binop_directly): Likewise.
25153         (expand_twoval_unop, expand_twoval_binop): Likewise.
25154         (expand_unop_direct, emit_indirect_jump): Likewise.
25155         (emit_conditional_move, vector_compare_rtx): Likewise.
25156         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
25157         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
25158         (expand_sync_lock_test_and_set): Likewise.
25159         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
25160         (emit_unop_insn): Likewise.
25161         (expand_copysign_absneg): Change icode to an insn_code.
25162         (create_convert_operand_from_type): New function.
25163         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
25164         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25165         (expand_insn, expand_jump_insn): Likewise.
25166         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
25167         than const_int_operand for operand 2.
25168
25169 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25170
25171         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
25172         if possible.
25173
25174 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25175
25176         * emit-rtl.c (emit_pattern_before_noloc): New function.
25177         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
25178         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
25179         (emit_pattern_after_noloc): New function.
25180         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
25181         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
25182
25183 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25184
25185         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
25186         (__ffsDI2): Likewise.
25187
25188 2011-03-22  Richard Henderson  <rth@redhat.com>
25189
25190         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
25191         of !TARGET_ABI_OPEN_VMS.
25192         (alpha_trampoline_init, alpha_start_function): Likewise.
25193         (alpha_expand_epilogue, alpha_file_start): Likewise.
25194         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
25195         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
25196         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
25197         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
25198         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
25199
25200 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25201
25202         * config/s390/s390-opts.h: New.
25203         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
25204         s390_arch_flags, s390_warn_framesize, s390_stack_size,
25205         s390_stack_guard): Remove.
25206         (s390_handle_arch_option): Return void.  Take enum
25207         s390_arch_option value instead of string and searching array.
25208         (s390_handle_option): Don't assert that global structures are in
25209         use.  Access variables via opts pointer.  Use error_at.  Don't use
25210         sscanf for -mstack-guard= or -mstack-size=.  Update call to
25211         s390_handle_arch_option.
25212         (s390_option_override): Update call to s390_handle_arch_option.
25213         (s390_emit_prologue): Use %d format for s390_stack_size in
25214         diagnostic.  Use %wd for HOST_WIDE_INT.
25215         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
25216         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
25217         * config/s390/s390.opt (config/s390/s390-opts.h): New
25218         HeaderInclude entry.
25219         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
25220         s390_arch_flags, s390_warn_framesize): New Variable entries.
25221         (s390_arch_option): New Enum and EnumValue entries.
25222         (march=): Use Enum instead of Var.
25223         (mstack-guard=, mstack-size=): Use UInteger and Var.
25224         (mtune=): Use Enum.
25225
25226 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25227
25228         * config/score/score.c (score_handle_option): Don't assert that
25229         global structures are in use.  Access target_flags via opts
25230         pointer.  Use value of -march= option to determine target_flags
25231         settings.
25232         * config/score/score.opt (march=): Use Enum.
25233         (score_arch): New Enum and EnumValue entries.
25234
25235 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25236
25237         * config/mep/mep.c (option_mtiny_specified): Remove.
25238         (mep_option_override): Move register handling for -mivc2 from
25239         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
25240         instead of option_mtiny_specified.
25241         (mep_handle_option): Access target_flags via opts pointer.  Don't
25242         assert that global structures are in use.  Defer part of -mivc2
25243         handling and move it to mep_option_override.
25244         * config/mep/mep.opt (IVC2): New Mask entry.
25245         (mivc2): Use Var and Defer instead of Mask.
25246
25247 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25248
25249         * config/v850/v850-opts.h: New.
25250         * config/v850/v850.c (small_memory): Replace with
25251         small_memory_physical_max array.  Make that array static const.
25252         (v850_handle_memory_option): Take integer value of argument.  Take
25253         gcc_options pointer, option text and location.  Return void.
25254         Update for changes to small memory structures.
25255         (v850_handle_option): Access target_flags via opts pointer.  Don't
25256         assert that global structures are in use.  Update calls to
25257         v850_handle_memory_option.
25258         (v850_encode_data_area): Update references to small memory settings.
25259         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
25260         (enum small_memory_type): Move to v850-opts.h.
25261         * config/v850/v850.opt (config/v850/v850-opts.h): New
25262         HeaderInclude entry.
25263         (small_memory_max): New Variable entry.
25264         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
25265         (mtda, mzda): Likewise.
25266
25267 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25268
25269         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
25270         pointer.  Don't assert that global structures are in use.
25271
25272 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25273
25274         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
25275         via opts pointer.  Don't assert that global structures are in use.
25276
25277 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25278
25279         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
25280         (munix=93): Use Var.
25281         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
25282         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
25283         * config/pa/pa-opts.h: New.
25284         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
25285         (pa_handle_option): Don't assert that global structures are in
25286         use.  Access target_flags via opts pointer.  Don't handle
25287         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
25288         OPT_munix_98 here.
25289         (pa_option_override): Handle deferred OPT_mfixed_range_.
25290
25291 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25292
25293         * config/mn10300/mn10300-opts.h: New.
25294         * config/mn10300/mn10300.c (mn10300_processor,
25295         mn10300_tune_string): Remove.
25296         (mn10300_handle_option): Don't assert that global structures are
25297         in use.  Access mn10300_processor via opts pointer.  Don't handle
25298         OPT_mtune_ here.
25299         * config/mn10300/mn10300.h (enum processor_type): Move to
25300         mn10300-opts.h.
25301         (mn10300_processor): Remove.
25302         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
25303         HeaderInclude entry.
25304         (mn10300_processor): New Variable entry.
25305         (mtune=): Use Var.
25306
25307 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25308
25309         * config/microblaze/microblaze.c: Don't include opts.h.
25310         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
25311         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
25312         (mno-clearbss): Use Var and Warn.
25313
25314 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25315
25316         * config/m32r/m32r-opts.h: New.
25317         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
25318         (m32r_handle_option): Don't assert that global structures are in
25319         use.  Access target_flags and m32r_cache_flush_func via opts
25320         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
25321         OPT_mno_flush_trap here.
25322         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
25323         include of m32r-opts.h.
25324         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
25325         HeaderInclude entry.
25326         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
25327         (mmodel=): Use Enum and Var.
25328         (m32r_model): New Enum and EnumValue entries.
25329         (mno-flush-trap): Use Var.
25330         (msdata=): Use Enum and Var.
25331         (m32r_sdata): New Enum and EnumValue entries.
25332
25333 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25334
25335         * config/m32c/m32c.c: Don't include opts.h.
25336         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
25337         m32c_handle_option): Remove.
25338         (m32c_option_override): Check global_options_set.x_target_memregs
25339         instead of target_memregs_set.
25340         * config/m32c/m32c.h (target_memregs): Remove.
25341         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
25342         variable.
25343
25344 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25345
25346         * config/iq2000/iq2000-opts.h: New.
25347         * config/iq2000/iq2000.c: Don't include opts.h.
25348         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
25349         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
25350         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
25351         HeaderInclude entry.
25352         (iq2000_tune): New Variable entry.
25353         (march=): Add comment.  Use Enum.
25354         (iq2000_arch): New Enum and EnumValue entries.
25355         (mcpu=): Use Enum and Var.
25356         (iq2000_tune): New Enum and EnumValue entries.
25357
25358 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25359
25360         * config/ia64/ia64-opts.h: New.
25361         * config/ia64/ia64.c (ia64_tune): Remove.
25362         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
25363         here.  Use error_at.
25364         (ia64_option_override): Handle deferred OPT_mfixed_range_.
25365         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
25366         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
25367         HeaderInclude entry.
25368         (ia64_tune): New Variable entry.
25369         (mfixed-range=): Use Defer and Var.
25370         (mtune=): Use Enum and Var.
25371         (ia64_tune): New Enum and EnumValue entries.
25372
25373 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25374
25375         * config/frv/frv-opts.h: New.
25376         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
25377         frv-opts.h.
25378         (frv_cpu_type): Remove.
25379         * config/frv/frv.c: Don't include opts.h.
25380         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
25381         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
25382         (frv_cpu_type): New Variable entry.
25383         (frv_cpu): New Enum and EnumValue entries.
25384
25385 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25386
25387         * config/cris/cris.c (cris_handle_option): Access target_flags via
25388         opts pointer.  Don't assert that global structures are in use.
25389         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
25390         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
25391
25392 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25393
25394         * config/bfin/bfin-opts.h: New.
25395         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
25396         bfin_si_revision, bfin_workarounds): Remove.
25397         (bfin_cpus): Make static const.
25398         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
25399         not bfin_lib_id_given.
25400         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
25401         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
25402         pointer. Use error_at.  Don't assert that global structures are in use.
25403         * config/bfin/bfin.h: Include bfin-opts.h.
25404         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
25405         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
25406         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
25407         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
25408         entries.
25409
25410 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25411
25412         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
25413         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
25414         or -msoft-float here.
25415         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
25416         -msoft-float and -mhard-float.
25417         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
25418         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25419         msoft-float.
25420         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
25421         -msoft-float.
25422         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
25423         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
25424         not mhard-float.
25425         (LIBGCC_SPEC): Don't handle -msoft-float.
25426         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
25427         -mhard-float.
25428         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25429         msoft-float.
25430         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
25431         -mfloat-abi=*, not -msoft-float and -mhard-float.
25432         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
25433         -msoft-float.
25434         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
25435         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
25436         mhard-float and msoft-float.
25437         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
25438         mfloat-abi=soft in comments, not mhard-float and msoft-float.
25439         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
25440         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
25441         mhard-float.
25442         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
25443         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
25444         msoft-float.
25445         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
25446         not mhard-float.
25447         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
25448         not msoft-float.
25449
25450 2011-03-22  Richard Henderson  <rth@redhat.com>
25451
25452         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
25453         TARGET_ABI_WINDOWS_NT.
25454         (alpha_output_function_end_prologue): Likewise.
25455         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
25456         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
25457         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
25458         (trap, *movsi_nt_vms): Likewise.
25459         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
25460         (*tablejump_osf_nt_internal): Remove.
25461         * config/alpha/predicates.md (input_operand): Only test Pmode.
25462
25463 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25464
25465         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
25466         via opts pointer.  Use error_at.  Don't assert that global
25467         structures are in use.
25468
25469 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25470
25471         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
25472         (ix86_handle_option): Access ix86_isa_flags and
25473         ix86_isa_flags_explicit via opts pointer.  Don't assert that
25474         global structures are in use.
25475         (ix86_function_specific_save, ix86_function_specific_restore):
25476         Update ix86_isa_flags_explicit field name.
25477         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
25478         (ix86_isa_flags_explicit): Rename TargetSave entry to
25479         x_ix86_isa_flags_explicit.
25480
25481 2011-03-22  Richard Henderson  <rth@redhat.com>
25482
25483         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
25484         (alpha_option_override, direct_return): Likewise.
25485         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
25486         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
25487         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
25488         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
25489         (alpha_expand_epilogue, alpha_end_function): Likewise.
25490         (alpha_init_libfuncs): Likewise.
25491         (struct machine_function): Remove unicosmk members.
25492         (print_operand) ['t']: Remove.
25493         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
25494         unicosmk_output_module_name, unicosmk_output_common,
25495         current_section_align, unicosmk_output_text_section_asm_op,
25496         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
25497         unicosmk_section_type_flags, unicosmk_unique_section,
25498         unicosmk_asm_named_section, unicosmk_insert_attributes,
25499         unicosmk_output_align, unicosmk_defer_case_vector,
25500         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
25501         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
25502         unicosmk_output_ssib, unicosmk_add_call_info_word,
25503         unicosmk_extern_head, unicosmk_output_default_externs,
25504         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
25505         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
25506         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
25507         * config/alpha/alpha-protos.h: Update.
25508         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
25509         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
25510         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
25511         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
25512         (*mulsi_se, mulvsi3): Likewise.
25513         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
25514         (*divmodsi_internal, call, call_value, realign): Likewise.
25515         (moddi3, umoddi3): Likewise; remove duplicate expander.
25516         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
25517         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
25518         (*movdi_nofix): Remove r/U alternative.
25519         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
25520         * config/alpha/constraints.md ("U"): Remove.
25521         * config/alpha/predicates.md (call_operand"): Don't test
25522         TARGET_ABI_UNICOSMK.
25523
25524 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25525
25526         * target.def (handle_option): Take gcc_options and
25527         cl_decoded_option pointers and location_t.
25528         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
25529         * doc/tm.texi: Regenerate.
25530         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
25531         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
25532         * lto-opts.c (lto_reissue_options): Generate option structure for
25533         targetm.handle_option call.
25534         * opts.c (target_handle_option): Update call to
25535         targetm.handle_option.  Remove assertions about values now passed
25536         down to hook.
25537         * targhooks.c (default_target_handle_option): New.
25538         * targhooks.h (default_target_handle_option): Declare.
25539         * config/alpha/alpha.c: Include opts.h.
25540         (alpha_handle_option): Update to new hook interface.
25541         * config/arm/arm.c: Include opts.h.
25542         (arm_handle_option): Update to new hook interface.
25543         * config/arm/t-arm (arm.o): Update dependencies.
25544         * config/bfin/bfin.c: Include opts.h.
25545         (bfin_handle_option): Update to new hook interface.
25546         * config/cris/cris.c: Include opts.h.
25547         (cris_handle_option): Update to new hook interface.
25548         * config/frv/frv.c: Include opts.h.
25549         (frv_handle_option): Update to new hook interface.
25550         * config/i386/i386.c: Include opts.h.
25551         (ix86_handle_option): Update to new hook interface.
25552         (ix86_valid_target_attribute_inner_p): Generate option structure
25553         for call to ix86_handle_option.
25554         * config/i386/t-i386 (i386.o): Update dependencies.
25555         * config/ia64/ia64.c: Include opts.h.
25556         (ia64_handle_option): Update to new hook interface.
25557         * config/ia64/t-ia64 (ia64.o): Update dependencies.
25558         * config/iq2000/iq2000.c: Include opts.h.
25559         (iq2000_handle_option): Update to new hook interface.
25560         * config/m32c/m32c.c: Include opts.h.
25561         (m32c_handle_option): Update to new hook interface.
25562         * config/m32r/m32r.c: Include opts.h.
25563         (m32r_handle_option): Update to new hook interface.
25564         * config/m68k/m68k.c: Include opts.h.
25565         (m68k_handle_option): Update to new hook interface.
25566         * config/mep/mep.c: Include opts.h.
25567         (mep_handle_option): Update to new hook interface.
25568         * config/microblaze/microblaze.c: Include opts.h.
25569         (microblaze_handle_option): Update to new hook interface.
25570         * config/mips/mips.c: Include opts.h.
25571         (mips_handle_option): Update to new hook interface.
25572         * config/mn10300/mn10300.c: Include opts.h.
25573         (mn10300_handle_option): Update to new hook interface.
25574         * config/pa/pa.c: Include opts.h.
25575         (pa_handle_option): Update to new hook interface.
25576         * config/pdp11/pdp11.c: Include opts.h.
25577         (pdp11_handle_option): Update to new hook interface.
25578         * config/rs6000/rs6000.c: Include opts.h.
25579         (rs6000_handle_option): Update to new hook interface.
25580         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
25581         * config/rx/rx.c: Include opts.h.
25582         (rx_handle_option): Update to new hook interface.
25583         * config/s390/s390.c: Include opts.h.
25584         (s390_handle_option): Update to new hook interface.
25585         * config/score/score.c: Include opts.h.
25586         (score_handle_option): Update to new hook interface.
25587         * config/sh/sh.c: Include opts.h.
25588         (sh_handle_option): Update to new hook interface.
25589         * config/sparc/sparc.c: Include opts.h.
25590         (sparc_handle_option): Update to new hook interface.
25591         * config/v850/v850.c: Include opts.h.
25592         (v850_handle_option): Update to new hook interface.
25593
25594 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25595
25596         * gcc.c (driver_unknown_option_callback): Only permit and save
25597         unknown -Wno- options.
25598         (driver_wrong_lang_callback): Save options directly instead of via
25599         driver_unknown_option_callback.
25600
25601 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25602
25603         * combine.c (simplify_set): Try harder to find the best CC mode when
25604         simplifying a nested COMPARE on the RHS.
25605
25606 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25607
25608         * config/alpha/gnu.h: Remove.
25609         * config/arc: Remove directory.
25610         * config/arm/netbsd.h: Remove.
25611         * config/arm/t-pe: Remove.
25612         * config/crx: Remove directory.
25613         * config/i386/netbsd.h: Remove.
25614         * config/m68hc11: Remove directory.
25615         * config/m68k/uclinux-oldabi.h: Remove.
25616         * config/mcore/mcore-pe.h: Remove.
25617         * config/mcore/t-mcore-pe: Remove.
25618         * config/netbsd-aout.h: Remove.
25619         * config/rs6000/gnu.h: Remove.
25620         * config/sh/sh-symbian.h: Remove.
25621         * config/sh/symbian-base.c: Remove.
25622         * config/sh/symbian-c.c: Remove.
25623         * config/sh/symbian-cxx.c: Remove.
25624         * config/sh/symbian-post.h: Remove.
25625         * config/sh/symbian-pre.h: Remove.
25626         * config/sh/t-symbian: Remove.
25627         * config/svr3.h: Remove.
25628         * config/vax/netbsd.h: Remove.
25629         * config.build: Don't handle i[34567]86-*-pe.
25630         * config.gcc: Remove handling of deprecations for most deprecated
25631         targets.
25632         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
25633         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
25634         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
25635         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
25636         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
25637         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
25638         Remove cases.
25639         * config.host: Don't handle i[34567]86-*-pe.
25640         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
25641         (ASM_SPEC32): Don't handle -mcall-gnu.
25642         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
25643         -mcall-gnu.
25644         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
25645         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
25646         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
25647         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
25648         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
25649         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
25650         conditional on SYMBIAN.
25651         * configure.ac: Don't handle powerpc*-*-gnu*.
25652         * configure: Regenerate.
25653         * doc/extend.texi (interrupt attribute): Don't mention CRX.
25654         * doc/install-old.texi (m6811, m6812): Don't mention.
25655         * doc/install.texi (arc-*-elf*): Don't document multilib option.
25656         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
25657         (m68k-uclinuxoldabi): Don't mention.
25658         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
25659         Remove.
25660         (-mcall-gnu): Remove.
25661         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
25662         families): Remove constraint documentation.
25663
25664 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
25665
25666         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
25667         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
25668         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
25669
25670 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25671
25672         PR target/48226
25673         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
25674         vector when peeking at the next token for vector, don't expand the
25675         keywords.
25676
25677 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
25678
25679         * config/avr/avr-protos.h (expand_epilogue): Change prototype
25680         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
25681         * config/avr/avr.c (init_cumulative_args)
25682         (avr_function_arg_advance): Use it.
25683         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
25684         sibcall epilogues.
25685         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
25686         (avr_function_ok_for_sibcall): ...this new function.
25687         (avr_lookup_function_attribute1): New static Function.
25688         (avr_naked_function_p, interrupt_function_p)
25689         (signal_function_p, avr_OS_task_function_p)
25690         (avr_OS_main_function_p): Use it.
25691         * config/avr/avr.md ("sibcall", "sibcall_value")
25692         ("sibcall_epilogue"): New expander.
25693         ("*call_insn", "*call_value_insn"): New insn.
25694         ("call_insn", "call_value_insn"): Remove
25695         ("call", "call_value", "epilogue"): Change expander to handle
25696         sibling calls.
25697
25698 2011-03-21  Nick Clifton  <nickc@redhat.com>
25699
25700         * doc/invoke.texi (Overall Options): Move closing brace to end of
25701         options list.
25702         (Optimization Options): Add missing @gol.
25703         (Directory Options): Likewise.
25704         (i386 and x86-64 Options): Likewise.
25705         (RS6000 and PowerPC Options): Likewise.
25706         (i386 and x86-64 Windows Options): Likewise.
25707         (V850 Options): Add text missing from descriptions.
25708
25709 2011-03-22  Richard Henderson  <rth@redhat.com>
25710
25711         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
25712         (avr_incoming_return_addr_rtx): New.
25713         (emit_push_byte): New.
25714         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
25715         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
25716         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
25717         (emit_pop_byte): New.
25718         (expand_epilogue): Use it.  Pop frame pointer by bytes.
25719         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
25720         (INCOMING_RETURN_ADDR_RTX): New.
25721         (INCOMING_FRAME_SP_OFFSET): New.
25722         (ARG_POINTER_CFA_OFFSET): New.
25723         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
25724         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
25725         (pophi): Remove.
25726
25727         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
25728
25729 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25730
25731         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25732         (FUNCTION_ARG_ADVANCE): Likewise.
25733         * tm.texi.in: Change references to them to hook references.
25734         * tm.texi: Regenerate.
25735         * targhooks.c (default_function_arg): Eliminate check for target
25736         macro.
25737         (default_function_incoming_arg): Likewise.
25738         (default_function_arg_advance): Likewise.
25739         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25740         (function_arg_advance): Likewise.
25741         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25742
25743 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25744
25745         * tree.c (build_call_1): New function.
25746         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
25747
25748 2011-03-22  Richard Guenther  <rguenther@suse.de>
25749
25750         PR tree-optimization/48228
25751         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
25752         for single-arg PHIs.
25753
25754 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
25755
25756         PR rtl-optimization/48143
25757         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
25758         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
25759         sse2_cvtps2pd): Likewise.
25760
25761 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25762
25763         * recog.c (canonicalize_change_group): Use validate_unshare_change.
25764
25765 2011-03-22  Richard Guenther  <rguenther@suse.de>
25766
25767         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
25768         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
25769         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
25770         and REALIGN_LOAD_EXPR.
25771         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
25772         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
25773         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
25774         DOT_PROD_EXPR case ...
25775         (expand_expr_real_2): ... here.
25776         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
25777         and REALIGN_LOAD_EXPR.
25778         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
25779         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
25780         (vect_create_epilog_for_reduction): Likewise.
25781         (vectorizable_reduction): Likewise.
25782         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
25783         * tree-vect-stmts.c (vectorizable_load): Likewise.
25784
25785 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25786
25787         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
25788
25789 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25790
25791         * config/s390/s390.c (s390_delegitimize_address): Fix offset
25792         handling for PLTOFF/GOTOFF.
25793
25794 2011-03-22  Nick Clifton  <nickc@redhat.com>
25795
25796         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
25797         trailing backslash from the end of the macro definition.
25798
25799 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25800
25801         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
25802         and PLT unspecs.
25803
25804 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
25805
25806         * expr.h (prepare_operand): Move to...
25807         * optabs.h (prepare_operand): ...here and change the insn code
25808         parameter from "int" to "enum insn_code".
25809         (insn_operand_matches): Declare.
25810         * expr.c (init_expr_target): Use insn_operand_matches.
25811         (compress_float_constant): Likewise.
25812         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
25813         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
25814         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
25815         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
25816         Likewise.
25817         (gen_cond_trap): Likewise.
25818         (prepare_operand): Likewise.  Change icode to an insn_code.
25819         (insn_operand_matches): New function.
25820         * reload.c (find_reloads_address_1): Use insn_operand_matches.
25821         * reload1.c (gen_reload): Likewise.
25822         * targhooks.c (default_secondary_reload): Likewise.
25823
25824 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25825
25826         * config/alpha/alpha.md (unspec): New define_c_enum.
25827         (unspecv): Ditto.
25828
25829 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25830
25831         PR debug/48214
25832         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
25833         between a call and its CALL_ARG_LOCATION note.
25834
25835 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
25836
25837         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
25838
25839 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25840
25841         PR c/42544
25842         PR c/48197
25843         * c-common.c (shorten_compare): If primopN is first sign-extended
25844         to opN and then zero-extended to result type, set primopN to opN.
25845
25846 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
25847
25848         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
25849         for barrier handlers.
25850
25851 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25852
25853         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
25854         UNSPEC constants to be in the unspec enumeration, and redefine
25855         all UNSPECV constants to be in the unspecv enumeration, so that
25856         dumps print which unspec/unspec_volatile this is.
25857         * config/rs6000/vector.md (UNSPEC_*): Ditto.
25858         * config/rs6000/paired.md (UNSPEC_*): Ditto.
25859         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
25860         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
25861         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
25862
25863         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
25864         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
25865         UNSPECV_LWSYNC, since these are used as unspec_volatile.
25866         * config/rs6000/sync.md (isync, lwsync): Ditto.
25867
25868 2011-03-21  Richard Guenther  <rguenther@suse.de>
25869
25870         * params.def (lto-min-partition): Fix typo.
25871
25872 2011-03-21  Richard Guenther  <rguenther@suse.de>
25873
25874         PR c/47939
25875         * c-decl.c (grokdeclarator): Drop to the main variant only
25876         for array types.  Drop flag_gen_aux_info check.
25877
25878 2011-03-21  Richard Guenther  <rguenther@suse.de>
25879
25880         PR translation/47911
25881         * params.def (lto-partitions): Fix typo.
25882         (lto-min-partition): Fix wording.
25883
25884 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
25885
25886         * config/rs6000/t-freebsd: Remove duplication from file.
25887
25888 2011-03-21  Richard Guenther  <rguenther@suse.de>
25889
25890         PR middle-end/47661
25891         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
25892
25893 2011-03-21  Richard Guenther  <rguenther@suse.de>
25894
25895         PR lto/48210
25896         * params.def (lto-partitions): Require at least 1 partition.
25897
25898 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25899
25900         * gthr-solaris.h: Remove.
25901         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
25902         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
25903         (LIB_SPEC): Likewise.
25904         * config/sol2.opt (threads): Remove.
25905         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
25906         (sparc*-*-solaris2*): Likewise.
25907         * configure.ac (enable_threads): Enable solaris support.
25908         * configure: Regenerate.
25909         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
25910         * doc/install.texi (Configuration, --enable-threads=lib): Remove
25911         solaris.
25912
25913 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25914
25915         * config.gcc: Obsolete *-*-solaris2.8*.
25916         * doc/install.texi (Specific, *-*-solaris2*): Document it.
25917
25918 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25919
25920         PR bootstrap/48135
25921         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
25922         reference.  Solaris 8 perl works.
25923
25924 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25925
25926         PR bootstrap/48135
25927         * doc/install.texi (Prerequisites): Move jar etc. up.
25928         Explain support library version requirements.
25929
25930 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25931
25932         PR bootstrap/48135
25933         * doc/install.texi (Prerequisites): Move Perl to build
25934         requirements.  Always necessary on Solaris 2 with Sun ld.
25935
25936 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25937
25938         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
25939         binutils 2.21.
25940         (Specific, i?86-*-solaris2.[89]): Likewise.
25941         (Specific, i?86-*-solaris2.10): Likewise.
25942         (Specific, mips-sgi-irix6): Likewise.
25943         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
25944         Update for binutils 2.21.
25945
25946 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25947
25948         * configure.ac (gcc_cv_lto_plugin): Fix typo.
25949         Allow -fuse-linker-plugin for non-default plugin linker.
25950         * configure: Regenerate.
25951
25952 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
25953
25954         PR bootstrap/48167
25955         * gengtype.c (files_rules): Added rule for cp/parser.h.
25956
25957 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25958
25959         PR target/48213
25960         * config/s390/s390.c (s390_delegitimize_address): Don't call
25961         lowpart_subreg if orig_x has BLKmode.
25962
25963 2011-03-21  Kai Tietz  <ktietz@redhat.com>
25964
25965         PR target/12171
25966         * doc/plugins.texi: Adjust documentation for plugin register_callback.
25967         * tree.h (attribute_spec): Add new member affects_type_identity.
25968         * attribs.c (empty_attribute_table): Adjust attribute_spec
25969         initializers.
25970         * config/alpha/alpha.c: Likewise.
25971         * config/arc/arc.c: Likewise.
25972         * config/arm/arm.c: Likewise.
25973         * config/avr/avr.c: Likewise.
25974         * config/bfin/bfin.c: Likewise.
25975         * config/crx/crx.c: Likewise.
25976         * config/darwin.h: Likewise.
25977         * config/h8300/h8300.c: Likewise.
25978         * config/i386/cygming.h: Likewise.
25979         * config/i386/i386.c: Likewise.
25980         * config/ia64/ia64.c: Likewise.
25981         * config/m32c/m32c.c: Likewise.
25982         * config/m32r/m32r.c: Likewise.
25983         * config/m68hc11/m68hc11.c: Likewise.
25984         * config/m68k/m68k.c: Likewise.
25985         * config/mcore/mcore.c: Likewise.
25986         * config/mep/mep.c: Likewise.
25987         * config/microblaze/microblaze.c: Likewise.
25988         * config/mips/mips.c: Likewise.
25989         * config/rs6000/rs6000.c: Likewise.
25990         * config/rx/rx.c: Likewise.
25991         * config/sh/sh.c: Likewise.
25992         * config/sol2.h: Likewise.
25993         * config/sparc/sparc.c: Likewise.
25994         * config/spu/spu.c: Likewise.
25995         * config/stormy16/stormy16.c: Likewise.
25996         * config/v850/v850.c: Likewise.
25997
25998 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
25999
26000         * simplify-rtx.c (simplify_binary_operation_1): Handle
26001         (xor (and A B) C) case when B and C are both constants.
26002
26003 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
26004
26005         * tree-dfa.c (add_referenced_var): Fix typo in comment.
26006
26007 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26008
26009         PR bootstrap/48168
26010         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
26011
26012 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
26013
26014         PR rtl-optimization/48156
26015         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
26016         assume df and df_lr are not NULL.
26017
26018 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26019
26020         PR debug/48023
26021         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
26022         between a call and its CALL_ARG_LOCATION note.
26023
26024 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26025
26026         PR debug/48178
26027         * config/sh/sh.c (find_barrier): Don't emit a constant pool
26028         between a call and its corresponding CALL_ARG_LOCATION note.
26029
26030 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
26031
26032         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
26033         instead of loop. Use HARD_REGISTER_NUM_P predicate.
26034         * haifa-sched.c (setup_ref_regs): Ditto.
26035         * caller-save.c (add_used_regs_1): Ditto.
26036         * dse.c (look_for_hardregs): Ditto.
26037         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
26038         * sched-rgn.c (check_live_1): Ditto.
26039
26040 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26041
26042         * c-decl.c (diagnose_mismatched_decls): Give an error for
26043         redefining a typedef with variably modified type.
26044
26045 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
26046
26047         * c-decl.c (grokfield): Don't allow typedefs for structures or
26048         unions with no tag by default.
26049         * doc/extend.texi (Unnamed Fields): Update.
26050
26051 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
26052
26053         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
26054         Rewrite using indirect functions.
26055         (lwp_slwpcb): Ditto.
26056         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
26057         (avx_vinsertf128<mode>): Ditto.
26058
26059 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26060
26061         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
26062         unspecs.
26063
26064 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26065
26066         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
26067         splitting between a call and its corresponding CALL_ARG_LOCATION note.
26068
26069 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
26070
26071         PR rtl-optimization/48170
26072         * gcse.c (hoist_code): Remove bogus asserts.
26073
26074 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
26075
26076         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
26077         computation for prologue/epilogue.
26078
26079 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26080
26081         * Makefile.in (check-consistency): Remove.
26082
26083 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
26084
26085         PR debug/48176
26086         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
26087         arange_table_in_use is 0, but either text_section_used or
26088         cold_text_section_used is true.  Don't call it if
26089         !info_section_emitted.
26090
26091 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
26092
26093         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
26094         FUNCTION_VALUE_REGNO_P): Remove.
26095         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
26096         Remove.
26097         * config/avr/avr.c (avr_ret_register): Make static inline.
26098         (avr_function_value_regno_p): New function.
26099         (avr_libcall_value): Make static. Add 'func' argument.
26100         (avr_function_value): Make static. Rename 'func' argument to
26101         'fn_decl_or_type', forward it to avr_libcall_value. Call
26102         avr_ret_register function instead of RET_REGISTER macro.
26103         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26104
26105 2011-03-18  Jason Merrill  <jason@redhat.com>
26106
26107         PR c++/23372
26108         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
26109
26110 2011-03-18  Richard Guenther  <rguenther@suse.de>
26111
26112         * doc/install.texi (--enable-gold): Remove.
26113         (--with-plugin-ld): Document.
26114         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
26115
26116 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
26117
26118         PR middle-end/47790
26119         * expr.c (optimize_bitfield_assignment_op): Revamp to work
26120         again after expansion changes.
26121
26122 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
26123
26124         * combine.c (try_combine): Do simplification only call of
26125         subst() on i2 even when i1 is present. Update comments.
26126
26127 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
26128
26129         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
26130         and UNSPEC_PCREL_SYMOFF.
26131
26132 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26133
26134         * config/s390/s390.md: Use define_c_enum for the unspec constant
26135         definitions.
26136
26137 2011-03-18  Richard Henderson  <rth@redhat.com>
26138             Jakub Jelinek  <jakub@redhat.com>
26139
26140         PR bootstrap/48161
26141         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
26142         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
26143
26144 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
26145
26146         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26147         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
26148         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
26149         Change return type to bool.
26150         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26151
26152 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26153
26154         PR debug/48163
26155         * var-tracking.c (prepare_call_arguments): If CALL target
26156         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
26157         pc instead of looking it up using cselib_lookup and use
26158         Pmode for it if x has VOIDmode.
26159         * dwarf2out.c (gen_subprogram_die): If also both first and
26160         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
26161
26162         PR debug/48163
26163         * function.c (assign_parms): For data.passed_pointer parms
26164         use MEM of data.entry_parm instead of data.entry_parm itself
26165         as DECL_INCOMING_RTL.
26166         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
26167         also when passed and declared mode is the same, DECL_RTL
26168         is a MEM with pseudo as address and DECL_INCOMING_RTL is
26169         a MEM too.
26170
26171 2011-03-16  Jeff Law  <law@redhat.com>
26172
26173         PR rtl-optimization/37273
26174         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26175         handle them like argument loads from stack slots.  Do not double
26176         count memory for memory constants and argument loads from stack slots.
26177
26178 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26179
26180         PR debug/48160
26181         * var-tracking.c (prepare_call_arguments): Check SUBREG.
26182
26183 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26184
26185         PR target/48171
26186         * config/i386/i386.opt: Add Save to -mavx and -mfma.
26187
26188 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26189
26190         PR bootstrap/48153
26191         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
26192         if dwarf_strict.
26193         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
26194         Clear call_arg_locations and call_arg_loc_last always.
26195
26196         PR middle-end/48152
26197         * var-tracking.c (prepare_call_arguments): If argument needs to be
26198         passed by reference, adjust argtype and mode.
26199
26200 2011-03-17  Richard Guenther  <rguenther@suse.de>
26201
26202         PR middle-end/48134
26203         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
26204         a value make sure to fold the statement.
26205
26206 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
26207
26208         PR target/43872
26209         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
26210         return condition with !cfun->calls_alloca.
26211
26212 2011-03-17  Richard Guenther  <rguenther@suse.de>
26213
26214         PR bootstrap/48148
26215         * lto-cgraph.c (input_overwrite_node): Clear the abstract
26216         origin for decls in other ltrans units.
26217         (input_varpool_node): Likewise.
26218
26219 2011-03-17  Richard Guenther  <rguenther@suse.de>
26220
26221         PR middle-end/48165
26222         * tree-object-size.c (compute_object_offset): Properly return
26223         the offset operand of MEM_REFs as sizetype.
26224
26225 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26226
26227         PR rtl-optimization/48141
26228         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
26229         * dse.c: Include params.h.
26230         (active_local_stores_len): New variable.
26231         (add_wild_read, dse_step1): Clear it when setting active_local_stores
26232         to NULL.
26233         (record_store, check_mem_read_rtx): Decrease it when removing
26234         from the chain.
26235         (scan_insn): Likewise.  Increase it when adding to chain, if it
26236         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
26237         set active_local_stores to NULL before the addition.
26238         * Makefile.in (dse.o): Depend on $(PARAMS_H).
26239
26240         PR rtl-optimization/48141
26241         * dse.c (record_store): If no positions are needed in an insn
26242         that cannot be deleted, at least unchain it from active_local_stores.
26243
26244 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
26245
26246         PR debug/47510
26247         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
26248         (lookup_type_die_strip_naming_typedef): ... here.
26249         (get_context_die): Use it.
26250         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
26251         the anonymous struct named by the naming typedef.
26252
26253 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
26254
26255         PR target/48154
26256         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
26257         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26258
26259 2011-03-16  Jeff Law  <law@redhat.com>
26260
26261         * tree-vrp.c (identify_jump_threads): Slightly simplify type
26262         check for operands of conditional.  Allow type to be a pointer.
26263
26264 2011-03-16  Richard Guenther  <rguenther@suse.de>
26265
26266         PR tree-optimization/48149
26267         * fold-const.c (fold_binary_loc): Fold
26268         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
26269
26270 2011-03-16  Richard Guenther  <rguenther@suse.de>
26271
26272         PR tree-optimization/26134
26273         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
26274         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
26275         (non_rewritable_mem_ref_base): Handle complex type component
26276         accesses, constrain offsets for vector and complex extracts
26277         more properly.
26278
26279 2011-03-16  Richard Guenther  <rguenther@suse.de>
26280
26281         PR tree-optimization/48146
26282         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
26283         operands avoiding the need for renaming.
26284
26285 2011-03-16  Richard Guenther  <rguenther@suse.de>
26286
26287         * gimple-fold.c (maybe_fold_reference): Open-code relevant
26288         constant folding.  Move MEM_REF canonicalization first.
26289         Rely on fold_const_aggregate_ref for initializer folding.
26290         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
26291
26292 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26293
26294         PR middle-end/48136
26295         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
26296         arg0/arg1 or their arguments are always fold converted to matching
26297         types.
26298
26299         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
26300         to nargs.
26301
26302 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26303
26304         PR lto/46944
26305         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
26306         Handle in-tree gold.
26307         (ld_vers): Extract binutils version for gold.
26308         (gcc_cv_ld_hidden): Handle gold here.
26309         (gcc_cv_lto_plugin): Determine level of linker plugin support.
26310         * configure: Regenerate.
26311         * config.in: Regenerate.
26312         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
26313         -fuse-linker-plugin otherwise.
26314         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
26315         (LINK_COMMAND_SPEC): Use it.
26316         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
26317
26318 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26319
26320         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
26321         * calls.c: Remove debug.h include.
26322         (emit_call_1): Don't call virtual_call_token debug hook.
26323         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
26324         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
26325         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
26326         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
26327         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
26328         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
26329         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
26330         dwarf2out_virtual_call): Remove.
26331         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
26332         copy_call_info and virtual_call hooks.
26333         (dwarf2out_init): Don't initialize vcall_insn_table,
26334         debug_dcall_section and debug_vcall_section.
26335         (prune_unused_types): Don't mark nodes from dcall_table.
26336         (dwarf2out_finish): Don't output dcall or vcall tables.
26337         * final.c (final_scan_insn): Don't call direct_call or
26338         virtual_call debug hooks.
26339         * debug.h (struct gcc_debug_hooks): Remove direct_call,
26340         virtual_call_token, copy_call_info and virtual_call hooks.
26341         (debug_nothing_uid): Remove prototype.
26342         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
26343         copy_call_info and virtual_call hooks.
26344         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
26345         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
26346         * debug.c (do_nothing_debug_hooks): Likewise.
26347         (debug_nothing_uid): Remove.
26348         * doc/invoke.texi (-fenable-icf-debug): Remove.
26349         * common.opt (-fenable-icf-debug): Likewise.
26350
26351         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
26352         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
26353         call's MEM.  Handle functions returning aggregate through a hidden
26354         first pointer.  For virtual calls add clobbered pc to call arguments
26355         chain.
26356         * dwarf2out.c (gen_subprogram_die): Emit
26357         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
26358         can't be emitted.
26359
26360         PR debug/45882
26361         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
26362         * rtl.h (ENTRY_VALUE_EXP): Define.
26363         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
26364         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
26365         * print-rtl.c (print_rtx): Likewise.
26366         * gengtype.c (adjust_field_rtx_def): Likewise.
26367         * var-tracking.c (vt_add_function_parameter): Adjust
26368         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
26369         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
26370         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
26371         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
26372         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
26373
26374         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
26375         Call var_location debug hook even on CALL_INSNs.
26376         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
26377         * rtl.def (ENTRY_VALUE): New.
26378         * dwarf2out.c: Include cfglayout.h.
26379         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
26380         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
26381         (struct call_arg_loc_node): New type.
26382         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
26383         tail_call_site_count): New variables.
26384         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
26385         DW_TAG_GNU_call_site_parameter.
26386         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
26387         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
26388         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
26389         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
26390         and DW_AT_GNU_all_source_call_sites.
26391         (mem_loc_descriptor): Handle ENTRY_VALUE.
26392         (add_src_coords_attributes): Don't add enything if
26393         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
26394         (dwarf2out_abstract_function): Save and clear call_arg_location,
26395         call_site_count and tail_call_site_count around dwarf2out_decl call.
26396         (gen_call_site_die): New function.
26397         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
26398         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
26399         (dwarf2out_function_decl): Clear call_arg_locations,
26400         call_arg_loc_last, set call_site_count and tail_call_site_count
26401         to -1 and free block_map.
26402         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
26403         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
26404         followed by any real instructions.
26405         (dwarf2out_begin_function): Set call_site_count and
26406         tail_call_site_count to 0.
26407         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
26408         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
26409         attempt to force a DIE for it and worst case remove the attribute.
26410         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
26411         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
26412         the decl itself.
26413         * var-tracking.c: Include tm_p.h.
26414         (vt_stack_adjustments): For calls call note_register_arguments.
26415         (argument_reg_set): New variable.
26416         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
26417         ensure the VALUE is resolved.
26418         (call_arguments): New variable.
26419         (prepare_call_arguments): New function.
26420         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
26421         (struct expand_loc_callback_data): Add ignore_cur_loc field.
26422         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
26423         always use the best expression.
26424         (vt_expand_loc): Add ignore_cur_loc argument.
26425         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
26426         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
26427         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
26428         note for all calls.
26429         (vt_add_function_parameter): Use cselib_lookup_from_insn.
26430         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
26431         argument.  Don't call cselib_preserve_only_values and
26432         cselib_reset_table.
26433         (note_register_arguments): New function.
26434         (vt_initialize): Compute argument_reg_set.  Call
26435         vt_add_function_parameters before processing basic blocks instead of
26436         afterwards.  For calls call prepare_call_arguments before calling
26437         cselib_process_insn.
26438         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
26439         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
26440         (var-tracking.o): Depend on $(TM_P_H).
26441         * cfglayout.h (insn_scope): New prototype.
26442         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
26443         * cfglayout.c (insn_scope): No longer static.
26444         * insn-notes.def (CALL_ARG_LOCATION): New.
26445         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
26446         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
26447         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
26448         nothing for DECL_EXTERNAL BLOCK_VARS.
26449
26450 2011-03-16  Alan Modra  <amodra@gmail.com>
26451
26452         PR target/45844
26453         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
26454         create invalid offset address for vsx splat insn.
26455         * config/rs6000/predicates.md (splat_input_operand): New.
26456         * config/rs6000/vsx.md (vsx_splat_*): Use it.
26457
26458 2011-03-15  Xinliang David Li  <davidxl@google.com>
26459
26460         PR c/47837
26461         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
26462         (normalize_preds): New function.
26463         (is_use_properly_guarded): Normalize def predicates.
26464
26465 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26466
26467         PR target/46788
26468         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
26469         in the output template.
26470
26471 2011-03-15  Richard Guenther  <rguenther@suse.de>
26472
26473         PR middle-end/47650
26474         * tree-pretty-print.c (dump_function_declaration): Properly
26475         dump unprototyped and varargs function types.
26476
26477 2011-03-15  Richard Guenther  <rguenther@suse.de>
26478
26479         PR tree-optimization/13954
26480         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
26481         and friends.
26482
26483 2011-03-15  Richard Guenther  <rguenther@suse.de>
26484
26485         PR tree-optimization/48037
26486         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
26487         selects into BIT_FIELD_REFs.
26488         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
26489         vector select.
26490
26491 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
26492
26493         PR tree-optimization/48129
26494         * builtins.c (fold_builtin_snprintf): Convert to type of
26495         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
26496         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
26497
26498 2011-03-15  Richard Guenther  <rguenther@suse.de>
26499
26500         PR tree-optimization/41490
26501         * tree-ssa-dce.c (propagate_necessity): Handle returns without
26502         value but with VUSE.
26503         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
26504         return statements.
26505         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
26506         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
26507         * tree-tailcall.c (find_tail_calls): Ignore returns.
26508
26509 2011-03-15  Richard Guenther  <rguenther@suse.de>
26510
26511         PR middle-end/48031
26512         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
26513         or variable-indexed array accesses when in gimple form.
26514
26515 2011-03-15  Richard Guenther  <rguenther@suse.de>
26516
26517         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
26518
26519 2011-03-15  Alan Modra  <amodra@gmail.com>
26520
26521         PR target/48032
26522         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
26523         presume symbol_refs without a symbol_ref_decl are suitably
26524         aligned, nor other trees we may see here.  Handle anchor symbols.
26525         (legitimate_constant_pool_address_p): Comment.  Add mode param.
26526         Check cmodel=medium addresses.  Adjust all calls.
26527         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
26528         creating cmodel=medium optimized access to locals.
26529         * config/rs6000/constraints.md (R): Pass QImode to
26530         legitimate_constant_pool_address_p.
26531         * config/rs6000/predicates.md (input_operand): Pass mode to
26532         legitimate_constant_pool_address_p.
26533         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
26534         Update prototype.
26535
26536 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26537
26538         PR target/48053
26539         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
26540         64-bit constants being loaded into registers other than GPRs such
26541         as loading 0 into a VSX register.
26542
26543 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26544
26545         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
26546
26547 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26548
26549         PR middle-end/47917
26550         * builtins.c (fold_builtin_snprintf): New function.
26551         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
26552         (fold_builtin_4): Likewise.
26553
26554         PR middle-end/38878
26555         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
26556         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
26557         and C - X == X also strip nops from +/-/p+ operand.
26558         When optimizing -X == C, fold C to arg0's type.
26559
26560         PR debug/47946
26561         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
26562         emit it as add_AT_int instead of add_AT_unsigned.
26563
26564 2011-03-14  Tom Tromey  <tromey@redhat.com>
26565
26566         * unwind-dw2.c: Include sys/sdt.h if it exists.
26567         (_Unwind_DebugHook): Use STAP_PROBE2.
26568         * config.in, configure: Rebuild.
26569         * configure.ac: Check for sys/sdt.h.
26570
26571 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
26572
26573         * config/i386/i386.md (ROUND_FLOOR): New constant.
26574         (ROUND_CEIL): Ditto.
26575         (ROUND_TRUNC): Ditto.
26576         (ROUND_MXCSR): Ditto.
26577         (ROUND_NO_EXC): Ditto.
26578         (rint<mode>2): Use new defines instead of numerical constants.
26579         (floor<mode>2): Ditto.
26580         (ceil<mode>2): Ditto.
26581         (btrunc<mode>2): Ditto.
26582         * config/i386/i386-builtin-types.def: Define ROUND function type
26583         aliases.
26584         * config/i386/i386.c (enum ix86_builtins): Add
26585         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
26586         (struct builtin_description): Add
26587         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
26588         (ix86_expand_sse_round): New static function.
26589         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
26590         function types.
26591         (ix86_builtin_vectorized_function): Handle
26592         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26593
26594 2011-03-14  Tom Tromey  <tromey@redhat.com>
26595
26596         * c-parser.c (c_parser_asm_string_literal): Clear
26597         warn_overlength_strings.
26598
26599 2011-03-14  Tom Tromey  <tromey@redhat.com>
26600
26601         * c-parser.c (disable_extension_diagnostics): Save
26602         warn_overlength_strings.
26603         (restore_extension_diagnostics): Restore warn_overlength_strings.
26604
26605 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26606
26607         * BASE-VER: Change to 4.7.0.
26608
26609 2011-03-14  Richard Guenther  <rguenther@suse.de>
26610
26611         PR middle-end/48098
26612         * tree.c (build_vector_from_val): Adjust assert to requirements
26613         and reality.
26614
26615 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26616
26617         PR bootstrap/48102
26618         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
26619
26620 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
26621
26622         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
26623         terms of target_flags_explicit. Adjust copyright year.
26624
26625         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
26626         * config/rs6000/t-freebsd: New file. Add override for
26627         LIB2FUNCS_EXTRA.
26628
26629 2011-03-13  Chris Demetriou  <cgd@google.com>
26630
26631         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
26632         (-fno-diagnostics-show-option): this, to reflect current default.
26633         (-Werror=): Update text about -fno-diagnostics-show-option.
26634
26635 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
26636
26637         PR target/48053
26638         * config/rs6000/predicates.md (easy_vector_constant_add_self,
26639         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
26640         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
26641         mode is not V2DImode or V2DFmode.
26642         (vspltis_constant): Do not handle V2DImode and V2DFmode.
26643         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
26644         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
26645         registers to 0.
26646         (movdi_internal64): Likewise.
26647
26648 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
26649
26650         PR tree-optimization/47127
26651         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
26652         parameter.
26653         (set_cloog_options): Same.
26654         (scop_to_clast): Same.
26655         (print_clast_stmt): Do not call cloog_state_malloc and
26656         cloog_state_free.
26657         (print_generated_program): Same.
26658         (gloog): Same.
26659         * graphite-clast-to-gimple.h (cloog_state): Declared.
26660         (scop_to_clast): Adjust declaration.
26661         * graphite.c (cloog_state): Defined here.
26662         (graphite_initialize): Call cloog_state_malloc.
26663         (graphite_finalize): Call cloog_state_free.
26664
26665 2011-03-11  Jason Merrill  <jason@redhat.com>
26666
26667         * attribs.c (lookup_attribute_spec): Take const_tree.
26668         * tree.h: Adjust.
26669
26670 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
26671
26672         * config/sparc/sparc.c (sparc_option_override): Use
26673         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
26674
26675 2011-03-11  Richard Guenther  <rguenther@suse.de>
26676
26677         PR tree-optimization/48067
26678         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
26679         multiplication result will be only used once on the target
26680         stmt.
26681
26682 2011-03-11  Richard Guenther  <rguenther@suse.de>
26683
26684         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
26685
26686 2011-03-11  Richard Guenther  <rguenther@suse.de>
26687
26688         PR lto/48073
26689         * tree.c (find_decls_types_r): Do not walk types only reachable
26690         from IDENTIFIER_NODEs.
26691
26692 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26693
26694         PR middle-end/48044
26695         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
26696         all vnode->force_output nodes as needed.
26697
26698 2011-03-11  Jason Merrill  <jason@redhat.com>
26699
26700         PR c++/48069
26701         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
26702         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
26703
26704 2011-03-11  Martin Jambor  <mjambor@suse.cz>
26705
26706         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
26707         cgraph_node.
26708
26709 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26710
26711         PR tree-optimization/48063
26712         * ipa-inline.c (cgraph_decide_inlining): Don't try to
26713         inline functions called once if !tree_can_inline_p (node->callers).
26714
26715 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
26716
26717         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
26718         extra_objs.
26719         * config/score/score3.c: Delete.
26720         * config/score/score3.h: Delete.
26721         * config/score/mul-div.S: Delete.
26722         * config/score/sfp-machine.h: Add new file.
26723         * config/score/constraints.md: Add new file.
26724         * config/score/t-score-softfp: Add new file.
26725         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
26726         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
26727         (score7_extra_constraint): Delete.
26728         (score7_option_override): Remove unused code.
26729         * config/score/score.c: Remove score3 and score5 define and code.
26730         * config/score/score.h: Remove score3 and score5 define and code.
26731         * config/score/score.md: Remove score3 template and unusual insn.
26732         * config/score/score.opt: Remove score3 and score5 options.
26733
26734 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26735
26736         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
26737         when _HPUX_SOURCE is defined.
26738         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
26739
26740 2011-03-10  Jason Merrill  <jason@redhat.com>
26741
26742         PR c++/48029
26743         * stor-layout.c (layout_type): Don't set structural equality
26744         on arrays of incomplete type.
26745         * tree.c (type_hash_eq): Handle comparing them properly.
26746
26747 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
26748
26749         PR debug/48043
26750         * config/s390/s390.c (s390_delegitimize_address): Make sure the
26751         result mode matches original rtl mode.
26752
26753 2011-03-10  Nick Clifton  <nickc@redhat.com>
26754
26755         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
26756         (andsi3, andsi3_flags): Fix timings for three operand alternative.
26757
26758 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
26759
26760         PR rtl-optimization/47866
26761         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
26762         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
26763         if target wasn't scalar.
26764         * function.c (assign_stack_temp_for_type): Assert that neither
26765         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
26766         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
26767         macro.
26768         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
26769
26770 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26771
26772         * config/s390/s390-protos.h (s390_label_align): New prototype.
26773         * config/s390/s390.c (s390_label_align): New function.
26774         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
26775
26776 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
26777
26778         PR target/47755
26779         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
26780         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
26781         (output_vec_const_move): Ditto.
26782
26783 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
26784
26785         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
26786         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
26787         * config/mips/mips.c (mips_preferred_reload_class): Make static.
26788         Change 'rclass' argument and result type to reg_class_t.
26789         (TARGET_PREFERRED_RELOAD_CLASS): Define.
26790
26791 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
26792
26793         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26794         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
26795         (TARGET_MEMORY_MOVE_COST): Define.
26796         (avr_register_move_cost, avr_memory_move_cost): New Functions.
26797
26798 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
26799
26800         PR debug/47881
26801         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
26802         removed anything.
26803
26804         PR tree-optimization/48022
26805         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
26806         for EQ/NE_EXPR.
26807
26808 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
26809
26810         PR debug/47991
26811         * var-tracking.c (find_use_val): Return NULL for
26812         cui->sets && cui->store_p BLKmode MEMs.
26813
26814 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
26815
26816         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
26817         Remove.
26818         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
26819         xstormy16_print_operand_address): Remove.
26820         * config/stormy16/stormy16.c (xstormy16_print_operand,
26821         xstormy16_print_operand_address): Make static.
26822         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26823
26824 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
26825
26826         PR target/47862
26827         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
26828         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
26829         before definition.
26830
26831 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
26832
26833         PR bootstrap/48000
26834         * cfgloopmanip.c (fix_bb_placements): Return immediately
26835         if FROM is BASE_LOOP's header.
26836
26837 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
26838
26839         * gimplify.c (gimplify_function_tree): Fix building calls
26840         to __builtin_return_address.
26841
26842 2011-03-07  Alan Modra  <amodra@gmail.com>
26843
26844         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
26845         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
26846         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
26847         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
26848         return_mode args.
26849         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
26850         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
26851         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
26852         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
26853         * config/rs6000/rs6000.c
26854         (rs6000_elf_end_indicate_exec_stack): Rename to..
26855         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
26856         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
26857         (rs6000_file_start): ..here.
26858         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
26859         file scope variables.
26860         (call_ABI_of_interest): New function.
26861         (init_cumulative_args): Set above vars when function return value
26862         is a float, vector, or small struct.
26863         (rs6000_function_arg_advance_1): Likewise for function args.
26864         (rs6000_va_start): Set rs6000_passes_float if variable arg function
26865         references float args.
26866
26867 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
26868
26869         * doc/cfg.texi: Remove "See" before @ref.
26870         * doc/invoke.texi: Likewise.
26871
26872 2011-03-05  Jason Merrill  <jason@redhat.com>
26873
26874         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
26875
26876 2011-03-05  Anthony Green  <green@moxielogic.com>
26877
26878         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
26879
26880 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
26881
26882         PR rtl-optimization/47899
26883         * cfgloopmanip.c (fix_bb_placements): Fix first argument
26884         to flow_loop_nested_p when moving the loop upward.
26885
26886 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
26887
26888         PR target/47719
26889         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
26890
26891 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
26892
26893         PR tree-optimization/47967
26894         * ipa-cp.c (build_const_val): Return NULL instead of creating
26895         VIEW_CONVERT_EXPR for mismatching sizes.
26896         (ipcp_create_replace_map): Return NULL if build_const_val failed.
26897         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
26898         give up on versioning.
26899
26900 2011-03-05  Alan Modra  <amodra@gmail.com>
26901
26902         PR target/47986
26903         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26904         full cmodel medium/large lo_sum + high addresses.
26905
26906 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26907
26908         * config/s390/s390.c (s390_decompose_address): Reject non-literal
26909         pool references in UNSPEC_LTREL_OFFSET.
26910
26911 2011-03-04  Jan Hubicka  <jh@suse.cz>
26912
26913         PR lto/47497
26914         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
26915         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
26916         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
26917         Add node pointers.
26918         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
26919         cgraph_add_thunk): Add node pointers.
26920         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
26921         associated to right node.
26922         (input_node): Update use of cgraph_same_body_alias
26923         and cgraph_add_thunk.
26924
26925 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26926
26927         * config/i386/i386.opt (mprefer-avx128): New flag.
26928         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
26929         modes when the flag -mprefer-avx128 is on.
26930
26931 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
26932
26933         * dwarf2out.c (compare_loc_operands): Fix address handling.
26934
26935 2011-03-04  Alan Modra  <amodra@gmail.com>
26936
26937         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
26938
26939 2011-03-04  Richard Guenther  <rguenther@suse.de>
26940
26941         PR middle-end/47968
26942         * expmed.c (extract_bit_field_1): Prefer vector modes that
26943         vec_extract patterns can handle.
26944
26945 2011-03-04  Richard Guenther  <rguenther@suse.de>
26946
26947         PR middle-end/47975
26948         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
26949
26950 2011-03-04  Richard Henderson  <rth@redhat.com>
26951
26952         * explow.c (emit_stack_save): Remove 'after' parameter.
26953         (emit_stack_restore): Likewise.
26954         * expr.h: Update to match.
26955         * builtins.c, calls.c, stmt.c: Likewise.
26956         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
26957         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
26958         * function.c (expand_function_end): Insert the emit_stack_save
26959         sequence before parm_birth_insn instead of after.
26960
26961 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
26962
26963         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
26964         (ssse3_pmaddubsw128): Ditto.
26965         (ssse3_pmaddubsw): Ditto.
26966
26967 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
26968
26969         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
26970
26971 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
26972
26973         PR c/47963
26974         * gimplify.c (omp_add_variable): Only call omp_notice_variable
26975         on TYPE_SIZE_UNIT if it is a DECL.
26976
26977         PR debug/47283
26978         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
26979         first operand is not is_gimple_mem_ref_addr, try to fold it.
26980         If the operand still isn't is_gimple_mem_ref_addr, clear
26981         MEM_EXPR on op0.
26982
26983 2011-03-03  Richard Guenther  <rguenther@suse.de>
26984
26985         PR middle-end/47283
26986         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
26987         match comment.
26988         (refs_may_alias_p_1): For release branches return true if
26989         we are confused by our input.
26990
26991 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26992
26993         * config/s390/s390.c (s390_function_value): Rename to ...
26994         (s390_function_and_libcall_value): ... this.
26995         (s390_function_value): New function.
26996         (s390_libcall_value): New function.
26997         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
26998         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
26999         target macro definitions.
27000         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
27001
27002 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
27003
27004         * config/i386/freebsd64.h (CC1_SPEC): Define.
27005         * config/i386/linux64.h (CC1_SPEC): Define.
27006         * config/i386/x86-64.h (CC1_SPEC): Don't define.
27007
27008 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
27009
27010         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27011         Remove.
27012         * config/stormy16/stormy16.c: Include reload.h.
27013         (xstormy16_memory_move_cost): New function.
27014         (TARGET_MEMORY_MOVE_COST): Define.
27015
27016 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
27017
27018         PR rtl-optimization/47925
27019         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
27020         with side effects.  Remove the more-specific check for volatile asms.
27021
27022 2011-03-02  Alan Modra  <amodra@gmail.com>
27023
27024         PR target/47935
27025         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
27026         toc relative addresses for valid offsets.
27027
27028 2011-03-01  Richard Guenther  <rguenther@suse.de>
27029
27030         PR tree-optimization/47890
27031         * tree-vect-loop.c (get_initial_def_for_induction): Set
27032         related stmt properly.
27033
27034 2011-03-01  Richard Guenther  <rguenther@suse.de>
27035
27036         PR lto/47924
27037         * lto-streamer.c (lto_record_common_node): Also register
27038         the canonical type.
27039
27040 2011-03-01  Richard Guenther  <rguenther@suse.de>
27041
27042         PR lto/46911
27043         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27044         Do not stream DECL_ABSTRACT_ORIGIN.
27045         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27046         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27047         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27048         Do not stream DECL_ABSTRACT_ORIGIN.
27049         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27050         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27051
27052 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
27053
27054         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
27055         FUNCTION_VALUE_REGNO_P): Remove.
27056         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
27057         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
27058         Add 'outgoing' argument.
27059         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
27060         function.
27061         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27062         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27063
27064 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
27065
27066         PR debug/28047
27067         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
27068         (lookup_filename): Likewise.
27069         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
27070
27071 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
27072             Jakub Jelinek  <jakub@redhat.com>
27073
27074         PR middle-end/47893
27075         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
27076         (assign_stack_local_1): Change last argument type to int.
27077         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
27078         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
27079         don't record padding space into frame_space_list nor use those areas.
27080         (assign_stack_local): Adjust caller.
27081         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
27082         of assign_stack_local, pass 0 as last argument.
27083         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
27084         callers.
27085
27086 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
27087
27088         PR debug/47283
27089         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
27090         Use target address_mode and pointer_mode hooks instead of hardcoded
27091         Pmode and ptr_mode.  Handle some simple cases of extending if
27092         POINTERS_EXTEND_UNSIGNED < 0.
27093         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
27094         Call convert_debug_memory_address.
27095         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
27096         convert_debug_memory_address.
27097
27098         PR middle-end/46790
27099         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
27100         * configure: Regenerated.
27101         * config.in: Regenerated.
27102         * varasm.c (default_function_section): Return NULL
27103         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
27104
27105 2011-02-28  Martin Jambor  <mjambor@suse.cz>
27106
27107         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
27108         the description to match the printed values.
27109
27110 2011-02-28  Richard Guenther  <rguenther@suse.de>
27111
27112         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
27113         of the copied scope tree.
27114
27115 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27116
27117         * doc/extend.texi (Function Attributes): Avoid deeply (and
27118         wrongly) nested tables.
27119
27120 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
27121
27122         PR middle-end/47903
27123         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
27124         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
27125         r isn't op0 nor op1.
27126
27127 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27128
27129         * config/avr/avr.md: Remove magic comment for emacs.
27130
27131 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27132
27133         PR target/45261
27134         * config/avr/avr.c (avr_option_override): Use error on bad options.
27135         (avr_help): New function.
27136         (TARGET_HELP): Define.
27137
27138 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
27139
27140         PR target/42240
27141         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
27142         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
27143
27144 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
27145
27146         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
27147         (ARM Options): Ditto.
27148         (i386 and x86-64 Options): Ditto.
27149         (RX Options): Ditto.
27150         (SPARC Options): Ditto.
27151
27152 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
27153
27154         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
27155         FreeBSD 6 and later.  Generally use cpu generic.
27156
27157 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
27158
27159         * doc/cpp.texi: Update copyright years.
27160
27161 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
27162
27163         PR target/46898
27164         * config/lm32/lm32.md (ashrsi3): Added needed variable.
27165
27166 2011-02-25  Jon Beniston  <jon@beniston.com>
27167
27168         PR target/46898
27169         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
27170         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
27171         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
27172         (lm32_block_move_inline): Add type cast to remove warning.
27173         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
27174         (gen_int_relational): Move declarations to start of function.
27175
27176 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
27177
27178         PR tree-optimization/45470
27179         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
27180         can throw internally only.
27181         * tree-vect-stmts.c (vectorizable_call): Likewise.
27182
27183 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
27184
27185         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
27186         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
27187         * config/stormy16/stormy16-protos.h
27188         (xstormy16_preferred_reload_class): Remove.
27189         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
27190         static. Change 'rclass' argument and return type to reg_class_t.
27191         (TARGET_PREFERRED_RELOAD_CLASS,
27192         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
27193
27194 2011-02-24  Richard Guenther  <rguenther@suse.de>
27195
27196         * lto-streamer-in.c (input_bb): Do not find referenced vars
27197         in debug statements.
27198
27199 2011-02-23  Jason Merrill  <jason@redhat.com>
27200
27201         * common.opt (fabi-version): Document v5 and v6.
27202
27203 2011-02-23  Richard Guenther  <rguenther@suse.de>
27204
27205         PR tree-optimization/47849
27206         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
27207
27208 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27209
27210         * opts-common.c (decode_cmdline_option): Print empty string
27211         argument as "" in decoded->orig_option_with_args_text.
27212         * gcc.c (execute): Print empty string argument as ""
27213         in the verbose output.
27214         (do_spec_1): Keep empty string argument.
27215
27216 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
27217
27218         * config.gcc: Declare score-* and crx-* obsolete.
27219
27220 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27221
27222         PR rtl-optimization/47763
27223         * web.c (web_main): Ignore naked clobber when replacing register.
27224
27225 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
27226
27227         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
27228         Remove.
27229
27230 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27231
27232         PR doc/47848
27233         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
27234
27235 2011-02-22  Mike Stump  <mikestump@comcast.net>
27236
27237         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
27238         assembler.
27239         * configure: Regenerate.
27240
27241 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
27242
27243         PR rtl-optimization/46002
27244         * ira-color.c (update_copy_costs): Change class intersection
27245         test to reg_class_contents[] test of 'hard_regno'.
27246
27247 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
27248
27249         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
27250         than Driver option.
27251         * config/hpux11.opt (mt): Likewise.
27252         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
27253         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
27254         * config/vax/elf.opt (mno-asm-pic): Likewise.
27255         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
27256
27257 2011-02-21  Mike Stump  <mikestump@comcast.net>
27258
27259         PR target/47822
27260         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
27261         tree so we can get save the type.
27262         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
27263         for CFString instead of trying to use past the end of the builtins.
27264         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
27265         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
27266         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
27267         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
27268         Rename to darwin_builtin_cfstring.
27269         (darwin_init_cfstring_builtins): Return the built type.
27270
27271 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
27272
27273         PR target/47840
27274         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
27275         (_mm256_insert_epi64): Use _mm_insert_epi64.
27276
27277 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
27278
27279         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27280         * config/stormy16/stormy16-protos.h
27281         (xstormy16_mode_dependent_address_p): Remove.
27282         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
27283         Make static. Change return type to bool. Change argument type to
27284         const_rtx. Remove dead code.
27285         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27286
27287 2011-02-21  Richard Guenther  <rguenther@suse.de>
27288
27289         PR lto/47820
27290         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27291         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27292         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
27293         TUs context.
27294         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27295         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27296
27297 2011-02-20  Richard Guenther  <rguenther@suse.de>
27298
27299         PR lto/47822
27300         * tree.c (free_lang_data_in_decl): Clean builtins from
27301         the TU decl BLOCK_VARS.
27302
27303 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
27304
27305         PR debug/47620
27306         PR debug/47630
27307         * haifa-sched.c (fix_tick_ready): Skip tick computation
27308         for debug insns.
27309
27310 2011-02-19  Richard Guenther  <rguenther@suse.de>
27311
27312         PR lto/47647
27313         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
27314         Remove lazy BLOCK_VARS streaming.
27315         (lto_input_ts_block_tree_pointers): Likewise.
27316         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
27317
27318 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27319
27320         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
27321
27322 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27323
27324         * config/i386/biarch32.h, config/i386/mach.h,
27325         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
27326
27327 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
27328
27329         PR target/47800
27330         * config/i386/i386.md (peephole2 for shift and plus): Use
27331         operands[1] original mode in the first insn.
27332
27333 2011-02-18  Mike Stump  <mikestump@comcast.net>
27334
27335         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
27336
27337 2011-02-18  Jan Hubicka  <jh@suse.cz>
27338
27339         PR middle-end/47788
27340         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
27341         to zero when the function is not inlinable at all.
27342
27343 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27344
27345         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
27346         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
27347         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
27348         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
27349         * config/pa/t-pa64: Likewise.
27350         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
27351
27352 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27353
27354         PR driver/47787
27355         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
27356
27357 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27358
27359         PR target/47792
27360         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
27361
27362 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
27363
27364         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
27365         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
27366         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
27367         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
27368         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
27369         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
27370         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
27371         m32r_load_postinc_p, m32r_store_preinc_predec_p,
27372         m32r_legitimate_address_p): New functions.
27373         * config/m32r/constraints.md (constraint "S"): Don't use
27374         STORE_PREINC_PREDEC_P.
27375         (constraint "U"): Don't use LOAD_POSTINC_P.
27376
27377 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
27378
27379         PR rtl-optimization/46178
27380         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
27381         compute ira_hard_regno_cover_class[].
27382
27383 2011-02-18  Richard Guenther  <rguenther@suse.de>
27384
27385         PR lto/47798
27386         * lto-streamer.h (lto_global_var_decls): Declare.
27387         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
27388         statics for global var processing.
27389
27390 2011-02-18  Richard Guenther  <rguenther@suse.de>
27391
27392         PR tree-optimization/47737
27393         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
27394         edge dominance check.
27395
27396 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27397
27398         PR debug/47780
27399         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
27400         avoid invalid rtx sharing.
27401
27402 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
27403
27404         * doc/cpp.texi (Obsolete Features): Add background on the
27405         origin of assertions.
27406
27407 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
27408
27409         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
27410         objc_abi == 2.
27411         * config/darwin.c (output_objc_section_asm_op): Added support for
27412         ABI v1 and v2.
27413         (is_objc_metadata): New.
27414         (darwin_objc2_section): New.
27415         (darwin_objc1_section): New.
27416         (machopic_select_section): Added support for ABI v1 and v2.
27417         (darwin_emit_objc_zeroed): New.
27418         (darwin_output_aligned_bss): Detect objc metadata and treat it
27419         appropriately.
27420         (darwin_asm_output_aligned_decl_common): Same.
27421         (darwin_asm_output_aligned_decl_local): Same.
27422         * config/darwin-sections.def: Updated for ABI v1 and v2.
27423         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
27424         compiling Objective-C code for the NeXT runtime, default to using
27425         ABI version 0 for 32-bit, and version 2 for 64-bit.
27426
27427 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27428
27429         * common.opt (optimize_fast): New Variable.
27430         * opts.c (default_options_optimization): Use opts->x_optimize_fast
27431         instead of local variable ofast.
27432
27433 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
27434
27435         * doc/invoke.texi (fobjc-abi-version): Documented.
27436         (fobjc-nilcheck): Documented.
27437         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
27438         version.
27439
27440 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27441
27442         PR driver/47390
27443         * common.opt (export-dynamic): New Driver option.
27444         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
27445
27446 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27447
27448         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
27449
27450 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
27451             Jan Hubicka  <jh@suse.cz>
27452
27453         PR debug/47106
27454         PR debug/47402
27455         * cfgexpand.c (account_used_vars_for_block): Remove.
27456         (estimated_stack_frame_size): Use referenced vars.
27457         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
27458         that were referenced in the original function.  Test src_fn
27459         rather than cfun.  Drop redundant get_var_ann.
27460         (setup_one_parameter): Drop redundant get_var_ann.
27461         (declare_return_variable): Likewise.
27462         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
27463         (copy_arguments_for_versioning): Drop redundant get_var_ann.
27464         * ipa-inline.c (compute_inline_parameters): Do not compute
27465         disregard_inline_limits here.
27466         (compute_inlinable_for_current, pass_inlinable): New.
27467         (pass_inline_parameters): Require PROP_referenced_vars.
27468         * cgraphunit.c (cgraph_process_new_functions): Don't run
27469         compute_inline_parameters explicitly unless function is in SSA form.
27470         (cgraph_analyze_function): Set .disregard_inline_limits.
27471         * tree-sra.c (convert_callers): Compute inliner parameters
27472         only for functions already in SSA form.
27473
27474 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27475
27476         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
27477         -mlittle-endian-data.
27478
27479 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27480
27481         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
27482         -mno-fpu, not -fpu and -no-fpu.
27483         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
27484         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
27485
27486 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
27487
27488         PR target/43653
27489         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
27490         input reload with PLUS RTX.
27491
27492 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27493
27494         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
27495         of InverseVar(MDMX).
27496
27497 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27498
27499         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
27500         --m4-340.
27501
27502 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27503
27504         * config/mn10300/mn10300.opt (mno-crt0): New.
27505
27506 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27507
27508         * config/m68k/uclinux.opt (static-libc): New Driver option.
27509
27510 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27511
27512         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
27513
27514 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27515
27516         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
27517         %{muser-extend-enabled}.
27518
27519 2011-02-16  Richard Guenther  <rguenther@suse.de>
27520
27521         PR tree-optimization/47738
27522         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
27523         the TODO from tree_predictive_commoning.
27524
27525 2011-02-15  Jeff Law  <law@redhat.com>
27526
27527         Revert
27528         2011-01-25  Jeff Law  <law@redhat.com>
27529
27530         PR rtl-optimization/37273
27531         * ira-costs.c (scan_one_insn): Detect constants living in memory and
27532         handle them like argument loads from stack slots.  Do not double
27533         count memory for memory constants and argument loads from stack slots.
27534
27535 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27536
27537         PR target/47755
27538         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
27539         mode for vector constants.  Remove code that checks for TImode.
27540
27541 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27542
27543         PR debug/47106
27544         PR debug/47402
27545         * cgraph.h (compute_inline_parameters): Return void.
27546         * ipa-inline.c (compute_inline_parameters): Adjust.
27547
27548 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27549
27550         PR debug/47106
27551         PR debug/47402
27552         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
27553         rather than decl.
27554         * cfgexpand.c (estimated_stack_frame_size): Likewise.
27555         * ipa-inline.c (compute_inline_parameters): Adjust.
27556
27557 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27558
27559         PR debug/47106
27560         PR debug/47402
27561         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
27562         Adjust all users.  Pass FN to...
27563         * tree-flow-inline.h (first_referenced_var): ... this.  Add
27564         fn argument.
27565         * ipa-struct-reorg.c: Adjust.
27566         * tree-dfa.c: Adjust.
27567         * tree-into-ssa.c: Adjust.
27568         * tree-sra.c: Adjust.
27569         * tree-ssa-alias.c: Adjust.
27570         * tree-ssa-live.c: Adjust.
27571         * tree-ssa.c: Adjust.
27572         * tree-ssanames.c: Adjust.
27573         * tree-tailcall.c: Adjust.
27574
27575 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27576
27577         PR debug/47106
27578         PR debug/47402
27579         * tree-flow.h (referenced_var_lookup): Add fn parameter.
27580         Adjust all callers.
27581         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
27582         * tree-flow-inline.h: Adjust.
27583         * gimple-pretty-print.c: Adjust.
27584         * tree-into-ssa.c: Adjust.
27585         * tree-ssa.c: Adjust.
27586         * cfgexpand.c: Adjust.
27587
27588 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27589
27590         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
27591         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27592         (EXTRA_CONSTRAINT): Delete.
27593         * config/iq2000/constraints.md: New file.
27594         * config/iq2000/iq2000.md: Include it.
27595         (define_insn ""): Delete.
27596         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
27597         unsupported constraint letters from patterns.
27598         (call_value, call_value_internal1): Likewise.
27599         (call_value_multiple_internal1): Likewise.
27600
27601 2011-02-15  Nick Clifton  <nickc@redhat.com>
27602
27603         * config/mn10300/mn10300.c: Include tm-constrs.h.
27604         (struct liw_data): New data structure describing an LIW candidate
27605         instruction.
27606         (extract_bundle): Use struct liw_data.  Allow small integer
27607         operands for some instructions.
27608         (check_liw_constraints): Use struct liw_data.  Remove swapped
27609         parameter.  Add comments describing the checks.  Fix bug when
27610         assigning the source of liw1 to the source of liw2.
27611         (liw_candidate): Delete.  Code moved into extract_bundle.
27612         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
27613         before swapping.
27614         * config/mn10300/predicates.md (liw_operand): New predicate.
27615         Allows registers and small integer constants.
27616         * config/mn10300/constraints.md (O): New constraint.  Accetps
27617         integers in the range -8 to +7 inclusive.
27618         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
27619         for moving a small integer into a register.  Give this alternative
27620         LIW attributes.
27621         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
27622         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
27623         using the J,K,L and M constraints,
27624         (liw): Remove SI mode on second operands to allow for HI and QI
27625         mode values.
27626         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
27627         instruction.
27628
27629 2011-02-15  Richard Guenther  <rguenther@suse.de>
27630
27631         PR tree-optimization/47743
27632         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
27633         for a non-type-compatible VN lookup bail out.
27634
27635 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27636
27637         * config/fr30/constraints.md: New file.
27638         * config/fr30/fr30.md: Include it.
27639         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
27640         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27641         (EXTRA_CONSTRAINT): Delete.
27642
27643 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27644
27645         * config/frv/constraints.md: New file.
27646         * config/frv/predicates.md: Include it.
27647         * config/frv/frv.c (reg_class_from_letter): Delete.
27648         (frv_option_override): Don't initialize it.
27649         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
27650         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
27651         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
27652         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27653         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
27654         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27655         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
27656         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
27657         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
27658         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
27659         (REG_CLASS_FROM_CONSTRAINT): Delete.
27660
27661 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
27662
27663         PR middle-end/47581
27664         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
27665         if frame size is 0 in a leaf function.
27666
27667 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27668
27669         PR pch/14940
27670         * config/alpha/host-osf.c: New file.
27671         * config/alpha/x-osf: New file.
27672         * config.host (alpha*-dec-osf*): Use it.
27673
27674 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27675
27676         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27677         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
27678         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
27679         (rx_mode_dependent_address_p): ...this. Make static. Change argument
27680         type to const_rtx.
27681         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27682
27683 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27684
27685         * config/stormy16/constraints.md: New file.
27686         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
27687         Use satisfies_constraint_Q and satisfies_constraint_R.
27688         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
27689         Delete.
27690         (xstormy16_legitiamte_address_p): Declare.
27691         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
27692         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27693         (EXTRA_CONSTRAINT): Delete.
27694         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
27695         Un-staticize.
27696         (xstormy16_extra_constraint_p): Delete.
27697
27698 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27699
27700         PR tree-optimization/46494
27701         * loop-unroll.c (split_edge_and_insert): Adjust comment.
27702         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
27703         (pass_rtl_loop_done): Add TODO_verify_flow.
27704         * fwprop.c (pass_rtl_fwprop): Likewise.
27705         * modulo-sched.c (pass_sms): Likewise.
27706         * tree-ssa-dom.c (pass_dominator): Likewise.
27707         * tree-ssa-loop-ch.c (pass_ch): Likewise.
27708         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
27709         (pass_tree_loop_done): Likewise.
27710         * tree-ssa-pre.c (execute_pre): Likewise.
27711         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
27712         * tree-ssa-sink.c (pass_sink_code): Likewise.
27713         * tree-vrp.c (pass_vrp): Likewise.
27714
27715 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27716
27717         * config/v850/constraints.md: New file.
27718         * config/v850/v850.md: Include it.
27719         * config/v850/predicates.md (reg_or_0_operand): Use
27720         satisfies_constraint_G.
27721         (special_symbolref_operand): Use satisfies_constraint_K.
27722         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
27723         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
27724         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
27725         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27726         (EXTRA_CONSTRAINT): Delete.
27727         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
27728         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
27729         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
27730
27731 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27732
27733         PR target/47696
27734         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
27735         description.
27736
27737 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27738
27739         * config/mcore/constraints.md: New file.
27740         * config/mcore/mcore.md: Include it.
27741         * config/mcore/mcore.c (reg_class_from_letter): Delete.
27742         * config/mcore/mcore.h (reg_class_from_letter): Delete.
27743         (REG_CLASS_FROM_LETTER): Delete.
27744         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
27745         insn_const_int_ok_for_constraint.
27746         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
27747         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
27748         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27749         (EXTRA_CONSTRAINT): Delete.
27750
27751 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27752
27753         PR ada/41929
27754         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
27755         (IS_SIGHANDLER): Define.
27756         (sparc64_is_sighandler): New function, split off from
27757         sparc64_fallback_frame_state.
27758         (sparc_is_sighandler): New function, split off from
27759         sparc_fallback_frame_state.
27760         (sparc64_fallback_frame_state): Merge with ...
27761         (sparc_fallback_frame_state): ... this into ...
27762         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
27763         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
27764         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
27765         stack instead of hardcoded offsets.
27766
27767 2011-02-14  Andriy Gapon  <avg@freebsd.org>
27768
27769         PR target/45808
27770         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
27771
27772 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27773
27774         * configure: Regenerate.
27775
27776 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
27777
27778         PR driver/45731
27779         * gcc.c (asm_options): Correct spec matching --target-help.
27780
27781 2011-02-12  Martin Jambor  <mjambor@suse.cz>
27782
27783         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
27784         to gimple call error.
27785
27786 2011-02-12  Mike Stump  <mikestump@comcast.net>
27787
27788         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
27789         comments in backslash regions.
27790
27791 2011-02-12  Mike Stump  <mikestump@comcast.net>
27792             Jakub Jelinek  <jakub@redhat.com>
27793             Iain Sandoe  <iains@gcc.gnu.org>
27794
27795         PR target/47324
27796         * dwarf2out.c (output_cfa_loc): When required, apply the
27797         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
27798         (output_loc_sequence): Likewise.
27799         (output_loc_operands_raw): Likewise.
27800         (output_loc_sequence_raw): Likewise.
27801         (output_cfa_loc): Likewise.
27802         (output_loc_list): Suppress register number adjustment when
27803         calling output_loc_sequence()
27804         (output_die): Likewise.
27805
27806 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
27807
27808         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27809         Remove macros.
27810         * config/xtensa/xtensa.c (xtensa_register_move_cost,
27811         xtensa_memory_move_cost): New functions.
27812         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
27813
27814 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
27815
27816         PR lto/47225
27817         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
27818         in the current directory.
27819         * configure: Rebuilt.
27820
27821 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27822
27823         * config/darwin.c (darwin_override_options): Add a hunk missed
27824         from the commit of r168571.  Trim comment line lengths and
27825         correct indents of the preceding block.
27826
27827 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27828
27829         * gcc.c (driver_handle_option): Concatenate the argument to -F with
27830         the switch.
27831
27832 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27833
27834         * common.opt (nostartfiles): New Driver option.
27835
27836 2011-02-11  Xinliang David Li  <davidxl@google.com>
27837
27838         PR tree-optimization/47707
27839         * tree-chrec.c (convert_affine_scev): Keep type precision.
27840
27841 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
27842
27843         PR tree-optimization/47420
27844         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
27845
27846 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
27847
27848         PR rtl-optimization/47614
27849         * rtl.h (check_for_inc_dec): Declare.
27850         * dse.c (check_for_inc_dec): Externalize...
27851         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
27852         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
27853
27854 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27855
27856         PR driver/47678
27857         * gcc.c (main): Do not compile inputs if there were errors in
27858         option handling.
27859         * opts-common.c (read_cmdline_option): Check for wrong language
27860         after other error checks.
27861
27862 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
27863
27864         * cgraph.c: Fix comment typos.
27865         * cgraph.h: Likewise.
27866         * cgraphunit.c: Likewise.
27867         * ipa-cp.c: Likewise.
27868         * ipa-inline.c: Likewise.
27869         * ipa-prop.c: Likewise.
27870         * ipa-pure-const.c: Likewise.
27871         * ipa-ref.c: Likewise.
27872         * ipa-reference.c: Likewise.
27873
27874 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
27875
27876         PR debug/47684
27877         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
27878
27879 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27880
27881         PR testsuite/47400
27882         * doc/sourcebuild.texi (Require Support): Document
27883         dg-require-ascii-locale.
27884
27885 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
27886
27887         * doc/lto.texi (Write summary): Fix missing parentheses.
27888
27889 2011-02-10  DJ Delorie  <dj@redhat.com>
27890
27891         * config/m32c/m32c.c (m32c_option_override): Disable
27892         -fcombine-stack-adjustments until flag value tracking and compare
27893         optimization can be rewritten.
27894
27895 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
27896
27897         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
27898         PROCESSOR_POWER7.
27899         (PROCESSOR_DEFAULT64): Likewise.
27900
27901 2011-02-10  Richard Henderson  <rth@redhat.com>
27902
27903         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
27904         change from 2011-02-03.
27905         * config/rx/rx.c (flags_from_code): Likewise.
27906         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
27907         is valid, n/pz otherwise.
27908         (rx_select_cc_mode): Return CCmode if Y is not zero.
27909
27910 2011-02-10  Richard Guenther  <rguenther@suse.de>
27911
27912         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
27913
27914 2011-02-10  Richard Guenther  <rguenther@suse.de>
27915
27916         PR tree-optimization/47677
27917         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
27918
27919 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
27920
27921         PR target/47665
27922         * combine.c (make_compound_operation): Only change shifts into
27923         multiplication for SCALAR_INT_MODE_P.
27924
27925 2011-02-10  Jie Zhang  <jie@codesourcery.com>
27926
27927         PR testsuite/47622
27928         Revert
27929         2011-02-05  Jie Zhang  <jie@codesourcery.com>
27930         PR debug/42631
27931         * web.c (entry_register): Don't clobber the number of the
27932         first uninitialized reference in used[].
27933
27934 2011-02-09  Richard Guenther  <rguenther@suse.de>
27935
27936         PR tree-optimization/47664
27937         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
27938         all edges again.
27939
27940 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
27941
27942         PR target/46481
27943         PR target/47032
27944         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
27945         PROCESSOR_POWER7.
27946         (PROCESSOR_DEFAULT64): Same.
27947         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
27948
27949 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27950
27951         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
27952
27953 2011-02-09  Martin Jambor  <mjambor@suse.cz>
27954
27955         PR middle-end/45505
27956         * tree-sra.c (struct access): New flags grp_scalar_read and
27957         grp_scalar_write.  Changed description of assignment read and write
27958         flags.
27959         (dump_access): Dump new flags, reorder all of them.
27960         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
27961         to detect multiple scalar reads.
27962         (analyze_access_subtree): Use the new scalar read write flags instead
27963         of the old flags.  Adjusted comments.
27964
27965 2011-02-08  DJ Delorie  <dj@redhat.com>
27966
27967         PR target/47548
27968         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
27969         patterns.
27970
27971 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27972
27973         * config/m68k/uclinux.opt: New.
27974         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
27975
27976 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27977
27978         * config/cris/elf.opt (sim): New Driver option.
27979
27980 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27981
27982         * config/xtensa/elf.opt: New.
27983         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
27984
27985 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27986
27987         * config/vax/elf.opt: New.
27988         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
27989
27990 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27991
27992         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
27993
27994 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27995
27996         * config/gnu-user.opt: New.
27997         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
27998         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
27999         *-*-uclinux*): Use gnu-user.opt.
28000
28001 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
28002
28003         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
28004         * config/i386/gnu.h (CPP_SPEC): Likewise.
28005
28006 2011-02-08  Ian Lance Taylor  <iant@google.com>
28007
28008         * common.opt (fcx-limited-range): Add SetByCombined flag.
28009         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
28010         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
28011         (fassociative-math, freciprocal-math): Likewise.
28012         (funsafe-math-optimizations): Likewise.
28013         * opth-gen.awk: Handle SetByCombined.
28014         * optc-gen.awk: Likewise.
28015         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
28016         (set_unsafe_math_optimizations_flags): Likewise.
28017         * doc/options.texi (Option properties): Document SetByCombined.
28018
28019 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
28020
28021         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
28022         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
28023         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
28024         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
28025         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
28026
28027 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
28028
28029         PR tree-optimization/46834
28030         PR tree-optimization/46994
28031         PR tree-optimization/46995
28032         * graphite-sese-to-poly.c (used_outside_reduction): New.
28033         (detect_commutative_reduction): Call used_outside_reduction.
28034         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
28035         translate_scalar_reduction_to_array only when at least one
28036         loop-phi/close-phi tuple has been detected.
28037
28038 2011-02-08  Richard Guenther  <rguenther@suse.de>
28039
28040         PR middle-end/47639
28041         * tree-vect-generic.c (expand_vector_operations_1): Update
28042         stmts here ...
28043         (expand_vector_operations): ... not here.  Cleanup EH info
28044         and the CFG if required.
28045
28046 2011-02-08  Richard Guenther  <rguenther@suse.de>
28047
28048         PR tree-optimization/47641
28049         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
28050         require type compatibility.
28051
28052 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28053
28054         * gimple-low.c (lower_function_body): Don't remove the location of
28055         the return statement here.
28056         (lower_gimple_return): Do it here instead but only if the return
28057         statement is actually used twice.
28058
28059 2011-02-08  Richard Guenther  <rguenther@suse.de>
28060
28061         PR tree-optimization/47632
28062         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
28063         unused up_to_stmt parameter, return whether cfg-cleanup is
28064         necessary, remove EH info properly.
28065         (forward_propagate_into_gimple_cond): Adjust caller.
28066         (forward_propagate_into_cond): Likewise.
28067         (forward_propagate_comparison): Likewise.
28068         (tree_ssa_forward_propagate_single_use_vars): Make
28069         forward_propagate_comparison case similar to the two others.
28070
28071 2011-02-08  Nick Clifton  <nickc@redhat.com>
28072
28073         * config/mn10300/mn10300.opt (mliw): New command line option.
28074         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
28075         (liw_bundling): New automaton.
28076         (liw): New attribute.
28077         (liw_op): New attribute.
28078         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
28079         (movsi_internal): Add LIW attributes.
28080         (andsi3): Likewise.
28081         (iorsi3): Likewise.
28082         (xorsi3): Likewise.
28083         (addsi3): Separate register and immediate alternatives.
28084         Add LIW attributes.
28085         (subsi3): Likewise.
28086         (cmpsi): Likewise.
28087         (aslsi3): Likewise.
28088         (lshrsi3): Likewise.
28089         (ashrsi3): Likewise.
28090         (liw): New pattern.
28091         * config/mn10300/mn10300.c (liw_op_names): New
28092         (mn10300_print_operand): Handle 'W' operand descriptor.
28093         (extract_bundle): New function.
28094         (check_liw_constraints): New function.
28095         (liw_candidate): New function.
28096         (mn10300_bundle_liw): New function.
28097         (mn10300_reorg): New function.
28098         (TARGET_MACHINE_DEPENDENT_REORG): Define.
28099         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
28100         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
28101         __LIW__ or __NO_LIW__.
28102         * doc/invoke.texi: Describe the -mliw command line option.
28103
28104 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28105
28106         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
28107         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
28108         pthread_mutex_unlock): Remove.
28109         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
28110         * config/pa/t-pa64: Likewise.
28111         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
28112         shared libc if not linking against libpthread.
28113         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
28114
28115 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
28116
28117         PR target/47558
28118         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
28119         on 10.6 and later to ensure that we always use the unwinder from
28120         the system.  Only add -no_compact_unwind when tarteting darwin
28121         10.6 or later.
28122
28123 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
28124
28125         PR target/46997
28126         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
28127         (vec_interleave_lowv2sf): Ditto.
28128         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
28129         (vec_extract_oddv2sf): Ditto.
28130
28131 2011-02-07  Mike Stump  <mikestump@comcast.net>
28132
28133         PR target/42333
28134         Add __ieee_divdc3 entry point.
28135         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
28136         entry point.
28137         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
28138         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
28139         * config/darwin.c (darwin_rename_builtins): Add.
28140         * config/darwin-protos.h (darwin_rename_builtins): Add.
28141
28142 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
28143
28144         PR target/47636
28145         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
28146         for the condition.
28147
28148 2011-02-07  Mike Stump  <mikestump@comcast.net>
28149
28150         * config/darwin.opt (mmacosx-version-min): Update default OS version.
28151
28152 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
28153
28154         PR target/47534
28155         * config/avr/libgcc.S (exit): Move .endfunc
28156
28157 2011-02-07  Richard Guenther  <rguenther@suse.de>
28158
28159         PR tree-optimization/47615
28160         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
28161         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
28162         (run_scc_vn): Initialize it.
28163         (visit_reference_op_load): Use it.
28164         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
28165
28166 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28167
28168         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
28169         DImode trapping arithmetic libfuncs.
28170
28171 2011-02-07  Richard Guenther  <rguenther@suse.de>
28172
28173         PR tree-optimization/47621
28174         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
28175         two duplicates ...
28176         (execute_update_addresses_taken): ... here.  Make it more
28177         conservative in what we accept.
28178
28179 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28180
28181         * config/sparc/freebsd.h (ASM_SPEC): Define.
28182         * config/sparc/vxworks.h (ASM_SPEC): Define.
28183
28184 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28185
28186         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
28187
28188 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
28189
28190         * doc/invoke.texi: Remove reference to compiler internals from
28191         user documentation.
28192
28193         * reg-notes.def: Remove REG_VALUE_PROFILE.
28194         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
28195
28196 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
28197
28198         PR middle-end/47610
28199         * varasm.c (default_section_type_flags): If decl is NULL,
28200         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
28201
28202 2011-02-05  Jie Zhang  <jie@codesourcery.com>
28203
28204         PR debug/42631
28205         * web.c (entry_register): Don't clobber the number of the
28206         first uninitialized reference in used[].
28207
28208 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
28209
28210         PR tree-optimization/46194
28211         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
28212         (build_classic_dist_vector_1): Do not represent classic distance
28213         vectors when the access functions are variating in different loops.
28214
28215 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28216
28217         * config/mips/iris6.opt: New.
28218         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
28219
28220 2011-02-04  Richard Henderson  <rth@redhat.com>
28221             Steve Ellcey  <sje@cup.hp.com>
28222
28223         PR target/46997
28224         * config/ia64/predicates.md (mux1_brcst_element): New.
28225         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
28226         * config/ia64/ia64.c (ia64_unpack_assemble): New.
28227         (ia64_unpack_sign): New.
28228         (ia64_expand_unpack): Rewrite using new routines.
28229         (ia64_expand_widen_sum): Ditto.
28230         (ia64_expand_dot_prod_v8qi): Ditto.
28231         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
28232         routines, add endian check.
28233         (pmpy2_even): Rename from pmpy2_r, add endian check.
28234         (pmpy2_odd): Rename from pmpy2_l, add endian check.
28235         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
28236         (vec_widen_smult_hi_v4hi): Ditto.
28237         (vec_widen_umult_lo_v4hi): Ditto.
28238         (vec_widen_umult_hi_v4hi): Ditto.
28239         (mulv2si3): Change endian checks.
28240         (sdot_prodv4hi): Rewrite with new calls.
28241         (udot_prodv4hi): New.
28242         (vec_pack_ssat_v4hi): Add endian check.
28243         (vec_pack_usat_v4hi): Ditto.
28244         (vec_pack_ssat_v2si): Ditto.
28245         (max1_even): Rename from max1_r, add endian check.
28246         (max1_odd): Rename from max1_l, add endian check.
28247         (*mux1_rev): Format change.
28248         (*mux1_mix): Ditto.
28249         (*mux1_shuf): Ditto.
28250         (*mux1_alt): Ditto.
28251         (*mux1_brcst_v8qi): Use new predicate.
28252         (vec_extract_evenv8qi): Remove endian check.
28253         (vec_extract_oddv8qi): Ditto.
28254         (vec_interleave_lowv4hi): Format change.
28255         (vec_interleave_highv4hi): Ditto.
28256         (mix2_even): Rename from mix2_r, add endian check.
28257         (mix2_odd): Rename from mux2_l, add endian check.
28258         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
28259         (vec_extract_evenodd_helper): Format change.
28260         (vec_extract_evenv4hi): Remove endian check.
28261         (vec_extract_oddv4hi): Remove endian check.
28262         (vec_interleave_lowv2si): Format change.
28263         (vec_interleave_highv2si): Format change.
28264         (vec_initv2si): Remove endian check.
28265         (vecinit_v2si): Add endian check.
28266         (reduc_splus_v2sf): Add endian check.
28267         (reduc_smax_v2sf): Ditto.
28268         (reduc_smin_v2sf): Ditto.
28269         (vec_initv2sf): Remove endian check.
28270         (fpack): Add endian check.
28271         (fswap): Add endian check.
28272         (vec_interleave_highv2sf): Add endian check.
28273         (vec_interleave_lowv2sf): Add endian check.
28274         (fmix_lr): Add endian check.
28275         (vec_setv2sf): Format change.
28276         (*vec_extractv2sf_0_be): Use shift to extract operand.
28277         (*vec_extractv2sf_1_be): New.
28278         (vec_pack_trunc_v4hi): Add endian check.
28279         (vec_pack_trunc_v2si): Format change.
28280
28281 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
28282
28283         PR inline-asm/23200
28284         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
28285         do bb, locus and block comparison and disallow loads if it is not set.
28286         (stmt_is_replaceable_p): New function.
28287         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
28288         callers.
28289         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
28290         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
28291         SSA_NAME_DEF_STMT.
28292         * tree-flow.h (stmt_is_replaceable_p): New prototype.
28293
28294 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28295
28296         * config/rs6000/xilinx.opt: New.
28297         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
28298
28299 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28300
28301         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
28302
28303 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
28304
28305         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
28306         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
28307         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
28308         secondary_reload_info, xtensa_secondary_reload): Remove.
28309         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
28310         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
28311         (xtensa_preferred_reload_class): Make static. Change return and
28312         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
28313         Use CONST_DOUBLE_P predicate.
28314         (xtensa_preferred_output_reload_class): New function.
28315         (xtensa_secondary_reload): Make static.
28316
28317 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
28318
28319         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
28320         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
28321         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
28322
28323 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28324
28325         PR middle-end/31490
28326         * output.h (SECTION_RELRO): Define.
28327         (SECTION_MACH_DEP): Adjust.
28328         (get_variable_section): New prototype.
28329         * varpool.c (varpool_finalize_named_section_flags): New function.
28330         (varpool_assemble_pending_decls): Call it.
28331         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
28332         * cgraphunit.c (cgraph_output_in_order): Call
28333         varpool_finalize_named_section_flags.
28334         * varasm.c (get_section): Allow section flags conflicts between
28335         relro and read-only sections if the section hasn't been declared yet.
28336         Set SECTION_OVERRIDE after diagnosing section type conflict.
28337         (get_variable_section): No longer static.
28338         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
28339         readonly sections that need relocations.
28340         (decl_readonly_section_1): New function.
28341         (decl_readonly_section): Use it.
28342
28343         Revert:
28344         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
28345                     Steve Ellcey  <sje@cup.hp.com>
28346
28347         PR middle-end/31490
28348         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
28349         if section attribute used.
28350
28351 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28352
28353         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
28354         * config/darwin.c (SECTION_NO_ANCHOR): Define.
28355         (darwin_init_sections): Remove assertion.
28356
28357 2011-02-03  Nick Clifton  <nickc@redhat.com>
28358
28359         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
28360         lt and ge.
28361         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
28362         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
28363         instead of "n" and "pz".
28364         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
28365         CC_FLAG_S.
28366
28367 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28368
28369         PR target/47312
28370         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
28371         fma, expand FMA_EXPR as fma{,f,l} call.
28372
28373         PR lto/47274
28374         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
28375         copy them into a unsigned char variable and pass address of it to
28376         lto_output_data_stream.
28377
28378         PR target/47564
28379         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
28380         around backend_init_target and lang_dependent_init_target calls.
28381         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
28382         (verify_cgraph_node): Don't call set_cfun here.  Use
28383         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
28384         Set error_found for incorrectly represented calls to thunks.
28385
28386 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28387
28388         PR debug/43092
28389         PR rtl-optimization/43494
28390         * rtl.h (for_each_inc_dec_fn): New type.
28391         (for_each_inc_dec): Declare.
28392         * rtlanal.c (struct for_each_inc_dec_ops): New type.
28393         (for_each_inc_dec_find_inc_dec): New fn.
28394         (for_each_inc_dec_find_mem): New fn.
28395         (for_each_inc_dec): New fn.
28396         * dse.c (struct insn_size): Remove.
28397         (replace_inc_dec, replace_inc_dec_mem): Remove.
28398         (emit_inc_dec_insn_before): New fn.
28399         (check_for_inc_dec): Use it, along with for_each_inc_dec.
28400         (canon_address): Pass mem modes to cselib_lookup.
28401         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
28402         (cselib_lookup_from_insn): Likewise.
28403         (cselib_subst_to_values): Likewise.
28404         * cselib.c (find_slot_memmode): New var.
28405         (cselib_find_slot): New fn.  Use it instead of
28406         htab_find_slot_with_hash everywhere.
28407         (entry_and_rtx_equal_p): Use find_slot_memmode.
28408         (autoinc_split): New fn.
28409         (rtx_equal_for_cselib_p): Rename and implement in terms of...
28410         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
28411         Deal with autoinc.  Special-case recursion into MEMs.
28412         (cselib_hash_rtx): Likewise.
28413         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
28414         address and MEM modes.
28415         (cselib_subst_to_values): Add memmode, pass it on.
28416         Deal with autoinc.
28417         (cselib_lookup): Add memmode argument, pass it on.
28418         (cselib_lookup_from_insn): Add memmode.
28419         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
28420         (struct cselib_record_autoinc_data): New.
28421         (cselib_record_autoinc_cb): New fn.
28422         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
28423         mode to cselib_lookup.  Reset autoinced REGs here instead of...
28424         (cselib_process_insn): ... here.
28425         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
28426         to cselib_lookup.
28427         (add_uses): Likewise, also to cselib_subst_to_values.
28428         (add_stores): Likewise.
28429         * sched-deps.c (add_insn_mem_dependence): Pass mode to
28430         cselib_subst_to_values.
28431         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
28432         * gcse.c (do_local_cprop): Adjusted.
28433         * postreload.c (reload_cse_simplify_set): Adjusted.
28434         (reload_cse_simplify_operands): Adjusted.
28435         * sel-sched-dump (debug_mem_addr_value): Pass mode.
28436
28437 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28438
28439         PR tree-optimization/45122
28440         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
28441         unsafe assumptions when there's more than one loop exit.
28442
28443 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28444
28445         PR target/47272
28446         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28447         Document using vector double with the load/store builtins, and
28448         that the load/store builtins always use Altivec instructions.
28449
28450         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
28451         to use altivec memory instructions, even on VSX.
28452         (vector_altivec_store_<mode>): Ditto.
28453
28454         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
28455         function.
28456
28457         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28458         V2DF, V2DI support to load/store overloaded builtins.
28459
28460         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
28461         altivec load/store builtins for V2DF/V2DI types.
28462
28463         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
28464         set avoid indexed addresses on power6 if -maltivec.
28465         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
28466         vector_altivec_load/vector_altivec_store builtins.
28467         (altivec_expand_st_builtin): Ditto.
28468         (altivec_expand_builtin): Add VSX memory builtins.
28469         (rs6000_init_builtins): Add V2DI types to internal types.
28470         (altivec_init_builtins): Add support for V2DF/V2DI altivec
28471         load/store builtins.
28472         (rs6000_address_for_altivec): Insure memory address is appropriate
28473         for Altivec.
28474
28475         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
28476         vec_vsx_ld and vec_vsx_st.
28477         (vsx_store_<mode>): Ditto.
28478
28479         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
28480         variables to hold long long types for VSX vector memory builtins.
28481         (RS6000_BTI_unsigned_long_long): Ditto.
28482         (long_long_integer_type_internal_node): Ditti.
28483         (long_long_unsigned_type_internal_node): Ditti.
28484
28485         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
28486         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
28487         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
28488
28489         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
28490         short cuts.
28491         (vec_vsx_st): Ditto.
28492
28493 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28494
28495         * config/pa/pa-hpux10.opt: New.
28496         * config/hpux11.opt (pthread): New Driver option.
28497         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
28498         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
28499
28500 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28501
28502         * config/ia64/vms.opt: New.
28503         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
28504
28505 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
28506
28507         PR target/47580
28508         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
28509         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
28510         generator functions.
28511         (vsx_floatuns<VSi><mode>2): Ditto.
28512         (vsx_fix_trunc<mode><VSi>2): Ditto.
28513         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
28514
28515 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28516
28517         * config/i386/djgpp.opt (posix): New Driver option.
28518
28519 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
28520
28521         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
28522         Move to the unsupported targets list.
28523
28524 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
28525
28526         PR rtl-optimization/47525
28527         * df-scan.c: Update copyright years.
28528         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
28529         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
28530
28531 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28532
28533         * config/i386/sysv4.h (TARGET_VERSION): Remove.
28534         (SUBTARGET_RETURN_IN_MEMORY): Remove.
28535         (ASM_OUTPUT_ASCII): Remove.
28536         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
28537
28538 2011-02-02  Jeff Law  <law@redhat.com>
28539
28540         PR middle-end/47543
28541         * reload.c (find_reloads_address): Handle reg+d address where both
28542         components are invalid by reloading the entire address.
28543
28544 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28545             Richard Guenther  <rguenther@suse.de>
28546
28547         PR tree-optimization/40979
28548         PR bootstrap/47044
28549         * passes.c (init_optimization_passes): After LIM call copy_prop
28550         and DCE to clean up.
28551         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
28552
28553 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28554
28555         PR tree-optimization/47576
28556         PR tree-optimization/47555
28557         * doc/invoke.texi (scev-max-expr-complexity): Documented.
28558         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28559         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
28560         * tree-scalar-evolution.c (follow_ssa_edge): Use
28561         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
28562
28563 2011-02-02  Richard Guenther  <rguenther@suse.de>
28564
28565         PR tree-optimization/47566
28566         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
28567
28568 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28569
28570         PR debug/47106
28571         PR debug/47402
28572         * tree-inline.c (declare_return_variable): Remove unused caller
28573         variable.
28574
28575         PR debug/47106
28576         PR debug/47402
28577         * tree-flow-inline.h (clear_is_used, is_used_p): New.
28578         * cfgexpand.c (account_used_vars_for_block): Use them.
28579         * tree-nrv.c (tree_nrv): Likewise.
28580         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
28581         (dump_scope_block): Likewise.
28582         (remove_unused_locals): Likewise.
28583
28584         PR debug/47106
28585         PR debug/47402
28586         * tree-inline.c (declare_return_variable): Add result decl to
28587         local decls only once.
28588         * gimple-low.c (record_vars_into): Mark newly-created variables
28589         as referenced.
28590
28591 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28592
28593         PR debug/47498
28594         PR debug/47501
28595         PR debug/45136
28596         PR debug/45130
28597         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28598         debug insns.
28599         (no_real_insns_p, schedule_block, set_priorities): Drop special
28600         treatment of boundary debug insns.
28601         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28602         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
28603         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28604         (BOUNDARY_DEBUG_INSN_P): Likewise.
28605         (SCHEDULE_DEBUG_INSN_P): Likewise.
28606         * sched-rgn.c (init_ready_list): Drop special treatment of
28607         boundary debug insns.
28608         * final.c (rest_of_clean_state): Clear notes' BB.
28609
28610 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28611
28612         * config/openbsd.opt (assert=): New Driver option.
28613
28614 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28615
28616         * config/i386/nto.opt: New.
28617         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
28618
28619 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28620
28621         * config/i386/netware.opt: New.
28622         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
28623
28624 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28625
28626         * config/interix.opt (posix): New Driver option.
28627
28628 2011-02-01  DJ Delorie  <dj@redhat.com>
28629
28630         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
28631
28632         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
28633         class for A0/A1.
28634
28635 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
28636
28637         PR tree-optimization/47561
28638         * toplev.c (process_options): Print the Graphite flags.  Add
28639         flag_loop_flatten to the list of options requiring Graphite.
28640
28641 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28642
28643         * config/i386/cygming.opt (posix): New Driver option.
28644
28645 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28646
28647         * config/arm/vxworks.opt: New.
28648         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
28649
28650 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28651
28652         * config/alpha/elf.opt: New.
28653         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
28654         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
28655
28656 2011-02-01  Richard Guenther  <rguenther@suse.de>
28657
28658         PR tree-optimization/47559
28659         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
28660         store-motion on references that can throw.
28661
28662 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
28663
28664         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
28665         * tree-pass.h (TDF_CSELIB): New macro.
28666         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
28667         cselib_lookup): Check for it rather than for TDF_DETAILS.
28668
28669 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
28670
28671         PR driver/47547
28672         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
28673         is HOST_BIT_BUCKET.
28674
28675         * opts.c (finish_options): Don't add x_aux_base_name if it is
28676         HOST_BIT_BUCKET.
28677
28678 2011-02-01  Richard Guenther  <rguenther@suse.de>
28679
28680         PR tree-optimization/47555
28681         Revert
28682         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
28683
28684         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28685
28686 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28687
28688         PR gcc/46692
28689         * config/lm32/t-lm32: Add multilib for all CPU options.
28690
28691 2011-02-01  Richard Guenther  <rguenther@suse.de>
28692
28693         PR tree-optimization/47541
28694         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
28695         sure to have a field at offset zero.
28696
28697 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28698
28699         * config/arc/arc.opt (EB, EL): New Driver options.
28700
28701 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28702
28703         * config/alpha/osf5.opt: New.
28704         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
28705
28706 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28707
28708         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
28709
28710 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
28711
28712         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
28713         -floop-interchange.
28714         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
28715         is an alias of -floop-interchange and that it requires the
28716         Graphite infrastructure.
28717         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
28718         flag_loop_interchange based on the value of flag_tree_loop_linear.
28719
28720 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
28721             Richard Guenther  <rguenther@suse.de>
28722
28723         PR tree-optimization/47538
28724         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
28725         type instead of r1type, except for comparisons.  For right
28726         shifts and comparisons punt if there are mismatches in
28727         sizetype vs. non-sizetype types.
28728
28729 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28730
28731         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28732         avx_runtime.
28733
28734 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28735
28736         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
28737         version number.
28738         * configure: Regenerate.
28739
28740 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28741
28742         * configure.ac (gcc_cv_ld_static_option): Define.
28743         (gcc_cv_ld_dynamic_option): Define.
28744         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
28745         instead.
28746         (HAVE_LD_STATIC_DYNAMIC): Update message.
28747         (LD_STATIC_OPTION): Define.
28748         (LD_DYNAMIC_OPTION): Define.
28749         * configure: Regenerate.
28750         * config.in: Regenerate.
28751         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
28752         HAVE_LD_STATIC_DYNAMIC]: Use them.
28753
28754 2011-01-31  Nick Clifton  <nickc@redhat.com>
28755
28756         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
28757         registers inside interrupt handlers if the handler is not a leaf
28758         function.
28759
28760 2011-01-31  Nick Clifton  <nickc@redhat.com>
28761
28762         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
28763         reg_renumber returning an INVALID_REGNUM.
28764
28765 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28766
28767         PR libgcj/44341
28768         * doc/install.texi: Document host options discarded when cross
28769         configuring target libraries.
28770
28771 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28772
28773         Reverted:
28774         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28775         PR debug/45136
28776         PR debug/45130
28777         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28778         debug insns.
28779         (no_real_insns_p, schedule_block, set_priorities): Drop special
28780         treatment of boundary debug insns.
28781         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28782         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28783         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28784         (BOUNDARY_DEBUG_INSN_P): Likewise.
28785         (SCHEDULE_DEBUG_INSN_P): Likewise.
28786         * sched-rgn.c (init_ready_list): Drop special treatment of
28787         boundary debug insns.
28788         * final.c (rest_of_clean-state): Clear notes' BB.
28789
28790 2011-01-31  Alan Modra  <amodra@gmail.com>
28791
28792         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
28793         toc relative expressions as we do in print_operand_address.
28794
28795 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
28796
28797         * doc/extend.texi: Follow spelling conventions.
28798         * doc/invoke.texi: Fix a typo.
28799
28800 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
28801
28802         * config/hpux11.opt: New.
28803         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
28804         ia64*-*-hpux*): Use hpux11.opt.
28805
28806 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
28807
28808         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
28809         to tmake_file.
28810
28811 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28812
28813         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
28814         support sites.
28815
28816 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28817
28818         * doc/install.texi (Binaries): Remove outdated reference for
28819         Motorola 68HC11/68HC12 downloads.
28820
28821 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28822
28823         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
28824         Drepper's paper.
28825
28826 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
28827
28828         PR bootstrap/47147
28829         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
28830         used by NetBSD.
28831
28832 2011-01-28  Ahmad Sharif  <asharif@google.com>
28833
28834         * value-prof.c (check_counter): Corrected error message.
28835
28836 2011-01-29  Jie Zhang  <jie@codesourcery.com>
28837
28838         * config/arm/arm.c (arm_legitimize_reload_address): New.
28839         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
28840         arm_legitimize_reload_address.
28841         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
28842
28843 2011-01-28  Ian Lance Taylor  <iant@google.com>
28844
28845         * godump.c (go_define): Ignore macros whose definitions include
28846         two adjacent operands.
28847
28848 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
28849
28850         PR target/42894
28851         * varasm.c (force_const_mem): Store copy of x in desc->constant
28852         instead of x itself.
28853         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
28854         itself into REG_EQUAL note.
28855
28856 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
28857
28858         * config/freebsd.opt (posix, rdynamic): New Driver options.
28859
28860 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28861
28862         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
28863         -Bstatic/-Bdynamic.
28864         * configure: Regenerate.
28865
28866 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
28867
28868         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
28869         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
28870
28871 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
28872
28873         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
28874         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
28875         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
28876         (s390_preferred_reload_class): Make static. Change return and
28877         'rclass' argument type to reg_class_t.
28878
28879 2011-01-27  Jan Hubicka  <jh@suse.cz>
28880
28881         PR middle-end/46949
28882         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
28883         (process_function_and_variable_attributes): Check defined weakrefs.
28884
28885 2011-01-27  Martin Jambor  <mjambor@suse.cz>
28886
28887         PR tree-optimization/47228
28888         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
28889         build_ref_for_offset.
28890
28891 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28892
28893         * config/spu/spu-elf.h (ASM_SPEC): Remove.
28894
28895 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
28896
28897         PR rtl-optimization/46856
28898         * postreload.c (reload_combine_recognize_const_pattern): Do not
28899         separate cc0 setter and user on cc0 targets.
28900
28901 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
28902
28903         PR c/43082
28904         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
28905         passed a VOID_TYPE expression, immediately emit an error and
28906         return error_mark_node.
28907
28908 2011-01-26  Jeff Law  <law@redhat.com>
28909
28910         PR rtl-optimization/47464
28911         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
28912         rather than may_trap_p as needed.
28913
28914 2011-01-26  DJ Delorie  <dj@redhat.com>
28915
28916         PR rtl-optimization/46878
28917         * combine.c (insn_a_feeds_b): Check for the implicit cc0
28918         setter/user dependency as well.
28919
28920 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
28921
28922         PR rtl-optimization/44469
28923         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
28924         after removing trivially dead basic blocks.
28925
28926 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28927
28928         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
28929         * config/frv/frv.h (LINK_SPEC): Likewise.
28930         * config/i386/netware.h (LINK_SPEC): Likewise.
28931         * config/m68k/linux.h (ASM_SPEC): Likewise.
28932         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
28933         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28934         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28935         * config/sparc/linux.h (ASM_SPEC): Likewise.
28936         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28937         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28938
28939 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28940
28941         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
28942         * config/frv/frv.h (ASM_SPEC): Likewise.
28943         * config/m68k/linux.h (ASM_SPEC): Likewise.
28944         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28945         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
28946         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28947         * config/sparc/linux.h (ASM_SPEC): Likewise.
28948         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28949         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28950
28951 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28952
28953         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
28954         * config/frv/frv.h (LINK_SPEC): Likewise.
28955         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28956
28957 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28958
28959         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
28960         * config/frv/frv.h (ASM_SPEC): Likewise.
28961         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
28962         * config/m68k/linux.h (ASM_SPEC): Likewise.
28963         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28964         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
28965         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28966         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
28967         * config/sparc/linux.h (ASM_SPEC): Likewise.
28968         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28969         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28970         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
28971
28972 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
28973
28974         PR target/46997
28975         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
28976         (*mux2): Ditto.
28977         (vec_extract_evenodd_help): Ditto.
28978         (vec_extract_evenv4hi): Ditto.
28979         (vec_extract_oddv4hi): Ditto.
28980         (vec_interleave_lowv2si): Ditto.
28981         (vec_interleave_highv2si): Ditto.
28982         (vec_extract_evenv2si): Ditto.
28983         (vec_extract_oddv2si: Ditto.
28984         (vec_pack_trunc_v2si): Ditto.
28985
28986 2011-01-22  Jan Hubicka  <jh@suse.cz>
28987
28988         PR target/47237
28989         * cgraph.h (cgraph_local_info): New field can_change_signature.
28990         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
28991         signature can change.
28992         (ipcp_estimate_growth): Call sequence simplify only if calle signature
28993         can change.
28994         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
28995         (cgraph_function_versioning): We can not change signature of functions
28996         that don't allow that.
28997         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
28998         (lto_input_node): Likewise.
28999         * ipa-inline.c (compute_inline_parameters): Compute
29000         local.can_change_signature.
29001         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
29002         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
29003         functions that can not change signature.
29004         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
29005         init_cumulative_args): Do not use local calling conventions
29006         for functions that can not change signature.
29007
29008 2011-01-22  Jan Hubicka  <jh@suse.cz>
29009
29010         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
29011
29012 2011-01-26  Richard Guenther  <rguenther@suse.de>
29013
29014         PR tree-optimization/47190
29015         * cgraphunit.c (process_common_attributes): New function.
29016         (process_function_and_variable_attributes): Use it.
29017
29018 2011-01-26  Richard Guenther  <rguenther@suse.de>
29019
29020         PR lto/47423
29021         * cgraphbuild.c (record_eh_tables): Record reference to personality
29022         function.
29023
29024 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
29025
29026         PR debug/45454
29027         * sel-sched.c (moveup_expr): Don't let debug insns prevent
29028         non-debug insns from moving up.
29029
29030 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29031
29032         PR target/40125
29033         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
29034         t-dlldir{,-x} fragment for build and add it to tmake_file.
29035         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
29036         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
29037         * config/i386/t-dlldir: New file.
29038         (SHLIB_DLLDIR): Define.
29039         * config/i386/t-dlldir-x: New file.
29040         (SHLIB_DLLDIR): Define.
29041         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
29042         (SHLIB_INSTALL): Use it.
29043
29044 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
29045
29046         PR target/47246
29047         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
29048         lower bound of the allowed Thumb-2 coprocessor load/store
29049         index range to -256. Add explaining comment.
29050
29051 2011-01-25  Ian Lance Taylor  <iant@google.com>
29052
29053         * godump.c (go_define): Improve lexing of macro expansion to only
29054         accept expressions which match Go spec.
29055
29056 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29057
29058         PR c++/43601
29059         * tree.c (handle_dll_attribute): Handle it.
29060         * doc/extend.texi (@item dllexport): Mention it.
29061         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
29062
29063 2011-01-25  Ian Lance Taylor  <iant@google.com>
29064
29065         PR tree-optimization/26854
29066         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
29067         (decl_jump_unsafe): Move higher in file, with no other change.
29068         (bind): Set has_jump_unsafe_decl if appropriate.
29069         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
29070         (check_earlier_gotos): Likewise.
29071         (c_check_switch_jump_warnings): Likewise.
29072
29073 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
29074
29075         * doc/invoke.texi (Warning Options): Add missing hyphen.
29076         (-fprofile-dir): Minor grammatical fixes.
29077         (-fbranch-probabilities): Likewise.
29078
29079 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
29080
29081         PR debug/45136
29082         PR debug/45130
29083         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29084         debug insns.
29085         (no_real_insns_p, schedule_block, set_priorities): Drop special
29086         treatment of boundary debug insns.
29087         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29088         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
29089         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29090         (BOUNDARY_DEBUG_INSN_P): Likewise.
29091         (SCHEDULE_DEBUG_INSN_P): Likewise.
29092         * sched-rgn.c (init_ready_list): Drop special treatment of
29093         boundary debug insns.
29094         * final.c (rest_of_clean-state): Clear notes' BB.
29095
29096 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29097
29098         * Makefile.in (LAMBDA_H): Removed.
29099         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
29100         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
29101         lambda-trans.o, and tree-loop-linear.o.
29102         (lto-symtab.o): Remove dependence on LAMBDA_H.
29103         (tree-loop-linear.o): Remove rule.
29104         (lambda-mat.o): Same.
29105         (lambda-trans.o): Same.
29106         (lambda-code.o): Same.
29107         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
29108         (tree-vect-slp.o): Same.
29109         * hwint.h (gcd): Moved here.
29110         (least_common_multiple): Same.
29111         * lambda-code.c: Removed.
29112         * lambda-mat.c: Removed.
29113         * lambda-trans.c: Removed.
29114         * lambda.h: Removed.
29115         * tree-loop-linear.c: Removed.
29116         * lto-symtab.c: Do not include lambda.h.
29117         * omega.c (gcd): Removed.
29118         * passes.c (init_optimization_passes): Remove pass_linear_transform.
29119         * tree-data-ref.c (print_lambda_vector): Moved here.
29120         (lambda_vector_copy): Same.
29121         (lambda_matrix_copy): Same.
29122         (lambda_matrix_id): Same.
29123         (lambda_vector_first_nz): Same.
29124         (lambda_matrix_row_add): Same.
29125         (lambda_matrix_row_exchange): Same.
29126         (lambda_vector_mult_const): Same.
29127         (lambda_vector_negate): Same.
29128         (lambda_matrix_row_negate): Same.
29129         (lambda_vector_equal): Same.
29130         (lambda_matrix_right_hermite): Same.
29131         * tree-data-ref.h: Do not include lambda.h.
29132         (lambda_vector): Moved here.
29133         (lambda_matrix): Same.
29134         (dependence_level): Same.
29135         (lambda_transform_legal_p): Removed declaration.
29136         (lambda_collect_parameters): Same.
29137         (lambda_compute_access_matrices): Same.
29138         (lambda_vector_gcd): Same.
29139         (lambda_vector_new): Same.
29140         (lambda_vector_clear): Same.
29141         (lambda_vector_lexico_pos): Same.
29142         (lambda_vector_zerop): Same.
29143         (lambda_matrix_new): Same.
29144         * tree-flow.h (least_common_multiple): Removed declaration.
29145         * tree-parloops.c (lambda_trans_matrix): Moved here.
29146         (LTM_MATRIX): Same.
29147         (LTM_ROWSIZE): Same.
29148         (LTM_COLSIZE): Same.
29149         (LTM_DENOMINATOR): Same.
29150         (lambda_trans_matrix_new): Same.
29151         (lambda_matrix_vector_mult): Same.
29152         (lambda_transform_legal_p): Same.
29153         * tree-pass.h (pass_linear_transform): Removed declaration.
29154         * tree-ssa-loop.c (tree_linear_transform): Removed.
29155         (gate_tree_linear_transform): Removed.
29156         (pass_linear_transform): Removed.
29157         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
29158         flag_loop_interchange.
29159
29160 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29161
29162         PR tree-optimization/47265
29163         PR tree-optimization/47443
29164         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
29165         if name still has some uses.
29166
29167 2011-01-25  Martin Jambor  <mjambor@suse.cz>
29168
29169         PR tree-optimization/47382
29170         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
29171         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
29172
29173 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
29174
29175         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
29176         sjlj_except_unwind_info.
29177
29178 2011-01-25  Richard Guenther  <rguenther@suse.de>
29179
29180         PR tree-optimization/47426
29181         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
29182         visible functions results escape.
29183
29184 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29185
29186         PR target/45701
29187         * config/arm/arm.c (any_sibcall_uses_r3): New function.
29188         (arm_get_frame_offsets): Use it.
29189
29190 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29191             Jakub Jelinek  <jakub@redhat.com>
29192
29193         PR tree-optimization/47271
29194         * tree-if-conv.c (bb_postdominates_preds): New.
29195         (if_convertible_bb_p): Call bb_postdominates_preds.
29196         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
29197         (predicate_scalar_phi): Call bb_postdominates_preds.
29198
29199 2011-01-25  Nick Clifton  <nickc@redhat.com>
29200
29201         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
29202         * config/rx/rx.c (rx_function_value): Likewise.
29203         (rx_promote_function_mode): Likewise.
29204         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
29205         in order to make it legitimate.
29206         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
29207         make sure that the first operand is the same as the result register.
29208         (addsi3_unspec): Delete.
29209         (subdi3): Do not accept immediate operands.
29210         (subdi3_internal): Likewise.
29211
29212 2011-01-25  Jeff Law  <law@redhat.com>
29213
29214         PR rtl-optimization/37273
29215         * ira-costs.c (scan_one_insn): Detect constants living in memory and
29216         handle them like argument loads from stack slots.  Do not double
29217         count memory for memory constants and argument loads from stack slots.
29218
29219 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29220
29221         PR tree-optimization/47427
29222         PR tree-optimization/47428
29223         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
29224         coalesce if the new root var would be TREE_READONLY.
29225
29226 2011-01-25  Richard Guenther  <rguenther@suse.de>
29227
29228         PR middle-end/47414
29229         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
29230         correct type for TBAA.
29231
29232 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29233
29234         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
29235         (close_phi_written_to_memory): Call for_each_index with
29236         dr_indices_valid_in_loop.
29237
29238 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29239
29240         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
29241         when it is initialized.
29242
29243 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29244
29245         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
29246         call to graphite_find_data_references_in_stmt.
29247         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
29248         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
29249         call to graphite_find_data_references_in_stmt.
29250         (analyze_drs_in_stmts): Same.
29251         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
29252         in which the scalar analysis of indices is performed.
29253         (create_data_ref): Same.  Update call to dr_analyze_indices.
29254         (find_data_references_in_stmt): Update call to create_data_ref.
29255         (graphite_find_data_references_in_stmt): Same.
29256         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
29257         declaration.
29258         (create_data_ref): Same.
29259         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
29260         call to create_data_ref.
29261
29262 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29263
29264         * graphite-sese-to-poly.c (build_poly_scop): Move
29265         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
29266
29267 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29268
29269         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
29270         VAR_DECL, PARM_DECL, and RESULT_DECL.
29271
29272 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29273
29274         * graphite-dependences.c (reduction_dr_1): Allow several reductions
29275         in a reduction PBB.
29276         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
29277         that have already been marked as PBB_IS_REDUCTION.
29278
29279 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29280
29281         * graphite-scop-detection.c (same_close_phi_node): New.
29282         (remove_duplicate_close_phi): New.
29283         (make_close_phi_nodes_unique): New.
29284         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
29285
29286 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29287
29288         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
29289         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
29290         of both data references to be the same.
29291
29292 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29293
29294         * graphite-dependences.c (build_lexicographical_constraint): Remove
29295         the gdim parameter.
29296         (build_lexicographical_constraint): Adjust call to
29297         ppl_powerset_is_empty.
29298         (dependence_polyhedron): Same.
29299         (graphite_legal_transform_dr): Same.
29300         (graphite_carried_dependence_level_k): Same.
29301         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
29302         parameter.
29303         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
29304
29305 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29306
29307         * graphite-sese-to-poly.c
29308         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
29309         (close_phi_written_to_memory): New.
29310         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
29311         and unshare_expr.
29312
29313 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29314
29315         * doc/install.texi: Update the expected version number of PPL to 0.11.
29316         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
29317         #if PPL_VERSION_MINOR < 11.
29318
29319 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29320
29321         * graphite-dependences.c: Include graphite-cloog-util.h.
29322         (new_poly_ddr): Inlined into dependence_polyhedron.
29323         (free_poly_ddr): Moved close by new_poly_ddr.
29324         (dependence_polyhedron_1): Renamed dependence_polyhedron.
29325         Early return NULL when ppl_powerset_is_empty returns true.
29326         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
29327         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
29328         (graphite_legal_transform_dr): Call new_poly_ddr.
29329         (graphite_carried_dependence_level_k): Same.
29330         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
29331         (dot_transformed_deps_stmt_1): Removed.
29332         (dot_deps_stmt_1): Call dot_deps_stmt_2.
29333         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
29334         (dot_deps_1): Call dot_deps_2.
29335         * Makefile.in (graphite-dependences.o): Add missing dependence on
29336         graphite-cloog-util.h.
29337
29338 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29339
29340         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
29341         (build_lexicographical_constraint): Same.
29342         (dependence_polyhedron_1): Same.
29343         (graphite_legal_transform_dr): Same.
29344         (graphite_carried_dependence_level_k): Same.
29345         * graphite-ppl.c (ppl_powerset_is_empty): New.
29346         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
29347         * tree-data-ref.c (dump_data_reference): Print the basic block index.
29348
29349 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29350
29351         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
29352         the "a followed by b" relation and document it.
29353
29354 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29355
29356         * graphite-dependences.c (build_lexicographical_constraint): Stop the
29357         iteration when the bag of constraints is empty.
29358
29359 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29360
29361         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
29362
29363 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29364
29365         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
29366         nest and two loop depths as parameters.
29367         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
29368         lst_perfect_nestify.
29369
29370 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29371
29372         * graphite-dependences.c (print_pddr): Call
29373         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
29374
29375 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29376
29377         * graphite-ppl.c (debug_gmp_value): New.
29378         * graphite-ppl.h (debug_gmp_value): Declared.
29379
29380 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
29381
29382         * doc/install.texi: Document availability of cloog-0.16.
29383
29384 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
29385
29386         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
29387         invalid postdominance info.
29388
29389 2011-01-24  Jan Hubicka  <jh@suse.cz>
29390
29391         PR c/21659
29392         * doc/extend.texi (weak pragma): Drop claim that it must
29393         appear before definition.
29394         * varasm.c (merge_weak, declare_weak): Only sanity check
29395         that DECL is not output at a time it is declared weak.
29396
29397 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
29398
29399         * machmode.def: Fixed comments.
29400
29401 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
29402
29403         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
29404
29405 2011-01-24  Paul Koning  <ni1d@arrl.net>
29406
29407         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
29408         WORDS_BIG_ENDIAN.
29409
29410 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
29411
29412         PR target/46519
29413         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
29414         (block_info): Add scanned and prev.
29415         (move_or_delete_vzeroupper_2): Return if the basic block
29416         has been scanned and the upper 128bit state is unchanged
29417         from the last scan.
29418         (move_or_delete_vzeroupper_1): Return true if the exit
29419         state is changed.
29420         (move_or_delete_vzeroupper): Visit basic blocks using the
29421         work-list based algorithm based on vt_find_locations in
29422         var-tracking.c.
29423
29424         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
29425
29426 2011-01-24  Nick Clifton  <nickc@redhat.com>
29427
29428         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
29429         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
29430         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
29431         then define __v850e1__.
29432         * doc/invoke.texi: Document -mv850es.
29433
29434 2011-01-24  Richard Henderson  <rth@redhat.com>
29435
29436         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
29437         compound unordered comparisons.
29438         * config/rx/rx.c (rx_split_fp_compare): Remove.
29439         * config/rx/rx-protos.h: Update.
29440         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
29441         (cbranchsf4): Don't call rx_split_fp_compare.
29442         (*cbranchsf4): Use rx_split_cbranch.
29443         (*cmpsf): Don't accept "i" constraint.
29444         (*conditional_branch): Only valid after reload.
29445         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
29446
29447 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
29448
29449         PR target/47385
29450         * config/rs6000/altivec.md (vector constant splitters): Add
29451         support for creating vector single precision constants if -mvsx is
29452         used and we would create the constant using Altivec primitives.
29453
29454 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
29455             Richard Sandiford  <rdsandiford@googlemail.com>
29456
29457         PR rtl-optimization/47166
29458         * reload1.c (emit_reload_insns): Disable the spill_reg_store
29459         mechanism for PRE_MODIFY and POST_MODIFY.
29460         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
29461         reloadreg.
29462
29463 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
29464
29465         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
29466
29467 2011-01-22  Jan Hubicka  <jh@suse.cz>
29468
29469         PR lto/47333
29470         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
29471
29472 2011-01-22  Jan Hubicka  <jh@suse.cz>
29473
29474         PR tree-optimization/43884
29475         PR lto/44334
29476         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
29477         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
29478
29479 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
29480
29481         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
29482         * config/s390/s390.c (s390_register_move_cost,
29483         s390_memory_move_cost): New.
29484         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
29485
29486 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29487
29488         PR middle-end/47401
29489         * except.c (sjlj_assign_call_site_values): Move setting the
29490         crtl->uses_eh_lsda flag to ...
29491         (sjlj_mark_call_sites): ... here.
29492         (sjlj_emit_function_enter): Support NULL dispatch label.
29493         (sjlj_build_landing_pads): In a function with no landing pads
29494         that still has must-not-throw regions, generate code to register
29495         a personality function with empty LSDA.
29496
29497 2011-01-21  Richard Henderson  <rth@redhat.com>
29498
29499         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
29500
29501         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
29502
29503         * compare-elim.c: New file.
29504         * Makefile.in (OBJS-common): Add it.
29505         (compare-elim.o): New.
29506         * common.opt (fcompare-elim): New.
29507         * opts.c (default_options_table): Add OPT_fcompare_elim.
29508         * tree-pass.h (pass_compare_elim_after_reload): New.
29509         * passes.c (init_optimization_passes): Add it.
29510         * recog.h: Protect against re-inclusion.
29511         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
29512         * doc/invoke.texi (-fcompare-elim): Document it.
29513         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
29514         * doc/tm.texi: Rebuild.
29515
29516 2011-01-22  Nick Clifton  <nickc@redhat.com>
29517
29518         * config/rx/rx.md (cstoresf4): Pass comparison operator to
29519         rx_split_fp_compare.
29520
29521 2011-01-22  Nick Clifton  <nickc@redhat.com>
29522
29523         * config/rx/rx.md (UNSPEC_CONST): New.
29524         (deallocate_and_return): Wrap the amount popped off the stack in
29525         an UNSPEC_CONST in order to stop it being rejected by
29526         -mmax-constant-size.
29527         (pop_and_return): Add a "(return)" rtx.
29528         (call): Drop the immediate operand.
29529         (call_internal): Likewise.
29530         (call_value): Likewise.
29531         (call_value_internal): Likewise.
29532         (sibcall_internal): Likewise.
29533         (sibcall_value_internal): Likewise.
29534         (sibcall): Likewise.  Generate an explicit call using
29535         sibcall_internal.
29536         (sibcall_value): Likewise.
29537         (mov<>): FAIL if a constant operand is not legitimate.
29538         (addsi3_unpsec): New pattern.
29539
29540         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
29541         (ok_for_max_constant): New function.
29542         (gen_safe_add): New function.
29543         (rx_expand_prologue): Use gen_safe_add.
29544         (rx_expand_epilogue): Likewise.
29545         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
29546         UNSPEC CONSTs.
29547
29548 2011-01-21  Jeff Law  <law@redhat.com>
29549
29550         PR tree-optimization/47053
29551         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
29552         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
29553         statements are deleted.
29554         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
29555         is nonempty, then purge dead edges and cleanup the CFG.
29556
29557 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29558
29559         PR debug/47402
29560         Temporarily revert:
29561         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29562         PR debug/47106
29563         * tree-dfa.c (create_var_ann): Mark variable as used.
29564
29565 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29566
29567         PR middle-end/45566
29568         * except.c (convert_to_eh_region_ranges): Emit queued no-region
29569         notes from other section in hot/cold partitioning even if
29570         last_action is -3.  Increment call_site_base.
29571
29572         PR rtl-optimization/47366
29573         * fwprop.c (forward_propagate_into): Return bool.  If
29574         any changes are made, -fnon-call-exceptions is used and
29575         REG_EH_REGION note is present, call purge_dead_edges
29576         and return true if it purged anything.
29577         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
29578         any EH edges were purged.
29579
29580 2011-01-21  Jeff Law  <law@redhat.com>
29581
29582         PR rtl-optimization/41619
29583         * caller-save.c (setup_save_areas): Break out code to determine
29584         which hard regs are live across calls by examining the reload chains
29585         so that it is always used.
29586         Eliminate code which checked REG_N_CALLS_CROSSED.
29587
29588 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29589
29590         PR tree-optimization/47355
29591         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
29592         NOP has non-debug uses beyond PHIs in new_bb.
29593
29594 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29595
29596         PR debug/47106
29597         * cfgexpand.c (account_used_vars_for_block): Only account vars
29598         that are annotated as used.
29599         (estimated_stack_frame_size): Don't set TREE_USED.
29600         * tree-dfa.c (create_var_ann): Mark variable as used.
29601
29602 2011-01-21  Richard Guenther  <rguenther@suse.de>
29603
29604         PR middle-end/47395
29605         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
29606
29607 2011-01-21  Richard Guenther  <rguenther@suse.de>
29608
29609         PR tree-optimization/47365
29610         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
29611         (vn_reference_lookup_pieces): Adjust.
29612         (vn_reference_lookup): Likewise.
29613         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
29614         (vn_reference_lookup_3): Only look through kills if in
29615         VN_WALKREWRITE mode.
29616         (vn_reference_lookup_pieces): Adjust.
29617         (vn_reference_lookup): Likewise.
29618         (visit_reference_op_load): Likewise.
29619         (visit_reference_op_store): Likewise.
29620         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
29621         (compute_avail): Likewise.
29622         (eliminate): Likewise.
29623
29624 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29625
29626         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
29627         DECL_IGNORED_P non-reg vars if they are used.
29628
29629         PR tree-optimization/47391
29630         * varpool.c (const_value_known_p): Return false if
29631         decl is volatile.
29632
29633 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
29634
29635         PR bootstrap/47215
29636         * config/i386/i386.c (ix86_local_alignment): Handle
29637         case for va_list_type_node is nil.
29638         (ix86_canonical_va_list_type): Likewise.
29639
29640 2011-01-21  Alan Modra  <amodra@gmail.com>
29641
29642         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
29643         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
29644
29645 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29646
29647         * config/arm/arm.md (define_attr type): Rename f_load
29648         and f_store to f_fpa_load and f_fpa_store. Update.
29649         (write_conflict): Deal with rename fallout.
29650         (*push_fp_multi): Likewise.
29651         * config/arm/fpa.md (f_load): Use f_fpa_load.
29652         (f_store): Use f_fpa_store.
29653         (*movsf_fpa): Likewise.
29654         (*movdf_fpa): Likewise.
29655         (*movxf_fpa): Likewise.
29656         (*thumb2_movsf_fpa): Likewise.
29657         (*thumb2_movdf_fpa): Likewise.
29658         (*thumb2_movxf_fpa): Likewise.
29659         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
29660         f_loadd and f_stored.
29661         (*thumb2_movdi_vfp): Likewise.
29662         (*thumb2_movsf_vfp): Fix attribute to f_loads.
29663         (*thumb2_movsi_vfp): Likewise.
29664         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
29665         Use f_loads instead of f_load.
29666         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
29667
29668 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
29669
29670         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29671         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
29672         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29673         (xtensa_mode_dependent_address_p): New function.
29674         (constantpool_address_p): Make static. Change return type to bool.
29675         Change argument type to const_rtx. Use CONST_INT_P predicate.
29676
29677 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
29678
29679         PR debug/46583
29680         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
29681
29682 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29683
29684         PR debug/47283
29685         * cfgexpand.c (expand_debug_expr): Instead of generating
29686         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
29687         etc. handling.
29688
29689 2011-01-20  Richard Guenther  <rguenther@suse.de>
29690
29691         PR middle-end/47370
29692         * tree-inline.c (remap_gimple_op_r): Recurse manually for
29693         the pointer operand of MEM_REFs.
29694
29695 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29696
29697         PR tree-optimization/46130
29698         * ipa-split.c (consider_split): If return_bb contains non-virtual
29699         PHIs other than for retval or if split_function would not adjust it,
29700         refuse to split.
29701
29702 2011-01-20  Richard Guenther  <rguenther@suse.de>
29703
29704         PR tree-optimization/47167
29705         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
29706         Revert previous change, only avoid enumeral type changes.
29707
29708 2011-01-19  Mike Stump  <mikestump@comcast.net>
29709
29710         * doc/tm.texi.in (BRANCH_COST): Englishify.
29711         * doc/tm.texi (BRANCH_COST): Likewise.
29712
29713 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
29714
29715         PR c++/47291
29716         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
29717         (gen_scheduled_generic_parms_dies): New functions.
29718         (gen_struct_or_union_type_die): Schedule template parameters DIEs
29719         generation for the end of CU compilation.
29720         (dwarf2out_finish): Generate template parameters DIEs here.
29721
29722 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29723
29724         PR debug/46240
29725         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
29726         debug bind stmt on merge edges.
29727
29728 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29729
29730         PR debug/47079
29731         PR debug/46724
29732         * function.c (instantiate_expr): Instantiate incoming rtl of
29733         implicit arguments, and recurse on VALUE_EXPRs.
29734         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
29735         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
29736
29737 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29738
29739         * c-parser.c (c_parser_for_statement): Initialize
29740         collection_expression.
29741
29742 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29743
29744         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
29745
29746 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29747
29748         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
29749         (LINK_SHLIB_SPEC): Don't use %(link_path).
29750         (SUBTARGET_EXTRA_SPECS): Remove link_path.
29751
29752 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29753
29754         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
29755         (NO_SHARED_LIB_SUPPORT): Remove.
29756         (LINK_SHLIB_SPEC): Remove one conditional definition.
29757
29758 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29759
29760         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
29761         %{call_shared}.
29762         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
29763         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
29764         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
29765         %{call_shared} and conditionals on these options not being passed.
29766         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
29767         %{call_shared}.
29768
29769 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29770
29771         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
29772         simplify.
29773
29774         * ipa-split.c: Spelling fixes.
29775
29776 2011-01-19  Richard Henderson  <rth@redhat.com>
29777
29778         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
29779         (*mulsi3): Likewise.
29780
29781         * longlong.h [__mn10300__] (count_leading_zeros): New.
29782         [__mn10300__] (umul_ppmm, smul_ppmm): New.
29783         [__mn10300__] (add_ssaaaa, subddmmss): New.
29784         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
29785         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
29786
29787 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29788
29789         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
29790
29791 2011-01-19  Richard Henderson  <rth@redhat.com>
29792
29793         * config/mn10300/mn10300.md (addsi3_flags): New.
29794         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
29795         (subsi3_flags, subc_internal, subdi3): New.
29796         (subdi3_internal, *subdi3_degenerate): New.
29797         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
29798
29799         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
29800         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
29801         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
29802         * config/mn10300/mn10300-protos.h: Update.
29803         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
29804         (return_ret): Likewise.  Rename from return_internal_regs.
29805         (return_internal): Remove.
29806
29807         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
29808         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
29809         (mn10300_legitimate_constant_p): Likewise.
29810         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
29811         (mn10300_frame_size): New.
29812         (mn10300_expand_prologue): Use it.
29813         (mn10300_expand_epilogue): Likewise.
29814         (mn10300_initial_offset): Likewise.
29815         * config/mn10300/mn10300-protos.h: Update.
29816         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
29817         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
29818         (prologue, epilogue, return_internal): Tidy output code.
29819         (mn10300_store_multiple_operation, return): Likewise.
29820         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
29821         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
29822         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
29823         (load_pic, am33_load_pic): New.
29824         (mn10300_load_pic0, mn10300_load_pic1): New.
29825
29826         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
29827         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
29828         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
29829         (cc_flags_for_mode, cc_flags_for_code): New.
29830         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
29831         overflow flag is not valid.  Validate that the flags we need
29832         for the comparison are valid.
29833         (mn10300_output_cmp): Remove.
29834         (mn10300_output_add): New.
29835         (mn10300_select_cc_mode): Use cc_flags_for_code.
29836         (mn10300_split_cbranch): New.
29837         (mn10300_match_ccmode): New.
29838         (mn10300_split_and_operand_count): New.
29839         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
29840         to the function.
29841         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
29842         (addsi3): ... here.  Use mn10300_output_add.
29843         (*addsi3_flags): New.
29844         (*am33_subsi3, *mn10300_subsi3): Merge...
29845         (subsi3): ... here.  Use attribute isa.
29846         (*subsi3_flags): New.
29847         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
29848         when possible.
29849         (*am33_andsi3, *mn10300_andsi3): Merge...
29850         (andsi3): ... here.
29851         (*andsi3_flags): New.
29852         (andsi3 splitters): New.
29853         (*am33_iorsi3, *mn10300_iorsi3): Merge...
29854         (iorsi3): ... here.
29855         (*iorsi3_flags): New.
29856         (*am33_xorsi3, *mn10300_xorsi3): Merge...
29857         (xorsi3): ... here.
29858         (*xorsi3_flags): New.
29859         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
29860         (one_cmplsi2): ... here.
29861         (*one_cmplsi2_flags): New.
29862         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
29863         instead of "dax" in constraints.  Use mn10300_split_cbranch.
29864         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
29865         use matching constraints to eliminate a self-comparison.
29866         (*integer_conditional_branch): Rename from integer_conditional_branch.
29867         Use int_mode_flags to match CC_REG.
29868         (*cbranchsi4_btst, *btstsi): New.
29869         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
29870         mn10300_split_cbranch.
29871         (*am33_cmpsf): Rename from am33_cmpsf.
29872         (*float_conditional_branch): Rename from float_conditional_branch.
29873         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
29874         (zero_extendqisi2): ... here.
29875         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
29876         (zero_extendhisi2): ... here.
29877         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
29878         (extendqisi2): ... here.
29879         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
29880         (extendhisi2): ... here.
29881         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
29882         (ashlsi3): ... here.
29883         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
29884         (lshrsi3): ... here.
29885         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
29886         (ashrsi3): ... here.
29887         (consecutive add peephole): Remove.
29888         * config/mn10300/predicates.md (label_ref_operand): New.
29889         (int_mode_flags): New.
29890         (CCZN_comparison_operator): New.
29891
29892         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
29893         (throughput_42_latency_43): New reservation.
29894         (mulsidi3, umulsidi3): New expanders.
29895         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
29896         the MDR register to allocation; separately allocate the low and
29897         high parts of the DImode result.
29898         (umulsidi3_internal): Similarly.
29899         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
29900         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
29901         (udivsi3, umodsi3): Remove.
29902         (udivmodsi4, divmodsi4): New expanders.
29903         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
29904         (*divmodsi4): Simiarly.
29905         (ext_internal): New.
29906
29907         * config/mn10300/constraints.md ("z"): New constraint.
29908         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
29909         (FIXED_REGISTERS): Don't fix MDR.
29910         (CALL_USED_REGSITERS): Reformat nicely.
29911         (REG_ALLOC_ORDER): Add MDR.
29912         (enum regclass): Add MDR_REGS.
29913         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
29914         (IRA_COVER_CLASSES): Add MDR_REGS.
29915         (REGNO_REG_CLASS): Handle MDR_REG.
29916         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
29917         (mn10300_register_move_cost): Likewise.
29918         * config/mn10300/mn10300.md (MDR_REG): New.
29919         (*movsi_internal): Handle moves to/from MDR_REGS.
29920
29921         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
29922         POST_MODIFY.
29923         (mn10300_secondary_reload): Tidy combination reload classes.
29924         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
29925         addresses for AM33.  Allow symbolic offsets for reg+imm.
29926         (mn10300_regno_in_class_p): New.
29927         (mn10300_legitimize_reload_address): New.
29928         * config/mn10300/mn10300.h (enum reg_class): Remove
29929         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
29930         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
29931         SP_OR_GENERAL_REGS.
29932         (REG_CLASS_NAMES): Update to match.
29933         (REG_CLASS_CONTENTS): Likewise.
29934         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
29935         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
29936         (REGNO_IN_RANGE_P): Remove.
29937         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
29938         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
29939         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
29940         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
29941         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
29942         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
29943         (REGNO_GENERAL_P): New.
29944         (HAVE_POST_MODIFY_DISP): New.
29945         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
29946         (LEGITIMIZE_RELOAD_ADDRESS): New.
29947         * config/mn10300/mn10300-protos.h: Update.
29948
29949         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
29950         DATA_REGS for AM33 stack-pointer destination.
29951         (mn10300_preferred_output_reload_class): Likewise.
29952         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
29953         into a form appropriate for ...
29954         (TARGET_SECONDARY_RELOAD): New.
29955         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
29956         * config/mn10300/mn10300-protos.h: Update.
29957         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
29958         reload_insi; use the "A" constraint for the scratch; handle AM33
29959         moves of sp to non-address registers.
29960
29961         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
29962         (*movqi_internal): ... here.
29963         (*am33_movhi, *mn10300_movhi): Merge into...
29964         (*movhi_internal): ... here.
29965         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
29966         as the source/destination of moves from/to SP.
29967         (movsf): Only allow for AM33-2.
29968         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
29969         any integer constant constraint.  Only allow for AM33-2.  Tidy
29970         all of the alternative outputs.
29971         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
29972         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
29973         for MN103.
29974         (udivsi3, umodsi3): New patterns for MN103 only.
29975
29976 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
29977
29978         * doc/tm.texi.in: Spell out that a lack of register class unions
29979         can lead to ICEs.
29980         * doc/tm.texi: Regenerate.
29981
29982 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29983
29984         PR rtl-optimization/47337
29985         * dce.c (check_argument_store): New function.
29986         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
29987
29988         PR tree-optimization/47290
29989         * tree-eh.c (infinite_empty_loop_p): New function.
29990         (cleanup_empty_eh): Use it.
29991
29992 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
29993
29994         PR target/46997
29995         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
29996         (a64_expand_widen_sum): Ditto.
29997         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
29998         (vec_extract_evenodd_help): Ditto.
29999         (vec_extract_evenv4hi): Ditto.
30000         (vec_extract_oddv4hi): Ditto.
30001         (vec_extract_evenv2si): Ditto.
30002         (vec_extract_oddv2si): Ditto.
30003         (vec_extract_evenv2sf): Ditto.
30004         (vec_extract_oddv2sf): Ditto.
30005         (vec_pack_trunc_v4hi: Ditto.
30006         (vec_pack_trunc_v2si): Ditto.
30007         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
30008         (vec_interleave_highv8qi): Ditto.
30009         (mix1_r): Ditto.
30010         (vec_extract_oddv8qi): Ditto.
30011         (vec_interleave_lowv4hi): Ditto.
30012         (vec_interleave_highv4hi): Ditto.
30013         (vec_interleave_lowv2si): Ditto.
30014         (vec_interleave_highv2si): Ditto.
30015
30016 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30017
30018         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
30019         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
30020         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
30021         (pa_c_mode_for_suffix): New.
30022         (TARGET_EXPAND_BUILTIN): Define.
30023         (TARGET_C_MODE_FOR_SUFFIX): Define.
30024         (pa_builtins): Define.
30025         (pa_init_builtins): Register __float128 type and init new support
30026         builtins.
30027         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
30028         * config/pa/quadlib.c (_U_Qfcopysign): New.
30029
30030 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
30031
30032         PR middle-end/46894
30033         * explow.c (allocate_dynamic_stack_space): Do not assume more than
30034         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
30035         are defined.
30036
30037 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30038
30039         PR tree-optimization/47179
30040         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
30041         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
30042
30043 2011-01-18  Richard Guenther  <rguenther@suse.de>
30044
30045         PR rtl-optimization/47216
30046         * emit-rtl.c: Include tree-flow.h.
30047         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
30048         of replicating it with different semantics.
30049         * Makefile.in (emit-rtl.o): Adjust.
30050
30051 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30052
30053         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
30054         (cortex_a9_dp): Handle neon types correctly.
30055
30056 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
30057
30058         PR rtl-optimization/47299
30059         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
30060         subtarget.  Use normal multiplication if both operands are constants.
30061         * expmed.c (expand_widening_mult): Don't try to optimize constant
30062         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
30063         before using it.
30064
30065 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30066
30067         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
30068         spacing after 'e.g.', typos, comma, hyphenation.
30069
30070 2011-01-17  Richard Henderson  <rth@redhat.com>
30071
30072         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
30073         (rx_restricted_mem_operand): New.
30074         (rx_shift_operand): Use register_operand.
30075         (rx_source_operand, rx_compare_operand): Likewise.
30076         * config/rx/rx.md (addsi3_flags): New expander.
30077         (adddi3): Rewrite as expander.
30078         (adc_internal, *adc_flags, adddi3_internal): New patterns.
30079         (subsi3_flags): New expander.
30080         (subdi3): Rewrite as expander.
30081         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
30082
30083         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
30084         (rx_init_builtins): Remove sat builtin.
30085         (rx_expand_builtin): Likewise.
30086         * config/rx/rx.md (ssaddsi3): New.
30087         (*sat): Rename from sat.  Represent the CC_REG input.
30088
30089         * config/rx/predicates.md (rshift_operator): New.
30090         * config/rx/rx.c (rx_expand_insv): Remove.
30091         * config/rx/rx-protos.h: Update.
30092         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
30093         operand to the canonical position.
30094         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
30095         (*bitclr, *bitclr_in_memory): Similarly.
30096         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
30097         (insv): Retain the zero_extract in the expansion.
30098
30099         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
30100         (bswaphi2, bitinvert, revw): Likewise.
30101
30102         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
30103         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
30104         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
30105         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
30106         (bitset, bitset_in_memory): Likewise.
30107         (bitinvert, bitinvert_in_memory): Likewise.
30108         (bitclr, bitclr_in_memory): Likewise.
30109         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
30110         (rx_strend, rx_cmpstrn): Likewise.
30111         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
30112         (bitop peep2 patterns): Remove.
30113
30114         * config/rx/rx.c (rx_match_ccmode): New.
30115         * config/rx/rx-protos.h: Update.
30116         * config/rx/rx.md (abssi2): Clobber, don't set flags.
30117         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
30118         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
30119         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
30120         (fix_truncsfsi2, floatsisf2): Likewise.
30121         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
30122         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
30123         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
30124         (*subsi3_flags, *xorsi3_flags): New.
30125
30126         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
30127
30128         * config/rx/rx.c (rx_print_operand): Remove workaround for
30129         unsplit comparison operations.
30130
30131         * config/rx/rx.md (movsicc): Split after reload.
30132         (*movsicc): Merge *movsieq and *movsine via match_operator.
30133         (*stcc): New pattern.
30134
30135         * config/rx/rx.c (rx_float_compare_mode): Remove.
30136         * config/rx/rx.h (rx_float_compare_mode): Remove.
30137         * config/rx/rx.md (cstoresi4): Split after reload.
30138         (*sccc): New pattern.
30139
30140         * config/rx/predicates.md (label_ref_operand): New.
30141         (rx_z_comparison_operator): New.
30142         (rx_zs_comparison_operator): New.
30143         (rx_fp_comparison_operator): New.
30144         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
30145         Validate that the flags are set properly for the comparison.
30146         (rx_gen_cond_branch_template): Remove.
30147         (rx_cc_modes_compatible): Remove.
30148         (mode_from_flags): New.
30149         (flags_from_code): Rename from flags_needed_for_conditional.
30150         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
30151         (rx_select_cc_mode): Likewise.
30152         (rx_split_fp_compare): New.
30153         (rx_split_cbranch): New.
30154         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
30155         (*cbranchsi4): Use match_operator and rx_split_cbranch.
30156         (*cbranchsf4): Similarly.
30157         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
30158         match_operator and rx_split_cbranch.
30159         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
30160         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
30161         (*cmpsi): Rename from cmpsi.
30162         (*tstsi): Rename from tstsi.
30163         (*cmpsf): Rename from cmpsf; use CC_Fmode.
30164         (*conditional_branch): Rename from conditional_branch.
30165         (*reveresed_conditional_branch): Remove.
30166         (b<code>): Remove expander.
30167         * config/rx/rx-protos.h: Update.
30168
30169         * config/rx/rx.c (rx_compare_redundant): Remove.
30170         * config/rx/rx.md (cmpsi): Don't use it.
30171         * config/rx/rx-protos.h: Update.
30172
30173         * config/rx/rx-modes.def (CC_F): New mode.
30174         * config/rx/rx.c (rx_select_cc_mode): New.
30175         * config/rx/rx.h (SELECT_CC_MODE): Use it.
30176         * config/rx/rx-protos.h: Update.
30177
30178 2011-01-17  Richard Henderson  <rth@redhat.com>
30179
30180         * except.c (dump_eh_tree): Fix stray ; after for statement.
30181
30182 2011-01-17  Richard Guenther  <rguenther@suse.de>
30183
30184         PR tree-optimization/47313
30185         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
30186         handling before copying the body.  Properly deal with
30187         by-reference result in SSA form.
30188
30189 2011-01-17  Ian Lance Taylor  <iant@google.com>
30190
30191         PR target/47219
30192         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
30193         (struct_value_alias_set): Don't define.
30194         (sparc_option_override): Don't set sparc_sr_alias_set and
30195         struct_value_alias_set.
30196         (save_or_restore_regs): Use gen_frame_mem rather than calling
30197         set_mem_alias_set.
30198         (sparc_struct_value_rtx): Likewise.
30199
30200 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30201
30202         PR target/47318
30203         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
30204         (_mm_maskstore_pd): Likewise.
30205         (_mm_maskload_ps): Likewise.
30206         (_mm_maskstore_ps): Likewise.
30207         (_mm256_maskload_pd): Change mask to __m256i.
30208         (_mm256_maskstore_pd): Likewise.
30209         (_mm256_maskload_ps): Likewise.
30210         (_mm256_maskstore_ps): Likewise.
30211
30212         * config/i386/i386-builtin-types.def: Updated.
30213         (ix86_expand_special_args_builtin): Likewise.
30214
30215         * config/i386/i386.c (bdesc_special_args): Update
30216         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
30217         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
30218         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
30219         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
30220
30221         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
30222         Use <avxpermvecmode> on mask register.
30223         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
30224
30225 2011-01-17  Olivier Hainque  <hainque@adacore.com>
30226             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
30227             Eric Botcazou  <ebotcazou@adacore.com>
30228
30229         PR target/46655
30230         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
30231         if <= USHRT_MAX in 32-bit mode.
30232
30233 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30234
30235         * doc/install.texi (Configuration, Specific): Wrap long
30236         lines in examples.  Allow line wrapping in long options
30237         and URLs where beneficial for PDF output.
30238
30239 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
30240
30241         * config/mips/mips.c (mips_classify_symbol): Don't return
30242         SYMBOL_PC_RELATIVE for nonlocal labels.
30243
30244 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
30245
30246         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
30247
30248 2011-01-15  Jan Hubicka  <jh@suse.cz>
30249
30250         PR tree-optimization/47276
30251         * ipa.c (function_and_variable_visibility): Do not try to mark alias
30252         declarations as needed.
30253
30254 2011-01-15  Martin Jambor  <mjambor@suse.cz>
30255
30256         * common.opt (fdevirtualize): New flag.
30257         * doc/invoke.texi (Option Summary): Document it.
30258         * opts.c (default_options_table): Add devirtualize flag.
30259         * ipa-prop.c (detect_type_change): Return immediately if
30260         devirtualize flag is not set.
30261         (detect_type_change_ssa): Likewise.
30262         (compute_known_type_jump_func): Likewise.
30263         (ipa_analyze_virtual_call_uses): Likewise.
30264
30265 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30266
30267         PR tree-optimization/45934
30268         PR tree-optimization/46302
30269         * ipa-prop.c (type_change_info): New type.
30270         (stmt_may_be_vtbl_ptr_store): New function.
30271         (check_stmt_for_type_change): Likewise.
30272         (detect_type_change): Likewise.
30273         (detect_type_change_ssa): Likewise.
30274         (compute_complex_assign_jump_func): Check for dynamic type change.
30275         (compute_complex_ancestor_jump_func): Likewise.
30276         (compute_known_type_jump_func): Likewise.
30277         (compute_scalar_jump_functions): Likewise.
30278         (ipa_analyze_virtual_call_uses): Likewise.
30279         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
30280
30281 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30282
30283         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
30284         * config/i386/i386.opt (msse5): New Alias.
30285
30286 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30287
30288         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
30289         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30290         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30291         * config/sparc/sparc.h (CC1_SPEC): Likewise.
30292
30293 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30294
30295         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
30296         -mcpu options.
30297         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30298         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30299         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
30300         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
30301         Likewise.
30302         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
30303
30304 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30305
30306         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
30307
30308 2011-01-14  Mike Stump  <mikestump@comcast.net>
30309
30310         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
30311         * config/fr30/fr30.md: Likweise
30312         (movsi_push): Likewise.
30313         (movsi_pop): Likewise.
30314         (enter_func): Likewise.
30315         * config/moxie/moxie.md (movsi_push): Likewise.
30316         (movsi_pop): Likewise.
30317
30318 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30319
30320         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
30321         %{no_archive} %{exact_version}.
30322         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
30323         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
30324         %{no_archive} %{exact_version}.
30325         * config/mips/openbsd.h (LINK_SPEC): Likewise.
30326         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
30327         * config/mips/vxworks.h: Likewise.
30328
30329 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30330
30331         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
30332
30333 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30334
30335         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
30336         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
30337
30338 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30339
30340         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
30341         -nodefaultlib.
30342
30343 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30344
30345         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
30346         for mcpu not cpu.
30347         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
30348         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
30349         not cpu.
30350         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
30351         Don't handle -shlib.
30352
30353 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30354
30355         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
30356         (CC1_SPEC): Don't handle -profile.
30357
30358 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30359
30360         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
30361         * config/mips/mips.h (CC1_SPEC): Likewise.
30362
30363 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30364
30365         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
30366         * config/mips/mips.h (CC1_SPEC): Likewise.
30367
30368 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30369
30370         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
30371         * config/m32r/linux.h (LINK_SPEC): Likewise.
30372         * config/mips/linux.h (LINK_SPEC): Likewise.
30373         * config/mips/linux64.h (LINK_SPEC): Likewise.
30374         * config/sparc/linux.h (LINK_SPEC): Likewise.
30375         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
30376         LINK_SPEC): Likewise.
30377         * config/xtensa/linux.h (LINK_SPEC): Likewise.
30378
30379 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30380
30381         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
30382         %{version:-v}.
30383         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
30384
30385 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30386
30387         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
30388         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
30389
30390 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30391
30392         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
30393
30394 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30395
30396         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
30397         supports -Bstatic/-Bdynamic.
30398         * configure: Regenerate.
30399
30400 2011-01-14  Jan Hubicka  <jh@suse.cz>
30401             Jack Howarth  <howarth@bromo.med.uc.edu>
30402
30403         PR target/46037
30404         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
30405         when checking debug_info_level. Test write_symbols instead of
30406         debug_hooks->var_location when setting flag_var_tracking_uninit.
30407
30408 2011-01-14  Richard Guenther  <rguenther@suse.de>
30409
30410         PR tree-optimization/47179
30411         * target.def (ref_may_alias_errno): New target hook.
30412         * targhooks.h (default_ref_may_alias_errno): Declare.
30413         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
30414         (default_ref_may_alias_errno): New function.
30415         * target.h (struct ao_ref_s): Declare.
30416         * tree-ssa-alias.c: Include target.h.
30417         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
30418         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
30419         (targhooks.o): Likewise.
30420         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
30421         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
30422
30423 2011-01-14  Richard Guenther  <rguenther@suse.de>
30424
30425         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
30426
30427 2011-01-14  Richard Guenther  <rguenther@suse.de>
30428
30429         PR tree-optimization/47280
30430         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
30431         return CFG changes.
30432         (tree_ssa_forward_propagate_single_use_vars): Deal with
30433         CFG changes from associate_plusminus.
30434
30435 2011-01-14  Richard Guenther  <rguenther@suse.de>
30436
30437         PR middle-end/47281
30438         Revert
30439         2011-01-11  Richard Guenther  <rguenther@suse.de>
30440
30441         PR tree-optimization/46076
30442         * tree-ssa.c (useless_type_conversion_p): Conversions from
30443         unprototyped to empty argument list function types are useless.
30444
30445 2011-01-14  Richard Guenther  <rguenther@suse.de>
30446
30447         PR tree-optimization/47286
30448         * tree-ssa-structalias.c (new_var_info): Register variables are global.
30449
30450 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30451
30452         PR middle-end/46823
30453         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
30454
30455 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
30456
30457         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
30458         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30459         * config/xtensa/xtensa.c (xtensa_libcall_value,
30460         xtensa_function_value_regno_p): New functions.
30461         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
30462
30463 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
30464
30465         PR c++/47213
30466         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
30467         PE specific hook.
30468         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
30469         New function prototype.
30470         * config/i386/winnt.c (i386_pe_assemble_visibility):
30471         Warn only if attribute was specified by user.
30472
30473 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
30474
30475         PR target/47251
30476         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
30477         floating point.
30478         (floatunsdidf2_fcfidu): Ditto.
30479
30480 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30481
30482         * config/s390/s390.c (print_operand_address): Replace 'error' with
30483         'output_operand_lossage'.
30484         (print_operand): Likewise.
30485
30486 2011-01-13  Jeff Law  <law@redhat.com>
30487
30488         PR rtl-optimization/39077
30489         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
30490         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
30491         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
30492         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
30493         * gcse.c (prune_insertions_deletions): New function.
30494         (compute_pre_data): Use it.
30495
30496 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
30497
30498         PR debug/PR46973
30499         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
30500         static function.
30501         (prune_unused_types_mark): Use it.
30502
30503 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
30504
30505         PR rtl-optimization/45352
30506         * sel-sched.c: Update copyright years.
30507         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
30508         in the advancing loop when we have issued issue_rate insns.
30509
30510 2011-01-12  Richard Henderson  <rth@redhat.com>
30511
30512         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
30513         (TARGET_MD_ASM_CLOBBERS): New.
30514
30515         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
30516         (TARGET_DELEGITIMIZE_ADDRESS): New.
30517
30518         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
30519         (clzsi2, *bsch): New patterns.
30520
30521         * config/mn10300/mn10300.md (INT): New mode iterator.
30522         (*mov<INT>_clr): New pattern, and peep2 to generate it.
30523
30524         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
30525         flag_split_wide_types.
30526
30527         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
30528         (mn10300_trampoline_init): Rewrite without a template, an immediate
30529         load and a direct branch.
30530         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
30531
30532 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
30533
30534         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30535         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
30536         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
30537         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30538
30539 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
30540
30541         PR debug/47209
30542         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
30543         of type.
30544
30545 2011-01-12  Jan Hubicka  <jh@suse.cz>
30546
30547         PR driver/47244
30548         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
30549         (PLUGIN_COND_CLOSE): New macro.
30550         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
30551
30552 2011-01-12  Richard Guenther  <rguenther@suse.de>
30553
30554         PR lto/47259
30555         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
30556         register variables in a MEM_REF.
30557
30558 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
30559
30560         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
30561         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
30562         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
30563         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
30564         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
30565         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
30566         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
30567         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
30568         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
30569         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
30570         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
30571         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
30572         * config/gnu-user.h: New.  Copied from linux.h.
30573         (LINUX_TARGET_STARTFILE_SPEC): Rename to
30574         GNU_USER_TARGET_STARTFILE_SPEC.
30575         (LINUX_TARGET_ENDFILE_SPEC): Rename to
30576         GNU_USER_TARGET_ENDFILE_SPEC.
30577         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
30578         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
30579         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
30580         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
30581         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
30582         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
30583         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
30584         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
30585         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
30586         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
30587         * config/arm/linux-eabi.h (CC1_SPEC): Use
30588         GNU_USER_TARGET_CC1_SPEC.
30589         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
30590         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
30591         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
30592         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
30593         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
30594         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
30595         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
30596         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
30597
30598 2011-01-12  Richard Guenther  <rguenther@suse.de>
30599
30600         PR other/46946
30601         * doc/invoke.texi (ffast-math): Document it is turned on
30602         with -Ofast.
30603
30604 2011-01-12  Jan Hubicka  <jh@suse.cz>
30605
30606         PR tree-optimization/47233
30607         * opts.c (common_handle_option): Disable ipa-reference with profile
30608         feedback.
30609
30610 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30611
30612         * c-parser.c (c_parser_objc_at_property_declaration): Improved
30613         error message.
30614
30615 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30616
30617         * c-parser.c (c_lex_one_token): Updated and reindented some
30618         comments.  No changes in code.
30619
30620 2011-01-11  Ian Lance Taylor  <iant@google.com>
30621
30622         * godump.c (go_output_var): Don't output the variable if there is
30623         already a type with the same name.
30624
30625 2011-01-11  Ian Lance Taylor  <iant@google.com>
30626
30627         * godump.c (go_format_type): Don't generate float80.
30628
30629 2011-01-11  Richard Henderson  <rth@redhat.com>
30630
30631         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
30632         declaration.  Rewrite for both speed and size.
30633         (mn10300_address_cost_1): Remove.
30634         (mn10300_register_move_cost): New.
30635         (mn10300_memory_move_cost): New.
30636         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
30637         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
30638         extensions, shifts, BSWAP, CLZ.
30639         (mn10300_wide_const_load_uses_clr): Remove.
30640         (TARGET_REGISTER_MOVE_COST): New.
30641         (TARGET_MEMORY_MOVE_COST): New.
30642         * config/mn10300/mn10300-protos.h: Update.
30643         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
30644
30645         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
30646         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
30647         * config/mn10300/mn10300-protos.h: Update.
30648         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
30649         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
30650         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
30651         (*test_int_bitfield, *test_byte_bitfield): Remove.
30652         (*bit_test, *subreg_bit_test): Remove.
30653         * config/mn10300/predicates.md (const_8bit_operand): Remove.
30654
30655         * config/mn10300/constraints.md ("c"): Rename from "A".
30656         ("A", "D"): New constraint letters.
30657         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
30658         (fmssf4, fnmasf4, fnmssf4): Likewise.
30659
30660         * config/mn10300/mn10300.md (isa): New attribute.
30661         (enabled): New attribute.
30662
30663         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
30664         (abssf2, negsf2): Define only for hardware fp.
30665         (sqrtsf2): Reformat.
30666         (addsf3, subsf3, mulsf3): Merge expander and insn.
30667
30668         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
30669         (DEBUGGER_AUTO_OFFSET): Remove.
30670         (DEBUGGER_ARG_OFFSET): Remove.
30671
30672         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
30673         Emit register stores with the same offsets as the hardware.
30674         (mn10300_store_multiple_operation): Don't check that the register
30675         save offsets are monotonic.
30676         * config/mn10300/mn10300-protos.h: Update.
30677
30678         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
30679
30680         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
30681         in terms of the value on the stack, not the MDR register.
30682
30683 2011-01-11  Jan Hubicka  <jh@suse.cz>
30684
30685         PR lto/45721
30686         PR lto/45375
30687         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
30688         (symbol_alias_set_destroy, symbol_alias_set_contains,
30689         propagate_aliases_backward): Declare.
30690         * lto-streamer-out.c (struct sets): New sturcture.
30691         (trivally_defined_alias): New function.
30692         (output_alias_pair_p): Rewrite.
30693         (output_unreferenced_globals): Fix output of alias pairs.
30694         (produce_symtab): Likewise.
30695         * ipa.c (function_and_variable_visibility): Set weak alias destination
30696         as needed in lto.
30697         * varasm.c (symbol_alias_set_t): Remove.
30698         (symbol_alias_set_destroy): Export.
30699         (propagate_aliases_forward, propagate_aliases_backward): New functions
30700         based on ...
30701         (compute_visible_aliases): ... this one; remove.
30702         (trivially_visible_alias): New
30703         (trivially_defined_alias): New.
30704         (remove_unreachable_alias_pairs): Rewrite.
30705         (finish_aliases_1): Reorganize code checking if alias is defined.
30706         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
30707         in LTO mode.
30708
30709 2011-01-11  Richard Guenther  <rguenther@suse.de>
30710
30711         PR tree-optimization/46076
30712         * tree-ssa.c (useless_type_conversion_p): Conversions from
30713         unprototyped to empty argument list function types are useless.
30714
30715 2011-01-11  Richard Guenther  <rguenther@suse.de>
30716
30717         PR middle-end/45235
30718         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
30719         volatile MEMs as MEM_READONLY_P.
30720
30721 2011-01-11  Richard Guenther  <rguenther@suse.de>
30722
30723         PR tree-optimization/47239
30724         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
30725
30726 2011-01-11  Jeff Law  <law@redhat.com>
30727
30728         PR tree-optimization/47086
30729         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
30730         IVs from statements that might throw.
30731
30732 2011-01-10  Jan Hubicka  <jh@suse.cz>
30733
30734         PR lto/45375
30735         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
30736
30737 2011-01-10  Jan Hubicka  <jh@suse.cz>
30738
30739         PR lto/45375
30740         * profile.c (read_profile_edge_counts): Ignore profile inconistency
30741         when correcting profile.
30742
30743 2011-01-10  Jan Hubicka  <jh@suse.cz>
30744
30745         PR lto/46083
30746         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
30747         DECL_FINI_PRIORITY.
30748         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
30749         Restore DECL_FINI_PRIORITY.
30750
30751 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30752
30753         * doc/gimple.texi: Fix quoting of multi-word return values in
30754         @deftypefn statements.  Ensure presence of return value.  Wrap
30755         overlong @deftypefn lines.
30756         (is_gimple_operand, is_gimple_min_invariant_address): Remove
30757         descriptions of removed functions.
30758         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
30759         of multi-word return value in @deftypefn statement.
30760
30761 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30762
30763         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
30764         (Conditional Expressions, Logical Operators)
30765         (Statement and operand traversals): Do not indent smallexample
30766         code.  Fix duplicate function argument in example.
30767
30768 2011-01-10  Jeff Law  <law@redhat.com>
30769
30770         PR tree-optimization/47141
30771         * ipa-split.c (split_function): Handle case where we are
30772         returning a value and the return block has a virtual operand phi.
30773
30774 2011-01-10  Jan Hubicka  <jh@suse.cz>
30775
30776         PR tree-optimization/47234
30777         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
30778         (pass_feedback_split_functions): Declare.
30779         * passes.c (init_optimization_passes): Add ipa-split as subpass of
30780         tree-profile.
30781         * ipa-split.c (gate_split_functions): Update comments; disable
30782         split-functions for profile_arc_flag and branch_probabilities.
30783         (gate_feedback_split_functions): New function.
30784         (execute_feedback_split_functions): New function.
30785         (pass_feedback_split_functions): New global var.
30786
30787 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
30788
30789         PR lto/46760
30790         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
30791         calling gimple_call_set_cannot_inline.
30792
30793 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
30794
30795         * config/darwin-sections.def: Remove unused section.
30796
30797 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
30798
30799         PR c++/47218
30800         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
30801
30802 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
30803
30804         PR objc/47232
30805         * c-parser.c (c_parser_declaration_or_fndef): Improved
30806         error message.
30807
30808 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
30809
30810         * config/i386/winnt.c (i386_pe_start_function): Make sure
30811         to switch back to function's section.
30812
30813 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
30814
30815         PR gcc/46902
30816         PR testsuite/46912
30817         * plugin.c: Move include of dlfcn.h from here...
30818         * system.h: ... to here.
30819
30820 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30821
30822         * doc/cpp.texi (C++ Named Operators): Fix markup for header
30823         file name.
30824         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
30825         two extra empty pages in PDF output.
30826
30827 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
30828
30829         PR objc/47078
30830         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
30831         for error recovery purposes behave as if it was not specified so
30832         that the default type is usd.
30833
30834 2011-01-07  Jan Hubicka  <jh@suse.cz>
30835
30836         PR tree-optmization/46469
30837         * ipa.c (function_and_variable_visibility): Clear needed flags on
30838         nodes with external decls; handle weakrefs merging correctly.
30839
30840 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
30841
30842         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
30843         not false.
30844
30845 2011-01-07  Jan Hubicka  <jh@suse.cz>
30846
30847         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
30848         and no longer claim that gold is required for linker plugin.
30849         * configure: Regenerate.
30850         * gcc.c (PLUGIN_COND): New macro.
30851         (LINK_COMMAND_SPEC): Use it.
30852         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
30853         * config.in (HAVE_LTO_PLUGIN): New.
30854         * configure.ac (--with-lto-plugin): New parameter; autodetect
30855         HAVE_LTO_PLUGIN.
30856
30857 2011-01-07  Jan Hubicka  <jh@suse.cz>
30858
30859         PR tree-optimization/46367
30860         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
30861         when we can update original.
30862         (cgraph_mark_inline_edge): Sanity check.
30863         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
30864
30865 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30866
30867         * config/spu/spu.h (ASM_COMMENT_START): Define.
30868
30869 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
30870
30871         PR driver/42445
30872         * gcc.c (%>S): New.
30873         (SWITCH_KEEP_FOR_GCC): Likewise.
30874         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
30875         (do_spec_1): Handle "%>".
30876
30877         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
30878
30879 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
30880
30881         PR target/47201
30882         * config/i386/i386.c (ix86_delegitimize_address): If
30883         simplify_gen_subreg fails, return orig_x.
30884
30885         PR bootstrap/47187
30886         * value-prof.c (gimple_stringop_fixed_value): Handle
30887         lhs of the call properly.
30888
30889 2011-01-07  Jan Hubicka  <jh@suse.cz>
30890
30891         PR lto/45375
30892         * lto-opt.c (lto_reissue_options): Set flag_shlib.
30893
30894 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30895
30896         * target.def (function_switched_text_sections): New hook.
30897         * doc/tm.texi: Regenerated.
30898         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30899         * final.c (default_function_switched_text_sections): New.
30900         (final_scan_insn): Call function_switched_text_sections when a
30901         mid-function section change occurs.
30902         * output.h (default_function_switched_text_sections): Declare.
30903         * config/darwin-protos.h (darwin_function_switched_text_sections):
30904         Likewise.
30905         * config/darwin.c (darwin_function_switched_text_sections): New.
30906         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30907
30908 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30909
30910         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
30911         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
30912         the secondary code fragment when outputting for DWARF == 2.
30913
30914 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
30915
30916         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30917         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
30918         Remove.
30919         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
30920         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30921
30922 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
30923
30924         PR debug/46704
30925         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
30926         when it is not empty.
30927
30928 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
30929
30930         Bobcat Enablement
30931         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
30932         (case ${target}): Add btver1.
30933         * config/i386/driver-i386.c (host_detect_local_cpu): Let
30934         -march=native recognize btver1 processors.
30935         * config/i386/i386-c.c (ix86_target_macros_internal): Add
30936         btver1 def_and_undef
30937         * config/i386/i386.c (struct processor_costs btver1_cost): New
30938         btver1 cost table.
30939         (m_BTVER1): New definition.
30940         (m_AMD_MULTIPLE): Includes m_BTVER1.
30941         (initial_ix86_tune_features): Add btver1 tune.
30942         (processor_target_table): Add btver1 entry.
30943         (static const char *const cpu_names): Add btver1 entry.
30944         (software_prefetching_beneficial_p): Add btver1.
30945         (ix86_option_override_internal): Add btver1 instruction sets.
30946         (ix86_issue_rate): Add btver1.
30947         (ix86_adjust_cost): Add btver1.
30948         * config/i386/i386.h (TARGET_BTVER1): New definition.
30949         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
30950         (enum processor_type): Add PROCESSOR_BTVER1.
30951         * config/i386/i386.md (define_attr "cpu"): Add btver1.
30952
30953 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30954
30955         PR target/43309
30956         * config/i386/i386.c (legitimize_tls_address)
30957         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
30958         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
30959         (tls_initial_exec_64_sun): New pattern.
30960
30961 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
30962
30963         * doc/invoke.texi (Overall Options): Improve wording and markup
30964         of the description of -wrapper.
30965
30966 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30967
30968         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
30969         rdynamic, threads): New Driver options.
30970
30971 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30972
30973         PR target/38118
30974         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
30975         if coming from .tdata.
30976         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
30977
30978 2011-01-06  Jan Hubicka  <jh@suse.cz>
30979
30980         PR lto/47188
30981         * collect2.c (main): Do not enable LTOmode when plugin is active.
30982
30983 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30984
30985         PR other/45915
30986         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
30987         --version output if supported.
30988         * configure: Regenerate.
30989
30990 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30991
30992         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
30993         Driver options.
30994
30995 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
30996
30997         PR c/47150
30998         * c-convert.c (convert): When converting a complex expression
30999         other than COMPLEX_EXPR to a different complex type, ensure
31000         c_save_expr is called instead of save_expr, unless in_late_binary_op.
31001         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
31002         when converting COMPLEX_TYPE.
31003
31004 2011-01-06  Ira Rosen  <irar@il.ibm.com>
31005
31006         PR tree-optimization/47139
31007         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
31008         only the last reduction value is used outside the loop.  Update
31009         documentation.
31010
31011 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
31012
31013         * config/rtems.opt: New.
31014         * config.gcc (*-*-rtems*): Use rtems.opt.
31015
31016 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
31017
31018         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
31019         processors do not support 3DNow instructions.
31020
31021 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31022
31023         * config/spu/spu.c (spu_option_override): Set parameter
31024         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
31025
31026 2011-01-05  Jan Hubicka  <jh@suse.cz>
31027
31028         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
31029         at the command line.
31030
31031 2011-01-05  Martin Jambor  <mjambor@suse.cz>
31032
31033         PR lto/47162
31034         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
31035         deltas on streamed outgoing edges.
31036         (output_node_opt_summary): Output info for outgoing edges only when
31037         the node is in new parameter set.
31038         (output_cgraph_opt_summary): New parameter set, passed to the two
31039         aforementioned functions.  Update its forward declaration and its
31040         callee too.
31041
31042 2011-01-05  Tom Tromey  <tromey@redhat.com>
31043
31044         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
31045         operator to c_finish_omp_atomic.
31046         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
31047         (build_unary_op): Update.
31048         (build_modify_expr): Update.
31049         (build_asm_expr): Update.
31050
31051 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31052
31053         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
31054         newly inserted insns.
31055         (pad_bb): Likewise.
31056         (spu_emit_branch_hint): Likewise.
31057         (insert_hbrp_for_ilb_runout): Likewise.
31058         (spu_machine_dependent_reorg): Call df_finish_pass after
31059         schedule_insns returns.
31060
31061 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31062
31063         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
31064
31065 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
31066
31067         PR tree-optimization/47005
31068         * tree-sra.c (struct access): Add 'non_addressable' bit.
31069         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
31070         (decide_one_param_reduction): Return 0 if the parameter is passed by
31071         reference and one of the accesses in the group is non_addressable.
31072
31073 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31074
31075         PR tree-optimization/47056
31076         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
31077         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
31078         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
31079
31080 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31081
31082         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
31083         initializer.  Skip view conversions from aggregate types.
31084
31085 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
31086
31087         PR bootstrap/47055
31088         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
31089
31090 2011-01-04  Philipp Thomas  <pth@suse.de>
31091
31092         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
31093         obvious typo.
31094
31095 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31096
31097         * function.c (thread_prologue_and_epilogue_insns): Do not crash
31098         on empty epilogue sequences.
31099
31100 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
31101
31102         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
31103         non-static): New Driver options.
31104
31105 2011-01-04  Jie Zhang  <jie@codesourcery.com>
31106
31107         PR driver/47137
31108         * gcc.c (default_compilers[]): Set combinable field to 0
31109         for all assembly languages.
31110
31111 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
31112
31113         * config/mips/loongson3a.md: New file.
31114         * config/mips/mips.md: Include loongson3a.md.
31115         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
31116         TUNE_LOONGSON_3A.
31117
31118 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
31119
31120         PR middle-end/47017
31121         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
31122         instead of convert_memory_address_addr_space on the base expression.
31123
31124 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31125
31126         * config/spu/spu.c (spu_option_override): Update error text
31127         for bad -march= / -mtune= values.
31128
31129 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31130
31131         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
31132         if branch-hint optimization will be performed.
31133
31134 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31135
31136         PR tree-optimization/47148
31137         * ipa-split.c (split_function): Convert arguments to
31138         DECL_ARG_TYPE if possible.
31139
31140         PR tree-optimization/47155
31141         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
31142         when computing uns.
31143
31144         PR rtl-optimization/47157
31145         * combine.c (try_combine): If undobuf.other_insn becomes
31146         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
31147         and set *new_direct_jump_p too.
31148
31149 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
31150
31151         PR tree-optimization/47021
31152         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
31153
31154 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31155
31156         * gcc.c (process_command): Update copyright notice dates.
31157         * gcov.c (print_version): Likewise.
31158         * gcov-dump.c (print_version): Likewise.
31159         * mips-tfile.c (main): Likewise.
31160         * mips-tdump.c (main): Likewise.
31161
31162 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31163
31164         PR tree-optimization/46801
31165         * tree-sra.c (type_internals_preclude_sra_p): Check whether
31166         aggregate fields start at byte boundary instead of the bit-field flag.
31167
31168 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
31169
31170         PR driver/47137
31171         * gcc.c (main): Revert revision 168407.
31172
31173 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31174
31175         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
31176
31177 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31178
31179         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
31180         vector optab to expand vector/scalar shift, update gimple to vector.
31181
31182 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31183
31184         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
31185         a thunk.
31186
31187 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31188
31189         PR tree-optimization/46984
31190         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
31191         HOST_WIDE_INT.
31192         (cgraph_create_indirect_edge): Fixed line length.
31193         (cgraph_indirect_call_info): Declare.
31194         (cgraph_make_edge_direct) Update declaration.
31195         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
31196         (cgraph_create_indirect_edge): Use it.
31197         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
31198         callees.
31199         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
31200         the new thunk_delta representation.
31201         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
31202         HOST_WIDE_INT.
31203         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
31204         (ipa_read_indirect_edge_info): Likewise.
31205         * lto-cgraph.c (output_edge_opt_summary): New function.
31206         (output_node_opt_summary): Call it on all outgoing edges.
31207         (input_edge_opt_summary): New function.
31208         (input_node_opt_summary): Call it on all outgoing edges.
31209
31210 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
31211
31212         PR driver/47137
31213         * gcc.c (main): Don't check have_o when settting combine_inputs.
31214
31215 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
31216
31217         * regrename.c: Add general comment describing the pass.
31218         (struct du_head): Remove 'length' field.
31219         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
31220         (regrename_optimize): Do not sort chains.  Rework comments, add others.
31221         Force renaming to the preferred class (if any) in the first pass and do
31222         not consider registers that belong to it in the second pass.
31223         (create_new_chain): Do not set 'length' field.
31224         (scan_rtx_reg): Likewise.
31225
31226 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
31227
31228         PR tree-optimization/47140
31229         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
31230         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
31231         to bit_value_binop.
31232
31233         PR rtl-optimization/47028
31234         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
31235         parm_birth_insn instead of at the beginning of first bb.
31236
31237 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
31238
31239         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
31240         Remove the word "see" before "@pxref".
31241         * doc/rtl.texi: Remove the word "see" before "@pxref".
31242
31243 2011-01-01  Jan Hubicka  <jh@suse.cz>
31244
31245         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
31246         memory.
31247
31248 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
31249
31250         PR target/38662
31251         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
31252
31253 \f
31254 Copyright (C) 2011 Free Software Foundation, Inc.
31255
31256 Copying and distribution of this file, with or without modification,
31257 are permitted in any medium without royalty provided the copyright
31258 notice and this notice are preserved.