OSDN Git Service

* config/i386/i386.md (simple_return): Disable
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-12  Kai Tietz  <ktietz@redhat.com>
2
3         * config/i386/i386.md (simple_return): Disable
4         if TARGET_SEH is active.
5
6 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
7
8         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
9
10 2011-10-12  Richard Guenther  <rguenther@suse.de>
11
12         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
13         of the first store we visit in a basic-block.
14         (get_continuation_for_phi): Search for a candidate VUSE that
15         might dominates all others.  Do pairwise disambiguation against
16         that candidate.
17
18 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
19
20         PR tree-optimization/50189
21         * tree-vrp.c (extract_range_from_assert): Use the type of
22         the variable, not the limit.
23
24 2011-10-12  Richard Guenther  <rguenther@suse.de>
25
26         PR tree-optimization/50700
27         * tree-object-size.c (addr_object_size): Simplify and treat
28         MEM_REF bases consistently.
29
30 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
31
32         * function.c (prepare_shrink_wrap, bb_active_p): New function.
33         (thread_prologue_and_epilogue_insns): Use bb_active_p.
34         Call prepare_shrink_wrap, then recompute bb_active_p for the
35         last block.
36
37 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
38
39         PR c/50565
40         * convert.c (convert_to_integer): Do not narrow operands of
41         pointer subtraction.
42
43 2011-10-12  Nick Clifton  <nickc@redhat.com>
44
45         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
46         emit a .eabi_attribute assembler directive, possibly with a
47         comment attached.
48         * config/arm/arm.c (arm_file_start): Use the new macro.
49         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
50
51 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
52
53         PR target/49939
54         * config/avr/avr.md (*movqi): Rename to movqi_insn.
55         (*call_insn): Rename to call_insn.
56         (*call_value_insn): Rename to call_value_insn.
57         * config/avr/avr.c (avr_2word_insn_p): New static function.
58         (jump_over_one_insn_p): Use it.
59
60 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
61
62         * expr.h (copy_blkmode_to_reg): Declare.
63         * expr.c (copy_blkmode_to_reg): New function.
64         (expand_assignment): Don't expand register RESULT_DECLs before
65         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
66         RESULT_DECL register.
67         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
68         * stmt.c (expand_return): Move BLKmode-to-register code into
69         copy_blkmode_to_reg.
70
71 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
72
73         PR target/49965
74         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
75         (mov<F:mode>cc): Likewise.
76
77 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
78
79         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
80
81 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
82
83         * tree.h (built_in_decls): Delete old interface with two parallel
84         arrays to hold standard builtin declarations, and replace it with
85         a function based interface that can support creating builtins on
86         the fly in the future.  Change all uses, and poison the old
87         names.  Make sure 0 is not a legitimate builtin index.
88         (implicit_built_in_decls): Ditto.
89         (built_in_info): Ditto.
90         (BUILTIN_VALID_P): Ditto.
91         (builtin_decl_explicit): Ditto.
92         (builtin_decl_implicit): Ditto.
93         (set_builtin_decl): Ditto.
94         (set_builtin_decl_implicit_p): Ditto.
95         (builtin_decl_explicit_p): Ditto.
96         (builtin_decl_implicit_p): Ditto.
97         * tree-complex.c (expand_complex_libcall): Ditto.
98         * tree-loop-distribution.c (generate_memset_zero): Ditto.
99         * tree-ssa-strlen.c (get_string_length): Ditto.
100         (handle_builtin_strcpy): Ditto.
101         (handle_builtin_strcat): Ditto.
102         * tree.c (iterative_hash_expr): Ditto.
103         (local_define_builtin): Ditto.
104         (build_common_builtin_nodes): Ditto.
105         * builtins.c (built_in_decls): Ditto.
106         (implicit_built_in_decls): Ditto.
107         (built_in_info): Ditto
108         (expand_builtin_classify_type): Ditto.
109         (mathfn_built_in_1): Ditto.
110         (expand_builtin_cexpi): Ditto.
111         (expand_builtin_mempcpy_args): Ditto.
112         (expand_builtin_stpcpy): Ditto.
113         (gimplify_va_arg_expr): Ditto.
114         (expand_builtin_sync_operation): Ditto.
115         (build_builtin_expect_predicate): Ditto.
116         (fold_builtin_memory_op): Ditto.
117         (fold_builtin_strcpy): Ditto.
118         (fold_builtin_stpcpy): Ditto.
119         (fold_builtin_strncpy): Ditto.
120         (fold_builtin_interclass_mathfn): Ditto.
121         (fold_builtin_classify): Ditto.
122         (fold_builtin_2): Ditto.
123         (fold_builtin_strstr): Ditto.
124         (fold_builtin_strrchr): Ditto.
125         (fold_builtin_strpbrk): Ditto.
126         (fold_builtin_strcat): Ditto.
127         (fold_builtin_strncat): Ditto.
128         (fold_builtin_strcspn): Ditto.
129         (fold_builtin_fputs): Ditto.
130         (fold_builtin_sprintf): Ditto.
131         (fold_builtin_snprintf): Ditto.
132         (expand_builtin_memory_chk): Ditto.
133         (fold_builtin_memory_chk): Ditto.
134         (fold_builtin_stxcpy_chk): Ditto.
135         (fold_builtin_strncpy_chk): Ditto.
136         (fold_builtin_strcat_chk): Ditto.
137         (fold_builtin_strncat_chk): Ditto.
138         (fold_builtin_sprintf_chk_1): Ditto.
139         (fold_builtin_snprintf_chk_1): Ditto.
140         (fold_builtin_printf): Ditto.
141         (fold_builtin_fprintf): Ditto.
142         (fold_call_stmt): Ditto.
143         (set_builtin_user_assembler_name): Ditto.
144         * tree-emutls.c (emutls_common_1): Ditto.
145         * omp-low.c (scan_omp): Ditto.
146         (lower_rec_input_clauses): Ditto.
147         (lower_reduction_clauses): Ditto.
148         (expand_parallel_call): Ditto.
149         (expand_task_call): Ditto.
150         (maybe_catch_exception): Ditto.
151         (optimize_omp_library_calls): Ditto.
152         (expand_omp_for_generic): Ditto.
153         (expand_omp_for_static_nochunk): Ditto.
154         (expand_omp_for_static_chunk): Ditto.
155         (expand_omp_sections): Ditto.
156         (expand_omp_atomic_fetch_op): Ditto.
157         (expand_omp_atomic_pipeline): Ditto.
158         (expand_omp_atomic_mutex): Ditto.
159         (lower_omp_single_simple): Ditto.
160         (lower_omp_single_copy): Ditto.
161         (lower_omp_master): Ditto.
162         (lower_omp_ordered): Ditto.
163         (lower_omp_critical): Ditto.
164         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
165         * builtins.c (DEF_BUILTIN_STUB): Ditto.
166         (BUILT_IN_NONE): Ditto.
167         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
168         * gimple-low.c (lower_function_body): Ditto.
169         (lower_builtin_setjmp): Ditto.
170         * c-decl.c (merge_decls): Ditto.
171         * tree-eh.c (lower_resx): Ditto.
172         (lower_resx): Ditto.
173         (lower_eh_dispatch): Ditto.
174         * function (gimplify_parameters): Ditto.
175         * c-typeck.c (build_function_call_vec): Ditto.
176         * gimplify.c (build_stack_save_restore): Ditto.
177         (gimplify_vla_decl): Ditto.
178         (gimplify_modify_expr_to_memcpy): Ditto.
179         (gimplify_modify_expr_to_memset): Ditto.
180         (gimplify_variable_sized_compare): Ditto.
181         (gimplify_function_tree): Ditto.
182         * calls.c (emit_call_1): Ditto.
183         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
184         * tree-nested.c (convert_nl_goto_reference): Ditto.
185         (convert_tramp_reference_op): Ditto.
186         (finalize_nesting_tree_1): Ditto.
187         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
188         (tree_ssa_prefetch_arrays): Ditto.
189         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
190         * system.h (built_in_decls): Ditto.
191         (implicit_built_in_decls): Ditto.
192         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
193         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
194         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
195         (ix86_veclibabi_svml): Ditto.
196         (ix86_veclibabi_acml): Ditto.
197         * config/vms/vms.c (vms_patch_builtins): Ditto.
198         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
199         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
200         (rs6000_builtin_vectorized_libmass): Ditto.
201         (rs6000_init_builtins): Ditto.
202         * config/darwin.c (darwin_override_options): Ditto.
203         (darwin_patch_builtin): Ditto.
204         (darwin_rename_builtins): Ditto.
205         * config/pa/pa.c (pa_init_builtins): Ditto.
206
207 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
208
209         * tree.h (copy_ref_info): Expose existing function.
210         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
211         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
212
213 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
214
215         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
216         (avr_regno_mode_code_ok_for_base_p): New prototype.
217         * config/avr/avr.h (BASE_REG_CLASS): Remove.
218         (REGNO_OK_FOR_BASE_P): Remove.
219         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
220         (REG_OK_FOR_BASE_STRICT_P): Remove.
221         (MODE_CODE_BASE_REG_CLASS): New define.
222         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
223         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
224         (avr_regno_mode_code_ok_for_base_p): New function.
225         (avr_reg_ok_for_addr_p): New static function.
226         (avr_legitimate_address_p): Use it.  Beautify.
227
228 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
229
230         PR target/50447
231         * config/avr/avr.md (cc): Add out_plus attribute alternative.
232         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
233         avr_out_plus for all CONST_INT addends.
234         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
235         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
236         CC_OUT_PLUS.
237         (avr_out_plus_1): Change prototype and report effect on cc0.
238         (avr_out_plus): Ditto.
239         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
240
241 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
242
243         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
244         the extra break.
245
246 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
247
248         * doc/invoke.texi: Document new warning.
249         * common.opt (Wvector-operation-performance): Define new warning.
250         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
251         vector operation.
252         (exapnd_vector_parallel): Warn about expanded vector operation.
253         (lower_vec_shuffle): Warn about expanded vector operation.
254         * c-typeck.c (c_build_vec_perm_expr): Store correct location
255         when creating VEC_PERM_EXPR.
256
257 2011-10-11  Richard Guenther  <rguenther@suse.de>
258
259         PR tree-optimization/50204
260         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
261         two argument handling from ...
262         (get_continuation_for_phi): ... here.  Handle arbitrary number
263         of PHI args.
264
265 2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
266
267         PR c++/33067
268         * c-family/c-pretty-print.c (pp_c_floating_constant): Output
269         max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.
270
271 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
272
273         * modulo-sched.c: Fix comment typo.  Mention the possibility
274         of using scheduling windows of II+1 cycles.
275
276 2011-10-11  Tristan Gingold  <gingold@adacore.com>
277
278         * doc/invoke.texi (C Dialect Options): Document
279         -fallow-parameterless-variadic-functions.
280         * c-parser.c (c_parser_parms_list_declarator): Handle it.
281
282 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
283
284         * config/avr/avr.c (avr_option_override): Set
285         flag_omit_frame_pointer to 0 if frame pointer is needed for
286         unwinding.
287
288 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
289
290         PR bootstrap/50665
291         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
292         optab_index to enum direct_optab_index.
293         (vec_perm_optab): Update.
294
295 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
296
297         * config/cris/cris.c (cris_preferred_reload_class): New function.
298         (TARGET_PREFERRED_RELOAD_CLASS): Define.
299         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
300
301 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
302
303         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
304         !AVR_HAVE_JMP_CALL.
305         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
306         (*tablejump_enh, *tablejump): Remove insns.
307         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
308         EIJMP for indirect jump.  Use LPM Z+ where available.
309
310 2011-10-10  Richard Henderson  <rth@redhat.com>
311
312         * doc/md.texi (vec_perm_const): Fix typo in cindex.
313
314 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
315             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
316
317         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
318
319 2011-10-10  Richard Guenther  <rguenther@suse.de>
320
321         PR middle-end/50389
322         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
323         mark symbols for renaming.  Append the VUSE to all statements
324         that possibly can have one.
325
326 2011-10-10  Richard Guenther  <rguenther@suse.de>
327
328         * ipa-split.c (pass_split_functions): Add verification TODOs.
329         (pass_feedback_split_functions): Likewise.
330
331 2011-10-10  Richard Guenther  <rguenther@suse.de>
332
333         PR middle-end/50195
334         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
335         only when optimizing.
336
337 2011-10-10  Nick Clifton  <nickc@redhat.com>
338
339         PR middle-end/49801
340         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
341         df_get_live_out instead of accessing the bitmaps directly.
342         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
343         df_live_add_problem and df_analyze.
344
345 2011-10-10  Michael Matz  <matz@suse.de>
346
347         PR middle-end/50638
348         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
349
350 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
351
352         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
353         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
354         (node_sched_params): Remove first_reg_move and nreg_moves.
355         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
356         (update_node_sched_params): Move up file.
357         (print_node_sched_params): Print the stage.  Don't dump info related
358         to first_reg_move and nreg_moves.
359         (set_columns_for_row): New function.
360         (set_columns_for_ps): Move up file and use set_columns_for_row.
361         (schedule_reg_move): New function.
362         (schedule_reg_moves): Call extend_node_sched_params and
363         schedule_reg_move.  Extend size of uses bitmap.  Initialize
364         num_consecutive_stages.  Return false if a move could not be
365         scheduled.
366         (apply_reg_moves): Don't emit moves here.
367         (permute_partial_schedule): Handle register moves.
368         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
369         to the same stage-count test as ddg nodes.
370         (generate_prolog_epilog): Update calls accordingly.
371         (sms_schedule): Allow move-scheduling to add a new first stage.
372
373 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
374
375         * modulo-sched.c (ps_insn): Adjust comment.
376         (ps_reg_move_info): New structure.
377         (partial_schedule): Add reg_moves field.
378         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
379         (node_sched_params): Turn first_reg_move into an identifier.
380         (ps_reg_move): New function.
381         (ps_rtl_insn): Cope with register moves.
382         (ps_first_note): Adjust comment and assert that the instruction
383         isn't a register move.
384         (node_sched_params): Replace with...
385         (node_sched_param_vec): ...this vector.
386         (set_node_sched_params): Adjust accordingly.
387         (print_node_sched_params): Take a partial schedule instead of a ddg.
388         Use ps_rtl_insn and ps_reg_move.
389         (generate_reg_moves): Rename to...
390         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
391         move in the partial schedule, but don't emit it here.  Don't perform
392         register substitutions here either.
393         (apply_reg_moves): New function.
394         (duplicate_insns_of_cycles): Use register indices directly,
395         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
396         (sms_schedule): Call schedule_reg_moves before committing to
397         a partial schedule.   Try the next ii if the schedule fails.
398         Use apply_reg_moves instead of generate_reg_moves.  Adjust
399         call to print_node_sched_params.  Free node_sched_param_vec
400         instead of node_sched_params.
401         (create_partial_schedule): Initialize reg_moves.
402         (free_partial_schedule): Free reg_moves.
403
404 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
405
406         * modulo-sched.c (ps_insn): Replace node field with an identifier.
407         (SCHED_ASAP): Replace with..
408         (NODE_ASAP): ...this macro.
409         (SCHED_PARAMS): New macro.
410         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
411         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
412         (node_sched_params): Remove asap.
413         (ps_rtl_insn, ps_first_note): New functions.
414         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
415         asap values.
416         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
417         (generate_reg_moves): Pass ids to the SCHED_* macros.
418         (update_node_sched_params): Take a ps insn identifier rather than
419         a node as parameter.  Use ps_rtl_insn.
420         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
421         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
422         (optimize_sc): Update for above field and SCHED_* macro changes.
423         Update calls to try_scheduling_node_in_cycle and
424         update_node_sched_params.
425         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
426         macro changes.  Use ps_rtl_insn and ps_first_note.
427         (sms_schedule): Pass ids to the SCHED_* macros.
428         (get_sched_window): Adjust for above field and SCHED_* macro changes.
429         Use NODE_ASAP instead of SCHED_ASAP.
430         (try_scheduling_node_in_cycle): Remove node parameter.  Update
431         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_*
432         macros.
433         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
434         (ps_insert_empty_row): Adjust for above field changes.
435         (compute_split_row): Use ids rather than nodes.
436         (verify_partial_schedule): Adjust for above field changes.
437         (print_partial_schedule): Use ps_rtl_insn.
438         (create_ps_insn): Take an id rather than a node.
439         (ps_insn_find_column): Adjust for above field changes.
440         Use ps_rtl_insn.
441         (ps_insn_advance_column): Adjust for above field changes.
442         (add_node_to_ps): Remove node parameter.  Update call to
443         create_ps_insn.
444         (ps_has_conflicts): Use ps_rtl_insn.
445         (ps_add_node_check_conflicts): Replace node parameter than an id.
446
447 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
448
449         * modulo-sched.c (undo_replace_buff_elem): Delete.
450         (generate_reg_moves): Don't build and return an undo list.
451         (free_undo_replace_buff): Delete.
452         (sms_schedule): Adjust call to generate_reg_moves.
453         Don't call free_undo_replace_buff.
454
455 2011-10-10  Matthias Klose <doko@ubuntu.com>
456
457         * common/config/m32c: Remove empty directory.
458
459 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
460
461         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
462
463 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
464
465         PR target/50652
466         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
467         atmega164a to 0x100.
468
469 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
470
471         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
472         the replacement if the conversion to the LHS type is not useless.
473
474 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
475
476         PR tree-optimization/50635
477         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
478         DEF_STMT to the list of statements to be replaced by the
479         pattern statements.
480         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
481
482 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
483
484         * system.h: Commit forgotten hunk in previous patch.
485         (OUTPUT_ADDR_CONST_EXTRA): Poison.
486
487 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
488
489         PR libobjc/50428
490         * doc/objc.texi (Garbage Collection): Updated example to protect
491         +initialize against execution in subclasses.
492
493 2011-10-07  Richard Henderson  <rth@redhat.com>
494
495         * doc/extend.texi (__builtin_shuffle): Improve the description to
496         include the modulus of the selector.  Mention OpenCL.
497         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
498
499         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
500         * genopinit.c (optabs): Rename vshuffle to vec_perm.
501         * c-typeck.c (c_build_vec_perm_expr): Rename from
502         c_build_vec_shuffle_expr.  Update for name changes.
503         * optabs.c (expand_vec_perm_expr_p): Rename from
504         expand_vec_shuffle_expr_p.
505         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
506         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
507         (vec_perm_optab): Rename from vshuffle_optab.
508         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
509         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
510         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
511
512         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
513         ix86_expand_vshuffle.
514         * config/i386/i386-protos.h: Update.
515         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
516         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
517
518 2011-10-07  Richard Henderson  <rth@redhat.com>
519
520         * config/i386/predicates.md (avx2_pblendw_operand): New.
521         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
522         (avx2_pblendw, *avx2_pblendw): New expander and insn.
523
524 2011-10-07  Richard Henderson  <rth@redhat.com>
525
526         * config/i386/i386.c (bdesc_args): Update code for
527         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
528         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
529         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
530         * config/i386/sse.md (mode iterator V16): Add V2TI.
531         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
532         (mode attr ssse3_avx2): Add V2TI.
533         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
534
535 2011-10-07  David S. Miller  <davem@davemloft.net>
536
537         PR 50655
538         * configure.ac: Add .register directives to VIS3 test.
539         * configure: Regenerate.
540
541 2011-10-07  Richard Henderson  <rth@redhat.com>
542
543         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
544
545 2011-10-07  Richard Henderson  <rth@redhat.com>
546
547         PR 49752
548         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
549
550 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
551
552         * config/arm/predicates.md (shift_amount_operand): Remove constant
553         range check.
554         (shift_operator): Check range of constants for all shift operators.
555
556 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
557
558         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
559         Load GOT pointer for non-pic builds.
560         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
561         (s390_emit_call): Likewise.
562
563 2011-10-07  Tom de Vries  <tom@codesourcery.com>
564
565         PR middle-end/50527
566         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
567         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
568         * tree-ssa-ccp.c (evaluate_stmt): Set align for
569         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
570         * ipa-pure-const.c (special_builtin_state): Handle
571         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
572         * function.c (gimplify_parameters): Lower vla to
573         * gimplify.c (gimplify_vla_decl): Same.
574         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
575         * tree-mudflap.c (mf_xform_statements): Same.
576         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
577         * varasm.c (incorporeal_function_p): Same.
578         * tree-object-size.c (alloc_object_size): Same.
579         * gimple.c (gimple_build_call_from_tree): Same.
580
581 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
582
583         * function.c (frame_required_for_rtx): Remove function.
584         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
585         changed.  Compute a set of mentioned registers and compare against
586         the new arg rather than calling frame_required_for_rtx.
587         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
588         reg set.  Convert the unconverted_simple_returns mechanism to store
589         jump insns rather than their basic blocks.  Also check the
590         orig_entry_edge destination for new blocks.
591
592 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
593
594         PR tree-optimization/50650
595         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
596         call vect_is_simple_cond here, instead fail if cond_expr isn't
597         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
598         for cond_expr's first operand.
599         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
600         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
601
602 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
603
604         * config/s390/s390.md (DWH, dwh): New mode macros.
605         ("umulsidi3"): Extend to support "umulditi3" as well.
606
607 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
608             H.J. Lu  <hongjiu.lu@intel.com>
609
610         PR target/50603
611         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
612         integer PLUS RTX to a register to improve address combine.
613
614 2011-10-06  Richard Henderson  <rth@redhat.com>
615
616         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
617         parameter; use it to decide whether to merge two notes.
618         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
619         for the deallocation case as well.
620
621 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
622
623         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
624         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
625         * doc/tm.texi: Regenerate.
626         * target.def (output_addr_const_extra): Use
627         hook_bool_FILEptr_rtx_false.
628         * targhooks.c (default_asm_output_addr_const_extra): Remove.
629         * targhooks.h (default_asm_output_addr_const_extra): Remove.
630         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
631         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
632
633 2011-10-06  David S. Miller  <davem@davemloft.net>
634
635         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
636         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
637         SI mode 64-bit code gen case explicitly zero-extend and truncate.
638         (*popcount<mode>_sp64): Split up into...
639         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
640         SImode case use truncate.
641         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
642         subtract so the compiler can optimize it.
643         (SIDI): Remove unused mode iterator.
644
645 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
646
647         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
648         on the orig_entry_edge. Don't account for it in prologue_clobbered.
649
650 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
651
652         PR tree-optimization/50596
653         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
654         (NUM_PATTERNS): Change to 6.
655         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
656         function.
657         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
658         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
659         if it already has one, and don't set STMT_VINFO_VECTYPE in it
660         if it is already set.
661         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
662         COND_EXPR in pattern stmts.
663         (vect_is_simple_cond): No longer static.
664
665 2001-10-06  Richard Henderson  <rth@redhat.com>
666
667         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
668         * config/i386/sse.md (sseshuffint): Remove.
669         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
670         (VSHUFFLE_AVX2): New mode iterator.
671         (vshuffle<mode>): Use it.
672         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
673
674         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
675         for vector_all_ones_operand.
676         (ix86_expand_int_vcond): Distinguish between comparison mode
677         and data mode.  Allow them to differ.
678         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
679
680 2001-10-06  Richard Henderson  <rth@redhat.com>
681
682         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
683         mask operand.  Tidy the code.
684
685 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
686
687         * tree-vect-patterns.c (vect_pattern_recog_1): Use
688         vect_recog_func_ptr typedef for the first argument.
689         (vect_pattern_recog): Rename vect_recog_func_ptr variable
690         to vect_recog_func, use vect_recog_func_ptr typedef for it.
691
692         PR tree-optimization/49279
693         * tree-ssa-structalias.c (find_func_aliases): Don't handle
694         CAST_RESTRICT.
695         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
696         restrict propagation.
697         * tree-ssa.c (useless_type_conversion_p): Don't return false
698         if TYPE_RESTRICT differs.
699
700 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
701
702         * function.c (thread_prologue_and_epilogue_insns): Build a vector
703         of unconverted simple return blocks rather than trying to
704         recompute them later based on bb_flags bitmap tests.
705
706 2011-10-06  Michael Matz  <matz@suse.de>
707
708         * tree-flow.h (get_var_ann): Don't declare.
709         * tree-flow-inline.h (get_var_ann): Remove.
710         (set_is_used): Use var_ann, not get_var_ann.
711         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
712         * tree-profile.c (gimple_gen_edge_profiler): Call
713         find_referenced_var_in.
714         (gimple_gen_interval_profiler): Ditto.
715         (gimple_gen_pow2_profiler): Ditto.
716         (gimple_gen_one_value_profiler): Ditto.
717         (gimple_gen_average_profiler): Ditto.
718         (gimple_gen_ior_profiler): Ditto.
719         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
720         (gimple_gen_ic_func_profiler): Call add_referenced_var.
721         * tree-mudflap.c (execute_mudflap_function_ops): Call
722         add_referenced_var.
723
724 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
725
726         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
727         don't set SSA_NAME_DEF_STMT that has been already set by
728         gimple_build_assign_with_ops.
729         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
730         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
731         Likewise.
732
733         * tree.h (avoid_folding_inline_builtin): New prototype.
734         * builtins.c (avoid_folding_inline_builtin): No longer static.
735         * gimple-fold.c (gimple_fold_builtin): Give up if
736         avoid_folding_inline_builtin returns true.
737
738 2011-10-06  Richard Guenther  <rguenther@suse.de>
739
740         * tree-vect-generic.c (vector_element): Look at previous
741         generated results.
742
743 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
744
745         PR target/39950
746         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
747         __powerpc__, __PPC__, __unix__.
748
749 2011-10-06  Michael Matz  <matz@suse.de>
750
751         * i386/i386.opt (recip_mask, recip_mask_explicit,
752         x_recip_mask_explicit): New variables and cl_target member.
753         (mrecip=): New option.
754         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
755         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
756         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
757         TARGET_RECIP_VEC_SQRT): New tests.
758         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
759         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
760         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
761         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
762         * i386/i386.c (ix86_option_override_internal): Set recip_mask
763         for -mrecip and -mrecip=options.
764         (ix86_function_specific_save): Save recip_mask_explicit.
765         (ix86_function_specific_restore): Restore recip_mask_explicit.
766
767         * doc/invoke.texi (ix86 Options): Document the new option.
768
769 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
770
771         PR target/49049
772         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
773
774 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
775
776         PR target/50305
777         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
778         output of a previous pass through legitimize_reload_address.
779         Do not attempt to optimize addresses if the base register is
780         equivalent to a constant.
781
782 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
783
784         * function.c (thread_prologue_and_epilogue_insns): Mark
785         last_bb_active as possibly unused.  It is unused for targets which
786         do neither have "return" nor "simple_return" expanders.
787
788 2011-10-06  Richard Guenther  <rguenther@suse.de>
789
790         * fold-const.c (fold_ternary_loc): Also fold non-constant
791         vector CONSTRUCTORs.  Make more efficient.
792         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
793         (cprop_into_stmt): Don't propagate into virtual operands.
794         (optimize_stmt): Really dump original statement.
795
796 2011-10-06  Nick Clifton  <nickc@redhat.com>
797
798         * config/rx/rx.md (smin3): Revert previous delta.
799
800 2011-10-06  Richard Guenther  <rguenther@suse.de>
801
802         PR tree-optimization/38884
803         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
804         reads from aggregate SSA names.
805
806 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
807
808         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
809         argument, truncate it at the beginning instead of allocating there
810         and freeing at the end.
811         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
812         pass its address to vect_pattern_recog_1.
813
814 2011-10-05  David S. Miller  <davem@davemloft.net>
815
816         * config/sparc/sparc.opt (POPC): New option.
817         * doc/invoke.texi: Document it.
818         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
819         default on Niagara-2 and later.
820         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
821         * config/sparc/sparc.md (SIDI): New mode iterator.
822         (ffsdi2): Delete commented out pattern and comments.
823         (popcount<mode>2, clz<mode>2): New expanders.
824         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
825         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
826
827 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
828
829         PR middle-end/50607
830         * c-tree.h (c_expr_t): New typedef for struct c_expr.
831         (C_EXPR_APPEND): New macro.
832         * c-parser.c (c_parser_get_builtin_args): Preserve
833         original_tree_code of c_expr structure.
834         (c_parser_postfix_expression): Adjust to the new function.
835
836 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
837
838         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
839         if profiling after the prologue.
840
841 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
842
843         PR tree-optimization/50613
844         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
845         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
846         and if it is neither that not SSA_NAME, give up.
847
848 2011-10-05  Richard Henderson  <rth@redhat.com>
849
850         * tree-vect-generic.c (vector_element): Never fail.  Use
851         build_zero_cst.  Tidy up type references.
852         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
853         code duplication.  Do update_stmt here ...
854         (expand_vector_operations_1): ... not here.
855
856         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
857         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
858         duplication.  Handle V2DI without SSE4.1.
859         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
860         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
861
862 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
863
864         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
865         of "found".  Simplify return value calculation.
866         (distance_agu_use): Ditto.
867
868 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
869
870         PR bootstrap/50621
871         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
872         if the function was not shrink-wrapped.
873         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
874         to an insn.
875         * function.c (thread_prologue_and_epilogue_insns): Make sure the
876         shrink_wrapped flag is set even if there is no dump file.
877
878 2011-10-05  DJ Delorie  <dj@redhat.com>
879             Nick Clifton  <nickc@redhat.com>
880
881         * config/rx/rx.opt (mpid): Define.
882         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
883         (MULTILIB_DIRNAMES): Add pid.
884         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
885         (rx_num_interrupt_regs): New variable.
886         (rx_gp_base_regnum): New function.  Returns the number of the
887         small data area register.
888         (rx_pid_base_regnum): New function.  Returns the number of the pid
889         base register.
890         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
891         (rx_pid_data_operand): New function.  Returns whether an object is
892         in the position independent data area.
893         (rx_legitimize_address): New function.  Puts undecided PID
894         objects in the PID data area.
895         (rx_is_legitimate_address): Add support for PID operands.
896         (rx_print_operand_address): Likewise.
897         (rx_print_operand): Likewise.
898         (rx_maybe_pidify_operand): New function.  Determine if an operand
899         is suitable for PID addressing.
900         (rx_gen_move_template): Add PID support.
901         (rx_conditional_register_usage): Likewise.
902         (rx_option_override): Initialise rx_num_interrupt_regs.
903         (rx_is_legitimate_constant): Add support for PID constants.
904         (TARGET_LEGITIMIZE_ADDRESS): Define.
905         * config/rx/constraints.md (Rpid): Define.
906         (Rpda): Define.
907         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
908         (tablejump): Add PID support.
909         (mov<>): Likewise.
910         (mov<>_internal): Likewise.
911         (addsi3): Convert to an expander.  Add PID support.
912         (pid_addr): New pattern.
913         * config/rx/rx.h (CPP_SPEC): Define.
914         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
915         (CASE_VECTOR_PC_RELATIVE): Define.
916         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
917         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
918         * doc/invoke.texi (RX Options): Document -mpid command line option.
919
920 2011-10-05  Richard Guenther  <rguenther@suse.de>
921
922         PR tree-optimization/38885
923         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
924         from constants.
925
926 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
927
928         * doc/invoke.texi (-fshrink-wrap): Document.
929         * opts.c (default_options_table): Add it.
930         * common.opt (fshrink-wrap): Add.
931         * function.c (emit_return_into_block): Remove useless declaration.
932         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
933         requires_stack_frame_p, gen_return_pattern): New static functions.
934         (emit_return_into_block): New arg simple_p.  All callers changed.
935         Use gen_return_pattern.
936         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
937         * config/i386/i386.md (return): Expand into a simple_return.
938         (simple_return): New expander):
939         (simple_return_internal, simple_return_internal_long,
940         simple_return_pop_internal_long, simple_return_indirect_internal):
941         Renamed from return_internal, return_internal_long,
942         return_pop_internal_long and return_indirect_internal; changed to use
943         simple_return.
944         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
945         simple returns.
946         (ix86_pad_returns): Likewise.
947         * function.h (struct rtl_data): Add member shrink_wrapped.
948         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
949         are not jumps or sibcalls can't be compared.
950
951 2011-10-05  Richard Guenther  <rguenther@suse.de>
952
953         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
954         vector type.
955         (simplify_unary_expression): Handle BIT_FIELD_REFs.
956         (try_to_simplify): Handle BIT_FIELD_REFs.
957
958 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
959
960         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
961         * config/avr/avr.c (avr_out_addto_sp): New function.
962         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
963         * config/avr/avr.md (adjust_len): Add "addto_sp".
964         (*movhi_sp): Remove insn.
965         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
966
967 2011-10-05  Richard Guenther  <rguenther@suse.de>
968
969         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
970         with an embedded expression valueize and fold that as well.
971         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
972         results from gimple_fold_stmt_to_constant_1.
973
974 2011-10-05  Nick Clifton  <nickc@redhat.com>
975
976         * config/rx/rx.md (tablejump): Add missing label.
977         (adddi3_internal): Mark operand 0 as early-clobbered.
978         (smaxsi3): Revert previous delta.
979         (adc_internal): Fix whitespace in generated asm.
980         (adc_flags): Likewise.
981
982 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
983
984         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
985         with the new widening_optab_handler.
986
987 2011-10-05  Richard Guenther  <rguenther@suse.de>
988
989         PR tree-optimization/50609
990         * gimple-fold.c (fold_array_ctor_reference): Also handle
991         vector typed constructors.
992         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
993         for vector typed constructors.
994
995 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
996
997         * config/i386/i386.c (ix86_emit_binop): New static function.
998         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
999         instructions.
1000         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
1001
1002 2011-10-04  David S. Miller  <davem@davemloft.net>
1003
1004         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
1005         UNSPEC_XMUL): New unspecs.
1006         (muldi3_v8plus): Use output_v8plus_mult.
1007         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
1008         New VIS 3.0 combiner patterns.
1009         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
1010         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
1011         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
1012         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
1013         builtins patterns.
1014         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
1015         (output_v8plus_mult): New function.
1016         * config/sparc/sparc-protos.h: Declare it.
1017         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
1018         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
1019         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
1020         * doc/extend.texi: Document new builtins.
1021
1022 2011-10-04  Richard Henderson  <rth@redhat.com>
1023
1024         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
1025         Avoid save_expr unless two_arguments.
1026
1027 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
1028
1029         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
1030         * config/i386/mingw32.h (CPP_SPEC): Likewise.
1031
1032 2011-10-04  David S. Miller  <davem@davemloft.net>
1033
1034         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
1035         under Linux.
1036
1037 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
1038
1039         PR tree-optimization/50604
1040         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
1041         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
1042         last argument to memcpy has size_type_node type instead of ssizetype.
1043         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
1044         instead of TREE_TYPE (len) as type for newlen.
1045
1046         PR tree-optimization/50522
1047         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
1048         TYPE_RESTRICT.
1049         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
1050         unconditionally.
1051
1052         * fold-const.c (fold_unary_loc): Don't optimize
1053         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
1054         casting the inner pointer if it isn't TYPE_RESTRICT.
1055         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
1056         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
1057
1058 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
1059
1060         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
1061
1062 2011-10-04  Jan Hubicka  <jh@suse.cz>
1063
1064         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
1065         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
1066         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
1067         * lto-cgraph.c (order_base): New static var.
1068         (lto_output_node): Stream in order.
1069         (lto_output_varpool_node): Stream out order.
1070         (input_node): Stream in order.
1071         (input_varpool_node): Stream out order.
1072         (input_cgraph_1): Initialize order base; update call of
1073         lto_input_toplevel_asms.
1074
1075 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
1076
1077         PR target/50566
1078         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
1079         prototype.
1080         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
1081         from here...
1082         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
1083         function.  Log if avr_log.legitimize_reload_address.
1084
1085 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
1086
1087         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
1088
1089 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1090
1091         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
1092         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
1093
1094 2011-10-03  David S. Miller  <davem@davemloft.net>
1095
1096         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
1097         GSR_REG an input operand to UNSPEC instead of a parallel USE.
1098         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
1099         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
1100         Reference GSR_REG in DI mode, simplify convoluted expressions by using
1101         zero_extract.
1102         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
1103
1104 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1105
1106         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
1107
1108 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1109             Ian Lance Taylor  <iant@google.com>
1110
1111         * godump.c (go_output_typedef): Support printing enum values that
1112         don't fit in a signed HOST_WIDE_INT.
1113
1114 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1115
1116         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
1117         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1118         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1119         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
1120
1121 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
1122
1123         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
1124         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1125         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1126         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
1127
1128 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
1129
1130         PR target/49967
1131         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
1132         (gcc_cv_ld_static_option): Ditto.
1133         (gcc_cv_ld_dynamic_option): Ditto.
1134         * configure: Regenerate.
1135
1136 2011-10-03  David S. Miller  <davem@davemloft.net>
1137
1138         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
1139         and 'si' patterns which describe the GSR changes explicitly in the
1140         RTL using zero_extract.
1141         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
1142
1143         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
1144         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
1145
1146 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
1147
1148         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
1149         if given expression can be expanded by the target.
1150         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
1151         using target vector instructions.
1152         * optabs.h: New optab vshuffle.
1153         (expand_vec_shuffle_expr_p): New prototype.
1154         (expand_vec_shuffle_expr): New prototype.
1155         (vshuffle_optab): New optab.
1156         * genopinit.c: Adjust to support vecshuffle.
1157         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
1158         * expr.c (expand_expr_real_2): Adjust.
1159         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
1160         recognizing the cases of two and three arguments.
1161         (convert_arguments) (build_binary_op)
1162         (scalar_to_vector) (build_array_ref): Spurious whitespace.
1163         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
1164         * tree.def: New tree code VEC_SHUFFLE_EXPR.
1165         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
1166         * tree-vect-generic.c (vector_element): New function. Returns an
1167         element of the vector at the given position.
1168         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
1169         by the backend or expand an expression piecewise.
1170         (expand_vector_operations_1): Adjusted.
1171         (gate_expand_vector_operations_noop): New gate function.
1172         * Makefile.in (tree-vect-generic.o): New include.
1173         * gimple.c (get_gimple_rhs_num_ops): Adjust.
1174         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
1175         * passes.c: Move veclower down.
1176         * tree-pretty-print.c (dump_generic_node): Recognize
1177         VEC_SHUFFLE_EXPR as valid expression.
1178         * c-parser.c (c_parser_get_builtin_args): Helper function for the
1179         builtins with variable number of arguments.
1180         (c_parser_postfix_expression): Use a new helper function for
1181         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
1182         * tree-ssa-operands: Adjust.
1183         * c-family/c-common.c: New __builtin_shuffle keyword.
1184         * c-family/c-common.h: New __builtin_shuffle keyword.
1185         * gcc/doc/extend.texi: Adjust.
1186
1187         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
1188         between the vector and the type of the mask when shuffling.
1189         (vecshuffle<mode>): New expansion.
1190         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
1191         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
1192         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
1193
1194 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
1195
1196         PR tree-optimization/50587
1197         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
1198         arg0 is not a SSA_NAME.
1199
1200 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
1201
1202         * ipa-inline-analysis.c (MAX_TIME): Update comment.
1203
1204 2011-10-02  Richard Henderson  <rth@redhat.com>
1205             David S. Miller  <davem@davemloft.net>
1206
1207         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
1208         conditional insn type setting, we always emit a shift.
1209         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
1210         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
1211         * config/sparc/predicates.md (const_one_operand): Delete.
1212
1213 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
1214
1215         * invoke.texi (SPARC Options): Refer to GNU/Linux.
1216
1217 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1218
1219         * config/mips/mips.c (mips_frame_barrier): New function.
1220         (mips_expand_prologue): Call it after allocating stack space.
1221         (mips_deallocate_stack): New function.
1222         (mips_expand_epilogue): Call mips_frame_barrier and
1223         mips_deallocate_stack.
1224
1225 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
1226
1227         PR target/49696
1228         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
1229         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
1230         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
1231
1232 2011-10-02  Jan Hubicka  <jh@suse.cz>
1233
1234         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
1235
1236         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
1237         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
1238         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
1239         functions are reachable when address is taken.
1240         * tree-sra.c (modify_function): Free dominance info.
1241
1242 2011-10-02  Jan Hubicka  <jh@suse.cz>
1243
1244         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
1245
1246         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
1247         (reset_inline_summary): New function.
1248         (compute_inline_parameters, inline_node_removal_hook,
1249         inline_edge_removal_hook): Use it.
1250         (inline_free_summary): Reset holders correctly.
1251         (inline_generate_summary): Free summary before computing it.
1252
1253 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
1254
1255         PR preprocessor/36819
1256         * incpath.c (merge_include_chains): Call free_path on
1257         heads[QUOTE] and tails[QUOTE].
1258
1259 2011-10-02  Jan Hubicka  <jh@suse.cz>
1260
1261         PR lto/47247
1262         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
1263         when resolution is already availbale from plugin.
1264         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
1265         * cgraph.c (ld_plugin_symbol_resolution): Add
1266         prevailing_def_ironly_exp.
1267         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
1268         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
1269         externally visible.
1270         * varasm.c (resolution_to_local_definition_p): Add
1271         LDPR_PREVAILING_DEF_IRONLY_EXP.
1272         (resolution_local_p): Likewise.
1273
1274 2011-10-01  David S. Miller  <davem@davemloft.net>
1275
1276         * config/sparc/sparc.opt (VIS3): New option.
1277         * doc/invoke.texi: Document it.
1278         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
1279         not capable of such instructions.
1280         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1281         to 0x300 when TARGET_VIS3.
1282         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
1283         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
1284         UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
1285         (V64N8, VASS): New mode iterators.
1286         (vis3_shift, vis3_addsub_ss): New code iterators.
1287         (vbits, vconstr): New mode attributes.
1288         (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
1289         (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
1290         fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
1291         fmean16_vis, fpadd64_vis, fpsub64_vis,
1292         <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
1293         VIS 3.0 instruction patterns.
1294         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
1295         default when targetting capable cpus.  TARGET_VIS3 implies
1296         TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
1297         (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
1298         (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
1299         is ignored.
1300         * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
1301         __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
1302         __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
1303         __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
1304         __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
1305         __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
1306         __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
1307         __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
1308         * doc/extend.texi: Document new VIS 3.0 builtins.
1309
1310 2011-10-01  Eric Botcazou  <ebotcazou@adacore.com>
1311
1312         * ira-color.c (assign_hard_reg): Fix typo.
1313
1314 2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
1315
1316         * doc/extend.texi: Add missing ','.
1317
1318 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1319
1320         * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
1321         Enable -fmodulo-sched at -O2 and above.
1322         * config/c6x/c6x.md (doloop_end): New expander.
1323         (mvilc, sploop, spkernel, loop_end): New patterns.
1324         (loop_end with memory destination splitter): New.
1325         * config/c6x/c6x.c: Include "hw-doloop.h".
1326         (enum unitreqs): New.
1327         (unit_req_table): New typedef.
1328         (unit_reqs): New static variable.
1329         (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
1330         res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
1331         hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
1332         hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
1333         (struct c6x_sched_context): New member last_scheduled_iter0.
1334         (init_sched_state): Initialize it.
1335         (c6x_variable_issue): Update it.
1336         (sploop_max_uid_iter0): New static variable.
1337         (c6x_sched_reorder_1): Be careful about issuing sploop.
1338         (c6x_reorg): Call c6x_hwlooops before the final schedule.
1339
1340 2011-09-30  Georg-Johann Lay  <avr@gjlay.de>
1341
1342         PR target/50566
1343         * config/avr/avr-protos.h (avr_log_t): New field address_cost.
1344         * config/avr/avr.c (avr_address_cost): Use it.
1345         * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
1346         (avr_log_vadump): Unknown %-codes finish printing.
1347
1348 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1349
1350         PR inline-asm/50571
1351         * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
1352         input constraints allow mem and not reg, pass true instead of
1353         false as second argument to maybe_fold_reference.
1354
1355         PR tree-optimization/46309
1356         * fold-const.c (make_range, merge_ranges): Remove prototypes.
1357         (make_range_step): New function.
1358         (make_range): Use it.
1359         * tree.h (make_range_step): New prototypes.
1360         * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
1361         * tree-ssa-reassoc.c: Include diagnostic-core.h.
1362         (struct range_entry): New type.
1363         (init_range_entry, range_entry_cmp, update_range_test,
1364         optimize_range_tests): New functions.
1365         (reassociate_bb): Call optimize_range_tests.
1366
1367 2011-09-30  Jakub Jelinek  <jakub@redhat.com>
1368             Richard Guenther  <rguenther@suse.de>
1369
1370         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
1371         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
1372         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.  Fix
1373         handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
1374         (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
1375         BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
1376
1377 2011-09-30  Jan Beulich  <jbeulich@suse.com>
1378
1379         * lto-cgraph.c (output_cgraph): Remove processing of
1380         'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
1381         (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
1382         lto_input_toplevel_asms() instead.
1383         * lto-section-in.c (lto_section_name): Add "asm" entry.
1384         * lto-streamer-in.c (lto_input_toplevel_asms): New.
1385         * lto-streamer-out.c (lto_output_toplevel_asms): New.
1386         * lto-streamer.h (LTO_minor_version): Bump.
1387         (enum lto_section_type): Add LTO_section_asm.
1388         (struct lto_asm_header): New.
1389         (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
1390         * tree-streamer.h (streamer_write_string_cst): Declare.
1391         * tree-streamer-out.c (write_string_cst): Rename to
1392         streamer_write_string_cst and make global. Handle incoming string
1393         being NULL.
1394         (streamer_write_tree_header): Adjust call to renamed function.
1395
1396 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1397
1398         * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
1399         modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
1400         modulo_last_stage): New static variables.
1401         (set_modulo_params, discard_delay_pairs_above): New functions.
1402         (struct delay_pair): New member stages.
1403         (htab_i2_traverse, htab_i1_traverse): New static functions.
1404         (record_delay_slot_pair): New arg stages.  All callers changed.
1405         Record it.
1406         (pair_delay): Take stages into account.
1407         (add_delay_dependencies): Don't do so for stage pairs.
1408         (struct sched_block_state): New member modulo_epilogue.
1409         (save_backtrack_point): Don't set SHADOW_P for stage pairs.
1410         (unschedule_insns_until): Decrease modulo_insns_scheduled.
1411         Set HARD_DEP without using or.
1412         (resolve_dependencies): New static function.
1413         (prune_ready_list): New arg modulo_epilogue_p.  All callers changed.
1414         If it is true, allow only insns with INSN_EXACT_TICK set.
1415         (schedule_block): Return bool, always true for normal scheduling,
1416         true or false depending on modulo scheduling success otherwise.
1417         Add bookkeeping for modulo scheduling, and call resolve_dependencies
1418         on everything left over after a modulo schedule.
1419         (haifa_sched_init): Remove check_cfg call.  Clear modulo_ii.
1420         * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
1421         declarations.
1422         (set_modulo_params, discard_delay_pairs_above): Declare.
1423         * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
1424         * doc/invoke.texi (--param): Document it.
1425
1426         * sched-ebb.c (schedule_ebb): No longer static.  Remove declaration.
1427         New arg modulo_scheduling.  All callers changed.  Move note handling
1428         code here from schedule_ebbs.
1429         (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
1430         out of schedule_ebbs.
1431         (schedule_ebbs): Call them.  Remove note handling code moved to
1432         schedule_ebb.
1433         * sched-int.h (schedule_ebb, schedule_ebbs_init,
1434         schedule_ebbs_finish): Declare.
1435
1436 2011-09-30  Richard Guenther  <rguenther@suse.de>
1437
1438         PR middle-end/50574
1439         * tree-cfg.c (verify_gimple_comparison): Compare component
1440         mode sizes for vector comparisons.
1441
1442 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1443
1444         * ddg.c (autoinc_var_is_used_p): New function.
1445         (create_ddg_dep_from_intra_loop_link,
1446         add_cross_iteration_register_deps): Call it.
1447         * ddg.h (autoinc_var_is_used_p): Declare.
1448         * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
1449         (sms_schedule): Handle instructions with REG_INC.
1450
1451 2011-09-30  Revital Eres  <revital.eres@linaro.org>
1452
1453         * modulo-sched.c (generate_reg_moves): Skip instructions that
1454         do not set a register and verify no regmoves are created for
1455         !single_set instructions.
1456
1457 2011-09-30  Bernd Schmidt  <bernds@codesourcery.com>
1458
1459         * hw-doloop.c (scan_loop): Compute register usage only for non-debug
1460         insns.
1461
1462 2011-09-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1463
1464         PR target/50099
1465         * config/arm/iterators.md (qhs_zextenddi_cstr): New.
1466         (qhs_zextenddi_op): New.
1467         * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
1468         * config/arm/predicates.md ("arm_extendqisi_mem_op"):
1469         Distinguish between ARM and Thumb2 states.
1470
1471 2011-09-30  David S. Miller  <davem@davemloft.net>
1472
1473         * config/sparc/sparc.opt (VIS2): New option.
1474         * doc/invoke.texi: Document it.
1475         * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
1476         UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
1477         UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
1478         (define_attr type): New insn type 'edgen'.
1479         (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
1480         edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
1481         edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
1482         patterns.
1483         * niagara.md: Handle edgen.
1484         * niagara2.md: Likewise.
1485         * ultra1_2.md: Likewise.
1486         * ultra3.md: Likewise.
1487         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
1488         to 0x200 when TARGET_VIS2.
1489         * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
1490         default when targetting capable cpus.  TARGET_VIS2 implies
1491         TARGET_VIS, clear and it when TARGET_FPU is disabled.
1492         (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
1493         (sparc_expand_builtin): Fix predicate indexing when builtin returns
1494         void.
1495         (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
1496         * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
1497         __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
1498         __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
1499         __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
1500         * doc/extend.texi: Document new VIS 2.0 builtins.
1501
1502 2011-09-29  Nick Clifton  <nickc@redhat.com>
1503             Bernd Schmidt  <bernds@codesourcery.com>
1504
1505         * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
1506         * config/frv/frvend.c: Likewise.
1507         * config/frv/frv.c (frv_function_prologue): Move misplaced
1508         CALL_ARG_LOCATION notes back to their proper locations.
1509
1510 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1511
1512         PR target/50566
1513         * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
1514         * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
1515         from avr_rtx_costs.
1516         (avr_legitimate_address_p): Use avr_edump to print log information
1517         filtered by avr_log.
1518         (extra_constraint_Q): Ditto.
1519         (avr_legitimize_address): Ditto.
1520         (avr_rtx_costs): Ditto.  Rewrite as wrapper for avr_rtx_costs_1.
1521         (final_prescan_insn): Use avr_log.rtx_costs as filter.
1522
1523 2011-09-29  Richard Sandiford  <richard.sandiford@linaro.org>
1524
1525         * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
1526         * config/arm/arm.h (MODES_TIEABLE_P): Use it.
1527         * config/arm/arm.c (arm_modes_tieable_p): New function.  Allow
1528         NEON vector and structure modes to be tied.
1529
1530 2011-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1531
1532         * graphite-scop-detection.c (make_close_phi_nodes_unique):  New
1533         forward declaration.
1534         (remove_duplicate_close_phi): Detect and repair creation of
1535         duplicate close-phis for a containing loop.
1536
1537 2011-09-27   Andi Kleen <ak@linux.intel.com>
1538
1539         * gcc.c (get_local_tick). Rename to get_random_number.  Read from
1540         /dev/urandom.  Add getpid call.
1541         (compare_debug_dump_opt_spec_function): Drop getpid call.
1542
1543 2011-09-26   Andi Kleen <ak@linux.intel.com>
1544
1545         * toplev.c (init_local_tick): Try reading random seed
1546         from /dev/urandom.
1547
1548 2011-09-26   Andi Kleen <ak@linux.intel.com>
1549
1550         * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
1551         * lto-streamer.c (lto_get_section_name): Remove crc32_string.
1552         Handle numerical random seed.
1553         * lto-streamer.h (lto_file_decl_data): Change id to
1554         unsigned HOST_WIDE_INT.
1555         * toplev.c (random_seed): Add.
1556         (init_random_seed): Change for numerical random seed.
1557         (get_random_seed): Return as HOST_WIDE_INT.
1558         (set_random_seed): Crc32 existing string.
1559         * toplev.h (get_random_seed): Change to numercal return.
1560         * tree.c (get_file_function_name): Remove CRC. Handle
1561         numerical random seed.
1562
1563 2011-09-29  Georg-Johann Lay  <avr@gjlay.de>
1564
1565         PR target/50566
1566         * config.gcc (extra_objs): Add avr-log.o for $target in:
1567         avr-*-rtems*, avr-*-*.
1568         * config/avr/t-avr (avr-log.o): New rule to compile...
1569         * config/avr/avr-log.c: ...this new file.
1570         * config/avr/avr.opt (mlog=): New option.
1571         * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
1572         (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
1573         (avr_log_set_avr_log): New prototype.
1574         (avr_log_t): New typedef.
1575         (avr_log): New declaration.
1576         * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
1577
1578 2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1579
1580         * expr.c (do_store_flag): Expand vector comparison by
1581         building an appropriate VEC_COND_EXPR.
1582         * c-typeck.c (build_binary_op): Typecheck vector comparisons.
1583         (c_objc_common_truthvalue_conversion): Adjust.
1584         * tree-vect-generic.c (do_compare): Helper function.
1585         (expand_vector_comparison): Check if hardware supports
1586         vector comparison of the given type or expand vector piecewise.
1587         (expand_vector_operation): Treat comparison as binary
1588         operation of vector type.
1589         (expand_vector_operations_1): Adjust.
1590
1591 2011-09-29  Richard Guenther  <rguenther@suse.de>
1592
1593         * tree.c (build_opaque_vector_type): Make opaque vectors
1594         variant types of the corresponding non-opaque type.  Make
1595         sure to share opaque vector types properly.
1596
1597 2011-09-29  David S. Miller  <davem@davemloft.net>
1598
1599         * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
1600         UNSPEC_ARRAY32): New unspec.
1601         (define_attr type): New type 'array'.
1602         (array{8,16,32}<P:mode>_vis): New patterns.
1603         * config/sparc/ultra1_2.md: Add reservations for 'array'.
1604         * config/sparc/ultra3.md: Likewise.
1605         * config/sparc/niagara.md: Likewise.
1606         * config/sparc/niagara2.md: Likewise.
1607         * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
1608         array builtins.
1609         * config/sparc/visintrin.h (__vis_array8, __vis_array16,
1610         __vis_array32): New.
1611         * doc/extend.texi: Document new VIS builtins.
1612
1613         * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
1614         (VIS pixel-compare insn): Just use <gcond:name>.
1615
1616         * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
1617         code iterator used, so just use <code>.  There are two mode iterators
1618         so explicitly use <GCM:gcm_name>.
1619
1620 2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>
1621
1622         * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
1623         Darwin >= 9.
1624
1625 2011-09-28  David S. Miller  <davem@davemloft.net>
1626
1627         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
1628         UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
1629         (UNSPEC_FCMP): New unspec.
1630         (gcond): New code iterator.
1631         (gcond_name): New code attr.
1632         (GCM): New mode iterator.
1633         (gcm_name): New mode attr.
1634         (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
1635
1636 2011-09-28  Oleg Endo  <oleg.endo@t-online.de>
1637
1638         PR target/49486
1639         * config/sh/sh.md (negdi2): Move expansion into split to
1640         allow more combination options.  Add T_REG clobber.
1641         (abssi2): New expander.
1642         (*negdi2, *abssi2, *negabssi2): New insns.
1643         (cneg): Change from insn to insn_and_split.  Rename to
1644         negsi_cond.  Add alternative for non-SH4.
1645
1646 2011-09-28  Richard Sandiford  <richard.sandiford@linaro.org>
1647
1648         * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
1649         (neon_move_hi_quad_<mode>): Likewise.
1650         (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
1651
1652 2011-09-28  Nick Clifton  <nickc@redhat.com>
1653
1654         * config/rx/predicates.md (rx_minmax_operand): New predicate.
1655         Accepts immediates and a restricted subset of MEMs.
1656         * config/rx/rx.md (int_modes): New iterator.
1657         (smaxsi3, sminsi3): Delete and replace with...
1658         (smax<int_mode>3, smin<int_mode>3): New patterns.
1659         (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
1660
1661 2011-09-28  Richard Guenther  <rguenther@suse.de>
1662
1663         PR middle-end/50460
1664         * fold-const.c (try_move_mult_to_index): Handle &a.array the
1665         same as &a.array[0].
1666
1667 2011-09-28  Kai Tietz  <ktietz@redhat.com>
1668
1669         * configure.ac: Add test for new section attribute
1670         specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
1671         * config.in: Regenerated.
1672         * configure: Regenerated.
1673         * config/i386/winnt.c (i386_pe_asm_named_section): Emit
1674         new section flag "e" for excluded sections, if supported.
1675         Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
1676
1677 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1678
1679         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
1680         throughout file.
1681
1682 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
1683
1684         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
1685         throughout file.
1686
1687 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
1688
1689         * output.h (SECTION_EXCLUDE): New macro.
1690         * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
1691
1692 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1693
1694         * fwprop.c (forward_propagate_and_simplify): After checking
1695         reg/subreg combinations, check whether the modes are the same.
1696
1697 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1698             Richard Sandiford  <rdsandiford@googlemail.com>
1699
1700         * config/mips/mips.c (mips_add_cfa_restore): New function.
1701         (mips16e_save_restore_reg): Use it.
1702         (mips_restore_reg): Likewise.  Split double FPRs for
1703         REG_CFA_RESTORE notes.
1704
1705 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
1706
1707         PR middle-end/50386
1708         PR middle-end/50326
1709         * tree-sra.c (build_ref_for_model): Use the type of the field as
1710         the type of the COMPONENT_REF.
1711
1712 2011-09-27  Jeff Law  <law@redhat.com>
1713
1714         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
1715         non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
1716         (find_if_case_1): Use the probability of the THEN clause when
1717         determining if speculation is profitable.
1718         (find_if_case_2): Similarly for the ELSE clause.
1719
1720 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1721
1722         * common.opt: Add -foptimize-strlen option.
1723         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
1724         (tree-sssa-strlen.o): Add dependencies.
1725         * opts.c (default_options_table): Enable -foptimize-strlen
1726         by default at -O2 if not -Os.
1727         * passes.c (init_optimization_passes): Add pass_strlen
1728         after pass_object_sizes.
1729         * timevar.def (TV_TREE_STRLEN): New timevar.
1730         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
1731         * tree-pass.h (pass_strlen): Declare.
1732         * tree-ssa-strlen.c: New file.
1733         * c-decl.c (merge_decls): If compatible stpcpy prototype
1734         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
1735
1736 2011-09-27  Tom de Vries  <tom@codesourcery.com>
1737
1738         PR middle-end/43864
1739         * tree-ssa-tail-merge.c: New file.
1740         (struct same_succ_def): Define.
1741         (same_succ, const_same_succ): New typedef.
1742         (struct bb_cluster_def): Define.
1743         (bb_cluster, const_bb_cluster): New typedef.
1744         (struct aux_bb_info): Define.
1745         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
1746         (gvn_uses_equal): New function.
1747         (same_succ_print, same_succ_print_traverse, update_dep_bb)
1748         (stmt_update_dep_bb, local_def, same_succ_hash)
1749         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
1750         (same_succ_reset): New function.
1751         (same_succ_htab, same_succ_edge_flags)
1752         (deleted_bbs, deleted_bb_preds): New var.
1753         (debug_same_succ): New function.
1754         (worklist): New var.
1755         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
1756         (init_worklist, delete_worklist, delete_basic_block_same_succ)
1757         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
1758         (print_cluster, debug_cluster, update_rep_bb)
1759         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
1760         (all_clusters): New var.
1761         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
1762         (merge_clusters, set_cluster): New function.
1763         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
1764         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
1765         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
1766         (find_clusters_1, find_clusters): New function.
1767         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
1768         (update_bbs): New var.
1769         (apply_clusters): New function.
1770         (update_debug_stmt, update_debug_stmts): New function.
1771         (tail_merge_optimize): New function.
1772         tree-pass.h (tail_merge_optimize): Declare.
1773         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
1774         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
1775         (tree-ssa-tail-merge.o): New rule.
1776         * opts.c (default_options_table): Set OPT_ftree_tail_merge by
1777         default at OPT_LEVELS_2_PLUS.
1778         * tree-ssa-sccvn.c (vn_valueize): Move to ...
1779         * tree-ssa-sccvn.h (vn_valueize): Here.
1780         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
1781         * common.opt (ftree-tail-merge): New switch.
1782         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
1783         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
1784         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
1785         (-ftree-tail-merge, max-tail-merge-comparisons)
1786         (max-tail-merge-iterations): New item.
1787
1788 2011-09-27  Jan Hubicka  <jh@suse.cz>
1789
1790         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
1791
1792 2011-09-27  Jan Hubicka  <jh@suse.cz>
1793
1794         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
1795         parameters passed by reference; handle loads from non-SSA scalars
1796         and update comments.
1797
1798 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
1799
1800         PR rtl-optimization/50249
1801         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
1802         instead of opnum and type.  All callers changed.  Remove useless
1803         declaration.
1804         Search forward for other reloads of the same type for the same operand
1805         using the same register; if any are found, return false.
1806         (reload_regs_reach_end_p): Same argument changes; all callers changed.
1807
1808 2011-09-27  Andi Kleen  <ak@linux.intel.com>
1809             Jan Hubicka  <jh@suse.cz>
1810
1811         * doc/invoke.texi (ffat-lto-objects): Document.
1812         * toplev.c (compile_file): Do not output assembly when doing slim lto;
1813         Output __gnu_slim_lto when doing slim lto.
1814         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
1815         (cgraph_optimize): Return early when doing slim lto.
1816         * opts.c (finish_options): Complain about lack of linker plugin
1817         when doing slim lto.
1818         * common.opt (ffat-lto-objects): New.
1819
1820 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1821
1822         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
1823         between signed and unsigned.
1824
1825 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
1826
1827         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
1828         vectorization.
1829         (vectorizable_type_promotion): Likewise.
1830         (vect_analyze_stmt): Call vectorizable_type_demotion and
1831         vectorizable_type_promotion for basic blocks.
1832         (supportable_widening_operation): Don't assume loop vectorization.
1833         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
1834         basic blocks.  Update vectorization factor for basic block
1835         vectorization.
1836         (vect_analyze_slp_instance): Allow multiple types for basic block
1837         vectorization.  Recheck unrolling factor after construction of SLP
1838         instance.
1839
1840 2011-09-27  Richard Guenther  <rguenther@suse.de>
1841
1842         * tree-object-size.c (compute_object_sizes): Fix dumping of
1843         folded statement.
1844
1845 2011-09-27  Richard Guenther  <rguenther@suse.de>
1846
1847         PR tree-optimization/50363
1848         * tree-ssa-pre.c (create_expression_by_pieces): Handle
1849         pointer conversions in POINTER_PLUS_EXPRs properly.
1850
1851 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
1852
1853         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
1854         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
1855         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
1856         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
1857         that produce subreg moves.  Define using VQX iterators.
1858
1859 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
1860
1861         * config/avr/avr.md (ashrqi3): Split alternative "n"
1862         into its remaining parts C03, C04, C05, C06, C07 and describe
1863         impact in CC by attribute "cc" appropriately.
1864         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
1865         by digging RTX.
1866
1867 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1868
1869         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
1870         from 3 x MAX_MACHINE_MODE.
1871         (CONSTM1_RTX): Define.
1872         * emit-rtl.c (const_tiny_rtx): Change into array of
1873         4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
1874         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
1875         CONSTM1_RTX.
1876         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
1877         MODE_VECTOR_INT modes.
1878         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
1879         Optimize if one operand is CONSTM1_RTX.
1880         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
1881         into mask | x.
1882
1883 2011-09-26  David S. Miller  <davem@davemloft.net>
1884
1885         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
1886         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
1887         * config/sparc/visintrin.h: Update edge and pixel-compare
1888         intrinsics to return 'long' instead of 'int'.
1889         * doc/extend.texi: Update documentation to match.
1890         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
1891         flat, allow any instruction.  Otherwise, when V9 allow parallels
1892         which consist only of sets to registers outside of %o0 to %o5.
1893         (sparc_vis_init_builtins): Update VIS builtin types for edge
1894         and pixel-compare.
1895
1896         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
1897         is enabled, mark %gsr as global.
1898         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
1899         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
1900
1901         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
1902         which will now define __VIS and __VIS__ when -mvis is enabled.
1903         * config/sparc/t-sparc: Likewise.
1904         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
1905         and add t-sparc to tmake_file for all sparc targets.
1906         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
1907         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
1908
1909         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
1910         builtins for VIS vector addition and subtraction.
1911         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
1912         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
1913         __vis_fpsub32, __vis_fpsub32s): New.
1914         * doc/extend.texi: Document new VIS intrinsics.
1915
1916 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1917
1918         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
1919         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
1920         EQ/NE comparisons against +/-1 in the case of unused-after,
1921         non-ld-regs target.
1922
1923 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
1924
1925         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
1926         gctx.into_ssa after push_gimplify_context.
1927
1928         * gimple.c (gimple_build_call_valist): New function.
1929         * gimple.h (gimple_build_call_valist): New prototype.
1930         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
1931         (update_gimple_call): Likewise.
1932         (update_call_from_tree): Use finish_update_gimple_call.
1933         * tree-ssa-propagate.h (update_gimple_call): New prototype.
1934
1935 2011-09-26  Richard Guenther  <rguenther@suse.de>
1936
1937         PR tree-optimization/50472
1938         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
1939         volatile references.
1940
1941 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
1942
1943         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
1944         * target.def: (addr_space_subset_p): Likewise.
1945
1946 2011-09-26  Tom de Vries  <tom@codesourcery.com>
1947
1948         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
1949         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
1950         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
1951         of new var.
1952
1953 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1954
1955         PR target/50465
1956         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
1957         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
1958         output_reload_insisf.
1959         (adjust_len): Set default to "no".
1960         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
1961         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
1962         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
1963         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
1964         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
1965         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
1966         *lshrsi3_const): Set attribute "adjust_len".
1967         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
1968         (output_movsisf): Don't pass insn to output_reload_insisf.
1969         (adjust_insn_length): Handle new alternatives to adjust_len.
1970         Remove handling of ADJUST_LEN_YES.  Clean-up code.
1971
1972 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
1973
1974         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
1975         may_trap_p to detect loads that may trap of fault.
1976
1977 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
1978
1979         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
1980         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
1981         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
1982         prototype.
1983         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
1984         * config/avr/avr.c: Rename output_reload_insisf_1 to
1985         output_reload_in_const.
1986         (avr_popcount_each_byte): Handle SFmode, too.
1987         (output_reload_in_const): Change so it can handle HI loads, too.
1988         Use avr_popcount_each_byte to work out if scratch register must be
1989         created on the fly.
1990         (output_reload_inhi): Rewrite using output_reload_in_const and...
1991         (output_movhi): ...use it to print constants' loads.
1992         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
1993
1994 2011-09-25  David S. Miller  <davem@davemloft.net>
1995
1996         * config/sparc/constraints.md (C, P, Z): New constraints for
1997         const_doube, const_int, and const_vector "all ones" values.
1998         Make unused constraint letters comment match reality.
1999         * config/sparc/predicates.md (const_all_ones_operand,
2000         register_or_zero_or_all_ones_operand): New predicates.
2001         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
2002         as well as zero constants when VIS.
2003         (sparc_legitimate_constant_p): Likewise.
2004         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
2005         (movsf_insn): Likewise
2006         (movdi_insn_sp64): Add fone alternative.
2007         (movdf_insn_sp32_v9): Likewise.
2008         (movdf_insn_sp64): Likewise.
2009
2010         * configure.ac: Add feature check to make sure the assembler
2011         supports the FMAF, HPC, and VIS 3.0 instructions found on
2012         Niagara-3 and later cpus.
2013         * configure: Rebuild.
2014         * config.in: Likewise.
2015         * config/sparc/sparc.opt: New option '-mfmaf'.
2016         * config/sparc/sparc.md: Add float fused multiply-add patterns.
2017         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
2018         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
2019         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
2020         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
2021         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
2022         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
2023         disabled.
2024         (sparc_rtx_costs): Handle 'FMA'.
2025         * doc/invoke.texi: Document -mfmaf.
2026
2027 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
2028
2029         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
2030         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
2031         DECL_BY_REFERENCE parameters.
2032
2033 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2034
2035         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
2036         if there is no outgoing edge.
2037
2038         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
2039         integral types.
2040
2041 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2042
2043         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
2044         of vect_analyze_bb here.
2045         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
2046
2047 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
2048
2049         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
2050         Allow not simple iv if analyzing basic block.
2051         (create_data_ref): Update call to dr_analyze_innermost.
2052         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
2053         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2054         * tree-predcom.c (find_looparound_phi): Likewise.
2055         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
2056
2057 2011-09-24  David S. Miller  <davem@davemloft.net>
2058
2059         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
2060         (SPARC_GSR_REG): Define.
2061         (FIXED_REGISTERS): Mark GSR as fixed.
2062         (CALL_USED_REGISTERS): Mark GSR as call used.
2063         (HARD_REGNO_NREGS): GSR is always 1 register.
2064         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
2065         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
2066         (REGISTER_NAMES): Add "%gsr".
2067         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
2068         (UNSPEC_WRGSR): New unspec.
2069         (GSR_REG): New constant.
2070         (type): Add new insn type 'gsr'.
2071         (fpack16_vis, fpackfix_vis, fpack32_vis,
2072         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
2073         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
2074         rdgsr_v8plus): New expanders and insns.
2075         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
2076         using patterns which show that this is a plus in addition to a
2077         modification of GSR_REG, instead of an unspec.
2078         * config/sparc/ultra1_2.md: Handle 'gsr'.
2079         * config/sparc/ultra3.md: Likewise.
2080         * config/sparc/niagara.md: Likewise.
2081         * config/sparc/niagara2.md: Likewise.
2082         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
2083         end of table.
2084         (sparc_option_override): Make -mvis imply -mv8plus.
2085         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
2086         for %gsr.
2087         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
2088         __builtin_vis_read_gsr.
2089         (sparc_expand_buildin): Handle builtins that take one argument and
2090         return void.
2091         (sparc_fold_builtin): Never fold writes to %gsr.
2092         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
2093         * doc/extend.texi: Document new VIS intrinsics.
2094
2095 2011-09-23  Jan Hubicka  <jh@suse.cz>
2096
2097         * ipa-inline-transform.c (inline_call): Add comment.
2098         * ipa-inline.h (inline_param_summary): New structure and vector.
2099         (struct inline_edge_summary): Add param field.
2100         * ipa-inline-analysis.c (CHANGED): New constant.
2101         (add_clause): Handle CHANGED and NOT_CONSTANT.
2102         (predicate_probability): New function.
2103         (dump_condition): Dump CHANGED predicate.
2104         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
2105         of unknown function wide invariant.
2106         (evaluate_conditions_for_edge): Handle change probabilities.
2107         (inline_edge_duplication_hook): Copy param summaries.
2108         (inline_edge_removal_hook): Free param summaries.
2109         (dump_inline_edge_summary): Fix dumping of indirect edges and callee
2110         sizes; dump param summaries.
2111         (will_be_nonconstant_predicate): Use CHANGED predicate.
2112         (record_modified_bb_info): New structure.
2113         (record_modified): New function.
2114         (param_change_prob): New function.
2115         (estimate_function_body_sizes): Compute param summaries.
2116         (estimate_edge_size_and_time): Add probability argument.
2117         (estimate_node_size_and_time): Add inline_param_summary argument;
2118         handle predicate probabilities.
2119         (remap_predicate): Fix formating.
2120         (remap_edge_change_prob): New function.
2121         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
2122         (remap_edge_predicates): ... this one.
2123         (inline_merge_summary): Remap edge summaries; handle predicate
2124         probabilities; remove param summaries after we are done.
2125         (do_estimate_edge_time): Update.
2126         (do_estimate_edge_growth): Update.
2127         (read_inline_edge_summary): Read param info.
2128         (inline_read_summary): Fix formating.
2129         (write_inline_edge_summary): Write param summaries.
2130
2131 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2132
2133         * config/i386/i386.c (ix86_print_operand): Handle %~.
2134         (ix86_print_operand_punct_valid_p): Return true also for '~'.
2135         * config/i386/sse.md (i128): New mode_attr.
2136         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
2137         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
2138         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
2139         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
2140         patterns, use "<sseinsnmode>" for "mode" attribute.
2141         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
2142         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
2143         %~128 in the patterns, use "OI" for "mode" attribute.
2144
2145 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2146
2147         PR target/50447
2148         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
2149         "tstsi", "compare".
2150         (*cmpqi_sign_extend): Use s8_operand.
2151         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
2152         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
2153         prototypes.
2154         (out_tsthi, out_tstsi): Remove prototypes.
2155         (avr_out_tsthi, avr_out_tstsi): New prototypes.
2156         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
2157         (avr_asm_len): Negative length now sets *plen to -length.
2158         (compare_sign_p): Return bool instead of int.
2159         (compare_diff_p, compare_eq_p): Ditto and make static.
2160         (avr_out_tsthi): New function.
2161         (avr_out_tstsi): New function.
2162         (avr_out_compare): New function.
2163         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
2164         ADJUST_LEN_COMPARE.
2165
2166 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2167
2168         PR target/50447
2169         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
2170         (addsi3): Rewrite using QI scratch register.  Adjust text
2171         peepholes using plus:SI.
2172         (*addsi3_zero_extend.hi): New insn.
2173         (*subsi3_zero_extend.hi): New insn.
2174         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
2175         (*subsi3_zero_extend): Ditto.
2176         (subsi3): Change predicate #2 to register_operand.
2177         * config/avr/avr-protos.h (avr_out_plus): New prototype.
2178         (avr_out_plus_1): New static function.
2179         (avr_out_plus): New function.
2180         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
2181
2182 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
2183
2184         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
2185         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
2186
2187 2011-09-23  Ian Lance Taylor  <iant@google.com>
2188
2189         * godump.c (go_define): Treat a single character in single quotes,
2190         or a string, as an operand.
2191
2192 2011-09-23  Martin Jambor  <mjambor@suse.cz>
2193
2194         * ipa-prop.h (jump_func_type): Updated comments.
2195         (ipa_known_type_data): New type.
2196         (ipa_jump_func): Use it to describe known type jump functions.
2197         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
2198         reflect the new known type jump function contents.
2199         (compute_known_type_jump_func): Likewise.
2200         (combine_known_type_and_ancestor_jfs): Likewise.
2201         (try_make_edge_direct_virtual_call): Likewise.
2202         (ipa_write_jump_function): Likewise.
2203         (ipa_read_jump_function): Likewise.
2204         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
2205         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
2206         (propagate_accross_jump_function): Likewise.
2207
2208 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
2209
2210         PR target/50446
2211         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
2212         (rotlqi3_4): Turn insn into expander.
2213         (*rotlqi3): New insn.
2214         (rotlhi3, rotlsi3): Support rotate left/right by 1.
2215         (*rotlhi2.1, *rotlhi2.15): New insns.
2216         (*rotlsi2.1, *rotlsi2.31): New insns.
2217         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
2218
2219 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
2220
2221         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
2222
2223 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2224
2225         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
2226
2227 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2228
2229         * reload.c (find_reloads): Set operand_mode to Pmode for address
2230         operands consisting of just a CONST_INT.
2231
2232 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
2233
2234         PR target/50482
2235         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2236         blendv, force op_true to register if it doesn't satisfy
2237         nonimmediate_operand predicate.
2238
2239 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
2240
2241         PR middle-end/50113
2242         PR middle-end/50061
2243         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
2244         get the locate.where_pad value for register-only arguments.
2245         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
2246         (arm_pad_reg_upward): Handle null types.
2247
2248 2011-09-22  Jan Hubicka  <jh@suse.cz>
2249
2250         * ipa-inline-analysis.c: Fix overly long lines.
2251
2252 2011-09-22  Jan Hubicka  <jh@suse.cz>
2253
2254         * ipa-inline-transform.c (inline_call): Always update jump functions
2255         after inlining.
2256         * ipa-inline.c (ipa_inline): Likewise; do not call
2257         ipa_create_all_structures_for_iinln.
2258         (ipa_inline): Always free jump functions.
2259         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
2260         (remap_edge_predicates): Fix pasto.
2261         (inline_merge_summary): Remove nlined edge predicate; remove hack.
2262         (inline_analyze_function): Always initialize jump functions.
2263         (inline_generate_summary): Likewise.
2264         (inline_write_summary): Always write jump functions when ipa-cp
2265         is not doing that.
2266         (inline_read_summary): Always read jump functions when ipa-cp
2267         is not doing that.
2268         * ipa-prop.c (iinlining_processed_edges): Remove.
2269         (update_indirect_edges_after_inlining): Do not use
2270         iinlining_processed_edges; instead set param_index to -1.
2271         (propagate_info_to_inlined_callees): Only try to indirect inlining
2272         when asked to do so; update jump functions of indirect calls, too;
2273         remove jump functions of the inlined edge.
2274         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
2275         (ipa_create_all_structures_for_iinln): Remove.
2276         (ipa_free_all_structures_after_iinln): Do not free
2277         iinlining_processed_edges.
2278         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
2279
2280 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
2281
2282         * config/arm/predicates.md (expandable_comparison_operator): New
2283         predicate, extracted from...
2284         (arm_comparison_operator): ...here.
2285         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
2286         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
2287         (movdfcc): Use expandable_comparison_operator.
2288
2289 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
2290
2291         PR target/50447
2292         PR target/50465
2293         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
2294         (avr_popcount_each_byte): New prototype.
2295         * config/avr/avr.c (avr_popcount): New static function.
2296         (avr_popcount_each_byte): New function.
2297         (avr_out_bitop): New function.
2298         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
2299         avr_out_bitop.  Cleanup code.
2300         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
2301         (Ca4, Co4, Cx4): New constraints.
2302         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
2303         alternative.
2304         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
2305         (andsi3, iorsi3, xorsi3): Ditto.
2306         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
2307
2308 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
2309
2310         PR tree-optimization/50451
2311         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
2312         constant operands in reduction.
2313         (vect_get_slp_defs): Don't create vector operand for NULL scalar
2314         operand.
2315
2316 2011-09-22  David S. Miller  <davem@davemloft.net>
2317
2318         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
2319         fpack16, fpack32, fpackfix as const.
2320
2321         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
2322         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
2323         constants.  Use them everywhere.
2324
2325 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
2326
2327         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
2328         Added AND special case.  Adapted comments.
2329         (sh_rtx_costs): Added XOR and IOR case.
2330
2331 2011-09-21  Jan Hubicka  <jh@suse.cz>
2332
2333         * ipa-inline-analsis.c (compute_inline_parameters): Set
2334         cfun and current_function_decl.
2335
2336 2011-09-21  Jan Hubicka  <jh@suse.cz>
2337
2338         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
2339         handled components in parameter of builtin_constant_p.
2340         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
2341
2342 2011-09-21  Jan Hubicka  <jh@suse.cz>
2343
2344         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
2345         * ipa-inline.h (estimate_edge_time): Fix pasto.
2346         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
2347
2348 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2349
2350         * config/i386/i386.c (ix86_expand_sse_movcc): Use
2351         blendvps, blendvpd and pblendvb if possible.
2352
2353 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
2354
2355         PR target/50464
2356         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
2357         operand 1 predicate to register_operand and operand 2 predicate
2358         to nonimmediate_operand.
2359         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
2360         xop_pcmov, force op_true to register.  Also, force op_false to
2361         register if it doesn't satisfy nonimmediate_operand predicate.
2362
2363 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
2364
2365         * config/i386/bmi2intrin.h (_mulx_u64): New.
2366         (_mulx_u32): Ditto.
2367
2368 2011-09-21  Jan Hubicka  <jh@suse.cz>
2369
2370         PR tree-optimization/50433
2371         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
2372         Use get_base_address.
2373
2374 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
2375
2376         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
2377         nonimmediate_operand instead of register_operand predicate for operands
2378         1 and 2, force them into registers if expanding them as comparison.
2379         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
2380         V8HImode force into register just operand 1.
2381
2382 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2383
2384         PR target/45099
2385         * config/avr/avr.c (avr_function_arg_advance): Change error to
2386         warning if a fixed register is needed as function argument.
2387
2388 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
2389
2390         PR target/50449
2391         PR target/50465
2392         * config/avr/avr.md (adjust_len): New insn attribute.
2393         (*reload_insi, *reload_insf): Use it.
2394         (*movsi, *movsf): Use new interface of output_movsisf.
2395         * config/avr/avr-protos.h (output_movsisf): Change prototype.
2396         * config/avr/avr.c (output_movsisf): Ditto.
2397         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
2398         lengths of insns *reload_insi, *reload_insf.
2399         (output_reload_insisf_1): New static function.
2400         (output_reload_insisf): Use it.
2401
2402 2011-09-21  David S. Miller  <davem@davemloft.net>
2403
2404         * config/sparc/sparc.c (def_builtin): Change from macro into function.
2405         (def_builtin_const): New.
2406         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
2407         other than alignaddr and falignaddr.
2408
2409         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
2410         UNSPEC_FCMPEQ): New unspec codes.
2411         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
2412         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
2413         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
2414         new pixel compare VIS patterns.
2415         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
2416         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
2417         __vis_fcmpeq16, __vis_fcmpeq32): New.
2418         * doc/extend.texi: Document new pixel compare VIS intrinsics.
2419
2420 2011-09-21  Tom de Vries  <tom@codesourcery.com>
2421
2422         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
2423
2424 2011-09-20  David S. Miller  <davem@davemloft.net>
2425
2426         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
2427         (aligneddrl<P:mode>_vis): New pattern.
2428         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2429         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
2430         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
2431         alignaddrl insn, and adjust edge operations for updated types.
2432         * config/sparc/visintrin.h: Likewise.
2433         * doc/extend.texi: Make typing in VIS documentation match reality.
2434
2435 2011-09-20  Terry Guo  <terry.guo@arm.com>
2436
2437         * config/arm/arm-arches.def: Add armv6s-m.
2438         * config/arm/arm-tables.opt: Regenerate.
2439
2440 2011-09-20  Wei Guozhi  <carrot@google.com>
2441
2442         PR rtl-optimization/49452
2443         * postreload.c (reload_combine): Invalidate use information when across
2444         volatile insn.
2445
2446 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
2447
2448         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
2449         Remove maintenance overhead.
2450         (haifa_sched_init, sched_finish): Update.
2451
2452 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
2455         to calculate unit, prefix_rep and prefix_data16 attributes.
2456         (*mov<mode>_internal): Ditto for unit attribute.
2457         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
2458         (*movv2sf_internal): Ditto.
2459         * config/i386/sse.md (VI1248_256): Remove mode iterator.
2460         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
2461         (*avx2_eq<mode>3): Ditto.
2462         (avx2_gt<mode>3): Ditto.
2463
2464 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
2465
2466         * config/i386/i386.md (maxmin): New code iterator.
2467         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
2468         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
2469         code iterator.
2470         (*avx2_<maxmin:code><mode>3): Macroize isn from
2471         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
2472         maxmin code iterator.
2473         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
2474         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
2475         <umaxmin:code>v16qi3.
2476
2477 2011-09-19  Alan Modra  <amodra@gmail.com>
2478             Michael Meissner  <meissner@linux.vnet.ibm.com>
2479
2480         PR target/50341
2481         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
2482         split the load of the indirect function's TOC from the call to
2483         prevent the compiler from moving the load of the new TOC above
2484         code that references the current function's TOC.
2485         (call_indirect_aix<ptrsize>_internal): Ditto.
2486         (call_indirect_aix<ptrsize>_nor11): Ditto.
2487         (call_indirect_aix<ptrsize>_internal2): Ditto.
2488         (call_value_indirect_aix<ptrsize>): Ditto.
2489         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2490         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2491         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2492
2493 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
2494
2495         * config/i386/sse.md (*sse4_1_extractps): Change into
2496         define_insn_and_split, add =x 0 n and =x x n alternatives
2497         and split them after reload.
2498
2499 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2500
2501         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
2502
2503 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
2504
2505         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
2506
2507 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
2508
2509         PR tree-optimization/50413
2510         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
2511         a basic block if one of its data-refs can't be analyzed.
2512
2513 2011-09-19  Paul Brook  <paul@codesourcery.com>
2514
2515         * config/arm/predicates.md (shift_amount_operand): Check constant
2516         shift count is in range.
2517         (const_shift_operand): Remove.
2518
2519 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2520             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
2521
2522         PR target/50091
2523         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
2524         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
2525
2526 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2527
2528         * config/i386/bmiintrin.h: Remove tmp.
2529         * config/i386/tbmintrin.h: Likewise.
2530
2531 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2532
2533         PR tree-optimization/50414
2534         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
2535         MIN_EXPR.
2536
2537 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
2538
2539         PR tree-optimization/50412
2540         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
2541         acceses that require epilogue loop if vectorizing outer loop.
2542
2543 2011-09-17  David S. Miller  <davem@davemloft.net>
2544
2545         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
2546         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
2547         New unspecs.
2548         (define_attr type): New type 'edge'.
2549         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
2550         edge32l_vis): New patterns.
2551         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
2552         * config/sparc/ultra3.md: Likewise.
2553         * config/sparc/niagara.md: Likewise.
2554         * config/sparc/niagara2.md: Likewise.
2555         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
2556         builtins for VIS edge instructions.
2557         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
2558         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
2559         intrinsics.
2560         (__v8qi, __v4qi): Make unsigned.
2561         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
2562         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
2563         __vis_fpack32): Fix types.
2564         * doc/extend.texi: Document new 'edge' VIS intrinsics.
2565
2566         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
2567         divide costs.
2568         (niagara3_costs): New.
2569         (sparc_option_override): Use it.
2570         * gcc/config/sparc/niagara2.md: Adjust with more accurate
2571         Niagara-3 reservations.
2572
2573 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
2574
2575         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
2576         (sse2_avx, sseinsnmode): Add V2TI.
2577         (REDUC_SMINMAX_MODE): New mode iterator.
2578         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
2579         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
2580         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
2581         (sse2_lshrv1ti3): Rename to...
2582         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
2583         iterator.  Move before umaxmin expanders.
2584         * config/i386/i386.h (VALID_AVX256_REG_MODE,
2585         SSE_REG_MODE_P): Accept V2TImode.
2586         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
2587         V16HImode, V8SImode and V4DImode.
2588
2589         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
2590         and V4DImode.
2591         (ix86_build_signbit_mask): Likewise.
2592         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
2593         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
2594         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
2595         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
2596         (<code><mode>3) ... this.
2597         (avx2_<code><mode>3 smaxmin expand): Rename to...
2598         (<code><mode>3) ... this.
2599         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
2600         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
2601         VI8_AVX2 mode iterator.
2602         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
2603         VI8_AVX2 mode iterator.
2604         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
2605         New expanders.
2606
2607 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
2608
2609         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
2610         throughout file.
2611
2612 2011-09-16  David S. Miller  <davem@davemloft.net>
2613
2614         * config/sparc/visintrin.h: New file.
2615         * config.gcc: Add it to extra_headers on sparc.
2616
2617 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
2618
2619         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
2620         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
2621         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
2622         reduc_smin_v4sf): Adjust callers.
2623         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
2624         New expanders.
2625
2626         * config/i386/sse.md (vec_extract_hi_<mode>,
2627         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
2628         vextracti128 instead of vextractf128 for -mavx2 and
2629         integer vectors.  For V4DFmode fix up mode attribute.
2630         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
2631         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
2632         instead of V8SF mode attribute.
2633         (avx2_extracti128): Change into define_expand.
2634         * config/i386/i386.c (ix86_expand_vector_extract): Handle
2635         32-byte vector modes if TARGET_AVX.
2636
2637 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2638
2639         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
2640         (umulqi3_highpart, smulqi3_highpart): Ditto.
2641         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
2642         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
2643         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
2644
2645 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
2646
2647         PR target/50358
2648         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
2649         (*maddqi4, *maddqi4.const): New insns.
2650         (*msubqi4, *msubqi4.const): New insns.
2651         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
2652         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
2653         HImode by 1 in the case of multiplying with a CONST_INT.
2654         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
2655
2656 2011-09-15   Jan Hubicka  <jh@suse.cz>
2657
2658         PR lto/50430
2659         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
2660         error_mark_node in the DECL_INITIAL of vtable.
2661
2662 2011-09-15   Diego Novillo  <dnovillo@google.com>
2663
2664         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
2665         @SYSROOT_CFLAGS_FOR_TARGET@.
2666         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
2667         * configure: Regenerate.
2668         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
2669         Remove setting of GCC_UNDER_TEST.
2670
2671 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
2672
2673         * config/i386/i386.c (output_fp_compare): Return %v prefixed
2674         instruction mnemonics for TARGET_AVX.
2675
2676         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
2677         "type" attribute calculation.
2678         (*movdf_internal): Ditto.
2679         (*movsf_internal): Ditto.
2680
2681 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
2682
2683         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
2684
2685 2011-09-15  Jason Merrill  <jason@redhat.com>
2686
2687         PR c++/50361
2688         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
2689
2690 2011-09-15  Jan Hubicka  <jh@suse.cz>
2691
2692         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
2693         simplify obviously true clauses.
2694         (and_predicates, or_predicates): Add conditions parameter.
2695         (inline_duplication_hoook): Update.
2696         (mark_modified): New function.
2697         (unmodified_parm): New function.
2698         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
2699         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
2700         Use unmodified_parm.
2701         (estimate_function_body_sizes): Update.
2702         (remap_predicate): Update.
2703
2704 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
2705
2706         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
2707         read-after-read dependencies in basic block SLP.
2708
2709 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2710
2711         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
2712         throughout file.
2713
2714 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2715
2716         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
2717         throughout file.
2718
2719 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2720
2721         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
2722         throughout file.
2723
2724 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2725
2726         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
2727         throughout file.
2728         * config/rs6000/constraints.md: Likewise.
2729
2730 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2731
2732         * config/microblaze/microblaze.md: Use match_test rather than
2733         eq/ne symbol_ref throughout file.
2734
2735 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
2736
2737         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
2738         throughout file.
2739
2740 2011-09-14  Tom de Vries  <tom@codesourcery.com>
2741
2742         PR middle-end/50251
2743         * explow.c (emit_stack_restore): Set crtl->need_drap if
2744         stack_restore is emitted.
2745
2746 2011-09-14  Julian Brown  <julian@codesourcery.com>
2747
2748         * config/arm/arm.c (arm_override_options): Add unaligned_access
2749         support.
2750         (arm_file_start): Emit attribute for unaligned access as appropriate.
2751         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
2752         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
2753         (insv, extzv): Add unaligned-access support.
2754         (extv): Change to expander. Likewise.
2755         (extzv_t1, extv_regsi): Add helpers.
2756         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
2757         (unaligned_storesi, unaligned_storehi): New.
2758         (*extv_reg): New (previous extv implementation).
2759         * config/arm/arm.opt (munaligned_access): Add option.
2760         * config/arm/constraints.md (Uw): New constraint.
2761         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
2762         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
2763         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
2764         volatile accesses when -fstrict-volatile-bitfields is in effect.
2765         (extract_bit_field_1): Likewise.
2766
2767 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
2768
2769         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
2770         a scalar integer before applying integer-only optimisations to
2771         inner arithmetic.
2772
2773 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
2774
2775         * config/mips/mips.c (mips_expand_epilogue): Generate a
2776         simple_return only if the return address is in r31.
2777
2778 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2779
2780         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
2781         NULL for a jump that is a cc0 insn, pick the previous insn for
2782         move_before.
2783
2784 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2785
2786         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
2787         throughout file.
2788
2789 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2790
2791         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
2792         throughout file.
2793
2794 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2795
2796         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
2797         symbol_ref throughout file.
2798
2799 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2800
2801         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
2802         throughout file.
2803
2804 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2805
2806         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
2807         throughout file.
2808
2809 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2810
2811         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
2812         throughout file.
2813         * config/arm/neon.md: Likewise.
2814         * config/arm/vfp.md: Likewise.
2815         * config/arm/thumb2.md: Likewise.
2816         * config/arm/cortex-m4.md: Likewise.
2817
2818 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
2819
2820         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
2821         define_insn patterns for combine.
2822
2823 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
2824
2825         * reorg.c: Always define make_return_insns.
2826
2827 2011-09-13  Jan Hubicka  <jh@suse.cz>
2828
2829         PR other/49533
2830         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
2831
2832 2011-09-13  Jan Hubicka  <jh@suse.cz>
2833
2834         PR other/49533
2835         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
2836
2837 2011-09-13  Paul Brook  <paul@codesourcery.com>
2838
2839         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2840         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
2841         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
2842         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
2843         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
2844         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
2845         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
2846         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
2847         enabling unwind tables.
2848         (c6x_debug_unwind_info): New function.
2849         (TARGET_ARM_EABI_UNWINDER): Define.
2850         (TARGET_DEBUG_UNWIND_INFO): Define.
2851         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
2852         (TARGET_EXTRA_CFI_SECTION): Remove.
2853         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
2854         * ginclude/unwind-arm-common.h: New file.
2855
2856 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
2857
2858         PR target/50358
2859         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
2860         * config/avr/avr.md: (extend_s): New code attribute.
2861         (mul_r_d): New code attribute.
2862         (*maddqihi4, *umaddqihi4): New insns.
2863         (*msubqihi4, *umsubqihi4): New insns.
2864         (*usmaddqihi4, *sumaddqihi4): New insns.
2865         (*usmsubqihi4, *susubdqihi4): New insns.
2866         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
2867         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
2868         (*umsubqihi4.uconst.ashift): New insn-and-split.
2869         (*msubqihi4.sconst.ashift): New insn-and-split.
2870         (*sumaddqihi4.uconst): New insn-and-split.
2871         (*sumsubqihi4.uconst): New insn-and-split.
2872         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
2873         PLUS:HI and MINUS:HI.
2874
2875 2011-09-13  Revital Eres  <revital.eres@linaro.org>
2876
2877         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
2878         (optimize_sc): Adjust call to remove_node_from_ps.
2879         (sms_schedule): Add print info.
2880
2881 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
2882
2883         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
2884         flags specially.
2885
2886 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2887
2888         PR bootstrap/50010
2889         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
2890         NOTE_INSN_CFI notes, with the exception of
2891         NOTE_INSN_SWITCH_TEXT_SECTIONS.
2892
2893 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2894             Richard Sandiford  <rdsandiford@googlemail.com>
2895
2896         * config/mips/mips.c (mips_epilogue): New structure.
2897         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
2898         restoring registers.
2899         (mips_epilogue_emit_cfa_restores): New function.
2900         (mips_epilogue_set_cfa): Likewise.
2901         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
2902         the current CFA register from the stack, redefine the CFA in terms
2903         of the stack pointer.
2904         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
2905         to the epilogue instructions.
2906
2907 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
2908
2909         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
2910         argument.
2911         (mips16e_build_save_restore): Update accordingly.
2912
2913 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2914
2915         PR rtl-optimization/50212
2916         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2917         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
2918
2919         PR debug/50299
2920         * calls.c (load_register_parameters): Use use_reg_mode instead
2921         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
2922         entry.
2923         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
2924         for stack CALL_INSN_FUNCTION_USAGE uses.
2925         * expr.h (use_reg_mode): New prototype.
2926         (use_reg): Changed into inline around use_reg_mode.
2927         * expr.c (use_reg): Renamed to...
2928         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
2929         mode to that mode instead of VOIDmode.
2930         * var-tracking.c (prepare_call_arguments): Don't track parameters
2931         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
2932         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
2933         EXPR_LIST mode.
2934
2935 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
2936
2937         PR target/43746
2938         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
2939         (progmem_section): New Variable.
2940         (avr_asm_init_sections): Initialize it.
2941         (TARGET_ASM_SELECT_SECTION): Define to...
2942         (avr_asm_select_section): ... this new Function.
2943         (avr_replace_prefix): New Function.
2944         (avr_asm_function_rodata_section): Use it.
2945         (avr_insert_attributes): Don't add section attribute for PROGMEM.
2946         (avr_section_type_flags): Use avr_progmem_p instead of section
2947         name to detect if object is in PROGMEM.
2948         (avr_asm_named_section): Set section name prefix for objects in
2949         PROGMEM.
2950
2951 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
2952
2953         PR bootstrap/50352
2954         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
2955         sprintf format string.
2956
2957 2011-09-12  Richard Guenther  <rguenther@suse.de>
2958
2959         PR tree-optimization/50343
2960         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
2961         that the reduction is over an SSA name before checking its definition.
2962
2963 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
2964
2965         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
2966         throughout file.
2967
2968 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
2969
2970         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
2971         throughout file.
2972         * config/mips/sb1.md: Likewise.
2973         * config/mips/predicates.md: Replace (match_test "!...")
2974         with (not (match_test "..."))
2975         * config/mips/constraints.md: Likewise.
2976
2977 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
2978
2979         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
2980         * config/arm/arm-tables.opt: Regenerate.
2981         * config/arm/arm-tune.md: Regenerate.
2982         * config/arm/arm.c (arm_file_start): Output .arch directive when
2983         user passes -mcpu=generic-*.
2984         (arm_issue_rate): Add genericv7a support.
2985         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
2986         (ASM_CPU_SPEC): New define.
2987         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
2988         * config/arm/semi.h (ASM_SPEC): Likewise.
2989         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
2990         and -mtune=generic-*.
2991
2992 2011-09-09  Richard Guenther  <rguenther@suse.de>
2993
2994         PR tree-optimization/50328
2995         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
2996         constant or default-def operand.
2997
2998 2011-09-09  Richard Guenther  <rguenther@suse.de>
2999
3000         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
3001         last statement.
3002
3003 2011-09-09  Richard Guenther  <rguenther@suse.de>
3004
3005         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
3006         instead of a statement.
3007         * gimple-fold.c (fold_stmt_inplace): Likewise.
3008         * sese.c (graphite_copy_stmts_from_block): Adjust.
3009         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3010         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
3011         fold_stmt.
3012         (forward_propagate_addr_into_variable_array_index): Likewise.
3013         (forward_propagate_addr_expr_1): adjust.
3014         (associate_plusminus): Likewise.
3015         (ssa_forward_propagate_and_combine): Likewise.
3016         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
3017         (execute_cse_reciprocals): Likewise.
3018         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
3019
3020 2011-09-09  Nick Clifton  <nickc@redhat.com>
3021
3022         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
3023         Return a positive value to indicate that the bits at the
3024         bottom of the register should be cleared.
3025
3026 2011-09-09  Richard Guenther  <rguenther@suse.de>
3027
3028         * tree-ssa-operands.c (swap_tree_operands): Always adjust
3029         existing operand positions.
3030
3031 2011-09-09  Richard Guenther  <rguenther@suse.de>
3032
3033         PR middle-end/50333
3034         * tree-data-ref.c (split_constant_offset): Do not try to handle
3035         ternary ops.
3036
3037 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
3038
3039         PR tree-optimization/50318
3040         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
3041         typo in use of mult_rhs1 and mult_rhs2.
3042
3043 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
3044
3045         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
3046         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
3047
3048 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
3049
3050         * config/arm/arm.md (push_multi): Emit predicates.
3051         (push_fp_multi): Likewise.
3052         * config/arm/arm.c (vfp_output_fstmd): Likewise.
3053
3054 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
3055
3056         PR c++/33255 - Support -Wunused-local-typedefs warning
3057         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
3058         (pushdecl): Use the new record_locally_defined_typedef.
3059         (store_parm_decls): Allocate cfun->language.
3060         (finish_function): Use the new maybe_warn_unused_local_typedefs,
3061         and free cfun->language.
3062         (c_push_function_context): Allocate cfun->language here only if needed.
3063         (c_pop_function_context): Likewise, mark cfun->language
3064         for collection only when it should be done.
3065         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
3066         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
3067         maybe_record_local_typedef_use.
3068         * doc/invoke.texi: Update documentation for
3069         -Wunused-local-typedefs.
3070
3071 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
3072
3073         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
3074         (ix86_avoid_lea_for_add): Likewise.
3075         (ix86_avoid_lea_for_addr): Likewise.
3076         (ix86_split_lea_for_addr): Likewise.
3077
3078         * config/i386/i386.c (LEA_MAX_STALL): New.
3079         (increase_distance): Likewise.
3080         (insn_defines_reg): Likewise.
3081         (insn_uses_reg_mem): Likewise.
3082         (distance_non_agu_define_in_bb): Likewise.
3083         (distance_agu_use_in_bb): Likewise.
3084         (ix86_lea_outperforms): Likewise.
3085         (ix86_ok_to_clobber_flags): Likewise.
3086         (ix86_avoid_lea_for_add): Likewise.
3087         (ix86_avoid_lea_for_addr): Likewise.
3088         (ix86_split_lea_for_addr): Likewise.
3089         (distance_non_agu_define): Search in pred BBs added.
3090         (distance_agu_use): Search in succ BBs added.
3091         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
3092         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
3093         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
3094
3095         * config/i386/i386.md: Split added to transform non destructive
3096         add into move and add.
3097         (lea_1): transformed into insn_and_split to avoid AGU stalls.
3098         (lea<mode>_2): Likewise.
3099
3100 2011-09-08  Martin Jambor  <mjambor@suse.cz>
3101
3102         PR tree-optimization/50287
3103         * ipa-split.c (split_function): Do not create SSA names for
3104         non-gimple-registers.
3105
3106 2011-09-08  Richard Guenther  <rguenther@suse.de>
3107
3108         PR tree-optimization/19831
3109         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
3110         skip builtins with vdefs that do not really store something.
3111         (propagate_necessity): For calls to free that we can associate
3112         with an allocation function do not mark the freed pointer
3113         definition necessary.
3114         (eliminate_unnecessary_stmts): Remove a call to free if
3115         the associated call to an allocation function is not necessary.
3116
3117 2011-09-08  Richard Guenther  <rguenther@suse.de>
3118
3119         PR tree-optimization/19831
3120         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
3121         allocation functions as necessary.
3122
3123 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
3124
3125         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
3126         cut from ...
3127         (darwin_default_min_version): Amended to provide defaults
3128         for the cross directory case.
3129         (darwin_driver_init): call darwin_default_min_version unconditionally.
3130         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
3131         * config/darwin9.h: Likewise.
3132         * config/darwin10.h: Likewise.
3133         * config/rs6000/darwin7.h: Likewise.
3134
3135 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
3136
3137         PR target/50310
3138         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
3139         code early if TARGET_AVX.
3140         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
3141
3142 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3143
3144         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
3145         duplicates.
3146
3147         PR target/50310
3148         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
3149         "mode" attribute computation.
3150
3151 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3152
3153         * regrename.c (struct du_head): Make nregs signed.
3154         (closed_chains): Remove.
3155         (create_new_chain): Return the new chain.
3156         (chain_from_id): New static function.
3157         (dump_def_use_chain): Change argument to be an int, indicating
3158         the first ID to print.  All callers changed.
3159         (merge_overlapping_regs): Use chain_from_id.  Assert that
3160         chains don't conflict with themselves.
3161         (rename_chains): Take no argument.  Iterate over id_to_chain
3162         rather to find chains to rename.  Clear tick before the main loop.
3163         (struct incoming_reg_info): New struct.
3164         (struct bb_rename_info): New struct.
3165         (init_rename_info, set_incoming_from_chain, merge_chains): New
3166         static functions.
3167         (regrename_analyze): New static function, broken out of
3168         regrename_optimize.  Record and make use of open chain information
3169         at basic block boundaries, and merge chains where possible.
3170         (scan_rtx_reg): Make this_nregs signed.  Don't update
3171         closed_chains.
3172         (build_def_use): Return a bool to indicate success.  All callers
3173         changed.  Don't initialize global data here.
3174         (regrename_optimize): Move most code out of here into
3175         regrename_analyze.
3176         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
3177         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
3178         static inline functions.
3179         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
3180
3181         * bb-reorder.c (insert_section_boundary_note): Don't check
3182         optimize_function_for_speed_p.
3183         (gate_handle_partition_blocks): Do it here instead.
3184         (gate_handle_reorder_blocks): Move preliminary checks here ...
3185         (rest_of_handle_reorder_blocks): ... from here.
3186
3187 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3188
3189         PR middle-end/50301
3190         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
3191         function index bounds.
3192         (perhaps_add_new_callers): Likewise.
3193
3194 2011-09-07  Martin Jambor  <mjambor@suse.cz>
3195
3196         PR tree-optimization/49911
3197         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
3198         enumerations to the corresponding plain integer type.
3199
3200 2011-09-07  Richard Guenther  <rguenther@suse.de>
3201
3202         PR tree-optimization/50319
3203         * tree-if-conv.c (set_bb_predicate): Assert we only set
3204         canonical predicates.
3205         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
3206         around canonical predicates.
3207         (predicate_bbs): Do not re-gimplify already canonical
3208         predicates.  Properly unshare them though.
3209         (find_phi_replacement_condition): Simplify.
3210
3211 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
3212
3213         PR target/49030
3214         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
3215         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
3216         reusing the old code from get_arm_condition_code.  Return ARM_NV
3217         for invalid comparison codes.
3218         (get_arm_condition_code): Redefine in terms of
3219         maybe_get_arm_condition_code.
3220         * config/arm/predicates.md (arm_comparison_operator): Use
3221         maybe_get_arm_condition_code.
3222
3223 2011-09-07  Richard Guenther  <rguenther@suse.de>
3224
3225         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3226         Canonicalize negated predicates by swapping edges.
3227         (forward_propagate_into_cond): Likewise.
3228
3229 2011-09-07  Richard Guenther  <rguenther@suse.de>
3230
3231         PR tree-optimization/50213
3232         * tree-flow.h (simple_iv_increment_p): Declare.
3233         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
3234         POINTER_PLUS_EXPR.
3235         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
3236         not propagate simple IV counter increments.
3237
3238 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3239             Iain Sandoe  <iains@gcc.gnu.org>
3240
3241         * config/rs6000/rs6000.c (compute_save_world_info): Test
3242         cfun->has_nonlocal_label to determine if the out-of-line save
3243         world call may be used.
3244
3245 2011-09-07  Nick Clifton  <nickc@redhat.com>
3246
3247         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
3248         label on the parallel part of the insn.
3249
3250 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
3251
3252         PR debug/50191
3253         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
3254         avoid_constant_pool_reference first instead of last.
3255
3256 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3257
3258         * doc/configfiles.texi (Configuration Files): Update documentation
3259         about tm_p.h and remove FIXME comment.
3260
3261 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
3262
3263         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
3264         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
3265
3266 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
3267
3268         * config/darwin10.h Remove duplicate LIB_SPEC.
3269
3270 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
3271
3272         PR middle-end/44382
3273         * target.def (reassociation_width): New hook.
3274
3275         * doc/tm.texi.in (reassociation_width): Likewise.
3276
3277         * doc/tm.texi (reassociation_width): Likewise.
3278
3279         * doc/invoke.texi (tree-reassoc-width): New param documented.
3280
3281         * hooks.h (hook_int_uint_mode_1): New default hook.
3282
3283         * hooks.c (hook_int_uint_mode_1): Likewise.
3284
3285         * config/i386/i386.h (ix86_tune_indices): Add
3286         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3287
3288         (TARGET_REASSOC_INT_TO_PARALLEL): New.
3289         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
3290
3291         * config/i386/i386.c (initial_ix86_tune_features): Add
3292         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
3293
3294         (ix86_reassociation_width): New function.
3295
3296         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
3297
3298         * tree-ssa-reassoc.c (get_required_cycles): New function.
3299         (get_reassociation_width): Likewise.
3300         (swap_ops_for_binary_stmt): Likewise.
3301         (rewrite_expr_tree_parallel): Likewise.
3302
3303         (rewrite_expr_tree): Refactored.  Part of code moved into
3304         swap_ops_for_binary_stmt.
3305
3306         (reassociate_bb): Now checks reassociation width to be used and
3307         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
3308
3309 2011-09-06  Richard Guenther  <rguenther@suse.de>
3310
3311         PR tree-optimization/47025
3312         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
3313         uses nothing.
3314         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
3315         BUILT_IN_FREE.
3316         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
3317         definitely points to.
3318         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3319         BUILT_IN_VA_START doesn't let its va_list argument escape.
3320         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
3321         not make any previous stores necessary.
3322
3323 2011-09-06  Martin Jambor  <mjambor@suse.cz>
3324
3325         * ipa-inline.h (struct inline_summary): Move versionable flag...
3326         * cgraph.h (struct cgraph_local_info): ...here
3327         * ipa-cp.c (determine_versionability): Use the new versionable flag.
3328         (determine_versionability): Likewise.
3329         (ipcp_versionable_function_p): Likewise.
3330         (ipcp_generate_summary): Likewise.
3331         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
3332         versionable flag.
3333         (compute_inline_parameters): Do not clear the versionable flag.
3334         (inline_read_section): Do not stream the versionable flag.
3335         (inline_write_summary): Likewise.
3336         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
3337         (input_overwrite_node): Likewise.
3338
3339 2011-09-06  Richard Guenther  <rguenther@suse.de>
3340
3341         PR tree-optimization/48149
3342         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
3343         (vn_valueize): Move earlier.
3344         (valueize_expr): Use vn_valueize.
3345         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
3346         operands.
3347         (simplify_unary_expression): Simplify.
3348
3349 2011-09-06  Richard Guenther  <rguenther@suse.de>
3350
3351         PR tree-optimization/48317
3352         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
3353         trailing array.
3354         (sizeof_vn_nary_op): New inline function.
3355         (vn_nary_op_lookup_pieces): Adjust.
3356         (vn_nary_op_insert_pieces): Likewise.
3357         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
3358         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
3359         any number of operands.
3360         (vn_nary_length_from_stmt): New function.
3361         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
3362         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
3363         sized temporary.
3364         (vn_nary_op_lookup): Likewise.
3365         (vn_nary_op_lookup_stmt): Likewise.
3366         (vn_nary_op_insert_into): Likewise.
3367         (vn_nary_op_insert_stmt): Likewise.
3368         (visit_use): Handle CONSTRUCTOR as nary.
3369         * tree-ssa-pre.c (phi_translate_1): Adjust.
3370         (create_expression_by_pieces): Likewise.
3371         (compute_avail): Likewise.
3372
3373 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
3374
3375          * config/arm/arm.c (arm_preferred_simd_mode): Check
3376         TARGET_NEON_VECTORIZE_DOUBLE instead of
3377         TARGET_NEON_VECTORIZE_QUAD.
3378         (arm_autovectorize_vector_sizes): Likewise.
3379         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
3380         mask of mvectorize-with-neon-double.  Add RejectNegative.
3381         (mvectorize-with-neon-double): New.
3382
3383 2011-09-06  Richard Guenther  <rguenther@suse.de>
3384
3385         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
3386
3387 2011-09-06  Tom de Vries  <tom@codesourcery.com>
3388
3389         * recog.c (asm_labels_ok): New function.
3390         (check_asm_operands): Use asm_labels_ok.
3391
3392 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3393
3394         PR target/49606
3395         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
3396         (PMODE_INSN): New macro.
3397         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
3398         (mips_got_load, mips_expand_synci_loop): Likewise.
3399         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
3400         cprestore patterns.
3401         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
3402         copygp_mips16 patterns.
3403         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
3404         and use_cprestore patterns.
3405         (mips_override_options): Check for incompatible -mabi and -mlong
3406         combinations.
3407         * config/mips/mips.md (unspec_got<mode>): Rename to...
3408         (unspec_got_<mode>): ...this.
3409         (copygp_mips16): Use the Pmode iterator.
3410         (potential_cprestore, cprestore, use_cprestore): Likewise.
3411         (clear_cache, indirect_jump): Use PMODE_INSN.
3412         (indirect_jump<mode>): Rename to...
3413         (indirect_jump_<mode>): ...this.
3414         (tablejump): Use PMODE_INSN.
3415         (tablejump<mode>): Rename to...
3416         (tablejump_<mode>): ...this.
3417         (exception_receiver): Handle restore_gp_si and restore_gp_di.
3418         (restore_gp): Use the Pmode iterator.
3419         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
3420         PMODE_INSN.
3421
3422 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
3423
3424         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
3425         Fix the type of the BIT_AND_EXPR.
3426
3427 2011-09-05  David S. Miller  <davem@davemloft.net>
3428
3429         * config.host: Add driver-sparc.o and sparc/x-sparc on
3430         native sparc*-*-linux* builds.
3431         * config/sparc/driver-sparc.c: Correct Linux strings.
3432         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
3433         * config/sparc/linux64.h: Likewise.
3434         * doc/invoke.texi: Document that Linux also supports
3435         -mcpu=native and -mtune=native on sparc.
3436
3437         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
3438         PROCESSOR_NIAGARA4): New.
3439         * config/sparc/sparc.opt: Handle new processor types.
3440         * config/sparc/sparc.md: Add to "cpu" attribute.
3441         * config/sparc/sparc.h (TARGET_CPU_niagara3,
3442         TARGET_CPU_niagara4): New, treat as niagara2.
3443         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3444         * config/sparc/sol2.h: Likewise.
3445         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3446         * config/sparc/sparc.c (sparc_option_override): Add
3447         niagara3 and niagara4 handling.
3448         (sparc32_initialize_trampoline): Likewise.
3449         (sparc64_initialize_trampoline): Likewise.
3450         (sparc_use_sched_lookahead): Likewise.
3451         (sparc_issue_rate): Likewise.
3452         (sparc_register_move_cost): Likewise.
3453         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
3454         and niagara4 as appropriate.
3455         * doc/invoke.texi: Document new processor types.
3456         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
3457         and --with-tune options.
3458
3459         * config/sparc/sol2-64.h: Move ...
3460         * config/sparc/default-64.h: ... to here.  Update comment.
3461         * config.gcc: Update Solaris sparc to use default-64.h, also
3462         prefix this header into the list on sparc64-*-linux.
3463         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
3464         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
3465         to MASK_HARD_QUAD.
3466
3467 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3468
3469         PR target/50289
3470         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
3471         that contain global register variable.
3472
3473 2011-09-05  Richard Guenther  <rguenther@suse.de>
3474
3475         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
3476
3477 2011-09-05  Richard Guenther  <rguenther@suse.de>
3478
3479         * stor-layout.c (layout_type): Use size_binop for array size
3480         calculations.
3481
3482 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
3483
3484         * config/avr/avr.h (progmem_section): Remove Declaration.
3485         * config/avr/avr.c (progmem_section): Make static and rename to
3486         progmem_swtable_section.
3487         (avr_output_addr_vec_elt): No need to switch sections.
3488         (avr_asm_init_sections): Use output_section_asm_op as section
3489         callback for progmem_swtable_section.
3490         (avr_output_progmem_section_asm_op): Remove Function.
3491         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
3492         (avr_asm_function_rodata_section): New static Function.
3493         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
3494         alignment 2**1 for jump tables.
3495
3496 2011-09-04  Jan Hubicka  <jh@suse.cz>
3497
3498         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
3499         parameter is SSA name.
3500
3501 2011-09-04  Richard Guenther  <rguenther@suse.de>
3502
3503         Revert
3504         2011-08-31  Richard Guenther  <rguenther@suse.de>
3505
3506         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3507         special-casing.
3508
3509 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
3510
3511         PR debug/49901
3512         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
3513
3514 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
3515             Ira Rosen  <ira.rosen@linaro.org>
3516
3517         PR tree-optimization/50208
3518         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
3519         argument.  Check that def_stmt is inside the loop.
3520         (vect_recog_widen_mult_pattern): Update calls to
3521         vect_handle_widen_mult_by_cons.
3522         (vect_operation_fits_smaller_type): Check that def_stmt is
3523         inside the loop.
3524
3525 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
3526
3527         * tree-vectorizer.c (vect_print_dump_info): Print line
3528         number when dumping to a file.
3529         (vectorize_loops): Add new messages to dump file.
3530
3531 2011-09-03  Martin Jambor  <mjambor@suse.cz>
3532
3533         * ipa-prop.h (ipa_jump_func_t): New typedef.
3534         (struct ipa_edge_args): Removed field argument_count, field
3535         jump_functions turned into a vector.
3536         (ipa_set_cs_argument_count): Removed.
3537         (ipa_get_cs_argument_count): Updated to work on vectors.
3538         (ipa_get_ith_jump_func): Likewise.
3539         * ipa-prop.c (ipa_count_arguments): Removed.
3540         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
3541         jump functions.  Update caller.
3542         (compute_pass_through_member_ptrs): Likewise.
3543         (compute_cst_member_ptr_arguments): Likewise.
3544         (ipa_compute_jump_functions_for_edge): Get number of arguments from
3545         the statement, allocate vector.
3546         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
3547         (duplicate_ipa_jump_func_array): Removed.
3548         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
3549         (ipa_read_node_info): Allocate vector.
3550
3551 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3552
3553         PR middle-end/50232
3554         * config/pa/pa.md (return): Define "return" insn pattern.
3555         (epilogue): Use it when no epilogue is needed.
3556         * config/pa/pa.c (pa_can_use_return_insn): New function.
3557         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
3558
3559 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
3560
3561         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
3562         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
3563         Force at least BITS_PER_UNIT alignment on the new variable.
3564
3565 2011-09-02  Gary Funck <gary@intrepid.com>
3566
3567         * opts.c (print_specific_help): Fix off-by-one compare in
3568         assertion check.
3569         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3570         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
3571         Increase by +5 to allow for more languages.
3572         * optc-gen.awk: Generate #if that ensures that the number of
3573         languages is within the implementation-defined limit.
3574
3575 2011-09-02  Michael Matz  <matz@suse.de>
3576
3577         PR middle-end/50260
3578         * ipa-split.c (split_function): Call add_referenced_var.
3579
3580         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
3581         (cond_if_else_store_replacement_1): Ditto.
3582         * tree-ssa-pre.c (get_representative_for): Ditto.
3583         (create_expression_by_pieces): Ditto.
3584         (insert_into_preds_of_block): Ditto.
3585         * tree-sra.c (create_access_replacement): Ditto.
3586         (get_replaced_param_substitute): Ditto.
3587
3588 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
3589
3590         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
3591         automata_options.
3592         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
3593         (l1w, s1w, l2w, s2w): Define in the main automaton.
3594         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
3595         units.
3596         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
3597         (c6x_unit_names): Add the new units.
3598         (c6x_unit_codes): New static array.
3599         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
3600         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
3601         UNIT_QID_SIDE_OFFSET): New macros.
3602         (RESERVATION_S2): Adjust value.
3603         (c6x_option_override): Compute c6x_unit_codes.
3604         (assign_reservations): Take the unit_mask of the last instruction
3605         into account.  Detect floating point reservations by looking for
3606         the new units.  Don't assign reservations if the field is already
3607         nonzero.
3608         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
3609         (init_sched_state): Initialize it.
3610         (c6x_clear_sched_context): Free it.
3611         (insn_set_clock): Clear reservation.
3612         (prev_cycle_state): New static variable.
3613         (c6x_init_sched_context): Save it.
3614         (c6x_sched_init): Allocate space for it and clear it.
3615         (c6x_sched_dfa_pre_cycle_insn): New static function.
3616         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
3617         (c6x_variable_issue): Only record units in the unit_mask that
3618         were not set at the start of the cycle.
3619         (c6x_variable_issue): Compute and store the unit_mask from the
3620         current state.
3621         (reorg_split_calls): Ensure the new information remains correct.
3622         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3623         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
3624         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
3625         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
3626         Add special reservations.
3627         * config/c6x/c6x-sched.md: Regenerate.
3628
3629 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3630
3631         * ipa-prop.h (ipa_node_params): Removed fields
3632         called_with_var_arguments and node_versionable.
3633         (ipa_set_called_with_variable_arg): Removed.
3634         (ipa_is_called_with_var_arguments): Likewise.
3635         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
3636         (determine_versionability): Do not check for type attributes and va
3637         builtins.  Record versionability into inline summary.
3638         (initialize_node_lattices): Do not check
3639         ipa_is_called_with_var_arguments.
3640         (propagate_constants_accross_call): Likewise, ignore arguments we do
3641         not have PARM_DECLs for, set variable flag for parameters that were
3642         not passed a value.
3643         (create_specialized_node): Dump info that we cannot change signature.
3644         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
3645         number of arguments.
3646         (ipa_make_edge_direct_to_target): Likewise.
3647         (ipa_update_after_lto_read): Likewise.
3648         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
3649         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
3650         they were remapped.
3651
3652 2011-09-02  Richard Guenther  <rguenther@suse.de>
3653
3654         PR tree-optimization/27460
3655         PR middle-end/29269
3656         * doc/md.texi (vcond): Document.
3657         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
3658         optab with two modes.
3659         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
3660         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
3661         (vcond_optab): Adjust.
3662         (vcondu_optab): Likewise.
3663         (expand_vec_cond_expr_p): Adjust prototype.
3664         * optabs.c (get_vcond_icode): Adjust.
3665         (expand_vec_cond_expr_p): Likewise.
3666         (expand_vec_cond_expr): Likewise.
3667         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
3668         vector type.
3669         (vectorizable_condition): Allow differing types for comparison
3670         and result.
3671         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
3672         for the comparison.
3673         * config/i386/sse.md (vcond<mode>): Split to
3674         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
3675         vcond<V_128:mode><VI124_128:mode> and
3676         vcondu<V_128:mode><VI124_128:mode>.
3677         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
3678         (vconduv2di): Likewise.
3679         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
3680         (vcondu<mode>): Likewise.
3681         * config/ia64/vect.md (vcond<mode>): Likewise.
3682         (vcondu<mode>): Likewise.
3683         (vcondv2sf): Likewise.
3684         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
3685         * config/rs6000/paired.md (vcondv2sf): Likewise.
3686         * config/rs6000/vector.md (vcond<mode>): Likewise.
3687         (vcondu<mode>): Likewise.
3688         * config/spu/spu.md (vcond<mode>): Likewise.
3689         (vcondu<mode>): Likewise.
3690
3691 2011-09-02  Richard Guenther  <rguenther@suse.de>
3692
3693         * pretty-print.h (pp_unsigned_wide_integer): New.
3694         * tree-pretty-print.c (dump_generic_node): Print unsigned
3695         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
3696
3697 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
3698
3699         PR target/49987
3700         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
3701         valid CONST_VECTOR operands.
3702         (rs6000_expand_vector_init): Likewise.
3703
3704 2011-09-02  Martin Jambor  <mjambor@suse.cz>
3705
3706         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
3707         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
3708         BINFO_VTABLE.  Parameter delta removed, all callers updated.
3709         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
3710         BINFO_VTABLE.
3711         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
3712         all calls.
3713         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
3714         handling of thunk_delta.
3715         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
3716         (devirtualization_time_bonus): Do not handle thunk deltas.
3717         (ipcp_discover_new_direct_edges): Likewise.
3718         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3719         (try_make_edge_direct_simple_call): Likewise.
3720         (try_make_edge_direct_virtual_call): Likewise.
3721         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3722         parameter set as unused.
3723         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3724         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
3725         parameter set as unused.
3726         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
3727         (input_edge_opt_summary): Likewise.
3728         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
3729         BINFO_VIRTUALS at all.
3730         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
3731
3732 2011-09-02  Richard Guenther  <rguenther@suse.de>
3733
3734         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
3735         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
3736
3737 2011-08-31  Richard Guenther  <rguenther@suse.de>
3738
3739         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
3740         handling here, from ...
3741         (expand_expr_real_1): ... here.
3742         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
3743         and VEC_COND_EXPR.
3744         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
3745         a GIMPLE_TERNARY_RHS.
3746         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
3747         and VEC_COND_EXPR here ...
3748         (verify_gimple_assign_single): ... not here.
3749         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
3750         * tree-object-size.c (cond_expr_object_size): Adjust.
3751         (collect_object_sizes_for): Likewise.
3752         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
3753         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
3754         (ssa_forward_propagate_and_combine): Adjust.
3755         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
3756         as ternary.
3757         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
3758         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
3759         * tree-vect-stmt.c (vectorizable_condition): Likewise.
3760         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
3761         (extract_range_from_assignment): Likewise.
3762
3763 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3764
3765         * config/i386/i386.md: Use (match_test ...) for attribute tests.
3766         * config/i386/mmx.md: Likewise.
3767         * config/i386/sse.md: Likewise.
3768         * config/i386/predicates.md (call_insn_operand): Use
3769         (not (match_test "...")) instead of (match_test "!...")
3770         * config/i386/constraints.md (w): Likewise.
3771
3772 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3773
3774         * doc/md.texi: Describe the use of match_tests in attribute tests.
3775         * rtl.def (MATCH_TEST): Update commentary.
3776         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
3777         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
3778
3779 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
3780
3781         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
3782         (attr_string): Use copy_md_ptr_loc.
3783
3784 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3785
3786         PR middle-end/49886
3787         * ipa-inline-analysis.c (compute_inline_parameters): Set
3788         can_change_signature of noes with typde attributes.
3789         * ipa-split.c (split_function): Do not skip any arguments if
3790         can_change_signature is set.
3791
3792 2011-08-31  Martin Jambor  <mjambor@suse.cz>
3793
3794         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
3795         check removed.
3796
3797 2011-08-31  Richard Guenther  <rguenther@suse.de>
3798
3799         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
3800         special-casing.
3801
3802 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
3803
3804         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
3805
3806 2011-08-31  Tom de Vries  <tom@codesourcery.com>
3807
3808         PR middle-end/43513
3809         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
3810         * tree-ssa-ccp.c (params.h): Include.
3811         (fold_builtin_alloca_for_var): New function.
3812         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
3813
3814 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
3815
3816         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3817         Handle FMA option.
3818
3819 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3820
3821         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
3822         b3 and b4 unsigned.
3823
3824 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
3825
3826         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
3827         when code is SET.
3828
3829 2011-08-30  Richard Guenther  <rguenther@suse.de>
3830
3831         PR middle-end/48571
3832         * gimple.h (maybe_fold_offset_to_address): Remove.
3833         (maybe_fold_offset_to_reference): Likewise.
3834         (maybe_fold_stmt_addition): Likewise.
3835         (may_propagate_address_into_dereference): Likewise.
3836         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
3837         array references.
3838         * gimple-fold.c (canonicalize_constructor_val): Likewise.
3839         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
3840         addresses instead.
3841         (may_propagate_address_into_dereference): Remove.
3842         (maybe_fold_offset_to_array_ref): Likewise.
3843         (maybe_fold_offset_to_reference): Likewise.
3844         (maybe_fold_offset_to_address): Likewise.
3845         (maybe_fold_stmt_addition): Likewise.
3846         (fold_gimple_assign): Do not reconstruct array references but
3847         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
3848         MEM_REF addresses.
3849         (gimple_fold_stmt_to_constant_1): Likewise.
3850         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3851         * gimplify.c (gimplify_conversion): Likewise.
3852         (gimplify_expr): Likewise.
3853
3854 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
3855
3856         * config/i386/fmaintrin.h: New.
3857         * config.gcc: Add fmaintrin.h.
3858         * config/i386/i386.c
3859         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
3860         <IX86_BUILTIN_VFMADDSD3>: Likewise.
3861         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
3862         (*fmai_fmadd_<mode>): Likewise.
3863         (*fmai_fmsub_<mode>): Likewise.
3864         (*fmai_fnmadd_<mode>): Likewise.
3865         (*fmai_fnmsub_<mode>): Likewise.
3866         * config/i386/immintrin.h: Add fmaintrin.h.
3867
3868 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
3869
3870         * genautomata.c (NO_COMB_OPTION): New macro.
3871         (no_comb_flag): New static variable.
3872         (gen_automata_option): Handle NO_COMB_OPTION.
3873         (comb_vect_p): False if no_comb_flag.
3874         (add_vect): Move computation of min/max values.  Return early if
3875         no_comb_flag.
3876         * doc/md.texi (automata_option): Document no-comb-vect.
3877
3878         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
3879         "__x86.get_pc_thunk".
3880
3881         * bb-reorder.c (insert_section_boundary_note): Only do it if
3882         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
3883
3884 2011-08-30  Christian Bruel  <christian.bruel@st.com>
3885
3886         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
3887         flag_profile_use.
3888
3889 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
3890
3891         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
3892         to off.  Document switch.
3893         * doc/invoke.texi (-msave-toc-indirect): Ditto.
3894
3895 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3896
3897         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
3898         conditionals and comments inside macro arguments.
3899
3900 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
3901             Richard Guenther  <rguenther@suse.de>
3902
3903         * tree.h (constant_boolean_node): Adjust prototype.
3904         * fold-const.c (fold_convert_loc): Move aggregate conversion
3905         leeway down.
3906         (constant_boolean_node): Make value parameter boolean, add
3907         vector type handling.
3908         (fold_unary_loc): Use constant_boolean_node.
3909         (fold_binary_loc): Preserve types properly when folding
3910         COMPLEX_EXPR <__real x, __imag x>.
3911         * gimplify.c (gimplify_expr): Handle vector comparison.
3912         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
3913         comparison.
3914         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
3915         comparisons.
3916
3917 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3918
3919         PR middle-end/48722
3920         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
3921         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
3922         (verify_rtl_sharing): Likewise and verify_rtx_sharing
3923         in there too.
3924         (unshare_all_rtl_in_chain): For CALL_INSNs
3925         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
3926
3927 2011-08-29  Richard Guenther  <rguenther@suse.de>
3928
3929         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
3930         on the built ADDR_EXPR.
3931
3932 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
3933
3934         PR debug/50215
3935         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
3936         before adding ENTRY_VALUE to val->locs.
3937
3938 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
3939
3940         PR bootstrap/50218
3941         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
3942         comp.
3943
3944 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
3945
3946         * doc/rtl.texi (simple_return): Document.
3947         (parallel, PATTERN): Here too.
3948         * doc/md.texi (return): Mention it's allowed to expand to simple_return
3949         in some cases.
3950         (simple_return): Document standard pattern.
3951         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
3952         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
3953         * reorg.c (function_return_label, function_simple_return_label):
3954         New static variables, replacing...
3955         (end_of_function_label): ... this.
3956         (simplejump_or_return_p): New static function.
3957         (optimize_skip, steal_delay_list_from_fallthrough,
3958         fill_slots_from_thread): Use it.
3959         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
3960         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
3961         (find_end_label): Take a new arg which is one of the two return
3962         rtxs.  Depending on which, set either function_return_label or
3963         function_simple_return_label.  All callers changed.
3964         (make_return_insns): Make both kinds.
3965         (dbr_schedule): Adjust for two kinds of end labels.
3966         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
3967         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
3968         (gen_expand, gen_split): Use ANY_RETURN_P.
3969         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
3970         * rtl.def (SIMPLE_RETURN): New code.
3971         * ifcvt.c (find_if_case_1): Be more careful about
3972         redirecting jumps to the EXIT_BLOCK.
3973         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
3974         returnjump_p_1): Handle SIMPLE_RETURNs.
3975         * print-rtl.c (print_rtx): Likewise.
3976         * rtl.c (copy_rtx): Likewise.
3977         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
3978         * combine.c (simplify_set): Likewise.
3979         * resource.c (find_dead_or_set_registers, mark_set_resources):
3980         Likewise.
3981         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
3982         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
3983         (init_emit_regs): Initialize simple_return_rtx.
3984         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
3985         force_nonfallthru_and_redirect.
3986         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
3987         (GR_SIMPLE_RETURN): New enum value.
3988         (simple_return_rtx): New macro.
3989         * basic-block.h (force_nonfallthru_and_redirect): Adjust
3990         declaration.
3991         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
3992         argument.  All callers changed.  Be careful about what kinds of
3993         returnjumps to generate.
3994         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
3995         ix86_pad_short_function): Likewise.
3996         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
3997         of return.
3998         * config/mips/mips.md (any_return): New code_iterator.
3999         (optab): Add cases for return and simple_return.
4000         (return): Expand to a simple_return.
4001         (simple_return): New pattern.
4002         (*<optab>, *<optab>_internal for any_return): New patterns.
4003         (return_internal): Remove.
4004         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
4005         a simple_return_internal.
4006
4007 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4008
4009         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
4010         (vec_extract_lo_<mode>): Prevent both operands in memory.
4011         (vec_extract_lo_v16hi): Ditto.
4012         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
4013
4014 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4015
4016         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
4017         (*sse2_mulv4si3): Ditto.
4018         (mulv2di3): Ditto.
4019         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
4020         notes to REG_EQUAL.
4021
4022 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
4023
4024         PR target/50202
4025         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
4026         when all outputs are unused.
4027         (sse4_2_pcmpistr): Ditto.
4028
4029 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4030
4031         * config/i386/i386.md (round<mode>2): New expander.
4032         * config/i386/i386.c (enum ix86_builtins): Add
4033         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
4034         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
4035         descriptions.
4036         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
4037         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
4038
4039 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
4040
4041         PR middle-end/50083
4042         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
4043         only when TARGET_C99_FUNCTIONS.
4044         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
4045         <BUILT_IN_RINT{,F,L}>: Ditto.
4046
4047 2011-08-26  Michael Matz  <matz@suse.de>
4048             Jakub Jelinek  <jakub@redhat.com>
4049
4050         PR lto/50165
4051         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
4052         don't call strlen twice, use memcpy.
4053
4054 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
4055
4056         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
4057         * config/i386/bmiintrin.h: Likewise.
4058         * config/i386/lzcntintrin.h: Likewise.
4059
4060         * config/i386/immintrin.h: Include <lzcntintrin.h>,
4061         <bmiintrin.h> and <bmi2intrin.h>.
4062
4063 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4064
4065         PR target/50166
4066         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
4067         * configure: Regenerate.
4068
4069 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4070
4071         PR c/50179
4072         * c-typeck.c (c_process_expr_stmt): Skip over nops and
4073         call mark_exp_read even if exprv is ADDR_EXPR.
4074
4075 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
4076
4077         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
4078         to df_set_dead_notes_for_mw.
4079
4080 2011-08-26  Richard Guenther  <rguenther@suse.de>
4081
4082         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
4083
4084 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
4085             Tom de Vries  <tom@codesourcery.com>
4086
4087         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
4088         (struct ivopts_data): Add loop_single_exit_p field.
4089         (niter_for_exit): Change parameter desc_p into return value.  Return
4090         desc if desc->may_be_zero.  Free desc if unused.
4091         (niter_for_single_dom_exit): Change return type.
4092         (find_induction_variables): Handle changed return type of
4093         niter_for_single_dom_exit.  Dump may_be_zero.
4094         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
4095         (set_use_iv_cost): Add and handle comp parameter.
4096         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
4097         comp argument to set_use_iv_cost.
4098         (strip_wrap_conserving_type_conversions, expr_equal_p)
4099         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
4100         (may_eliminate_iv): Add comp parameter.  Handle new return type of
4101         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
4102         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
4103         and may_eliminate_iv.
4104         (rewrite_use_compare): Move call to iv_elimination_compare to ...
4105         (may_eliminate_iv): Here.
4106         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
4107
4108 2011-08-26  Tom de Vries  <tom@codesourcery.com>
4109
4110         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
4111         accessing TREE_TYPE.
4112
4113 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
4114
4115         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
4116         (*ior_scc_scc_cmp): Likewise
4117         (*and_scc_scc): Likewise.
4118         (*and_scc_scc_cmp): Likewise.
4119         (*and_scc_scc_nodom): Likewise.
4120         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
4121
4122 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
4123
4124         * rtlanal.c (nonzero_bits1): Handle CLRSB.
4125
4126 2011-08-26  Richard Guenther  <rguenther@suse.de>
4127
4128         * expr.c (string_constant): Handle &MEM_REF.
4129
4130 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4131
4132         * config/arm/arm.c (struct four_ints): New type.
4133         (count_insns_for_constant): Delete function.
4134         (find_best_start): Delete function.
4135         (optimal_immediate_sequence): New function.
4136         (optimal_immediate_sequence_1): New function.
4137         (arm_gen_constant): Move constant splitting code to
4138         optimal_immediate_sequence.
4139         Rewrite constant negation/invertion code.
4140
4141 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
4142
4143         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
4144         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
4145         Remove prototype. Remove static function type.
4146         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
4147         Add arch attribute.
4148         * config/arm/constraints.md (Pj, PJ): New constraints.
4149
4150 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4151
4152         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
4153         ("cortex_a9_multiply_long"): New and use above.  Handle all
4154         long multiply cases.
4155         ("cortex_a9_multiply"): Handle smmul and smmulr.
4156         ("cortex_a9_mac"): Handle smmla.
4157
4158 2011-08-25  Richard Henderson  <rth@redhat.com>
4159
4160         PR 50132
4161         PR 49864
4162         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
4163         non-constant stack adjutment.
4164         * expr.c (find_args_size_adjust): Break out from ...
4165         (fixup_args_size_notes): ... here.
4166         * rtl.h (find_args_size_adjust): Declare.
4167
4168 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
4169
4170         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
4171         sse4 and sse4_noavx.
4172         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
4173         (*pushdf_rex64): Change Y2 register constraint to x.
4174         (*movdf_internal_rex64): Ditto.
4175         (*zero_extendsidi2_rex64): Ditto.
4176         (*movdi_internal): Change Y2 register constraint to x
4177         and update "isa" attribute.
4178         (*pushdf): Ditto.
4179         (*movdf internal): Ditto.
4180         (zero_extendsidi2_1): Ditto.
4181         (*truncdfdf_mixed): Ditto.
4182         (*truncxfdf2_mixed): Ditto.
4183         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
4184         register constraint to x.
4185         (*movv2sf_internal_rex64): Ditto.
4186         (*mov<mode>_internal): Change Y2 register constraint to x
4187         and add "isa" attribute.
4188         (*movv2sf_internal): Ditto.
4189         (*vec_extractv2si_1): Ditto.
4190         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
4191         constraints to x and update "isa" attribute.
4192         (*vec_interleave_highv2df): Change Y3 registerconstraint
4193         to x and update "isa" attribute.
4194         (*vec_interleave_lowv2df): Ditto.
4195         (*vec_concatv2df): Change Y2 register constraint to x and
4196         update "isa" attribute.
4197         (sse2_loadld): Ditto.
4198         (*vec_extractv2di_1): Ditto.
4199         (*vec_dupv4si): Ditto.
4200         (*vec_dupv2di): Ditto.
4201         (*vec_concatv4si): Ditto.
4202         (vec_concatv2di): Ditto.
4203         * config/i386/constraints.md (Y2): Remove.
4204         (Y3): Ditto.
4205         (Y4): Ditto.
4206
4207 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4208
4209         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
4210         dump_def_use_chain): Don't declare.
4211         (mark_conflict, create_new_chain): Move before users.
4212         (regrename_optimize): Move to near end of file.
4213
4214 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4215
4216         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
4217         (secondary_input_reload_class): Remove Prototype.
4218         * config/avr/avr.c (byte_immediate_operand): Remove Function.
4219         * config/avr/avr.md (setmemhi): Use u8_operand.
4220         (strlenhi): Use const0_rtx for comparison.
4221         * config/avr/avr.h (avr_reg_order): Remove Declaration.
4222
4223 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4224
4225         * config/avr/avr.c (reg_class_tab): Make local to
4226         avr_regno_reg_class.  Return smallest register class available.
4227
4228 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4229
4230         * config/avr/avr.c (STR_PREFIX_P): New Define.
4231         (avr_asm_declare_function_name): Use it.
4232         (avr_asm_named_section): Use it.
4233         (avr_section_type_flags): Use it.
4234
4235 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4236
4237         * doc/md.texi (automata_option): Document collapse-ndfa.
4238         * genautomata.c (COLLAPSE_OPTION): New macro.
4239         (collapse_flag): New static variable.
4240         (struct description): New member normal_decls_num.
4241         (struct automaton): New members advance_ainsn and collapse_ainsn.
4242         (gen_automata_option): Check for COLLAPSE_OPTION.
4243         (collapse_ndfa_insn_decl): New static variable.
4244         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
4245         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
4246         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
4247         necessary.  Use normal_decls_num rather than decls_num, remove
4248         test for special decls.
4249         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
4250         (make_automaton); Likewise.  Use the new advance_cycle_insn member
4251         of struct automaton.
4252         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
4253         is set.
4254         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
4255         transition.  Create the necessary transitions for it.
4256         (create_ainsns): Return void.  Take an automaton_t argument, and
4257         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
4258         callers changed.
4259         (COLLAPSE_NDFA_VALUE_NAME): New macro.
4260         (output_tables): Output code to define it.
4261         (output_internal_insn_code_evaluation): Output code to accept
4262         const0_rtx as collapse-ndfa transition.
4263         (output_default_latencies, output_print_reservation_func,
4264         output_print_description): Reorganize loops to use normal_decls_num
4265         as loop bound; remove special case for advance_cycle_insn_decl.
4266         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
4267         (check_automata_insn_issues): Check for collapse_ainsn.
4268         (expand_automate): Allocate sufficient space.  Initialize
4269         normal_decls_num.
4270
4271 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
4272
4273         * config/avr/avr.md: Fix indentation from r177991.
4274
4275 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4276
4277         * regrename.c (struct du_head): Remove member terminated.
4278         (create_new_chain): Don't initialize it.
4279         (scan_rtx_reg): Don't set or test it, test the open_chains_set
4280         bitmap instead.
4281         (tick, this_tick): New global variables, moved out of
4282         regrename_optimize.
4283         (current_id, open_chains, closed_chains, open_chains_set,
4284         live_in_chains, live_hard_regs): Reorder declarations.
4285         (dump_def_use_chain): Move function earlier in the file.
4286         (rename_chains): New static function, broken out of
4287         regrename_optimize.
4288         (regrename_optimize): Use it.  Remove #if 0'ed code.
4289
4290 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4291
4292         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
4293
4294 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
4295
4296         PR target/50172
4297         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
4298
4299 2011-08-24  Richard Guenther  <rguenther@suse.de>
4300
4301         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
4302         ref in the basic-block case.  Move stripping array-refs
4303         to the place we create an access-function for it.  Remove
4304         bogus stripping down a MEM_REF to its base.
4305
4306 2011-08-24  Richard Guenther  <rguenther@suse.de>
4307
4308         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
4309         with -fno-strict-overflow.
4310
4311 2011-08-24  Richard Guenther  <rguenther@suse.de>
4312
4313         * tree-vectorizer.c (vect_print_dump_info): Avoid the
4314         file and location clutter when dumping to dump files.
4315
4316 2011-08-24  Simon Baldwin  <simonb@google.com>
4317
4318         * gengtype-state.c (write_state): Remove timestamped header line.
4319
4320 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4321
4322         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
4323         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
4324         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
4325         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
4326         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
4327         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
4328         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
4329         rules.
4330         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
4331
4332 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
4333
4334         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
4335
4336 2011-08-24  Richard Guenther  <rguenther@suse.de>
4337
4338         PR tree-optimization/50067
4339         * tree-data-ref.c (dr_analyze_indices): Do not add an access
4340         function for a MEM_REF base that has no evolution in the loop
4341         nest or that is not analyzable.
4342
4343 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
4344
4345         * ira.c (ira_init_register_move_cost): Check small subclasses
4346         through ira_reg_class_max_nregs and ira_available_class_regs.
4347
4348 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4349
4350         * config/i386/constraints.md (Yp): New register constraint.
4351         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
4352         Yp register constraint.
4353         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
4354         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
4355         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
4356
4357 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4358
4359         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
4360
4361 2011-08-23  Mark Heffernan  <meheff@google.com>
4362
4363         PR middle-end/38509
4364         * common.opt (Wfree-nonheap-object): New option.
4365         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
4366         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
4367         to warning.
4368         (expand_builtin): Make warning conditional.
4369
4370 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
4371
4372         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
4373         (length_immediate): Handle imulx, ishiftx and rotatex.
4374         (imm_disp): Ditto.
4375         (isa): Add bmi2.
4376         (enabled): Handle bmi2.
4377         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
4378         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
4379         (*bmi2_umulditi3_1): New insn pattern.
4380         (*bmi2_umulsidi3_1): Ditto.
4381         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
4382         (*bmi2_ashl<mode>3_1): New insn pattern.
4383         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
4384         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
4385         (*bmi2_ashlsi3_1_zext): New insn pattern.
4386         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
4387         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
4388         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
4389         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
4390         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
4391         flags dependency.
4392         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
4393         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
4394         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
4395         flags dependency.
4396         (*bmi2_rorx<mode>3_1): New insn pattern.
4397         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
4398         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
4399         (*rotatert<mode>3_1 splitter): Ditto.
4400         (*bmi2_rorxsi3_1_zext): New insn pattern.
4401         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
4402         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
4403         (*rotatertsi3_1_zext splitter): Ditto.
4404
4405 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4406
4407         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
4408         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
4409         (ix86_handle_option): Handle OPT_mbmi2 case.
4410         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
4411         (x86_64-*-*): Likewise.
4412         * config/i386/bmi2intrin.h: New file.
4413         * config/i386/cpuid.h (bit_BMI2): New.
4414         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4415         BMI2 feature.
4416         * config/i386/i386-c.c (ix86_target_macros_internal):
4417         Conditionally define __BMI2__.
4418         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
4419         Handle BMI2 option.
4420         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
4421         (print_reg): New code.
4422         (ix86_print_operand): Likewise.
4423         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4424         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4425         IX86_BUILTIN_PEXT64.
4426         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
4427         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
4428         IX86_BUILTIN_PEXT64.
4429         * config/i386/i386.h (TARGET_BMI2): New.
4430         * config/i386/i386.md (UNSPEC_PDEP): New.
4431         (UNSPEC_PEXT): Likewise.
4432         (*bmi2_bzhi_<mode>3): Likewise.
4433         (*bmi2_pdep_<mode>3): Likewise.
4434         (*bmi2_pext_<mode>3): Likewise.
4435         * config/i386/i386.opt (mbmi2): New.
4436         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
4437         is defined.
4438         * doc/extend.texi: Document BMI2 built-in functions.
4439         * doc/invoke.texi: Document -mbmi2.
4440
4441 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
4442
4443         PR middle-end/50161
4444         * simplify-rtx.c (simplify_const_unary_operation): If
4445         op is CONST_INT, don't look at op_mode, but use instead mode.
4446         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
4447         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
4448         operation and TRUNCATE/ZERO_EXTEND if needed.
4449         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
4450         Document that operand mode must be same as operation mode,
4451         or VOIDmode.
4452         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
4453         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
4454         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
4455         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
4456         use the mode of operand for the operation and add truncate
4457         or zero_extend around if needed.
4458         * config/c6x/c6x.md (ctzdi2): Likewise.
4459         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
4460
4461 2011-08-12  Michael Matz  <matz@suse.de>
4462
4463         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
4464         (gimple_expand_cfg): Merge alignment info for coalesced pointer
4465         SSA names.
4466
4467 2011-08-23  Richard Guenther  <rguenther@suse.de>
4468
4469         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
4470         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
4471         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
4472         from ...
4473         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
4474         (mem_refs_may_alias_p): Adjust.
4475         * tree-data-ref.h (dr_may_alias_p): Adjust.
4476         * tree-data-ref.c: Include tree-affine.h.
4477         (dr_analyze_indices): Do nothing for the non-loop case.
4478         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
4479         more cases in the non-loop case.
4480         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
4481         calls to dr_may_alias_p.
4482         (write_alias_graph_to_ascii_ecc): Likewise.
4483         (write_alias_graph_to_ascii_dot): Likewise.
4484         (build_alias_set_optimal_p): Likewise.
4485
4486 2011-08-23  Richard Guenther  <rguenther@suse.de>
4487
4488         PR tree-optimization/50162
4489         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
4490
4491 2011-08-23  Richard Guenther  <rguenther@suse.de>
4492
4493         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
4494         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
4495         (create_data_ref): Also dump access functions for the created data-ref.
4496
4497 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
4498             Kirill Yukhin  <kirill.yukhin@intel.com>
4499
4500         PR target/50155
4501         * config/i386/sse.md (VI_AVX2): New.
4502         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
4503         (*<plusminus_insn><mode>3): Ditto.
4504         (<sse2_avx2>_andnot<mode>3): Ditto.
4505         (*andnot<mode>3): Fix order of cond operands.
4506         Add asserts for correct TARGET_xxx.
4507         (*<any_logic:code><mode>3): Ditto.
4508
4509 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
4510
4511         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
4512         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
4513         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
4514         regclass argument type to reg_class_t. Change 'max' and 'v' vars
4515         and return types to unsigned char. Use reg_class_contents instead
4516         of class_contents.
4517         (TARGET_CLASS_MAX_NREGS): Define.
4518
4519 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
4520
4521         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
4522         to make computed_jump_p return true.
4523
4524 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4525
4526         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
4527         (PICFLAG_FOR_TARGET): Substitute.
4528         * aclocal.m4: Regenerate.
4529         * configure: Regenerate.
4530
4531 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
4532
4533         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
4534         after reading in the pch.
4535
4536 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
4537
4538         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
4539         * configure: Regenerated.
4540
4541 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
4542
4543         PR tree-optimization/50133
4544         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
4545         from stmt instead of some statement around gsi.
4546
4547         PR middle-end/50141
4548         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
4549         innerdecl is a VAR_DECL.
4550
4551 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4552
4553         * config/i386/avx2intrin.h: New file.
4554         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
4555         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
4556         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
4557         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
4558         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
4559         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
4560         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
4561         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
4562         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
4563         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
4564         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
4565         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
4566         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
4567         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
4568         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
4569         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
4570         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
4571         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
4572         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
4573         VOID_FTYPE_PV8SI_V8SI_V8SI,
4574         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
4575         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
4576         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
4577         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
4578         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
4579         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
4580         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
4581         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
4582         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
4583         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
4584         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
4585         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
4586         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
4587         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
4588         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
4589         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
4590         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
4591         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
4592         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
4593         V4DI_FTYPE_V4DI_INT_CONVERT,
4594         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
4595         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
4596         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4597         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4598         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4599         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4600         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4601         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4602         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4603         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4604         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4605         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4606         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4607         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4608         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4609         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4610         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4611         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4612         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4613         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4614         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4615         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4616         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4617         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4618         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4619         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4620         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4621         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4622         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4623         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4624         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4625         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4626         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4627         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4628         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4629         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4630         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4631         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4632         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4633         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4634         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4635         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4636         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4637         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4638         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4639         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4640         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4641         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4642         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4643         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4644         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4645         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4646         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4647         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4648         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4649         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4650         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4651         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4652         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4653         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
4654         IX86_BUILTIN_VBROADCASTSS_PS256,
4655         IX86_BUILTIN_VBROADCASTSD_PD256,
4656         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4657         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4658         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4659         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4660         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4661         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4662         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4663         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4664         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4665         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4666         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4667         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4668         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
4669         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4670         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4671         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4672         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4673         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
4674         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
4675         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
4676         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
4677         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
4678         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
4679         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
4680         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
4681         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
4682         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
4683         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
4684         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
4685         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
4686         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
4687         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
4688         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
4689         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
4690         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
4691         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
4692         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
4693         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
4694         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
4695         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
4696         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
4697         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
4698         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
4699         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
4700         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
4701         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
4702         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
4703         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
4704         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
4705         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
4706         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
4707         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
4708         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
4709         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
4710         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
4711         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
4712         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
4713         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
4714         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
4715         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
4716         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
4717         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
4718         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
4719         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
4720         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
4721         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
4722         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
4723         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
4724         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
4725         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
4726         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
4727         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
4728         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
4729         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
4730         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
4731         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
4732         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
4733         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
4734         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
4735         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
4736         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
4737         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
4738         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
4739         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
4740         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
4741         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
4742         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
4743         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
4744         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
4745         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
4746         IX86_BUILTIN_VBROADCASTSD_PD256,
4747         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
4748         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
4749         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
4750         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
4751         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
4752         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
4753         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
4754         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
4755         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
4756         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
4757         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
4758         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
4759         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
4760         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
4761         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
4762         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
4763         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
4764         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
4765         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
4766         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
4767         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
4768         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
4769         IX86_BUILTIN_GATHERDIV8SI.
4770         (ix86_preferred_simd_mode): Support AVX2 modes.
4771         (ix86_expand_args_builtin): Support AVX2 builtins.
4772         (ix86_expand_special_args_builtin): Likewise.
4773         (ix86_expand_builtin): Likewise.
4774         * config/i386/i386.md (UNSPEC_VPERMSI): New.
4775         (UNSPEC_VPERMDF): Likewise.
4776         (UNSPEC_VPERMSF): Likewise.
4777         (UNSPEC_VPERMDI): Likewise.
4778         (UNSPEC_VPERMTI): Likewise.
4779         (UNSPEC_GATHER): Likewise.
4780         (ssemodesuffix): Extend.
4781         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
4782         is defined.
4783         * config/i386/predicates.md (const1248_operand): New.
4784         * config/i386/sse.md (VI1_AVX2): New mode iterator.
4785         (VI2_AVX2): Likewise.
4786         (VI4_AVX2): Likewise.
4787         (VI8_AVX2): Likewise.
4788         (VIMAX_AVX2): Likewise.
4789         (SSESCALARMODE): Likewise.
4790         (VI12_AVX2): Likewise.
4791         (VI24_AVX2): Likewise.
4792         (VI124_AVX2): Likewise.
4793         (VI248_AVX2): Likewise.
4794         (VI48_AVX2): Likewise.
4795         (VI4SD_AVX2): Likewise.
4796         (V48_AVX2): Likewise.
4797         (AVX256MODE2P): Likewise.
4798         (AVXMODE48P_DI): Likewise.
4799         (sse2_avx2): New mode attribute.
4800         (ssse3_avx2): Likewise.
4801         (sse4_1_avx2): Likewise.
4802         (avx_avx2): Likewise.
4803         (ssebytemode): Likewise.
4804         (AVXTOSSEMODE): Likewise.
4805         (AVXMODE48P_DI): Likewise.
4806         (gthrfirstp): Likewise.
4807         (gthrlastp): Likewise.
4808         (lshift): New code_iterator
4809         (lshift): New code attribute.
4810         (lshift): Likewise.
4811         (ssescalarmodesuffix): Update.
4812         (sseunpackmode): Likewise.
4813         (ssepackmode): Likewise.
4814         (avx2_vec_dupv4sf): New insn pattern.
4815         (avx2_vec_dupv8sf): Likewise.
4816         (avx2_interleave_highv4di): Likewise.
4817         (avx2_interleave_lowv4di): Likewise.
4818         (avx2_umulv4siv4di3): Likewise
4819         (*avx2_umulv4siv4di3): Likewise
4820         (avx2_pmaddwd): Likewise.
4821         (*avx2_pmaddwd): Likewise.
4822         (avx2_lshrqv4di3): Likewise.
4823         (avx2_lshlqv4di3): Likewise.
4824         (avx2_lshl<mode>3): Likewise.
4825         (avx2_<umaxmin:code><mode>3): Likewise.
4826         (*avx2_<umaxmin:code><mode>3): Likewise.
4827         (avx2_<smaxmin:code><mode>3): Likewise.
4828         (*avx2_<smaxmin:code><mode>3): Likewise.
4829         (avx2_eq<mode>3): Likewise.
4830         (*avx2_eq<mode>3): Likewise.
4831         (avx2_gt<mode>3): Likewise.
4832         (avx2_interleave_highv32qi): New.
4833         (avx2_interleave_lowv32qi): Likewise.
4834         (avx2_interleave_highv16hi): Likewise.
4835         (avx2_interleave_lowv16hi): Likewise.
4836         (avx2_interleave_highv8si): Likewise.
4837         (avx2_interleave_lowv8si): Likewise.
4838         (avx2_pshufd): Likewise.
4839         (avx2_pshufd_1): Likewise.
4840         (avx2_pshuflwv3): Likewise.
4841         (avx2_pshuflw_1): Likewise.
4842         (avx2_pshufhwv3): Likewise.
4843         (avx2_pshufhw_1): Likewise.
4844         (avx2_uavgv32qi3): Likewise.
4845         (*avx2_uavgv32qi3): Likewise.
4846         (avx2_uavgv16hi3): Likewise.
4847         (*avx2_uavgv16hi3): Likewise.
4848         (avx2_pmovmskb): Likewise.
4849         (avx2_phaddwv16hi3): Likewise.
4850         (avx2_phadddv8si3): Likewise.
4851         (avx2_phaddswv16hi3): Likewise.
4852         (avx2_phsubwv16hi3): Likewise.
4853         (avx2_phsubdv8si3): Likewise.
4854         (avx2_phsubswv16hi3): Likewise.
4855         (avx2_pmaddubsw256): Likewise.
4856         (avx2_umulhrswv16hi3): Likewise.
4857         (*avx2_umulhrswv16hi3): Likewise.
4858         (avx2_packusdw): Likewise.
4859         (avx2_pblendd<mode>): Likewise.
4860         (avx2_<code>v16qiv16hi2): Likewise.
4861         (avx2_<code>v8qiv8si2): Likewise.
4862         (avx2_<code>v8hiv8si2): Likewise.
4863         (avx2_<code>v4qiv4di2): Likewise.
4864         (avx2_<code>v4hiv4di2): Likewise.
4865         (avx2_<code>v4siv4di2): Likewise.
4866         (avx2_pbroadcast<mode>): Likewise.
4867         (avx2_permvarv8si): Likewise.
4868         (avx2_permv4df): Likewise.
4869         (avx2_permvarv8sf): Likewise.
4870         (avx2_permv4di): Likewise.
4871         (avx2_permv2ti): Likewise.
4872         (avx2_vec_dupv4df): Likewise.
4873         (avx2_vbroadcasti128_<mode>): Likewise.
4874         (avx2_vec_set_lo_v4di): Likewise.
4875         (avx2_vec_set_hi_v4di): Likewise.
4876         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
4877         (avx2_extracti128): Likewise.
4878         (avx2_inserti128): Likewise.
4879         (avx2_ashrvv8si): Likewise.
4880         (avx2_ashrvv4si): Likewise.
4881         (avx2_<lshift>vv8si): Likewise.
4882         (avx2_<lshift>v<mode>): Likewise.
4883         (avx2_<lshift>vv2di): Likewise.
4884         (avx2_gathersi<mode>): Likewise.
4885         (*avx2_gathersi<mode>): Likewise.
4886         (avx2_gatherdi<mode>): Likewise.
4887         (*avx2_gatherdi<mode>): Likewise.
4888         (avx2_gatherdi<mode>256): Likewise.
4889         (*avx2_gatherdi<mode>256): Likewise.
4890         (<plusminus_insn><mode>3): Use VI mode iterator.
4891         (*<plusminus_insn><mode>3): Use VI mode iterator.
4892         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4893         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4894         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
4895         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
4896         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
4897         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
4898         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
4899         Use VI2_AVX2 mode iterator.
4900         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
4901         Use VI2_AVX2 mode iterator.
4902         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
4903         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
4904         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
4905         Use VI4_AVX2 mode iterator.
4906         (ashr<mode>3): Use VI24_AVX2 mode iterator.
4907         (lshr<mode>3): Use VI248_AVX2 mode iterator.
4908         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
4909         Use VIMAX_AVX2 mode iterator.
4910         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
4911         Use VI mode iterator.
4912         (*andnot<mode>3): Update for AVX2.
4913         (*<any_logic:code><mode>3): Likewise.
4914         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
4915         Use VI1_AVX mode iterator.
4916         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
4917         Use VI2_AVX mode iterator.
4918         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
4919         Use VI1_AVX mode iterator.
4920         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
4921         Use VI8_AVX2 mode iterator.
4922         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
4923         Use VI1_AVX2 mode iterator.
4924         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
4925         Use VI124_AVX2 mode iterator.
4926         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
4927         Use SSESCALARMODE mode iterator.
4928         (abs<mode>2): Use VI124_AVX2 mode iterator.
4929         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
4930         Use VI8_AVX2 mode iterator.
4931         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
4932         Use VI1_AVX2 mode iterator.
4933         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
4934         Use VI1_AVX2 mode iterator.
4935         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
4936         Use VI2_AVX2 mode iterator.
4937         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
4938         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
4939         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
4940         avx_maskstore<ssemodesuffix><avxsizesuffix>.
4941         Use V48_AVX2 mode iterator.
4942         * doc/extend.texi: Document AVX2 built-in functions.
4943         * doc/invoke.texi: Document -mavx2.
4944
4945 2011-08-22  Matthias Klose <doko@debian.org>
4946
4947         Revert:
4948         2011-07-11  Arthur Loiret  <aloiret@debian.org>
4949                     Matthias Klose <doko@debian.org>
4950         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4951         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4952         convention.
4953         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4954
4955 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
4956
4957         PR bootstrap/50146
4958         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
4959         to #ifndef HONOR_REG_ALLOC_ORDER block.
4960
4961 2011-08-21  Richard Henderson  <rth@redhat.com>
4962
4963         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
4964         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
4965         * resource.c (next_insn_no_annul): Likewise.
4966         (mark_set_resources): Likewise.
4967         * reorg.c (delete_from_delay_slot): Likewise.
4968         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
4969         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
4970
4971 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
4972
4973         * config/i386/i386.md (any_div): Remove.
4974         (sgnprefix): Update for removal.
4975         (u): Ditto.
4976
4977 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
4978
4979         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
4980         for ira_reg_class_max_nregs.  Increase pressure by 1.
4981         (mark_pseudo_regno_subword_dead): Use allocno class
4982         for ira_reg_class_max_nregs.
4983
4984 2011-08-20  Richard Henderson  <rth@redhat.com>
4985
4986         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
4987         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
4988         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
4989         config/c6x/ltf.c: Adjust include path for soft-fp.
4990
4991 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
4992
4993         PR other/46770
4994         * config.gcc (tm_file): Add initfini-array.h if
4995         .init_arrary/.fini_array are supported.
4996
4997         * crtstuff.c: Don't generate .ctors nor .dtors sections if
4998         USE_INITFINI_ARRAY is defined.
4999
5000         * output.h (default_elf_init_array_asm_out_constructor): New.
5001         (default_elf_fini_array_asm_out_destructor): Likewise.
5002         * varasm.c (elf_init_array_section): Likewise.
5003         (elf_fini_array_section): Likewise.
5004         (get_elf_initfini_array_priority_section): Likewise.
5005         (default_elf_init_array_asm_out_constructor): Likewise.
5006         (default_elf_fini_array_asm_out_destructor): Likewise.
5007
5008         * config/initfini-array.h: New.
5009
5010 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5011
5012         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
5013         OK for ST_REGS and FP_REGS before taking those classes into account.
5014
5015 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
5016
5017         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
5018         before checking for annulled branches.
5019
5020 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         * config/i386/i386.c (ix86_binary_operator_ok): Use
5023         satisfies_constraint_L.
5024
5025 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
5026             Michael Matz  <matz@suse.de>
5027
5028         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
5029         trunc (a + copysign (nextafter (0.5, 0.0), a)).
5030
5031 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
5032
5033         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5034         * doc/tm.texi: Regenerate.
5035         * targhooks.c (default_preferred_output_reload_class): Don't use
5036         PREFERRED_OUTPUT_RELOAD_CLASS macro.
5037         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
5038
5039 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
5040
5041         PR tree-optimization/48739
5042         * tree-ssa.c: Include cfgloop.h.
5043         (execute_update_addresses_taken): When updating ssa, if in loop closed
5044         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
5045         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
5046
5047 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
5048
5049         PR rtl-optimization/49936
5050         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
5051         for calculation of max register move costs.
5052
5053 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5054
5055         * c-parser.c (c_parser_postfix_expression): Convert operands of
5056         __builtin_complex to their semantic types.
5057
5058 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
5059
5060         PR middle-end/49721
5061         * explow.c (convert_memory_address_addr_space): Also permute the
5062         conversion and addition of constant for zero-extend.
5063
5064 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5065
5066         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
5067         * doc/extend.texi (__builtin_complex): Document.
5068
5069 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5070
5071         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
5072         beyond conversions.
5073         (convert_mult_to_widen): Convert constant inputs to the right type.
5074         (convert_plusminus_to_widen): Don't automatically reject inputs that
5075         are not an SSA_NAME.
5076         Convert constant inputs to the right type.
5077
5078 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5079
5080         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
5081         to the correct type.
5082
5083 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5084
5085         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
5086         unsigned inputs of different modes.
5087         (convert_plusminus_to_widen): Likewise.
5088
5089 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5090
5091         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
5092         'type'.
5093         Use 'type' from caller, not inferred from 'rhs'.
5094         Don't reject non-conversion statements. Do return lhs in this case.
5095         (is_widening_mult_p): Add new argument 'type'.
5096         Use 'type' from caller, not inferred from 'stmt'.
5097         Pass type to is_widening_mult_rhs_p.
5098         (convert_mult_to_widen): Pass type to is_widening_mult_p.
5099         (convert_plusminus_to_widen): Likewise.
5100
5101 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5102
5103         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
5104         Ensure the the larger type is the first operand.
5105
5106 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5107
5108         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
5109         unsupported unsigned multiplies to signed.
5110         (convert_plusminus_to_widen): Likewise.
5111
5112 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5113
5114         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
5115         conversion statement separating multiply-and-accumulate.
5116
5117 2011-08-19  Richard Guenther  <rguenther@suse.de>
5118
5119         PR tree-optimization/50067
5120         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
5121         offset only if we accounted for it.
5122
5123 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5124
5125         * config/arm/arm.md (maddhidi4): Remove '*' from name.
5126         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
5127         * optabs.c (find_widening_optab_handler_and_mode): New function.
5128         (expand_widen_pattern_expr): Use find_widening_optab_handler.
5129         (expand_binop_directly): Likewise.
5130         (expand_binop): Likewise.
5131         * optabs.h (find_widening_optab_handler): New macro define.
5132         (find_widening_optab_handler_and_mode): New prototype.
5133         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
5134         type precision rules.
5135         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
5136         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
5137         (is_widening_mult_rhs_p): Allow widening by more than one mode.
5138         Explicitly disallow mis-matched input types.
5139         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
5140         input types to fit the new handler.
5141         (convert_plusminus_to_widen): Likewise.
5142
5143 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
5144
5145         * expr.c (expand_expr_real_2): Use widening_optab_handler.
5146         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
5147         (gen_insn): $N now means $a must be wider than $b, not consecutive.
5148         * optabs.c (widened_mode): New function.
5149         (expand_widen_pattern_expr): Use widening_optab_handler.
5150         (expand_binop_directly): Likewise.
5151         (expand_binop): Likewise.
5152         * optabs.h (widening_optab_handlers): New struct.
5153         (optab_d): New member, 'widening'.
5154         (widening_optab_handler): New function.
5155         (set_widening_optab_handler): New function.
5156         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
5157         widening_optab_handler.
5158         (convert_plusminus_to_widen): Likewise.
5159
5160 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5161
5162         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
5163         pedantic.
5164         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
5165         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
5166
5167 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
5168
5169         * opth-gen.awk: Do not declare target save/restore structures and
5170         functions if IN_RTS defined.
5171
5172 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5173
5174         PR target/49437
5175         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
5176         when stack was realigned in interrupt handler prologue.
5177
5178 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
5179
5180         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
5181         (quals_from_declspecs): Assert _Noreturn not present.
5182         (grokdeclarator): Handle _Noreturn.
5183         (build_null_declspecs): Initialize noreturn_p.
5184         (declspecs_add_scspec): Handle RID_NORETURN.
5185         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
5186         (c_parser_attributes): Handle RID_NORETURN.
5187         * c-tree.h (struct c_declspecs): Add noreturn_p.
5188         * ginclude/stdnoreturn.h: New.
5189         * Makefile.in (USER_H): Add stdnoreturn.h.
5190
5191 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5192
5193         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
5194         (OPTION_MASK_ISA_AVX_UNSET): Update.
5195         (OPTION_MASK_ISA_AVX2_UNSET): New.
5196         (ix86_handle_option): Handle OPT_mavx2 case.
5197         * config/i386/cpuid.h (bit_AVX2): New.
5198         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5199         AVX2 feature.
5200         * config/i386/i386-c.c (ix86_target_macros_internal):
5201         Conditionally define __AVX2__.
5202         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
5203         Define "core-avx2" processor alias.  Handle avx2 option.
5204         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
5205         * config/i386/i386.h (TARGET_AVX2): New.
5206         * config/i386/i386.opt (mavx2): New.
5207         * doc/invoke.texi: Document -mavx2.
5208
5209 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
5210
5211         PR rtl-optimization/49890
5212         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
5213         subclasses of class which is superset of a pressure class.
5214
5215 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5216             Igor Zamyatin <igor.zamyatin@intel.com>
5217
5218         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
5219         with HOST_WIDE_INT for isa_flag.
5220         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
5221         isa variables.
5222
5223         * config/i386/i386.c (ix86_target_string): Replace int with
5224         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
5225         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
5226         (pta_flags): Removed.
5227         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
5228         (pta): Use HOST_WIDE_INT on flags.
5229         (builtin_isa): Use HOST_WIDE_INT on isa.
5230         (ix86_add_new_builtins): Likewise.
5231         (def_builtin): Use HOST_WIDE_INT on mask.
5232         (def_builtin_const): Likewise.
5233         (builtin_description): Likewise.
5234
5235         * config/i386/i386.opt (ix86_isa_flags): Replace int with
5236         HOST_WIDE_INT.
5237         (ix86_isa_flags_explicit): Likewise.
5238         (x_ix86_isa_flags_explicit): Likewise.
5239
5240 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
5241
5242         PR rtl-optimization/50107
5243         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
5244         (ira_hard_reg_in_set_p): New.
5245
5246         * ira-color.c (calculate_saved_nregs): New.
5247         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
5248         hard regs.
5249         (allocno_reload_assign, fast_allocation): Use
5250         ira_hard_reg_set_intersection_p instead of
5251         ira_hard_reg_not_in_set_p.
5252
5253         * ira.c (setup_reg_renumber): Use
5254         ira_hard_reg_set_intersection_p instead of
5255         ira_hard_reg_not_in_set_p.
5256         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
5257         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
5258
5259         * ira-costs.c (ira_tune_allocno_costs): Use
5260         ira_hard_reg_set_intersection_p instead of
5261         ira_hard_reg_not_in_set_p.
5262
5263 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5264             Igor Zamyatin <igor.zamyatin@intel.com>
5265
5266         * hwint.h (HOST_WIDE_INT_1): New.
5267
5268         * opt-functions.awk (switch_bit_fields): Initialize the
5269         host_wide_int field.
5270         (host_wide_int_var_name): New.
5271         (var_type_struct): Check and return HOST_WIDE_INT.
5272
5273         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
5274
5275         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
5276
5277         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
5278         check masks for HOST_WIDE_INT.
5279
5280         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
5281         (option_enabled): Likewise.
5282         (get_option_state): Likewise.
5283
5284         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
5285         to HOST_WIDE_INT.
5286
5287 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5288             Marc Glisse  <marc.glisse@normalesup.org>
5289
5290         PR libstdc++-v3/1773
5291         * target.def (decl_mangling_context): New C++ hook.
5292         * doc/tm.texi: Regenerate.
5293         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
5294         * config/sol2-protos.h: Group by source file.
5295         (solaris_cxx_decl_mangling_context): Declare.
5296         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
5297         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
5298         Use $<.
5299         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
5300         Add sol2-stubs.o to extra_objs.
5301
5302 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
5303
5304         PR target/50009
5305         * stor-layout.c (update_alignment_for_field): Don't ICE on
5306         packed flexible array members if ms_bitfield_layout_p.
5307
5308         PR target/50092
5309         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
5310         on the result before returning it.
5311
5312         PR debug/50017
5313         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
5314         is a debug stmt, use location of the first non-debug stmt after it.
5315
5316 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5317
5318         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
5319         (arm_size_rtx_costs): Likewise.
5320
5321 2011-08-18  Richard Guenther  <rguenther@suse.de>
5322
5323         * tree.h (tree_int_cst_msb): Remove.
5324         * tree.c (tree_int_cst_msb): Likewise.
5325         (tree_int_cst_sign_bit): Move from ...
5326         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
5327
5328 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5329
5330         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
5331         * doc/tm.texi: Regenerate.
5332         * target.def (rtx_costs): Add an opno parameter.
5333         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5334         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5335         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
5336         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
5337         * cse.c (COST_IN): Add an opno parameter.
5338         (notreg_cost): Likewise.  Update call to rtx_cost.
5339         (COST, fold_rtx): Update accordingly.
5340         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
5341         * expmed.c (emit_store_flag): Likewise.
5342         * optabs.c (avoid_expensive_constant): Add an opno parameter.
5343         Update call to rtx_cost.
5344         (expand_binop_directly, expand_binop): Likewise.
5345         (expand_twoval_binop, prepare_cmp_insn): Likewise.
5346         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
5347         (set_src_cost, get_full_set_src_cost): Update accordingly.
5348         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
5349         to target hook.
5350         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
5351         (default_adress_cost): Update calls to rtx_cost.
5352
5353         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
5354         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
5355         (arm_rtx_costs): Add an opno parameter.
5356         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
5357         adjust any recursive rtx-cost calls.
5358         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
5359         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5360         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
5361         * config/cris/cris.c (cris_rtx_costs): Likewise.
5362         * config/frv/frv.c (frv_rtx_costs): Likewise.
5363         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
5364         * config/i386/i386.c (ix86_rtx_costs): Likewise.
5365         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
5366         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
5367         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
5368         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
5369         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
5370         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
5371         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
5372         * config/mep/mep.c (mep_rtx_cost): Likewise.
5373         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
5374         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
5375         (mips_zero_extend_cost): Add an opno parameter.
5376         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
5377         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
5378         to rtx_cost.
5379         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
5380         rtx-cost calls.
5381         * config/pa/pa.c (hppa_rtx_costs): Likewise.
5382         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
5383         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
5384         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
5385         (rs6000_debug_rtx_costs): Likewise.
5386         * config/s390/s390.c (s390_rtx_costs): Likewise.
5387         * config/score/score-protos.h (score_rtx_costs): Likewise.
5388         * config/score/score.c (score_rtx_costs): Likewise.
5389         * config/sh/sh.c (andcosts): Update call to rtx_cost.
5390         (sh_rtx_costs): Add an opno parameter.
5391         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
5392         * config/spu/spu.c (spu_rtx_costs): Likewise.
5393         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
5394         * config/v850/v850.c (v850_rtx_costs): Likewise.
5395         * config/vax/vax.c (vax_rtx_costs): Likewise.
5396         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
5397
5398 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5399
5400         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
5401         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
5402         rtx_cost.
5403         * calls.c (precompute_register_parameters): Likewise.
5404         * combine.c (expand_compound_operation, make_extraction): Likewise.
5405         (force_to_mode, distribute_and_simplify_rtx): Likewise.
5406         * dse.c (find_shift_sequence): Likewise.
5407         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
5408         * expr.c (compress_float_constant): Likewise.
5409         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
5410         * gcse.c (want_to_gcse_p): Likewise.
5411         * ifcvt.c (noce_try_sign_mask): Likewise.
5412         * loop-doloop.c (doloop_optimize): Likewise.
5413         * loop-invariant.c (create_new_invariant): Likewise.
5414         * optabs.c (avoid_expensive_constant): Likewise.
5415         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
5416         (try_replace_in_use, reload_cse_move2add): Likewise.
5417         * reload1.c (calculate_elim_costs_all_insns): Likewise.
5418         (note_reg_elim_costly): Likewise.
5419         * rtlanal.c (insn_rtx_cost): Likewise.
5420         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5421         * stmt.c (lshift_cheap_p): Likewise.
5422         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
5423         * config/avr/avr.c (final_prescan_insn): Likewise.
5424         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
5425         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
5426
5427 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
5428
5429         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
5430         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
5431         * cfgloopanal.c (seq_cost): Likewise.
5432         * loop-invariant.c (create_new_invariant): Likewise.
5433         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
5434         (reload_cse_move2add): Use get_full_set_rtx_cost.
5435
5436 2011-08-18  Richard Guenther  <rguenther@suse.de>
5437
5438         * expr.c (get_inner_reference): Fix typo in last change.
5439
5440 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
5441             Joseph Myers  <joseph@codesourcery.com>
5442
5443         PR tree-optimization/49963
5444         * hwint.c (absu_hwi): Define.
5445         * hwint.h (absu_hwi): Declare.
5446         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
5447         of abs_hwi.
5448         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
5449         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
5450
5451 2011-08-18  Richard Guenther  <rguenther@suse.de>
5452
5453         * expr.c (get_inner_reference): Sign-extend the constant
5454         twos-complement offset before doing arbitrary precision
5455         arithmetic on it.
5456         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
5457         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
5458         to get_constraint_for_ptr_offset.
5459
5460 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5461
5462         PR target/50068
5463         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
5464
5465 2011-08-17  Richard Guenther  <rguenther@suse.de>
5466
5467         * tree.h (convert_to_ptrofftype_loc): New function.
5468         (convert_to_ptrofftype): Define.
5469         * builtins.c (expand_builtin_bzero): Use size_type_node.
5470         (fold_builtin_bzero): Likewise.
5471         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
5472         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
5473         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
5474         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
5475         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
5476         * fold-const.c (build_range_check): Negate using the original type.
5477         (fold_unary_loc): Use fold_build_pointer_plus_loc.
5478         * gimple-fold.c (gimple_adjust_this_by_delta): Use
5479         convert_to_ptrofftype.
5480         * gimplify.c (gimplify_self_mod_expr): Likewise.
5481         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
5482         (graphite_create_new_loop_guard): Likewise.
5483         * graphite-sese-to-poly.c (my_long_long): Remove.
5484         (scop_ivs_can_be_represented): Adjust.
5485         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
5486         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
5487         * tree-loop-distribution.c (build_size_arg_loc): Use
5488         size_type_node.
5489         (generate_memset_zero): Simplify.
5490         * tree-mudflap.c: Use fold_convert, not convert.
5491         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
5492         its own type.
5493         (determine_offset): Likewise for DR_STEP.
5494         (valid_initializer_p): Likewise.
5495         * tree-profile.c (prepare_instrumented_value): Convert the pointer
5496         to an integer type of same size.
5497         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
5498         to sizetype without need.
5499         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5500         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
5501         * tree-ssa-loop-manip.c (create_iv): Likewise.
5502         (determine_exit_conditions): Adjust comment.
5503         * tree-ssa-pre.c (create_expression_by_pieces): Use
5504         convert_to_ptrofftype.
5505         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
5506         * varasm.c (array_size_for_constructor): Compute using double_ints.
5507
5508 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5509
5510         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
5511         when generating an integer result where possible.  Short-cut
5512         comparison against 0 also for QImode.
5513
5514 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5515
5516         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
5517         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
5518         prototype.
5519         * config/spu/spu.c (spu_legitimize_reload_address): New function.
5520         (spu_legitimate_address_p): Do not check displacement if the base
5521         is an eliminable stack register.
5522
5523 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
5524
5525         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
5526         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
5527         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
5528         m32c_preferred_output_reload_class): Remove.
5529         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
5530         Change rclass argument and return types to reg_class_t. Use
5531         reg_class_subset_p instead of class_sizes.
5532         (m32c_preferred_output_reload_class): Make static. Change rclass
5533         argument and return types to reg_class_t.
5534         (TARGET_PREFERRED_RELOAD_CLASS,
5535         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5536
5537 2011-08-16  Kai Tietz  <ktietz@redhat.com>
5538
5539         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
5540
5541 2011-08-16  Richard GUenther  <rguenther@suse.de>
5542
5543         PR tree-optimization/50082
5544         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
5545         warnings here, instead of ...
5546         (ssa_forward_propagate_and_combine): ... here.
5547         (forward_propagate_into_comparison_1): Adjust.
5548         (forward_propagate_into_comparison): Likewise.
5549         (forward_propagate_into_gimple_cond): Likewise.
5550         (forward_propagate_into_cond): Likewise.
5551
5552 2011-08-16  Andreas Schwab  <schwab@redhat.com>
5553
5554         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
5555         instead of ggc_alloc_zone_vec_rtvec_def.
5556
5557 2011-08-16  Richard Guenther  <rguenther@suse.de>
5558
5559         * tree.h (ptrofftype_p): New helper function.
5560         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
5561         offset verification.
5562         (verify_gimple_assign_binary): Likewise.
5563         * tree.c (build2_stat): Likewise.
5564         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
5565         (reset_evolution_in_loop): Likewise.
5566         * tree-chrec.h (build_polynomial_chrec): Likewise.
5567
5568 2011-08-16  Liang Wang  <lwang1@marvell.com>
5569
5570         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
5571         ggc_alloc_zone_vec_rtvec_def.
5572
5573 2011-08-16  Richard Guenther  <rguenther@suse.de>
5574
5575         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
5576         helper factored out from ...
5577         (extract_range_from_binary_expr_1): ... here.  Re-structure
5578         to not glob handling too different tree codes.
5579
5580 2011-08-15  Richard Henderson  <rth@redhat.com>
5581
5582         PR middle-end/50006
5583         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
5584         setting out to include allocate_stack named pattern as well.
5585         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
5586         * stmt.c (expand_stack_restore): Likewise.
5587
5588 2011-08-15  Richard Guenther  <rguenther@suse.de>
5589
5590         PR middle-end/50082
5591         * fold-const.c (maybe_canonicalize_comparison_1): Properly
5592         convert the modified operand to the other operand type.
5593         (fold_comparison): Call maybe_canonicalize_comparison_1 with
5594         useless conversions stripped from comparison operands.
5595
5596 2011-08-15  Richard Guenther  <rguenther@suse.de>
5597
5598         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
5599         (extract_range_from_unary_expr_1): Restructure.
5600
5601 2011-08-15  Richard Guenther  <rguenther@suse.de>
5602
5603         PR tree-optimization/50058
5604         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
5605         copy matching.
5606
5607 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5608
5609         PR target/50022
5610         * config/arm/arm.c (output_move_double): Add 2 parameters
5611         to count the number of insns emitted and whether to emit or not.
5612         Use the flag to decide when to emit and count number of instructions
5613         that will be emitted.
5614         Handle case where output_move_double might be called for calculating
5615         lengths with an invalid constant.
5616         (arm_count_output_move_double_insns): Define.
5617         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
5618         (output_move_double): Adjust prototype.
5619         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
5620         output_move_double.
5621         ("*movdi_vfp_cortexa8"): Likewise and add attribute
5622         for ce_count.
5623         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
5624         ("*movdf_soft_insn"): Likewise.
5625         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
5626         ("*cirrus_thumb2_movdi"): Likewise.
5627         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
5628         ("*cirrus_movdf_hard_insn"): Likewise.
5629         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
5630         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
5631         ("mov<mode>_internal VMMX"): Likewise.
5632         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
5633
5634 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
5635
5636         * config/i386/i386.c (ix86_expand_round_sse4): New function.
5637         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
5638         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
5639         for TARGET_ROUND.
5640
5641         (rint<mode>2): Simplify TARGET_ROUND check.
5642         (floor<mode>2): Ditto.
5643         (ceil<mode>2): Ditto.
5644         (btrunc<mode>2): Ditto.
5645
5646 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
5647
5648         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
5649         as mmix_preferred_output_reload_class.
5650
5651 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
5652
5653         * PR target/49903
5654         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
5655         (branch_unspec): New insn.
5656         (branch): Beauty farm.
5657         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
5658         to be IF_THEN_ELSE.
5659         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
5660         New static functions.
5661         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
5662         Use CONST_INT_P.  Beauty.
5663
5664 2011-08-12  Richard Henderson  <rth@redhat.com>
5665
5666         PR rtl-opt/49994
5667         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
5668         * sched-deps.c (init_deps): Clear it.
5669         (deps_analyze_insn): Consume it.
5670         (sched_analyze_insn): Fill it.
5671
5672 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5673
5674         PR target/48328
5675         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
5676         for tbh instructions.
5677
5678 2011-08-12  Diego Novillo  <dnovillo@google.com>
5679
5680         * data-streamer.h (streamer_write_zero): Rename from output_zero.
5681         (streamer_write_uhwi): Rename from lto_output_uleb128.
5682         (streamer_write_hwi): Rename from output_sleb128.
5683         (streamer_write_string): Rename from lto_output_string.
5684         (streamer_string_index): Rename from lto_string_index.
5685         (streamer_write_string_with_length): Rename from
5686         lto_output_string_with_length.
5687         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
5688         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
5689         (streamer_read_string): Rename from lto_input_string.
5690         (streamer_read_indexed_string): Rename from input_string_internal.
5691         (streamer_read_uhwi): Rename from lto_input_uleb128.
5692         (streamer_read_hwi): Rename from lto_input_sleb128.
5693         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
5694         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
5695         (streamer_write_enum): Rename from lto_output_enum.
5696         (streamer_read_enum): Rename from lto_input_enum.
5697         (streamer_write_record_start): Rename from output_record_start.
5698         (streamer_read_record_start): Rename from input_record_start.
5699         (streamer_write_bitpack): Rename from lto_output_bitpack.
5700         (streamer_read_bitpack): Rename from lto_input_bitpack.
5701         (streamer_write_char_stream): Rename from lto_output_1_stream.
5702         (streamer_read_uchar): Rename from lto_input_1_unsigned.
5703         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
5704         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
5705         (streamer_read_string_cst): Rename from input_string_cst.
5706         (streamer_read_chain): Rename from lto_input_chain.
5707         (streamer_alloc_tree): Rename from lto_materialize_tree.
5708         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
5709         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
5710         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
5711         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
5712         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
5713         (streamer_write_chain): Rename from lto_output_chain.
5714         (streamer_write_tree_header): Rename from lto_output_tree_header.
5715         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
5716         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
5717         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
5718         (streamer_write_builtin): Rename from lto_output_builtin_tree.
5719         (streamer_check_handled_ts_structures): Rename from
5720         check_handled_ts_structures.
5721         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
5722         (streamer_tree_cache_insert_at): Rename from
5723         lto_streamer_cache_insert_at.
5724         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
5725         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
5726         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
5727         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
5728         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
5729         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
5730         (write_identifier): Rename from output_identifier.
5731         (write_ts_common_tree_pointers): Rename from
5732         lto_output_ts_common_tree_pointers.
5733         (write_ts_vector_tree_pointers): Rename from
5734         lto_output_ts_vector_tree_pointers.
5735         (write_ts_complex_tree_pointers): Rename from
5736         lto_output_ts_complex_tree_pointers.
5737         (write_ts_decl_minimal_tree_pointers): Rename from
5738         lto_output_ts_decl_minimal_tree_pointers.
5739         (write_ts_decl_common_tree_pointers): Rename from
5740         lto_output_ts_decl_common_tree_pointers.
5741         (write_ts_decl_non_common_tree_pointers): Rename from
5742         lto_output_ts_decl_non_common_tree_pointers.
5743         (write_ts_decl_with_vis_tree_pointers): Rename from
5744         lto_output_ts_decl_with_vis_tree_pointers.
5745         (write_ts_field_decl_tree_pointers): Rename from
5746         lto_output_ts_field_decl_tree_pointers.
5747         (write_ts_function_decl_tree_pointers): Rename from
5748         lto_output_ts_function_decl_tree_pointers.
5749         (write_ts_type_common_tree_pointers): Rename from
5750         lto_output_ts_type_common_tree_pointers.
5751         (write_ts_type_non_common_tree_pointers): Rename from
5752         lto_output_ts_type_non_common_tree_pointers.
5753         (write_ts_list_tree_pointers): Rename from
5754         lto_output_ts_list_tree_pointers.
5755         (write_ts_vec_tree_pointers): Rename from
5756         lto_output_ts_vec_tree_pointers.
5757         (write_ts_exp_tree_pointers): Rename from
5758         lto_output_ts_exp_tree_pointers.
5759         (write_ts_block_tree_pointers): Rename from
5760         lto_output_ts_block_tree_pointers.
5761         (write_ts_binfo_tree_pointers): Rename from
5762         lto_output_ts_binfo_tree_pointers.
5763         (write_ts_constructor_tree_pointers): Rename from
5764         lto_output_ts_constructor_tree_pointers.
5765         (write_ts_target_option): Rename from lto_output_ts_target_option.
5766         (write_ts_translation_unit_decl_tree_pointers): Rename from
5767         lto_output_ts_translation_unit_decl_tree_pointers.
5768         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
5769         Rename from lto_streamer_cache_add_to_node_array.
5770         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
5771         (record_common_node): Rename from lto_record_common_node.
5772
5773         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
5774         declarations.
5775         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
5776         function.
5777         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
5778         unused function.
5779         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
5780         (ipa-reference.o): Likewise.
5781         * lto-section-out.c: Include data-streamer.h.
5782         * ipa-reference.c: Include data-streamer.h.
5783
5784 2011-08-12  Nick Clifton  <nickc@redhat.com>
5785
5786         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
5787         * doc/md.texi (cmpstrn): Note that the comparison stops if both
5788         fetched bytes are zero.
5789         (cmpstr): Likewise.
5790         (cmpmem): Note that the comparison does not stop if both of the
5791         fetched bytes are zero.
5792
5793 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
5794
5795         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
5796         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
5797         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
5798         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
5799         to integer_type_node.
5800         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
5801         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
5802         * builtins.c (expand_builtin_in): Ditto.
5803         (mathfn_built_in_1): Ditto.
5804         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
5805         BUILT_IN_IFLOOR.
5806         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
5807         BUILT_IN_IROUND.
5808         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
5809         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
5810         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
5811
5812 2011-08-12  Richard Guenther  <rguenther@suse.de>
5813
5814         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
5815
5816 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
5817
5818         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
5819
5820 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
5821
5822         * config/arm/arm.c (get_label_padding): New function.
5823         (create_fix_barrier, arm_reorg): Use it.
5824
5825 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
5826
5827         PR target/49781
5828         * config/i386/i386.md (*lea_5_zext): New.
5829         (*lea_6_zext): Ditto.
5830         * config/i386/predicates.md (const_32bit_mask): New predicate.
5831         (lea_address_operand): Reject AND.
5832         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
5833         const_32bit_mask immediate.
5834         (ix86_print_operand_address): Handle AND.
5835         (memory_address_length): Ditto.
5836
5837 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
5838             Brian Hackett  <bhackett1024@gmail.com>
5839
5840         * plugin.def: Add event for finish_decl.
5841         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
5842         * c-decl.c (finish_decl): Invoke callbacks on above event.
5843         * doc/plugins.texi: Document above event.
5844
5845 2011-08-11  Richard Guenther  <rguenther@suse.de>
5846
5847         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
5848         lookups, make looking through aggregate copies stronger.
5849
5850 2011-08-11  Richard Henderson  <rth@redhat.com>
5851
5852         PR bootstrap/50018
5853         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
5854
5855 2011-08-11  Richard Guenther  <rguenther@suse.de>
5856
5857         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
5858         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
5859         (vrp_visit_stmt): Likewise.
5860
5861 2011-08-11  Richard Guenther  <rguenther@suse.de>
5862
5863         PR middle-end/50040
5864         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
5865         load of the other piece with TREE_NO_WARNING.
5866         * tree-flow.h (warn_uninit): Adjust prototype.
5867         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
5868         the base variable and the expression that is used separately.
5869         Properly query all TREE_NO_WARNING flags.
5870         (struct walk_data): Remove.
5871         (warn_uninitialized_var): Likewise.
5872         (warn_uninitialized_vars): Do not walk gimple pieces but simply
5873         look at all SSA uses of the statement.  Handle unused memory
5874         separately.
5875         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
5876
5877 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
5878
5879         * config/rx/rx.md (movsicc): Allow register to register transfers.
5880         (*movsicc): Likewise.
5881         (*stcc): Restrict this pattern to EQ and NE compares.
5882         (*stcc_reg): New pattern.  Works for any comparison but only for
5883         register transfers.
5884
5885 2011-08-11   Diego Novillo  <dnovillo@google.com>
5886
5887         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
5888         Call stream_write_tree instead of output_record_start.
5889         (lto_output_ts_binfo_tree_pointers): Likewise.
5890
5891         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
5892         Convert it to a macro.
5893         (stream_read_tree): Likewise.
5894
5895         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
5896         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
5897
5898         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
5899         and tree_read_bitfields.
5900         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
5901         (lto_write_tree): Call it.
5902         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
5903         * streamer-hooks.h (struct streamer_hooks): Remove fields
5904         name, is_streamable and alloc_tree. Update all users.
5905         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
5906         (lto_materialize_tree): ... here.
5907         Handle CALL_EXPR codes.
5908         Remove call to lto_streamer_cache_append.
5909         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
5910         * tree-streamer.h (tree_read_bitfields): Declare.
5911
5912         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
5913         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
5914         * tree-streamer.h (stream_read_tree): New.  Replace all calls
5915         to lto_input_tree with it.
5916         (stream_write_tree): New.  Replace all calls to lto_output_tree,
5917         lto_output_tree_ref and lto_output_tree_or_ref with it.
5918         * lto-streamer-in.c (lto_read_tree): Inline code from
5919         lto_streamer_read_tree.
5920         (lto_input_tree): Move from tree-streamer-in.c.
5921         * lto-streamer-out.c (lto_output_tree_ref): Make static.
5922         Remove handling of NULL values for EXPR.
5923         Do not handle EXPRs that are not indexable.
5924         (lto_write_tree): Move from tree-streamer-out.c.
5925         Inline lto_streamer_write_tree.
5926         (lto_output_tree): Move from tree-streamer-out.c.
5927         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
5928         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
5929         (lto_preload_common_nodes): Likewise.
5930         Remove assertions and adjustments for nodes
5931         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
5932         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
5933         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
5934         * lto-streamer.h (lto_input_tree): Declare.
5935         (lto_output_tree_ref): Remove.
5936         * streamer-hooks.h (struct streamer_hooks): Remove fields
5937         preload_common_nodes, indexable_with_decls_p,
5938         pack_value_fields, unpack_value_fields and output_tree_header.
5939         Update all users.
5940         * tree-streamer-in.c (lto_materialize_tree): Make extern.
5941         (lto_input_tree_pointers): Likewise.
5942         (lto_read_tree): Move to lto-streamer-in.c.
5943         (lto_input_integer_cst): Make extern.
5944         (lto_get_pickled_tree): Likewise.
5945         (lto_get_builtin_tree): Likewise.
5946         (lto_input_tree): Move to lto-streamer-in.c.
5947         * tree-streamer-out.c (pack_value_fields): Make extern.
5948         (lto_output_tree_or_ref): Remove.  Replace all callers with
5949         calls to stream_write_tree.
5950         (lto_output_builtin_tree): Make extern.
5951         (lto_streamer_write_tree): Inline into lto_write_tree.
5952         (lto_output_tree_pointers): Make extern.
5953         (lto_output_tree_header): Likewise.
5954         (lto_output_integer_cst): Likewise.
5955         (lto_write_tree): Move to lto-streamer-out.c.
5956         (lto_output_tree): Likewise.
5957         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
5958         (preload_common_nodes): Likewise.
5959         (lto_streamer_cache_create): Call it.
5960         * tree-streamer.h: Include streamer-hooks.h.
5961         (stream_write_tree): New.
5962         (stream_read_tree): New.
5963         (lto_input_tree): Remove.
5964         (lto_materialize_tree): Declare.
5965         (lto_input_tree_pointers): Declare.
5966         (lto_get_pickled_tree): Declare.
5967         (lto_get_builtin_tree): Declare.
5968         (lto_input_integer_cst): Declare.
5969         (lto_output_tree_header): Declare.
5970         (pack_value_fields): Declare.
5971         (lto_output_tree_pointers): Declare.
5972         (lto_output_integer_cst): Declare.
5973         (lto_output_builtin_tree): Declare.
5974
5975 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5976
5977         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
5978         only if producer writes to the register given by regno.
5979
5980 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5981             Alexander Monakov  <amonakov@ispras.ru>
5982
5983         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
5984         (sched_get_condition_with_rev_uncached): ... this.  Factor out
5985         condition caching logic into ...
5986         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
5987         attempt to use cache for instructions with zero luid.
5988         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
5989         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
5990
5991 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
5992
5993         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
5994         get_seqno_for_a_jump.  Update the caller.
5995         (get_seqno_by_succs): New.  Use it ...
5996         (get_seqno_for_a_jump): ... here to find a seqno if looking at
5997         predecessors was not sufficient.
5998         (get_seqno_by_preds): Include head in iteration range, exclude insn.
5999
6000 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6001
6002         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
6003
6004 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6005
6006         * sel-sched-ir.h (register_unavailable_p): Declare.
6007         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
6008         (set_unavailable_target_for_expr): ... here to properly test
6009         availability of a register.
6010         (speculate_expr): Ditto.
6011         * sel-sched.c (substitute_reg_in_expr): Ditto.
6012         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
6013
6014 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
6015
6016         * sel-sched.c (verify_target_availability): Fix usage of
6017         hard_regno_nregs.
6018
6019 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6020
6021         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
6022         recognized by cannot_copy_insn_p hook and volatile instructions.
6023
6024 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
6025
6026         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
6027
6028 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
6029
6030         * doc/md.texi (define_bypass): Say that the instruction names can
6031         be filename-style globs.
6032         * Makefile.in (FNMATCH_H): Define.
6033         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
6034         * genattrtab.c: Include fnmatch.h.
6035         (bypass_list): Change field name from "insn" to "pattern".
6036         (gen_bypass_1): Update accordingly.
6037         (process_bypasses): Use fnmatch to check for matches between
6038         insn reservations and define_bypasses.
6039         * genautomata.c: Include fnmatch.h.
6040         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
6041         and out_pattern respectively.
6042         (gen_bypass, insert_bypass): Update accordingly.
6043         (for_each_matching_insn, process_bypass_2, process_bypass_1)
6044         (process_bypass): New functions.
6045         (process_decls): Use process_bypass.  Update after field name changes.
6046
6047 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
6048
6049         PR target/49687
6050         * config/avr/avr.md (smulqi3_highpart): New insn.
6051         (umulqi3_highpart): New insn.
6052         (*subqi3.ashiftrt7): New insn.
6053         (smulhi3_highpart): New expander.
6054         (umulhi3_highpart): Nex expander.
6055         (*smulhi3_highpart_call): New insn.
6056         (*umulhi3_highpart_call): New insn.
6057         (extend_u): New code attribute.
6058         (extend_prefix): Rename code attribute to extend_su.
6059         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
6060         widening QI/HI multiply.
6061
6062 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
6063
6064         PR tree-optimization/50039
6065         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
6066         that DEF_STMT has a stmt_vec_info.
6067
6068 2011-08-10  Richard Guenther  <rguenther@suse.de>
6069
6070         * tree.h (can_trust_pointer_alignment): Remove.
6071         * builtins.c (can_trust_pointer_alignment): Remove.
6072
6073 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
6074
6075         * c-typeck.c (scalar_to_vector): New function. Try scalar to
6076         vector conversion.
6077         (stv_conv): New enum for scalar_to_vector return type.
6078         (build_binary_op): Adjust.
6079         * doc/extend.texi: Description of scalar to vector expansion.
6080
6081 2011-08-10  Richard Guenther  <rguenther@suse.de>
6082
6083         * tree.h (get_pointer_alignment): Remove max-align argument.
6084         (get_object_alignment): Likewise.
6085         * builtins.c (get_object_alignment_1): Adjust.
6086         (get_object_alignment): Remove max-align argument.
6087         (get_pointer_alignment): Likewise.
6088         (expand_builtin_strlen): Adjust.
6089         (expand_builtin_memcpy): Likewise.
6090         (expand_builtin_mempcpy_args): Likewise.
6091         (expand_builtin_strncpy): Likewise.
6092         (expand_builtin_memset_args): Likewise.
6093         (expand_builtin_memcmp): Likewise.
6094         (expand_builtin_strcmp): Likewise.
6095         (expand_builtin_strncmp): Likewise.
6096         (get_builtin_sync_mem): Likewise.
6097         (fold_builtin_memset): Likewise.
6098         (fold_builtin_memory_op): Likewise.
6099         (expand_builtin_memory_chk): Likewise.
6100         * emit-rtl.c (get_mem_align_offset): Likewise.
6101         (set_mem_attributes_minus_bitpos): Likewise.
6102         * expr.c (expand_assignment): Likewise.
6103         (expand_expr_real_1): Likewise.
6104         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
6105         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
6106         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
6107         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6108         * value-prof.c (gimple_stringops_transform): Likewise.
6109
6110 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
6111
6112         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
6113         * doc/tm.texi: Regenerate.
6114
6115 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
6116
6117         PR target/29560
6118         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
6119         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
6120         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
6121         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
6122         shift target is unused.
6123
6124 2011-08-10  Richard Guenther  <rguenther@suse.de>
6125
6126         PR tree-optimization/49937
6127         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
6128         using get_object_alignment_1.
6129
6130 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6131
6132         * config/i386/i386.c (ix86_emit_i387_round): New function.
6133         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
6134         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
6135         Use ix86_emit_i387_round to expand round function for i387 math.
6136         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
6137         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
6138
6139 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6140
6141         * config/sync.c: Move to ../libgcc.
6142         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
6143         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
6144         Remove.
6145
6146 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6147
6148         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
6149         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
6150         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
6151         Change 'from' and 'to' arguments type to reg_class_t.
6152         (TARGET_REGISTER_MOVE_COST): Define.
6153
6154 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
6155
6156         PR target/50026
6157         Revert:
6158         PR rtl-optimization/49990
6159         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6160         ignore classes which can not change mode.
6161         (find_costs_and_classes): Ditto.
6162
6163 2011-08-09  Richard Guenther  <rguenther@suse.de>
6164
6165         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
6166         information for ranges with only negative values.
6167         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
6168         BIT_AND_EXPR handling to handle ranges with negative values.
6169
6170 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
6171
6172         * config/i386/i386.c: Remove traling spaces.
6173         * config/i386/sse.md: Likewise.
6174         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
6175         (*fma_fmsub_<mode>): Likewise.
6176         (*fma_fnmadd_<mode>): Likewise.
6177         (*fma_fnmsub_<mode>): Likewise.
6178
6179 2011-08-09  Nick Clifton  <nickc@redhat.com>
6180
6181         * config/rx/rx.md: Disable extender peepholes at -O3.
6182
6183 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
6184
6185         PR target/49781
6186         * config/i386/i386.md (reload_noff_load): New.
6187         (reload_noff_store): Ditto.
6188         * config/i386/i386.c (ix86_secondary_reload): Use
6189         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
6190         double-word moves from/to non-offsetable addresses instead of
6191         generating XMM temporary.
6192
6193 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
6194
6195         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
6196
6197 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
6198
6199         PR tree-optimization/50014
6200         * tree-vect-loop.c (vectorizable_reduction): Get def type before
6201         calling vect_get_vec_def_for_stmt_copy ().
6202
6203 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
6204
6205         PR rtl-optimization/49990
6206         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
6207         ignore classes which can not change mode.
6208         (find_costs_and_classes): Ditto.
6209
6210 2011-08-08  Richard Henderson  <rth@redhat.com>
6211
6212         PR middle-end/49990
6213         * config/i386/i386.c (ix86_expand_prologue): Call
6214         for SEH target gen_prologue_use instead of gen_blockage
6215         at prologue's end.
6216
6217 2011-08-08  Martin Jambor  <mjambor@suse.cz>
6218
6219         PR middle-end/49923
6220         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
6221         memory alignment.
6222
6223 2011-08-08   Diego Novillo  <dnovillo@google.com>
6224
6225         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
6226         (DATA_STREAMER_H): New.
6227         (GIMPLE_STREAMER_H): New.
6228         (TREE_STREAMER_H): New.
6229         (STREAMER_HOOKS_H): New.
6230         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
6231         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
6232         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
6233         (data-streamer.o): New.
6234         (data-streamer-in.o): New.
6235         (data-streamer-out.o): New.
6236         (gimple-streamer-in.o): New.
6237         (gimple-streamer-out.o): New.
6238         (streamer-hooks.o): New.
6239         (tree-streamer.o): New.
6240         (tree-streamer-in.o): New.
6241         (tree-streamer-out.o): New.
6242         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6243         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
6244         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6245         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
6246         GIMPLE_STREAMER_H and TREE_STREAMER_H.
6247         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
6248         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
6249         (ipa-inline-analysis.o): Likewise.
6250         (ipa-pure-const.o): Likewise.
6251         * data-streamer-in.c: New.
6252         * data-streamer-out.c: New.
6253         * data-streamer.c: New.
6254         * data-streamer.h: New.
6255         * gimple-streamer-in.c: New.
6256         * gimple-streamer-out.c: New.
6257         * gimple-streamer.h: New.
6258         * ipa-inline-analysis.c: Include data-streamer.h.
6259         * ipa-prop.c: Include data-streamer.h.
6260         * ipa-pure-const.c: Include data-streamer.h.
6261         * lto-cgraph.c: Include data-streamer.h.
6262         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
6263         (lto_input_widest_uint_uleb128): Likewise.
6264         (lto_input_sleb128): Likewise.
6265         (bp_unpack_var_len_unsigned): Likewise.
6266         (bp_unpack_var_len_int): Likewise.
6267         * lto-section-out.c (lto_output_uleb128_stream): Move to
6268         data-streamer-out.c.
6269         (lto_output_widest_uint_uleb128_stream): Likewise.
6270         (lto_output_sleb128_stream): Likewise.
6271         (bp_pack_var_len_unsigned): Likewise.
6272         (bp_pack_var_len_int): Likewise.
6273         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
6274         (struct string_slot): Remove.  Update all users.
6275         (lto_tag_check_set): Make extern.
6276         (lto_tag_check_range): Move to lto-streamer.h.
6277         (lto_tag_check): Likewise.
6278         (hash_string_slot_node): Remove.  Update all users.
6279         (eq_string_slot_node): Remove.  Update all users.
6280         (string_for_index): Move to data-streamer-in.c
6281         (input_string_internal): Likewise.
6282         (input_string_cst): Move to tree-streamer-in.c.
6283         (input_identifier): Likewise.
6284         (lto_input_string): Move to data-streamer-in.c
6285         (input_record_start): Move to data-streamer.h
6286         (canon_file_name): Use new definition of struct string_slot
6287         from data-streamer.h.  Set S_SLOT.LEN.
6288         (lto_input_location): Make extern.
6289         (lto_input_chain): Move to tree-streamer-in.c.
6290         (lto_init_eh): Make extern.
6291         (input_phi): Move to gimple-streamer-in.c.
6292         (input_gimple_stmt): Likewise.
6293         (input_bb): Likewise.
6294         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
6295         (unpack_ts_real_cst_value_fields): Likewise.
6296         (unpack_ts_fixed_cst_value_fields): Likewise.
6297         (unpack_ts_decl_common_value_fields): Likewise.
6298         (unpack_ts_decl_wrtl_value_fields): Likewise.
6299         (unpack_ts_decl_with_vis_value_fields): Likewise.
6300         (unpack_ts_function_decl_value_fields): Likewise.
6301         (unpack_ts_type_common_value_fields): Likewise.
6302         (unpack_ts_block_value_fields): Likewise.
6303         (unpack_ts_translation_unit_decl_value_fields): Likewise.
6304         (unpack_value_fields): Likewise.
6305         (lto_materialize_tree): Likewise.
6306         (lto_input_ts_common_tree_pointers): Likewise.
6307         (lto_input_ts_vector_tree_pointers): Likewise.
6308         (lto_input_ts_complex_tree_pointers): Likewise.
6309         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
6310         (lto_input_ts_decl_common_tree_pointers): Likewise.
6311         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
6312         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
6313         (lto_input_ts_field_decl_tree_pointers): Likewise.
6314         (lto_input_ts_function_decl_tree_pointers): Likewise.
6315         (lto_input_ts_type_common_tree_pointers): Likewise.
6316         (lto_input_ts_type_non_common_tree_pointers): Likewise.
6317         (lto_input_ts_list_tree_pointers): Likewise.
6318         (lto_input_ts_vec_tree_pointers): Likewise.
6319         (lto_input_ts_exp_tree_pointers): Likewise.
6320         (lto_input_ts_block_tree_pointers): Likewise.
6321         (lto_input_ts_binfo_tree_pointers): Likewise.
6322         (lto_input_ts_constructor_tree_pointers): Likewise.
6323         (lto_input_ts_target_option): Likewise.
6324         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
6325         (lto_input_tree_pointers): Likewise.
6326         (lto_get_pickled_tree): Likewise.
6327         (lto_get_builtin_tree): Likewise.
6328         (lto_read_tree): Likewise.
6329         (lto_input_integer_cst): Likewise.
6330         (lto_input_tree): Likewise.
6331         * lto-streamer-out.c: Include data-streamer.h,
6332         gimple-streamer.h and streamer-hooks.h.
6333         (struct string_slot): Move to data-streamer.h.
6334         (hash_string_slot_node): Likewise.
6335         (eq_string_slot_node): Likewise.
6336         (lto_string_index): Move to data-streamer-out.c.
6337         (lto_output_string_with_length): Likewise.
6338         (lto_output_string): Likewise.
6339         (output_string_cst): Move to tree-streamer-out.c.
6340         (output_identifier): Likewise.
6341         (output_zero): Move to data-streamer-out.c
6342         (output_uleb128): Likewise.
6343         (output_sleb128): Likewise.
6344         (output_record_start): Move to data-streamer.h
6345         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
6346         (pack_ts_real_cst_value_fields): Likewise.
6347         (pack_ts_fixed_cst_value_fields): Likewise.
6348         (pack_ts_decl_common_value_fields): Likewise.
6349         (pack_ts_decl_wrtl_value_fields): Likewise.
6350         (pack_ts_decl_with_vis_value_fields): Likewise.
6351         (pack_ts_function_decl_value_fields): Likewise.
6352         (pack_ts_type_common_value_fields): Likewise.
6353         (pack_ts_block_value_fields): Likewise.
6354         (pack_ts_translation_unit_decl_value_fields): Likewise.
6355         (pack_value_fields): Likewise.
6356         (lto_output_chain): Likewise.
6357         (lto_output_ts_common_tree_pointers): Likewise.
6358         (lto_output_ts_vector_tree_pointers): Likewise.
6359         (lto_output_ts_complex_tree_pointers): Likewise.
6360         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
6361         (lto_output_ts_decl_common_tree_pointers): Likewise.
6362         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
6363         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
6364         (lto_output_ts_field_decl_tree_pointers): Likewise.
6365         (lto_output_ts_function_decl_tree_pointers): Likewise.
6366         (lto_output_ts_type_common_tree_pointers): Likewise.
6367         (lto_output_ts_type_non_common_tree_pointers): Likewise.
6368         (lto_output_ts_list_tree_pointers): Likewise.
6369         (lto_output_ts_vec_tree_pointers): Likewise.
6370         (lto_output_ts_exp_tree_pointers): Likewise.
6371         (lto_output_ts_block_tree_pointers): Likewise.
6372         (lto_output_ts_binfo_tree_pointers): Likewise.
6373         (lto_output_ts_constructor_tree_pointers): Likewise.
6374         (lto_output_ts_target_option): Likewise.
6375         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
6376         (lto_output_tree_pointers): Likewise.
6377         (lto_output_tree_header): Likewise.
6378         (lto_output_builtin_tree): Likewise.
6379         (lto_write_tree): Likewise.
6380         (lto_output_integer_cst): Likewise.
6381         (lto_output_tree): Likewise.
6382         (output_phi): Move to gimple-streamer-out.c.
6383         (output_gimple_stmt): Likewise.
6384         (output_bb): Likewise.
6385         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
6386         (streamer_hooks): Move to streamer-hooks.c.
6387         (check_handled_ts_structures): Move to tree-streamer.c
6388         (lto_streamer_cache_add_to_node_array): Likewise.
6389         (lto_streamer_cache_insert_1): Likewise.
6390         (lto_streamer_cache_insert): Likewise.
6391         (lto_streamer_cache_insert_at): Likewise.
6392         (lto_streamer_cache_append): Likewise.
6393         (lto_streamer_cache_lookup): Likewise.
6394         (lto_streamer_cache_get): Likewise.
6395         (lto_record_common_node): Likewise.
6396         (lto_preload_common_nodes): Likewise.
6397         (lto_streamer_cache_create): Likewise.
6398         (lto_streamer_cache_delete): Likewise.
6399         (streamer_hooks_init): Move to streamer-hooks.c.
6400         * lto-streamer.h: Include diagnostic.h
6401         (struct output_block, struct lto_input_block,
6402         struct data_in, struct bitpack_d): Remove forward declarations.
6403         (struct bitpack_d): Move to data-streamer.h.
6404         (struct lto_streamer_cache_d): Move to tree-streamer.h.
6405         (struct streamer_hooks): Move to streamer-hooks.h.
6406         (bp_pack_var_len_unsigned): Move to data-streamer.h.
6407         (bp_pack_var_len_int): Likewise.
6408         (bp_unpack_var_len_unsigned): Likewise.
6409         (bp_unpack_var_len_int): Likewise.
6410         (lto_input_location): Declare.
6411         (lto_tag_check_set): Declare.
6412         (lto_init_eh): Declare.
6413         (lto_output_tree_ref): Declare.
6414         (lto_output_location): Declare.
6415         (bitpack_create): Move to data-streamer.h.
6416         (bp_pack_value): Likewise.
6417         (lto_output_bitpack): Likewise.
6418         (lto_input_bitpack): Likewise.
6419         (bp_unpack_value): Likewise.
6420         (lto_output_1_stream): Likewise.
6421         (lto_input_1_unsigned): Likewise.
6422         (lto_output_int_in_range): Likewise.
6423         (lto_input_int_in_range): Likewise.
6424         (bp_pack_int_in_range): Likewise.
6425         (bp_unpack_int_in_range): Likewise.
6426         (lto_output_enum): Likewise.
6427         (lto_input_enum): Likewise.
6428         (bp_pack_enum): Likewise.
6429         (bp_unpack_enum): Likewise.
6430         * streamer-hooks.c: New.
6431         * streamer-hooks.h: New.
6432         * tree-streamer-in.c: New.
6433         * tree-streamer-out.c: New.
6434         * tree-streamer.c: New.
6435         * tree-streamer.h: New.
6436
6437 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6438
6439         * gthr-posix95.h: Remove.
6440         * gthr.h [_PTHREADS95]: Remove.
6441         * configure.ac (enable_threads): Remove posix95.
6442         * configure: Regenerate.
6443         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
6444
6445 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
6446
6447         PR target/49781
6448         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
6449         SImode addresses.
6450         (ix86_print_operand_address): Handle zero-extended addresses.
6451         (memory_address_length): Add length of addr32 prefix for
6452         zero-extended addresses.
6453         (ix86_secondary_reload): Handle moves to/from double-word general
6454         registers from/to zero-extended addresses.
6455         * config/i386/predicates.md (lea_address_operand): Reject
6456         zero-extended operands.
6457
6458 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
6459
6460         PR other/48007
6461         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
6462
6463         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
6464         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
6465
6466         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
6467         (_Unwind_Context_Reg_Val): Likewise.
6468         (_Unwind_Get_Unwind_Word): Likewise.
6469         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
6470         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
6471         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
6472         for EXTENDED_CONTEXT_BIT.
6473         (__frame_state_for): Likewise.
6474         (uw_init_context_1): Likewise.
6475         (_Unwind_GetGR): Updated.
6476         (_Unwind_SetGR): Likewise.
6477         (_Unwind_GetGRPtr): Likewise.
6478         (_Unwind_SetGRPtr): Likewise.
6479         (_Unwind_SetGRValue): Likewise.
6480         (_Unwind_GRByValue): Likewise.
6481         (uw_install_context_1): Likewise.
6482
6483         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
6484         ASSUME_EXTENDED_UNWIND_CONTEXT.
6485         * doc/tm.texi: Regenerated.
6486
6487 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6488
6489         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
6490
6491 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6492
6493         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
6494         Linux/GNU-specific.
6495         (DEC Alpha Options, -mtune): Likewise.
6496         (MIPS Options, -march): native is supported on IRIX.
6497
6498 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6499
6500         * config/sparc/driver-sparc.c: New file.
6501         * config/sparc/x-sparc: New file.
6502         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
6503         * config/sparc/sparc.opt (native): New value for enum processor_type.
6504         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
6505         * config/sparc/sparc.c (sparc_option_override): Abort if
6506         PROCESSOR_NATIVE gets here.
6507         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
6508         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
6509         DRIVER_SELF_SPECS): Define.
6510         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
6511         (SPARC Options, -mtune): Likewise.
6512         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
6513         Substitute result.
6514         * configure: Regenerate.
6515         * Makefile.in (EXTRA_GCC_LIBS): Set.
6516         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
6517         (cpp$(exeext)): Likewise.
6518
6519 2011-08-08  Richard Guenther  <rguenther@suse.de>
6520
6521         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
6522         split out from ...
6523         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
6524         by composition.
6525
6526 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
6527
6528         PR tree-optimization/50005
6529         * ipa-inline-analysis (remap_predicate): Add cast to
6530         silence signed/unsigned comparison warning.
6531
6532 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6533
6534         * modulo-sched.c (get_sched_window): Use a table for the debug output.
6535         Print the current ii.
6536         (sms_schedule_by_order): Reduce whitespace in dump line.
6537
6538 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
6539
6540         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
6541         and one loop for successors.  Fix upper bound of memory range.
6542
6543 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6544
6545         PR target/50001
6546         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
6547         (TARGET_INSTANTIATE_DECLS): New define.
6548
6549 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
6550             Mikael Morin   <mikael.morin@sfr.fr>
6551
6552         * Makefile.in (INCLUDES_FOR_TARGET): New.
6553         (LIBGCC2_CFLAGS): Use it.
6554         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
6555
6556 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6557
6558         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
6559         frame->save_regs_using_mov calculation.
6560
6561 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
6562
6563         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
6564         * config/i386/sse.md (castmode): New mode attribute.
6565         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
6566         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
6567
6568 2011-08-05  Jan Hubicka  <jh@suse.cz>
6569
6570         PR middle-end/49494
6571         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
6572
6573 2011-08-05  Jan Hubicka  <jh@suse.cz>
6574
6575         PR middle-end/49500
6576         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
6577         handle aliases.
6578         (create_emultls_var):New function.
6579         (ipa_lower_emutls): Handle aliases correctly.
6580
6581 2011-08-05  Jan Hubicka  <jh@suse.cz>
6582
6583         PR middle-end/49735
6584         * ipa-inline.c (recursive_inlining): Look through aliases.
6585
6586 2011-08-05  Jason Merrill  <jason@redhat.com>
6587
6588         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
6589         declarations to beginning of function.
6590
6591 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6592
6593         PR rtl-optimization/49900
6594         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
6595         ensure basic blocks stay in the same order.
6596
6597 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
6598
6599         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
6600         store_bit_field.
6601         (s390_expand_atomic): Same.
6602
6603 2011-08-05  Richard Henderson  <rth@redhat.com>
6604
6605         PR rtl-opt/49977
6606         * dwarf2cfi.c (scan_insn_after): Split out of ...
6607         (scan_trace): ... here.  Correctly place notes wrt sequences.
6608
6609 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6610             Richard Henderson  <rth@redhat.com>
6611
6612         PR rtl-opt/49982
6613         * expr.c (fixup_args_size_notes): Look through no-op moves.
6614
6615 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6616
6617         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
6618         of "m" for operand 0.  Add type and mode attribute.
6619         (*pushxf_nointeger"): Use "<" constraint for operand 0.
6620         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
6621         constraint instead of "o" for opreand 1.
6622         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
6623         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
6624         operand 0, alternative 4.
6625         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
6626
6627 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6628
6629         * config/i386/predicates.md (lea_address_operand): Rename from
6630         no_seg_address_operand.
6631         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
6632         (*lea_1_zext): Ditto.
6633         (*lea_2): Ditto.
6634         (*lea_2_zext): Ditto.
6635
6636 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
6637
6638         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
6639         parts.base and parts.index.
6640         * config/i386/predicates.md (aligned_operand): Ditto.
6641         (cmpxchg8b_pic_memory_operand): Ditto.
6642
6643 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6644
6645         * config/soft-fp: Move to ../libgcc.
6646         * Makefile.in (SFP_MACHINE): Remove.
6647         (libgcc-support): Remove $(SFP_MACHINE) dependency.
6648         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
6649         * config/arm/t-arm-softfp: Move to
6650         ../libgcc/config/arm/t-softfp.
6651         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
6652         * config/c6x/t-c6x-softfp: Remove.
6653         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
6654         * config/i386/t-fprules-softfp: Move to
6655         ../libgcc/config/t-softfp-tf.
6656         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
6657         * config/ia64/t-fprules-softfp: Remove.
6658         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
6659         * config/lm32/t-fprules-softfp: Remove.
6660         * config/moxie/sfp-machine.h: Remove.
6661         * config/moxie/t-moxie-softfp: Remove.
6662         * config/rs6000/darwin-ldouble-format: Move to
6663         ../libgcc/config/rs6000/ibm-ldouble-format.
6664         * config/rs6000/darwin-ldouble.c: Move to
6665         ../libgcc/config/rs6000/ibm-ldouble.c
6666         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
6667         * config/rs6000/libgcc-ppc64.ver: Likewise.
6668         * config/rs6000/sfp-machine.h: Likewise.
6669         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
6670         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
6671         (LIB2FUNCS_EXTRA): Remove.
6672         (TARGET_LIBGCC2_CFLAGS): Remove.
6673         * config/rs6000/t-aix52: Likewise
6674         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6675         $(srcdir)/config/rs6000/darwin-ldouble.c.
6676         (SHLIB_MAPFILES): Remove.
6677         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
6678         $(srcdir)/config/rs6000/darwin-ldouble.c.
6679         * config/rs6000/t-fprules-softfp: Move to
6680         ../libgcc/config/t-softfp-sfdf.
6681         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
6682         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
6683         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
6684         $(srcdir)/config/rs6000/darwin-ldouble.c.
6685         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
6686         * config/score/t-score-softfp: Remove.
6687         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
6688         soft-fp/t-softfp from tmake_file.
6689         (arm*-*-uclinux*): Likewise.
6690         (arm*-*-ecos-elf): Likewise.
6691         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
6692         (arm*-*-rtems*): Likewise.
6693         (arm*-*-elf): Likewise.
6694         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
6695         tmake_file.
6696         (moxie-*-uclinux*): Likewise.
6697         (moxie-*-rtems*): Likewise.
6698         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
6699         tmake_file.
6700         (lm32-*-rtems*): Likewise.
6701         (lm32-*-uclinux*): Likewise.
6702         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
6703         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6704         (powerpc-*-linux*, powerpc64-*-linux*): Remove
6705         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
6706         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
6707         tmake_file.
6708         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
6709         tmake_file.
6710         (tic6x-*-uclinux): Likewise.
6711         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
6712         soft-fp/t-softfp from tmake_file.
6713         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
6714         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
6715         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
6716         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6717         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
6718
6719 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6720
6721         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
6722         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
6723         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
6724         TPBIT, TPBIT_FUNCS.
6725         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
6726         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
6727         Remove.
6728         * config/arm/t-vxworks: Likewise.
6729         * config/arm/t-wince-pe: Likewise.
6730         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
6731         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6732         * config/bfin/t-bfin-elf: Likewise.
6733         * config/bfin/t-bfin-linux: Likewise.
6734         * config/bfin/t-bfin-uclinux: Likewise.
6735         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
6736         Remove.
6737         * config/fr30/t-fr30: Likewise.
6738         * config/frv/t-frv: Likewise.
6739         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
6740         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6741         * config/m32c/t-m32c: Likewise.
6742         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
6743         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6744         * config/mcore/t-mcore: Likewise.
6745         * config/mep/t-mep: Likewise.
6746         * config/microblaze/t-microblaze: Likewise.
6747         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
6748         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6749         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
6750         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6751         * config/mn10300/t-linux: Remove.
6752         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6753         * config/pdp11/t-pdp11: Likewise.
6754         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
6755         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
6756         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6757         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
6758         * config/rs6000/t-aix52: Likewise.
6759         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
6760         $(srcdir)/config/rs6000/ppc64-fp.c.
6761         * config/rs6000/t-fprules-fpbit: Remove.
6762         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
6763         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6764         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
6765         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6766         * config/sparc/t-elf: Likewise.
6767         * config/sparc/t-leon: Likewise.
6768         * config/sparc/t-leon3: Likewise.
6769         * config/spu/t-spu-elf: Likewise.
6770         (DPBIT_FUNCS): Remove.
6771         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
6772         * config/v850/t-v850: Likewise.
6773         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
6774         (avr-*-*): Likewise.
6775         (h8300-*-rtems*): Set libgcc_tm_file.
6776         (h8300-*-elf*): Likewise.
6777         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
6778         tmake_file.
6779         (powerpc-*-eabisim*): Likewise.
6780         (powerpc-*-elf*): Likewise.
6781         (powerpc-*-eabialtivec*): Likewise.
6782         (powerpc-xilinx-eabi*): Likewise.
6783         (powerpc-*-eabi*): Likewise.
6784         (powerpc-*-rtems*): Likewise.
6785         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
6786         (powerpcle-*-elf*): Likewise.
6787         (powerpcle-*-eabisim*): Likewise.
6788         (powerpcle-*-eabi*): Likewise.
6789         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
6790         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
6791         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
6792         Remove.
6793
6794 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6795
6796         * Makefile.in (UNWIND_H): Remove.
6797         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
6798         ../libgcc/Makefile.in.
6799         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
6800         (LIBUNWINDDEP): Remove.
6801         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
6802         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
6803         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
6804         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
6805         Don't copy $(UNWIND_H).
6806         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
6807         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
6808         * aclocal.m4: Regenerate.
6809         * configure: Regenerate.
6810         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
6811         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
6812         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
6813         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
6814         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
6815         * config/arm/libunwind.S, config/arm/pr-support.c,
6816         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
6817         ../libgcc/config/arm.
6818         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
6819         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
6820         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
6821         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
6822         ($(T)frvend$(objext)): Likewise.
6823         * config/ia64/t-glibc (LIB2ADDEH): Remove.
6824         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
6825         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
6826         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
6827         ../libgcc/config/ia64.
6828         * config/ia64/t-hpux (LIB2ADDEH): Remove.
6829         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
6830         * config/ia64/t-vms (LIB2ADDEH): Remove.
6831         * config/ia64/vms.h (UNW_IVMS_MODE,
6832         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
6833         * config/picochip/t-picochip (LIB2ADDEH): Remove.
6834         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
6835         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
6836         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
6837         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
6838         $(srcdir)/../libgcc to refer to unwinder sources.
6839         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
6840         * config/t-darwin (LIB2ADDEH): Remove.
6841         * config/t-freebsd (LIB2ADDEH): Remove.
6842         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
6843         * config/t-libunwind-elf: Move to ../libgcc/config.
6844         * config/t-linux (LIB2ADDEH): Remove.
6845         * config/t-sol2 (LIB2ADDEH): Remove.
6846         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
6847         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
6848
6849 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
6850
6851         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
6852
6853         * doc/invoke.texi: Document core-avx-i.
6854
6855 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6856
6857         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
6858
6859 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
6860
6861         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
6862         result of multiple results reduction when extracting the final
6863         value using scalar code.
6864
6865 2011-08-05  Richard Guenther  <rguenther@suse.de>
6866
6867         PR tree-optimization/49984
6868         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
6869
6870 2011-08-05  Richard Guenther  <rguenther@suse.de>
6871
6872         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
6873         return true for constant integer ranges.
6874         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
6875         BIT_IOR_EXPR handling.
6876
6877 2011-08-04  Kai Tietz  <ktietz@redhat.com>
6878
6879         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
6880         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
6881
6882 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
6883
6884         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
6885         pattern def statement, and its access macro.
6886         (NUM_PATTERNS): Set to 5.
6887         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
6888         pattern def statement.
6889         (vect_transform_loop): Likewise.
6890         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
6891         function vect_recog_over_widening_pattern ().
6892         (vect_operation_fits_smaller_type): New function.
6893         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
6894         Likewise.
6895         (vect_pattern_recog_1): Move the code that marks pattern
6896         statements to vect_mark_pattern_stmts (), and call it.  Update
6897         documentation.
6898         * tree-vect-stmts.c (vect_supportable_shift): New function.
6899         (vect_analyze_stmt): Handle pattern def statement.
6900         (new_stmt_vec_info): Initialize pattern def statement.
6901
6902 2011-08-04  Richard Henderson  <rth@redhat.com>
6903
6904         PR target/49964
6905         * config/i386/i386.c (ix86_expand_call): Don't create nested
6906         PARALLELs for TARGET_VZEROUPPER.
6907         (ix86_split_call_vzeroupper): Fix extraction of the original call.
6908         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
6909         recognize nested PARALLELs.
6910         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
6911         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
6912         *sibcall_value_pop_vzeroupper): Likewise.
6913
6914 2011-08-04  Richard Henderson  <rth@redhat.com>
6915
6916         PR middle-end/49968
6917         * calls.c (expand_call): Use fixup_args_size_notes for
6918         emit_stack_restore.
6919         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
6920         in non-standard modes.
6921
6922 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6923
6924         * gcc.c (self_spec): New variable.
6925         (static_specs): Add self_spec.
6926         (main): Call do_self_spec on "self_spec" specs after reading
6927         user specs files.  Move compare_debug handling right after that.
6928
6929 2011-08-04  Richard Guenther  <rguenther@suse.de>
6930
6931         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
6932         (value_range_nonnegative_p): New function.
6933         (ssa_name_nonnegative_p): Use it.
6934         (value_range_constant_singleton): New function.
6935         (op_with_constant_singleton_value_range): Use it.
6936         (extract_range_from_binary_expr_1): New function, split out from ...
6937         (extract_range_from_binary_expr): ... this.  Remove fallback
6938         constant folding done here.
6939
6940 2011-08-04  Richard Guenther  <rguenther@suse.de>
6941
6942         PR tree-optimization/49806
6943         * tree-vrp.c (op_with_boolean_value_range_p): New function.
6944         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
6945         a new statement for a final conversion to bool.
6946
6947 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
6948
6949         * gengtype-state.c: Include "bconfig.h" if
6950         GENERATOR_FILE is defined, "config.h" otherwise.
6951         * gengtype.c: Likewise.
6952         * gengtype-lex.l: Likewise.
6953         * gengtype-parse.c: Likewise.
6954         * Makefile.in (gengtype-lex.o-warn): New variable.
6955         (plugin_resourcesdir): Likewise.
6956         (plugin_bindir): Likewise.
6957         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
6958         (MOSTLYCLEANFILES): Add gengtype$(exeext).
6959         (native): Depend on gengtype$(exeext) is $enable_plugin
6960         is set to "yes".
6961         (gtype.state): Depend on s-gtype. Use temporary file.
6962         (gengtype-lex.o): New rule.
6963         (gengtype-parse.o): Likewise.
6964         (gengtype-state.o): Likewise.
6965         (gengtype$(exeext)): Likewise.
6966         (install-gengtype): Likewise.
6967         (gengtype.o): Likewise.
6968         (build/gengtype.o): Depend on version.h.
6969         (build/gengtype-state): Depend on double-int.h, version.h,
6970         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
6971         (install-plugin): Depend on install-gengtype.
6972
6973 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
6974
6975         PR middle-end/49905
6976         * tree.h (init_attributes): New prototype.
6977         * attribs.c (init_attributes): No longer static.
6978
6979 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6980
6981         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
6982         maybe_suffix.
6983
6984 2011-08-03   David Li  <davidxl@google.com>
6985
6986         * tree-optimize.c (execute_fixup_cfg): Fix up entry
6987         outgoing edge counts after inlining.
6988
6989 2011-08-03   David Li  <davidxl@google.com>
6990
6991         * profile.c (compute_branch_probabilities): Compute
6992         function frequency after profile annotation.
6993
6994 2011-08-04  Alan Modra  <amodra@gmail.com>
6995
6996         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
6997         use_backchain_to_restore_sp initialisation.
6998         (rs6000_legitimate_offset_address_p): Simplify offset test.
6999
7000 2011-08-03  Richard Henderson  <rth@redhat.com>
7001
7002         * config/spu/spu.md: Use define_c_enum instead of define_constants.
7003         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
7004         (UNSPECV_NOP): New.
7005
7006 2011-08-03  Richard Henderson  <rth@redhat.com>
7007
7008         PR target/34888
7009         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
7010
7011 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
7012
7013         PR tree-optimization/49948
7014         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
7015
7016 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
7017
7018         * config/m32c/m32c.c (class_sizes): Remove.
7019         (reduce_class): Change arguments and return type to reg_class_t.
7020         Change type cc var to HARD_REG_SET. Change type best var to
7021         reg_class_t. Change type best_size var to unsigned int. Remove
7022         initialization class_sizes var. Use reg_class_size array instead
7023         of class_sizes. Use reg_class_contents array instead
7024         of class_contents.
7025
7026 2011-08-03  Richard Guenther  <rguenther@suse.de>
7027
7028         PR middle-end/49958
7029         * fold-const.c (fold_binary_loc): Only associate
7030         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
7031         overflow wraps.
7032
7033 2011-08-03  Alan Modra  <amodra@gmail.com>
7034
7035         PR rtl-optimization/49941
7036         * jump.c (mark_jump_label): Comment.
7037         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
7038         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
7039         (mark_used_flags): Don't mark RETURN.
7040
7041 2011-08-03  Richard Guenther  <rguenther@suse.de>
7042
7043         PR tree-optimization/49938
7044         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
7045         deal with a POLYNOMIAL_CHREC.
7046
7047 2011-08-03  Revital Eres  <revital.eres@linaro.org>
7048
7049         * modulo-sched.c (calculate_stage_count,
7050         calculate_must_precede_follow, get_sched_window,
7051         try_scheduling_node_in_cycle, remove_node_from_ps): Add
7052         declaration.
7053         (update_node_sched_params, set_must_precede_follow, optimize_sc):
7054         New functions.
7055         (reset_sched_times): Call update_node_sched_params.
7056         (sms_schedule): Call optimize_sc.
7057         (get_sched_window): Change function arguments.
7058         (sms_schedule_by_order): Update call to get_sched_window.
7059         Call set_must_precede_follow.
7060         (calculate_stage_count): Add function argument.
7061
7062 2011-08-02  Richard Henderson  <rth@redhat.com>
7063
7064         PR target/49864
7065         PR target/49879
7066         * reg-notes.def (REG_ARGS_SIZE): New.
7067         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
7068         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
7069         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
7070         different stack levels.
7071         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
7072         (maybe_move_args_size_note): New.
7073         (combine_stack_adjustments_for_block): Use it.
7074         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
7075         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
7076         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
7077         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
7078         (cur_cfa): New.
7079         (queued_args_size): Remove.
7080         (add_cfi_args_size): Assert size is non-negative.
7081         (stack_adjust_offset, dwarf2out_args_size): Remove.
7082         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
7083         (notice_args_size, notice_eh_throw): New.
7084         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
7085         (dwarf2out_frame_debug_adjust_cfa): Likewise.
7086         (dwarf2out_frame_debug_cfa_offset): Likewise.
7087         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
7088         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
7089         (change_cfi_row): Don't emit args_size.
7090         (maybe_record_trace_start_abnormal): Split out from ...
7091         (maybe_record_trace_start): Here.  Set args_size_undefined.
7092         (create_trace_edges): Update to match.
7093         (scan_trace): Handle REG_ARGS_SIZE.
7094         (connect_traces): Connect args_size between EH insns.
7095         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
7096         * explow.c (suppress_reg_args_size): New.
7097         (adjust_stack_1): Split out from ...
7098         (adjust_stack): ... here.
7099         (anti_adjust_stack): Use it.
7100         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
7101         * expr.c (mem_autoinc_base): New.
7102         (fixup_args_size_notes): New.
7103         (emit_single_push_insn_1): Rename from emit_single_push_insn.
7104         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
7105         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
7106         * reload1.c (reload_as_needed): Likewise.
7107         * rtl.h (fixup_args_size_notes): Declare.
7108
7109 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
7110
7111         PR bootstrap/49914
7112         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
7113         of abs.
7114         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
7115         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
7116
7117 2011-08-02  Richard Henderson  <rth@redhat.com>
7118
7119         * config/h8300/h8300.c (push, pop): Return the insn.
7120         (h8300_swap_into_er6): Generate correct unwind info.
7121         (h8300_swap_out_of_er6): Likewise.
7122         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
7123         complex cfa expression.
7124         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
7125
7126 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7127
7128         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
7129
7130 2011-08-02  Richard Henderson  <rth@redhat.com>
7131
7132         PR target/49878
7133         * config/h8300/h8300.c (h8300_move_ok): New.
7134         * config/h8300/h8300-protos.h: Declare it.
7135         * config/h8300/h8300.md (P): New mode iterator.
7136         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
7137         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
7138         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
7139         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
7140         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
7141         and pushqi1_h8300hs_normal; use PRE_MODIFY and
7142         register_no_sp_elim_operand.
7143         (*pushhi1_h8300hs_<P>): Similarly.
7144         (pushqi1, pushhi1, pushhi1_h8300): Remove.
7145         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
7146
7147 2011-08-02  Richard Henderson  <rth@redhat.com>
7148
7149         PR target/49881
7150         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
7151
7152 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7153
7154         * c-parser.c (enum c_parser_prec): New enum, moved from within
7155         c_parser_binary_expression.
7156         (c_parser_binary_expression): Add PREC argument.  Stop parsing
7157         if operator has lower or equal precedence than PREC.
7158         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
7159         callers.
7160         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
7161         Adjust c_finish_omp_atomic caller.
7162         (c_parser_omp_taskyield): New function.
7163         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
7164         (c_parser_omp_clause_name): Handle final and mergeable clauses.
7165         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
7166         functions.
7167         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
7168         and PRAGMA_OMP_CLAUSE_MERGEABLE.
7169         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
7170         (c_parser_omp_clause_reduction): Handle min and max.
7171         * c-typeck.c (c_finish_omp_clauses): Don't complain about
7172         const qualified predetermined vars in firstprivate clause.
7173         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7174         Handle MIN_EXPR and MAX_EXPR.
7175         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
7176         and OMP_CLAUSE_MERGEABLE.
7177         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
7178         and OMP_ATOMIC_CAPTURE_NEW.
7179         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
7180         OMP_CLAUSE_MERGEABLE.
7181         (omp_clause_code_name): Likewise.
7182         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7183         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
7184         and OMP_CLAUSE_MERGEABLE.
7185         (OMP_CLAUSE_FINAL_EXPR): Define.
7186         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
7187         OMP_CLAUSE_MERGEABLE.
7188         (expand_task_call): Likewise.
7189         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
7190         (expand_omp_atomic_fetch_op): Handle cases where old or new
7191         value is needed afterwards.
7192         (expand_omp_atomic): Call expand_omp_atomic_load resp.
7193         expand_omp_atomic_store.
7194         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
7195         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
7196         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
7197         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7198         * tree-nested.c (convert_nonlocal_omp_clauses,
7199         convert_local_omp_clauses): Likewise.
7200         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
7201         OMP_ATOMIC_CAPTURE_NEW): New.
7202         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
7203         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
7204         New inlines.
7205         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
7206         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
7207         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
7208
7209 2011-08-02  Kai Tietz  <ktietz@redhat.com>
7210
7211         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
7212         boolean-type.
7213         (ssa_forward_propagate_and_combine): Interprete result of
7214         forward_propagate_comparison.
7215         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
7216         boolean-typed operands for comparisons.
7217
7218 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
7219
7220         * config/avr/libgcc.S: Gather related function in the
7221         same input section.
7222         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7223         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
7224         references.
7225         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
7226         __udivmodsi4, __divmodsi4, __prologue_saves__,
7227         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
7228         __do_copy_data, __do_clear_bss, __do_global_ctors,
7229         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
7230
7231 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
7232
7233         PR target/47766
7234         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
7235         (stack_protect_test): The pattern compares ptr_mode value.
7236
7237 2011-08-02  Alan Modra  <amodra@gmail.com>
7238
7239         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
7240         note for save_LR_around_toc_setup sequence.
7241
7242 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7243
7244         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
7245
7246 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
7247             Joseph Myers  <joseph@codesourcery.com>
7248
7249         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
7250         * hwint.c: Include diagnostic-core.h.
7251         (abs_hwi): New.
7252         (gcd): Moved here...
7253         (pos_mul_hwi): New.
7254         (mul_hwi): New.
7255         (least_common_multiple): Moved here...
7256         * hwint.h (gcd): ... from here.
7257         (least_common_multiple): ... from here.
7258         (HOST_WIDE_INT_MIN): New.
7259         (HOST_WIDE_INT_MAX): New.
7260         (abs_hwi): Declared.
7261         (gcd): Declared.
7262         (pos_mul_hwi): Declared.
7263         (mul_hwi): Declared.
7264         (least_common_multiple): Declared.
7265         * omega.c (check_pos_mul): Removed.
7266         (check_mul): Removed.
7267         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
7268         mul_hwi instead of check_mul.
7269
7270 2011-08-01  Richard Henderson  <rth@redhat.com>
7271
7272         PR target/49881
7273         * config/avr/avr.h (PUSH_ROUNDING): New.
7274         * config/avr/avr.md (pushqi1): Rename from *pushqi.
7275         (*pushhi, *pushsi, *pushsf): Remove.
7276         (MPUSH): New mode iterator.
7277         (push<MPUSH>1): New expander.
7278
7279 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
7280
7281         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
7282         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
7283         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
7284         mmix_preferred_output_reload_class): Remove.
7285         * config/mmix/mmix.c (mmix_preferred_reload_class,
7286         mmix_preferred_output_reload_class): Make static. Change rclass
7287         argument and return type to reg_class_t.
7288         (TARGET_PREFERRED_RELOAD_CLASS,
7289         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7290
7291 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
7292
7293         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
7294         handling.
7295
7296 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7297
7298         PR target/47766
7299         * config/i386/i386.md (PTR): New.
7300         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
7301         (stack_protect_test): Likewise.
7302         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
7303         (stack_tls_protect_set_<mode>): Likewise.
7304         (stack_tls_protect_test_<mode>): Likewise.
7305
7306 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         PR target/49927
7309         * config/i386/i386.c (ix86_address_subreg_operand): New.
7310         (ix86_decompose_address): Use ix86_address_subreg_operand.
7311         (ix86_legitimate_address_p): Do not assert that subregs satisfy
7312         register_no_elim_operand in DImode.
7313
7314 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
7315
7316         PR tree-optimization/49926
7317         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
7318         in a chain doesn't have uses both inside and outside the loop.
7319
7320 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7321
7322         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
7323         * config/avr/avr-devices.c (avr_mcu_types): Use it.
7324         * config/avr/avr-mcus.def (AVR_MCU): Use it.
7325         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
7326         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
7327         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
7328         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
7329         to detect if XJMP must not be skipped.
7330
7331 2011-08-02  Alan Modra  <amodra@gmail.com>
7332
7333         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
7334         Delete.
7335         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
7336         (rs6000_emit_prologue): Don't prematurely return when
7337         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
7338         save_toc_in_prologue case.
7339         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
7340         calls_alloca.
7341
7342 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
7343
7344         * config/avr/avr-devices.c: Delete SVN property svn:executable.
7345         * config/avr/predicates.md: Ditto.
7346         * config/avr/driver-avr.c: Ditto.
7347         * config/avr/genopt.sh: Set SVN property svn:executable to *.
7348
7349 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7350
7351         * calls.c (emit_library_call_value_1): Declare size only if
7352         BLOCK_REG_PADDING is defined.
7353
7354 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
7355
7356         PR target/49547
7357         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
7358         (x86_64-*-*): Likewise.
7359         * config/i386/i386.opt (mlzcnt): New.
7360         * config/i386/abmintrin.h: File removed.
7361         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
7362         * config/i386/lzcntintrin.h: ... here.  New file.
7363         (__lzcnt): Rename to ...
7364         (__lzcnt32): ... this.
7365         * config/i386/bmiintrin.h (head): Update copyright year.
7366         (__lzcnt_u16): Removed.
7367         (__lzcnt_u32): Likewise.
7368         (__lzcnt_u64): Likewise.
7369         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
7370         is defined, remove abmintrin.h.
7371         * config/i386/cpuid.h (bit_LZCNT): New.
7372         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7373         LZCNT feature.
7374         * config/i386/i386-c.c (ix86_target_macros_internal): Define
7375         __LZCNT__ if needed.
7376         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
7377         (ix86_option_override_internal): Handle LZCNT option.
7378         (ix86_valid_target_attribute_inner_p): Likewise.
7379         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
7380         * config/i386/i386.h (TARGET_LZCNT): New.
7381         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
7382         * config/i386/i386.md (clz<mode>2): Update insn constraint.
7383         (clz<mode>2_lzcnt): Likewise.
7384         * doc/invoke.texi: Mention -mlzcnt option.
7385         * doc/extend.texi: Likewise.
7386
7387 2011-08-01  Julian Brown  <julian@codesourcery.com>
7388
7389         * configure.ac (fixed-point): Add ARM support.
7390         * configure: Regenerate.
7391         * config/arm/arm.c (arm_fixed_mode_set): New struct.
7392         (arm_set_fixed_optab_libfunc): New.
7393         (arm_set_fixed_conv_libfunc): New.
7394         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
7395         ARM-specific names.
7396         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
7397         return values in SImode.
7398         (arm_return_in_msb): Return fixed-point types in the msb.
7399         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
7400         upwards.
7401         (arm_scalar_mode_supported_p): Support fixed-point modes.
7402         (arm_vector_mode_supported_p): Support vector fixed-point modes.
7403         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
7404         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
7405         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
7406         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
7407         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
7408         New mode iterators.
7409         (qaddsub_suf): New mode attribute.
7410         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
7411         vector modes.
7412         * config/arm/predicates.md (sat_shift_operator): New predicate.
7413         * config/arm/arm-fixed.md: New.
7414         * config/arm/arm.md: Include arm-fixed.md.
7415         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
7416
7417 2011-08-01  Julian Brown  <julian@codesourcery.com>
7418
7419         * calls.c (emit_library_call_value_1): Support padding for libcall
7420         arguments and return values.
7421         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
7422         downwards in big-endian mode.
7423
7424 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7425
7426         PR debug/49887
7427         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
7428         * config/sol2-protos.h: Likewise.
7429         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
7430         solaris_code_end.
7431         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
7432         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
7433         solaris_file_end.
7434         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
7435
7436 2011-08-01  Julian Brown  <julian@codesourcery.com>
7437
7438         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
7439
7440 2011-08-01  Julian Brown  <julian@codesourcery.com>
7441
7442         * final.c (output_addr_const): Print fixed-point constants as
7443         decimal not hex.
7444
7445 2011-08-01  Richard Guenther  <rguenther@suse.de>
7446
7447         * stor-layout.c (initialize_sizetypes): Properly sign-extend
7448         bitsiztype TYPE_MAX_VALUE.
7449
7450 2011-08-01  Julian Brown  <julian@codesourcery.com>
7451
7452         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
7453         comparison helpers.
7454
7455 2011-07-31  Richard Henderson  <rth@redhat.com>
7456
7457         * config/h8300/crti.asm: Add flags to .section directive.
7458         * config/h8300/crtn.asm: Likewise.
7459
7460 2011-07-31  Richard Henderson  <rth@redhat.com>
7461
7462         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
7463         * tree.c (build_common_tree_nodes): Likewise.
7464
7465 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7466
7467         PR target/49880
7468         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
7469         (divsi3_i1): Likewise.
7470
7471 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7472
7473         PR tree-optimization/49749
7474         * tree-ssa-reassoc.c (get_rank): New forward declaration.
7475         (PHI_LOOP_BIAS): New macro.
7476         (phi_rank): New function.
7477         (loop_carried_phi): Likewise.
7478         (propagate_rank): Likewise.
7479         (get_rank): Add calls to phi_rank and propagate_rank.
7480
7481 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
7482
7483         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
7484         of TARGET_64BIT.
7485         (PTRDIFF_TYPE): Likewise.
7486
7487 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
7488
7489         PR target/49920
7490         * config/i386/i386.md (strset): Do not expand strset_singleop
7491         when %eax or $edi are fixed.
7492         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
7493         (*strsetsi_1): Ditto.
7494         (*strsethi_1): Ditto.
7495         (*strsetqi_1): Ditto.
7496         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
7497         (*rep_stossi): Ditto.
7498         (*rep_stosqi): Ditto.
7499         (*strlenqi_1): Ditto.
7500         (cmpstrnsi): Also fail when %ecx is fixed.
7501         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
7502         (*cmpstrnqi_1): Ditto.
7503         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
7504         (*strmovsi_1): Ditto.
7505         (*strmovhi_1): Ditto.
7506         (*strmovqi_1): Ditto.
7507         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
7508         (*rep_movsi): Ditto.
7509         (*rep_movqi): Ditto.
7510
7511 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
7512
7513         PR target/47908
7514         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
7515         Disable instruction scheduling for non-ColdFire targets.
7516         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7517
7518 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7519
7520         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
7521         of anti-dep edge from a branch.
7522         (add_cross_iteration_register_deps): Create anti-dep edge from
7523         a branch.
7524
7525 2011-07-31  Revital Eres  <revital.eres@linaro.org>
7526
7527         * modulo-sched.c: Change comment.
7528         (reset_sched_times): Fix print message.
7529         (print_partial_schedule): Add print info.
7530
7531 2011-07-31  Tom de Vries  <tom@codesourcery.com>
7532
7533         PR middle-end/43513
7534         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
7535         get_object_alignment and TYPE_ALIGN.
7536
7537 2011-07-30  Tom de Vries  <tom@codesourcery.com>
7538
7539         PR middle-end/43513
7540         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
7541         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
7542
7543 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7544
7545         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
7546         <sys/sbd.h>.
7547         (cpu_types): New array.
7548         (cputype): New function.
7549         (host_detect_local_cpu): Only define buf, f if !__sgi__.
7550         Use scaninvent instead of /proc/cpuinfo if __sgi__.
7551         * config.host: Also use driver-native.o, mips/x-native on
7552         mips-sgi-irix*.
7553         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
7554         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
7555         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
7556
7557 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7558
7559         PR middle-end/49897
7560         PR middle-end/49898
7561         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
7562         in nested parallel and outer is a gimple_reg, mark it as addressable
7563         and set its bit in task_shared_vars bitmap too.
7564
7565 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7566
7567         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
7568
7569 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7570
7571         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
7572         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
7573         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
7574         AMASK_LOCKPFTCHOK): Define.
7575         (host_detect_local_cpu): Remove buf, f, cpu_names.
7576         Define cpu_types, implver, amask.
7577         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
7578         native CPU.
7579         * config.host: Also use driver-alpha.o, alpha/x-alpha on
7580         alpha*-dec-osf*.
7581         * config/alpha/osf5.h [__alpha__ || __alpha]
7582         (host_detect_local_cpu): Declare.
7583         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
7584         (DRIVER_SELF_SPECS): Define.
7585
7586 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
7587
7588         PR target/47715
7589         * config/i386/i386.md (*load_tp_x32): New.
7590         (*load_tp_x32_zext): Ditto.
7591         (*add_tp_x32): Ditto.
7592         (*add_tp_x32_zext): Ditto.
7593         (*load_tp_<mode>): Disable for TARGET_X32 targets.
7594         (*add_tp_<mode>): Ditto.
7595         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
7596         ptr_mode and convert to Pmode if needed.
7597
7598 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7599
7600         PR target/49687
7601         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
7602         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
7603         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
7604         Add X to register footprint: Clobber r26/r27.
7605
7606 2011-07-29  Richard Guenther  <rguenther@suse.de>
7607
7608         * builtins.c (fold_builtin_signbit): Build the comparison
7609         with a proper type.
7610
7611 2011-07-29  Richard Guenther  <rguenther@suse.de>
7612
7613         PR tree-optimization/49893
7614         * tree-predcom.c (suitable_reference_p): Volatile references
7615         are not suitable.
7616
7617 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
7618
7619         PR target/49313
7620         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7621         (__ctzsi2): Result for 0 may be undefined.
7622         (__ctzhi2): Result for 0 may be undefined.
7623         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7624         (__popcountsi2): Ditto. And don't clobber r26.
7625         (__popcountdi2): Ditto. And don't clobber r27.
7626         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7627         (parityhi2): New expand.
7628         (paritysi2): New expand.
7629         (popcounthi2): New expand.
7630         (popcountsi2): New expand.
7631         (clzhi2): New expand.
7632         (clzsi2): New expand.
7633         (ctzhi2): New expand.
7634         (ctzsi2): New expand.
7635         (ffshi2): New expand.
7636         (ffssi2): New expand.
7637         (copysignsf3): New insn.
7638         (bswapsi2): New expand.
7639         (*parityhi2.libgcc): New insn.
7640         (*parityqihi2.libgcc): New insn.
7641         (*paritysihi2.libgcc): New insn.
7642         (*popcounthi2.libgcc): New insn.
7643         (*popcountsi2.libgcc): New insn.
7644         (*popcountqi2.libgcc): New insn.
7645         (*popcountqihi2.libgcc): New insn-and-split.
7646         (*clzhi2.libgcc): New insn.
7647         (*clzsihi2.libgcc): New insn.
7648         (*ctzhi2.libgcc): New insn.
7649         (*ctzsihi2.libgcc): New insn.
7650         (*ffshi2.libgcc): New insn.
7651         (*ffssihi2.libgcc): New insn.
7652         (*bswapsi2.libgcc): New insn.
7653
7654 2011-07-29  Richard Guenther  <rguenther@suse.de>
7655
7656         * tree-vrp.c (get_value_range): Only set parameter default
7657         definitions to varying, leave others at undefined.
7658         (extract_range_from_binary_expr): Fix undefined handling.
7659         (vrp_visit_phi_node): Handle merged undefined state.
7660
7661 2011-07-29  Wei Guozhi  <carrot@google.com>
7662
7663         PR rtl-optimization/49799
7664         * combine.c (make_compound_operation): Check if the bit field is valid
7665         before change it to bit field extraction.
7666
7667 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7668
7669         PR rtl-optimization/49891
7670         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
7671         newly created returnjumps.
7672
7673 2011-07-28  DJ Delorie  <dj@redhat.com>
7674
7675         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
7676         local frame in a naked function, and produce a suitable error for
7677         that specific case.
7678
7679         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
7680         registers to be reloaded in HI classes when the target is HI.
7681
7682 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7683
7684         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
7685         bound_one, bound_two.
7686
7687 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7688
7689         PR middle-end/48648
7690         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
7691         CLAST assignments.
7692         (translate_clast): Same.
7693         (translate_clast_assignment): New.
7694
7695 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
7696
7697         PR tree-optimization/49876
7698         * sese.c (rename_uses): Do not return false on gloog_error: set
7699         the new_expr to integer_zero_node and continue code generation.
7700         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
7701
7702 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7703
7704         PR debug/49846
7705         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
7706         arguments also check if they aren't initialized with a MODE_INT
7707         mode of the same size.
7708
7709 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
7710
7711         * expr.c (get_bit_range): Handle *MEM_REF's.
7712
7713 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
7714
7715         * rtlanal.c (tablejump_p): False for returns.
7716         * reorg.c (first_active_target_insn): New static function.
7717         (find_end_label): Set JUMP_LABEL for a new returnjump.
7718         (optimize_skip, get_jump_flags, rare_destination,
7719         mostly_true_jump, get_branch_condition,
7720         steal_delay_list_from_target, own_thread_p,
7721         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
7722         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
7723         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
7724         * jump.c (delete_related_insns): Likewise.
7725         (jump_to_label_p): New function.
7726         (redirect_target): New static function.
7727         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
7728         (redirect_jump_1): Assert that the new label is nonnull.
7729         (redirect_jump): Likewise.
7730         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
7731         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
7732         exit block.
7733         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
7734         changed.  Ensure that the right label is passed to redirect_jump.
7735         * function.c (emit_return_into_block,
7736         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
7737         ret_rtx in their JUMP_LABEL.
7738         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
7739         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
7740         pass ret_rtx as label.
7741         * cfglayout.c (fixup_reorder_chain): Use
7742         force_nonfallthru_and_redirect rather than force_nonfallthru.
7743         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
7744         * rtl.h (ANY_RETURN_P): New macro.
7745         (jump_to_label_p): Declare.
7746         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
7747         JUMP_LABELs.
7748         (mark_target_live_regs): Likewise.
7749         * basic-block.h (force_nonfallthru_and_redirect): Declare.
7750         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
7751         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
7752         alpha_tablejump_best_label): Remove functions.
7753         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
7754         alpha_tablejump_best_label): Remove declarations.
7755         * config/sh/sh.c (barrier_align, split_branches): Adjust for
7756         ret_rtx in JUMP_LABELs.
7757         * config/arm/arm.c (is_jump_table): Likewise.
7758
7759 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7760
7761         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
7762         special predicate.  Remove explicit mode checks.
7763
7764 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
7765
7766         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
7767         DW_AT_data_member_location containing just DW_OP_plus_uconst.
7768
7769         PR debug/49871
7770         * dwarf2out.c (size_of_die, value_format, output_die): Use
7771         DW_FORM_udata instead of DW_FORM_data[48] for
7772         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
7773
7774 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7775
7776         * config/i386/i386.md (*tls_global_dynamic_64): Update
7777         length attribute.
7778
7779 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7780
7781         PR target/47715
7782         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
7783         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
7784         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
7785         (tls_dynamic_gnu2_64): Ditto.
7786         (*tls_dynamic_gnu2_lea_64): Ditto.
7787         (*tls_dynamic_gnu2_call_64): Ditto.
7788         (*tls_dynamic_gnu2_combine_64): Ditto.
7789
7790 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7791
7792         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
7793
7794 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7795
7796         PR target/47364
7797         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
7798
7799 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7800
7801         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
7802         before the core constraints. Adjust attributes.
7803         ("*thumb2_movdf_vfp"): Likewise.
7804
7805 2011-07-28  Kai Tietz  <ktietz@redhat.com>
7806
7807         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
7808         (simplify_truth_ops_using_ranges): Likewise.
7809         (build_assert_expr_for): Likewise.
7810         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
7811         and handle BIT_NOT_EXPR for truth-operation.
7812
7813 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7814
7815         PR target/49313
7816         Undo r176835 from trunk
7817         2011-07-27  Georg-Johann Lay
7818
7819 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
7820
7821         PR target/49687
7822         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
7823         Add _muluhisi3, _mulshisi3, _usmulhisi3.
7824         * config/avr/libgcc.S (__mulsi3): Rewrite.
7825         (__mulhisi3): Rewrite.
7826         (__umulhisi3): Rewrite.
7827         (__usmulhisi3): New.
7828         (__muluhisi3): New.
7829         (__mulshisi3): New.
7830         (__mulohisi3): New.
7831         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
7832         declare.
7833         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
7834         (pseudo_register_or_const_int_operand): New.
7835         (combine_pseudo_register_operand): New.
7836         (u16_operand): New.
7837         (s16_operand): New.
7838         (o16_operand): New.
7839         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
7840         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
7841         (any_extend, any_extend2): New code iterators.
7842         (extend_prefix): New code attribute.
7843         (mulsi3): Rewrite. Turn insn to expander.
7844         (mulhisi3): Ditto.
7845         (umulhisi3): Ditto.
7846         (usmulhisi3): New expander.
7847         (*mulsi3): New insn-and-split.
7848         (mulu<mode>si3): New insn-and-split.
7849         (muls<mode>si3): New insn-and-split.
7850         (mulohisi3): New insn-and-split.
7851         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
7852         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
7853         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
7854         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
7855         insn-and-split.
7856         (*mulsi3_call): Rewrite.
7857         (*mulhisi3_call): Rewrite.
7858         (*umulhisi3_call): Rewrite.
7859         (*usmulhisi3_call): New insn.
7860         (*muluhisi3_call): New insn.
7861         (*mulshisi3_call): New insn.
7862         (*mulohisi3_call): New insn.
7863         (extendqihi2): Use combine_pseudo_register_operand as predicate
7864         for operand 1.
7865         (extendqisi2): Ditto.
7866         (zero_extendqihi2): Ditto.
7867         (zero_extendqisi2): Ditto.
7868         (zero_extendhisi2): Ditto.
7869         (extendhisi2): Ditto. Don't early-clobber operand 0.
7870
7871 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
7872
7873         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
7874
7875 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7876
7877         PR tree-optimization/49471
7878         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
7879         iv only when the largest type is unsigned.  Do not call
7880         lang_hooks.types.type_for_size.
7881
7882 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7883
7884         PR middle-end/45450
7885         * graphite-poly.c (apply_poly_transforms): Disable legality check
7886         after an openscop read.
7887
7888 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
7889
7890         PR middle-end/47691
7891         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
7892         copy_bb_and_scalar_dependences.
7893         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
7894         (graphite_copy_stmts_from_block): Update call to rename_uses.
7895         (copy_bb_and_scalar_dependences): Update call to
7896         graphite_copy_stmts_from_block.
7897         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
7898
7899 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
7900
7901         PR target/49313
7902         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
7903         (__ctzsi2): Result for 0 may be undefined.
7904         (__ctzhi2): Result for 0 may be undefined.
7905         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
7906         (__popcountsi2): Ditto. And don't clobber r26.
7907         (__popcountdi2): Ditto. And don't clobber r27.
7908         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
7909         (parityhi2): New expand.
7910         (paritysi2): New expand.
7911         (popcounthi2): New expand.
7912         (popcountsi2): New expand.
7913         (clzhi2): New expand.
7914         (clzsi2): New expand.
7915         (ctzhi2): New expand.
7916         (ctzsi2): New expand.
7917         (ffshi2): New expand.
7918         (ffssi2): New expand.
7919         (copysignsf3): New insn.
7920         (bswapsi2): New expand.
7921         (*parityhi2.libgcc): New insn.
7922         (*parityqihi2.libgcc): New insn.
7923         (*paritysihi2.libgcc): New insn.
7924         (*popcounthi2.libgcc): New insn.
7925         (*popcountsi2.libgcc): New insn.
7926         (*popcountqi2.libgcc): New insn.
7927         (*popcountqihi2.libgcc): New insn-and-split.
7928         (*clzhi2.libgcc): New insn.
7929         (*clzsihi2.libgcc): New insn.
7930         (*ctzhi2.libgcc): New insn.
7931         (*ctzsihi2.libgcc): New insn.
7932         (*ffshi2.libgcc): New insn.
7933         (*ffssihi2.libgcc): New insn.
7934         (*bswapsi2.libgcc): New insn.
7935
7936 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7937
7938         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
7939         the mode of symbolic_opreand RTXes.
7940
7941 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
7942
7943         * config/i386/predicates.md (x86_64_movabs_operand): Return false
7944         for pic_32bit_operand RTXes.
7945         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
7946         in DImode.
7947
7948 2011-07-27  Kai Tietz  <ktietz@redhat.com>
7949
7950         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
7951         for 32-bit, too.
7952         (ix86_handle_abi_attribute): Allow function attributes
7953         ms_abi/sysv_abi in 32-bit mode, too.
7954         * doc/extend.texi: Adjust attribute documentation.
7955
7956         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
7957         expression handling.
7958         (and_var_with_comparison_1): Likewise.
7959
7960 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
7961
7962         * params.h (ALLOW_STORE_DATA_RACES): New.
7963         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
7964         * Makefile.in (expr.o): Depend on PARAMS_H.
7965         * machmode.h (get_best_mode): Add argument.
7966         * fold-const.c (optimize_bit_field_compare): Add argument to
7967         get_best_mode.
7968         (fold_truthop): Same.
7969         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
7970         * expr.c (emit_group_store): Same.
7971         (copy_blkmode_from_reg): Same.
7972         (write_complex_part): Same.
7973         (optimize_bitfield_assignment_op): Add argument.
7974         Add argument to get_best_mode.
7975         (get_bit_range): New.
7976         (expand_assignment): Calculate maxbits and pass it down accordingly.
7977         (store_field): New argument.
7978         (expand_expr_real_2): New argument to store_field.  Include params.h.
7979         * expr.h (store_bit_field): New argument.
7980         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
7981         into account maxbits.
7982         * calls.c (store_unaligned_arguments_into_pseudos): New argument
7983         to store_bit_field.
7984         * expmed.c (store_bit_field_1): New argument.  Use it.
7985         (store_bit_field): Same.
7986         (store_fixed_bit_field): Same.
7987         (store_split_bit_field): Same.
7988         (extract_bit_field_1): Pass new argument to get_best_mode.
7989         (extract_bit_field): Same.
7990         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
7991         * doc/invoke.texi: Document parameter allow-store-data-races.
7992
7993 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
7994
7995         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7996
7997 2011-07-27  Kai Tietz  <ktietz@redhat.com>
7998
7999         * tree-vrp.c (extract_range_from_binary_expr): Remove
8000         TRUTH-binary cases and add new bitwise-cases.
8001         (extract_range_from_assignment): Likewise.
8002         (register_edge_assert_for_1): Likeiwise.
8003         (register_edge_assert_for): Likewise.
8004         (simplify_truth_ops_using_ranges): Likewise.
8005         (simplify_stmt_using_ranges): Likewise.
8006
8007 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
8008
8009         PR target/47372
8010         * config/i386/i386.c (ix86_delegitimize_address): Call
8011         simplify_gen_subreg for PIC with mode of x only if modes of
8012         x and orig_x are different.
8013
8014 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
8015
8016         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
8017         to GC allocated copy of the string.
8018         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
8019         before .debug_line, not after it.
8020
8021 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8022
8023         PR middle-end/47046
8024         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
8025         evolution_function_is_affine_p on CHREC_RIGHT.
8026
8027 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8028
8029         * tree-data-ref.c (max_stmt_executions_tree): Do not call
8030         lang_hooks.types.type_for_size.
8031
8032 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8033
8034         PR middle-end/47653
8035         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
8036         loops using wrapping semantics.
8037
8038 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
8039
8040         PR middle-end/48805
8041         * tree-scalar-evolution.c (instantiate_scev_r): Return
8042         chrec_dont_know for ADDR_EXPR.
8043
8044 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8045             H.J. Lu  <hongjiu.lu@intel.com>
8046
8047         PR target/47369
8048         PR target/49853
8049         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
8050         if legitimize_tls_address returned operand in wrong mode. Allow
8051         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
8052         if legitimize_pic_address returned operand in wrong mode.
8053
8054 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8055
8056         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
8057         return false for invariants.
8058
8059 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8060
8061         * config/i386/i386.md (add->lea splitter): Implement using SWI
8062         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
8063         (add->lea zext splitter): Change operand 2 predicate to
8064         x86_64_nonmemory_operand.
8065
8066 2011-07-26  Richard Guenther  <rguenther@suse.de>
8067
8068         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
8069         frequency makes everything hot.
8070
8071 2011-07-26  Richard Guenther  <rguenther@suse.de>
8072
8073         PR tree-optimization/49840
8074         * tree-vrp.c (range_fits_type_p): Properly handle full
8075         double-int precision.
8076
8077 2011-07-26  Martin Jambor  <mjambor@suse.cz>
8078
8079         PR bootstrap/49786
8080         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
8081         counts.
8082         (update_specialized_profile): Likewise.
8083
8084 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
8085             H.J. Lu  <hongjiu.lu@intel.com>
8086
8087         PR target/47381
8088         PR target/49832
8089         PR target/49833
8090         * config/i386/i386.md (i): Change SImode attribute to "e".
8091         (g): Change SImode attribute to "rme".
8092         (di): Change SImode attribute to "nF".
8093         (general_operand): Change SImode attribute to x86_64_general_operand.
8094         (general_szext_operand): Change SImode attribute to
8095         x86_64_szext_general_operand.
8096         (immediate_operand): Change SImode attribute to
8097         x86_64_immediate_operand.
8098         (nonmemory_operand): Change SImode attribute to
8099         x86_64_nonmemory_operand.
8100         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
8101         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
8102         (*lea_1): Use SWI48 mode iterator.
8103         (*lea_1_zext): New insn pattern.
8104         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
8105         (*bt<mode>): Ditto.
8106         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
8107         Update operand constraints.
8108         (addsi_1_zext): Ditto.
8109         (*add<mode>2): Ditto.
8110         (*addsi_3_zext): Ditto.
8111         (*subsi_1_zext): Ditto.
8112         (*subsi_2_zext): Ditto.
8113         (*subsi_3_zext): Ditto.
8114         (*addsi3_carry_zext): Ditto.
8115         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
8116         (*mulsi3_1_zext): Ditto.
8117         (*andsi_1): Ditto.
8118         (*andsi_1_zext): Ditto.
8119         (*andsi_2_zext): Ditto.
8120         (*<any_or:code>si_1_zext): Ditto.
8121         (*<any_or:code>si_2_zext): Ditto.
8122         (*test<mode>_1): Use <general_operand> predicate for operand 1.
8123         (*and<mode>_2): Ditto.
8124         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
8125         (add->lea splitter): Check operand modes in insn constraint.  Extend
8126         operands less than SImode wide to SImode.
8127         (add->lea zext splitter): Do not extend input operands to DImode.
8128         (*lea_general_1): Handle only QImode and HImode operands.
8129         (*lea_general_2): Ditto.
8130         (*lea_general_3): Ditto.
8131         (*lea_general_1_zext): Remove.
8132         (*lea_general_2_zext): Ditto.
8133         (*lea_general_3_zext): Ditto.
8134         (*lea_general_4): Check operand modes in insn constraint.  Extend
8135         operands less than SImode wide to SImode.
8136         (ashift->lea splitter): Ditto.
8137         * config/i386/i386.c (ix86_print_operand_address): Print address
8138         registers with 'q' modifier on 64bit targets.
8139         * config/i386/predicates.md (pic_32bit_opreand): Define as special
8140         predicate.  Reject non-SI and non-DI modes.
8141
8142 2011-07-25  Andrew Pinski  <apinski@cavium.com>
8143
8144         PR tree-opt/49671
8145         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
8146         TREE_THIS_NOTRAP into the inner most MEM_REF.
8147         Always copy TREE_THIS_VOLATILE.
8148         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
8149         arguments are not volatile references.
8150
8151 2011-07-25  Richard Henderson  <rth@redhat.com>
8152
8153         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
8154         * final.c (final_scan_insn): Don't test for it.
8155         (rest_of_clean_state): Likewise.
8156
8157 2011-07-25  Richard Henderson  <rth@redhat.com>
8158
8159         PR debug/49841
8160         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
8161         (emit_frame_save): Likewise.
8162         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
8163         insn onto a dummy blockage insn after the join label.
8164
8165 2011-07-25  Richard Henderson  <rth@redhat.com>
8166
8167         * dwarf2cfi.c (dw_trace_info): Add ID member.
8168         (get_trace_index): Remove.  Change users to use ID member.
8169         (before_next_cfi_note): New.
8170         (connect_traces): Remove unreachable traces before the main loop.
8171         Look across one trace and generate remember/restore_state if needed.
8172
8173 2011-07-25  Richard Henderson  <rth@redhat.com>
8174
8175         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
8176
8177 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
8178
8179         * genattr.c (write_upcase, gen_attr <enum definition writing>):
8180         Move to ...
8181         * genattr-common.c ... here.
8182         (main): Call gen_attr.
8183         * optc-gen.awk: Make generated program include insn-attr-common.h .
8184         * Makefile.in (oprions.o): Depend on insn-attr-common.h
8185
8186 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8187
8188         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8189         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8190         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
8191         m32c_print_operand, m32c_print_operand_address): Remove.
8192         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
8193         Change return type to bool. Change argument type to bool.
8194         (m32c_print_operand, m32c_print_operand_address): Make static.
8195         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8196         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8197
8198 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8199
8200         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
8201         attributes): Document mmap.
8202
8203 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
8204
8205         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8206         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
8207         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
8208         mmix_print_operand, mmix_print_operand_address): Remove.
8209         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
8210         Change return type to bool. Change argument type to bool.
8211         (mmix_print_operand, mmix_print_operand_address): Make static.
8212         (mmix_intval, mmix_output_condition): Change 'x' argument type
8213         to const_rtx.
8214         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
8215         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8216
8217 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
8218
8219         PR target/39386
8220         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
8221         shift counter for x << x and x >> x shifts.
8222
8223 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8224
8225         PR target/47124
8226         * config.gcc: Reject *-*-solaris2 configuration.
8227
8228 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
8229
8230         PR tree-optimization/49809
8231         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
8232         gimple_get_lhs instead of gimple_assign_lhs.
8233
8234 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8235
8236         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
8237
8238 2011-07-25  Richard Guenther  <rguenther@suse.de>
8239
8240         PR tree-optimization/49822
8241         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8242         more.  Make sure to preserve stmts with side-effects.  Properly
8243         handle virtual defs, follow a longer def chain.
8244
8245 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
8246
8247         PR plugins/45348
8248         PR plugins/48425
8249         PR plugins/46577
8250         * Makefile.in: Do not flatten c-family directory when installing
8251         plugin headers.
8252
8253 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8254
8255         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
8256         original nodes if we are dealing with virtual clones.
8257
8258 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
8259
8260         * common/config/c6x/c6x-common.c: New file.
8261
8262 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
8263
8264         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
8265
8266 2011-07-25  Richard Guenther  <rguenther@suse.de>
8267
8268         PR tree-optimization/49715
8269         * tree-vrp.c: Include expr.h and optabs.h.
8270         (range_fits_type_): New function.
8271         (simplify_float_conversion_using_ranges): Likewise.
8272         (simplify_stmt_using_ranges): Call it.
8273         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
8274         * optabs.c (can_float_p): Export.
8275         * optabs.h (can_float_p): Declare.
8276
8277 2011-07-25  Richard Guenther  <rguenther@suse.de>
8278
8279         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
8280         (get_value_range): For out-of-range SSA names or names created
8281         after propagation return a read-only varying range.
8282         (dump_all_value_ranges): Adjust.
8283         (vrp_initialize): Likewise.
8284         (vrp_finalize): Likewise.
8285
8286 2011-07-24  Richard Henderson  <rth@redhat.com>
8287
8288         PR debug/49831
8289         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
8290         them entirely.
8291
8292 2011-07-24  Richard Henderson  <rth@redhat.com>
8293
8294         PR debug/49825
8295         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
8296         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
8297
8298 2011-07-24  Richard Henderson  <rth@redhat.com>
8299
8300         PR debug/49827
8301         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
8302
8303 2011-07-24  Richard Henderson  <rth@redhat.com>
8304
8305         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
8306         Zero args_size for abnormal edges.  Adjust all callers.
8307
8308 2011-07-24  Richard Henderson  <rth@redhat.com>
8309
8310         PR debug/49825
8311         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
8312
8313 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
8314
8315         PR bootstrap/49835
8316         * collect2.c (demangle_flag): Removed.
8317
8318 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
8319
8320         * configure.ac (demangler_in_ld): Default to yes.
8321         * configure: Regenerated.
8322         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
8323         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
8324         --no-demangle options straight through to ld.  When
8325         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
8326         way that has the intended effect on Windows.
8327
8328 2011-07-23  Richard Henderson  <rth@redhat.com>
8329
8330         * dwarf2cfi.c: Include basic-block.h.
8331         (dw_label_info): Remove.
8332         (trace_work_list, trace_index): New.
8333         (remember_row, emit_cfa_remember): Remove.
8334         (dw_trace_info_hash, dw_trace_info_eq): New.
8335         (get_trace_index, get_trace_info): New.
8336         (save_point_p): New.
8337         (free_cfi_row): Remove.
8338         (add_cfi): Do not emit DW_CFA_remember_state.
8339         (cfa_row_equal_p): New.
8340         (barrier_args_size): Remove.
8341         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
8342         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
8343         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
8344         (dwarf2out_cfi_begin_epilogue): Remove.
8345         (dwarf2out_frame_debug_restore_state): Remove.
8346         (connect_traces, create_pseudo_cfg): New.
8347         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
8348         * Makefile.in (dwarf2cfi.o): Update.
8349
8350 2011-07-23  Richard Henderson  <rth@redhat.com>
8351
8352         * dwarf2cfi.c (dw_trace_info): New.
8353         (dw_label_info): New.
8354         (cie_return_save): New.
8355         (cur_trace): New.
8356         (queued_args_size): Rename from args_size.  Update all users.
8357         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
8358         (def_cfa_1): Use cur_trace instead of cfa_*.
8359         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
8360         (clobbers_queued_reg_save, reg_saved_in): Likewise.
8361         (dwarf2out_frame_debug_expr): Likewise.
8362         (create_cie_data): Split out from ...
8363         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
8364
8365 2011-07-23  Richard Henderson  <rth@redhat.com>
8366
8367         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
8368         Update all users to match.
8369         (execute_dwarf2_frame): Free reg_saved_in_data.
8370
8371 2011-07-23  Richard Henderson  <rth@redhat.com>
8372
8373         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
8374         (queued_reg_saves): Don't GTY.  Change to a VEC.
8375         (queue_reg_save): Update to match.
8376         (dwarf2out_flush_queued_reg_saves): Likewise.
8377         (clobbers_queued_reg_save): Likewise.
8378         (reg_saved_in): Likewise.
8379         (execute_dwarf2_frame): Free queued_reg_saves.
8380
8381 2011-07-23  Richard Henderson  <rth@redhat.com>
8382
8383         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
8384
8385 2011-07-23  Richard Henderson  <rth@redhat.com>
8386
8387         * dwarf2cfi.c (add_cfi_args_size): Split out from...
8388         (dwarf2out_args_size): ... here.
8389         (add_cfi_restore): Split out from ...
8390         (dwarf2out_frame_debug_cfa_restore): ... here.
8391         (def_cfa_0): Split out from ...
8392         (def_cfa_1): ... here.
8393         (cfi_oprnd_equal_p, cfi_equal_p): New.
8394         (change_cfi_row): New.
8395         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
8396         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
8397         (output_cfis): Remove.
8398         * dwarf2out.c (output_fde): Simplify output_cfi loop.
8399         (dwarf2out_switch_text_section): Don't call output_cfis.
8400         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
8401         * dwarf2out.h: Update decls.
8402         (enum dw_val_class): Add dw_val_class_none.
8403
8404 2011-07-23  Richard Henderson  <rth@redhat.com>
8405
8406         * dwarf2cfi.c (update_row_reg_save): New.
8407         (dwarf2out_frame_debug_cfa_expression): Use it.
8408         (dwarf2out_frame_debug_cfa_restore): Likewise.
8409         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
8410
8411 2011-07-23  Richard Henderson  <rth@redhat.com>
8412
8413         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
8414
8415 2011-07-23  Richard Henderson  <rth@redhat.com>
8416
8417         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
8418         (cie_cfi_row): New.
8419         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
8420         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
8421         (cur_row, remember_row): New.
8422         (def_cfa_1): Use cur_row instead of the old_* variables.
8423         (dwarf2out_frame_debug_restore_state): Similarly.
8424         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
8425         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
8426         (dwarf2out_frame_debug_adjust_cfa): Likewise.
8427         (dwarf2out_frame_debug_cfa_offset): Likewise.
8428         (dwarf2out_frame_debug_expr): Likewise.
8429         (execute_dwarf2_frame): Set up cur_row.
8430         * dwarf2out.h (struct cfa_loc): Mark for GTY.
8431
8432 2011-07-23  Richard Henderson  <rth@redhat.com>
8433
8434         * basic-block.h (EDGE_PRESERVE): New.
8435         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
8436         * bb-reorder.c: Include except.h.
8437         (fix_up_crossing_landing_pad): New.
8438         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
8439         landing pads in the right partition.  Duplicate as necessary.
8440         (partition_hot_cold_basic_blocks): Fix up DF info after
8441         duplicating landing pads.
8442         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
8443         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
8444         is set properly.  Validate that EH edges are not CROSSING.
8445         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
8446         (dw2_build_landing_pads): ... here.
8447         (convert_to_eh_region_ranges): Remove code to fixup crossing
8448         landing pads.
8449         * except.h (expand_dw2_landing_pad_for_region): Declare.
8450         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
8451
8452 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
8453
8454         PR target/49816
8455         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
8456
8457 2011-07-22  Jason Merrill  <jason@redhat.com>
8458
8459         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
8460
8461 2011-07-22  Richard Henderson  <rth@redhat.com>
8462
8463         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
8464
8465 2011-07-22  Richard Henderson  <rth@redhat.com>
8466
8467         * jump.c (maybe_propagate_label_ref): Split out of...
8468         (mark_all_labels): ... here.  Do not attempt label_ref
8469         propagation while in cfglayout mode.
8470
8471 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8472
8473         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
8474         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
8475         (dwarf_attr_name): Handle DW_AT_GNU_macros.
8476         (dwarf2out_define): If the vector is empty and
8477         lineno is 0, emit a dummy entry first.
8478         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
8479         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
8480         optimize_macinfo_range): New functions.
8481         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
8482         mergeable, optimize longer strings using
8483         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
8484         optimize longer sequences of define/undef ops from headers
8485         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
8486         emit a section headers.
8487         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
8488         and macinfo_section_label to DEBUG_MACRO_SECTION
8489         resp. DEBUG_MACRO_SECTION_LABEL.
8490         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
8491         instead of DW_AT_macro_info.
8492
8493         PR other/32998
8494         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
8495         options.
8496         * dwarf2out.c: Include opts.h.
8497         (dchar_p): New typedef.  Define heap VEC for it.
8498         (producer_string): New variable.
8499         (gen_producer_string): New function.
8500         (gen_compile_unit_die): Use it.
8501         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
8502         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
8503         * doc/invoke.texi: Document -grecord-gcc-switches and
8504         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
8505         to -frecord-gcc-switches description.
8506
8507 2011-07-22  Jason Merrill  <jason@redhat.com>
8508
8509         PR c++/30112
8510         * c-decl.c (c_linkage_bindings): Define.
8511
8512 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8513
8514         PR debug/49815
8515         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
8516
8517 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
8518
8519         * config/i386/i386.c (ix86_option_override_internal): Disallow
8520         MS ABI in x32 mode.
8521         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
8522         only for TARGET_LP64.
8523         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
8524
8525 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8526
8527         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
8528         avoid warnings when GCC is built with a C++ compiler.
8529
8530 2011-07-22  Martin Jambor  <mjambor@suse.cz>
8531
8532         PR lto/49796
8533         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
8534         if decl node is in another partition, call cgraph_get_node only once.
8535
8536 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
8537
8538         * config.gcc (x86_64-*-linux*): Set
8539         default_gnu_indirect_function to yes.
8540
8541 2011-07-22  Richard Guenther  <rguenther@suse.de>
8542
8543         PR tree-optimization/45819
8544         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8545         preserve volatile and notrap flags.
8546
8547 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8548             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8549
8550         PR bootstrap/49794
8551         * configure.ac: Test AM_ICONV with CXX.
8552         * configure: Regenerate.
8553         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
8554
8555 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8556
8557         PR bootstrap/49797
8558         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
8559         (set_cloog_options): Use it.
8560
8561 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
8562
8563         PR c++/49756
8564         * gcc.c (main): Call stack_limit_increase (64MB).
8565         * toplev.c (toplev_main): Likewise.
8566
8567 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8568
8569         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
8570         instead of force_reg.
8571
8572 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8573
8574         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
8575         needed and use force_reg after convert.
8576         (ix86_expand_call): Likewise.
8577         (ix86_expand_special_args_builtin): Likewise.
8578         (ix86_expand_builtin): Likewise.
8579
8580 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8581
8582         PR middle-end/47654
8583         PR middle-end/49649
8584         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
8585         in parameter.  Initialize v1 and v2 based on the values returned
8586         by clast_name_to_lb_ub.
8587         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
8588         values.
8589         (type_for_clast_bin): Same.
8590         (type_for_clast_expr): Same.
8591         (type_for_clast_eq): Update calls to type_for_clast_expr.
8592         (type_for_clast_for): Same.
8593         (build_iv_mapping): Same.
8594         * graphite-ppl.h (value_min): New.
8595
8596 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8597
8598         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
8599         types whenever possible.
8600
8601 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8602
8603         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
8604         and ub fields.
8605         (new_clast_name_index): Add lb and ub parameters.
8606         (free_clast_name_index): New.
8607         (clast_name_to_lb_ub): New.
8608         (save_clast_name_index): Add lb and ub parameters.
8609         (compute_bounds_for_param): New.
8610         (type_for_level): Removed.
8611         (type_for_clast_for): Removed level parameter.  Do not call
8612         type_for_level.
8613         (graphite_create_new_loop): Store the lb and ub for the clast_name
8614         of the iterator of the loop that has been generated.
8615         (graphite_create_new_loop_guard): Remove parameter level.
8616         (create_params_index): Store the lb and ub of each parameter.
8617         (gloog): Use free_clast_name_index.  Pass to create_params_index
8618         the current scop.
8619
8620 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8621
8622         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
8623         (max_precision_type): Inline max_signed_precision_type.
8624         (type_for_clast_red): Use max_precision_type.
8625         (type_for_clast_bin): Same.
8626         (type_for_clast_for): Same.
8627
8628 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8629
8630         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
8631         type_for_interval.
8632         (gcc_type_for_value): Renamed type_for_value.
8633         (gcc_type_for_clast_term): Renamed type_for_clast_term.
8634         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
8635         (gcc_type_for_clast_red): Renamed type_for_clast_red.
8636         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
8637         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
8638         (graphite_translate_clast_equation): Update calls.
8639         (compute_type_for_level): Renamed type_for_level.
8640         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
8641         (build_iv_mapping): Update calls.
8642         (graphite_create_new_loop_guard): Same.
8643
8644 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8645
8646         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
8647         comment.
8648
8649 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8650
8651         * graphite-clast-to-gimple.c (struct ivs_params): New.
8652         (clast_name_to_gcc): Use ivs_params to pass around parameters.
8653         (clast_to_gcc_expression): Same.
8654         (clast_to_gcc_expression_red): Same.
8655         (gcc_type_for_clast_term): Same.
8656         (gcc_type_for_clast_expr): Same.
8657         (gcc_type_for_clast_red): Same.
8658         (gcc_type_for_clast_bin): Same.
8659         (gcc_type_for_clast_eq): Same.
8660         (graphite_translate_clast_equation): Same.
8661         (graphite_create_guard_cond_expr): Same.
8662         (graphite_create_new_guard): Same.
8663         (graphite_create_new_loop): Same.
8664         (build_iv_mapping): Same.
8665         (translate_clast_user): Same.
8666         (graphite_create_new_loop_guard): Same.
8667         (translate_clast): Same.
8668         (translate_clast_for_loop): Same.
8669         (translate_clast_for): Same.
8670         (translate_clast_guard): Same.
8671         (initialize_cloog_names): Fix typo.
8672         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
8673
8674 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8675
8676         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
8677         (new_clast_name_index): Add level parameter.
8678         (clast_name_to_level): New.
8679         (save_clast_name_index): Add level parameter.
8680         (newivs_to_depth_to_newiv): Removed.
8681         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
8682         (graphite_create_new_loop): Add level parameter.  Pass level to
8683         save_clast_name_index.
8684         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
8685         (create_params_index): Pass level to save_clast_name_index.
8686
8687 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8688
8689         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
8690         recompute type, lb, and ub.  Get them from...
8691         (graphite_create_new_loop_guard): ...here.  Pass in parameter
8692         pointers to type, lb, and ub.
8693         (translate_clast_for_loop): Update function calls.
8694         (translate_clast_for): Same.
8695
8696 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
8697
8698         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
8699         psct_dynamic_dim.
8700         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
8701         (gcc_type_for_iv_of_clast_loop): Update use of level.
8702         (gloog): Start counting nesting level from 0.
8703         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
8704         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
8705         psct_dynamic_dim on level.
8706
8707 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8708
8709         * config/i386/i386.c (ix86_legitimize_address): Convert to
8710         Pmode if needed.
8711
8712 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
8713
8714         * config/i386/i386.c (function_value_64): Always return pointers
8715         in Pmode.
8716         (ix86_promote_function_mode): New.
8717         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
8718
8719 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8720
8721         PR tree-optimization/49749
8722         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
8723         remove no-longer-used maxrank variable.
8724
8725 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8726
8727         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
8728
8729 2011-07-21  Jason Merrill  <jason@redhat.com>
8730
8731         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
8732         * recog.h (struct insn_data_d): Check it instead of
8733         HAVE_DESIGNATED_INITIALIZERS.
8734         * genoutput.c (output_insn_data): Likewise.
8735
8736 2011-07-21  Richard Guenther  <rguenther@suse.de>
8737
8738         PR tree-optimization/49770
8739         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
8740         valueized any operand.  Renamed from ...
8741         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
8742         (valueize_shared_reference_ops_from_ref): Return whether we
8743         valueized any operand.
8744         (vn_reference_lookup): Only when we valueized any operand
8745         use the valueized reference for alias analysis.  Do not preserve
8746         the original reference tree in this case.
8747
8748 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
8749
8750         * config/i386/i386.c (ix86_decompose_address): Reject all but
8751         register operands and subregs of DImode hard registers in index.
8752
8753 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8754
8755         * fold-const.c (fold_unary_loc): Preserve indirect
8756         comparison cast to none-boolean type.
8757         * tree-ssa.c (useless_type_conversion_p): Preserve cast
8758         from/to boolean-type.
8759         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
8760         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
8761         * tree-cfg.c (verify_gimple_comparison): Check result
8762         type of comparison expression.
8763         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
8764         of condition result and disallow type-cast sinking into comparison.
8765
8766 2011-07-21  Richard Guenther  <rguenther@suse.de>
8767
8768         * tree-ssa-forwprop.c (combine_conversions): Return whether
8769         we have to run cfg-cleanup.  Properly remove dead stmts.
8770         (ssa_forward_propagate_and_combine): Adjust.
8771
8772 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
8773
8774         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
8775
8776 2011-07-21  Kai Tietz  <ktietz@redhat.com>
8777
8778         * tree-ssa-propagate.c (substitute_and_fold): Use
8779         do_dce flag to deside, if BB's statements are scanned
8780         in last to first, or first to last order.
8781
8782 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
8783
8784         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
8785
8786 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
8787             Uros Bizjak  <ubizjak@gmail.com>
8788             Richard Henderson  <rth@redhat.com>
8789
8790         * config/i386/constraints.md (w): New.
8791
8792         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
8793         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
8794
8795         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
8796         instead of TARGET_64BIT.
8797
8798         * config/i386/i386.md (indirect_jump): Replace
8799         nonimmediate_operand with indirect_branch_operand.
8800         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
8801         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
8802         Convert operand 0 to Pmode for x32 if not PIC.
8803         (*tablejump_1): Replace nonimmediate_operand with
8804         indirect_branch_operand.  Replace constraint "m" with "w".
8805         (*call_vzeroupper): Replace constraint "m" with "w".
8806         (*call): Likewise.
8807         (*call_rex64_ms_sysv_vzeroupper): Likewise.
8808         (*call_rex64_ms_sysv): Likewise.
8809         (*call_value_vzeroupper): Likewise.
8810         (*call_value): Likewise.
8811         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
8812         (*call_value_rex64_ms_sysv): Likewise.
8813         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
8814
8815         * config/i386/predicates.md (indirect_branch_operand): New.
8816         (call_insn_operand): Support x32.
8817
8818 2011-07-20  Michael Eager  <eager@eagercon.com>
8819
8820         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
8821
8822 2011-07-20  Richard Henderson  <rth@redhat.com>
8823
8824         * cfg.c (dump_bb_info): Dump basic_block->flags.
8825         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
8826
8827 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8828
8829         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8830         of DImode hard registers in index.
8831         (ix86_legitimate_address_p): Allow subregs of base and index to span
8832         more than a word.  Assert that subregs of base and index satisfy
8833         register_no_elim_operand predicates.  Reject addresses where
8834         base and index have different modes.
8835
8836 2011-07-20  Robert Millan  <rmh@gnu.org>
8837
8838         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
8839
8840 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8841
8842         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
8843         removing now-unnecessary assignment.
8844
8845 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8846
8847         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
8848         memory address space to the type's address space.
8849
8850 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8851
8852         PR target/36467
8853         PR target/49687
8854         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
8855         and expand appropriately if there is a CONST_INT in operand2.
8856         (usmulqihi3): New insn.
8857         (*sumulqihi3): New insn.
8858         (*osmulqihi3): New insn.
8859         (*oumulqihi3): New insn.
8860         (*muluqihi3.uconst): New insn_and_split.
8861         (*muluqihi3.sconst): New insn_and_split.
8862         (*mulsqihi3.sconst): New insn_and_split.
8863         (*mulsqihi3.uconst): New insn_and_split.
8864         (*mulsqihi3.oconst): New insn_and_split.
8865         (*ashifthi3.signx.const): New insn_and_split.
8866         (*ashifthi3.signx.const7): New insn_and_split.
8867         (*ashifthi3.zerox.const): New insn_and_split.
8868         (mulsqihi3): New insn.
8869         (muluqihi3): New insn.
8870         (muloqihi3): New insn.
8871         * config/avr/predicates.md (const_2_to_7_operand): New.
8872         (const_2_to_6_operand): New.
8873         (u8_operand): New.
8874         (s8_operand): New.
8875         (o8_operand): New.
8876         (s9_operand): New.
8877         (register_or_s9_operand): New.
8878
8879 2011-07-20  Kai Tietz  <ktietz@redhat.com>
8880
8881         * builtins.c (fold_builtin_expect): See through the cast
8882         from truthvalue_type_node to long.
8883
8884 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
8885
8886         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
8887         where we can use them from the standard and altivec instruction
8888         sets, instead of always using the 3 operand VSX forms that require
8889         the destination to overlap one of the inputs.
8890         (vsx_fms*): Ditto.
8891         (vsx_fnma*): Ditto.
8892         (vsx_fnms*): Ditto.
8893
8894         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
8895         for DF types.
8896         (fmsdf4_fpr): Ditto.
8897         (nfmadf4_fpr): Ditto.
8898         (nfmsdf4_fpr): Ditto.
8899
8900 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
8901
8902         * genrecog.c (make_insn_sequence): Correct position numbering
8903         when filtering out match_scratch and match_dup.
8904
8905 2011-07-20  Richard Guenther  <rguenther@suse.de>
8906
8907         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
8908         against already removed statements.
8909         (forward_propagate_into_comparison): Remove dead defining stmts.
8910         (forward_propagate_into_gimple_cond): Likewise.
8911         (forward_propagate_into_cond): Simplify.
8912         (ssa_forward_propagate_and_combine): Handle changed cfg from
8913         forward_propagate_into_comparison.
8914         * tree-ssa-phiopt.c (conditional_replacement): Use proper
8915         locations for newly built statements.
8916
8917 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
8918
8919         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
8920
8921 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8922
8923         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
8924         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
8925
8926 2011-07-20  Richard Guenther  <rguenther@suse.de>
8927
8928         PR middle-end/18908
8929         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
8930         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
8931         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
8932
8933 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
8934
8935         * config/frv/frv.c (frv_register_move_cost): Define explicitly
8936         costs for subclasses of GR_REGS.
8937
8938 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
8939
8940         PR target/49780
8941         * config/i386/predicates.md (no_seg_addres_operand): No more special.
8942         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
8943         of DImode hard registers in base.
8944         (ix86_legitimate_address_p): Allow SImode and DImode base and index
8945         registers.
8946
8947 2011-07-20  Richard Guenther  <rguenther@suse.de>
8948
8949         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
8950         (unify_nodes): Deal with that.
8951         (solve_graph): Likewise.
8952
8953 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
8954
8955         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
8956         canonicalize left operand from ZERO_EXTEND to AND.
8957
8958 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
8959
8960         * target.def (class_max_nregs): New hook.
8961         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
8962         * doc/tm.texi: Regenerate.
8963         * targhooks.c (default_class_max_nregs): New function.
8964         * targhooks.h (default_class_max_nregs): Declare.
8965         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
8966         x_ira_reg_class_min_nregs arrays to unsigned char.
8967         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
8968         hook instead of CLASS_MAX_NREGS macro.
8969         * reginfo.c (restore_register_info): Ditto.
8970         * ira-conflicts.c (process_regs_for_copy): Use
8971         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
8972         Change type rclass and aclass vars to reg_class_t.
8973         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
8974         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
8975         reg_class_t.
8976         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
8977         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
8978
8979         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
8980         * config/i386/i386.c (ix86_class_max_nregs): New function.
8981         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
8982         instead of CLASS_MAX_NREGS macro.
8983         (TARGET_CLASS_MAX_NREGS): Define.
8984         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
8985         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
8986         * config/avr/avr.c (class_max_nregs): Remove function.
8987         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
8988         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
8989         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
8990         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
8991         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
8992         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
8993         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
8994         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
8995         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
8996         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
8997         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
8998         * config/score/score.h (CLASS_MAX_NREGS): Remove.
8999         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
9000         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
9001         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
9002
9003 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9004
9005         * cif-code.def (OVERWRITABLE): Fix typo and move around.
9006         (TARGET_OPTIMIZATION_MISMATCH): Delete.
9007         (EH_PERSONALITY): Fix typo.
9008         (NON_CALL_EXCEPTIONS): Fix message.
9009         (OPTIMIZATION_MISMATCH): Adjust message.
9010         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
9011
9012 2011-07-19  Ian Lance Taylor  <iant@google.com>
9013
9014         * doc/install.texi (Configuration): Document
9015         --enable-build-poststage1-with-cxx.
9016
9017 2011-07-19  Robert Millan  <rmh@gnu.org>
9018
9019         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
9020         (GLIBC_DYNAMIC_LINKER): Remove.
9021
9022         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
9023         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9024         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9025         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
9026         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
9027         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
9028
9029         * config/mips/linux.h: Remove everything except for ...
9030         (GLIBC_DYNAMIC_LINKER): ... this macro.
9031
9032         * config/mips/linux64.h: Remove everything except for ...
9033         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
9034         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
9035         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
9036         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
9037         (GNU_USER_LINK_EMULATIONN32): New macros.
9038
9039         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
9040         Use the new headers.
9041
9042 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9043
9044         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
9045         Add offset_known_p and size_known_p fields.
9046         (MEM_OFFSET_KNOWN_P): Update accordingly.
9047         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
9048         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
9049         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
9050         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
9051         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
9052         (init_emit_regs): Likewise.
9053
9054 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9055
9056         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
9057         (MEM_OFFSET): Change from returning an rtx to returning a
9058         HOST_WIDE_INT.
9059         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
9060         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
9061         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9062         (clear_mem_offset): Declare.
9063         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
9064         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
9065         MEM_OFFSET to get a HOST_WIDE_INT offset.
9066         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
9067         (adjust_offset_for_component_ref): Take a bool "known_p"
9068         parameter and a HOST_WIDE_INT "offset" parameter.
9069         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
9070         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
9071         than an rtx.  Use clear_mem_offset to clear the offset.
9072         * cfgcleanup.c (merge_memattrs): Likewise.
9073         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
9074         * function.c (assign_parm_find_stack_rtl): Likewise.
9075         (assign_parm_setup_stack): Likewise.
9076         * print-rtl.c (print_rtx): Likewise.
9077         * reload.c (find_reloads_subreg_address): Likewise.
9078         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
9079         * var-tracking.c (INT_MEM_OFFSET): Likewise.
9080         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
9081         (get_mem_align_offset): Likewise.
9082         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
9083         (clear_mem_offset): New function.
9084         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
9085         offset rather than an rtx.  Assume both the expressio and offset
9086         are available.
9087         (r10k_needs_protection_p_1): Update accordingly, checking the
9088         expression and offset availability here instead.
9089
9090 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9091
9092         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
9093         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
9094         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
9095         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
9096         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9097         (clear_mem_size): Declare.
9098         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
9099         (clear_mem_size): New function.
9100         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
9101         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
9102         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
9103         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
9104         to clear the size.
9105         (nonoverlapping_memrefs_p): Likewise.
9106         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
9107         (expand_builtin_init_trampoline): Likewise.
9108         * calls.c (compute_argument_addresses): Likewise.
9109         * cfgcleanup.c (merge_memattrs): Likewise.
9110         * dce.c (find_call_stack_args): Likewise.
9111         * dse.c (record_store, scan_insn): Likewise.
9112         * dwarf2out.c (dw_sra_loc_expr): Likewise.
9113         * expr.c (emit_block_move_hints): Likewise.
9114         * function.c (assign_parm_find_stack_rtl): Likewise.
9115         * print-rtl.c (print_rtx): Likewise.
9116         * reload.c (find_reloads_subreg_address): Likewise.
9117         * rtlanal.c (may_trap_p_1): Likewise.
9118         * var-tracking.c (track_expr_p): Likewise.
9119         * varasm.c (assemble_trampoline_template): Likewise.
9120         * config/arm/arm.c (arm_print_operand): Likewise.
9121         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
9122         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
9123         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
9124         (expand_constant_setmem_prologue): Likewise.
9125         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
9126         * config/rs6000/rs6000.c (expand_block_move): Likewise.
9127         (adjacent_mem_locations): Likewise.
9128         * config/s390/s390.c (s390_expand_setmem): Likewise.
9129         (s390_expand_insv): Likewise.
9130         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
9131         (*extendqi<mode>2_short_displ): Likewise.
9132         * config/sh/sh.c (expand_block_move): Likewise.
9133         * config/sh/sh.md (extv, extzv): Likewise.
9134
9135 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9136
9137         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
9138         (mem_attrs_htab_eq): ...here.
9139         (find_mem_attrs): Replace with...
9140         (set_mem_attrs): ...this function.  Take a mem_attrs structure
9141         rather than individual fields.
9142         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9143         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9144         (set_mem_size, change_address, adjust_address_1, offset_address)
9145         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9146         Update accordingly.
9147
9148 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9149
9150         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
9151         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
9152         Provide a dummy definition of MEM_ADDR_SPACE for generators.
9153         (target_rtl): Add x_mode_mem_attrs.
9154         (mode_mem_attrs): New macro.
9155         (get_mem_attrs): New function.
9156         * emit-rtl.c (get_mem_attrs): Rename to...
9157         (find_mem_attrs): ...this.
9158         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
9159         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
9160         (set_mem_size, change_address, adjust_address_1, offset_address)
9161         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
9162         Update accordingly.
9163         (init_emit_regs): Initialize mode_mem_attrs.
9164
9165 2011-07-19  Richard Guenther  <rguenther@suse.de>
9166
9167         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
9168         TRUTH_*_EXPR handling.
9169         * tree-ssa-operands.c (get_expr_operands): Likewise.
9170         * tree-ssa-pre.c (fully_constant_expression): Likewise.
9171         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
9172         Likewise.
9173         (is_and_or_or): Likewise.
9174         (is_norm_cond_subset_of): Likewise.
9175
9176 2011-07-19  Richard Guenther  <rguenther@suse.de>
9177
9178         * tree.h (fold_build_pointer_plus_loc): New helper function.
9179         (fold_build_pointer_plus_hwi_loc): Likewise.
9180         (fold_build_pointer_plus): Define.
9181         (fold_build_pointer_plus_hwi): Likewise.
9182         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
9183         (fold_builtin_memory_op): Likewise.
9184         (fold_builtin_stpcpy): Likewise.
9185         (fold_builtin_memchr): Likewise.
9186         (fold_builtin_strstr): Likewise.
9187         (fold_builtin_strchr): Likewise.
9188         (fold_builtin_strrchr): Likewise.
9189         (fold_builtin_strpbrk): Likewise.
9190         (fold_builtin_strcat): Likewise.
9191         (expand_builtin_memory_chk): Likewise.
9192         (fold_builtin_memory_chk): Likewise.
9193         * c-typeck.c (build_unary_op): Likewise.
9194         * cgraphunit.c (thunk_adjust): Likewise.
9195         * fold-const.c (build_range_check): Likewise.
9196         (fold_binary_loc): Likewise.
9197         * omp-low.c (extract_omp_for_data): Likewise.
9198         (expand_omp_for_generic): Likewise.
9199         (expand_omp_for_static_nochunk): Likewise.
9200         (expand_omp_for_static_chunk): Likewise.
9201         * tree-affine.c (add_elt_to_tree): Likewise.
9202         * tree-data-ref.c (split_constant_offset_1): Likewise.
9203         * tree-loop-distribution.c (generate_memset_zero): Likewise.
9204         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
9205         * tree-predcom.c (ref_at_iteration): Likewise.
9206         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
9207         (add_to_parts): Likewise.
9208         (create_mem_ref): Likewise.
9209         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9210         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
9211         (number_of_iterations_le): Likewise.
9212         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
9213         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
9214         (vect_create_addr_base_for_vector_ref): Likewise.
9215         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
9216         (vect_create_cond_for_alias_checks): Likewise.
9217         * tree-vrp.c (extract_range_from_assert): Likewise.
9218         * config/alpha/alpha.c (alpha_va_start): Likewise.
9219         (alpha_gimplify_va_arg_1): Likewise.
9220         * config/i386/i386.c (ix86_va_start): Likewise.
9221         (ix86_gimplify_va_arg): Likewise.
9222         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9223         * config/mep/mep.c (mep_expand_va_start): Likewise.
9224         (mep_gimplify_va_arg_expr): Likewise.
9225         * config/mips/mips.c (mips_va_start): Likewise.
9226         (mips_gimplify_va_arg_expr): Likewise.
9227         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9228         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
9229         (rs6000_gimplify_va_arg): Likewise.
9230         * config/s390/s390.c (s390_va_start): Likewise.
9231         (s390_gimplify_va_arg): Likewise.
9232         * config/sh/sh.c (sh_va_start): Likewise.
9233         (sh_gimplify_va_arg_expr): Likewise.
9234         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
9235         * config/spu/spu.c (spu_va_start): Likewise.
9236         (spu_gimplify_va_arg_expr): Likewise.
9237         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9238         Likewise.
9239         (xstormy16_gimplify_va_arg_expr): Likewise.
9240         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
9241         (xtensa_gimplify_va_arg_expr): Likewise.
9242
9243 2011-07-19  Richard Guenther  <rguenther@suse.de>
9244
9245         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
9246         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
9247         handling.
9248
9249         PR middle-end/18908
9250         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
9251         result of BIT_*_EXPR to bitfield precision.
9252
9253 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
9254
9255         PR tree-optimization/49742
9256         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
9257         as a potential write.
9258
9259 2011-07-19  Richard Guenther  <rguenther@suse.de>
9260
9261         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
9262         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
9263         (forward_propagate_comparison): Simplify, remove obsolete code.
9264
9265 2011-07-19  Richard Guenther  <rguenther@suse.de>
9266
9267         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
9268         BIT_XOR_EXPR, same as the RTL expander does.
9269         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
9270         (verify_gimple_assign_unary): Likewise.
9271         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
9272         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
9273         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
9274
9275 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
9276
9277         PR tree-optimization/49768
9278         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
9279         if offset is smaller than bitoffset, but offset+size is bigger
9280         than bitoffset.
9281
9282 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
9283
9284         PR tree-optimization/49771
9285         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
9286         zero step, set segment length to the size of the data-ref's type.
9287
9288 2011-07-18  Martin Jambor  <mjambor@suse.cz>
9289
9290         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
9291         comments.
9292         (ipcp_values_pool): Declare.
9293         (ipcp_sources_pool): Likewise.
9294         (ipcp_lattice): Changed to forward declaration.
9295         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
9296         cannot_devirtualize.
9297         (ipa_node_params): New fields descriptors, lattices, known_vals,
9298         clone_for_all_contexts and node dead, removed fields params and
9299         count_scale.
9300         (ipa_set_param_count): Removed.
9301         (ipa_get_param_count): Made to work with descriptors vector.
9302         (ipa_get_param): Updated.
9303         (ipa_param_cannot_devirtualize_p): Removed.
9304         (ipa_param_types_vec_empty): Likewise.
9305         (ipa_set_param_used): New function.
9306         (ipa_get_param_used): Updated to use descriptors vector.
9307         (ipa_func_list): Removed.
9308         (ipa_init_func_list): Removed declaration.
9309         (ipa_push_func_to_list_1): Likewise.
9310         (ipa_pop_func_from_list): Likewise.
9311         (ipa_push_func_to_list): Removed.
9312         (ipa_lattice_from_jfunc): Remove declaration.
9313         (ipa_get_jf_pass_through_result): Declare.
9314         (ipa_get_jf_ancestor_result): Likewise.
9315         (ipa_value_from_jfunc): Likewise.
9316         (ipa_get_lattice): Update.
9317         (ipa_lat_is_single_const): New function.
9318         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
9319         (ipa_init_func_list): Likewise.
9320         (ipa_pop_func_from_list): Likewise.
9321         (ipa_get_param_decl_index): Fix coding style.
9322         (count_formal_params): Removed.
9323         (count_formal_params_1): Renamed to count_formal_params.
9324         (ipa_populate_param_decls): Update to use descriptors vector.
9325         (ipa_initialize_node_params): Likewise.
9326         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
9327         (ipa_analyze_params_uses): Likewise.
9328         (ipa_free_node_params_substructures): Likewise and free also lattices
9329         and known values.
9330         (duplicate_array): Removed.
9331         (ipa_edge_duplication_hook): Add the new edge to the list of edge
9332         clones.
9333         (ipa_node_duplication_hook): Update to use new lattices.
9334         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
9335         (ipa_free_all_structures_after_iinln): Likewise.
9336         (ipa_write_node_info): Update to use new lattices.
9337         (ipa_read_node_info): Likewise.
9338         (ipa_get_jf_pass_through_result): New function.
9339         (ipa_get_jf_ancestor_result): Likewise.
9340         (ipa_value_from_jfunc): Likewise.
9341         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
9342         * ipa-cp.c: Reimplemented.
9343         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
9344         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
9345         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
9346         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
9347         * doc/invoke.texi (devirt-type-list-size): Removed description.
9348         (ipa-cp-value-list-size): Added description.
9349
9350 2011-07-18  Richard Henderson  <rth@redhat.com>
9351
9352         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
9353         before calling create_basic_block.
9354
9355 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
9356
9357         PR middle-end/49675
9358         * tree.c (build_common_builtin_nodes): Register
9359         __builtin_return_address, __cyg_profile_func_enter
9360         and __cyg_profile_func_exit.
9361
9362 2011-07-18  Richard Henderson  <rth@redhat.com>
9363
9364         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
9365         (add_labels_and_missing_jumps): ... here.
9366         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
9367
9368 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         PR target/47744
9371         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
9372         of DImode hard registers in PLUS address chains.
9373
9374 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9375
9376         PR bootstrap/49769
9377         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
9378         (alpha*-*-freebsd*): Likewise.
9379         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
9380         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
9381         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
9382         crtprec80.o, crtfastmath.o to extra_parts for all targets.
9383         (ia64*-*-elf*): Remove extra_parts.
9384         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
9385         (sparc64-*-linux*): Likewise.
9386         (sparc64-*-freebsd*): Likewise.
9387
9388         Revert:
9389         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
9390         (ia64*-*-linux*): Likewise.
9391         (mips64*-*-linux*): Likewise.
9392         (mips*-*-linux*): Likewise.
9393
9394 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
9395
9396         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
9397
9398 2011-07-18  Richard Guenther  <rguenther@suse.de>
9399
9400         * gimplify.c (gimplify_expr): Use input_location, not saved_location
9401         when building new trees.
9402
9403 2011-07-18  Richard Guenther  <rguenther@suse.de>
9404
9405         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
9406         expansion result to bitfield precision if required.
9407
9408 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9409
9410         * config.gcc (i[3456x]86-*-netware*): Remove.
9411
9412         * gthr-nks.h: Remove.
9413         * configure.ac (enable_threads): Remove nks.
9414         * configure: Regenerate.
9415
9416         * config/i386/i386.c (ix86_encode_section_info): Remove netware
9417         reference.
9418         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
9419         <netware.h> reference.
9420
9421         * config/i386/netware-libgcc.c,
9422         gcc/config/i386/netware-libgcc.def,
9423         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
9424         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
9425         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
9426         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
9427
9428         * doc/extend.texi (Function Attributes,
9429         callee_pop_aggregate_return): Remove i?86-netware reference.
9430         * doc/install.texi (Configuration, --enable-threads): Remove nks.
9431
9432 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9433
9434         PR target/49746
9435         Revert:
9436         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9437
9438         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
9439         patterns.
9440
9441 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
9442
9443         PR middle-end/49732
9444         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
9445
9446 2011-07-16  Matthias Klose  <doko@ubuntu.com>
9447
9448         * doc/install.texi: Document --enable-static-libjava.
9449
9450 2011-07-15  Richard Henderson  <rth@redhat.com>
9451
9452         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
9453         Replace all three arguments by returning a VEC of edges.
9454         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
9455         pointers and counts.
9456         (fix_edges_for_rarely_executed_code): Merge ...
9457         (rest_of_handle_partition_blocks): ... into...
9458         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
9459         any work was performed.
9460         (pass_partition_blocks): Clear todo_flags_finish.
9461
9462 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
9463             Jakub Jelinek  <jakub@redhat.com>
9464             Jonathan Wakely  <jwakely.gcc@gmail.com>
9465
9466         PR libstdc++/49745
9467         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
9468         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
9469
9470 2011-07-15  Jason Merrill  <jason@redhat.com>
9471
9472         PR testsuite/49741
9473         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
9474         rather than --tool_opts.
9475
9476 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
9477
9478         * doc/plugins.texi (Building GCC plugins): gengtype needs its
9479         corresponding gtype.state.
9480
9481 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9482
9483         PR target/49723
9484         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
9485
9486 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
9487
9488         PR target/48220
9489         * doc/md.texi (Standard Names): Document window_save.
9490         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
9491         expand_debug_expr and expand_debug_source_expr.  If the target has
9492         a window_save instruction, adjust the ENTRY_VALUE_EXP.
9493         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
9494         SSA_NAME_VAR is a parameter.
9495         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
9496         * var-tracking.c (parm_reg_t): New type and associated vector type.
9497         (windowed_parm_regs): New variable.
9498         (adjust_insn): If the target has a window_save instruction and this
9499         is the instruction, make its effect on parameter registers explicit.
9500         (next_non_note_insn_var_location): New function.
9501         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
9502         (vt_add_function_parameter): If the target has a window_save insn,
9503         adjust the incoming RTL and record that in windowed_parm_regs.
9504         (vt_finalize): Free windowed_parm_regs.
9505
9506 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9507
9508         * doc/invoke.texi (C6X Options): New section.
9509         * doc/md.texi (TI C6X family): New section.
9510         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
9511         tic6x-*-uclinux.
9512         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
9513         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
9514         Provide C6X definitions.
9515         * config/c6x/c6x.md: New file.
9516         * config/c6x/constraints.md: New file.
9517         * config/c6x/predicates.md: New file.
9518         * config/c6x/c6x-sched.md.in: New file.
9519         * config/c6x/c6x-sched.md: New file.
9520         * config/c6x/gensched.sh: New file.
9521         * config/c6x/c6x-mult.md.in: New file.
9522         * config/c6x/genmult.sh: New file.
9523         * config/c6x/c6x-mult.md: New file.
9524         * config/c6x/sync.md: New file.
9525         * config/c6x/c6x-protos.h: New file.
9526         * config/c6x/sfp-machine.h: New file.
9527         * config/c6x/c6x.c: New file.
9528         * config/c6x/c6x.h: New file.
9529         * config/c6x/crti.s: New file.
9530         * config/c6x/crtn.s: New file.
9531         * config/c6x/lib1funcs.asm: New file.
9532         * config/c6x/c6x-modes.def: New file.
9533         * config/c6x/genopt.sh: New file.
9534         * config/c6x/c6x.opt: New file.
9535         * config/c6x/c6x-tables.opt: New file.
9536         * config/c6x/c6x-opts.h: New file.
9537         * config/c6x/c6x-isas.def: New file.
9538         * config/c6x/elf.h: New file.
9539         * config/c6x/elf-common.h: New file.
9540         * config/c6x/uclinux-elf.h: New file.
9541         * config/c6x/t-c6x: New file.
9542         * config/c6x/t-c6x-elf: New file.
9543         * config/c6x/t-c6x-uclinux: New file.
9544         * config/c6x/t-c6x-softfp: New file.
9545         * config/c6x/gtd.c: New file.
9546         * config/c6x/gtf.c: New file.
9547         * config/c6x/ltd.c: New file.
9548         * config/c6x/ltf.c: New file.
9549         * config/c6x/ged.c: New file.
9550         * config/c6x/gef.c: New file.
9551         * config/c6x/led.c: New file.
9552         * config/c6x/lef.c: New file.
9553         * config/c6x/eqd.c: New file.
9554         * config/c6x/eqf.c: New file.
9555         * config/c6x/libgcc-c6xeabi.ver: New file.
9556
9557         Revert
9558         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9559         PR rtl-optimization/11320
9560         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
9561         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
9562         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
9563         current_sched_info->compute_jump_reg_dependencies. Record which
9564         registers are used and which registers are set by the jump.
9565         Clear deps->reg_conditional_sets after a barrier.
9566         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
9567         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
9568         (init_deps): Initialize reg_conditional_sets.
9569         (free_deps): Clear reg_conditional_sets.
9570         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
9571         Mark registers live on entry of the fallthrough block and conditionally
9572         set as set by the jump. Mark registers live on entry of non-fallthrough
9573         blocks as used by the jump.
9574         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
9575         Mark new parameters as unused.
9576
9577 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
9578
9579         PR tree-opt/49309
9580         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
9581         Use fold_build2_loc instead of build2.
9582         Use the correct type for the new tree.
9583
9584 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9585
9586         PR rtl-optimization/11320
9587         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
9588         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
9589
9590 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9591
9592         PR target/49487
9593         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
9594         of REG.
9595         (*rotw<mode>): Use const_int_operand for operand2.
9596         Use match_scatch for operand3.
9597         (*rotb<mode>): Ditto
9598         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
9599
9600 2011-07-14  Richard Guenther  <rguenther@suse.de>
9601
9602         PR tree-optimization/49651
9603         * tree-ssa-structalias.c (get_constraint_for_1): Properly
9604         handle dereferences with subvariables.
9605
9606 2011-07-14  Richard Guenther  <rguenther@suse.de>
9607
9608         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
9609         (fold_stmt_1): Do it here directly on gimple and as a first thing.
9610
9611 2011-07-14  Richard Guenther  <rguenther@suse.de>
9612
9613         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
9614         not bool_var when folding bool_var != 1 or bool_var == 0.
9615
9616 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9617
9618         * haifa-sched.c (schedule_insns): Remove outdated comment.
9619         (schedule_block): When computing a known value for TODO_SPEC,
9620         just set it rather than using logical operations.
9621         (try_ready): Likewise.  Use a local variable rather than a
9622         pointer to TODO_SPEC.  Reorder an if statement to move the
9623         easy case to the then block.
9624         * sched-deps.c (dep_spec_p): New static function.
9625         (update_dep): Use it to decide whether to call
9626         change_spec_dep_to_hard.
9627         (get_back_and_forw_lists): Use it.
9628         (sd_resolve_dep): Likewise.
9629         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
9630         (haifa_note_mem_dep): Likewise.
9631         (check_dep): Likewise.
9632         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
9633         (sched_free_deps): Free in two passes.
9634
9635 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
9636
9637         PR middle-end/49736
9638         * expr.c (all_zeros_p): Undo bogus part of last change.
9639
9640 2011-07-14  Matthias Klose <doko@ubuntu.com>
9641
9642         * doc/extend.texi (optimize attribute): Fix typo.
9643
9644 2011-07-14  Richard Guenther  <rguenther@suse.de>
9645
9646         * gimplify.c (gimplify_expr): Only do required conversions.
9647
9648 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
9649
9650         PR target/43746
9651         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
9652         i.e. use default_elf_select_section.
9653         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
9654         (READONLY_DATA_SECTION_ASM_OP): Remove.
9655         (TARGET_ASM_NAMED_SECTION): Move from here...
9656         * config/avr/avr.c: ...to here.
9657         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
9658         (avr_asm_named_section): Make static.
9659
9660 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9661
9662         PR bootstrap/49739
9663         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
9664         and crtfastmath.o for Linux/x86.
9665
9666 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9667
9668         * haifa-sched.c: Include "hashtab.h"
9669         (sched_no_dce): New global variable.
9670         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
9671         SHADOW_P): New macros.
9672         (last_clock_var, cycle_issued_insns): Move declarations.
9673         (must_backtrack): New static variable.
9674         (struct delay_pair): New structure.
9675         (delay_htab, delay_htab_i2): New static variables.
9676         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
9677         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
9678         functions.
9679         (dep_cost_1): If delay pairs exist, try to look up the insns and
9680         use the correct pair delay if we find them.
9681         (rank-for_schedule): Tweak priority for insns that must be scheduled
9682         soon to avoid backtracking.
9683         (queue_insn): Detect conditions which force backtracking.
9684         (ready_add): Likewise.
9685         (struct sched_block_state): Add member shadows_only_p.
9686         (struct haifa_save_data): New structure.
9687         (backtrack_queue): New static variable.
9688         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
9689         unschedule_insns_until, restore_last_backtrack_point,
9690         free_topmost_backtrack_point, free_backtrack_queue,
9691         estimate_insn_tick, estimate_shadow_tick): New functions.
9692         (prune_ready_list): New arg shadows_only_p.  All callers changed.
9693         If true, remove everything that isn't SHADOW_P.  Look up delay
9694         pairs and estimate ticks to avoid scheduling the first insn too early.
9695         (verify_shadows): New function.
9696         (schedule_block): Add machinery to enable backtracking.
9697         (sched_init): Take sched_no_dce into account when setting
9698         DF_LR_RUN_DCE.
9699         (free_delay_pairs): New function.
9700         (init_h_i_d): Initialize INSN_EXACT_TICK.
9701         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
9702         * sched-deps.c (sd_unresolve_dep): New function.
9703         * sched-int. (struct haifa_sched_info): New fields save_state
9704         and restore_state.
9705         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
9706         feeds_backtrack_insn and shadow_p.
9707         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
9708         (sched_no_dce): Declare variable.
9709         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
9710         sd_unresolve_dep): Declare functions.
9711         * modulo-sched.c (sms_sched_info): Clear the two new fields.
9712         * sched-rgn.c (rgn_const_sched_info): Likewise.
9713         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
9714         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
9715         (ebb_sched_info): Add them for the two new fields.
9716         (add_deps_for_risky_insns): Call add_delay_dependencies.
9717
9718 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9719
9720         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
9721         Rename -mr11.
9722         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
9723         (rs6000_call_indirect_aix): Ditto.
9724         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
9725         (call_indirect_aix<ptrsize>_internal): Ditto.
9726         (call_indirect_aix<ptrsize>_nor11): Ditto.
9727         (call_indirect_aix<ptrsize>_internal2): Ditto.
9728         (call_value_indirect_aix<ptrsize>): Ditto.
9729         (call_value_indirect_aix<ptrsize>_internal): Ditto.
9730         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9731         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9732         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
9733
9734 2011-07-13  Jason Merrill  <jason@redhat.com>
9735
9736         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
9737
9738 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9739
9740         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
9741         * config/spu/spu.md ("clrsb<mode>2"): New expander.
9742
9743 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
9744
9745         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
9746         * configure: Regenerate.
9747
9748 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9749
9750         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
9751         (asm_file_start): Remove.
9752         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
9753         free_bb_for_insn around code that modifies insns before
9754         restarting df analysis.
9755
9756 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9757
9758         PR target/49541
9759         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
9760         (LINK_SPEC): ... here.
9761
9762 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9763
9764         * haifa-sched.c (struct sched_block_state): New.
9765         (schedule_block): Move some local variables into such a structure.
9766
9767 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9768
9769         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
9770         * config/i386/t-crtpc: Remove.
9771         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9772         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
9773         tmake_file.
9774         (x86_64-*-darwin*): Likewise.
9775         (i[34567]86-*-linux*): Likewise.
9776         (x86_64-*-linux*): Likewise.
9777
9778         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
9779         Handle -mpc32, -mpc64, -mpc80.
9780
9781 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9782
9783         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
9784         * config/alpha/t-crtfm: Remove.
9785         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
9786         * config/i386/t-crtfm: Remove.
9787         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
9788         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
9789         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
9790         * config/sparc/t-crtfm: Remove.
9791
9792         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
9793         (alpha*-*-freebsd*): Likewise.
9794         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
9795         (x86_64-*-darwin*): Likewise.
9796         (i[34567]86-*-linux*): Likewise.
9797         (x86_64-*-linux*): Likewise.
9798         (x86_64-*-mingw*): Likewise.
9799         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
9800         (ia64*-*-freebsd*): Likewise.
9801         (ia64*-*-linux*): Likewise.
9802         (mips64*-*-linux*): Likewise.
9803         (mips*-*-linux*): Likewise.
9804         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
9805         (sparc64-*-linux*): Likewise.
9806         (sparc64-*-freebsd*): Likewise.
9807
9808 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9809
9810         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
9811         * config/darwin-crt3.c: Move to ../libgcc/config.
9812         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
9813         ($(T)crt3$(objext)): Remove.
9814         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
9815         ($(T)crt2$(objext)): Remove.
9816         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
9817         (powerpc64-*-darwin*): Likewise.
9818
9819 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9820
9821         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
9822
9823         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
9824         (addsi_1_zext): This.
9825
9826 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9827
9828         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
9829         * doc/tm.texi: Regenerate.
9830         * target.def (mergeable_rodata_prefix): New defhookpod.
9831         * varasm.c (mergeable_string_section, mergeable_constant_section):
9832         Use it. Allocate name with alloca.
9833
9834 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9835
9836         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
9837
9838 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9839
9840         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
9841         overlap check.
9842
9843 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
9844
9845         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
9846         (count_type_elements): Delete.
9847         (complete_ctor_at_level_p): Declare.
9848         * expr.c (flexible_array_member_p): New function, split out from...
9849         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
9850         parameter with for_ctor_p.  When for_ctor_p is true, return the
9851         number of elements that should appear in the top-level constructor,
9852         otherwise return an estimate of the number of scalars.
9853         (categorize_ctor_elements): Replace p_must_clear with p_complete.
9854         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
9855         (complete_ctor_at_level_p): New function, borrowing union logic
9856         from old categorize_ctor_elements_1.
9857         (mostly_zeros_p): Return true if the constructor is not complete.
9858         (all_zeros_p): Update call to categorize_ctor_elements.
9859         * gimplify.c (gimplify_init_constructor): Update call to
9860         categorize_ctor_elements.  Don't call count_type_elements.
9861         Unconditionally prevent clearing for variable-sized types,
9862         otherwise rely on categorize_ctor_elements to detect
9863         incomplete initializers.
9864
9865 2011-07-13  Richard Guenther  <rguenther@suse.de>
9866
9867         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
9868         the final type is integral.
9869
9870 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
9871
9872         * sched-int.h (struct _dep): Add member cost.
9873         (DEP_COST, UNKNOWN_DEP_COST): New macros.
9874         * sched-deps.c (init_dep_1): Initialize DEP_COST.
9875         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
9876         (sched_change_pattern): Reset it for dependent insns.
9877
9878 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9879
9880         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
9881         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
9882         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
9883         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
9884         (CRT0_S, MCRT0_S): Remove.
9885         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
9886         Remove.
9887         (s-crt0): Remove.
9888         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
9889
9890 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
9891
9892         * cse.c (insert_with_costs): Put semi-colon after empty loop body
9893         on the next line.
9894         * emit-rtl.c (push_to_sequence): Likewise.
9895         * haifa-sched.c (max_issue): Likewise.
9896         * matrix-reorg.c (add_allocation_site): Likewise.
9897         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9898         * reload.c (alternative_allows_const_pool_ref): Likewise.
9899         * sched-rgn.c (rgn_add_block): Likewise.
9900         (rgn_fix_recovery_cfg): Likewise.
9901         * tree.c (attribute_list_contained): Likewise.
9902
9903 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
9904
9905         * config/i386/i386.c: Tidy processor feature bitmasks.
9906         (m_P4_NOCONA): New.
9907
9908 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
9909
9910         PR rtl-opt/49474
9911         * cprop.c (find_implicit_sets): Correct the condition.
9912
9913 2011-07-12  Richard Henderson  <rth@redhat.com>
9914
9915         PR target/49713
9916         * dwarf2out.h (dwarf_frame_regnum): Remove.
9917         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
9918         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
9919         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
9920         (execute_dwarf2_frame): Initialize them.
9921         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
9922         users of the macros with the variables.
9923         (expand_builtin_dwarf_sp_column): Revert last change.
9924         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
9925         result of DWARF_FRAME_REGNUM into a local variable.
9926
9927 2011-07-12  Richard Henderson  <rth@redhat.com>
9928
9929         PR target/49714
9930         * config/i386/i386.c (x86_output_mi_thunk): Use
9931         machopic_indirect_call_target instead of machopic_indirection_name
9932         directly.
9933
9934 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
9935             Eric Botcazou  <ebotcazou@adacore.com>
9936
9937         * prefix.h: Wrap up in extern "C" block.
9938
9939 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
9940
9941         AMD bdver2 Enablement
9942         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
9943         (case ${target}): Add bdver2.
9944         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9945         -march=native recognize bdver2 processors.
9946         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9947         bdver2 def_and_undef
9948         * config/i386/i386.c (struct processor_costs bdver2_cost): New
9949         bdver2 cost table.
9950         (m_BDVER2): New definition.
9951         (m_AMD_MULTIPLE): Includes m_BDVER2.
9952         (initial_ix86_tune_features): Add bdver2 tuning.
9953         (processor_target_table): Add bdver2 entry.
9954         (static const char *const cpu_names): Add bdver2 entry.
9955         (ix86_option_override_internal): Add bdver2 instruction sets.
9956         (ix86_issue_rate): Add bdver2.
9957         (ix86_adjust_cost): Add bdver2.
9958         (has_dispatch): Add bdver2.
9959         * config/i386/i386.h (TARGET_BDVER2): New definition.
9960         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
9961         (enum processor_type): Add PROCESSOR_BDVER2.
9962         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
9963         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
9964         description.
9965
9966 2011-07-12  Richard Henderson  <rth@redhat.com>
9967
9968         PR target/49714
9969         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
9970         destination address in memory on some paths.
9971
9972 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
9973
9974         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
9975         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
9976         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
9977         * function.c (locate_and_pad_parm): Take it into account.
9978         * target.def (function_arg_round_boundary): New hook.
9979         * targhooks.c (default_function_arg_round_boundary): New function.
9980         * targhooks.h (default_function_arg_round_boundary): Declare.
9981         * doc/tm.texi: Regenerate.
9982
9983 2011-07-12  Richard Guenther  <rguenther@suse.de>
9984
9985         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
9986         Do not perform no-op changes.
9987
9988 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
9989
9990         * config/arm/predicates.md (neon_struct_operand): Make a normal
9991         predicate.
9992         (neon_struct_or_register_operand): New predicate.
9993         * config/arm/neon.md (movmisalign<mode>): Replace predicates
9994         with neon_struct_or_register_operand.
9995         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
9996         neon_struct_operand instead of memory_operand.
9997
9998 2011-07-12  Martin Jambor  <mjambor@suse.cz>
9999
10000         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
10001         * cgraph.c (cgraph_get_node_or_alias): Removed.
10002         (change_decl_assembler_name): Changed all calls to
10003         cgraph_get_node_or_alias to a call to cgraph_get_node.
10004         (cgraph_make_decl_local): Likewise.
10005         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
10006         * varasm.c (default_binds_local_p_1): Likewise.
10007         (decl_binds_to_current_def_p): Likewise.
10008
10009 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
10010
10011         PR tree-optimization/49712
10012         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
10013
10014 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
10015
10016         * genautomata.c (add_arc): Return void.  All callers changed.
10017         (make_automaton): Remove dead code.
10018
10019 2011-07-11  Richard Henderson  <rth@redhat.com>
10020
10021         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
10022         (DW_FRAME_POINTER_REGNUM): New.
10023         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
10024         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
10025         (dwf_regno): New.
10026         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
10027         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
10028         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
10029         Use it.
10030         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
10031         * dwarf2out.h (dwarf_frame_regnum): New.
10032         (struct cfa_loc): Document the domain of the reg member.
10033
10034 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
10035
10036         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
10037         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
10038
10039 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
10040
10041         PR debug/49676
10042         * dwarf2out.c (int_shift_loc_descriptor): New function.
10043         (int_loc_descriptor): If shorter, emit i as
10044         (i >> shift), shift, DW_OP_shl for suitable shift value.
10045         Similarly, try to optimize large negative values using
10046         DW_OP_neg of a positive value if shorter.
10047         (size_of_int_shift_loc_descriptor): New function.
10048         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
10049         changes.
10050         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
10051         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
10052         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
10053         is shorter.
10054         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
10055         addend as added DW_OP_plus if it is shorter.
10056
10057 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10058
10059         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
10060         (DTORS_SECTION_ASM_OP): Define.
10061
10062 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10063
10064         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
10065         * config/t-dfprules: Move to ../libgcc/config.
10066         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10067         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
10068         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
10069         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
10070         Likewise.
10071         (i[34567]86-*-cygwin*): Likewise.
10072         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
10073         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
10074         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
10075         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
10076         D64PBIT_FUNCS, D128PBIT_FUNCS.
10077
10078 2011-07-11  Richard Guenther  <rguenther@suse.de>
10079
10080         * tree-vrp.c (simplify_conversion_using_ranges): Manually
10081         translate the source value-range through the conversion chain.
10082
10083 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
10084
10085         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
10086
10087 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10088
10089         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
10090         a bi-arch compiler defaulting to 31-bit. In this case:
10091         (tmake_file): Add s390/t-linux64.
10092         * doc/install.texi: Add s390-linux to the list of targets supporting
10093         --enable-targets=all.
10094
10095 2011-07-11  Arthur Loiret  <aloiret@debian.org>
10096             Matthias Klose <doko@debian.org>
10097
10098         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
10099         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
10100         (tm_file): Add mips/linux64.h.
10101         (tmake_file): Add mips/t-linux64.
10102         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
10103         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
10104         instead of hardcoded mabi=n32.
10105         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
10106         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
10107         convention.
10108
10109 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10110
10111         * passes.c (init_optimization_passes): Add invariant motion pass
10112         after induction variable optimization.
10113
10114 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
10115
10116         PR target/39633
10117         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
10118         offsets 1..5 set cc0 in a usable way.
10119
10120 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
10121
10122         * tree.h (call_expr_arg): Remove.
10123         (call_expr_argp): Likewise.
10124
10125 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
10126
10127         * config/sparc/sparc.md (save_register_window_1): Rename to...
10128         (window_save): ...this.
10129         * config/sparc/sparc.c (emit_save_register_window): Rename to...
10130         (emit_window_save): ...this.
10131         (sparc_expand_prologue): Adjust to above renaming.
10132
10133 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10134
10135         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
10136         of movabs for x32.
10137
10138 2011-07-10  Richard Henderson  <rth@redhat.com>
10139
10140         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
10141         run final, instead of emitting text directly.
10142
10143 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
10144
10145         * config/i386/i386.c (ix86_option_override_internal): Turn on
10146         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
10147         small PIC models for TARGET_X32.
10148
10149 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
10150
10151         PR target/49684
10152         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
10153         $(LIBGCC2_CFLAGS).
10154
10155         PR bootstrap/49680
10156         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
10157         stray notes and debug insns by using prev_nonnote_nondebug_insn
10158         instead of PREV_INSN.
10159
10160 2011-07-09  Richard Henderson  <rth@redhat.com>
10161
10162         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
10163         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
10164         * dwarf2out.c: ... here.
10165         (output_all_cfis): Remove.
10166         (dwarf2out_switch_text_section): Use output_cfis directly.
10167         (size_of_locs): Export.
10168         (output_loc_sequence, output_loc_sequence_raw): Export.
10169         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
10170         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
10171         output_cfa_loc_raw): Move to ...
10172         * dwarfcfi.c: ... here.
10173         * dwarf2out.h: Update decls.
10174
10175 2011-07-09  Richard Henderson  <rth@redhat.com>
10176
10177         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
10178         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
10179         * dwarf2cfi.c: ... here.
10180         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
10181         (DWARF_ROUND, DWARF_CIE_ID): Remove.
10182         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
10183         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
10184         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
10185
10186 2011-07-09  Richard Henderson  <rth@redhat.com>
10187
10188         * dwarf2cfi.c (cie_return_save): New.
10189         (queue_reg_save): Use compare_reg_or_pc.
10190         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
10191         (dwarf2out_frame_debug_expr): Likewise.
10192         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
10193         (initial_return_save): Likewise.
10194         (execute_dwarf2_frame): Save and restore initial return save from
10195         the cie to the fde.
10196         * config/mips/mips.c (mips_frame_set): Remove special case for
10197         DWARF_FRAME_RETURN_COLUMN.
10198
10199 2011-07-09  Richard Henderson  <rth@redhat.com>
10200
10201         * dwarf2cfi.c (lookup_cfa): Remove.
10202         (execute_dwarf2_frame): Assert queues are empty on entry.
10203         Setup initial cfa directly, not via lookup_cfa.
10204         Don't clear args_size state here.
10205
10206 2011-07-09  Richard Henderson  <rth@redhat.com>
10207
10208         * dwarf2cfi.c (add_cfi_vec): New.
10209         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
10210         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
10211         (execute_dwarf2_frame): Set add_cfi_vec.
10212
10213 2011-07-09  Richard Henderson  <rth@redhat.com>
10214
10215         * defaults.h (ASM_COMMENT_START): Move here...
10216         * dwarf2asm.c: ... from here.
10217         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
10218         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
10219         * varasm.c: Likewise.
10220
10221 2011-07-09  Richard Henderson  <rth@redhat.com>
10222
10223         PR debug/49686
10224         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
10225         (create_cfi_notes): ... do it here instead.
10226
10227 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
10228
10229         PR debug/49676
10230         * dwarf2out.c (size_of_int_loc_descriptor): New function.
10231         (address_of_int_loc_descriptor): Use it.
10232         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
10233
10234 2011-07-09  Richard Henderson  <rth@redhat.com>
10235
10236         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
10237         (prologue, epilogue): New.
10238         (return, *rts): New.
10239         (blockage, setd, seti): New.
10240         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
10241         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
10242         (pdp11_saved_regno): New.
10243         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
10244         generate rtl instead of text.
10245         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
10246         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
10247         * config/pdp11/pdp11-protos.h: Update.
10248
10249 2011-07-09  Richard Henderson  <rth@redhat.com>
10250
10251         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
10252         try to insert an rtl prologue here.
10253         (rs6000_output_function_epilogue): Similarly.
10254         * config/rs6000/rs6000.md (prologue): Emit a barrier to
10255         satisfy !TARGET_SCHED_PROLOG.
10256         (epilogue, sibcall_epilogue): Likewise.
10257
10258 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
10259
10260         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
10261         (FP_REG_P): Delete.
10262         (IN_OR_GLOBAL_P): Likewise.
10263
10264 2011-07-08  Jason Merrill  <jason@redhat.com>
10265
10266         PR c++/45437
10267         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
10268         compound assignment.
10269
10270         * cgraph.c (cgraph_add_to_same_comdat_group): New.
10271         * cgraph.h: Declare it.
10272         * ipa.c (function_and_variable_visibility): Make sure thunks
10273         have the right visibility.
10274
10275 2011-07-08  Richard Henderson  <rth@redhat.com>
10276
10277         PR bootstrap/49680
10278         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
10279         any tablejump vector.
10280
10281         PR bootstrap/49680
10282         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
10283         end of the prologue.
10284
10285 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
10286
10287         PR target/49621
10288         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
10289         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
10290         * config/rs6000/vector.md (vector_select_<mode>,
10291         vector_select_<mode>_uns): Change second operand of NE to
10292         CONST0_RTX (<MODE>mode) instead of const0_rtx.
10293         * config/rs6000/altivec.md (*altivec_vsel<mode>,
10294         *altivec_vsel<mode>_uns): Expect second operand of NE to be
10295         zero_constant of the corresponding vector mode.
10296         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
10297         Likewise.
10298
10299 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10300
10301         * graphite-dependences.c (build_alias_set_powerset): Remove
10302         continue from loop, add one more assert.
10303
10304 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10305
10306         PR target/46779
10307         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
10308         In particular, allow 8-bit values in r28 and r29.
10309         (avr_hard_regno_scratch_ok): Disallow any register that might be
10310         part of the frame pointer.
10311         (avr_hard_regno_rename_ok): Same.
10312         (avr_legitimate_address_p): Don't allow SUBREGs.
10313
10314 2011-07-08  Julian Brown  <julian@codesourcery.com>
10315
10316         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
10317         big-endian mode.
10318         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
10319         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
10320         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
10321         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
10322         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
10323         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
10324         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
10325         registers in big-endian mode.
10326
10327 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10328
10329         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
10330         in terms of another.
10331         (write_attr_value): Write a cast if necessary.
10332
10333         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
10334         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
10335         (REG_WORDS_BIG_ENDIAN): Document.
10336         * doc/tm.texi: Regenerate.
10337         * reload.c (operands_match_p): Take it into account.
10338         (reload_adjust_reg_for_mode): Likewise.
10339         * rtlanal.c (subreg_get_info): Likewise.
10340
10341 2011-07-08  Richard Guenther  <rguenther@suse.de>
10342
10343         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
10344         folding.
10345
10346 2011-07-08  Kai Tietz  <ktietz@redhat.com>
10347
10348         * fold-const.c (fold_truth_andor): Factored out truth_andor
10349         label from fold_binary as function.
10350         (fold_binary_loc): Replace truth_andor lable
10351         by function fold_truth_andor.
10352
10353 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
10354
10355         PR middle-end/49519
10356         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
10357         check if address is stored in register. If so - give up.
10358         (check_sibcall_argument_overlap_1): Do not perform check of
10359         overlapping when it is call to address.
10360
10361 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
10362
10363         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
10364         of magic '31'.
10365
10366 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
10367
10368         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
10369         GET_MODE_BITSIZE where appropriate.
10370         (widen_leading, expand_parity, expand_ctz, expand_ffs,
10371         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
10372         expand_float, expand_fix): Likewise.
10373         * expr.c (convert_move, convert_modes, expand_expr_real_2,
10374         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
10375         * stor-layout.c (get_mode_bounds): Likewise.
10376         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
10377         Likewise.
10378         * convert.c (convert_to_integer): Likewise.
10379         * expmed.c (expand_shift_1): Likewise.
10380
10381         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
10382         a bitsize.
10383
10384         * optabs.c (expand_binop): Tighten conditions for doubleword
10385         expansions.
10386         (widen_bswap): Assert that mode bitsize and precision are the same.
10387         * stor-layout.c (get_best_mode): Skip modes that have lower
10388         precision than bitsize.
10389         * recog.c (simplify_while_replacing): Assert that bitsize and
10390         precision are the same.
10391
10392 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10393
10394         * Makefile.in (LIBGCOV): Remove.
10395         (libgcc.mvars): Remove LIBGCOV.
10396         * libgov.c: Move to ../libgcc.
10397
10398 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10399
10400         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
10401
10402 2011-07-08  Martin Jambor  <mjambor@suse.cz>
10403
10404         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
10405         is too big for total scalarization.
10406
10407 2011-07-07  Richard Henderson  <rth@redhat.com>
10408
10409         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
10410         (DBX_DEBUGGING_INFO): Undef.
10411
10412 2011-07-07  Richard Henderson  <rth@redhat.com>
10413
10414         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
10415         Handle some opcodes specially for debugging.
10416         * print-rtl.c: Include dwarf2out.h
10417         (print_rtx): Handle NOTE_INSN_CFI.
10418         * Makefile.in (print-rtl.o): Update.
10419
10420 2011-07-07  Richard Henderson  <rth@redhat.com>
10421
10422         * tree-pass.h (pass_dwarf2_frame): Declare.
10423         * passes.c (init_optimization_passes): Add it.
10424         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
10425         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
10426         make static, do not call add_cfis_to_fde.
10427         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
10428         dwarf2out_frame_init): Merge into...
10429         (execute_dwarf2_frame): ... here.  New function.
10430         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
10431         saved_do_cfi_asm to a tri-state variable.
10432         (gate_dwarf2_frame, pass_dwarf2_frame): New.
10433         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
10434         if it has yet to be done.  Don't call dwarf2cfi_function_init.
10435         * dwarf2out.h, debug.h: Update decls.
10436         * final.c (final_start_function): Don't call
10437         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
10438         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
10439         * toplev.c (lang_dependent_init): Likewise.
10440
10441 2011-07-07  Richard Henderson  <rth@redhat.com>
10442
10443         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
10444         FDE_TABLE_INCREMENT): Replace with...
10445         (fde_vec): ... this, a new vector.
10446         (current_fde): Remove.  Replace all users with cfun->fde.
10447         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
10448         (size_of_aranges, dwarf2out_finish): Likewise.
10449         (dwarf2out_alloc_current_fde): Break out from ...
10450         (dwarf2out_begin_prologue): ... here.
10451         (dwarf2out_frame_init): Remove.
10452         * dwarf2cfi.c: Update all users of current_fde.
10453         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
10454         * dwarf2out.h: Update decls.
10455         (dw_fde_node): Add fde_index member.
10456         * function.h (struct function): Add fde member.
10457
10458 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10459             Richard Henderson  <rth@redhat.com>
10460
10461         * dwarf2cfi.c (add_cfi): Remove.
10462         (dwarf2out_cfi_label): Remove force argument.  Only generate the
10463         label name.
10464         (add_fde_cfi): Simplify the different code paths.
10465         (add_cie_cfi): New.
10466         (old_cfa, old_cfa_remember): New.
10467         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
10468         (last_reg_save_label): Remove.
10469         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
10470         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10471         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10472         dwarf2out_frame_debug_cfa_expression,
10473         dwarf2out_frame_debug_cfa_restore,
10474         dwarf2out_frame_debug_cfa_window_save,
10475         dwarf2out_frame_debug_expr): Remove label parameter.
10476         (cfi_label_required_p, add_cfis_to_fde): New.
10477         (dwarf2out_frame_debug_after_prologue): New.
10478         (dwarf2cfi_frame_init): Initialize old_cfa.
10479         (dwarf2out_frame_debug_restore_state): Likewise.
10480         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
10481         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
10482         * final.c (final_start_function): Call
10483         dwarf2out_frame_debug_after_prologue.
10484
10485 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10486             Richard Henderson  <rth@redhat.com>
10487
10488         * dwarf2cfi.c (cfi_insn): New.
10489         (dwarf2out_cfi_label): Don't emit cfi label here.
10490         (add_fde_cfi): Create a NOTE_INSN_CFI.
10491         (dwarf2out_frame_debug): Setup cfi_insn.
10492         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
10493         (dwarf2out_cfi_begin_epilogue): Make static.
10494         (dwarf2out_frame_debug_restore_state): Make static.
10495         * dwarf2out.c (output_cfi_directive): Make static.
10496         (dwarf2out_emit_cfi): New.
10497         * dwarf2out.h: Update.
10498         * final.c (final): Remove CFI notes.
10499         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
10500         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
10501         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
10502         * insn-notes.def (NOTE_INSN_CFI): New.
10503         (NOTE_INSN_CFI_LABEL): New.
10504         * rtl.h (union rtunion_def): Add rt_cfi member.
10505         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
10506
10507 2011-07-07  Richard Henderson  <rth@redhat.com>
10508
10509         * dwarf2cfi.c: New file.
10510         * Makefile.in (OBJS): Add it.
10511         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
10512         * gengtype.c (open_base_files): Include dwarf2out.h.
10513         * coretypes.h (enum var_init_status): Move from ...
10514         * rtl.h: ... here.
10515         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
10516         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
10517         expand_builtin_dwarf_sp_column, init_return_column_size,
10518         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
10519         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
10520         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
10521         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
10522         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
10523         compute_barrier_args_size, dwarf2out_args_size,
10524         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
10525         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
10526         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
10527         queue_reg_save, dwarf2out_flush_queued_reg_saves,
10528         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
10529         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
10530         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
10531         dwarf2out_frame_debug_cfa_expression,
10532         dwarf2out_frame_debug_cfa_restore,
10533         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
10534         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
10535         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
10536         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
10537         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
10538         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
10539         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
10540         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
10541         dw_loc_descr_node): Move to dwarf2out.h.
10542         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
10543         mem_loc_descriptor): Export.
10544         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
10545         (dwarf2out_frame_init): Extract CIE generation code to
10546         dwarf2cfi_frame_init.
10547
10548 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
10549
10550         PR target/49660
10551         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
10552         MASK_V8PLUS, remove commented out flag and reorder.
10553
10554 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10555
10556         PR c/49644
10557         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
10558         one non-complex and one complex argument, call c_save_expr on both
10559         operands.
10560
10561 2011-07-07  Martin Jambor  <mjambor@suse.cz>
10562
10563         PR middle-end/49495
10564         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
10565         (verify_cgraph_node): Some functinality moved to
10566         verify_edge_corresponds_to_fndecl, call it.
10567
10568 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10569
10570         * config.gcc (*local*): Remove.
10571         * doc/install-old.texi: Don't mention local configurations.
10572
10573 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10574
10575         PR debug/49522
10576         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
10577         referencing debug insns that have been reset.
10578         (dead_debug_insert_before): Don't assert reg is non-NULL,
10579         instead return immediately if it is NULL.
10580
10581 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10582
10583         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
10584
10585 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10586
10587         * hw-doloop.c: New file.
10588         * hw-doloop.h: New file.
10589         * Makefile.in (OBJS): Add hw-doloop.o.
10590         (hw-doloop.o): New rule.
10591         ($(obj_out_file)): Add hw-doloop.h dependency.
10592         * config/bfin/bfin.c: Include "hw-doloop.h".
10593         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
10594         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
10595         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
10596         type changed to hwloop_info.  Return bool, true if the loop was
10597         successfully optimized.  Remove code that was moved to
10598         hw-doloop.c, and adjust other parts.
10599         (hwloop_fail): New static function, containing parts that used
10600         to be in bfin_optimize_loop.
10601         (bfin_discover_loop, bfin_discover_loops, free_loops,
10602         bfin_reorder_loops): Remove.
10603         (hwloop_pattern_reg): New static function.
10604         (bfin_doloop_hooks): New variable.
10605         (bfin_reorg_loops): Remove most code, call reorg_loops.
10606         * config/bfin/bfin.md (doloop_end splitter): Also enable if
10607         loop counter is a memory_operand.
10608
10609 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10610
10611         * config.gcc: Support --with-multilib-list for x86 Linux targets.
10612
10613         * configure.ac: Mention x86-64 for --with-multilib-list.
10614         * configure: Regenerated.
10615
10616         * config/i386/gnu-user64.h (SPEC_64): Support x32.
10617         (SPEC_32): Likewise.
10618         (ASM_SPEC): Likewise.
10619         (LINK_SPEC): Likewise.
10620         (TARGET_THREAD_SSP_OFFSET): Likewise.
10621         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
10622         (SPEC_X32): New.
10623
10624         * config/i386/i386.h (TARGET_X32): New.
10625         (TARGET_LP64): New.
10626         (LONG_TYPE_SIZE): Likewise.
10627         (POINTER_SIZE): Likewise.
10628         (POINTERS_EXTEND_UNSIGNED): Likewise.
10629         (OPT_ARCH64): Support x32.
10630         (OPT_ARCH32): Likewise.
10631
10632         * config/i386/i386.opt (mx32): New.
10633
10634         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
10635         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10636         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
10637         (GLIBC_DYNAMIC_LINKERX32): Likewise.
10638
10639         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
10640         (BIONIC_DYNAMIC_LINKERX32): Likewise.
10641         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
10642
10643         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
10644
10645         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
10646
10647         * doc/invoke.texi: Document -mx32.
10648
10649 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10650
10651         * doc/invoke.texi (mwords-little-endian): Deprecate.
10652         * config/arm/arm.opt (mwords-little-endian): Likewise.
10653         * config/arm/arm.c (arm_option_override): Warn about the deprecation
10654         of -mwords-little-endian.
10655
10656 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
10657
10658         * reload1.c (choose_reload_regs): Use mode sizes to check whether
10659         an old reload register completely defines the required value.
10660
10661 2011-07-07  Richard Guenther  <rguenther@suse.de>
10662
10663         * fold-const.c (fold_unary_loc): Do not strip sign-changes
10664         for NEGATE_EXPR.
10665
10666 2011-07-07  Richard Guenther  <rguenther@suse.de>
10667
10668         * tree-vrp.c (simplify_conversion_using_ranges): New function.
10669         (simplify_stmt_using_ranges): Call it.
10670
10671 2011-07-07  Kai Tietz  <ktietz@redhat.com>
10672
10673         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
10674         (lookup_logical_inverted_value): Likewise.
10675         (simplify_bitwise_binary_1): Likewise.
10676         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
10677
10678 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10679
10680         * gcc.c (%[Spec]): Don't document.
10681         (struct spec_list): Update comment.
10682         (do_spec_1): Don't handle %[Spec].
10683         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
10684
10685 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
10686
10687         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
10688         default based on TARGET_ASM_NAMED_SECTION.
10689         * common/common-target.def (have_named_sections): Default to true.
10690         * common/config/default-common.c: Don't include tm.h.
10691         * common/config/picochip/picochip-common.c
10692         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
10693         * common/config/m32c/m32c-common.c: Remove.
10694         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
10695         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10696         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10697         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10698         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10699         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10700         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
10701
10702 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
10703
10704         PR middle-end/49640
10705         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
10706         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
10707
10708 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10709
10710         PR libmudflap/49550
10711         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
10712
10713 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10714
10715         PR target/39150
10716         * configure.ac (gcc_cv_as_hidden): Also accept
10717         x86_64-*-solaris2.1[0-9]*.
10718         (gcc_cv_as_cfi_directive): Likewise.
10719         (gcc_cv_as_comdat_group_group): Likewise.
10720         (set_have_as_tls): Likewise.
10721         * configure: Regenerate.
10722         * config.gcc (i[34567]86-*-solaris2*): Also handle
10723         x86_64-*-solaris2.1[0-9]*.
10724         * config.host (i[34567]86-*-solaris2*): Likewise.
10725         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10726         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
10727         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
10728         (TARGET_LD_EMULATION): Use it.
10729         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
10730         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
10731         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
10732         (ASM_CPU64_DEFAULT_SPEC): Define.
10733         (ASM_CPU_SPEC): Use %(asm_cpu_default).
10734         (ASM_SPEC): Redefine.
10735         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
10736         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
10737         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
10738         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
10739         configuration.
10740         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
10741
10742 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10743
10744         * config/sol2.h (ASM_SPEC): Split into ...
10745         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
10746         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
10747         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
10748         (ASM_SPEC): Use ASM_SPEC_BASE.
10749         * config/sparc/sol2.h (ASM_SPEC): Redefine.
10750
10751 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
10752
10753         * config/avr/avr.md (*reload_insi): Change predicate #1 to
10754         const_int_operand.  Ditto for peep2 producing this insn.
10755         Add argument to output_reload_insisf call.
10756         (*movsi,*movsf): Add argument to output_movsisf call.
10757         (*reload_insf): New insn and new peep2 to produce it.
10758         * config/avr/avr-protos.h (output_movsisf): Change prototype.
10759         (output_reload_insisf): Change prototype.
10760         * config/avr/avr.c (avr_asm_len): New function.
10761         (output_reload_insisf): Rewrite.
10762         (output_movsisf): Change prototype.  output_reload_insisf for
10763         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
10764         (adjust_insn_length): Add argument to output_movsisf and
10765         output_reload_insisf call.
10766
10767 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10768
10769         * emit-rtl.c (paradoxical_subreg_p): New function.
10770         * rtl.h (paradoxical_subreg_p): Declare.
10771         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
10772         apply_distributive_law, simplify_comparison, simplify_set): Use it.
10773         * cse.c (record_jump_cond, cse_insn): Likewise.
10774         * expr.c (force_operand): Likewise.
10775         * rtlanal.c (num_sign_bit_copies1): Likewise.
10776         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
10777         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
10778         (push_reload): Use precision to check for paradoxical subregs.
10779         * expmed.c (extract_bit_field_1): Likewise.
10780
10781         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
10782         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
10783         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
10784         simplify_set, simplify_logical, expand_compound_operation,
10785         make_extraction, force_to_mode, if_then_else_cond, extended_count,
10786         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
10787         record_value_for_reg): Likewise.
10788         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
10789         * simplify-rtx. c (simplify_unary_operation_1,
10790         simplify_binary_operation_1, simplify_const_relational_operation):
10791         Likewise.
10792
10793         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
10794         instead of GET_MODE_BITSIZE where appropriate.
10795         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
10796         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
10797         init_num_sign_bit_copies_in_rep): Likewise.
10798         * cse.c (fold_rtx, cse_insn): Likewise.
10799         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
10800         * simplify-rtx.c (simplify_unary_operation_1,
10801         simplify_const_unary_operation, simplify_binary_operation_1,
10802         simplify_const_binary_operation, simplify_ternary_operation,
10803         simplify_const_relational_operation, simplify_subreg): Likewise.
10804         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
10805         simplify_if_then_else, simplify_set, expand_compound_operation,
10806         expand_field_assignment, make_extraction, if_then_else_cond,
10807         make_compound_operation, force_to_mode, make_field_assignment,
10808         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
10809         extended_count, try_widen_shift_mode, simplify_shift_const_1,
10810         simplify_comparison, record_promoted_value, simplify_compare_const,
10811         record_dead_and_set_regs_1): Likewise.
10812
10813         Revert:
10814         * simplify-rtx.c (simplify_const_binary_operation): Use the
10815         shift_truncation_mask hook instead of performing modulo by width.
10816         Compare against mode precision, not bitsize.
10817         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10818         Use shift_truncation_mask instead of constructing the value manually.
10819
10820 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10821
10822         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
10823         declaration.
10824         (rs6000_save_toc_in_prologue_p): Ditto.
10825
10826         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
10827         up the static chain (r11) during indirect function calls.
10828         (-msave-toc-indirect): New undocumented debug switch.
10829
10830         * config/rs6000/rs6000.c (struct machine_function): Add
10831         save_toc_in_prologue field to note whether the prologue needs to
10832         save the TOC value in the reserved stack location.
10833         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
10834         to save the TOC in the prologue, do so.
10835         (rs6000_trampoline_init): Don't allow creating AIX style
10836         trampolines if -mno-r11 is in effect.
10837         (rs6000_call_indirect_aix): New function to create AIX style
10838         indirect calls, adding support for -mno-r11 to suppress loading
10839         the static chain, and saving the TOC in the prologue instead of
10840         the call body.
10841         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
10842         TOC in the prologue.
10843
10844         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
10845         register numbers.
10846         (TOC_REGNUM): Ditto.
10847         (STATIC_CHAIN_REGNUM): Ditto.
10848         (ARG_POINTER_REGNUM): Ditto.
10849         (SFP_REGNO): Delete, unused.
10850         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
10851         function descriptor offsets.
10852         (TOC_SAVE_OFFSET_64BIT): Ditto.
10853         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
10854         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
10855         (AIX_FUNC_DESC_SC_32BIT): Ditto.
10856         (AIX_FUNC_DESC_SC_64BIT): Ditto.
10857         (ptrload): New mode attribute for the appropriate load of a pointer.
10858         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
10859         (call_indirect_aix64): Ditto.
10860         (call_value_indirect_aix32): Ditto.
10861         (call_value_indirect_aix64): Ditto.
10862         (call_indirect_nonlocal_aix32_internal): Ditto.
10863         (call_indirect_nonlocal_aix32): Ditto.
10864         (call_indirect_nonlocal_aix64_internal): Ditto.
10865         (call_indirect_nonlocal_aix64): Ditto.
10866         (call): Rewrite AIX indirect function calls.  Add support for
10867         eliminating the static chain, and for moving the save of the TOC
10868         to the function prologue.
10869         (call_value): Ditto.
10870         (call_indirect_aix<ptrsize>): Ditto.
10871         (call_indirect_aix<ptrsize>_internal): Ditto.
10872         (call_indirect_aix<ptrsize>_internal2): Ditto.
10873         (call_indirect_aix<ptrsize>_nor11): Ditto.
10874         (call_value_indirect_aix<ptrsize>): Ditto.
10875         (call_value_indirect_aix<ptrsize>_internal): Ditto.
10876         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
10877         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
10878         (call_nonlocal_aix32): Relocate in the rs6000.md file.
10879         (call_nonlocal_aix64): Ditto.
10880
10881         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
10882         -mno-r11 documentation.
10883
10884 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
10885
10886         PR other/49658
10887         * doc/extend.texi (Compound Literals): Fix typo.
10888
10889 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
10890
10891         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
10892
10893 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
10894
10895         * configure.ac (plugin-version.h): Generate
10896         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
10897         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
10898         macros.
10899
10900         * configure: Regenerate.
10901
10902         * doc/plugins.texi (Building GCC plugins): Mention
10903         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
10904
10905 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10906
10907         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
10908         * combine.c (make_extraction, gen_lowpart_or_truncate,
10909         apply_distributive_law, simplify_comparison,
10910         reg_truncated_to_mode, record_truncated_value): Use it.
10911         * cse.c (notreg_cost): Likewise.
10912         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10913         * expr.c (convert_move, convert_modes): Likewise.
10914         * optabs.c (expand_binop, expand_unop): Likewise.
10915         * postreload.c (move2add_last_label): Likewise.
10916         * regmove.c (optimize_reg_copy_3): Likewise.
10917         * rtlhooks.c (gen_lowpart_general): Likewise.
10918         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10919
10920 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
10921
10922         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
10923
10924 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10925
10926         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
10927         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
10928         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
10929         (simplify_const_unary_operation, simplify_binary_operation_1,
10930         simplify_const_binary_operation, simplify_const_relational_operation):
10931         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
10932         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
10933         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
10934         simplify_shift_const_1, simplify_comparison): Likewise.
10935         * expr.c (convert_modes): Likewise.
10936         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
10937         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
10938         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
10939
10940         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
10941
10942 2011-07-06  Richard Guenther  <rguenther@suse.de>
10943
10944         PR tree-optimization/49645
10945         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
10946         register variables.
10947         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
10948         in type qualification here ...
10949         (copy_reference_ops_from_ref): ... not here.
10950         (vn_reference_lookup_3): ... or here.
10951         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
10952         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
10953
10954 2011-07-06  Ian Lance Taylor  <iant@google.com>
10955
10956         * doc/install.texi (Configuration): It's
10957         --enable-gnu-indirect-function, not --enable-indirect-function.
10958
10959 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
10960
10961         * simplify-rtx.c (simplify_const_binary_operation): Use the
10962         shift_truncation_mask hook instead of performing modulo by width.
10963         Compare against mode precision, not bitsize.
10964         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
10965         Use shift_truncation_mask instead of constructing the value manually.
10966
10967 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
10968
10969         PR middle-end/47383
10970         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
10971         address computation and convert to address_mode if needed.
10972
10973 2011-07-06  Richard Guenther  <rguenther@suse.de>
10974
10975         * tree.c (build_common_tree_nodes_2): Merge with
10976         build_common_tree_nodes.
10977         * tree.h (build_common_tree_nodes): Adjust prototype.
10978         (build_common_tree_nodes_2): Remove.
10979         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
10980         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
10981
10982 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
10983
10984         PR tree-optimization/49618
10985         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
10986         t recurse on the decl.
10987         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
10988         return true if expr isn't known to be defined in current
10989         TU or some other LTO partition.
10990
10991 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
10992
10993         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
10994         override CASE_VALUES_THRESHOLD.
10995
10996         * stmt.c (toplevel): Include params.h.
10997         (case_values_threshold): Use the --param case-values-threshold
10998         value if non-zero, otherwise use machine dependent value.
10999         (expand_case): Use case_values_threshold.
11000
11001         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
11002
11003         * doc/invoke.texi (--param case-values-threshold): Document.
11004
11005 2011-07-05  Richard Henderson  <rth@redhat.com>
11006
11007         * dwarf2out.c (dwarf2out_cfi_label): Make static.
11008         (dwarf2out_flush_queued_reg_saves): Make static.
11009         (dwarf2out_reg_save): Remove.
11010         (dwarf2out_return_save): Remove.
11011         (dwarf2out_return_reg): Remove.
11012         (dwarf2out_reg_save_reg): Remove.
11013         (dwarf2out_def_cfa): Merge into ...
11014         (dwarf2out_frame_init): ... here.
11015         * dwarf2out.h, tree.h: Remove declarations as necessary.
11016
11017 2011-07-05  Richard Henderson  <rth@redhat.com>
11018
11019         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
11020         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11021         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
11022         the alloc insn.
11023
11024         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
11025         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
11026         (process_epilogue): Don't call dwarf2out_def_cfa.
11027
11028         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
11029         indicate the return address save.
11030         (process_cfa_register): Likewise.
11031
11032         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
11033         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
11034
11035         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
11036         for ar.pfs save at alloc insn.
11037
11038 2011-07-05  Richard Henderson  <rth@redhat.com>
11039
11040         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
11041         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11042         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
11043         stack pointer save.
11044         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
11045         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
11046         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
11047         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
11048
11049 2011-07-05  Richard Henderson  <rth@redhat.com>
11050
11051         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
11052         VUNSPEC_* constants here instead of via define_constants.
11053         (VUNSPEC_PEM): New constant.
11054         (procedure_entry_mask): New insn.
11055         (prologue): New expander.
11056         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
11057         (vax_expand_prologue): Rename from vax_output_function_prologue;
11058         emit rtl instead of text.
11059         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
11060         (print_operand): Add 'x' prefix.
11061
11062 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11063
11064         PR middle-end/47715
11065         * calls.c (precompute_register_parameters): Promote the function
11066         argument before checking non-legitimate constant.
11067
11068 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11069
11070         PR tree-optimization/47654
11071         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
11072         (lst_do_strip_mine_loop): Return an int.
11073         (lst_do_strip_mine): Same.
11074         (scop_do_strip_mine): Same.
11075         (scop_do_block): Loop blocking should strip-mine at least two loops.
11076         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
11077         (scop_do_interchange): Same.
11078         * graphite-poly.h (scop_do_interchange): Update declaration.
11079         (scop_do_strip_mine): Same.
11080
11081 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11082
11083         * graphite-clast-to-gimple.c (precision_for_value): Removed.
11084         (precision_for_interval): Removed.
11085         (gcc_type_for_interval): Use mpz_sizeinbase.
11086
11087 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11088
11089         * graphite-ppl.h (value_max): Correct computation of max.
11090
11091 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
11092
11093         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
11094
11095 2011-07-05  Richard Guenther  <rguenther@suse.de>
11096
11097         * c-decl.c (c_init_decl_processing): Defer building common
11098         tree nodes to c_common_nodes_and_builtins.
11099
11100 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
11101
11102         PR tree-optimization/49580
11103         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
11104         the loop's number of iterations.
11105         * tree-parloops.c (transform_to_exit_first_loop): Add the
11106         handling of the loop's number of iterations before the call
11107         to gimple_duplicate_sese_tail.
11108         Insert the stmt caclculating the new rhs of the loop's
11109         condition stmt to the preheader instead of iters_bb.
11110
11111 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11112
11113         PR rtl-optimization/47449
11114         * fwprop.c (forward_propagate_subreg): Don't propagate hard
11115         register nor zero/sign extended hard register.
11116
11117 2011-07-05  Richard Guenther  <rguenther@suse.de>
11118
11119         PR tree-optimization/49518
11120         PR tree-optimization/49628
11121         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
11122         irrelevant and invariant data-references.
11123         (vect_analyze_data_ref_access): For invariant loads clear the
11124         group association.
11125
11126 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
11127
11128         PR rtl-optimization/49619
11129         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
11130         pass VOIDmode as op0_mode to recursive call, and return temp even
11131         when different from tor, just if it is not IOR of the original
11132         PLUS arguments.
11133
11134         PR rtl-optimization/49472
11135         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
11136         negating MULT, negate the second operand instead of first.
11137         (simplify_binary_operation_1) <case MULT>: If one operand is
11138         a NEG and the other is MULT, don't attempt to optimize by negation
11139         of the MULT operand if it only moves the NEG operation around.
11140
11141         PR debug/49602
11142         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
11143         get_current_def return value if it can't be trusted to be
11144         the current value of the variable in the current bb.
11145
11146 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
11147
11148         PR target/49600
11149         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
11150         general register to memory for !TARGET_INTER_UNIT_MOVES.
11151
11152 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11153
11154         PR target/44643
11155         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
11156         instead of TREE_READONLY.
11157
11158 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11159
11160         * doc/extend.texi (AVR Built-in Functions): Update documentation
11161         of __builtin_avr_fmul*.
11162         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
11163         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
11164         * config/avr/avr.md (fmul): Rename to fmul_insn.
11165         (fmuls): Rename to fmuls_insn.
11166         (fmulsu): Rename to fmulsu_insn.
11167         (fmul,fmuls,fmulsu): New expander.
11168         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
11169         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
11170         * config/avr/libgcc.S (__fmul): New function.
11171         (__fmuls): New function.
11172         (__fmulsu,__fmulsu_exit): New function.
11173
11174 2011-07-04  Richard Guenther  <rguenther@suse.de>
11175
11176         PR tree-optimization/49615
11177         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
11178         basic-block index check.
11179
11180 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
11181
11182         * longlong.h (count_leading_zeros, count_trailing_zeros,
11183         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
11184         resp. 64.
11185
11186 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
11187
11188         PR tree-optimization/49610
11189         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
11190         a basic block.
11191
11192 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11193             Olivier Hainque  <hainque@adacore.com>
11194             Nicolas Setton  <setton@adacore.com>
11195
11196         * tree.h (TYPE_ARTIFICIAL): New flag.
11197         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
11198         the DIE of the type if it is artificial.
11199         (gen_array_type_die): Likewise.
11200         (gen_enumeration_type_die): Likewise.
11201         (gen_struct_or_union_type_die): Likewise.
11202         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
11203         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
11204
11205 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11206
11207         * tree-object-size.c (pass_through_call): Handle
11208         BUILT_IN_ASSUME_ALIGNED.
11209
11210 2011-07-01  Martin Jambor  <mjambor@suse.cz>
11211
11212         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
11213
11214 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
11215
11216         PR middle-end/48016
11217         * explow.c (update_nonlocal_goto_save_area): Use proper mode
11218         for stack save area.
11219         * function.c (expand_function_start): Likewise.
11220
11221 2011-07-01  Richard Guenther  <rguenther@suse.de>
11222
11223         PR middle-end/49596
11224         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
11225         may have unknown refs.
11226
11227 2011-07-01  Kai Tietz  <ktietz@redhat.com>
11228
11229         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
11230
11231 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11232
11233         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
11234         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
11235         (Specific, mips-sgi-irix6): Likewise.
11236
11237 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11238
11239         PR libmudflap/49549
11240         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
11241
11242 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
11243
11244         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
11245         [idx]= and [idx1 ... idx2]= before initializers if needed for
11246         array initializers.
11247
11248 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
11249
11250         * config.gcc (score-*-elf): Remove score7.o.
11251         * config/score/t-score-elf: Likewise.
11252         * config/score/score.c: Merge score7 to score.c and
11253         remove forwarding functions.
11254         * config/score/score7.c: Deleted.
11255         * config/score/score7.h: Deleted.
11256
11257 2011-07-01  Richard Guenther  <rguenther@suse.de>
11258
11259         PR tree-optimization/49603
11260         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
11261
11262 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11263
11264         * tree-sra.c (struct access): Rename total_scalarization to
11265         grp_total_scalarization
11266         (completely_scalarize_var): New function.
11267         (sort_and_splice_var_accesses): Set total_scalarization in the
11268         representative access.
11269         (analyze_access_subtree): Propagate total scalarization accross the
11270         tree, no holes in totally scalarized trees, simplify coverage
11271         computation.
11272         (analyze_all_variable_accesses): Call completely_scalarize_var instead
11273         of completely_scalarize_record.
11274
11275 2011-06-30  Richard Henderson  <rth@redhat.com>
11276
11277         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
11278         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
11279         * config/i386/i386.c: Don't include dwarf2out.h.
11280         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
11281         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
11282         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
11283         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
11284         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
11285
11286 2011-06-30  Richard Henderson  <rth@redhat.com>
11287
11288         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
11289         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11290         * final.c (final_scan_insn): Look for it, and invoke
11291         dwarf2out_frame_debug before the insn if found.
11292
11293 2011-06-30  Richard Henderson  <rth@redhat.com>
11294
11295         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
11296         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
11297
11298 2011-06-30  Richard Henderson  <rth@redhat.com>
11299
11300         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
11301         Define a vector of this type.
11302         (regs_saved_in_regs): Use a VEC.
11303         (num_regs_saved_in_regs): Remove.
11304         (compare_reg_or_pc): New.
11305         (record_reg_saved_in_reg): Split out from...
11306         (dwarf2out_flush_queued_reg_saves): ... here.
11307         (clobbers_queued_reg_save): Update for VEC.
11308         (reg_saved_in): Likewise.
11309         (dwarf2out_frame_debug_init): Likewise.
11310         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
11311         (dwarf2out_frame_debug_cfa_register): Likewise.
11312
11313 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11314
11315         PR tree-optimization/49572
11316         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
11317         type of the RHS instead of that of the LHS for the expression type.
11318
11319 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
11320
11321         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
11322         unconditionally.
11323
11324 2011-06-30  Richard Guenther  <rguenther@suse.de>
11325
11326         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
11327         * tree-ssa-structalias.c (create_variable_info_for): Do not
11328         add initial constraints for non-var-decls.  Properly handle
11329         globals in other ltrans partitions.
11330         (intra_create_variable_infos): Manually create constraints for
11331         the fake no-alias parameter.
11332         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
11333         and assert there are no clones.
11334
11335 2011-06-30  Richard Guenther  <rguenther@suse.de>
11336
11337         PR tree-optimization/46787
11338         * tree-data-ref.c (dr_address_invariant_p): Remove.
11339         (find_data_references_in_stmt): Invariant accesses are ok now.
11340         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
11341         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
11342         invariant loads.
11343
11344 2011-06-30  Martin Jambor  <mjambor@suse.cz>
11345
11346         PR tree-optimization/49094
11347         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
11348         (build_accesses_from_assign): Use it.
11349
11350 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11351
11352         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11353         handling of BUILT_IN_ASSUME_ALIGNED.
11354
11355         PR debug/49364
11356         * dwarf2out.c (output_abbrev_section): Don't return early
11357         if abbrev_die_table_in_use is 1.
11358         (dwarf2out_finish): Instead don't call output_abbrev_section
11359         nor emit abbrev_section_label in that case.
11360
11361 2011-06-30  Nick Clifton  <nickc@redhat.com>
11362
11363         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
11364         for the V850E.
11365
11366 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
11367
11368         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
11369         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
11370
11371 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
11372
11373         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
11374         both pattern and original statements if necessary.
11375         (vect_transform_loop): Likewise.
11376         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
11377         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
11378         Mark the pattern statement only if the original statement doesn't
11379         have its own uses.
11380         (process_use): Call vect_mark_relevant with additional parameter.
11381         (vect_mark_stmts_to_be_vectorized): Likewise.
11382         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
11383         (vect_analyze_stmt): Handle both pattern and original statements
11384         if necessary.
11385         (vect_transform_stmt): Don't store vectorized pattern statement
11386         in the original statement.
11387         (vect_is_simple_use_1): Use related pattern statement only if the
11388         original statement is irrelevant.
11389         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
11390
11391 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
11392
11393         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
11394         option.
11395         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
11396         entry.
11397         (TARGET_AVX128_OPTIMAL): New definition.
11398         * config/i386/i386.c (initial_ix86_tune_features): Initialize
11399         X86_TUNE_AVX128_OPTIMAL entry.
11400         (ix86_option_override_internal): Enable the generation
11401         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
11402         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
11403         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
11404
11405 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11406
11407         PR tree-optimization/49539
11408         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
11409         names by means of stmt_references_abnormal_ssa_name.
11410         (associate_plusminus): Call can_propagate_from before propagating
11411         from definition statements.
11412         (ssa_forward_propagate_and_combine): Remove superfluous newline.
11413
11414 2011-06-29  Richard Guenther  <rguenther@suse.de>
11415
11416         * doc/invoke.texi: Document -scev dump modifier.
11417         * tree-pass.h (TDF_SCEV): New dump flag.
11418         * tree-dump.c (dump_option_value_in): Add scev.
11419         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
11420         * tree-scalar-evolution.c: Likewise.
11421
11422 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
11423
11424         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
11425         (cxa_type_match): Correct declaration.
11426         (__gnu_unwind_pr_common): Reconstruct additional indirection
11427         when __cxa_type_match returns succeeded_with_ptr_to_base.
11428
11429 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11430
11431         PR rtl-optimization/49114
11432         * reload.c (struct replacement): Remove SUBREG_LOC member.
11433         (push_reload): Do not set it.
11434         (push_replacement): Likewise.
11435         (subst_reload): Remove dead code.
11436         (copy_replacements): Remove assertion.
11437         (copy_replacements_1): Do not handle SUBREG_LOC.
11438         (move_replacements): Likewise.
11439         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
11440         Detect subregs via recursive descent instead of via SUBREG_LOC.
11441
11442 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11443
11444         * config/avr/avr.c (avr_encode_section_info): Dispatch to
11445         default_encode_section_info.
11446
11447 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
11448
11449         PR tree-optimization/49545
11450         * builtins.c (get_object_alignment_1): Update function comment.
11451         Do not use DECL_ALIGN for functions, but test
11452         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
11453         * fold-const.c (get_pointer_modulus_and_residue): Don't check
11454         for functions here.
11455         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11456
11457 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
11458
11459         PR debug/49567
11460         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
11461         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
11462
11463 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11464
11465         PR target/34734
11466         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
11467         about uninitialized data attributed 'progmem' from here...
11468         (avr_encode_section_info): ...to this new function.
11469         (TARGET_ENCODE_SECTION_INFO): New define.
11470         (avr_section_type_flags): For data in ".progmem.data", remove
11471         section flag SECTION_WRITE.
11472
11473 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
11474
11475         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
11476         _xmulhisi3_exit.
11477         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
11478         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
11479         (__umulhisi3): Ditto.
11480         * config/avr/avr.md (mulhisi3): New insn expender.
11481         (umulhisi3): New insn expender.
11482         (*mulhisi3_call): New insn.
11483         (*umulhisi3_call): New insn.
11484
11485 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11486
11487         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
11488
11489 2011-06-28  Richard Henderson  <rth@redhat.com>
11490
11491         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
11492         all code and arguments that handled pushes.  Update all callers.
11493
11494 2011-06-28  Richard Henderson  <rth@redhat.com>
11495
11496         * config/arm/arm.c (arm_output_function_prologue): Don't call
11497         thumb1_output_function_prologue.
11498         (arm_expand_prologue): Avoid dead store.
11499         (number_of_first_bit_set): Use ctz_hwi.
11500         (thumb1_emit_multi_reg_push): New.
11501         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
11502         to emit the entire prologue as rtl.
11503         (thumb1_output_interwork): Split out from
11504         thumb1_output_function_prologue.
11505         (thumb1_output_function_prologue): Remove.
11506         (arm_attr_length_push_multi): Handle thumb1.
11507         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
11508         (prologue_thumb1_interwork): New.
11509         (*push_multi): Allow thumb1; use push_mult_memory_operand.
11510         * config/arm/predicates.md (push_mult_memory_operand): New.
11511
11512 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11513
11514         * config/sparc/sync.md (*stbar): Delete.
11515         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
11516
11517 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
11518
11519         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
11520
11521 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11522
11523         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
11524         (TARGET_64BIT_DEFAULT): Define.
11525         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
11526         of tm_file.
11527         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
11528
11529 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11530
11531         * common.opt (in_lto_p): New Variable entry.
11532         * flags.h (in_lto_p): Move to common.opt.
11533         * gcc.c: Include params.h.
11534         (set_option_handlers): Also use common_handle_option and
11535         target_handle_option.
11536         (main): Call global_init_params, finish_params and init_options_struct.
11537         * opts.c (debug_type_names): Move from toplev.c.
11538         (print_filtered_help): Access quiet_flag through opts pointer.
11539         (common_handle_option): Return early in the driver for some options.
11540         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
11541         opts pointer.
11542         * toplev.c (in_lto_p): Move to common.opt.
11543         (debug_type_names): Move to opts.c.
11544         * Makefile.in (OBJS): Remove opts.o.
11545         (OBJS-libcommon-target): Add opts.o.
11546         (gcc.o): Update dependencies.
11547
11548 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11549
11550         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
11551
11552 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11553
11554         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
11555         with '=' constraint modifier.
11556         (*divdf3_vfp): Likewise.
11557         ("*mulsf3_vfp"): Likewise.
11558         ("*muldf3_vfp"): Likewise.
11559         ("*mulsf3negsf_vfp"): Likewise.
11560         ("*muldf3negdf_vfp"): Likewise.
11561
11562 2011-06-28  Nick Clifton  <nickc@redhat.com>
11563
11564         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
11565         relaxation when performing an incremental link.
11566
11567 2011-06-28  Kai Tietz  <ktietz@redhat.com>
11568
11569         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
11570         within BB from last to first.
11571
11572 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
11573
11574         * genattr-common.c: New.  Based on genattr.c.
11575         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
11576         (MOSTLYCLEANFILES): Add insn-attr-common.h.
11577         (opts.o): Update dependencies.
11578         (.PRECIOUS): Add insn-attr-common.h.
11579         (simple_rtl_generated_h): Add insn-attr-common.h.
11580         (build/genattr-common.o): New.
11581         (genprogrtl): Add attr-common.
11582         * genattr.c (main): Include insn-attr-common.h.  Don't generate
11583         definitions of DELAY_SLOTS or INSN_SCHEDULING.
11584         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
11585
11586 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
11587
11588         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
11589         avr-*-* and avr-*-rtems* targets.
11590
11591         * config/avr/elf.h: New file.
11592         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
11593         (TARGET_ASM_SELECT_SECTION): Define.
11594         (INIT_SECTION_ASM_OP): Undefine.
11595         (FINI_SECTION_ASM_OP): Undefine.
11596         (READONLY_DATA_SECTION_ASM_OP): Undefine.
11597         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
11598         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
11599         * config/avr/avr.h:
11600         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
11601         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
11602         (MAX_OFILE_ALIGNMENT): Move to elf.h.
11603         (STRING_LIMIT): Move to elf.h.
11604         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
11605         (ASM_DECLARE_OBJECT_NAME): Remove.
11606         (ESCAPES): Remove.
11607         (ASM_OUTPUT_SKIP): Remove.
11608         (DWARF2_DEBUGGING_INFO): Remove.
11609         (OBJECT_FORMAT_ELF): Remove.
11610         (USER_LABEL_PREFIX): Remove.
11611         (ASM_OUTPUT_EXTERNAL): Remove.
11612         (ASM_OUTPUT_ASCII): Remove.
11613         (TYPE_ASM_OP): Remove.
11614         (SIZE_ASM_OP): Remove.
11615         (WEAK_ASM_OP): Remove.
11616         (STRING_ASM_OP): Remove.
11617         (SET_ASM_OP): Remove.
11618         (ASM_WEAKEN_LABEL): Remove.
11619         (TYPE_OPERAND_FMT): Remove.
11620         (ASM_DECLARE_FUNCTION_SIZE): Remove.
11621         (ASM_FINISH_DECLARE_OBJECT): Remove.
11622         (NO_DOLLAR_IN_LABEL): Remove.
11623         (ASM_GENERATE_INTERNAL_LABEL): Remove.
11624         (ASM_OUTPUT_CASE_LABEL): Remove.
11625         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
11626         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
11627         (gas_output_ascii): Remove.
11628         (gas_output_limited_string): Remove.
11629         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
11630         * config/avr/avr-protos.h
11631         (gas_output_ascii): Remove prototye.
11632         (gas_output_limited_string): Remove prototype.
11633
11634 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
11635
11636         PR target/48637
11637         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
11638         asm operands.
11639
11640 2011-06-27  Jan Hubicka  <jh@suse.cz>
11641
11642         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
11643         node instead of references in node.
11644
11645 2011-06-27  Richard Henderson  <rth@redhat.com>
11646
11647         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
11648         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
11649         inside ifdef.
11650
11651 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
11652
11653         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
11654
11655         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
11656         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
11657         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
11658         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
11659         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
11660         (evaluate_stmt, execute_fold_all_builtins): Handle
11661         BUILT_IN_ASSUME_ALIGNED.
11662         * tree-ssa-dce.c (propagate_necessity): Likewise.
11663         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11664         call_may_clobber_ref_p_1): Likewise.
11665         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
11666         (expand_builtin_assume_aligned): New function.
11667         * doc/extend.texi (__builtin_assume_aligned): Document.
11668
11669         PR debug/49544
11670         * cselib.c (promote_debug_loc): If cselib_preserve_constants
11671         and l has two DEBUG_INSN owned locs instead of just one, adjust
11672         the second location's setting_insn too.
11673
11674 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11675
11676         PR libmudflap/38738
11677         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
11678
11679 2011-06-27  Nick Clifton  <nickc@redhat.com>
11680
11681         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
11682         bit position of highest bit set into a count of the high zero bits.
11683
11684 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11685
11686         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
11687
11688 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11689
11690         PR lto/48492
11691         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
11692         to a NULL parent.
11693
11694 2011-06-27  Richard Guenther  <rguenther@suse.de>
11695
11696         PR tree-optimization/49394
11697         * passes.c (execute_one_pass): Restore current_pass after
11698         applying IPA transforms.
11699
11700 2011-06-27  Kai Tietz  <ktietz@redhat.com>
11701
11702         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
11703         out of type precision after operation.
11704         (find_bswap): Take for limit value the integer auto-promotion
11705         into account.
11706
11707 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11708
11709         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
11710         forward scan as well.
11711
11712 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11713
11714         PR target/44241
11715         * config/vms/vms-protos.h: New file.
11716         * config/vms/vms-crtlmap.map: New file.
11717         * config/vms/vms.c: New file.
11718         * config/vms/make-crtlmap.awk: New file.
11719         * config/vms/vms-crtl.h: File removed.
11720         * config/vms/vms-crtl-64.h: File removed.
11721         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
11722         * config/alpha/vms64.h: Do not include vms-crtl-64.h
11723         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
11724         clear some builtins on VMS.  Calls vms_patch_builtins.
11725         (avms_asm_output_external): Remove.
11726         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
11727         (struct crtl_name_spec): Remove
11728         (DO_CTRL_NAMES): Remove.
11729         * config/ia64/vms.h (struct crtl_name_spec): Remove
11730         (DO_CTRL_NAMES): Remove.
11731         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
11732         clear some builtins on VMS.  Calls vms_patch_builtins.
11733         (ia64_asm_output_external): Remove DO_CRTL_NAME.
11734         * config/ia64/vms64.h: Do not include vms-crtl-64.h
11735         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
11736
11737 2011-06-27  Tristan Gingold  <gingold@adacore.com>
11738
11739         * config/alpha/alpha.c (alpha_end_function): Always generate .end
11740         directive on VMS.
11741
11742 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
11743
11744         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
11745         the function receives nonlocal gotos.
11746
11747 2011-06-27  Richard Guenther  <rguenther@suse.de>
11748
11749         PR tree-optimization/49536
11750         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
11751         For non-scalar inner types use a scalar type according to
11752         the scalar inner mode.
11753
11754 2011-06-27  Richard Guenther  <rguenther@suse.de>
11755
11756         PR tree-optimization/49365
11757         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
11758
11759 2011-06-27  Richard Guenther  <rguenther@suse.de>
11760
11761         PR tree-optimization/49169
11762         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
11763         the alignment of function decls.
11764
11765 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
11766
11767         PR target/47997
11768         * config/darwin.c (darwin_mergeable_string_section): Place string
11769         constants in '.cstring' rather than '.const' when CF/NSStrings are
11770         active.
11771
11772 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11773
11774         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
11775         (emit_save_register_window): Likewise.
11776         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
11777         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
11778         Swap back %o7/%i7 in register naming.
11779
11780 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
11781
11782         PR driver/49371
11783         * config/darwin.c (darwin_override_options): Improve warning when
11784         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
11785         is given with fpie/fPIE.
11786         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
11787         * config/darwin9.h (PIE_SPEC): New.
11788
11789 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
11790
11791         * timevar.c (timevar_print): Increase width for display of timevar
11792         name.
11793
11794 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
11795
11796         PR c++/46400
11797         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
11798         instead of TYPE_CHAIN for chain_next for types.
11799
11800 2011-06-24  Richard Henderson  <rth@redhat.com>
11801
11802         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
11803         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
11804         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
11805         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
11806         (sparc_flat_expand_prologue): Emit individual instructions
11807         instead of one of the above.
11808
11809 2011-06-24  Easwaran Raman  <eraman@google.com>
11810
11811         PR rtl-optimization/49429
11812         PR target/49454
11813         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
11814         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
11815         used to copy y into x.
11816         * calls.c (initialize_argument_information): Mark
11817         an argument addressable if it is passed by invisible reference.
11818         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
11819         if it is passed by reference.
11820
11821 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11822
11823         PR rtl-optimization/49504
11824         * rtlanal.c (nonzero_bits1): Properly handle addition or
11825         subtraction of a pointer in Pmode if pointers extend unsigned.
11826         (num_sign_bit_copies1): Likewise.
11827
11828 2011-06-24  Martin Jambor  <mjambor@suse.cz>
11829
11830         PR tree-optimizations/49516
11831         * tree-sra.c (sra_modify_assign): Choose the safe path for
11832         aggregate copies if we also did scalar replacements.
11833
11834 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11835
11836         PR target/49335
11837         * config/arm/predicates.md (add_operator): New.
11838         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
11839
11840 2011-06-24  Andi Kleen  <ak@linux.intel.com>
11841
11842         * tree-sra.c (type_internals_preclude_sra_p): Add msg
11843         parameter. Split up ifs and report reason in *msg.
11844         (reject): Add.
11845         (find_var_candiate): Add msg variable.
11846         Split up ifs and report reason to reject.
11847         (find_param_candidates): Add msg variable.
11848         Pass msg to type_internals_preclude_sra_p.
11849
11850 2011-06-23  Jeff Law  <law@redhat.com>
11851
11852         PR middle-end/48770
11853         * reload.h (reload): Change to return a bool.
11854         * ira.c (ira): If requested by reload, run a fast DCE pass after
11855         reload has completed.  Fix comment typo.
11856         * reload1.c (need_dce): New file scoped static.
11857         (reload): Set reload_completed here.  Return whether or not a DCE
11858         pass after reload is needed.
11859         (delete_dead_insn): Set need_dce as needed.
11860
11861         PR middle-end/49465
11862         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
11863         to detect threading through joiner block.  If there was already
11864         an edge to the new target, then do not change the PHI nodes.
11865
11866 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
11867
11868         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
11869         get_pointer_alignment to see if base isn't sufficiently aligned.
11870
11871 2011-06-23  Jan Hubicka  <jh@suse.cz>
11872
11873         PR tree-optimize/49373
11874         * tree-pass.h (all_late_ipa_passes): Declare.
11875         * cgraphunit.c (init_lowered_empty_function): Fix properties.
11876         (cgraph_optimize): Execute late passes; remove unreachable funcions
11877         after materialization.
11878         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
11879         LTOing.
11880         * passes.c (all_late_ipa_passes): Declare.
11881         (dump_passes, register_pass): Handle late ipa passes.
11882         (init_optimization_passes): Move ipa_pta to late passes; schedule
11883         fixup_cfg at beggining of all_passes.
11884         (apply_ipa_transforms): New function.
11885         (execute_one_pass): When doing simple ipa pass, apply all transforms.
11886
11887 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
11888
11889         * params.c: Include common/common-target.h.  Don't include tm.h.
11890         (lang_independent_params): Move from toplev.c.
11891         (global_init_params): New.
11892         * params.h (global_init_params): Declare.
11893         * target.def (default_params): Move to common-target.def.
11894         * toplev.c (lang_independent_options): Remove.
11895         (lang_independent_params): Move to params.c.
11896         (general_init): Use global_init_params.
11897         * common/common-target.def (option_default_params): Move from
11898         target.def.
11899         * common/config/ia64/ia64-common.c: Include params.h.
11900         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11901         from ia64.c.
11902         * common/config/rs6000/rs6000-common.c: Include params.h.
11903         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11904         from rs6000.c.
11905         * common/config/sh/sh-common.c: Include params.h.
11906         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11907         from sh.c.
11908         * common/config/spu/spu-common.c: Include params.h.
11909         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
11910         from spu.c.
11911         * config/ia64/ia64.c (ia64_option_default_params,
11912         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
11913         * config/rs6000/rs6000.c (rs6000_option_default_params,
11914         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
11915         * config/sh/sh.c (sh_option_default_params,
11916         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
11917         * config/spu/spu.c (spu_option_default_params,
11918         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
11919         * Makefile.in (OBJS): Remove params.o.
11920         (OBJS-libcommon-target): Add params.o.
11921         (params.o, $(common_out_object_file)): Update dependencies.
11922         * doc/tm.texi: Regenerate.
11923
11924 2011-06-23  Alan Modra  <amodra@gmail.com>
11925
11926         PR bootstrap/49383
11927         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
11928         invocation for 2011-06-09 changes.
11929
11930 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
11931
11932         PR libgomp/49490
11933         * omp-low.c (expand_omp_for_static_nochunk): Only
11934         use n ceil/ nthreads size for the first n % nthreads threads in the
11935         team instead of all threads except for the last few ones which
11936         get less work or none at all.
11937
11938         PR debug/49496
11939         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
11940         uses.
11941
11942 2011-06-22  Richard Guenther  <rguenther@suse.de>
11943
11944         PR tree-optimization/49493
11945         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
11946         Refer to the alias target of variables.
11947         (associate_varinfo_to_alias_1): Remove.
11948         (ipa_pta_execute): Do not associate aliases with anything.
11949         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
11950         (cgraph_function_node): Likewise.
11951         (cgraph_function_or_thunk_node): Likewise.
11952         (varpool_variable_node): Likewise.
11953
11954 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
11955
11956         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
11957         * config.gcc (arm*-*-linux*): Default to gnu tls.
11958         (arm*-*-*): Add --with-tls option.
11959         (all_defaults): Add 'tls'.
11960
11961 2011-06-22  Richard Henderson  <rth@redhat.com>
11962
11963         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
11964         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
11965         (dwarf2out_frame_debug_cfa_window_save): Rename from
11966         dwarf2out_window_save; make static.
11967         * tree.h (dwarf2out_window_save): Don't declare.
11968
11969         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
11970         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
11971         (emit_save_register_window): Rename from gen_save_register_window;
11972         emit the insn and add REG_CFA_* notes.
11973         (sparc_expand_prologue): Update to match.
11974         * config/sparc/sparc.md (save_register_window_1): Simplify from
11975         save_register_window<P:mode>.
11976
11977 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11978
11979         PR target/49497
11980         * config/i386/i386.md (*lea_general_2): Always allow SImode.
11981         (*lea_general_2_zext): Likewise.
11982         (imul to lea peepholes): Use const359_operand and check
11983         TARGET_PARTIAL_REG_STALL.
11984
11985         * config/i386/predicates.md (const359_operand): New.
11986
11987 2011-06-22  Michael Matz  <matz@suse.de>
11988
11989         * cgraphunit.c (assemble_thunk): Use correct return type.
11990
11991 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
11992             Dmitry Melnik  <dm@ispras.ru>
11993
11994         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
11995         (neon_output_shift_immediate): Ditto.
11996         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
11997         prototype.
11998         (neon_output_shift_immediate): Ditto.
11999         * config/arm/neon.md (vashl<mode>3): Modified constraint.
12000         (vashr<mode>3_imm): New insn pattern.
12001         (vlshr<mode>3_imm): Ditto.
12002         (vashr<mode>3): Modified constraint.
12003         (vlshr<mode>3): Ditto.
12004         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
12005         predicate.
12006         (imm_for_neon_rshift_operand): Ditto.
12007         (imm_lshift_or_reg_neon): Ditto.
12008         (imm_rshift_or_reg_neon): Ditto.
12009
12010         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
12011
12012 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
12013
12014         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
12015         builtin calls even if likelyvalue is not CONSTANT.
12016         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
12017         Return get_value_for_expr of first operand
12018         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
12019         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
12020         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
12021         their non-checking counterparts.
12022         (call_may_clobber_ref_p_1): Likewise.
12023         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
12024         like their non-checking counterparts.
12025         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12026         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
12027         like their non-checking counterparts.
12028         (find_func_clobbers): Likewise.
12029         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
12030         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
12031
12032         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
12033         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
12034         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
12035         of base type reference as argument.
12036         (resolve_addr_in_expr): Likewise.  Fix keep computation.
12037         (convert_descriptor_to_signed): Renamed to...
12038         (convert_descriptor_to_mode): ... this.  For wider types convert to
12039         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
12040         (typed_binop): New function.
12041         (scompare_loc_descriptor, ucompare_loc_descriptor,
12042         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
12043         default to unsigned type instead of signed.
12044
12045         PR debug/47858
12046         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
12047         (gimple_build_debug_source_bind_stat): New prototype.
12048         (gimple_build_debug_source_bind): Define.
12049         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
12050         gimple_debug_source_bind_get_value,
12051         gimple_debug_source_bind_get_value_ptr,
12052         gimple_debug_source_bind_set_var,
12053         gimple_debug_source_bind_set_value): New inlines.
12054         * gimple.c (gimple_build_debug_source_bind_stat): New function.
12055         * gimple-pretty-print.c (dump_gimple_debug): Handle
12056         GIMPLE_DEBUG_SOURCE_BIND.
12057         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
12058         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12059         * tree-parloops.c (eliminate_local_variables,
12060         separate_decls_in_region): Likewise.
12061         (separate_decls_in_region_debug): Renamed from
12062         separate_decls_in_region_debug_bind.  Handle
12063         gimple_debug_source_bind_p.
12064         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
12065         prototypes.
12066         (DECL_HAS_DEBUG_ARGS_P): Define.
12067         (struct tree_function_decl): Add has_debug_args_flag field.
12068         * tree.c (debug_args_for_decl): New variable.
12069         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
12070         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
12071         (rewrite_debug_stmt_uses): New function.
12072         (rewrite_stmt): Use it to rewrite debug stmt uses.
12073         * rtl.def (DEBUG_PARAMETER_REF): New.
12074         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
12075         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
12076         DEBUG_PARAMETER_REF.
12077         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
12078         * print-rtl.c (print_rtx): Likewise.
12079         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
12080         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
12081         debug stmts in the first bb.
12082         * tree-inline.c (remap_ssa_name): If remapping default def
12083         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
12084         a source bind debug stmt.
12085         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
12086         (maybe_move_debug_stmts_to_successors): Likewise.
12087         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
12088         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
12089         debug args vector from old_decl to new_decl.
12090         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
12091         or modified parameters, add debug bind stmts before call
12092         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
12093         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
12094         on DECL_DEBUG_EXPRs from debug args vector.
12095         (expand_debug_source_expr): New function.
12096         (expand_debug_locations): Use it for source bind insns.
12097         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
12098         * var-tracking.c (prepare_call_arguments): Add debug args
12099         to call_arguments if any.
12100         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
12101         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
12102         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
12103         (get_ref_die_offset, parameter_ref_descriptor): New functions.
12104         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
12105         (gen_subprogram_die): Handle parameters identified by
12106         DEBUG_PARAMETER_REF.
12107
12108 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
12109
12110         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
12111         * doc/install.texi (Configuration): Document --with-tls.
12112         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
12113         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
12114         (arm_tls_descseq_addr): New.
12115         (legitimize_tls_address): Add tlsdesc support.
12116         (arm_cannot_copy_insn_p): Check for tlscall.
12117         (arm_emit_tls_decoration): Likewise.
12118         * config/arm/arm.h (TARGET_GNU2_TLS): New.
12119         (OPTION_DEFAULT_SPECS): Add with-tls support.
12120         * config/arm/arm.md (R1_REGNUM): Define.
12121         (tlscall): New.
12122         * config/arm/arm.opt (tls_type): New enumeration type and values.
12123         (mtls-dialect): New switch.
12124         * config/arm/arm-opts.h (enum tls_type): New.
12125
12126 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12127
12128         * attribs.c (register_attribute): Added assert to check that all
12129         attribute specs are registered with a name that is not empty and
12130         does not start with '_'.
12131         (decl_attributes): Avoid the lookup of the "naked" attribute spec
12132         if the function has no attributes.
12133         * tree.c (is_attribute_with_length_p): Removed.
12134         (is_attribute_p): Removed.
12135         (private_is_attribute_p): New.
12136         (private_lookup_attribute): New.
12137         (lookup_attribute): Removed.
12138         (lookup_ident_attribute): New.
12139         (remove_attribute): Require the first argument to be in the form
12140         'text', not '__text__'.  Updated asserts.
12141         (merge_attributes): Use lookup_ident_attributes instead of
12142         lookup_attribute.
12143         (merge_dllimport_decl_attributes): Use remove_attribute.
12144         (attribute_list_contained): Likewise.
12145         (attribute_list_equal): Immediately return 1 if the arguments are
12146         identical pointers.
12147         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
12148         'int'.  Require the first argument to be in the form 'text', not
12149         '__text__'.  Require the second argument to be an identifier.
12150         (lookup_attribute): Made inline.  Require the first argument to be
12151         in the form 'text', not '__text__'.
12152         (private_is_attribute_p, private_lookup_attribute): New.
12153         Updated comments.
12154
12155 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
12156
12157         * builtins.c: Add sync_ or SYNC__ to builtin names.
12158         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
12159         * omp-low.c: Add sync_ or SYNC__ to builtin names.
12160
12161 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12162
12163         PR target/33049
12164         * config/avr/avr.md (extzv): New expander.
12165         (*extzv): New insn.
12166         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
12167         * config/avr/constraints.md (C04): New constraint.
12168         * doc/md.texi (Machine Constraints): Document it.
12169
12170 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12171
12172         PR middle-end/49489
12173         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
12174         unsignedp argument instead of 1 for clrsb_optab.
12175         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
12176         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
12177         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
12178         * optabs.c (widen_leading): Call widen_operand and expand_unop
12179         with 0 as unsignedp argument instead of 1 for clrsb_optab.
12180         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
12181
12182 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
12183
12184         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
12185
12186 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
12187
12188         * gensupport.c (add_define_attr): New static function.
12189         (is_predicable): Allow multi-alternative lists for the "predicable"
12190         attribute.
12191         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
12192         (process_one_cond_exec): Call alter_attrs_for_insn.
12193         * doc/md.texi (Defining Attributes): Mention some standard names.
12194         (Conditional Execution): Update documentation for "predicable".
12195
12196         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
12197         __builtin_clrsbll): Document.
12198         * doc/rtl.texi (clrsb): New entry.
12199         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
12200         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
12201         (expand_unop): Handle clrsb_optab.
12202         (init_optabs): Initialize it.
12203         * optabs.h (enum optab_index): New entry OTI_clrsb.
12204         (clrsb_optab): Define.
12205         * genopinit.c (optabs): Add an entry for it.
12206         * builtins.c (expand_builtin): Handle clrsb builtin functions.
12207         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
12208         BUILT_IN_CLRSBLL): New.
12209         * rtl.def (CLRSB): New code.
12210         * dwarf2out.c (mem_loc_descriptor): Handle it.
12211         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12212         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
12213         and popcount.
12214         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
12215         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
12216         (__ctzDI2): Move declaration.
12217         * config/bfin/bfin.md (clrsbsi2): New expander.
12218         (signbitssi2): Use the CLRSB rtx.
12219         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
12220         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
12221
12222 2011-06-21  Richard Guenther  <rguenther@suse.de>
12223
12224         * ipa-inline-transform.c (inline_transform): Fix previous change.
12225
12226 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
12227
12228         PR tree-optimization/49478
12229         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
12230         with constant operand.
12231
12232 2011-06-21  Richard Guenther  <rguenther@suse.de>
12233
12234         * ipa-inline-transform.c (inline_transform): Fix typo.
12235
12236 2011-06-21  Richard Guenther  <rguenther@suse.de>
12237
12238         PR tree-optimization/49483
12239         * tree-vect-stmts.c (vectorizable_assignment): Also handle
12240         VIEW_CONVERT_EXPR conversions.
12241
12242 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
12243
12244         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
12245         * config/avr/avr-tables.opt: New file (generated).
12246         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
12247         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
12248         avr-mcus.def.
12249         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
12250         (avr_option_override): Don't process -mmcu= argument here.  Set
12251         avr_current_device using avr_mcu_index.
12252         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
12253         * config/avr/avr.opt (mmcu=): Use Enum.
12254         * config/avr/t-avr (avr-devices.o): Update dependencies.
12255         ($(srcdir)/config/avr/avr-tables.opt): New.
12256         * target.def (help): Remove.
12257         * doc/tm.texi.in (TARGET_HELP): Remove.
12258         * doc/tm.texi: Regenerate.
12259         * opts.c: Don't include target.h.
12260         (common_handle_option): Don't call targetm.help.
12261         * system.h (TARGET_HELP): Poison.
12262         * Makefile.in (opts.o): Update dependencies.
12263
12264 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12265
12266         * config/usegld.h: New file.
12267         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
12268         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
12269         (LIB_SPEC): Likewise.  Search /lib.
12270         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
12271         (RDYNAMIC_SPEC): Handle GNU ld.
12272         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
12273         Define.
12274         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
12275         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
12276         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
12277         (STACK_CHECK_STATIC_BUILTIN): Define.
12278         * config/sol2.opt (compat-bsd): Remove.
12279         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
12280         * config/sol2-bi.h: New file.
12281         * config/sol2-gld.h: Remove.
12282         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
12283         (NO_DBX_BNSYM_ENSYM): Remove.
12284         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12285         (STACK_CHECK_STATIC_BUILTIN): Remove.
12286         Test USE_GLD instead of TARGET_GNU_LD.
12287         * config/i386/sol2-10.h: Rename to ...
12288         * config/i386/sol2-bi.h .. this.
12289         (SUBTARGET_EXTRA_SPECS): Redefine.
12290         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
12291         (MULTILIB_DEFAULTS): Remove.
12292         (DEFAULT_ARCH32_P): Define.
12293         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
12294         (ARCH64_SUBDIR): Define.
12295         Test USE_GLD instead of TARGET_GNU_LD.
12296         (I386_EMULATION): Rename to ...
12297         (ARCH32_EMULATION): ... this.
12298         (X86_64_EMULATION): Rename to ...
12299         (ARCH64_EMULATION): ... this.
12300         (TARGET_LD_EMULATION): Remove.
12301         (LINK_ARCH_SPEC): Remove.
12302         * config/i386/sol2-gas.h: Remove.
12303         * config/i386/t-sol2-10: Rename to ...
12304         * config/i386/t-sol2-64: ... this.
12305         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
12306         (AS_SPARC64_FLAG): Define.
12307         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
12308         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
12309         depending on TARGET_CPU_DEFAULT.
12310         (CPP_CPU_SPEC): Redefine.
12311         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
12312         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
12313         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
12314         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
12315         ASM_ARCH_DEFAULT_SPEC): Redefine.
12316         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12317         LINK_ARCH_DEFAULT_SPEC.
12318         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
12319         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
12320         (ARCH64_SUBDIR): Define.
12321         (LINK_ARCH64_SPEC): Redefine.
12322         (CC1_SPEC): Redefine.
12323         (OPTION_DEFAULT_SPECS): Redefine.
12324         (MULTILIB_DEFAULTS): Define.
12325         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
12326         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
12327         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
12328         (NO_DBX_BNSYM_ENSYM): Remove.
12329         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
12330         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
12331         (TARGET_ASM_NAMED_SECTION): Likewise.
12332         (STACK_CHECK_STATIC_BUILTIN): Remove.
12333         * config/sparc/sol2-bi.h: Remove.
12334         * config/sparc/sol2-gas-bi.h: Remove.
12335         * config/sparc/sol2-gas.h: Remove.
12336         * config/sparc/sol2-gld-bi.h: Remove.
12337         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
12338         common parts ...
12339         (*-*-solaris2*): ... here.
12340
12341 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12342
12343         PR other/43564
12344         * ipa-inline.c (can_inline_edge_p): Check
12345         !DECL_DISREGARD_INLINE_LIMITS.
12346
12347 2011-06-21  Christian Bruel  <christian.bruel@st.com>
12348
12349         PR middle-end/49139
12350         * cgraphunit.c (process_function_and_variable_attributes): warn when
12351         always_inline functions that are not inline.
12352         * ipa-inline-transform.c (inline_transform): Always call
12353         optimize_inline.
12354         * tree-inline.c (tree_inlinable_function_p): Use error instead
12355         of sorry.
12356         (expand_call_inline): Likewise.
12357
12358 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
12359
12360         * Makefile.in (dg_target_exps): Set.
12361         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
12362         instead of 7, try to divide it more evenly.
12363
12364 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
12365
12366         PR target/49089
12367         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
12368         (avx256_split_unaligned_store): New definition.
12369         (ix86_option_override_internal): Enable avx256 unaligned load/store
12370         splitting only when avx256_split_unaligned_load/store is set.
12371
12372 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12373
12374         * regrename.c (scan_rtx_reg): Handle the case where we write to an
12375         open chain in a smaller mode without failing the entire block.
12376
12377 2011-06-21  Alan Modra  <amodra@gmail.com>
12378
12379         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
12380         CONST high part large-toc address.
12381         (rs6000_tls_referenced_p): Make static.
12382         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
12383
12384 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12385
12386         PR target/49385
12387         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
12388         one of the operands is a register.
12389
12390 2011-06-20  Kai Tietz  <ktietz@redhat.com>
12391
12392         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
12393         operations in combination with binary and.
12394
12395 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
12396
12397         * regrename.c (do_replace): Don't update notes.
12398
12399 2011-06-20  Alan Modra  <amodra@gmail.com>
12400
12401         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
12402         of toc-relative address in CONST.
12403         (rs6000_delegitimize_address): Recognize changed address.
12404         (rs6000_legitimize_reload_address): Likewise.
12405         (rs6000_emit_move): Don't force these constants to memory.
12406         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
12407         toc-relative address in CONST.
12408         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
12409         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
12410
12411 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12412
12413         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
12414         (count_trailing_zeros): Likewise.
12415
12416 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12417
12418         PR other/49325
12419         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
12420         .init_array can be used with .ctors on targets.
12421         * configure: Regenerated.
12422
12423 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
12424
12425         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
12426         if the element type is volatile.
12427
12428 2011-06-18  Jan Hubicka  <jh@suse.cz>
12429
12430         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
12431         extra name aliases.
12432         (lto_symtab_resolve_can_prevail_p): Likewise.
12433         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
12434         * cgraphbuild.c (record_reference): Remove extra body alias code.
12435         (mark_load): Likewise.
12436         (mark_store): Likewise.
12437         * cgraph.h (varpool_node): Remove extra_name filed;
12438         add alias_of and extraname_alias.
12439         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
12440         (varpool_alias_aliased_node): New inline function.
12441         (varpool_variable_node): New function.
12442         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
12443         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
12444         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
12445         (input_varpool_node): Likewise.
12446         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
12447         (varpool_externally_visible_p): Remove extra body alias code.
12448         (function_and_variable_visibility): Likewise.
12449         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
12450         (ipa_pta_execute): Use it.
12451         * varpool.c (varpool_remove_node): Remove extra name alias code.
12452         (varpool_mark_needed_node): Likewise.
12453         (varpool_analyze_pending_decls): Analyze aliases.
12454         (assemble_aliases): New functoin.
12455         (varpool_assemble_decl): Use it.
12456         (varpool_create_variable_alias): New function.
12457         (varpool_extra_name_alias): Rewrite.
12458         (varpool_for_node_and_aliases): New function.
12459
12460 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
12461
12462         PR target/49411
12463         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
12464         last_arg_constant and last argument doesn't match its predicate,
12465         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
12466         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
12467         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
12468         spelling of error message.
12469         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
12470         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
12471         const_0_to_255_operand instead of const_int_operand.
12472
12473         Revert:
12474         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
12475
12476         * config/i386/sse.md (blendbits): Remove mode attribute.
12477         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
12478         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
12479         Check integer value of operand 3 in insn constraint.
12480
12481 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
12482
12483         PR rtl-optimization/48542
12484         * reload.c (find_equiv_reg): Stop looking when finding a
12485         setjmp-type call.
12486         * reload1.c (reload_as_needed): Invalidate all reload
12487         registers when crossing a setjmp-type call.
12488
12489 2011-06-16  Jeff Law  <law@redhat.com>
12490
12491         * tree-ssa-threadupdate.c (struct redirection_data): New field
12492         intermediate_edge.
12493         (THREAD_TARGET2): Define.
12494         (redirection_data_eq): Also check that the intermediate edge is equal.
12495         (lookup_redirection_data): Drop useless argument.  Extract the
12496         outgoing_edge and intermediate edge from E.  Callers updated.
12497         (copy_phi_args, update_destination_phis): New functions.
12498         (fix_duplicate_block_edges): Likewise.
12499         (create_edge_and_update_destination_phis): Duplicate all the edges
12500         hung off e->aux.  Use copy_phi_args.
12501         (create_duplicates): Use fix_duplicate_block_edges.
12502         (fixup_template_block): Likewise.
12503         (redirect_edges): If necessary, redirect the joiner block's incoming
12504         edge to the duplicate of the joiner block.
12505         (thread_block): Don't muck up loops when threading through a joiner
12506         block.
12507         (thread_through_loop_header): Handle threading through a joiner block.
12508         (mark_threaded_blocks, register_jump_thread): Likewise.
12509         * tree-flow.h (register_jump_thread): Add new argument.  Callers
12510         updated.
12511         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
12512         (thread_across_edge): Handle threading through a joiner block.
12513
12514 2011-06-16  Martin Jambor  <mjambor@suse.cz>
12515
12516         PR tree-optimization/49343
12517         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
12518         calculate offset, provide 2nd operand for the new COMPONENT_REF.
12519
12520 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
12521
12522         * config/darwin-protos.h (machopic_select_rtx_section): Move to
12523         inside RTX_CODE ifdef.
12524
12525 2011-06-16  Tom de Vries  <tom@codesourcery.com>
12526
12527         PR target/45098
12528         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12529         Disallow NULL pointer for pointer arithmetic.
12530
12531 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12532
12533         PR target/49398
12534         Revert.
12535         2011-06-10  Wei Guozhi  <carrot@google.com>
12536
12537         PR target/45335
12538         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
12539         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
12540         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
12541         related peephole2.
12542         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
12543         related peephole2.
12544         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
12545         (arm_legitimate_ldrd_p): New prototype.
12546         (arm_output_ldrd): New prototype.
12547         * config/arm/arm.c (arm_check_ldrd_operands): New function.
12548         (arm_legitimate_ldrd_p): New function.
12549         (arm_output_ldrd): New function.
12550
12551 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12552
12553         PR middle-end/46500
12554         * doc/tm.texi.in: Update Copyright date.
12555         * doc/tm.texi: Regenerate.
12556         * targhooks.c (default_setup_incoming_varargs): Replace
12557         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12558         (default_pretend_outgoing_varargs_named): Likewise.
12559         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12560         (hook_callee_copies_named): Likewise.
12561         (default_function_arg_advance): Likewise.
12562         (default_function_arg): Likewise.
12563         (default_function_incoming_arg): Likewise.
12564         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12565         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12566         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12567         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12568         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12569         * targhooks.h (default_setup_incoming_varargs): Likewise.
12570         (default_pretend_outgoing_varargs_named): Likewise.
12571         (hook_pass_by_reference_must_pass_in_stack): Likewise.
12572         (hook_callee_copies_named): Likewise.
12573         (default_function_arg_advance): Likewise.
12574         (default_function_arg): Likewise.
12575         (default_function_incoming_arg): Likewise.
12576         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
12577         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
12578         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
12579         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12580         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
12581         * target.def (pass_by_reference): Likewise.
12582         (setup_incoming_varargs, strict_argument_naming): Likewise.
12583         (pretend_outgoing_varargs_named, callee_copies): Likewise.
12584         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
12585         (function_incoming_arg): Likewise.
12586         * target.h: Don't include "tm.h" .
12587         (cumulative_args_t): New typedef.
12588         [GCC_TM_H] (get_cumulative_args): New static inline function.
12589         [GCC_TM_H] (pack_cumulative_args): Likewise.
12590         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
12591         argument type with cumulative_args_t.
12592         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
12593         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
12594         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12595         (frv_arg_partial_bytes, frv_function_arg): Likewise.
12596         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
12597         (frv_function_arg_1): Likewise.
12598         * config/s390/s390.c (s390_pass_by_reference): Likewise.
12599         (s390_function_arg_advance, s390_function_arg): Likewise.
12600         * config/m32c/m32c.c (m32c_function_arg): Likewise.
12601         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
12602         (m32c_strict_argument_naming): Likewise.
12603         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
12604         (spu_function_arg_advance): Likewise.
12605         (spu_setup_incoming_varargs): Likewise.  Make static.
12606         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
12607         Remove prototype.
12608         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
12609         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12610         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
12611         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
12612         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
12613         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
12614         (mep_pass_by_reference, mep_function_arg): Likewise.
12615         (mep_function_arg_advance): Likewise.
12616         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12617         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
12618         (m32r_function_arg, m32r_function_arg_advance): Likewise.
12619         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
12620         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12621         (ix86_function_arg, ix86_pass_by_reference): Likewise.
12622         (ix86_setup_incoming_varargs): Likewise.
12623         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12624         (sh_strict_argument_naming): Likewise.
12625         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
12626         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
12627         (sh_function_arg_advance, sh_function_arg): Likewise.
12628         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12629         (pdp11_function_arg_advance): Likewise.
12630         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12631         Likewise.
12632         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
12633         * config/avr/avr.c (avr_function_arg): Likewise.
12634         (avr_function_arg_advance): Likewise.
12635         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12636         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
12637         (xtensa_function_arg_1): Likewise.
12638         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
12639         Likewise.
12640         (xstormy16_function_arg): Likewise.
12641         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12642         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12643         (fr30_function_arg_advance): Likewise.
12644         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12645         (lm32_function_arg, lm32_function_arg_advance): Likewise.
12646         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12647         (moxie_function_arg, moxie_function_arg_advance): Likewise.
12648         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
12649         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12650         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
12651         (cris_function_arg, cris_function_incoming_arg): Likewise.
12652         (cris_function_arg_advance, cris_function_arg_1): Likewise.
12653         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12654         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
12655         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
12656         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12657         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
12658         (mn10300_arg_partial_bytes): Likewise.
12659         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12660         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
12661         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
12662         (ia64_function_arg_1): Likewise.
12663         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12664         (m68k_function_arg): Likewise.
12665         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
12666         (rs6000_function_arg, setup_incoming_varargs): Likewise.
12667         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
12668         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
12669         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
12670         (picochip_arg_advance): Likewise.
12671         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12672         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
12673         (mcore_function_arg_advance): Likewise.
12674         * config/score/score.c (score_pass_by_reference): Likewise.
12675         (score_function_arg_advance): Likewise.
12676         (score_arg_partial_bytes): Likewise.  Make static.
12677         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
12678         * config/arm/arm.c (arm_arg_partial_bytes): Replace
12679         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12680         (arm_function_arg, arm_function_arg_advance): Likewise.
12681         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
12682         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12683         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
12684         (pa_function_arg): Likewise.
12685         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
12686         (mips_function_arg, mips_function_arg_advance): Likewise.
12687         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
12688         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
12689         * config/vax/vax.c (vax_function_arg): Likewise.
12690         (vax_function_arg_advance): Likewise.
12691         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12692         (h8300_function_arg_advance): Likewise.
12693         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12694         (v850_strict_argument_naming, v850_function_arg): Likewise.
12695         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
12696         (v850_setup_incoming_varargs): Likewise.
12697         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12698         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
12699         (mmix_function_arg, mmix_pass_by_reference): Likewise.
12700         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
12701         with const void *.
12702         * config/bfin/bfin.c (setup_incoming_varargs): Replace
12703         CUMULATIVE_ARGS* argument type with cumulative_args_t.
12704         (bfin_function_arg_advance, bfin_function_arg): Likewise.
12705         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
12706         * calls.c (emit_call_1): Change type of args_so_far to
12707         cumulative_args_t.  Changed all callers.
12708         (initialize_argument_information): Likewise.
12709         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
12710         * dse.c (get_call_args): Likewise.
12711         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12712         * function.c (pass_by_reference, reference_callee_copied): Likewise.
12713         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
12714         New member args_so_far_v.  Changed all users.
12715         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
12716         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12717         * config/mips/mips.c (mips_output_args_xfer): Likewise.
12718         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12719         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12720         * config/microblaze/microblaze.c (microblaze_expand_prologue):
12721         Likewise.
12722         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
12723         m32r_pass_by_reference.
12724
12725 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
12726
12727         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
12728         argument to be a VEC of statements.
12729         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
12730         assert that pattern statements have to have their vector type set.
12731         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
12732         Change the first argument to be a VEC of statements.  Update
12733         documentation.
12734         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
12735         (vect_handle_widen_mult_by_const): New function.
12736         (vect_recog_widen_mult_pattern):  Change the first argument to be a
12737         VEC of statements.  Update documentation.  Check that the constant is
12738         INTEGER_CST.  Support multiplication by a constant that fits an
12739         intermediate type - call vect_handle_widen_mult_by_const.
12740         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
12741         call.  Handle additional pattern statements if necessary.
12742
12743 2011-06-16  Nick Clifton  <nickc@redhat.com>
12744
12745         PR target/49427
12746         * config.gcc: Set cpu_type to v850 for any V850 architecture.
12747         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
12748         md_file, extra_modes, out_file and extra_options are these are all
12749         deduced from cpu_type.
12750
12751 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12752
12753         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
12754         truncation mask to 63.
12755
12756 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
12757
12758         PR target/49313
12759         PR target/29524
12760         * longlong.h: Add AVR support:
12761         (count_leading_zeros): New macro.
12762         (count_trailing_zeros): New macro.
12763         (COUNT_LEADING_ZEROS_0): New macro.
12764         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
12765         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
12766         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
12767         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
12768         (LIB2FUNCS_EXCLUDE): Add _clz.
12769         * config/avr/libgcc.S (XCALL): Move up in file.
12770         (XJMP): New C Macro.
12771         (DEFUN): New asm macro.
12772         (ENDF): New asm macro.
12773         (__ffssi2): New function.
12774         (__ffshi2): New function.
12775         (__loop_ffsqi2): New function.
12776         (__ctzsi2): New function.
12777         (__ctzhi2): New function.
12778         (__clzdi2): New function.
12779         (__clzsi2): New function.
12780         (__clzhi2): New function.
12781         (__paritydi2): New function.
12782         (__paritysi2): New function.
12783         (__parityhi2): New function.
12784         (__parityqi2): New function.
12785         (__popcounthi2): New function.
12786         (__popcountsi2): New function.
12787         (__popcountdi2): New function.
12788         (__popcountqi2): New function.
12789         (__bswapsi2): New function.
12790         (__bswapdi2): New function.
12791         (__ashldi3): New function.
12792         (__ashrdi3): New function.
12793         (__lshrdi3): New function.
12794         Fix suspicous lines.
12795
12796 2011-06-16  Richard Guenther  <rguenther@suse.de>
12797
12798         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
12799         the same as x != 0.
12800         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
12801         to (bool) X & 1.
12802         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
12803         equality compares against zero for the lower bit.
12804
12805 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
12806
12807         PR tree-optimization/49419
12808         * tree-vrp.c (execute_vrp): Call init_range_assertions
12809         before estimate_numbers_of_iterations, call
12810         free_number_of_iterations_estimates before calling
12811         remove_range_assertions.
12812
12813 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12814
12815         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
12816         (struct partial_schedule): Add rows_length field.
12817         (verify_partial_schedule): Check rows_length.
12818         (ps_insert_empty_row): Handle rows_length.
12819         (create_partial_schedule): Likewise.
12820         (free_partial_schedule): Likewise.
12821         (reset_partial_schedule): Likewise.
12822         (create_ps_insn): Remove rest_count argument.
12823         (remove_node_from_ps): Update rows_length.
12824         (add_node_to_ps): Update rows_length and call create_ps_insn
12825         without passing row_rest_count.
12826         (rotate_partial_schedule): Update rows_length.
12827
12828 2011-06-16  Revital Eres  <revital.eres@linaro.org>
12829
12830         * ddg.c (add_intra_loop_mem_dep): New function.
12831         (build_intra_loop_deps): Call it.
12832
12833 2011-06-13  Jeff Law  <law@redhat.com>
12834
12835         * df-problems.c (df_lr_local_compute): Manually CSE
12836         PIC_OFFSET_TABLE_REGNUM.
12837         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
12838         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
12839
12840 2011-06-13  Jan Hubicka  <jh@suse.cz>
12841
12842         * cgraphunit.c (handle_alias_pairs): New function.
12843         (cgraph_finalize_compilation_unit): Use it.
12844         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
12845         as externally visible.
12846
12847 2011-06-15  Richard Guenther  <rguenther@suse.de>
12848
12849         * expr.c (expand_expr_real_2): Reduce all integral types to
12850         bitfield precision.
12851         (expand_expr_real_1): Likewise.
12852
12853 2011-06-15  Martin Jambor  <mjambor@suse.cz>
12854
12855         PR tree-optimization/48613
12856         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
12857         ipa_node_params_vector is NULL.
12858
12859 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
12860
12861         PR debug/49382
12862         * dwarf2out.c (dw_loc_list_node): Add force field.
12863         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
12864         location in the list, even if it is modified before first real insn.
12865         (output_loc_list): Emit empty ranges with force flag set.
12866         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
12867
12868 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
12869
12870         PR target/49349
12871         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
12872         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
12873         above a fence.  Update comments.
12874         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
12875         placed just above it.  Do not allow NULL place_to_insert.
12876
12877 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
12878
12879         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
12880         (slpeel_tree_peel_loop_to_edge): Don't call
12881         remove_dead_stmts_from_loop.
12882         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
12883         remove irrelevant pattern statements.  For irrelevant statements
12884         check if it is the last statement of a detected pattern, use
12885         corresponding pattern statement instead.
12886         (destroy_loop_vec_info): No need to remove pattern statements,
12887         only free stmt_vec_info.
12888         (vect_transform_loop): For irrelevant statements check if it is
12889         the last statement of a detected pattern, use corresponding
12890         pattern statement instead.
12891         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
12892         pattern statements.  Set basic block for the new statement.
12893         (vect_pattern_recog): Update documentation.
12894         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
12895         operands of pattern statements.
12896         (vectorizable_call): Fix printing.  In case of a pattern statement
12897         use the lhs of the original statement when creating a dummy
12898         statement to replace the original call.
12899         (vect_analyze_stmt): For irrelevant statements check if it is
12900         the last statement of a detected pattern, use corresponding
12901         pattern statement instead.
12902         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
12903         statements use gsi of the original statement.
12904
12905 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
12906
12907         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
12908         common/common-target-def.h.
12909         * target.def (default_target_flags, handle_option,
12910         supports_split_stack, optimization_table, init_struct,
12911         except_unwind_info, unwind_tables_default, have_named_sections):
12912         Move to common/common-target.def.
12913         * target.h (enum opt_levels, struct default_options): Move to
12914         common/common-target.h.
12915         * targhooks.c (default_except_unwind_info,
12916         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12917         default_target_handle_option, empty_optimization_table): Move to
12918         common/common-targhooks.c.
12919         * targhooks.h (default_except_unwind_info,
12920         dwarf2_except_unwind_info, sjlj_except_unwind_info,
12921         default_target_handle_option, empty_optimization_table): Move to
12922         common/common-targhooks.h.
12923         * common/common-target-def.h: Include common/common-targhooks.h.
12924         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
12925         defined.
12926         * common/common-target.def (handle_option, option_init_struct,
12927         option_optimization_table, default_target_flags,
12928         except_unwind_info, supports_split_stack, unwind_tables_default,
12929         have_named_sections): Move from target.def.
12930         (HOOK_PREFIX): Undefine at end of file.
12931         * common/common-target.h: Include input.h.
12932         (enum opt_levels, struct default_options): Move from target.h.
12933         * common/common-targhooks.c, common/common-targhooks.h: New.
12934         * config.gcc (target_has_targetm_common): Default to yes.
12935         (moxie*): Set target_has_targetm_common=no.
12936         (hppa*-*-*): Don't set target_has_targetm_common=yes.
12937         * doc/tm.texi: Regenerate.
12938         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
12939         (C_TARGET_DEF_H): Add common/common-targhooks.h.
12940         (GCC_OBJS): Remove vec.o.
12941         (OBJS): Remove hooks.o and vec.o.
12942         (OBJS-libcommon-target): Add vec.o, hooks.o and
12943         common/common-targhooks.o.
12944         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
12945         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
12946         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
12947         cfglayout.o, $(out_object_file), $(common_out_object_file)):
12948         Update dependencies.
12949         (common/common-targhooks.o): New.
12950         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
12951         * common/config/pa/pa-common.c: Include more headers.  Take
12952         copyright dates from pa.c.
12953         (pa_option_optimization_table, pa_handle_option,
12954         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
12955         TARGET_HANDLE_OPTION): Move from pa.c.
12956         * common/config/alpha/alpha-common.c,
12957         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
12958         common/config/bfin/bfin-common.c,
12959         common/config/cris/cris-common.c,
12960         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
12961         common/config/h8300/h8300-common.c,
12962         common/config/i386/i386-common.c,
12963         common/config/ia64/ia64-common.c,
12964         common/config/iq2000/iq2000-common.c,
12965         common/config/lm32/lm32-common.c,
12966         common/config/m32c/m32c-common.c,
12967         common/config/m32r/m32r-common.c,
12968         common/config/m68k/m68k-common.c,
12969         common/config/mcore/mcore-common.c,
12970         common/config/mep/mep-common.c,
12971         common/config/microblaze/microblaze-common.c,
12972         common/config/mips/mips-common.c,
12973         common/config/mmix/mmix-common.c,
12974         common/config/mn10300/mn10300-common.c,
12975         common/config/pdp11/pdp11-common.c,
12976         common/config/picochip/picochip-common.c,
12977         common/config/rs6000/rs6000-common.c,
12978         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
12979         common/config/score/score-common.c, common/config/sh/sh-common.c,
12980         common/config/sparc/sparc-common.c,
12981         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
12982         common/config/vax/vax-common.c,
12983         common/config/xstormy16/xstormy16-common.c,
12984         common/config/xtensa/xtensa-common.c: New.
12985         * config/alpha/alpha.c: Include common/common-target.h.
12986         (alpha_option_optimization_table, alpha_handle_option,
12987         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
12988         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
12989         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
12990         * config/arm/arm.c (arm_option_optimization_table,
12991         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
12992         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
12993         arm-common.c.
12994         * config/avr/avr.c (avr_option_optimization_table,
12995         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
12996         to avr-common.c.
12997         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
12998         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
12999         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
13000         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
13001         * config/cris/cris.c (cris_option_optimization_table,
13002         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13003         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
13004         cris-common.c.
13005         * config/fr30/fr30.c (fr30_option_optimization_table,
13006         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
13007         to fr30-common.c.
13008         * config/frv/frv.c (frv_option_optimization_table,
13009         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
13010         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
13011         * config/h8300/h8300.c (h8300_option_optimization_table,
13012         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13013         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
13014         * config/i386/i386-protos.h (ix86_handle_option): Declare.
13015         * config/i386/i386.c: Include common/common-target.h.
13016         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
13017         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
13018         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
13019         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
13020         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
13021         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
13022         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
13023         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
13024         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
13025         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
13026         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
13027         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
13028         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
13029         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
13030         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
13031         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
13032         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
13033         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
13034         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
13035         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
13036         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
13037         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
13038         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
13039         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
13040         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
13041         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
13042         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
13043         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
13044         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
13045         ix86_option_optimization_table, ix86_option_init_struct,
13046         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
13047         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13048         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
13049         i386-common.c.
13050         * config/i386/t-i386 (i386.o): Update dependencies.
13051         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
13052         * config/ia64/ia64.c (ia64_option_optimization_table,
13053         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13054         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13055         ia64_handle_option): Move to ia64-common.c.
13056         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
13057         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
13058         * config/lm32/lm32.c (lm32_option_optimization_table,
13059         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
13060         to lm32-common.c.
13061         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
13062         m32c-common.c.
13063         * config/m32r/m32r.c (m32r_option_optimization_table,
13064         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13065         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
13066         m32r_handle_option): Move to m32r-common.c.
13067         (m32r_memory_move_cost): Remove comment referring to
13068         TARGET_HANDLE_OPTION.
13069         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
13070         Move to m68k-common.c.
13071         * config/mcore/mcore.c (mcore_option_optimization_table,
13072         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13073         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
13074         * config/mep/mep.c (mep_option_optimization_table,
13075         mep_handle_option, TARGET_HANDLE_OPTION,
13076         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
13077         Move to mep-common.c.
13078         * config/microblaze/microblaze.c
13079         (microblaze_option_optimization_table,
13080         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
13081         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
13082         * config/mips/mips.c (mips_handle_option,
13083         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13084         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
13085         mips-common.c.
13086         * config/mmix/mmix.c (mmix_option_optimization_table,
13087         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13088         Move to mmix-common.c.
13089         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
13090         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
13091         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13092         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
13093         * config/pa/pa.c: Include common/common-target.h.
13094         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
13095         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13096         pa_handle_option): Move to pa-common.c.
13097         (pa_option_override): Use targetm_common.except_unwind_info.
13098         (pa_asm_output_mi_thunk, pa_function_section): Use
13099         targetm_common.have_named_sections.
13100         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
13101         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13102         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13103         pdp11_handle_option, pdp11_option_init_struct): Move to
13104         pdp11-common.c.
13105         * config/picochip/picochip.c (picochip_option_optimization_table,
13106         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
13107         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
13108         * config/rs6000/rs6000.c: Include common/common-target.h.
13109         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
13110         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
13111         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
13112         rs6000_handle_option): Move to rs6000-common.c.
13113         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13114         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
13115         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13116         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
13117         * config/s390/s390.c (processor_flags_table,
13118         s390_option_optimization_table, s390_option_init_struct,
13119         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
13120         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
13121         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
13122         * config/s390/s390.h (processor_flags_table): Declare.
13123         * config/score/score.c (score_option_optimization_table,
13124         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13125         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
13126         score_handle_option): Move to score-common.c.
13127         * config/sh/sh.c (sh_option_optimization_table,
13128         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
13129         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
13130         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
13131         * config/sparc/sparc.c: Include common/common-target.h.
13132         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13133         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
13134         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
13135         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
13136         spu_option_init_struct): Move to spu-common.c.
13137         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
13138         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
13139         * config/v850/v850.c (small_memory_physical_max,
13140         v850_handle_memory_optionn v850_handle_option,
13141         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
13142         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
13143         v850-common.c.
13144         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
13145         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
13146         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
13147         Move to xtensa-common.c.
13148         * cfglayout.c: Include common/common-target.h.
13149         (fixup_reorder_chain): Use targetm_common.have_named_sections.
13150         * cfgrtl.c: Include common/common-target.h.
13151         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
13152         targetm_common.have_named_sections.
13153         * dbxout.c: Include common/common-target.h.
13154         (dbxout_function_end): Use targetm_common.have_named_sections.
13155         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
13156         targetm_common.except_unwind_info.
13157         * dwarf2out.c: Include common/common-target.h.
13158         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
13159         dwarf2out_begin_prologue, dwarf2out_frame_init,
13160         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
13161         targetm_common.except_unwind_info.
13162         * except.c: Include common/common-target.h.
13163         (init_eh, finish_eh_generation,
13164         output_one_function_exception_table): Use
13165         targetm_common.except_unwind_info.
13166         (switch_to_exception_section): Use targetm_common.have_named_sections.
13167         * explow.c: Include common/common-target.h.
13168         * expr.c: Include common/common-target.h.
13169         (build_personality_function): Use targetm_common.except_unwind_info.
13170         * function.c: Include common/common-target.h.
13171         (expand_function_end): Use targetm_common.except_unwind_info.
13172         * haifa-sched.c: Include common/common-target.h.
13173         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
13174         * lto-opts.c: Include common/common-target.h instead of target.h.
13175         (lto_reissue_options): Use targetm_common.handle_option.
13176         * opts.c: Include common/common-target.h.
13177         (target_handle_option): Use targetm_common.handle_option.
13178         (init_options_struct): Update comment referring to
13179         targetm.target_option.optimization.  Use
13180         targetm_common.default_target_flags,
13181         targetm_common.unwind_tables_default and
13182         targetm_common.option_init_struct.
13183         (default_options_optimization): Use
13184         targetm_common.option_optimization_table.
13185         (finish_options): Use targetm_common.except_unwind_info,
13186         targetm_common.unwind_tables_default,
13187         targetm_common.have_named_sections and
13188         targetm_common.supports_split_stack.
13189         * toplev.c: Include common/common-target.h.
13190         (process_options): Use targetm_common.have_named_sections.
13191         * tree-tailcall.c: Include common/common-target.h.
13192         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
13193         * tree.c: Include common/common-target.h.
13194         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
13195         * varasm.c: Include common/common-target.h.
13196         (resolve_unique_section, hot_function_section,
13197         default_function_section): Use targetm_common.have_named_sections.
13198
13199 2011-06-14  Easwaran Raman  <eraman@google.com>
13200
13201         PR rtl-optimization/44194
13202         * dse.c: Include tree-flow.h
13203         (insn_info): Add new field non_frame_wild_read.
13204         (group_info): Add new fields escaped_n and escaped_p.
13205         (kill_on_calls): New variable.
13206         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
13207         (dse_step0): Initialize kill_on_calls.
13208         (can_escape): New function.
13209         (set_usage_bits): Add additional parameter; record information
13210         about escaped locations.
13211         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
13212         (dse_step2_nospill): Set kill_on_calls based on
13213         group->escaped_n and group->escaped_n.
13214         (add_wild_read): Refactor into...
13215         (reset_active_stores): ... New function, and
13216         (free_read_records): ... New function.
13217         (add_non_frame_wild_read): New function.
13218         (scan_insn): Call add_non_frame_wild_read on non-const calls.
13219         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
13220         (dse_step5_nospill): Call scan_reads_nospill for instructions
13221         marked as non_frame_wild_read.
13222         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
13223
13224 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
13225
13226         * common/common-target-def.h, common/common-target.def,
13227         common/common-target.h, common/config/default-common.c,
13228         common/config/pa/pa-common.c: New files.
13229         * Makefile.in (common_out_file, common_out_object_file,
13230         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
13231         (OBJS-libcommon-target): Include $(common_out_object_file).
13232         (prefix.o): Update dependencies.
13233         ($(common_out_object_file), common/common-target-hooks-def.h,
13234         s-common-target-hooks-def-h): New.
13235         (s-tm-texi): Also check timestamp on common-target.def.
13236         (build/genhooks.o): Update dependencies.
13237         * config.gcc (common_out_file, target_has_targetm_common): Define.
13238         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
13239         TARGET_ALWAYS_STRIP_DOTDOT.
13240         * configure.ac (common_out_object_file): Define.
13241         (common_out_file, common_out_object_file): Substitute.
13242         (common): Create directory.
13243         * configure: Regenerate.
13244         * doc/tm.texi.in (targetm_common): Document.
13245         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
13246         * doc/tm.texi: Regenerate.
13247         * genhooks.c (hook_array): Also include common/common-target.def.
13248         * prefix.c (tm.h): Don't include.
13249         (common/common-target.h): Include.
13250         (ALWAYS_STRIP_DOTDOT): Don't define.
13251         (update_path): Use targetm_common.always_strip_dotdot instead of
13252         ALWAYS_STRIP_DOTDOT.
13253         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
13254
13255 2011-06-14  David Li  <davidxl@google.com>
13256
13257         * passes.c (execute_function_todo): Remove TODO_dump_func.
13258         (execute_one_pass): Remove TODO_dump_func.
13259         (execute_function_dump): New function.
13260         * tree-vrp.c: Remove TODO_dump_func.
13261         * regrename.c: Remove TODO_dump_func.
13262         * fwprop.c: Remove TODO_dump_func.
13263         * tree-into-ssa.c: Remove TODO_dump_func.
13264         * tree-complex.c: Remove TODO_dump_func.
13265         * tracer.c: Remove TODO_dump_func.
13266         * tree-loop-distribution.c: Remove TODO_dump_func.
13267         * postreload-gcse.c: Remove TODO_dump_func.
13268         * postreload.c: Remove TODO_dump_func.
13269         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
13270         * tree-tailcall.c: Remove TODO_dump_func.
13271         * ipa-cp.c: Remove TODO_dump_func.
13272         * final.c: Remove TODO_dump_func.
13273         * tree-emutls.c: Remove TODO_dump_func.
13274         * omp-low.c: Remove TODO_dump_func.
13275         * tree-ssa-dse.c: Remove TODO_dump_func.
13276         * tree-ssa-uncprop.c: Remove TODO_dump_func.
13277         * auto-inc-dec.c: Remove TODO_dump_func.
13278         * reorg.c: Remove TODO_dump_func.
13279         * tree-ssa-copyrename.c: Remove TODO_dump_func.
13280         * tree-ssa-ccp.c: Remove TODO_dump_func.
13281         * compare-elim.c: Remove TODO_dump_func.
13282         * mode-switching.c: Remove TODO_dump_func.
13283         * modulo-sched.c: Remove TODO_dump_func.
13284         * tree-call-cdce.c: Remove TODO_dump_func.
13285         * cse.c: Remove TODO_dump_func.
13286         * web.c: Remove TODO_dump_func.
13287         * tree-stdarg.c: Remove TODO_dump_func.
13288         * lto-streamer-out.c: Remove TODO_dump_func.
13289         * tree-ssa-math-opts.c: Remove TODO_dump_func.
13290         * tree-ssa-dom.c: Remove TODO_dump_func.
13291         * tree-nrv.c: Remove TODO_dump_func.
13292         * loop-init.c: Remove TODO_dump_func.
13293         * gimple-low.c: Remove TODO_dump_func.
13294         * ipa-inline.c: Remove TODO_dump_func.
13295         * tree-ssa-sink.c: Remove TODO_dump_func.
13296         * jump.c: Remove TODO_dump_func.
13297         * ifcvt.c: Remove TODO_dump_func.
13298         * tree-ssa-loop.c: Remove TODO_dump_func.
13299         * recog.c: Remove TODO_dump_func.
13300         * dse.c: Remove TODO_dump_func.
13301         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
13302         * matrix-reorg.c: Remove TODO_dump_func.
13303         * tree-eh.c: Remove TODO_dump_func.
13304         * regmove.c: Remove TODO_dump_func.
13305         * function.c: Remove TODO_dump_func.
13306         * tree-vectorizer.c: Remove TODO_dump_func.
13307         * ipa-split.c: Remove TODO_dump_func.
13308         * gcse.c: Remove TODO_dump_func.
13309         * tree-if-conv.c: Remove TODO_dump_func.
13310         * init-regs.c: Remove TODO_dump_func.
13311         * tree-ssa-phiopt.c: Remove TODO_dump_func.
13312         * implicit-zee.c: Remove TODO_dump_func.
13313         * lower-subreg.c: Remove TODO_dump_func.
13314         * bt-load.c: Remove TODO_dump_func.
13315         * tree-dfa.c: Remove TODO_dump_func.
13316         * except.c: Remove TODO_dump_func.
13317         * emit-rtl.c: Remove TODO_dump_func.
13318         * store-motion.c: Remove TODO_dump_func.
13319         * cfgexpand.c: Remove TODO_dump_func.
13320         * tree-cfgcleanup.c: Remove TODO_dump_func.
13321         * cfgcleanup.c: Remove TODO_dump_func.
13322         * tree-ssa-pre.c: Remove TODO_dump_func.
13323         * tree-sra.c: Remove TODO_dump_func.
13324         * tree-mudflap.c: Remove TODO_dump_func.
13325         * tree-ssa-copy.c: Remove TODO_dump_func.
13326         * cfglayout.c: Remove TODO_dump_func.
13327         * tree-ssa-forwprop.c: Remove TODO_dump_func.
13328         * tree-ssa-dce.c: Remove TODO_dump_func.
13329         * ira.c: Remove TODO_dump_func.
13330         * tree-ssa.c: Remove TODO_dump_func.
13331         * integrate.c: Remove TODO_dump_func.
13332         * tree-optimize.c: Remove TODO_dump_func.
13333         * tree-ssa-phiprop.c: Remove TODO_dump_func.
13334         * tree-object-size.c: Remove TODO_dump_func.
13335         * combine.c: Remove TODO_dump_func.
13336         * bb-reorder.c: Remove TODO_dump_func.
13337         * cprop.c: Remove TODO_dump_func.
13338         * var-tracking.c: Remove TODO_dump_func.
13339         * tree-profile.c: Remove TODO_dump_func.
13340         * tree-vect-generic.c: Remove TODO_dump_func.
13341         * reg-stack.c: Remove TODO_dump_func.
13342         * sched-rgn.c: Remove TODO_dump_func.
13343         * tree-ssa-structalias.c: Remove TODO_dump_func.
13344         * tree-switch-conversion.c: Remove TODO_dump_func.
13345         * tree-cfg.c: Remove TODO_dump_func.
13346         * tree-ssa-reassoc.c: Remove TODO_dump_func.
13347         * combine-stack-adj.c: Remove TODO_dump_func.
13348         * dce.c: Remove TODO_dump_func.
13349         * tree-ssanames.c: Remove TODO_dump_func.
13350         * regcprop.c: Remove TODO_dump_func.
13351
13352 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
13353
13354         PR middle-end/47364
13355         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
13356         and properly handle result not in Pmode.
13357
13358 2011-06-14  Robert Millan  <rmh@gnu.org>
13359
13360         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
13361         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
13362         `config/linux.h'.
13363
13364         * config/i386/kfreebsd-gnu64.h: New file.
13365         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
13366         with `i386/kfreebsd-gnu64.h'.
13367
13368         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
13369         (GNU_USER_LINK_EMULATION64): New macros.
13370         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
13371         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
13372         of hardcoding `elf_i386' and `elf_x86_64'.
13373
13374 2011-06-14  Nick Clifton  <nickc@redhat.com>
13375
13376         PR target/49403
13377         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
13378
13379         PR target/49402
13380         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
13381
13382 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
13383
13384         PR fortran/49103
13385         * tree.h (DECL_NONSHAREABLE): Define.
13386         (struct tree_decl_common): Change decl_common_unused to
13387         decl_nonshareable_flag.
13388         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
13389         Ignore vars with DECL_NONSHAREABLE bit set.
13390         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
13391         on stores to automatic aggregate vars.
13392
13393         PR rtl-optimization/49390
13394         Revert:
13395         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
13396
13397         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
13398         MEM_ALIAS_SET.
13399
13400 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
13401             Tom de Vries  <tom@codesourcery.com>
13402
13403         PR target/45098
13404         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
13405         Document changed semantics.
13406         (max_stmt_executions, max_stmt_executions_int): Declare.
13407         * tree-data-ref.c (estimated_loop_iterations)
13408         (estimated_loop_iterations_int): Move functions...
13409         * tree-ssa-loop-niter.c (estimated_loop_iterations)
13410         (estimated_loop_iterations_int): here.
13411         (record_estimate): Change nb_iterations_upper_bound and
13412         nb_iterations_estimate semantics.
13413         (max_stmt_executions, max_stmt_executions_int): New function.
13414         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
13415         (max_stmt_executions_tree): this.
13416         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
13417         estimated_loop_iterations_tree.
13418         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
13419         max_stmt_executions_int instead of estimated_loop_iterations_int.
13420         * predict.c (predict_loops): Idem.
13421         * tree-parloops.c (parallelize_loops): Idem.
13422         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
13423         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
13424         (init_omega_for_ddr_1): Idem.
13425         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
13426         (loop_prefetch_arrays): Idem
13427         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
13428         max_stmt_executions instead of estimated_loop_iterations.
13429         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
13430         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
13431         instead of nb_iterations_upper_bound.
13432
13433 2011-06-13  Jan Hubicka  <jh@suse.cz>
13434
13435         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
13436
13437 2011-06-14  Richard Henderson  <rth@redhat.com>
13438
13439         PR debug/48459
13440         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
13441         (based_loc_descr): Assert it's true.
13442         (compute_frame_pointer_to_fb_displacement): Set it, rather than
13443         aborting immediately.
13444
13445 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
13446             Mingfeng Wu  <mingfeng@faraday-tech.com>
13447
13448         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
13449
13450 2011-06-13  Jan Hubicka  <jh@suse.cz>
13451
13452         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
13453
13454 2011-06-13  Jan Hubicka  <jh@suse.cz>
13455
13456         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
13457         similarly to DECL_COMDAT.
13458         * cgraphunit.c (cgraph_analyze_function): Likewise.
13459         * ipa.c (function_and_variable_visibility): Likewise.
13460
13461 2011-06-13  Jan Hubicka  <jh@suse.cz>
13462
13463         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
13464         BINFO_VIRTUALS when streaming for ltrans unit.
13465
13466 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
13467
13468         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
13469         (movdi_internal64): Same.
13470
13471 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
13472
13473         PR target/44618
13474         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
13475         a set of similar patterns, where the MATCH_OPERAND for the function
13476         argument is replaced with individual references to hardware registers.
13477         (save_fpregs_<mode>): Ditto
13478         (restore_gpregs_<mode>): Ditto
13479         (return_and_restore_gpregs_<mode>): Ditto
13480         (return_and_restore_fpregs_<mode>): Ditto
13481         (return_and_restore_fpregs_aix_<mode>): Ditto
13482
13483 2011-06-13  Jan Hubicka  <jh@suse.cz>
13484
13485         * ipa-utils.c (postorder_stack): New structure.
13486         (ipa_reverse_postorder): Handle aliases.
13487
13488 2011-06-13  Jan Hubicka  <jh@suse.cz>
13489
13490         * ipa-inline.c (reset_edge_caches): Walk aliases.
13491         (update_caller_keys): Do not test inlinability of aliases.
13492         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
13493         (do_estimate_growth): Fix typo.
13494
13495 2011-06-13  Jan Hubicka  <jh@suse.cz>
13496
13497         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
13498         (can_remove_node_now_p): ... here; handle same comdat groups.
13499         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
13500         (inline_call): Update use of can_remove_node_now_p.
13501
13502 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13503
13504         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
13505         condition to disallow non-identical memory locations.
13506         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
13507         preference to bit manipulation instructions.
13508
13509 2011-06-13  Jan Hubicka  <jh@suse.cz>
13510
13511         * cgraph.c (cgraph_for_node_thunks_and_aliases,
13512         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
13513         (nonremovable_p): New function.
13514         (cgraph_can_remove_if_no_direct_calls_p): New function.
13515         (used_from_object_file_p): New functoin.
13516         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
13517         references from aliases.
13518         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
13519         * ipa-inline.c (check_caller_edge): New function.
13520         (want_inline_function_called_once_p): Use it; accept aliases called
13521         once, too.
13522         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
13523
13524 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13525
13526         PR target/48454
13527         * config/arm/neon.md (vec_pack_trunc): Set the lengths
13528         correctly for the case with Quad vectors.
13529
13530 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
13531            Ira Rosen  <ira.rosen@linaro.org>
13532
13533         PR tree-optimization/49352
13534         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
13535         all, make sure loop_use_stmt after the loop is a def stmt of a used
13536         SSA_NAME that is the only one defined inside of the loop.  Don't
13537         check for COND_EXPR and GIMPLE_BINARY_RHS.
13538         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
13539         check_reduction is true.
13540
13541 2011-06-11  Jan Hubicka  <jh@suse.cz>
13542
13543         PR middle-end/49373
13544         * ipa.c (cgraph_externally_visible_p): Check resolution info.
13545
13546 2011-06-11  Jan Hubicka  <jh@suse.cz>
13547
13548         PR middle-end/48836
13549         * ipa-inline-transform.c: Include tree-pass.h
13550         (inline_transform): Set TODO_update_ssa_only_virtuals.
13551         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
13552
13553 2011-06-11  Jan Hubicka  <jh@suse.cz>
13554
13555         PR middle-end/49378
13556         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
13557         aliases and thunks.
13558
13559 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
13560
13561         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
13562         Take number of iterations to peel into account for equally frequent
13563         misalignment values.
13564
13565 2011-06-11  Jan Hubicka  <jh@suse.cz>
13566
13567         * lto-streamer-out.c (produce_symtab): Stream out the newly
13568         represented aliases.
13569
13570 2011-06-11  Jan Hubicka  <jh@suse.cz>
13571
13572         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
13573         varying args.
13574         (ipa_update_after_lto_read): Likewise.
13575         (ipa_write_node_info): Do not sream call_with_var_arguments.
13576         (ipa_read_node_info): Likewise.
13577
13578 2011-06-11  Jan Hubicka  <jh@suse.cz>
13579
13580         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
13581
13582 2011-06-11  Jan Hubicka  <jh@suse.cz>
13583
13584         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
13585         (lto_symtab_resolve_can_prevail_p): Likewise.
13586         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
13587         * cgraph.c (same_body_aliases_done): New global var.
13588         (cgraph_same_body_alias_1): Rename to ...
13589         (cgraph_create_function_alias): ... this one; reorg to new
13590         representation.
13591         (cgraph_same_body_alias): Use cgraph_create_function_alias;
13592         record references when asked to.
13593         (cgraph_add_thunk): Fix formating.
13594         (cgraph_get_node): Kill same body alias code.
13595         (cgraph_node_for_asm): Likewise.
13596         (cgraph_remove_same_body_alias): Remove.
13597         (cgraph_remove_node): Kill same body alias code.
13598         (cgraph_mark_address_taken_node): Mark also the aliased function
13599         as having address taken.
13600         (dump_cgraph_node): Dump same body aliases.
13601         (cgraph_for_node_thunks_and_aliases): Update for new alias
13602         representation.
13603         (cgraph_for_node_and_aliases): Likewise.
13604         * cgraph.h (same_body): Kll pointer.
13605         (same_body_alias): Update comment.
13606         (same_body_aliases_done): Declare.
13607         (cgraph_remove_same_body_alias): Remove declaration.
13608         (cgraph_create_function_alias): Declare.
13609         (cgraph_process_same_body_aliases): Declare.
13610         (cgraph_function_with_gimple_body_p): Check for alias.
13611         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
13612         (cgraph_alias_aliased_node): New function.
13613         (cgraph_function_node): Update for new aliases.
13614         (cgraph_function_or_thunk_node): Likewise.
13615         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
13616         (inline_call): Remove dead aliases.
13617         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
13618         name hack for same body aliases.
13619         (clone_of_p): Look through aliases.
13620         (verify_cgraph_node): Verify aliases.
13621         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
13622         (cgraph_process_same_body_aliases): New function.
13623         (process_function_and_variable_attributes): Disable weakref warning on
13624         alias.
13625         (cgraph_analyze_functions): Handle aliases.
13626         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
13627         (assemble_thunks): Rename to ...
13628         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
13629         (cgraph_expand_function): Remove alias output code.
13630         (cgraph_output_in_order): Skip aliases.
13631         (cgraph_preserve_function_body_p): Aliases don't need preserving.
13632         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
13633         (ipa_record_reference): Do not assert on alias references.
13634         (ipa_ref_has_aliases_p): New function.
13635         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
13636         (ipa_ref_has_aliases_p): Declare.
13637         * lto-cgraph.c (lto_output_node): Handle aliases.
13638         (input_node): Likewise.
13639         * lto-streamer-out.c (lto_output): Skip aliases.
13640         (produce_symtab): Kill same_body_alias code.
13641         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
13642         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
13643         * ipa-inline.c (update_caller_keys): Walk aliases.
13644         (inline_small_functions): Fix thinko in previous patch.
13645         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
13646         (function_and_variable_visibility): Do not walk same body aliases.
13647         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
13648         (ipa_pta_execute): Use it.
13649
13650 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13651
13652         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
13653         (*vec_dupv2df): Rename from vec_dupv2df.
13654         (vec_dupv2df): New expander.
13655
13656 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13657
13658         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
13659
13660 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
13661
13662         * config/i386/i386.md: Use default value in "isa" attribute.
13663         * config/i386/sse.md: Ditto.
13664         * config/i386/mmx.md: Ditto.
13665
13666 2011-06-10  Wei Guozhi  <carrot@google.com>
13667
13668         PR target/45335
13669         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
13670         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
13671         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
13672         related peephole2.
13673         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
13674         related peephole2.
13675         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
13676         (arm_legitimate_ldrd_p): New prototype.
13677         (arm_output_ldrd): New prototype.
13678         * config/arm/arm.c (arm_check_ldrd_operands): New function.
13679         (arm_legitimate_ldrd_p): New function.
13680         (arm_output_ldrd): New function.
13681
13682 2011-06-10  David Li  <davidxl@google.com>
13683
13684         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
13685         * passes.c (passr_eq): New function.
13686         (create_pass_tab): New function.
13687         (pass_traverse): New function.
13688         (dump_one_pass): New function.
13689         (dump_pass_list): New function.
13690         (dump_passes): New function.
13691
13692 2011-06-10  Jan Hubicka  <jh@suse.cz>
13693
13694         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
13695         setting the nothrow flag.
13696         * ipa-reference.c (propagate): Skip aliases.
13697         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
13698         (propagate_nothrow): Skip aliases; do not update cgraph.
13699         (local_pure_const): Do not update cgraph.
13700         * tree-profile.c (tree_profiling): Do fixup_cfg.
13701
13702 2011-06-10  Jan Hubicka  <jh@suse.cz>
13703
13704         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
13705         (cgraph_local_node_p): ... here; handle aliases.
13706         (has_addr_references_p): Break out from ...;
13707         (cgraph_remove_unreachable_nodes) ... here.
13708
13709 2011-06-10  Jan Hubicka  <jh@suse.cz>
13710
13711         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
13712         * common.opt (flag_inline_functions_called_once): Do not
13713         initialize to 1.
13714
13715 2011-06-10  Jan Hubicka  <jh@suse.cz>
13716
13717         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
13718         (ipcp_initialize_node_lattices): Do not deal with aliases;
13719         Do not try to propagate through thunks.
13720         (ipcp_change_tops_to_bottom): Do not deal with aliases.
13721
13722 2011-06-10  Jan Hubicka  <jh@suse.cz>
13723
13724         * ipa-prop.c (ipa_write_node_info): Stream jump functions
13725         for indirect calls.
13726         (ipa_read_node_info): Likewise.
13727
13728 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13729
13730         PR lto/49302
13731         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
13732         (build_and_insert_call): Likewise.
13733         (build_and_insert_ref): New.
13734         (gimple_expand_builtin_pow): Minor cleanup.
13735         (gimple_expand_builtin_cabs): New.
13736         (execute_cse_sincos): Add case for BUILT_IN_CABS.
13737
13738 2011-06-10  Jan Hubicka  <jh@suse.cz>
13739
13740         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
13741         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
13742         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
13743         (ipcp_propagate_stage): Skip aliases when propagating.
13744         (ipcp_need_redirect_p): Skip aliases.
13745         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
13746         collect_callers_of_node.
13747         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
13748         for aliases.
13749         (ipa_compute_jump_functions): Look through aliases.
13750
13751 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13752
13753         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
13754
13755 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13756
13757         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
13758         Adjust comments.
13759         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
13760
13761 2011-06-10  Jan Hubicka  <jh@suse.cz>
13762
13763         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
13764         Update call of gimple_get_virt_method_for_binfo.
13765         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
13766         refuse_thunks parameter.
13767         (gimple_fold_call): Update.
13768         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
13769
13770 2011-06-10  Jan Hubicka  <jh@suse.cz>
13771
13772         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
13773         (not_all_callers_have_enough_arguments_p): ... this one; turn into
13774         worker for cgraph_for_node_and_aliases.
13775         (convert_callers_for_node): Break out from ...
13776         (convert_callers): ... here.
13777         (modify_function): Use collect_callers_of_node.
13778         (ipa_early_sra): Use cgraph_for_node_and_aliases.
13779
13780 2011-06-10  Richard Guenther  <rguenther@suse.de>
13781
13782         PR tree-optimization/49361
13783         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
13784         when not already in gimple form.
13785
13786 2011-06-10  Richard Guenther  <rguenther@suse.de>
13787
13788         PR bootstrap/49344
13789         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
13790         FOR_EACH_PHI_OR_STMT_USE.
13791
13792 2011-06-10  Jan Hubicka  <jh@suse.cz>
13793
13794         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
13795         (clone_inlined_nodes): ... here.
13796         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
13797         to real destination prior inlining.
13798         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
13799         can_early_inline_edge_p, want_early_inline_function_p,
13800         want_early_inline_function_p, want_inline_small_function_p,
13801         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
13802         edge_badness, update_all_callee_keys, lookup_recursive_calls,
13803         add_new_edges_to_heap, inline_small_functions, flatten_function,
13804         inline_always_inline_functions, early_inline_small_functions): Use
13805         cgraph_function_or_thunk_node.
13806         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
13807         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
13808         (do_estimate_edge_growth_1): Break out from ...
13809         (do_estimate_growth) ... here; walk aliases.
13810         (inline_generate_summary): Skip aliases.
13811
13812 2011-06-10  Richard Guenther  <rguenther@suse.de>
13813
13814         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
13815         forward when combining, visit inserted stmts when a stmt was changed.
13816
13817 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
13818
13819         * tree.h (error_operand_p): Add.
13820         * dbxout.c (dbxout_type_fields): Use the latter.
13821         * c-decl.c (add_stmt): Likewise.
13822         * gimplify.c (omp_add_variable, omp_notice_variable,
13823         gimplify_scan_omp_clauses): Likewise.
13824
13825 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
13826
13827         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
13828         when a value is actually passed in regs.
13829
13830 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
13831             Laurent Rougé  <laurent.rouge@menta.fr>
13832
13833         * doc/invoke.texi (SPARC options): Add -mflat.
13834         * config/sparc/sparc.opt: Likewise.
13835         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
13836         (sparc_flat_expand_prologue): Declare.
13837         (sparc_flat_expand_epilogue): Likewise.
13838         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
13839         (CPP_ENDIAN_SPEC): Replace with...
13840         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
13841         (CPP_SPEC): Adjust to above change.
13842         (EXTRA_SPECS): Likewise.
13843         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
13844         (INCOMING_REGNO): Likewise.
13845         (OUTGOING_REGNO): Likewise.
13846         (LOCAL_REGNO): Likewise.
13847         (SETUP_FRAME_ADDRESSES): Likewise.
13848         (FIXED_REGISTERS): Set 0 for %fp.
13849         (CALL_USED_REGISTERS): Likewise.
13850         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
13851         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
13852         (RETURN_ADDR_REGNUM): Define.
13853         (RETURN_ADDR_RTX): Use it.
13854         (INCOMING_RETURN_ADDR_REGNUM): Define.
13855         (INCOMING_RETURN_ADDR_RTX): Use it.
13856         (DWARF_FRAME_RETURN_COLUMN): Likewise.
13857         (EH_RETURN_REGNUM): Define.
13858         (EH_RETURN_STACKADJ_RTX): Use it.
13859         (EH_RETURN_HANDLER_RTX): Delete.
13860         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
13861         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
13862         Delete.
13863         (struct machine_function): Add frame_size, apparent_frame_size,
13864         frame_base_reg, frame_base_offset, n_global_fp_regs and
13865         save_local_in_regs_p fields.
13866         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
13867         sparc_frame_base_offset, sparc_n_global_fp_regs,
13868         sparc_save_local_in_regs_p): New macros.
13869         (sparc_option_override): Error out if -fcall-saved-REG is specified
13870         for Out registers.
13871         (eligible_for_restore_insn): Fix formatting.
13872         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
13873         (eligible_for_sibcall_delay): Likewise.
13874         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
13875         (sparc_legitimate_address_p): Adjust to above change.
13876         (save_global_or_fp_reg_p): New predicate.
13877         (return_addr_reg_needed_p): Likewise.
13878         (save_local_or_in_reg_p): Likewise.
13879         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
13880         (SORR_SAVE, SORR_RESTORE): Delete.
13881         (sorr_pred_t): New typedef.
13882         (sorr_act_t): New enum.
13883         (save_or_restore_regs): Rename to...
13884         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
13885         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
13886         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
13887         mechanism.  Add CFI information for double-word saves in 32-bit mode.
13888         (emit_adjust_base_to_offset): New function extracted from...
13889         (emit_save_or_restore_regs): ...this.  Rename the rest to...
13890         (emit_save_or_restore_regs_global_fp_regs): ...this.
13891         (emit_save_or_restore_regs_local_in_regs): New function.
13892         (gen_create_flat_frame_[123]): New functions.
13893         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
13894         (sparc_flat_expand_prologue): New function.
13895         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
13896         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
13897         (sparc_flat_expand_epilogue): New function.
13898         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
13899         (output_return): Likewise.
13900         (output_sibcall): Likewise.
13901         (sparc_output_mi_thunk): Likewise.
13902         (sparc_frame_pointer_required): Likewise.
13903         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
13904         function optimization.
13905         * config/sparc/sparc.md (flat): New attribute.
13906         (prologue): Add TARGET_FLAT handling.
13907         (save_register_window): Disable if TARGET_FLAT.
13908         (create_flat_frame_[123]): New patterns.
13909         (epilogue): Add TARGET_FLAT handling.
13910         (sibcall_epilogue): Likewise.
13911         (eh_return): New expander.
13912         (eh_return_internal): New insn and splitter.
13913         (return_internal): Add TARGET_FLAT handling.
13914         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
13915         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
13916         (nonlocal_goto): Add TARGET_FLAT handling.
13917         * config/sparc/t-elf: Add -mflat multilib.
13918         * config/sparc/t-leon: Likewise.
13919
13920 2011-06-10  Jan Hubicka  <jh@suse.cz>
13921
13922         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
13923         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
13924         (self_recursive_p): Use cgraph_function_node.
13925         (propagate_pure_const): Likewise.
13926         (propagate_nothrow): Likewise.
13927         * ipa-reference.c (ipa_reference_get_not_read_global): Use
13928         cgraph_function_node.
13929         (propagate_bits): Likewise.
13930         (propagate): Likewise.
13931
13932 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13933             Richard Earnshaw  <rearnsha@arm.com>
13934
13935         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
13936         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
13937         (*thumb2_movdi_vfp): Delete.
13938         (*arm_movdi_vfp_cortexa8): Delete.
13939         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
13940         (*movdi_vfp_cortexa8): Likewise.
13941
13942 2011-06-10  Richard Guenther  <rguenther@suse.de>
13943
13944         * stor-layout.c (initialize_sizetypes): Give names to all
13945         sizetype kinds.
13946
13947 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
13948
13949         PR tree-optimization/49318
13950         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
13951         irrelevant pattern statements.
13952
13953 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
13954
13955         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
13956
13957         PR bootstrap/49354
13958         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
13959         to last assignment.
13960
13961 2011-06-09  Jan Hubicka  <jh@suse.cz>
13962
13963         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
13964         do not recompute reachable flag.
13965         (cgraph_finalize_function, cgraph_analyze_functions): Set
13966         redefined_extern_inline here.
13967
13968 2011-06-09  Jan Hubicka  <jh@suse.cz>
13969
13970         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
13971         (cgraph_only_called_directly_p): ... this one; bring offline.
13972         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
13973         varpool_used_from_object_file_p): Drop names from the declaratoin.
13974         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
13975         collect_callers_of_node): New.
13976         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
13977         (cgraph_edge_recursive_p): Use cgraph_function_node.
13978         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
13979         (cgraph_node_cannot_be_local_p_1): Break out from ...
13980         (cgraph_node_can_be_local_p): ... here; walk aliases.
13981         (cgraph_for_node_thunks_and_aliases): New function.
13982         (cgraph_for_node_and_aliases): New function.
13983         (cgraph_make_node_local_1): Break out from ...
13984         (cgraph_make_node_local) ... here; use
13985         cgraph_for_node_thunks_and_aliases.
13986         (cgraph_set_nothrow_flag_1): Break out from ...
13987         (cgraph_set_nothrow_flag) ... here;
13988         use cgraph_for_node_thunks_and_aliases.
13989         (cgraph_set_const_flag_1): Break out from ...
13990         (cgraph_set_const_flag) ... here;
13991         use cgraph_for_node_thunks_and_aliases.
13992         (cgraph_set_pure_flag_1): Break out from ...
13993         (cgraph_set_pure_flag) ... here;
13994         use cgraph_for_node_thunks_and_aliases.
13995         (cgraph_propagate_frequency_1): Break out from ...
13996         (cgraph_propagate_frequency) ... here; use
13997         cgraph_for_node_thunks_and_aliases.
13998         (cgraph_used_from_object_file_p): Do not care about aliases.
13999         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
14000         New functions.
14001         (collect_callers_of_node_1, collect_callers_of_node): New functions.
14002
14003 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14004
14005         PR rtl-optimization/49154
14006         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
14007         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
14008         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
14009         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
14010         * config/cris/cris.h (cris_register_move_cost): Remove
14011         !TARGET_V32 code.  Tweak comments.
14012
14013 2011-06-09  Jan Hubicka  <jh@suse.cz>
14014
14015         * cgraphbuild.c (record_eh_tables): Mark personality function as having
14016         address taken.
14017
14018 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
14019
14020         PR rtl-optimization/49154
14021         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
14022         is a matching slot in the hashtable, assign it to classes_ptr.
14023
14024         PR rtl-optimization/49154
14025         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
14026         register classes.
14027         * doc/tm.texi: Regenerate.
14028
14029 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14030
14031         PR target/49307
14032         * config/sh/sh.md (UNSPEC_CHKADD): New.
14033         (chk_guard_add): New define_insn_and_split.
14034         (symGOT_load): Use chk_guard_add instead of blockage.
14035
14036 2011-06-09  Kai Tietz  <ktietz@redhat.com>
14037
14038         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
14039
14040 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
14041
14042         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
14043
14044 2011-06-09  Wei Guozhi  <carrot@google.com>
14045
14046         PR target/46975
14047         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
14048         (peephole2 for conditional move): Generate 16 bit instructions.
14049
14050 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
14051
14052         * config/i386/i386.md (*movdi_internal_rex64): Merge
14053         alternatives 6 and 8.
14054
14055 2011-06-09  David Li  <davidxl@google.com>
14056
14057         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
14058         * passes.c (passr_eq): New function.
14059         (create_pass_tab): New function.
14060         (pass_traverse): New function.
14061         (dump_one_pass): New function.
14062         (dump_pass_list): New function.
14063         (dump_passes): New function.
14064
14065 2011-06-09  David Li  <davidxl@google.com>
14066
14067         * tree-complex.c (tree_lower_complex): Gate cleanup.
14068         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
14069         (execute_optimize_stdarg): Ditto.
14070         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
14071         (execute_cleanup_eh_1): Ditto.
14072         (execute_cleanup_eh): Ditto.
14073         * gcse.c (gate_rtl_pre): Ditto.
14074         (execute_rtl_pre): Ditto.
14075         * except.c (finish_eh_generation): Ditto.
14076         (convert_to_eh_region_ranges): Ditto.
14077         * cprop.c (one_cprop_pass): Ditto.
14078
14079 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
14080
14081         PR target/48673
14082         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
14083         in all basic blocks.
14084
14085 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14086
14087         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
14088         (HAVE_ENABLE_EXECUTE_STACK): Define.
14089         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
14090         (HAVE_ENABLE_EXECUTE_STACK): Define.
14091         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
14092         (HAVE_ENABLE_EXECUTE_STACK): Define.
14093         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
14094         (ENABLE_EXECUTE_STACK): Remove.
14095         (HAVE_ENABLE_EXECUTE_STACK): Define.
14096         [IN_LIBGCC2]: Don't include <windows.h>.
14097         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14098         (HAVE_ENABLE_EXECUTE_STACK): Define.
14099         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
14100         (HAVE_ENABLE_EXECUTE_STACK): Define.
14101         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
14102         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
14103         (HAVE_ENABLE_EXECUTE_STACK): Define.
14104         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
14105         (HAVE_ENABLE_EXECUTE_STACK): Define.
14106         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
14107         (HAVE_ENABLE_EXECUTE_STACK): Define.
14108         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
14109         (HAVE_ENABLE_EXECUTE_STACK): Define.
14110         * config/alpha/alpha.c (alpha_trampoline_init): Test
14111         HAVE_ENABLE_EXECUTE_STACK.
14112         * config/i386/i386.c (ix86_trampoline_init): Likewise.
14113         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
14114         (sparc64_initialize_trampoline): Likewise.
14115         * libgcc2.c [L_enable_execute_stack]: Remove.
14116         * system.h (ENABLE_EXECUTE_STACK): Poison.
14117         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
14118         * doc/tm.texi: Regenerate.
14119         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
14120
14121 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
14122
14123         PR middle-end/49308
14124         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
14125         variable.  After resetting and rescanning insn continue with previous
14126         statement.
14127
14128 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14129
14130         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
14131         (gcc_cv_ld_hidden): Likewise.
14132         * configure: Regenerate.
14133         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
14134         (ix86_stack_protect_fail): Mark unused.
14135         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
14136         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
14137         [TARGET_MACHO]: Don't define.
14138         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
14139         (TARGET_STACK_PROTECT_FAIL): Likewise.
14140         (rs6000_stack_protect_fail): Mark unused.
14141         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
14142         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
14143
14144 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14145
14146         * varasm.c (get_section): Print location of other conflict
14147         for section conflicts.
14148
14149 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14150
14151         * config/i386/driver-i386.c (host_detect_local_cpu):
14152         Add model 0x2d Intel CPU.
14153
14154 2011-06-08  Andi Kleen  <ak@linux.intel.com>
14155
14156         * reginfo.c (global_regs_decl): Add.
14157         (globalize_reg): Add decl parameter. Compute location.  Pass location
14158         to warnings and add inform. Store decl in global_regs_decl.
14159         * rtl.h (globalize_reg): Update prototype.
14160         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
14161
14162 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
14163
14164         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
14165
14166 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14167
14168         PR target/49305
14169         * config/sh/predicates.md (general_movsrc_operand): Check
14170         mode for memory with indexed address for QI and HImode.
14171         (general_movdst_operand): Likewise.
14172
14173 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14174
14175         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
14176
14177 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
14178
14179         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
14180         (num_ssa_operands): Likewise.
14181         (op_iter_init_phiuse): Forward-declare.
14182         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
14183
14184 2011-06-08  Nick Clifton  <nickc@redhat.com>
14185
14186         * doc/invoke.texi (ARM Options): Update description of
14187         -mthumb-interwork.
14188
14189 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
14190
14191         * config/i386/driver-i386.c (host_detect_local_cpu): Support
14192         unknown Intel family 0x6 CPUs.
14193
14194 2011-06-08  Martin Jambor  <mjambor@suse.cz>
14195
14196         * tree-sra.c (mark_rw_status): Removed.
14197         (analyze_access_subtree): New parameter parent instead of
14198         mark_read and mark_write, propagate from that.
14199
14200 2011-06-08  Julian Brown  <julian@codesourcery.com>
14201
14202         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
14203         for double-precision helper functions in hard-float mode if only
14204         single-precision arithmetic is supported in hardware.
14205
14206 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
14207
14208         PR rtl-optimization/49303
14209         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
14210         code_motion_path_driver returned 0 or 1.
14211         (sel_region_finish): Clear h_d_i_d.
14212
14213 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
14214
14215         * config/sh/sh.c (prepare_move_operands): Set pic register
14216         appropriately for global and local dynamic tls models even
14217         if flag_pic is unset.
14218
14219 2011-06-07  Jason Merrill  <jason@redhat.com>
14220
14221         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
14222
14223 2011-06-07  Xinliang David Li  <davidxl@google.com>
14224         * passes.c (enable_disable_pass): Handle assembler name.
14225         (is_pass_explicitly_enabled_or_disabled): Ditto.
14226
14227 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14228
14229         PR tree-optimization/48497
14230         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
14231
14232 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14233
14234         PR tree-optimization/46728
14235         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
14236         to use gimple_val_nonnegative_real_p.
14237         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
14238         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
14239
14240 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
14241
14242         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
14243
14244 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
14245
14246         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
14247         constant vectors.
14248
14249 2011-06-07  Richard Guenther  <rguenther@suse.de>
14250
14251         * stor-layout.c (initialize_sizetypes): Initialize all
14252         sizetypes based on target definitions.
14253         (set_sizetype): Remove.
14254         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
14255         * tree.h (set_sizetype): Remove.
14256
14257 2011-06-07  Nick Clifton  <nickc@redhat.com>
14258
14259         * config.gcc: Unify V850 architecture options and add support for
14260         newer V850 architectures.
14261         * config/v850/t-v850e: Delete.
14262
14263 2011-06-07  Richard Guenther  <rguenther@suse.de>
14264
14265         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
14266         Call set_sizetype from here.
14267
14268 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
14269
14270         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
14271         (*maddhisi4tb, *maddhisi4tt): New define_insns.
14272
14273 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
14274             Andrew Stubbs  <ams@codesourcery.com>
14275
14276         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
14277         multiplies.
14278         * doc/md.texi (Canonicalization of Instructions): Document widening
14279         multiply canonicalization.
14280
14281 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
14282
14283         PR gcov-profile/49299
14284         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
14285
14286 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
14287
14288         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
14289         a pointer.
14290         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
14291         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
14292         vect_recog_pow_pattern): Likewise.
14293         (vect_pattern_recog_1): Remove declaration.
14294         (widened_name_p): Remove declaration.  Add new argument to specify
14295         whether to check that both types are either signed or unsigned.
14296         (vect_recog_widen_mult_pattern): Update documentation.  Handle
14297         unsigned patterns and multiplication by constants.
14298         (vect_pattern_recog_1): Update vect_recog_func references.  Use
14299         statement information from the statement returned from pattern
14300         detection functions.
14301         (vect_pattern_recog): Update vect_recog_func reference.
14302         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
14303         multiplication by a constant use the type of the other operand.
14304
14305 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
14306
14307         PR rtl-optimization/49145
14308         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
14309
14310 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
14311
14312         PR debug/49262
14313         * dwarf2out.c (native_encode_initializer): Decrement count in each
14314         iteration.
14315
14316         PR debug/49294
14317         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
14318         non-MODE_INT modes.
14319
14320         PR c++/49264
14321         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
14322         if stmt folded into nothing.
14323         * tree-inline.c (fold_marked_statements): If a builtin at the end of
14324         a bb folded into nothing, just update cgraph edges and move to next bb.
14325         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
14326         to be NULL.  Don't compute count and frequency if new_call is NULL.
14327
14328 2011-06-04  Diego Novillo  <dnovillo@google.com>
14329
14330         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
14331         (cgraph.o): Likewise.
14332         (cgraphunit.o): Likewise.
14333         * cgraphunit.c: Include lto-streamer.h
14334         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
14335         if LTO is enabled.
14336         * lto-streamer-in.c (unpack_value_fields): Call
14337         streamer_hooks.unpack_value_fields if set.
14338         (lto_materialize_tree): For unhandled nodes, first try to
14339         call lto_streamer_hooks.alloc_tree, if it exists.
14340         (lto_input_ts_decl_common_tree_pointers): Move reading of
14341         DECL_INITIAL to lto_streamer_read_tree.
14342         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
14343         (lto_streamer_read_tree): New.
14344         (lto_reader_init): Rename from lto_init_reader.
14345         Move initialization code to lto/lto.c.
14346         * lto-streamer-out.c (pack_value_fields): Call
14347         streamer_hooks.pack_value_fields if set.
14348         (lto_output_tree_ref): For tree nodes that are not normally indexable,
14349         call streamer_hooks.indexable_with_decls_p before giving up.
14350         (lto_output_ts_decl_common_tree_pointers): Move handling
14351         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
14352         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
14353         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
14354         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
14355         (lto_streamer_write_tree): New.
14356         (lto_output): Call lto_streamer_init directly.
14357         (lto_writer_init): Remove.
14358         * lto-streamer.c (streamer_hooks): New.
14359         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
14360         instead of lto_preload_common_nodes.
14361         (lto_is_streamable): Move from lto-streamer.h
14362         (lto_streamer_hooks_init): New.
14363         (streamer_hooks): New.
14364         (streamer_hooks_init): New.
14365         * lto-streamer.h (struct output_block): Forward declare.
14366         (struct lto_input_block): Likewise.
14367         (struct data_in): Likewise.
14368         (struct bitpack_d): Likewise.
14369         (struct streamer_hooks): Declare.
14370         (streamer_hooks): Declare.
14371         (lto_streamer_hooks_init): Declare.
14372         (lto_streamer_write_tree): Declare.
14373         (lto_streamer_read_tree): Declare.
14374         (streamer_hooks_init): Declare.
14375         (lto_is_streamable): Move to lto-streamer.c
14376
14377 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14378
14379         * longlong.h (smul_ppmm): The resulting register pair contains the
14380         higher order word first.
14381
14382 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14383
14384         PR tree-optimization/46728
14385         * builtins.c (powi_table): Remove.
14386         (powi_lookup_cost): Remove.
14387         (powi_cost): Remove.
14388         (expand_powi_1): Remove.
14389         (expand_powi): Remove.
14390         (expand_builtin_pow_root): Remove.
14391         (expand_builtin_pow): Remove.
14392         (expand_builtin_powi): Eliminate handling of constant exponent.
14393         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
14394
14395 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14396
14397         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
14398
14399 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14400
14401         * dce.c (reset_unmarked_insns_debug_uses): New.
14402         (delete_unmarked_insns): Skip debug insns.
14403         (prescan_insns_for_dce): Likewise.
14404         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
14405         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
14406         active reg can be found.
14407         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
14408         (convert_regs_1): Use it.
14409
14410 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14411
14412         * tree-pretty-print.c (dump_function_header): Add flags.
14413         Don't dump decl_uid with nouid.
14414         * tree-pretty-print.h (dump_function_header): Adjust.
14415         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
14416         * passes.c (pass_init_dump_file): Pass dump_flags on.
14417         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
14418
14419 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
14420
14421         PR bootstrap/49270
14422         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
14423
14424 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
14425
14426         PR tree-optimization/49243
14427         * calls.c (setjmp_call_p): Also check if fndecl has the
14428         returns_twice attribute.
14429
14430 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14431
14432         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
14433         -ffast-math etc.
14434
14435 2011-06-06  Richard Henderson  <rth@redhat.com>
14436             Georg-Johann Lay  <avr@gjlay.de>
14437
14438         PR target/42210
14439         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
14440         New predicates.
14441         * config/avr/avr.md ("insv"): New insn expander.
14442         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
14443         "*insv.not.io", "*insv.reg"): New insns.
14444
14445 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
14446
14447         PR target/49285
14448         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
14449         to nonimmediate_operand from memory_operand for the operand that is to
14450         be forced to memory by the expander.  Lose the constraints.
14451
14452 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14453
14454         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
14455         EH return when delayed branches are disabled.
14456
14457 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
14458
14459         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
14460         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
14461         calculation.
14462         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
14463         Simplify MODE_V1DF and MODE_V2SF handling.
14464         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
14465         Simplify MODE_SF handling.
14466
14467 2011-06-04  Jan Hubicka  <jh@suse.cz>
14468
14469         PR tree-optimization/48893
14470         PR tree-optimization/49091
14471         PR tree-optimization/49179
14472         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
14473         Bounds check.
14474
14475 2011-06-04  Jan Hubicka  <jh@suse.cz>
14476
14477         PR lto/48954
14478         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
14479         bitmaps.
14480
14481 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14482
14483         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
14484
14485 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
14486
14487         PR target/49281
14488         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
14489         to be strictly smaller than 1 << shiftcount.
14490
14491 2011-06-04  Jan Hubicka  <jh@suse.cz>
14492
14493         PR tree-optimize/48929
14494         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
14495         of empty predicate.
14496
14497 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
14498
14499         PR debug/48333
14500         * calls.c (emit_call_1): Prefer the __builtin declaration of
14501         builtin functions.
14502
14503 2011-06-03   Diego Novillo  <dnovillo@google.com>
14504
14505         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
14506         (lto_input_tree_pointers): Likewise.
14507         * lto-streamer-out.c (pack_value_fields): Likewise.
14508         (lto_output_tree_pointers): Likewise.
14509         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
14510         and OPTIMIZATION_NODE.
14511
14512 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14513
14514         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
14515         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
14516         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
14517         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
14518         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
14519         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
14520         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
14521         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
14522         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
14523         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
14524         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
14525         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
14526         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
14527         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
14528         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
14529         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
14530         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
14531         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
14532         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
14533         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
14534         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
14535         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
14536         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
14537         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
14538         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
14539         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
14540         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
14541         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
14542         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
14543         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
14544         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
14545         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
14546         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
14547         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
14548         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
14549         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
14550         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
14551         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
14552         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
14553         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
14554         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
14555         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
14556         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
14557         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
14558         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
14559         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
14560         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
14561         * system.h (MD_UNWIND_SUPPORT): Poison.
14562         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
14563         * doc/tm.texi: Regenerate.
14564         * unwind-dw2.c: Include md-unwind-support.h instead of
14565         MD_UNWIND_SUPPORT.
14566         * config/ia64/unwind-ia64.c: Likewise.
14567         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14568
14569 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
14570
14571         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
14572
14573 2011-06-03  Richard Henderson  <rth@redhat.com>
14574             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14575
14576         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
14577         (sigill_hdlr): Correct insn, insn size.
14578         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
14579
14580 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14581
14582         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
14583         t-slibgcc-dummy.
14584         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
14585         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
14586         * config/mips/t-iris: Remove.
14587         * config/mips/t-irix6: New file.
14588         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
14589
14590 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14591
14592         * Makefile.in (LIB2ADDEHDEP): Remove.
14593         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
14594         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
14595         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
14596         * config/t-darwin (LIB2ADDEHDEP): Remove.
14597         * config/t-freebsd (LIB2ADDEHDEP): Remove.
14598         * config/t-linux (LIB2ADDEHDEP): Remove.
14599
14600 2011-06-03  Diego Novillo  <dnovillo@google.com>
14601
14602         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
14603         (lto_register_var_decl_in_symtab): Likewise.
14604         (lto_register_function_decl_in_symtab): Likewise.
14605         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
14606         logic to uniquify_nodes.
14607
14608 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14609
14610         * config/alpha/t-osf5: Remove.
14611         * config/alpha/t-osf-pthread: Remove.
14612         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
14613         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
14614
14615 2011-06-03  Julian Brown  <julian@codesourcery.com>
14616
14617         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
14618         (strongarm1110): Use strongarm tuning.
14619         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
14620         * config/arm/arm.c (arm_strongarm_tune): New.
14621         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14622         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
14623         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
14624         setting, using previous defaults or 1 for Cortex-A5.
14625         (arm_option_override): Set max_insns_skipped from current tuning.
14626
14627 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
14628
14629         * doc/install.texi (Options specification): Document --with-specs.
14630
14631 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14632
14633         * config/arm/neon.md (orndi3_neon): Actually split it.
14634
14635 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14636
14637         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
14638         * var-tracking.c (reverse_op): Limite recurse depth to 5.
14639
14640 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
14641
14642         PR debug/47590
14643         * target.def (delay_sched2, delay_vartrack): New.
14644         * doc/tm.texi.in: Update.
14645         * doc/tm.texi: Rebuild.
14646         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
14647         * var-tracking.c (gate_handle_var_tracking): Likewise.
14648         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
14649         (bfin_flag_var_tracking): Drop.
14650         (output_file_start): Don't save and override flag_var_tracking.
14651         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
14652         (bfin_reorg): Test original variables.
14653         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14654         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
14655         (ia64_flag_var_tracking): Drop.
14656         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14657         (ia64_file_start): Don't save and override flag_var_tracking.
14658         (ia64_override_options_after_change): Ditto
14659         flag_schedule_insns_after_reload.
14660         (ia64_reorg): Test original variables.
14661         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
14662         (picochip_flag_var_tracking): Drop.
14663         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
14664         (picochip_option_override): Don't save and override
14665         flag_schedule_insns_after_reload.
14666         (picochip_asm_file_start): Ditto flag_var_tracking.
14667         (picochip_reorg): Test original variables.
14668         * config/spu/spu.c (spu_flag_var_tracking): Drop.
14669         (TARGET_DELAY_VARTRACK): Define.
14670         (spu_var_tracking): New.
14671         (spu_machine_dependent_reorg): Call it.
14672         (asm_file_start): Don't save and override flag_var_tracking.
14673
14674 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
14675
14676         PR target/49163
14677         * config/sh/predicates.md (general_movsrc_operand): Return 0
14678         for memory and memory subreg of which address is an invalid
14679         indexed address for QI and HImode.
14680         (general_movdst_operand): Likewise.
14681
14682 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14683
14684         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
14685         edges only, when there is a non-local label in the function.
14686         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
14687
14688 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14689
14690         * config/i386/constraints.md (Y3): New register constraint.
14691         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
14692         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
14693         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
14694         *sse2_interleave_lowv2df.
14695
14696 2011-06-02  Julian Brown  <julian@codesourcery.com>
14697
14698         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
14699         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
14700         (arm_cortex_a5_tune): New.
14701
14702 2011-06-02  Julian Brown  <julian@codesourcery.com>
14703
14704         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
14705         * config/arm/arm.c (arm_default_branch_cost): New.
14706         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
14707         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
14708         (arm_fa726_tune): Set branch_cost field using
14709         arm_default_branch_cost.
14710         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
14711         current_tune structure.
14712         * dojump.c (tm_p.h): Include file.
14713
14714 2011-06-02  Julian Brown  <julian@codesourcery.com>
14715
14716         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
14717         tuning.
14718         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
14719         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
14720         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
14721         field.
14722         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
14723         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
14724         (arm_fa726te_tune): Add prefer_constant_pool setting.
14725         (arm_v6t2_tune, arm_cortex_tune): New.
14726         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
14727         prefer_constant_pool setting.
14728
14729 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
14730
14731         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
14732         switch statement.
14733         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
14734         (*movdf_internal) <case 6,7,8>: Ditto.
14735
14736         * config/i386/constraints.md (Y4): New register constraint.
14737         * config/i386/sse.md (vec_set<mode>_0): Merge with
14738         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
14739         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
14740         *vec_extractv2di_1_sse.
14741         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
14742         and *vec_concatv2di_rex64_sse.
14743
14744 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
14745
14746         PR target/48807
14747         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
14748         of cgraph_local_info for null before attempting to use it.
14749
14750 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
14751
14752         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
14753         (current_function_dynamic_alloc_count): Delete.
14754         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
14755         (expand_builtin_nonlocal_goto): Remove obsolete comment.
14756         (expand_builtin_update_setjmp_buf): Remove dead code.
14757         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
14758         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
14759         support.
14760         * function.c (instantiate_virtual_regs): Likewise.
14761         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
14762         for a block with a single abnormal incoming edge.
14763         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
14764         (SETJMP_VIA_SAVE_AREA): Delete.
14765         * config/sparc/sparc-protos.h (load_got_register): Declare.
14766         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
14767         (load_got_register): Make global.
14768         (sparc_frame_pointer_required): Add 'static'.
14769         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
14770         (sparc_builtin_setjmp_frame_value): New function.
14771         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
14772         (save_stack_nonlocal): New expander.
14773         (restore_stack_nonlocal): Likewise.
14774         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
14775         (nonlocal_goto_internal): New insn.
14776         (goto_handler_and_restore): Delete.
14777         (builtin_setjmp_setup): Likewise.
14778         (do_builtin_setjmp_setup): Likewise.
14779         (setjmp): Likewise.
14780         (builtin_setjmp_receiver): New expander.
14781
14782 2011-06-01  David Li  <davidxl@google.com>
14783
14784         PR middle-end/49261
14785         * tree-pretty-print.c (dump_function_header): Format cleanup.
14786
14787 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
14788
14789         PR target/49238
14790         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
14791         needed when original operands are used for msw_skip comparison.
14792
14793 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14794
14795         PR debug/49250
14796         * var-tracking.c (add_uses, add_stores): Don't call
14797         cselib_subst_to_values on ENTRY_VALUE.
14798
14799 2011-06-01  Diego Novillo  <dnovillo@google.com>
14800
14801         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
14802         output_record_start with LTO_null instead of output_zero.
14803         (lto_output_ts_binfo_tree_pointers): Likewise.
14804         (lto_output_tree): Likewise.
14805         (output_eh_try_list): Likewise.
14806         (output_eh_region): Likewise.
14807         (output_eh_lp): Likewise.
14808         (output_eh_regions): Likewise.
14809         (output_bb): Likewise.
14810         (output_function): Likewise.
14811         (output_unreferenced_globals): Likewise.
14812         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
14813         instead of NUM_TREE_CODES.
14814         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
14815         (lto_output_int_in_range): Change << to >> when shifting VAL.
14816
14817 2011-06-01  Diego Novillo  <dnovillo@google.com>
14818
14819         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
14820         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
14821
14822 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14823
14824         PR target/45074
14825         * optabs.h (valid_multiword_target_p): Declare.
14826         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
14827         doing multi-word operations.
14828         * optabs.c (expand_binop): Likewise.
14829         (expand_doubleword_bswap): Likewise.
14830         (expand_absneg_bit): Likewise.
14831         (expand_unop): Likewise.
14832         (expand_copysign_bit): Likewise.
14833         (multiword_target_p): New function.
14834
14835 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14836
14837         PR rtl-optimization/48830
14838         PR rtl-optimization/48808
14839         PR rtl-optimization/48792
14840         * reload.c (push_reload): Check contains_reg_of_mode.
14841         * reload1.c (strip_paradoxical_subreg): New function.
14842         (gen_reload_chain_without_interm_reg_p): Use it to handle
14843         paradoxical subregs.
14844         (emit_output_reload_insns, gen_reload): Likewise.
14845
14846 2011-06-01  David Li  <davidxl@google.com>
14847
14848         * predict.c : Change pass name
14849         * ipa.c: Ditto.
14850         * dce.c: Ditto.
14851         * tree-profile.c: Ditto.
14852         * except.c: Ditto.
14853
14854 2011-06-01  David Li  <davidxl@google.com>
14855
14856         * tree-pretty-print.c (dump_function_header): New function.
14857         * final.c (rest_of_clean_state): Use header dumper.
14858         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
14859         * passes.c (pass_init_dump_file): Use header dumper.
14860
14861 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14862
14863         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
14864         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
14865         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
14866         New functions.
14867         (mem_loc_descriptor): Use them.
14868
14869         * var-tracking.c (create_entry_value): New function.
14870         (vt_add_function_parameter): Use it.
14871
14872 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14873
14874         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
14875         Include <signal.h>, <ucontext.h>.
14876         (sigill_caught): Define.
14877         (sigill_hdlr): New function.
14878         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
14879         insns can be executed.
14880         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
14881         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
14882
14883 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14884
14885         * config/t-slibgcc-darwin: Move to ...
14886         * config/t-slibgcc-dummy: ... this.  Clarify comments.
14887         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
14888         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
14889         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
14890         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
14891         Remove i386/t-crtstuff from tmake_file.
14892         (i[34567]86-*-solaris2*): Remove t-svr4,
14893         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
14894         t-slibgcc-dummy.
14895         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
14896         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
14897         sparc/t-crtfm from tmake_file.
14898         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
14899         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
14900         Remove extra_parts.
14901         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
14902         * config/i386/t-nwld (SHLIB_LINK): Remove.
14903         * config/i386/t-rtems-i386: Rename to ...
14904         * config/i386/t-rtems: ... this.
14905         ($(T)crti.o, $(T)crtn.o): Remove.
14906         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
14907         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
14908         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
14909         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
14910         EXTRA_MULTILIB_PARTS): Remove.
14911         * config/sparc/t-sol2-64: Likewise.
14912         * config/sparc/t-sol2: Remove.
14913         * config/sparc/t-crtin: Remove.
14914         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
14915         * config/i386/gmon-sol2.c: Remove.
14916         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
14917         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
14918         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
14919         * config/i386/sol2-gc1.asm: Remove.
14920         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
14921         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
14922         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
14923         * config/t-slibgcc-sld: Remove.
14924
14925 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
14926
14927         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
14928         base_type_for_mode with op_mode instead of mode.
14929
14930 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
14931
14932         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
14933         Cortex-A15.
14934         * config/arm/arm-tune.md: Regenerate.
14935         * config/arm/arm-tables.opt: Regenerate.
14936         * config/arm/arm.c (FL_DIV): Rename...
14937         (FL_THUMB_DIV): ... to this.
14938         (FL_ARM_DIV): Define.
14939         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
14940         (arm_arch_hwdiv): Remove.
14941         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
14942         (arm_issue_rate): Add cortexr5.
14943         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
14944         __ARM_ARCH_EXT_IDIV__.
14945         (TARGET_IDIV): Define.
14946         (arm_arch_hwdiv): Remove.
14947         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
14948         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
14949         (divsi3, udivsi3): New patterns.
14950         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
14951         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
14952
14953 2011-06-01  Martin Jambor  <mjambor@suse.cz>
14954
14955         * ipa-utils.c (ipa_dfs_info): New field scc_no.
14956         * ipa-utils.c (searchc): Set scc_no.
14957
14958 2011-06-01  Martin Jambor  <mjambor@suse.cz>
14959
14960         * ipa-utils.c (searchc_env): New field allow_overwritable.
14961         (searchc): do not ignore edges to overwritable nodes if indicated
14962         by env->allow_overwritable.
14963         (ipa_reduced_postorder): Set env.allow_overwritable.
14964
14965 2011-06-01  Richard Guenther  <rguenther@suse.de>
14966
14967         * tree.c (free_lang_data): Do not reset boolean_type_node nor
14968         char_type_node.
14969         * lto-streamer.c (lto_record_common_node): Take node pointer,
14970         do not register types.
14971         (lto_preload_common_nodes): Explicitly skip preloading nodes
14972         that differ between frontends.
14973
14974 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
14975
14976         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
14977         NON_FLOAT_REGS.
14978
14979 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
14980
14981         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
14982         parameter value for dump. Dump cost on outermost call only.
14983         (rs6000_memory_move_cost): Dump cost on outermost call only.
14984
14985 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
14986
14987         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
14988         DW_OP_GNU_convert ops.
14989
14990         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
14991         cselib_preserve_constants.
14992         (cselib_lookup_1): If cselib_preserve_constants,
14993         a new VALUE is being created for REG and there is a VALUE for the
14994         same register in wider mode, add another loc with lowpart SUBREG of
14995         the wider VALUE.
14996         (cselib_subst_to_values): Handle ENTRY_VALUE.
14997         * var-tracking.c  (replace_expr_with_values): Return NULL for
14998         ENTRY_VALUE too.
14999         * dwarf2out.c (convert_descriptor_to_signed): New function.
15000         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
15001         instead of two shifts.
15002         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
15003         the right mode if needed.
15004         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
15005         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
15006         convert_descriptor_to_signed.
15007         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
15008         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
15009
15010         PR target/48688
15011         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
15012
15013 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15014
15015         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
15016         of X87MODEI12 and SWI48x instead of SSEMODEI24.
15017         (SWI248x): New mode iterator, rename from X87MODEI.
15018         (X87MODEI): Remove mode iterator.
15019         (X87MODEI12): Ditto.
15020         (SSEMODEI24): Ditto.
15021
15022 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15023
15024         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
15025         * doc/invoke.texi: Document max-vartrack-expr-depth.
15026         * var-tracking.c (EXPR_DEPTH): New.
15027         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
15028
15029 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15030
15031         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
15032         * config/i386/sse.md: Add n to negated FMA pattern names.
15033
15034 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15035
15036         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
15037
15038 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
15039
15040         * gengtype-state.c (read_state_params_structs): Initialize previous.
15041
15042 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15043
15044         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
15045         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
15046
15047 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
15048
15049         * config/i386/i386.md (*movtf_internal): Avoid allocating general
15050         registers.  Penalize F*r->o alternative to prevent partial memory
15051         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
15052         CONST_DOUBLE immediates when optimizing function for size.  Do not move
15053         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15054         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
15055         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
15056         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
15057         alternatives.
15058         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
15059
15060         (fp_register_operand splitters): Use fp_register_operand
15061         constraint.  Do not use FP_REG_P in insn condition.
15062         (any_fp_register_operand splitters): Use any_fp_register_operand
15063         constraint.  Do not use ANY_FP_REG_P in insn condition.
15064
15065 2011-05-31  Jan Hubicka  <jh@suse.cz>
15066
15067         * cgraph.h (cgraph_inline_failed_t): Give enum a name
15068         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
15069         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
15070         (lto_output_edge): Use output_enum and var_len_unsigned.
15071         (lto_output_varpool_node): Likewise.
15072         (input_overwrite_node): Do not take resolution parameter;
15073         extract it from a bitpack.
15074         (input_node): Do not read resolution; use input_enum and
15075         var_len_unsigned.
15076         (input_varpool_node): Likewise.
15077         (input_edge): Likewise.
15078         (input_cgraph_1): Likewise.
15079
15080 2011-05-31  Richard Guenther  <rguenther@suse.de>
15081
15082         * gimple.c (gimple_register_canonical_type): Do not register
15083         any types via gimple_register_type.
15084
15085 2011-05-31  Jan Hubicka  <jh@suse.cz>
15086
15087         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
15088         of thunks.
15089
15090 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
15091
15092         PR rtl-optimization/49235
15093         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
15094         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
15095
15096 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
15097
15098         PR tree-optimization/49093
15099         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
15100         data references.
15101
15102 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
15103
15104         PR debug/49047
15105         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
15106         for concrete functions containing the code of cloned functions.
15107
15108 2011-05-31  Richard Guenther  <rguenther@suse.de>
15109
15110         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
15111         to ...
15112         (forward_propagate_into_comparison_1): ... this.
15113         (forward_propagate_comparison): Rename to ...
15114         (forward_propagate_into_comparison): ... this.  Split out
15115         real forward propagation code to ...
15116         (forward_propagate_comparison): ... this.
15117         (forward_propagate_into_gimple_cond): Remove looping.
15118         (forward_propagate_into_cond): Likewise.
15119         (simplify_not_neg_expr): Return whether we have done something.
15120         (simplify_gimple_switch): Likewise.
15121         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15122         (ssa_forward_propagate_and_combine): ... this.  Re-structure
15123         to do a forward forward-propagation walk on BBs and a backward
15124         stmt combining walk on BBs.  Consistently re-scan changed statements.
15125         (pass_forwprop): Adjust.
15126
15127 2011-05-30  Ian Lance Taylor  <iant@google.com>
15128
15129         * godump.c (go_format_type): Correct length of name added to
15130         obstack for anonymous field.
15131
15132 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
15133
15134         PR target/49186
15135         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
15136         part of the second operand is 0.
15137
15138 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
15139
15140         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
15141         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
15142         to memory for !TARGET_MEMORY_MISMATCH_STALL.
15143         (*movdf_internal_rex64): Do not penalize F->r alternative.
15144         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
15145         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
15146         when optimizing function for size.  Do not move CONST_DOUBLEs
15147         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
15148         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
15149         SUBREGs.  Do not check for MEM_P operands in the insn condition,
15150         check for ANY_FP_REGNO_P instead.
15151         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
15152         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
15153         function for speed.
15154         * config/i386/i386.c (ix86_option_override_internal): Do not
15155         set TARGET_INTEGER_DFMODE_MOVES here.
15156
15157 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
15158
15159         PR target/49168
15160         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
15161
15162 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15163
15164         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
15165         DW_TAG_rvalue_reference_type even for
15166         -gdwarf-4 -fno-debug-types-section.
15167
15168 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15169
15170         PR tree-optimization/46728
15171         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
15172         (build_and_insert_binop): New.
15173         (gimple_expand_builtin_pow): Reorder args for
15174         build_and_insert_call; use build_and_insert_binop; add more
15175         optimizations for fractional exponents.
15176
15177 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
15178
15179         PR bootstrap/49190
15180
15181         Revert:
15182         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15183
15184         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15185         tree_common.
15186         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15187         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15188         TS_BASE instead of TS_COMMON.
15189         * varasm.c (assemble_name): Remove assert.
15190
15191 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
15192
15193         * config.gcc: Keep obselete list sorted.
15194
15195 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
15196             Eric Botcazou  <ebotcazou@adacore.com>
15197
15198         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
15199         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
15200         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
15201         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
15202         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
15203
15204 2011-05-30  Richard Guenther  <rguenther@suse.de>
15205
15206         * gimple.c (gimple_types_compatible_p_1): Compare record
15207         and union type members properly.
15208
15209 2011-05-30  Richard Guenther  <rguenther@suse.de>
15210
15211         PR tree-optimization/49210
15212         * ipa-split.c (split_function): Care for the case where the call
15213         result is not trivially convertible to the result holding variable.
15214
15215 2011-05-30  Richard Guenther  <rguenther@suse.de>
15216
15217         PR tree-optimization/49218
15218         * tree-vrp.c (adjust_range_with_scev): Properly check whether
15219         overflow occured.
15220
15221 2011-05-30  Richard Guenther  <rguenther@suse.de>
15222
15223         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
15224         New function split out from ...
15225         (forward_propagate_into_gimple_cond): ... here.  Adjust.
15226         (forward_propagate_into_cond): Likewise.
15227         (forward_propagate_comparison): Also propagate into
15228         comparisons on assignment RHS.  Change return value to
15229         behave similar to forward_propagate_into_cond.
15230         (tree_ssa_forward_propagate_single_use_vars): Handle
15231         strict-overflow warnings properly for forward_propagate_comparison.
15232
15233 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15234
15235         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
15236         from plugin linker.
15237         * configure: Regenerate.
15238
15239 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
15240
15241         PR tree-optimization/49199
15242         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
15243         non-reduction operands are either defined in the loop or by induction.
15244
15245 2011-05-29  Xinliang David Li  <davidxl@google.com>
15246
15247         * opts-global.c (handle_common_deferred_options): Handle new options.
15248         * passes.c (register_one_dump_file): Call register_pass_name.
15249         (execute_one_pass): Check explicit enable/disable flag.
15250         (passr_hash): New function.
15251         (passr_eq): Ditto.
15252         (register_pass_name): Ditto.
15253         (get_pass_by_name): Ditto.
15254         (pass_hash): Ditto.
15255         (pass_eq): Ditto.
15256         (enable_pass): Ditto.
15257         (disable_pass): Ditto.
15258         (is_pass_explicitly_enabled_or_disabled): Ditto.
15259
15260 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
15261
15262         * config/i386/i386.md (*movoi_internal_avx): Use
15263         standard_sse_constant_opcode for alternative 0.
15264         (*movti_internal_sse): Ditto.
15265         (*movti_internal_rex64): Use standard_sse_constant_opcode for
15266         alternative 2.
15267         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
15268         sselog1 type moves.
15269         (*movsi_internal): Ditto.
15270         (*movdi_internal): Ditto.  Add ssecvt type moves.
15271
15272 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15273
15274         PR target/48830
15275         * rtlanal.c (simplify_subreg_regno): Adjust comment.
15276
15277 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
15278
15279         PR rtl-optimization/49095
15280         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
15281         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
15282
15283 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15284
15285         PR target/43995
15286         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
15287         recurse_p argument.  Only follow register copies if it is set,
15288         and prevent mips_find_pic_call_symbol from recursing.
15289         (mips_find_pic_call_symbol): Add a recurse_p argument.
15290         Pass it to mips_pic_call_symbol_from_set.
15291         (mips_annotate_pic_calls): Update accordingly.
15292
15293 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
15294
15295         * emit-rtl.c (try_split): Use a loop to search for
15296         NOTE_INSN_CALL_ARG_LOCATIONs.
15297
15298 2011-05-29  Richard Guenther  <rguenther@suse.de>
15299
15300         PR tree-optimization/49217
15301         * ipa-pure-const.c (propagate_pure_const): Fix typos.
15302
15303 2011-05-28  Jan Hubicka  <jh@suse.cz>
15304
15305         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
15306         length.
15307         (string_slot_free): Remove
15308         (create_output_block): Initialize obstack.
15309         (destroy_output_block): Free obstack.
15310         (lto_string_index): Add PERSISTENT parameter; do not duplicate
15311         the string unless it needs to be added into the hash.
15312         (lto_output_string_with_length): Add persistent attribute;
15313         handle NULL strings.
15314         (lto_output_string): Add PERSISTENT parameter.
15315         (output_string_cst, output_identifier): Simplify.
15316         (lto_output_location_bitpack): Update.
15317         (lto_output_builtin_tree): Update.
15318         * lto-streamer.h (struct output_block): Add obstack.
15319         (lto_output_string, lto_output_string_with_length): Remove
15320         declarations; functions are static now.
15321
15322 2011-05-28  Jan Hubicka  <jh@suse.cz>
15323
15324         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
15325         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
15326         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
15327         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
15328         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
15329         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
15330         unpack_ts_decl_with_vis_value_fields,
15331         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
15332         lto_get_builtin_tree): Use enum and variable length i/o.
15333         * basic-block.h (profile_status_d): Add PROFILE_LAST.
15334         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
15335         New functions.
15336         (bp_pack_enum, bp_unpack_enum): New macros.
15337
15338 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15339
15340         * genrecog.c: Remove redundant forward declarations.
15341
15342 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15343
15344         * config.gcc: Deprecate mips*-*-openbsd*.
15345
15346 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
15347
15348         PR bootstrap/49195
15349         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
15350         for match_op_dup.
15351
15352 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
15353
15354         PR middle-end/48981
15355         * gengtype.c (vec_prefix_type): New function.
15356         (note_def_vec): Use vec_prefix_type and change the length
15357         attribute to be based on the prefix.
15358         * vec.c: Include coretypes.h before vec.h.
15359         (struct vec_prefix): Remove.
15360         (vec_gc_p_reserve): Change the offsetof to sizeof.
15361         (vec_gc_p_reserve_exact): Likewise.
15362         (vec_heap_p_reserve): Likewise.
15363         (vec_heap_p_reserve_exact): Likewise.
15364         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
15365         (vec_stack_p_reserve): Change the offsetof to sizeof.
15366         (vec_stack_p_reserve_exact): Likewise.
15367         * vec.h (struct vec_prefix): New struct definition.
15368         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
15369         (VEC_T_GTY(T,B)): Likewise.
15370         (DEF_VEC_FUNC_P(T)): Use prefix field.
15371         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
15372         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
15373
15374 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15375
15376         PR tree-optimization/46728
15377         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
15378         (powi_as_mults): Add gimple_set_location.
15379         (build_and_insert_call): New.
15380         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
15381         0.5, 0.25, 0.75, 1./3., or 1./6.
15382
15383 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
15384
15385         * doc/contrib.texi: Update copyright years.
15386         (Contributors): Add Zdenek Sojka.
15387
15388 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
15389
15390         * c-decl.c (c_push_function_context): Copy the current statement
15391         list stack.
15392         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
15393         (finish_struct): Call building_stmt_list_p instead of checking
15394         cur_stmt_list.
15395         * c-parser.c (c_parser_postfix_expression): Likewise.
15396         * c-typeck.c (c_end_compound_stmt): Likewise.
15397         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
15398         * tree-iterator.c (stmt_list_cache): Change to a VEC.
15399         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
15400         (free_stmt_list): Likewise.
15401         * tree.h (struct tree_statement_list): Include typed_tree instead
15402         of tree_common.
15403         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
15404         as TS_TYPED instead of TS_COMMON.
15405
15406 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15407             Uros Bizjak  <ubizjak@gmail.com>
15408
15409         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
15410         (HAVE_AS_IX86_TLSGDPTL): Define.
15411         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
15412         (HAVE_AS_IX86_TLSLDMPLT): Define.
15413         * configure: Regenerate.
15414         * config.in: Regenerate.
15415         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
15416         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
15417         TARGET_SUN_TLS, use @tlsgdplt or @plt.
15418         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
15419         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
15420         @tlsldmplt or @plt.
15421         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
15422
15423 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15424
15425         * sched-int.h (struct _haifa_deps_insn_data): New members cond
15426         and reverse_cond.
15427         (INSN_COND, INSN_REVERSE_COND): New macros.
15428         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
15429         once.
15430         (sched_get_condition_with_rev): Cache the results, and look them up
15431         if possible.
15432         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
15433         are clobbered by the current insn.
15434         * target.def (exposed_pipline): New sched data hook.
15435         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
15436         * doc/tm.texi: Regenerate.
15437
15438 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15439
15440         PR tree-optimization/49170
15441         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
15442         sincos or cexp.
15443
15444 2011-05-27  Richard Guenther  <rguenther@suse.de>
15445
15446         PR middle-end/49189
15447         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
15448         of comparisons.
15449
15450 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
15451
15452         * haifa-sched.c (sched_scan_info): Remove.
15453         (schedule_block): Call sched_extend_luids rather than sched_init_luids
15454         with NULL args.
15455         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
15456         Remove functions.
15457         (sched_scan): Remove.
15458         (sched_extend_luids): Renamed from luids_extend_insn and no longer
15459         static.  All callers changed.
15460         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
15461         static.  All callers changed.
15462         (sched_init_luids): Remove all arguments except the first.  All
15463         callers changed.  Don't use sched_scan.
15464         (haifa_init_h_i_d): Likewise.
15465         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
15466         manually rather than using sched_init_luids.  Likewise with
15467         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
15468         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
15469         rather than sched_init_luids with NULL args.
15470         * sel-sched-ir.c (new_insns): Remove variable.
15471         (sched_scan): New static function, previously in haifa-sched.c.  Remove
15472         all arguments but the first two; all callers changed.
15473         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
15474         rather than sched_init_luids.
15475         (sel_init_bbs): Remove second argument.  All callers changed.
15476         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
15477         with NULL arguments.
15478         (create_insn_rtx_from_pattern): Likewise.
15479         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
15480         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
15481         (sched_init_insn_luid, sched_extend_luids): Declare.
15482         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
15483         declarations.
15484
15485 2011-05-27  Richard Guenther  <rguenther@suse.de>
15486
15487         PR middle-end/49177
15488         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
15489         A CMP B ? (T) true : (T) false for non-integral types T again.
15490
15491 2011-05-27  Jan Hubicka  <jh@suse.cz>
15492
15493         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
15494         so 0 means NULL string.
15495         (lto_output_string_with_length): ... here.
15496         (lto_output_string, output_string_cst, output_identifier): Update
15497         handling of NULL strings.
15498         (lto_output_location_bitpack): New function.
15499         (lto_output_location): Use it.
15500         (lto_output_tree_ref): Use output_record_start.
15501         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
15502         len values.
15503         * lto-streamer-in.c (string_for_index): Break out from ...; offset
15504         values by 1.
15505         (input_string_internal): ... here;
15506         (input_string_cst, input_identifier, lto_input_string): Update handling
15507         of NULL strings.
15508         (lto_input_location_bitpack): New function
15509         (lto_input_location): Use it.
15510         (unpack_ts_type_common_value_fields): Pack align & alias in var len
15511         values.
15512         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
15513         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
15514         (bp_pack_value): Sanity check the value range.
15515         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
15516         New functions.
15517         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
15518         New functions.
15519
15520 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
15521
15522         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
15523         call_arg_location instructions down the floor.
15524
15525 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
15526
15527         PR rtl-optimization/49154
15528         * ira.c (setup_pressure_classes): Process class without sublcasses
15529         as a candidate for pressure classes.
15530
15531 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
15532
15533         PR rtl-optimization/48575
15534         * genrecog.c (position_type): New enum.
15535         (position): New structure.
15536         (decision): Use position structure instead of a string.
15537         (root_pos, peep2_insn_pos_list): New variables.
15538         (next_position, compare_positions): New functions.
15539         (new_decision): Use position structures instead of strings.
15540         (maybe_both_true): Likewise.
15541         (change_state): Likewise.
15542         (write_tree): Likewise.
15543         (make_insn_sequence): Likewise.
15544
15545 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15546
15547         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
15548         TS_BASE instead of TS_COMMON.
15549         (find_decls_types_r): Check for TS_TYPED structure before looking at
15550         TREE_TYPE.
15551         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
15552         Add chain field.
15553         (BLOCK_CHAIN): Use new chain field.
15554
15555 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
15556
15557         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
15558         moves expensive on Power7 also.
15559
15560 2011-05-26  Richard Guenther  <rguenther@suse.de>
15561
15562         * fold-const.c (fold_unary_loc): Remove bogus code.
15563
15564 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
15565
15566         * tree.h (struct tree_identifier): Inherit from tree_typed, not
15567         tree_common.
15568         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
15569         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
15570         TS_BASE instead of TS_COMMON.
15571         * varasm.c (assemble_name): Remove assert.
15572
15573 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15574
15575         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
15576         substituted first.
15577         * libgcc-std.ver: Delete file.
15578
15579 2011-05-26  Richard Guenther  <rguenther@suse.de>
15580
15581         PR tree-optimization/48702
15582         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
15583         only when we know the base address is within bounds.
15584         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
15585         assume the base address of TARGET_MEM_REFs is in bounds.
15586
15587 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15588
15589         PR target/49099
15590         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
15591         declaration in TARGET_SOLARIS.
15592
15593 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
15594
15595         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
15596         The instruction is then expanded explicitly.
15597         (supported_compare): Callable instruction.
15598         (compare): Likewise.
15599
15600 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15601
15602         PR c++/49165
15603         * gimplify.c (shortcut_cond_r): Don't special case
15604         COND_EXPRs if they have void type on one of their arms.
15605
15606 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
15607
15608         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
15609         to reduce duplication, and to achieve a slightly more logical order
15610         of operations.
15611
15612 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
15613
15614         PR tree-optimization/49161
15615         * tree-vrp.c (struct case_info): New type.
15616         (compare_case_labels): Sort case_info structs instead of
15617         trees, and not primarily by CASE_LABEL uids but by
15618         label_for_block indexes.
15619         (find_switch_asserts): Put case labels into struct case_info
15620         array instead of TREE_VEC, adjust sorting, compare label_for_block
15621         values instead of CASE_LABELs.
15622
15623 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15624
15625         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
15626         ("orndi3_neon"): Likewise.
15627         ("bic<mode>3_neon"): Likewise.
15628
15629 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
15630
15631         PR tree-optimization/49038
15632         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
15633         Ensure at least one epilogue iteration if required by data
15634         accesses with gaps.
15635         * tree-vectorizer.h (struct _loop_vec_info): Add new field
15636         to mark loops that require peeling for gaps.
15637         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
15638         (vect_get_known_peeling_cost): Take peeling for gaps into
15639         account.
15640         (vect_transform_loop): Generate epilogue if required by data
15641         access with gaps.
15642         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
15643         loop as requiring an epilogue if there are gaps in the end of
15644         the strided group.
15645
15646 2011-05-25  Ian Lance Taylor  <iant@google.com>
15647
15648         * godump.c (go_format_type): Output the first field with a usable
15649         Go type, if any.
15650
15651 2011-05-25  Ian Lance Taylor  <iant@google.com>
15652
15653         * godump.c (go_format_type): Check for invalid type names, pointer
15654         target types, and struct field types.
15655
15656 2011-05-25  Jason Merrill  <jason@redhat.com>
15657
15658         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
15659
15660 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
15661
15662         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
15663
15664 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15665
15666         * config/i386/i386.md (*movqi_extv_1)): Put back
15667         "register_operand" check in "type" calculation.
15668         (*movqi_extzv_2): Likewise.
15669
15670 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15671
15672         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
15673
15674 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15675
15676         PR bootstrap/49160
15677         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
15678         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
15679         __divxc3, __divtc3): Wrap definitions in #ifndef.
15680
15681 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15682
15683         PR target/49142
15684         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
15685         "register_operand" check and replace q_regs_operand with
15686         QIreg_operand in "type" calculation.
15687         (*movqi_extv_1): Likewise.
15688         (*movqi_extzv_2_rex64): Likewise.
15689         (*movqi_extzv_2): Likewise.
15690
15691         * config/i386/predicates.md (QIreg_operand): New.
15692
15693 2011-05-25  Richard Guenther  <rguenther@suse.de>
15694
15695         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
15696         type-based offset disambiguation, streamline MEM_REF and
15697         TARGET_MEM_REF handling.
15698
15699 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15700
15701         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
15702         (bdesc_special_args): Add pause intrinsic.
15703
15704         * config/i386/i386.md (UNSPEC_PAUSE): New.
15705         (pause): Likewise.
15706         (*pause): Likewise.
15707         * config/i386/ia32intrin.h (__pause): Likewise.
15708
15709         * doc/extend.texi (X86 Built-in Functions): Add documentation for
15710         pause intrinsic.
15711
15712 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15713
15714         PR tree-optimization/46728
15715         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
15716         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
15717
15718 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
15719
15720         * tree.h (struct tree_exp): Inherit from struct tree_typed.
15721         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
15722         instead of TS_COMMON.
15723
15724 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
15725
15726         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
15727         LIBGCC2_GNU_PREFIX is defined.
15728         (__N): New macro.
15729         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
15730         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
15731         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
15732         __clz_tab): Define using __N.
15733         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
15734         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
15735         * target.def (libfunc_gnu_prefix): New hook.
15736         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
15737         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
15738         * doc/tm.texi: Regenerate.
15739         * system.h (LIBGCC2_GNU_PREFIX): Poison.
15740         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
15741         account.
15742         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
15743         (init_optabs): Likewise for the bswap libfuncs.
15744         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
15745         and divide.
15746         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
15747         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
15748         * libgcc-std.ver: Remove.
15749         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
15750         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
15751         libgcc-std.ver.
15752         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15753         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
15754         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
15755         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
15756         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
15757         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15758         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
15759         * config/fixed-bit.h (FIXED_OP): Define differently depending on
15760         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
15761         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
15762
15763 2011-05-25  Jan Hubicka  <jh@suse.cz>
15764
15765         * lto-streamer-out.c (output_record_start): Use lto_output_enum
15766         (lto_output_tree): Use output_record_start.
15767         * lto-streamer-in.c (input_record_start): Use lto_input_enum
15768         (lto_get_pickled_tree): Use input_record_start.
15769         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
15770         (lto_value_range_error): New function.
15771         * lto-streamer.h (lto_value_range_error): Declare.
15772         (lto_output_int_in_range, lto_input_int_in_range): New functions.
15773         (lto_output_enum, lto_input_enum): New macros.
15774
15775 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15776
15777         * common.opt (flag_stack_usage_info): New variable.
15778         (-Wstack-usage): New option.
15779         * doc/invoke.texi (Warning options): Document -Wstack-usage.
15780         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
15781         <OPT_fstack_usage>: Likewise.
15782         * toplev.c (output_stack_usage): Handle -Wstack-usage.
15783         * calls.c (expand_call): Test flag_stack_usage_info variable instead
15784         of flag_stack_usage.
15785         (emit_library_call_value_1): Likewise.
15786         * explow.c (allocate_dynamic_stack_space): Likewise.
15787         * function.c (instantiate_virtual_regs ): Likewise.
15788         (prepare_function_start): Likewise.
15789         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
15790         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
15791         * config/arm/arm.c (arm_expand_prologue): Likewise.
15792         (thumb1_expand_prologue): Likewise.
15793         * config/avr/avr.c (expand_prologue): Likewise.
15794         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15795         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15796         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
15797         * config/mips/mips.c (mips_expand_prologue): Likewise.
15798         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15799         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15800         * config/s390/s390.c (s390_emit_prologue): Likewise.
15801         * config/sh/sh.c (sh_expand_prologue): Likewise.
15802         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15803         * config/spu/spu.c (spu_expand_prologue): Likewise.
15804
15805 2011-05-25  Richard Guenther  <rguenther@suse.de>
15806
15807         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
15808         (gimple_canonical_types_compatible_p): Likewise.
15809
15810 2011-05-25  Jan Hubicka  <jh@suse.cz>
15811
15812         PR middle-end/49062
15813         * ipa.c (function_and_variable_visibility): Only add to same
15814         comdat group list if DECL_ONE_ONLY.
15815
15816 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
15817
15818         PR rtl-optimization/49014
15819         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
15820
15821 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
15822
15823         PR target/49128
15824         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
15825
15826 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15827
15828         PR rtl-optimization/48757
15829         * ira-build.c (loop_with_eh_edge_p): Rename to
15830         loop_with_complex_edge_p, check edges on complexity, make function
15831         conditional.
15832         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
15833         conditional.
15834
15835 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15836
15837         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
15838         force flag_ira_share_save_slots to 0.
15839
15840 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15841
15842         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
15843         (vt_initialize): Set PROLOGUE_BB unconditionally.
15844         Add block comment about CFA_BASE_RTX machinery.
15845         Reset FP_CFA_OFFSET to -1 on all invalid paths.
15846         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
15847
15848 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
15849
15850         PR objc/48187
15851         * c-parser.c (c_parser_objc_class_instance_variables): More robust
15852         parsing of syntax error in ObjC instance variable lists.  In
15853         particular, avoid an infinite loop if there is a stray ']'.
15854         Updated error message.
15855
15856 2011-05-24  Ian Lance Taylor  <iant@google.com>
15857
15858         * godump.c (go_define): Don't accept a string immediately after
15859         another operand.
15860
15861 2011-05-24  Ian Lance Taylor  <iant@google.com>
15862
15863         * godump.c (struct godump_container): Add invalid_hash field.
15864         (go_format_type): Return false if type is found in invalid_hash.
15865         (go_output_typedef): Add invalid type to invalid_hash.
15866         (go_finish): Create and delete invalid_hash.
15867
15868 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15869
15870         PR tree-optimization/46728
15871         * tree-ssa-math-opts.c (powi_table): New.
15872         (powi_lookup_cost): New.
15873         (powi_cost): New.
15874         (powi_as_mults_1): New.
15875         (powi_as_mults): New.
15876         (gimple_expand_builtin_powi): New.
15877         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
15878         (gate_cse_sincos): Remove sincos/cexp restriction.
15879
15880 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15881
15882         PR target/3746
15883         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
15884         mips-tdump native.
15885         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
15886         * mips-tdump.c: Likewise.
15887
15888 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15889
15890         PR target/49128
15891         * config/i386/driver-i386.c (host_detect_local_cpu): Always
15892         add -mno-XXX.  Handle FMA.
15893
15894 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15895
15896         PR rtl-optimization/48633
15897         * ira-build.c (loop_with_eh_edge_p): New function.
15898         (mark_loops_for_removal): Use it.
15899
15900 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
15901
15902         PR rtl-optimization/48971
15903         * ira.c (setup_pressure_classes): Don't check register move cost
15904         for classes with one registers.  Don't add pressure class if there
15905         is a pressure class with the same available hard registers.
15906         Check contains_reg_of_mode.  Fix a typo in collecting
15907         temp_hard_regset.  Ignore hard registers not belonging to a class.
15908
15909 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
15910
15911         PR target/49133
15912         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
15913
15914 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
15915             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15916
15917         PR gcov-profile/48845
15918         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
15919
15920 2011-05-24  Richard Guenther  <rguenther@suse.de>
15921
15922         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
15923         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
15924         (gimple_types_compatible_p_1): Adjust.
15925         (iterative_hash_canonical_type): Do not bother about complete vs.
15926         incomplete types.
15927         (gimple_canonical_types_compatible_p): Likewise.
15928
15929 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15930
15931         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
15932
15933 2011-05-24  Richard Guenther  <rguenther@suse.de>
15934
15935         PR bootstrap/49078
15936         * gimple.c (gimple_register_canonical_type): Revert
15937         previous change.
15938         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
15939         does not for a tree for the case where it matters.  Cache
15940         pointer-type alias-sets.
15941
15942 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
15943
15944         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
15945         (OBJS): Remove options.o, opts-common.o and prefix.o.
15946         (OBJS-libcommon-target): New.
15947         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
15948         (BACKEND): Include libcommon-target.a.
15949         (MOSTLYCLEANFILES): Include libcommon-target.a.
15950         (libcommon-target.a): New.
15951         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
15952         prefix.o.
15953
15954 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
15955
15956         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
15957         parts of output shared with the driver.
15958         * optc-gen.awk: Don't generate parts of output not shared with the
15959         driver.
15960         * opth-gen.awk: Remove GCC_DRIVER conditionals.
15961         * doc/options.texi (SourcerInclude): Mention options-save.c.
15962         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
15963         (OBJS): Add options-save.o.
15964         (options-save.c, options-save.o): New.
15965         (options.o): Update dependencies.
15966         (gcc-options.o): Remove.
15967         (mostlyclean): Remove options-save.c.
15968
15969 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
15970
15971         PR debug/49032
15972         * dbxout.c: Include cgraph.h.
15973         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
15974         and without value expr, return NULL if no varpool node exists for
15975         it or if it is not needed.
15976         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
15977
15978         PR c/49120
15979         * c-decl.c (start_decl): Convert expr to void_type_node.
15980
15981 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
15982
15983         PR rtl-optimization/48826
15984         * emit-rtl.c (try_split): When splitting a call that is followed
15985         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
15986
15987 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
15988
15989         * cfgexpand.c (expand_debug_expr): For unused non-addressable
15990         parameters passed in memory prefer using DECL_INCOMING_RTL over
15991         the pseudos it will be copied into.
15992
15993 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
15994
15995         PR target/47315
15996         * config/i386/i386.c (ix86_option_override_internal): Save the
15997         initial options after checking vzeroupper.
15998
15999 2011-05-23  David Li  <davidxl@google.com>
16000
16001         PR tree-optimization/48988
16002         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
16003         Initialize has_valid_pred for each pred chain.
16004
16005 2011-05-23  Richard Guenther  <rguenther@suse.de>
16006
16007         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
16008         (iterative_hash_gimple_type): Always hash type names.
16009
16010 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
16011
16012         * c-typeck.c (build_function_call_vec): Tweak call to
16013         check_function_arguments.
16014
16015 2011-05-23  Richard Guenther  <rguenther@suse.de>
16016
16017         PR tree-optimization/49115
16018         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
16019         is not necessarily carried out, do not claim it kills the ref.
16020         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
16021
16022 2011-05-23  Richard Guenther  <rguenther@suse.de>
16023
16024         PR middle-end/15419
16025         * builtins.c (fold_builtin_memory_op): Be less restrictive about
16026         what pointer types we accept for folding.
16027
16028 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16029
16030         * gthr-gnat.c: Remove.
16031         * gthr-gnat.h: Remove.
16032         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
16033         * config/t-freebsd (LIB2ADDEH): Likewise.
16034         * config/t-linux (LIB2ADDEH): Likewise.
16035         * config/t-sol2 (LIB2ADDEH): Likewise.
16036         * config/ia64/t-vms (LIB2ADDEH): Likewise.
16037         * configure.ac (target_thread_file): Remove gnat handling.
16038         * configure: Regenerate.
16039         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
16040
16041 2011-05-23  Tristan Gingold  <gingold@adacore.com>
16042             Eric Botcazou  <ebotcazou@adacore.com>
16043
16044         * gcov.c (create_file_names): If no object directory is specified,
16045         keep the directory of the file.
16046
16047 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16048
16049         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
16050         * configure: Regenerate.
16051
16052 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
16053
16054         PR middle-end/48973
16055         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
16056         failed and the comparison has a single bit signed type, use
16057         constm1_rtx instead of const1_rtx for true value.
16058         (do_store_flag): If ops->type is single bit signed type, disable
16059         signel bit test optimization and pass -1 instead of 1 as last
16060         parameter to emit_store_flag_force.
16061
16062 2011-05-23  Tom de Vries  <tom@codesourcery.com>
16063
16064         PR target/45098
16065         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
16066         function.
16067         (infer_loop_bounds_from_undefined): Use new function.
16068
16069 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16070
16071         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
16072         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
16073         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
16074         and -O0 otherwise.
16075         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
16076
16077 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16078
16079         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
16080         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
16081         returns true.
16082
16083 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
16084
16085         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
16086
16087 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16088
16089         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
16090         UNSPEC_MOVE_PIC pattern.
16091
16092 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
16093
16094         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
16095         (sparc-*-rtems*): Likewise.
16096         (sparc64-*-elf*): Likewise.
16097         (sparc64-*-rtems*): Likewise.
16098         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
16099         * config/sparc/t-crtin: New file.
16100         * config/sparc/t-sol2 (crti.o): Delete rule.
16101         (crtn.o): Likewise.
16102         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
16103         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
16104         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
16105         (ENDFILE_SPEC): Add crtn.o.
16106
16107 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16108
16109         PR middle-end/48689
16110         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
16111         CODE_CONTAINS_STRUCT (TS_COMMON).
16112
16113 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
16114
16115         PR middle-end/49029
16116         * expmed.c (extract_fixed_bit_field): Test whether target can be used
16117         only after deciding which mode to use.
16118
16119 2011-05-22  Tom de Vries  <tom@codesourcery.com>
16120
16121         PR target/45098
16122         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
16123         for call to get_shiftadd_cost.
16124
16125 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
16126
16127         PR target/49104
16128         * config/i386/cpuid.h (bit_MMXEXT): New define.
16129
16130 2011-05-22  Nick Clifton  <nickc@redhat.com>
16131
16132         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
16133         initialisation of non-existant args[2] element.  Use args[] array
16134         not arg[] array to pass arguments to build_function_type_list.
16135
16136 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
16137
16138         PR tree-optimization/49087
16139         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
16140
16141 2011-05-21  Jason Merrill  <jason@redhat.com>
16142
16143         PR c++/49092
16144         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
16145         static storage duration.
16146
16147 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16148
16149         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
16150         frame pointer.
16151
16152 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16153
16154         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
16155         false if there are call-saved registers here...
16156         (sparc_can_use_return_insn_p): ...but here instead.
16157         (save_or_restore_regs): Fix thinko.
16158         (sparc_expand_prologue): Use current_function_is_leaf.
16159         (sparc_frame_pointer_required): Likewise.
16160
16161 2011-05-21  Nick Clifton  <nickc@redhat.com>
16162
16163         PR target/49098
16164         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
16165
16166 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
16167
16168         * gengtype.c (walk_type): Implemented "atomic" GTY option.
16169         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
16170
16171 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
16172
16173         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
16174         * optc-gen.awk: Move common code to opt-read.awk.
16175         * opth-gen.awk: Likewise.
16176         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
16177
16178 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
16179
16180         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
16181
16182 2011-05-20  Tom de Vries  <tom@codesourcery.com>
16183
16184         PR target/45098
16185         * tree-ssa-loop-ivopts.c: Include expmed.h.
16186         (get_shiftadd_cost): New function.
16187         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
16188
16189 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16190
16191         PR bootstrap/49086
16192         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
16193         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
16194
16195 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16196
16197         * Makefile.in: Update comment referring to $(OBJS-common).
16198
16199 2011-05-20  Ian Lance Taylor  <iant@google.com>
16200
16201         * godump.c (go_output_typedef): Put enum constants in the macro
16202         hash table to avoid duplicate Go const definitions.
16203
16204 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
16205
16206         * Makefile.in (LIBDEPS): Add libcommon.a.
16207         (LIBS): Likewise.
16208         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
16209         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
16210         pretty-print.o and version.o.
16211         (OBJS-libcommon): New.
16212         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
16213         (BACKEND): Add libcommon.a.
16214         (MOSTLYCLEANFILES): Likewise.
16215         (libcommon.a): New.
16216         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
16217         (cpp$(exeext)): Likewise.
16218         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
16219         pretty-print.o and input.o.
16220         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
16221         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
16222         (errors.o): Remove.
16223         (mips-tfile): Don't explicitly use version.o.
16224         (mips-tdump): Likewise.
16225         (gcov.o): Depend on $(DIAGNOSTIC_H).
16226         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
16227         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
16228         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
16229         * gcov-dump.c: Include intl.h and diagnostic.h.
16230         (main): Initialize diagnostics.
16231         * gcov.c: Include diagnostic.h.
16232         (fnotice): Remove.
16233         (main): Initialize diagnostics.
16234         * lto-wrapper.c: Include diagnostic.h.
16235         (main): Initialize diagnostics.
16236
16237 2011-05-20  Michael Matz  <matz@suse.de>
16238
16239         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
16240
16241 2011-05-20  Michael Matz  <matz@suse.de>
16242             Richard Guenther  <rguenther@suse.de>
16243
16244         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
16245         use lto_streamer_cache_append directly instead of returning a VEC.
16246         (preload_common_node): Remove.
16247         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
16248         track seen nodes.
16249         (lto_streamer_cache_create): Call lto_preload_common_nodes.
16250
16251 2011-05-20  Richard Guenther  <rguenther@suse.de>
16252
16253         PR tree-optimization/49079
16254         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
16255         MEM_REFs correctly for the trailing array access detection.
16256         Special case constants the same way as decls for overall size
16257         constraining.
16258
16259 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
16260
16261         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
16262         argument expansion.
16263
16264 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
16265
16266         PR tree-optimization/49073
16267         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
16268         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
16269         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
16270
16271 2011-05-20  Richard Guenther  <rguenther@suse.de>
16272
16273         PR middle-end/48849
16274         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
16275         of pointer types the same way the middle-end does.
16276
16277 2011-05-20  Richard Guenther  <rguenther@suse.de>
16278
16279         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
16280         or pointer-to chains.  Delay all fixup to uniquify_nodes.
16281
16282 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
16283
16284         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
16285         (fma4_fmaddsub): Likewise
16286
16287 2011-05-19  Jan Hubicka  <jh@suse.cz>
16288
16289         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
16290         (GIMPLE_TYPE_PAIR_SIZE): New macro.
16291         (type_pair_cache): New static var.
16292         (lookup_type_pair): Use fixed sized custom hash; make inline.
16293         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
16294         calls of lookup_type_pair.
16295         (print_gimple_types_stats): Remove cache stats.
16296         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
16297         and gtc_ob.
16298
16299 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
16300
16301         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
16302         when TARGET_RDRND is active.
16303         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
16304         Generate dummy SImode target register when target is NULL.
16305
16306 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16307
16308         * config/arm/arm-fpus.def: New.
16309         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
16310         arm-fpus.def.
16311         * config/arm/arm-tables.opt: Regenerate.
16312         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
16313         (arm_option_override): Don't decode FPU name to string here.
16314         * config/arm/arm.opt (mfpu=): Use Enum.
16315         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
16316         Update dependencies.
16317
16318 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
16319
16320         * collect2.c: Include diagnostic.h.
16321         (fatal_perror, fatal, error, fancy_abort): Remove.
16322         (main): Set progname.  Call xmalloc_set_program_name and
16323         diagnostic_initialize.
16324         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
16325         scan_libraries, resolve_lib_name): Call fatal_error instead of
16326         fatal and fatal_perror.
16327         * collect2.h (error, fatal, fatal_perror): Don't declare.
16328         * tlink.c: Include diagnostic-core.h.
16329         (recompile_files): Call fatal_error instead of fatal_perror.
16330         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
16331         pretty-print.o and input.o.
16332         (collect2.o, tlink.o): Update dependencies.
16333
16334 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16335
16336         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
16337
16338 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16339
16340         PR target/40483
16341         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
16342         COMDAT group syntax, both SPARC and x86 variants.
16343         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
16344         * configure: Regenerate.
16345         * config/sol2.h (TARGET_SOLARIS): Define.
16346         (PUSHSECTION_FORMAT): Remove.
16347         (SECTION_NAME_FORMAT): Define.
16348         * config/sol2.c: Include hashtab.h.
16349         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
16350         expansion, using SECTION_NAME_FORMAT.
16351         (solaris_comdat_htab): New variable.
16352         (struct comdat_entry): Define.
16353         (comdat_hash): New function.
16354         (comdat_eq): New function.
16355         (solaris_elf_asm_comdat_section): New function.
16356         (solaris_define_comdat_signature): New function.
16357         (solaris_code_end): New function.
16358         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
16359         (solaris_code_end): Declare.
16360         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
16361         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
16362         solaris_code_end.
16363         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
16364         Remove ATTRIBUTE_UNUSED.
16365         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
16366         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
16367         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
16368         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
16369         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
16370         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
16371         (PUSHSECTION_FORMAT): Remove.
16372         (SECTION_NAME_FORMAT): Redefine.
16373
16374 2011-05-19  Kai Tietz  <ktietz@redhat.com>
16375
16376         * tree-cfg.c (verify_gimple_assign_binary): Barf on
16377         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16378         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
16379
16380 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
16381             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16382
16383         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
16384
16385 2011-05-19  Richard Guenther  <rguenther@suse.de>
16386
16387         PR middle-end/48985
16388         * tree-object-size.c (addr_object_size): If the pointed-to
16389         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
16390
16391 2011-05-19  Richard Guenther  <rguenther@suse.de>
16392
16393         * gimple.c (gimple_types_compatible_p_1): Compare names of
16394         the types themselves.
16395         (iterative_hash_gimple_type): And hash them that way.
16396         (gimple_register_type_1): If we register a main variant properly
16397         initialize the leader to ourselves.
16398
16399 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16400
16401         PR target/45098
16402         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
16403         get_loop_invariant_expr_id.
16404         (get_loop_invariant_expr_id): Use get_expr_id.
16405         (parm_decl_cost): New function.
16406         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
16407         Improve bound cost estimation.  Use different inv_expr_id for elim and
16408         express cases.
16409
16410 2011-05-19  Tom de Vries  <tom@codesourcery.com>
16411
16412         PR target/45098
16413         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
16414         cost_base.cost == 0.
16415
16416 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
16417
16418         PR target/49002
16419         * config/i386/sse.md
16420         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
16421         load cast.
16422
16423 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16424
16425         PR tree-optimization/49039
16426         * tree-vrp.c (extract_range_from_binary_expr): For
16427         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
16428         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
16429
16430 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16431
16432         PR target/45098
16433         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
16434
16435 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
16436
16437         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
16438         (*tls_global_dynamic_64): Ditto.
16439         (*tls_local_dynamic_base_32_gnu): Ditto.
16440         (*tls_local_dynamic_base_64): Ditto.
16441         (tls_initial_exec_64_sun): Ditto.
16442
16443 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
16444
16445         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
16446         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
16447         bf592-none.
16448         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
16449         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
16450         * config/bfin/bfin.c (bfin_cpus): Add bf592.
16451         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
16452         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
16453         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
16454         * config/bfin/elf.h (LIB_SPEC): Add bf592.
16455
16456 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
16457
16458         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
16459         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
16460         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
16461         target_thread_pointer, arm_structure_size_boundary, struct
16462         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
16463         struct abi_name, arm_all_abis): Remove.
16464         (arm_option_override) Don't process most enumerated option values here.
16465         Don't process target_fpe_name here.  Work with integer not string for
16466         structure size boundary; use separate diagnostics for each case.
16467         * config/arm/arm.h (enum float_abi_type, enum
16468         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
16469         to arm-opts.h.
16470         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
16471         arm_structure_size_boundary): Remove.
16472         * config/arm/arm.opt (mabi=): Use Enum and Init.
16473         (arm_abi_type): New Enum and EnumValue entries.
16474         (mfloat-abi=): Use Enum and Init.
16475         (float_abi_type): New Enum and EnumValue entries.
16476         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
16477         (mfp16-format=): Use Enum and Init.
16478         (arm_fp16_format_type): New Enum and EnumValue entries.
16479         (mstructure-size-boundary=): Use UInteger and Init.
16480         (mtp=): Use Enum and Init.
16481         (arm_tp_type): New Enum and EnumValue entries.
16482
16483 2011-05-18  Richard Guenther  <rguenther@suse.de>
16484
16485         PR tree-optimization/49018
16486         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
16487         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
16488         gimple_has_side_effects.
16489
16490 2011-05-18  Richard Guenther  <rguenther@suse.de>
16491
16492         * gimple.c (gimple_register_type_1): New function, split out from ...
16493         (gimple_register_type): ... here.  Avoid infinite recursion.
16494
16495 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16496
16497         PR tree-optimization/41881
16498         * tree-vectorizer.h (struct _loop_vec_info): Add new field
16499         reduction_chains along with a macro for its access.
16500         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
16501         (destroy_loop_vec_info): Free reduction chains.
16502         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
16503         (vect_is_slp_reduction): New function.
16504         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
16505         (vect_create_epilog_for_reduction): Support SLP reduction chains.
16506         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
16507         definition types for reduction chains.
16508         (vect_supported_load_permutation_p): Don't allow permutations for
16509         reduction chains.
16510         (vect_analyze_slp_instance): Support reduction chains.
16511         (vect_analyze_slp): Try to build SLP instance from reduction chains.
16512         (vect_get_constant_vectors):  Handle reduction chains.
16513         (vect_schedule_slp_instance): Mark the first statement of the
16514         reduction chain as reduction.
16515
16516 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
16517
16518         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
16519         names for group elements access.
16520         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
16521         reduction chains as well.  Remove data reference and interleaving
16522         related words from the fields names.
16523         * tree-vect-loop.c (vect_transform_loop): Use new names for group
16524         elements access.
16525         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
16526         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
16527         vect_update_interleaving_chain, vect_same_range_drs,
16528         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
16529         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
16530         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
16531         vect_analyze_group_access, vect_analyze_data_ref_access,
16532         vect_create_data_ref_ptr, vect_transform_strided_load,
16533         vect_record_strided_load_vectors): Likewise.
16534         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
16535         vect_model_load_cost, vectorizable_store, vectorizable_load,
16536         vect_remove_stores, new_stmt_vec_info): Likewise.
16537         * tree-vect-slp.c (vect_build_slp_tree,
16538         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
16539
16540 2011-05-18  Richard Guenther  <rguenther@suse.de>
16541
16542         PR middle-end/48989
16543         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
16544         operand verification.
16545         (verify_gimple_assign_binary): Likewise.
16546         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
16547         to non-1-precision BOOLEAN_TYPEs.
16548
16549 2011-05-18  Tom de Vries  <tom@codesourcery.com>
16550
16551         PR target/45098
16552         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
16553
16554 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
16555
16556         PR tree-optimization/49000
16557         * tree-ssa.c (execute_update_addresses_taken): Call
16558         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
16559         be rewritten and decl has been marked for renaming, reset
16560         the debug stmt.
16561
16562 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
16563
16564         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
16565         enum_opts_set when testing if attributes have set -mfpmath=.
16566
16567 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
16568
16569         * config/mips/mips.c (mips_handle_option): Remove unused variable.
16570
16571 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16572
16573         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
16574         info->entry with 0
16575         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
16576         id.transform_lang_insert_block with NULL.
16577
16578 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
16579
16580         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
16581         (output_fp_compare): Change args 3 and 4 to bool.
16582         (ix86_expand_call): Change arg 6 to bool.
16583         (ix86_attr_length_immediate_default): Change arg 2 to bool.
16584         (ix86_attr_length_vex_default): Change arg 3 to bool.
16585         * config/i386/i386.md: Update all uses.
16586         * config/i386/i386.c: Ditto.
16587         (ix86_flags_dependent): Change return type to bool.
16588
16589 2011-05-17  Richard Guenther  <rguenther@suse.de>
16590
16591         * gimple.c (type_hash_pair_compare): Fix comparison.
16592
16593 2011-05-17  Richard Guenther  <rguenther@suse.de>
16594
16595         * gimple.c (iterative_hash_gimple_type): Simplify singleton
16596         case some more, fix final hash value of the non-singleton case.
16597
16598 2011-05-17  Richard Guenther  <rguenther@suse.de>
16599
16600         PR bootstrap/49013
16601         Revert
16602         2011-05-16  Richard Guenther  <rguenther@suse.de>
16603
16604         * gimple.c (gimple_types_compatible_p_1): Use names of the
16605         type itself, not its main variant.
16606         (iterative_hash_gimple_type): Likewise.
16607
16608 2011-05-17  Richard Guenther  <rguenther@suse.de>
16609
16610         * gimple.c (gimple_register_canonical_type): Use the main-variant
16611         leader for computing the canonical type.
16612
16613 2011-05-17  Nick Clifton  <nickc@redhat.com>
16614
16615         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
16616         moves.
16617
16618         * config/rx/rx.md: Add peephole to remove redundant extensions
16619         after loads.
16620         (bitset_in_memory): Use rx_restricted_mem_operand.
16621         (bitinvert_in_memory): Likewise.
16622         (bitclr_in_memory): Likewise.
16623
16624 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
16625             Nick Clifton  <nickc@redhat.com>
16626
16627         * config/rx/rx.md: Add peepholes to match a register move followed
16628         by a comparison of the moved register.  Replace these with an
16629         addition of zero that does both actions in one instruction.
16630
16631 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
16632
16633         PR target/48986
16634         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
16635         predicate to allow CONST_INT.
16636         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
16637
16638 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16639
16640         * opts-common.c (opt_enum_arg_to_value): New.
16641         * opts.h (opt_enum_arg_to_value): Declare.
16642         * config/i386/i386.opt (fpmath): Remove.
16643         (mfpmath=): Use Enum, Init and Save.
16644         (fpmath_unit): New Enum and EnumValue entries.
16645         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
16646         name for function fpmath state.
16647         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
16648         * config/i386/i386.c: Include diagnostic.h.
16649         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
16650         (ix86_target_string): Take enum fpmath_unit value instead of string.
16651         (ix86_debug_options): Update call to ix86_target_string.
16652         (ix86_option_override_internal): Don't process fpmath strings here.
16653         (x86_function_specific_save, ix86_function_specific_restore):
16654         Don't handle fpmath state specially.
16655         (ix86_function_specific_print): Pass fpmath state to
16656         ix86_target_string instead of printing in this function.
16657         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
16658         Handle enum attributes.
16659         (IX86_ATTR_ENUM, ix86_opt_enum): New.
16660         (ix86_valid_target_attribute_tree): Update option_strings
16661         handling.  Handle fpmath as enum option.
16662         (ix86_can_inline_p): Update field names for function fpmath state.
16663         (ix86_expand_builtin): Update call to ix86_target_string.
16664         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
16665         (ix86_fpmath): Remove.
16666         * config/i386/t-i386 (i386.o): Update dependencies.
16667
16668 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
16669
16670         PR preprocessor/48677
16671         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
16672         from decoded_options[0], not from itself.
16673
16674 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
16675
16676         * config/i386/constraints.md (z): New constraint.
16677         * config/i386/i386.c (c): New mode attribute.
16678         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
16679         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
16680         constraint for operand 0.
16681         (*call_vzeroupper): Ditto.
16682         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
16683         (*call_rex64_ms_sysv_vzeroupper): Ditto.
16684         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
16685         Use "lzm" constraint for operand 0.
16686         (*call_pop_vzeroupper): Ditto.
16687         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
16688         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
16689         constraint for operand 0.
16690         (*sibcall_vzeroupper): Ditto.
16691         (*sibcall_rex64_ms_sysv): Ditto.
16692         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
16693         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
16694         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
16695         (*sibcall_pop_vzeroupper): Ditto.
16696         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
16697         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
16698         mode iterator.  Use "<c>zm" constraint for operand 1.
16699         (*call_value_vzeroupper): Ditto.
16700         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
16701         for operand 1.
16702         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
16703         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
16704         *call_value_pop_1.  Use "lzm" constraint for operand 1.
16705         (*call_value_pop_vzeroupper): Ditto.
16706         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
16707         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
16708         mode iterator.  Use "Uz" constraint for operand 1.
16709         (*sibcall_value_vzeroupper): Ditto.
16710         (*sibcall_value_rex64_ms_sysv): Ditto.
16711         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
16712         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
16713         constraint for operand 1.
16714         (*sibcall_value_pop_vzeroupper): Ditto.
16715         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
16716         and "z" constraint for operand 2.
16717         (*tls_global_dynamic_32_gnu): Ditto.
16718         (*tls_local_dynamic_base_32_gnu): Ditto.
16719         (*tls_local_dynamic_base_64): Ditto.
16720         (*tls_local_dynamic_32_once): Ditto.
16721         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
16722         Update all callers.
16723         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
16724
16725 2011-05-16  Richard Guenther  <rguenther@suse.de>
16726
16727         * gimple.c (gimple_types_compatible_p_1): Use names of the
16728         type itself, not its main variant.
16729         (iterative_hash_gimple_type): Likewise.
16730
16731 2011-05-16  Richard Guenther  <rguenther@suse.de>
16732
16733         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
16734         always visit pointer target and function result and argument types.
16735
16736 2011-05-16  Jason Merrill  <jason@redhat.com>
16737
16738         PR c++/48999
16739         * tree-inline.c (copy_statement_list): Put back recursion.
16740
16741 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16742
16743         PR target/27663
16744         PR target/41076
16745         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
16746         * config/avr/avr.md ("*ior<mode>qi.byte0",
16747         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
16748
16749 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
16750
16751         PR target/45099
16752         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
16753         register is needed for a function argument.
16754
16755 2011-05-16  Richard Guenther  <rguenther@suse.de>
16756
16757         * gimple.c (struct type_hash_pair): New type.
16758         (type_hash_pair_compare): New function.
16759         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
16760
16761 2011-05-16  Revital Eres  <revital.eres@linaro.org>
16762
16763         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
16764
16765 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16766
16767         * config/i386/i386.md (floating point move splitters): Fix
16768         usage of standard_80387_constant_p.
16769         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
16770
16771 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
16772
16773         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
16774
16775 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
16776
16777         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
16778         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
16779         (tree_ssa_lim_finalize): Likewise.
16780
16781 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
16782
16783         * config/i386/constraint.md (Yd, Yx): New register constraints.
16784         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
16785         Yd conditional register constraint.
16786         (*movtf_internal): Use standard_sse_constant_opcode.
16787         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
16788         Yx conditional register constraint.
16789         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
16790         Yd conditional register constraint.  Use standard_sse_constant_p to
16791         check for valid SSE constants and call standard_sse_constant_opcode to
16792         output SSE insn.
16793         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
16794         constants and call standard_sse_constant_opcode to output SSE insn.
16795         * config/i386/i386.c (ix86_option_ovverride_internal): Set
16796         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
16797         optimize_size is set.
16798         (standard_sse_constant_opcode): Output conditional AVX insn templates.
16799
16800 2011-05-14  Tobias Burnus  <burnus@net-b.de>
16801
16802         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
16803
16804 2011-05-13  Martin Jambor  <mjambor@suse.cz>
16805
16806         * ipa-prop.c (ipa_cst_from_jfunc): New function.
16807         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
16808         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
16809         (evaluate_conditions_for_ipcp_clone): Removed.
16810         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
16811         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
16812         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
16813
16814 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
16815
16816         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
16817         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
16818         lieu of MAY_HAVE_DEBUG_STMTS.
16819         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
16820         debug statements if !MAY_HAVE_DEBUG_STMTS.
16821
16822 2011-05-13  Martin Thuresson  <martint@google.com>
16823
16824         PR gcov-profile/47793
16825         * libgcov.c (gcov_exit): Support relative profile paths.
16826         * doc/invoke.texi (-fprofile-dir): Update for above change.
16827
16828 2011-05-13  Richard Guenther  <rguenther@suse.de>
16829
16830         * gimple.c (gimple_canonical_types_compatible_p): Do not use
16831         type-pair caching, do not compare hashes.
16832
16833 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
16834
16835         PR middle-end/48965
16836         * tree-cfg.c (edge_to_cases_cleanup): Return true.
16837         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
16838
16839 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16840
16841         * gimplify.c (gimplify_expr): Make sure operand is boolified.
16842         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
16843         compatible type for TRUTH_NOT_EXPR.
16844
16845 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16846
16847         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
16848         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
16849         can_create_pseudo_p ().
16850
16851 2011-05-13  Richard Guenther  <rguenther@suse.de>
16852
16853         PR lto/48978
16854         * gimple.c (iterative_hash_gimple_type): Revert change in
16855         pointer target and function result and argument hashing.
16856
16857 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
16858
16859         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
16860         (*movxf_internal_nointeger): Ditto.
16861         (*movdf_internal_rex64): Ditto.
16862         (*movdf_internal): Ditto.
16863         (*movdf_internal_nointeger): Ditto.
16864         (*movsf_internal): Ditto.
16865         (sincos splitters): Use can_create_pseudo ().
16866
16867 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
16868
16869         * config/i386/i386-opts.h: New.
16870         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
16871         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
16872         ix86_section_threshold): Remove.
16873         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
16874         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
16875         OPT_mbranch_cost_.
16876         (ix86_option_override_internal): Don't decode strings for options
16877         other than -march=, -mtune= and -mfpmath=.  Don't allow for
16878         __attribute__ uses in remaining diagnostics for options with
16879         string arguments.  Don't check for integer arguments being negative.
16880         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
16881         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
16882         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
16883         ix86_branch_cost, ix86_section_threshold): Remove.
16884         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
16885         HeaderInclude.
16886         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
16887         but not Var.
16888         (masm=): Use Enum and Init.
16889         (asm_dialect): New Enum and EnumValue entries.
16890         (mbranch-cost=): Use UInteger.
16891         (mlarge-data-threshold=): Use UInteger and Init.
16892         (mcmodel=): Use Enum and Init.
16893         (cmodel): New Enum and EnumValue entries.
16894         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
16895         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
16896         mregparm=): Use UInteger.
16897         (mstringop-strategy=): Use Enum and Init.
16898         (stringop_alg): New Enum and EnumValue entries.
16899         (mtls-dialect=): Use Enum and Init.
16900         (tls_dialect): New Enum and EnumValue entries.
16901         (mabi=): Use Enum and Init.
16902         (calling_abi): New Enum and EnumValue entries.
16903         (mveclibabi=): Use Enum and Init.
16904         (ix86_veclibabi): New Enum and EnumValue entries.
16905
16906 2011-05-13  Nick Clifton  <nickc@redhat.com>
16907
16908         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
16909         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
16910
16911 2011-05-13  Kai Tietz  <ktietz@redhat.com>
16912
16913         PR middle-end/48984
16914         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
16915         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
16916         (gimple_boolify): Check for cast for boolean_type_node instead for
16917         BOOLEAN_TYPE.
16918
16919 2011-05-13  Richard Guenther  <rguenther@suse.de>
16920
16921         PR tree-optimization/48172
16922         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
16923         multiplying by number of iterations for equal step.
16924         (vect_create_cond_for_alias_checks): Likewise.
16925
16926 2011-05-13  Andreas Schwab  <schwab@redhat.com>
16927
16928         * configure.ac: Use AS_HELP_STRING throughout.
16929         * configure: Regenerate.
16930
16931 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16932
16933         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
16934         (ix86_emit_restore_regs_using_mov): Likewise.
16935         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16936
16937 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
16938
16939         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
16940         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
16941         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
16942         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
16943         RTX_OK_FOR_OLO10_P): ...here.
16944         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
16945         SYMBOLIC_CONST.
16946
16947 2011-05-12  Kai Tietz  <ktietz@redhat.com>
16948
16949         * gimplify.c (gimple_boolify): Re-boolify expression
16950         arguments even if expression type is of kind BOOLEAN_TYPE.
16951         (gimplify_boolean_expr): Removed.
16952         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
16953         and XOR. Additional take care that we keep expression's type.
16954         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
16955         of TRUTH_AND|OR|XOR_EXPR.
16956
16957 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
16958
16959         PR tree-optimization/48975
16960         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
16961         on all bbs here and free and clear ifc_bbs at the end.
16962
16963 2011-05-12  Richard Guenther  <rguenther@suse.de>
16964
16965         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
16966         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
16967         until after simple checks.
16968         (gimple_types_compatible_p): Likewise.
16969         (iterative_hash_gimple_type): Always hash pointer targets
16970         and function return and argument types.
16971         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
16972         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
16973         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
16974         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
16975         completely in the simple compare section.
16976         (gimple_register_canonical_type): Query the cache again after
16977         registering.
16978
16979 2011-05-12  Richard Guenther  <rguenther@suse.de>
16980
16981         PR tree-optimization/48172
16982         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
16983         the number of iterations from the segment size calculation.
16984         (vect_create_cond_for_alias_checks): Adjust.
16985
16986 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
16987
16988         PR debug/48967
16989         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
16990         if validate_subreg fails.
16991
16992 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
16993
16994         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
16995         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
16996         early.
16997
16998 2011-05-12  DJ Delorie  <dj@redhat.com>
16999
17000         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
17001         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
17002         created builtin into rx_builtins array.
17003         (rx_builtin_decl): New function.
17004         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
17005
17006 2011-05-12  DJ Delorie  <dj@redhat.com>
17007             Nick Clifton  <nickc@redhat.com>
17008
17009         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
17010         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
17011         (rx_is_legitimate_address): Add pre-decrement and post-increment
17012         addressing in HImode and QImode.  Fix test for out of range
17013         REG+INT addressing.
17014         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
17015         (rx_align_for_label): Test label before extracting its usage count.
17016         (rx_adjust_insn_lengths): Fix selection of insn codes.
17017         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
17018
17019 2011-05-11  Jason Merrill  <jason@redhat.com>
17020
17021         * tree.c (type_hash_canon): Use struct tree_type_non_common.
17022
17023 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17024
17025         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
17026         reindent the subsequent block.
17027
17028 2011-05-11  Satoru Takabayashi  <satorux@google.com>
17029             Paul Pluzhnikov  <ppluzhnikov@google.com>
17030
17031         * doc/install.texi (Configuration): Document --with-linker-hash-style.
17032         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
17033         * config.in: Add LINKER_HASH_STYLE.
17034         * configure.ac: Add --with-linker-hash-style.
17035         * configure: Regenerate.
17036
17037 2011-05-11  Richard Guenther  <rguenther@suse.de>
17038
17039         PR middle-end/48964
17040         * gimple.c (iterative_hash_canonical_type): Fix typo.
17041
17042 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
17043
17044         * config/i386/i386.c (legitimize_tls_address)
17045         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17046         expanders directly for TARGET_GNU2_TLS.  Determine pic and
17047         __tls_get_addr symbol reference here.  Update call to
17048         gen_tls_global_dynamic_{32,64} for added arguments.
17049         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
17050         expanders directly for TARGET_GNU2_TLS.  Determine
17051         __tls_get_addr symbol reference here.  Update call to
17052         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
17053         unique UNSPEC REG_EQUIV to libcall block.
17054         (ix86_tls_get_addr): Declare static.
17055         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
17056         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
17057         Do not determine pic and __tls_get_addr symbol reference here. Do not
17058         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
17059         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
17060         (tls_global_dynamic_64): Add operand 2.  Do not determine
17061         __tls_get_addr symbol reference here.  Do not call
17062         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
17063         (tls_local_dynamic_base64): Ditto for operand 1.
17064
17065 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
17066
17067         * function.c (expand_function_start): Initialize stack_check_probe_note
17068         only if the generic stack checking mechanism is used.
17069
17070 2011-05-11  Richard Guenther  <rguenther@suse.de>
17071
17072         PR tree-optimization/15256
17073         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
17074         (A & B) | C, combine (A op CST1) op CST2.
17075         (tree_ssa_forward_propagate_single_use_vars): Only bother to
17076         visit assigns that have uses.
17077
17078 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
17079
17080         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
17081         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
17082         (unpack_ts_type_common_value_fields): ...this.  Update comment.
17083         (unpack_value_fields): Adjust for renaming.
17084         (lto_input_ts_type_tree_pointers): Split into...
17085         (lto_input_ts_type_common_tree_pointer): ...this and...
17086         (lto_input_ts_type_non_common_tree_pointers): ...this.
17087         (lto_input_tree_pointers): Adjust for above split.
17088         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
17089         (pack_ts_type_common_value_fields): ...this.  Update comment.
17090         (lto_output_ts_type_tree_pointers): Split into...
17091         (lto_output_ts_type_common_tree_pointers): ...this and...
17092         (lto_output_ts_type_non_common_tree_pointers): ...this.
17093         (lto_output_tree_pointers): Adjust for above split.
17094         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
17095         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
17096         * stor-layout.c (vector_type_mode): Adjust location of mode field.
17097         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
17098         Define.
17099         (struct tree_type): Split into...
17100         (struct tree_type_common: ...this and...
17101         (struct tree_type_with_lang_specific): ...this and...
17102         (struct tree_type_non_common): ...this.  Adjust accessor macros
17103         accordingly.
17104         (TYPE_VALUES_RAW): Define.
17105         (union tree_node): Update for above changes.
17106         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
17107         TS_TYPE_NON_COMMON.
17108         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
17109         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
17110         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
17111         * treestructu.def (TS_TYPE): Remove.
17112         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
17113         Define.
17114
17115 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
17116
17117         PR debug/48159
17118         * tree-ssa.c (reset_debug_uses): New function.
17119         * tree-flow.h (reset_debug_uses): New prototype.
17120         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
17121         * tree-loop-distribution.c (generate_loops_for_partition): Call
17122         reset_debug_uses on the stmts that will be removed.  Keep around
17123         all debug stmts, don't count them as bits in partition bitmap.
17124         (generate_builtin): Don't count debug stmts or labels as bits in
17125         partition bitmap.
17126
17127 2011-05-11  Richard Guenther  <rguenther@suse.de>
17128
17129         * gimple.c (gimple_type_hash_1): Merge with ...
17130         (gimple_type_hash): ... this.
17131         (gtc_visit): Remove mode parameter and simplify accordingly.
17132         (gimple_types_compatible_p_1): Likewise.
17133         (gimple_types_compatible_p): Likewise.
17134         (iterative_hash_gimple_type): Likewise.
17135         (visit): Likewise.
17136         (gimple_type_eq): Adjust.
17137
17138 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17139
17140         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
17141         enters the branch create an anti edge in the opposite direction
17142         to prevent the creation of reg-moves.
17143         * modulo-sched.c: Adjust comment to reflect the fact we are
17144         scheduling closing branch.
17145         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
17146         (stage_count): New field in struct partial_schedule.
17147         (calculate_stage_count): New function.
17148         (normalize_sched_times): Rename to reset_sched_times and handle
17149         incrementing the sched time of the nodes by a constant value
17150         passed as parameter.
17151         (duplicate_insns_of_cycles): Skip closing branch.
17152         (sms_schedule_by_order): Schedule closing branch.
17153         (ps_insn_find_column): Handle closing branch.
17154         (sms_schedule): Call reset_sched_times and adjust the code to
17155         support scheduling of the closing branch.
17156         (ps_insert_empty_row): Update calls to normalize_sched_times
17157         and rotate_partial_schedule functions.
17158
17159 2011-05-11  Richard Guenther  <rguenther@suse.de>
17160
17161         PR middle-end/48953
17162         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
17163
17164 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
17165
17166         * opts.c (finish_options): Move warning settings from process_options.
17167         * toplev.c (process_options): Move warning settings to finish_options.
17168
17169 2011-05-11  Richard Guenther  <rguenther@suse.de>
17170
17171         PR tree-optimization/18041
17172         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
17173         (simplify_bitwise_binary): ... this.  Handle operand conversions
17174         by applying them to the result instead.
17175         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
17176
17177 2011-05-11  Richard Guenther  <rguenther@suse.de>
17178
17179         * gimple.c (gimple_canonical_types_compatible_p): Split out
17180         from gimple_types_compatible_p and friends.  Do not recurse
17181         to pointed-to types.
17182         (gimple_canonical_type_eq): Use it.
17183         (iterative_hash_canonical_type): Split out from
17184         iterative_hash_gimple_type and friends.  Do not recurse
17185         to pointed-to types.
17186         (gimple_canonical_type_hash): Use it, allocate the hash here.
17187
17188 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17189
17190         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
17191         recognizing doloop.
17192
17193 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17194
17195         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
17196         instead of PREV_INSN.
17197
17198 2011-05-11  Revital Eres  <revital.eres@linaro.org>
17199
17200         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
17201         * loop-doloop.c (doloop_condition_get): Likewise.
17202         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
17203         (doloop_end): New.
17204         * config/arm/arm.md (*addsi3_compare0): Remove "*".
17205
17206 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
17207
17208         * tree.def (CASE_LABEL_EXPR): Add an operand.
17209         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
17210
17211 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17212
17213         * c-decl.c (c_override_global_bindings_to_false): Remove.
17214         (global_bindings_p): Don't check
17215         c_override_global_bindings_to_false.
17216         * c-tree.h (c_override_global_bindings_to_false): Remove.
17217         * c-typeck.c (composite_type): Don't set
17218         c_override_global_bindings_to_false.
17219
17220 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17221
17222         PR target/48857, 48495
17223         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
17224         (VSX_MODE): Ditto.
17225         (VSX_MOVE_MODE): Ditto.
17226         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
17227         VSX vector types.  Add V2DImode.
17228         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
17229         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
17230         (MODES_TIEABLE_P): Ditto.
17231
17232         * config/rs6000/rs6000.c (rs6000_emit_move): Use
17233         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
17234         VSX_VECTOR_MODE.
17235         (init_cumulative_args): Ditto.
17236         (rs6000_function_arg_boundary): Ditto.
17237         (rs6000_function_arg_advance_1): Ditto.
17238         (rs6000_function_arg): Ditto.
17239         (rs6000_function_ok_for_sibcall): Ditto.
17240         (emit_frame_save): Ditto.
17241         (rs6000_function_value): Ditto.
17242         (rs6000_libcall_value): Ditto.
17243
17244 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17245
17246         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17247         i386/darwin-lib.h to $libgcc_tm_file.
17248         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
17249
17250 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17251
17252         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
17253
17254 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17255
17256         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
17257         * config/rs6000/rs6000-tables.opt: New file (generated).
17258         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
17259         rs6000/rs6000-tables.opt to extra_options.
17260         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
17261         * config/rs6000/rs6000.c (rs6000_select): Remove.
17262         (processor_target_table): Move contents to rs6000-cpus.def.
17263         (darwin_rs6000_override_options): Check
17264         global_options_set.x_rs6000_cpu_index instead of
17265         rs6000_select[1].string.
17266         (rs6000_option_override_internal): Likewise.
17267         (rs6000_handle_option): Don't assert that global structures are in
17268         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
17269         (rs6000_default_cpu): New variable.
17270         (rs6000_file_start): Set it instead of local default_cpu.  Check
17271         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
17272         global_options_set.x_rs6000_tune_index instead of rs6000_select.
17273         (rs6000_darwin_file_start): Check rs6000_default_cpu and
17274         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
17275         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
17276         rs6000_select): Remove.
17277         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
17278         Remove.
17279         (mcpu=, mtune=): Use Var, Init, Enum and Save.
17280         * config/rs6000/t-rs6000
17281         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
17282         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17283         global_options_set.x_rs6000_cpu_index instead of
17284         rs6000_select[1].string.
17285         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
17286         global_options_set.x_rs6000_cpu_index instead of
17287         rs6000_select[1].string.
17288
17289 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
17290
17291         * config.gcc (libgcc_tm_file): Define instead of including files
17292         from ../../libgcc/config/ in tm_file.
17293         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
17294         * configure: Regenerate.
17295         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
17296         libgcc_tm.h, cs-libgcc_tm.h): New.
17297         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
17298         (clean): Remove libgcc_tm.h.
17299         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
17300         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
17301         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
17302
17303 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
17304
17305         PR target/48896
17306         * config/avr/avr.c (avr_ret_register): Return unsigned int
17307         instead of int.
17308         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
17309         it to avr_libcall_value.
17310         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
17311         expand_expr.
17312         (avr_expand_binop_builtin): Ditto.
17313         (avr_expand_unop_builtin): Ditto.
17314
17315 2011-05-10  DJ Delorie  <dj@redhat.com>
17316
17317         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
17318         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
17319         * config/rx/rx.c (rx_align_for_label): Add label and
17320         uses_threshold parameters.  Do not align when the label is not
17321         used enough.
17322         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
17323
17324 2011-05-10  Richard Guenther  <rguenther@suse.de>
17325
17326         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
17327         a series of conversions and apply foldings similar to what
17328         fold-const does.
17329         (tree_ssa_forward_propagate_single_use_vars): Call it.
17330
17331 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
17332
17333         PR tree-optimization/48611
17334         PR tree-optimization/48794
17335         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
17336         referenced from RESX or EH_DISPATCH arguments.
17337
17338         PR debug/48928
17339         * dfp.c (decimal_to_decnumber): Handle conversion from
17340         dconst{1,2,m1,half}.
17341
17342 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17343
17344         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
17345         for !flag_prefer_avx128.
17346         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
17347
17348 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17349
17350         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
17351         (fold_ternary_loc): Use expr_location_or.
17352
17353 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17354
17355         PR debug/48853
17356         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
17357         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
17358         Pmode and mem_mode is not VOIDmode.
17359
17360 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
17361
17362         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
17363         TYPE_QUAL_RESTRICT): Convert to enum.
17364
17365 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17366
17367         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
17368         (const_pow2_1_to_8_operand): Ditto.
17369         (const_pow2_1_to_128_operand): Ditto.
17370         (const_pow2_1_to_32768_operand): Ditto.
17371         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
17372         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
17373         in insn constraint to check integer value of operand 3.
17374         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
17375
17376         (PINSR_MODE): New mode iterator.
17377         (sse2p4_1): New mode attribute.
17378         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
17379         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
17380         iterator.  Use const_int_operand instead of
17381         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
17382         exact_log2 in insn constraint to check integer value of operand 3.
17383
17384 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17385
17386         * config/i386/sse.md (blendbits): Remove mode attribute.
17387         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
17388         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
17389         Check integer value of operand 3 in insn constraint.
17390
17391 2011-05-09  Richard Guenther  <rguenther@suse.de>
17392
17393         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
17394         for diagnostics.
17395         (lto_symtab_merge): Likewise.  Do not register types here.
17396         (lto_symtab_merge_decls_2): Likewise.
17397         (lto_symtab_merge_decls_1): Likewise.
17398         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
17399         * gimple.c (enum gtc_mode): Declare.
17400         (gimple_types_compatible_p): Make static.
17401
17402 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17403
17404         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
17405         temporary register to match Pmode.
17406
17407 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17408
17409         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
17410         and *vec_concatv4si_1_avx.
17411
17412 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
17413
17414         PR rtl-optimization/48927
17415         * ira-conflicts.c (commutative_constraint_p): Use
17416         recog_data.alternative_enabled_p to disable alternatives where
17417         "enabled" attribute is false.
17418         (get_dup_num): Ditto.
17419         * ira-lives.c (single_reg_class): Ditto.
17420         (ira_implicitly_set_insn_hard_regs): Ditto.
17421
17422 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
17423
17424         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
17425         (dataflow_set_preserve_mem_locs): Likewise.
17426
17427 2011-05-09  Philipp Thomas  <pth@suse.de>
17428
17429         * config/mep/mep.c (mep_validate_vliw): Syntax description
17430         should not be translated.
17431
17432 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
17433
17434         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
17435         * config/mips/mips-tables.opt: New file (generated).
17436         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
17437         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
17438         MIPS_ARCH_OPTION_NATIVE): Define.
17439         * config/mips/mips.c (mips_cpu_info_table): Move contents to
17440         mips-cpus.def.
17441         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
17442         mips_parse_cpu): Remove.
17443         (mips_cpu_info_from_opt, mips_default_arch): New.
17444         (mips_handle_option): Don't assert that global structures are in
17445         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
17446         (mips_option_override): Use new variables and functions to set
17447         state of these options.  Use strcmp to check for individual CPU names.
17448         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
17449         definition.
17450         * config/mips/mips.opt (march=): Use ToLower and Enum.
17451         (mips): Use ToLower, Enum and Var.
17452         (mtune=): Use ToLower and Enum.
17453         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
17454
17455 2011-05-08  Jan Hubicka  <jh@suse.cz>
17456
17457         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
17458         Arrange type pairs to be UID ordered.
17459         (gimple_lookup_type_leader): Make inline.
17460
17461 2011-05-09  Nick Clifton  <nickc@redhat.com>
17462
17463         PR target/48899
17464         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
17465         PROCESSOR_DEFAULT.
17466
17467         PR target/48897
17468         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
17469         variable 's'.
17470
17471 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
17472
17473         * combine.c (simplify_comparison): Abstract out parts into...
17474         (simplify_compare_const): ... new function.
17475         (try_combine): Generalize parallel arithmetic/compare combining
17476         to call simplify_compare_const() and CANONICALIZE_COMPARE().
17477
17478 2011-05-08  Jan Hubicka  <jh@suse.cz>
17479
17480         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
17481         (cgraph_create_virtual_clone): Call hooks once virtual clone
17482         is finished.
17483         * cgraph.h (cgraph_clone_node): Update prototype.
17484         * ipa-cp.c (ipcp_estimate_growth): Use
17485         estimate_ipcp_clone_size_and_time.
17486         * ipa-inline-transform.c (clone_inlined_nodes): Update.
17487         * lto-cgraph.c (input_node): Update.
17488         * ipa-inline.c (recursive_inlining): Update.
17489         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
17490         (evaluate_conditions_for_known_args): Break out from ...
17491         (evaluate_conditions_for_edge): ... here.
17492         (evaluate_conditions_for_ipcp_clone): New function.
17493         (inline_node_duplication_hook): Update clone summary based
17494         on parameter map.
17495         (estimate_callee_size_and_time): Rename to ...
17496         (estimate_node_size_and_time): take NODE instead of EDGE;
17497         take POSSIBLE_TRUTHS as argument.
17498         (estimate_callee_size_and_time): Update.
17499         (estimate_ipcp_clone_size_and_time): New function.
17500         (do_estimate_edge_time): Update.
17501
17502 2011-05-08  Richard Guenther  <rguenther@suse.de>
17503
17504         PR middle-end/48908
17505         PR middle-end/48905
17506         * expmed.c (expand_shift_1): Compute adjusted constant shift
17507         amount manually.
17508
17509 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17510
17511         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
17512
17513 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17514
17515         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
17516
17517 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
17518
17519         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
17520
17521 2011-05-07  Jan Hubicka  <jh@suse.cz>
17522
17523         * ipa-inline-transform.c (inline_call): Account when program size
17524         decreases.
17525         * ipa-inline.c (relative_time_benefit): New function.
17526         (edge_badness): Reorganize to be power 2 based; fix thinko when
17527         computing badness for negative growth; update comments to match
17528         reality; better dumps.
17529
17530 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
17531
17532         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
17533         type to bool and adjust comment.
17534         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
17535         (fold_mathfn_compare): Remove calls to global_bindings_p.
17536         (fold_inf_compare): Likewise.
17537         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
17538         * c-tree.h (global_bindings_p): Adjust prototype.
17539         * c-decl.c (global_bindings_p): Return bool and simplify.
17540
17541 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
17542
17543         PR tree-optimization/48837
17544         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
17545         when accumulator transformation is performed.
17546
17547 2011-05-06  Jan Hubicka  <jh@suse.cz>
17548
17549         * i386.h (ix86_tune_indices): Add
17550         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
17551         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
17552         * i386.c (initial_ix86_tune_features): Add
17553         X86_SOFTARE_PREFETCHING_BENEFICIAL.
17554         (software_prefetching_beneficial_p): Remove predicate.
17555         (ix86_option_override_internal): Use new macro.
17556
17557 2011-05-06  Jan Hubicka  <jh@suse.cz>
17558
17559         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
17560
17561 2011-05-06  Jan Hubicka  <jh@suse.cz>
17562
17563         * cgraph.c (cgraph_add_thunk): Create real function node instead
17564         of alias node; finalize it and mark needed/reachale; arrange visibility
17565         to be right and add it into the corresponding same comdat group list.
17566         (dump_cgraph_node): Dump thunks.
17567         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
17568         cgraph_function_with_gimple_body_p,
17569         cgraph_first_function_with_gimple_body,
17570         cgraph_next_function_with_gimple_body): New functions.
17571         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
17572         New macros.
17573         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
17574         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17575         * cgraphunit.c (cgraph_finalize_function): Only look into possible
17576         devirtualization when optimizing.
17577         (verify_cgraph_node): Verify thunks.
17578         (cgraph_analyze_function): Analyze thunks.
17579         (cgraph_mark_functions_to_output): Output thunks only in combination
17580         with function they are assigned to.
17581         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
17582         alias into normal node.
17583         (assemble_thunks): New functoin.
17584         (cgraph_expand_function): Use it.
17585         * lto-cgraph.c (lto_output_node): Stream thunks.
17586         (input_overwrite_node): Stream in thunks.
17587         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
17588         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
17589         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
17590         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
17591         (inline_analyze_function): Do not care about thunk jump functions.
17592         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
17593         * ipa-prop.c (ipa_prop_write_jump_functions): Use
17594         cgraph_function_with_gimple_body_p.
17595         * passes.c (do_per_function_toporder): Use
17596         cgraph_function_with_gimple_body_p.
17597         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
17598         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
17599         (function_called_by_processed_nodes_p): Likewise.
17600
17601 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17602
17603         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
17604         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
17605         entries.
17606         (mabi=): Replace with separate entries for mabi=altivec,
17607         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
17608         mabi=ieeelongdouble and mabi=ibmlongdouble.
17609         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
17610         check for -mabi=spe without SPE ABI support here.
17611         (rs6000_handle_option): Replace OPT_mabi_ handling with
17612         OPT_mabi_altivec and OPT_mabi_spe handling.
17613
17614 2011-05-06  Cary Coutant  <ccoutant@google.com>
17615
17616         * dwarf2out.c (contains_subprogram_definition): New function.
17617         (should_move_die_to_comdat): Call it.
17618
17619 2011-05-06  Jeff Law  <law@redhat.com>
17620
17621         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
17622         remove_ctrl_stmt_and_useless_edges.
17623         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
17624         (fixup_template_block, thread_single_edge): Likewise.
17625         (mark_threaded_blocks): Use THREAD_TARGET.
17626
17627 2011-05-06  Alan Modra  <amodra@gmail.com>
17628
17629         PR target/48900
17630         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17631         const0_rtx as the arg to the dummy __tls_get_addr libcall.
17632
17633 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17634
17635         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
17636         constraint modifier to "r".
17637
17638 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
17639
17640         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
17641         fall through for OPT_mcmodel_.
17642
17643 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17644
17645         * config/s390/s390.c (s390_asm_trampoline_template): Comment
17646         instruction sizes.
17647         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
17648
17649 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
17650
17651         PR target/47930
17652         * config/arm/arm.opt (marm): Document it.
17653         (mthumb): Reject negative variant.
17654
17655 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
17656
17657         PR target/48898
17658         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17659         Fix typo in "ccvt" variable name.
17660
17661 2011-05-06  Tristan Gingold  <gingold@adacore.com>
17662
17663         PR target/48895
17664         * config/vms/vms-ar.c (main): Remove cwd variable.
17665
17666 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
17667
17668         PR debug/48902
17669         * var-tracking.c (prepare_call_arguments): Move else before #endif.
17670
17671 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
17672
17673         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
17674         * gimplify.c (gimplify_switch_expr): Likewise.
17675         * omp-low.c (expand_omp_sections): Likewise.
17676         * tree-eh.c (lower_try_finally_switch): Likewise.
17677         (lower_eh_dispatch): Likewise.
17678         * tree.h (build_case_label): Declare.
17679         * tree.c (build_case_label): Define.
17680
17681 2011-05-05  Jason Merrill  <jason@redhat.com>
17682
17683         PR c++/40975
17684         * tree-inline.c (copy_tree_r): Use copy_statement_list.
17685         (copy_statement_list): Don't recurse.
17686         * stor-layout.c (copy_self_referential_tree_r): Don't allow
17687         STATEMENT_LIST.
17688
17689 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17690
17691         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
17692         through from -mfpu= handling.
17693         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
17694
17695 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
17696
17697         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
17698         POST_MODIFY.
17699
17700 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
17701
17702         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
17703         for 11.31.
17704         (hppa[12]*-*-hpux11*): Ditto.
17705         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
17706         * config/ia64/hpux-unix2003.h: New.
17707         * config/pa/pa-hpux1131.opt: New.
17708         * config/pa/pa-hpux1131.h: New.
17709         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
17710         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
17711         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
17712
17713 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17714
17715         PR debug/48853
17716         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
17717         instead of mode as 3rd argument to recursive call.
17718         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
17719         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
17720         VOIDmode.
17721         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
17722         don't give up if mode is Pmode and mem_mode is not VOIDmode.
17723         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
17724         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
17725
17726 2011-05-05  Julian Brown  <julian@codesourcery.com>
17727
17728         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
17729         parenthesis in D-register case.
17730
17731 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17732
17733         * opt-functions.awk (var_type_struct): Handle Enum options.
17734         * optc-gen.awk: Don't check range of variables of character type.
17735         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
17736         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
17737         rs6000_sdata_name, rs6000_explicit_options): Remove.
17738         (rs6000_option_override_internal): Check for -malign-power here.
17739         Use global_options_set instead of rs6000_explicit_options.
17740         (rs6000_parse_fpu_option): Remove.
17741         (rs6000_handle_option): Access variables via opts and opts_set
17742         pointers.  Use error_at and warning_at.  Add fall-through
17743         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
17744         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
17745         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
17746         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
17747         here.  Don't use rs6000_parse_fpu_option.
17748         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
17749         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
17750         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
17751         (mrecip=): Use Var.
17752         (mspe): Use Var and Save.
17753         (mtraceback=): Use Enum and Var.
17754         (rs6000_traceback_type): New Enum and EnumValue entries.
17755         (mfloat-gprs=): Use Enum, Var and Save.
17756         (rs6000_float_gprs): New Enum and EnumValue entries.
17757         (mlong-double-): use Var and Save.
17758         (msched-costly-dep=, minsert-sched-nops=): Use Var.
17759         (malign-): Use Enum and Var.
17760         (rs6000_alignment_flags): New Enum and EnumValue entries.
17761         (mfpu=): Use Enum.
17762         (fpu_type_t): New Enum and EnumValue entries.
17763         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17764         global_options_set instead of rs6000_explicit_options.
17765         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17766         global_options_set instead of rs6000_explicit_options.
17767         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17768         global_options_set instead of rs6000_explicit_options.
17769         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
17770         global_options_set instead of rs6000_explicit_options.
17771         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
17772         global_options_set instead of rs6000_explicit_options.
17773         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17774         global_options_set instead of rs6000_explicit_options.
17775         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
17776         definition.
17777         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17778         global_options_set instead of rs6000_explicit_options.
17779         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
17780         (rs6000_cmodel): New Enum and EnumValue entries.
17781         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17782         global_options_set instead of rs6000_explicit_options.
17783         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
17784         (mtls-size=): Use Enum and Var.
17785         (rs6000_tls_size): New Enum and EnumValue entries.
17786
17787 2011-05-05  Michael Matz  <matz@suse.de>
17788
17789         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
17790         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
17791         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
17792         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
17793         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
17794         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
17795         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
17796         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
17797         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
17798         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
17799         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
17800         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
17801         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
17802         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
17803         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
17804         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
17805
17806 2011-05-05  Richard Guenther  <rguenther@suse.de>
17807
17808         * expmed.c (expand_variable_shift): Rename to ...
17809         (expand_shift_1): ... this.  Take an expanded shift amount.
17810         For rotates recurse directly not building trees for the shift amount.
17811         (expand_variable_shift): Wrap around expand_shift_1.
17812         (expand_shift): Adjust.
17813
17814 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
17815
17816         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
17817
17818 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
17819
17820         * tree.h (get_pending_sizes): Remove prototype.
17821         (put_pending_size): Likewise.
17822         (put_pending_sizes): Likewise.
17823         * stor-layout.c (pending_sizes): Delete.
17824         (get_pending_sizes): Likewise.
17825         (put_pending_size): Likewise.
17826         (put_pending_sizes): Likewise.
17827         (variable_size): Do not call put_pending_size and tidy up.
17828         * function.h (struct function): Remove dont_save_pending_sizes_p.
17829         * lto-streamer-in.c (input_function): Do not stream it.
17830         * lto-streamer-out.c (output_function): Likewise.
17831         * tree-inline.c (initialize_cfun): Do not copy it.
17832         * c-decl.c (store_parm_decls): Do not set it.
17833         * omp-low.c (create_task_copyfn): Likewise.
17834         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17835
17836 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
17837
17838         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
17839         conditions.
17840         (*movdf_internal): Ditto.
17841         (*movdf_internal_nointeger): Ditto.
17842         (*movsf_internal): Ditto.
17843
17844 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
17845
17846         * c-decl.c (finish_decl): Don't call get_pending_sizes.
17847         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
17848         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
17849         (c_variable_size): Remove.
17850         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
17851         call put_pending_sizes.
17852         (get_parm_info): Add parameter expr.  Use it to set
17853         arg_info->pending_sizes.
17854         (store_parm_decls): Use arg_info->pending_sizes instead or calling
17855         get_pending_sizes.
17856         * c-parser.c (c_parser_parms_declarator): Update call to
17857         c_parser_parms_list_declarator.
17858         (c_parser_parms_list_declarator): Take parameter expr.  Update
17859         call to push_parm_decl.  Update recursive call.  Don't call
17860         get_pending_sizes.  Update calls to get_parm_info.
17861         (c_parser_objc_method_definition): Update calls to
17862         c_parser_objc_method_decl and objc_start_method_definition.
17863         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
17864         (c_parser_objc_method_decl): Add parameter expr.  Update call to
17865         grokparm.
17866         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
17867         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
17868         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
17869
17870 2011-05-05  Michael Hope  <michael.hope@linaro.org>
17871
17872         PR pch/45979
17873         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
17874         __ARM_EABI__ hosts.
17875
17876 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17877
17878         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
17879         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
17880         (spu_output_mi_thunk): New function.
17881
17882 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17883
17884         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
17885         targetm.asm_out.print_operand.
17886         * config/sol2.c: Include target.h.
17887
17888 2011-05-04  Jan Hubicka  <jh@suse.cz>
17889
17890         * ipa-inline.c (reset_edge_caches): New function.
17891         (update_caller_keys): Add check_inlinablity_for; do not
17892         reset edge caches; remove now unnecesary loop.
17893         (update_callee_keys): Add comments; reset node_growth_cache of callee.
17894         (update_all_callee_keys): Likewise.
17895         (inline_small_functions): Sanity check cache; update code
17896         recomputing it.
17897
17898 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
17899
17900         PR rtl-optimization/47612
17901         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
17902         as the last insn of the sequence to be moved.
17903
17904 2011-05-04  Tobias Burnus  <burnus@net-b.de>
17905
17906         PR fortran/48864
17907         * doc/invoke.texi (Ofast): Document that it
17908         enables Fortran's -fno-protect-parens.
17909
17910 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
17911
17912         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
17913
17914 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
17915
17916         * stor-layout.c (variable_size): Do not issue errors.
17917
17918 2011-05-04  Richard Guenther  <rguenther@suse.de>
17919
17920         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
17921         for array-ref indices.
17922         (tree_coverage_counter_addr): Likewise.
17923         (build_fn_info_type): Use size_int for index types.
17924         (build_gcov_info): Likewise.
17925
17926 2011-05-04  Richard Guenther  <rguenther@suse.de>
17927
17928         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
17929         to build_int_cst.
17930         * c-typeck.c (really_start_incremental_init): Use bitsize_int
17931         for constructor indices.
17932         (push_init_level): Likewise.
17933
17934 2011-05-04  Richard Guenther  <rguenther@suse.de>
17935
17936         * explow.c (promote_mode): Move variable declarations before code.
17937
17938 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
17939
17940         * tree.h (build_function_type_array): Declare.
17941         (build_varargs_function_type_array): Declare.
17942         (build_function_type_vec, build_varargs_function_type_vec): Define.
17943         * tree.c (build_function_type_array_1): New function.
17944         (build_function_type_array): New function.
17945         (build_varargs_function_type_array): New function.
17946
17947 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
17948
17949         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
17950         before setting STMT_VINFO_TYPE.
17951
17952 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17953
17954         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
17955         instead of spu_pass_by_reference.
17956
17957 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17958
17959         * calls.c (emit_library_call_value_1): Invoke
17960         promote_function_mode hook on libcall arguments.
17961         * explow.c (promote_function_mode, promote_mode): Handle TYPE
17962         argument being NULL.
17963         * targhooks.c (default_promote_function_mode): Lisewise.
17964         * config/s390/s390.c (s390_promote_function_mode): Likewise.
17965         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
17966
17967         * doc/tm.texi: Document that TYPE argument might be NULL.
17968
17969 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17970
17971         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
17972
17973 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
17974
17975         From Bernd Schmidt
17976         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
17977
17978 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17979
17980         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
17981         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
17982         Move ...
17983         * mips-tfile.c: ... here.
17984         Don't include coretypes.h, tm.h, filenames.h.
17985         (saber_stop): Remove definition and all calls.
17986         [__SABER__]: Remove.
17987         (__LINE__): Remove default.
17988         (Size_t, Ptrdiff_t): Remove definitions.
17989         Replace by size_t, ptrdiff_t.
17990         [!MIPS_DEBUGGING_INFO]: Remove.
17991         (SHASH_SIZE, THASH_SIZE): Remove defaults.
17992         (progname): Add const.
17993         (STATIC): Remove.
17994         Replace all uses by static.
17995         (ALIGN_SYMTABLE_OFFSET): Remove default.
17996         * mips-tdump.c: Don't include coretypes.h, tm.h.
17997         Remove !MIPS_IS_STAB guard.
17998         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
17999         $(TM_H), filenames.h dependencies.
18000         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
18001
18002 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18003
18004         From Jie Zhang
18005         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
18006         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
18007
18008 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18009
18010         From Bernd Schmidt
18011         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
18012         account and save/restore RETS.
18013         (PROFILE_BEFORE_PROLOGUE): Define.
18014         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
18015         the push insn to use predecrement.
18016
18017 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
18018
18019         From Jie Zhang
18020         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
18021
18022 2011-05-04  Nick Clifton  <nickc@redhat.com>
18023
18024         * config/mn10300/mn10300.c: Include cfgloop.h.
18025         (DUMP): New macro.
18026         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
18027         Lcc or a FLcc insn into the instruction stream.
18028         (mn10300_block_contains_call): New function.  Returns true if the
18029         given basic block contains a CALL insn.
18030         (mn10300_loop_contains_call_insn): New function.  Returns true if
18031         the given loop contains a CALL insn.
18032         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
18033         to use the SETLB and Lcc or FLcc insns.
18034         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
18035         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
18036         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
18037         disable the SETLB optimization.
18038         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
18039         __SETLB__ or __NO_SETLB__.
18040         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
18041         (movsf_internal): Handle MDR register.
18042         (cmpsi): Make visible.
18043         (setlb): New pattern.
18044         (Lcc): New pattern.
18045         (FLcc): New pattern.
18046
18047 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
18048
18049         PR target/48860
18050         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
18051         for reg<->xmm moves.
18052         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
18053         (vec_concatv2di_rex64_sse): Ditto.
18054         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
18055         (*vec_extractv2di_1_rex64): Ditto.
18056
18057         Revert:
18058         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18059
18060         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18061         reg<->xmm moves.
18062         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
18063
18064 2011-05-04  Richard Guenther  <rguenther@suse.de>
18065
18066         * tree.h (int_const_binop): Remove notrunc argument.
18067         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
18068         create integer constants that are properly truncated.
18069         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
18070         (const_binop): Remove zero notrunc argument to int_const_binop.
18071         (size_binop_loc): Likewise.
18072         (fold_div_compare): Likewise.
18073         (maybe_canonicalize_comparison_1): Likewise.
18074         (fold_comparison): Likewise.
18075         (fold_binary_loc): Likewise.
18076         (multiple_of_p): Likewise.
18077         * expr.c (store_constructor): Likewise.
18078         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18079         (maybe_fold_stmt_addition): Likewise.
18080         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
18081         * stor-layout.c (layout_type): Likewise.
18082         * tree-data-ref.c (tree_fold_divides_p): Likewise.
18083         * tree-sra.c (build_ref_for_offset): Likewise.
18084         (build_user_friendly_ref_for_offset): Likewise.
18085         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
18086         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
18087         * tree-ssa-loop-niter.c (inverse): Likewise.
18088         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18089         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
18090         * tree-switch-conversion.c (check_range): Likewise.
18091         (build_constructors): Likewise.
18092         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
18093         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
18094         (extract_range_from_assert): Likewise.
18095         (vrp_int_const_binop): Likewise.
18096         (extract_range_from_binary_expr): Likewise.
18097         (extract_range_from_unary_expr): Likewise.
18098         (check_array_ref): Likewise.
18099         (find_case_label_range): Likewise.
18100         (simplify_div_or_mod_using_ranges): Likewise.
18101         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
18102         comparing case labels for merging.
18103
18104 2011-05-03  Mark Wielaard  <mjw@redhat.com>
18105
18106         * dwarf2out.c (debug_str_hash_forced): Removed.
18107         (gen_label_for_indirect_string): Removed.
18108         (get_debug_string_label): Removed.
18109         (AT_string_form): Generate label directly.
18110         (output_indirect_string): Test indirect_string_node for
18111         DW_FORM_strp instead of checking label and refcount.
18112         (prune_indirect_string): Removed.
18113         (prune_unused_types): Don't check debug_str_hash_forced or
18114         call prune_indirect_string.
18115
18116 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18117
18118         PR other/48093
18119         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
18120
18121 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
18122
18123         PR debug/47994
18124         PR debug/47919
18125         * combine.c (try_combine): Skip debug insns at m_split tests.
18126
18127 2011-04-26  Mark Wielaard  <mjw@redhat.com>
18128
18129         PR42288
18130         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
18131         when info_section_emitted.
18132
18133 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
18134
18135         * config/mips/mips-opts.h: New.
18136         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
18137         to mips-opts.h.
18138         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
18139         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
18140         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
18141         via opts pointer.
18142         * config/mips/mips.h (enum mips_code_readable_setting): Move to
18143         mips-opts.h.
18144         (mips_abi, mips_code_readable): Don't declare.
18145         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
18146         (mabi=): Use Enum and Var.
18147         (mips_abi): New Enum and EnumValue entries.
18148         (mcode-readable=): Use Enum and Var.
18149         (mips_code_readable_setting): New Enum and EnumValue entries.
18150         (mr10k-cache-barrier=): Use Enum and Var.
18151         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
18152
18153 2011-05-03  Jan Hubicka  <jh@suse.cz>
18154
18155         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
18156         replace hash by pointer map.
18157         (cgraph_node_set_element_def, cgraph_node_set_element,
18158         const_cgraph_node_set_element, varpool_node_set_element_def,
18159         varpool_node_set_element, const_varpool_node_set_element): Remove.
18160         (free_cgraph_node_set, free_varpool_node_set): New function.
18161         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
18162         * tree-emutls.c: Free varpool node set.
18163         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
18164         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18165         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
18166         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18167         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
18168         Move here from ipa.c; implement using pointer_map
18169         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
18170         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
18171         debug_cgraph_node_set, varpool_node_set_new,
18172         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
18173         dump_varpool_node_set, debug_varpool_node_set):
18174         Move to ipa-uitls.c.
18175         * passes.c (ipa_write_summaries): Update.
18176
18177 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18178
18179         From Mike Frysinger:
18180         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
18181         bf542/bf544/bf547/bf548/bf549.
18182
18183 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18184
18185         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
18186
18187 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18188
18189         From Bernd Schmidt:
18190         * config/bfin/bfin.md (MOVCC): New mode_macro.
18191         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
18192         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
18193         comments from generated assembly.
18194
18195 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18196
18197         From Bernd Schmidt
18198         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
18199         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
18200         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
18201         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
18202         * config/bfin/lib1funcs.asm (___muldi3): New function.
18203
18204 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18205
18206         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
18207         build_function_type_list instead of build_function_type.
18208         Rearrange initialization of `args' to do so.
18209
18210 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18211
18212         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
18213         instead of build_function_type.
18214
18215 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18216
18217         * config/rs6000/rs6000.c (spe_init_builtins): Call
18218         build_function_type_list instead of build_function_type.
18219         (paired_init_builtins, altivec_init_builtins): Likewise.
18220         (builtin_function_type): Likewise.
18221
18222 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18223
18224         * config/sh/sh.c (sh_media_init_builtins): Call
18225         build_function_type_list instead of build_function_type.
18226
18227 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18228
18229         * config/sparc/sparc.c (sparc_file_end): Call
18230         build_function_type_list instead of build_function_type.
18231
18232 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18233
18234         * config/alpha/alpha.c (alpha_init_builtins): Call
18235         build_function_type_list instead of build_function_type.
18236
18237 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18238
18239         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
18240         build_function_type_list instead of build_function_type.
18241
18242 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18243
18244         * config/iq2000/i2000.c (iq2000_init_builtins): Call
18245         build_function_type_list instead of build_function_type.
18246         Delete `endlink' variable.
18247
18248 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18249
18250         * config/avr/avr.c (avr_init_builtins): Call
18251         build_function_type_list instead of build_function_type.
18252
18253 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18254
18255         * config/picochip/picochip.c (picochip_init_builtins): Call
18256         build_function_type_list instead of build_function_type.
18257         Delete `endlink' variable.
18258
18259 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
18260
18261         * config/bfin/bfin.c (bfin_init_builtins): Call
18262         build_function_type_list instead of build_function_type.
18263
18264 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18265
18266         From Bernd Schmidt
18267         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
18268         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
18269
18270 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18271
18272         From Jie Zhang:
18273         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
18274         libbffastfp overrides libgcc when -mfast-fp.
18275
18276 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18277
18278         Originally from Bernd Schmidt
18279         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
18280         * config/bfin/bfin.c (override_options): Test it and error if
18281         TARGET_FDPIC.
18282
18283 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
18284
18285         Originally From Bernd Schmidt
18286         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
18287         FD-PIC.
18288
18289 2011-05-03  Jeff Law  <law@redhat.com>
18290
18291         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
18292         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
18293         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
18294         than accessing AUX field directly.  Free the AUX field before
18295         clearing it.
18296         (thread_block, thread_through_loop_header): Likewise.
18297         (thread_single_edge, mark_threaded_blocks): Likewise.
18298         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
18299         (register_jump_thread): Do not attempt to thread to a NULL edge.
18300
18301 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18302
18303         * function.c (init_function_start): Call decide_function_section.
18304         * varasm.c (decide_function_section): New function.
18305         (assemble_start_function): When not using
18306         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
18307         or first_function_block_is_cold.
18308         * rtl.h (decide_function_section): Declare.
18309
18310 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
18311             Jakub Jelinek  <jakub@redhat.com>
18312
18313         PR target/48774
18314         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
18315         only succeed if req_mode is the same as set_mode.
18316
18317 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
18318
18319         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
18320         * genemit.c (gen_exp): Handle RETURN.
18321         * emit-rtl.c (verify_rtx_sharing): Likewise.
18322         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
18323         * rtl.c (copy_rtx): RETURN is shared.
18324         * rtl.h (enum global_rtl_index): Add GR_RETURN.
18325         (ret_rtx): New.
18326         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
18327         * config/s390/s390.c (s390_emit_epilogue): Likewise.
18328         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
18329         * config/cris/cris.c (cris_expand_return): Likewise.
18330         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
18331         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
18332         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
18333         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
18334         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
18335         Likewise.
18336         * config/v850/v850.c (expand_epilogue): Likewise.
18337         * config/bfin/bfin.c (bfin_expand_call): Likewise.
18338         * config/arm/arm.md (epilogue): Likewise.
18339         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
18340         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
18341         variable to ret_reg.
18342
18343 2011-05-03  Richard Guenther  <rguenther@suse.de>
18344
18345         PR lto/48846
18346         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
18347         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
18348         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
18349
18350 2011-05-03  Richard Guenther  <rguenther@suse.de>
18351
18352         * c-decl.c (grokdeclarator): Instead of looking at
18353         TREE_OVERFLOW check if the constant fits in the index type.
18354
18355 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18356
18357         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
18358         (vec_store_lanes<mode><mode>): Likewise.
18359
18360 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18361
18362         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
18363         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
18364         convert_optab_index values.
18365         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
18366         * genopinit.c (optabs): Initialize the new optabs.
18367         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
18368         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
18369         (expand_STORE_LANES): New functions.
18370         * tree.h (build_array_type_nelts): Declare.
18371         * tree.c (build_array_type_nelts): New function.
18372         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
18373         (vect_model_load_cost): Likewise.
18374         (vect_store_lanes_supported, vect_load_lanes_supported)
18375         (vect_record_strided_load_vectors): Declare.
18376         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
18377         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
18378         (vect_transform_strided_load): Split out statement recording into...
18379         (vect_record_strided_load_vectors): ...this new function.
18380         * tree-vect-stmts.c (create_vector_array, read_vector_array)
18381         (write_vector_array, create_array_ref): New functions.
18382         (vect_model_store_cost): Add store_lanes_p argument.
18383         (vect_model_load_cost): Add load_lanes_p argument.
18384         (vectorizable_store): Try to use store-lanes functions for
18385         interleaved stores.
18386         (vectorizable_load): Likewise load-lanes and loads.
18387         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
18388         to vect_model_store_cost.
18389         (vect_build_slp_tree): Likewise vect_model_load_cost.
18390
18391 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
18392
18393         * hooks.h (hook_bool_mode_uhwi_false): Declare.
18394         * hooks.c (hook_bool_mode_uhwi_false): New function.
18395         * target.def (array_mode_supported_p): New hook.
18396         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
18397         * doc/tm.texi: Regenerate.
18398         * stor-layout.c (mode_for_array): New function.
18399         (layout_type): Use it.
18400         * config/arm/arm.c (arm_array_mode_supported_p): New function.
18401         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
18402
18403 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
18404
18405         PR target/48723
18406         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
18407         for -fstack-check if the size to allocate is negative.
18408
18409 2011-05-02  Lawrence Crowl  <crowl@google.com>
18410
18411         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
18412         (timevar_cond_start): New for starting a timer only when it is not
18413         already running.
18414         (timevar_cond_stop): New for stopping a timer when it was not already
18415         running.
18416
18417         * timevar.c (timevar_stop): Enable start/stop timers to start again.
18418         (timevar_cond_start): New as above.
18419         (timevar_cond_stop): New as above.
18420
18421         * timevar.def: Add start/stop timers for compiler phases,
18422         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
18423         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
18424         and TV_PHASE_FINALIZE.
18425         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
18426         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
18427         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
18428         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
18429         Make unused TV_OVERLOAD into a start/stop timer.
18430
18431         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
18432         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
18433         to indicate that they are start/stop timers.
18434
18435         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
18436         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
18437         Move initialization to do_compile.
18438         (do_compile): Add initialization from above.
18439         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
18440
18441         * c-decl.c (c_write_global_declarations): Add start/stop of
18442         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
18443
18444         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
18445         or TV_PARSE_INLINE, as appropriate.
18446         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
18447         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
18448
18449 2011-05-02  Jason Merrill  <jason@redhat.com>
18450
18451         PR c++/40975
18452         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
18453
18454 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
18455
18456         PR c/35445
18457         * c-decl.c (finish_decl): Only create a composite if the types are
18458         compatible.
18459
18460 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18461
18462         * config/fr30/fr30-protos.h (Mmode): Don't define.
18463         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
18464         definition where used.
18465         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
18466         define.  Expand definitions where used.
18467         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
18468         Expand definitions where used.
18469         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
18470         rx_function_arg, rx_function_arg_advance,
18471         rx_function_arg_boundary): Expand definitions of those macros.
18472         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
18473         definition where used.
18474
18475 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18476
18477         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
18478         reg<->xmm moves.
18479         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
18480         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
18481         with *movv2sf_internal_rex64_avx.
18482         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
18483         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
18484         Use %v prefix in insn mnemonic to handle TARGET_AVX.
18485         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
18486         "vex" in "prefix" attribute calculation.
18487         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
18488
18489 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
18490
18491         PR target/47951
18492         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
18493         inputs match the output.
18494
18495 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
18496
18497         PR target/47955
18498         * config/m68k/m68k.c (m68k_expand_prologue): Set
18499         current_function_static_stack_size.
18500
18501 2011-05-02   Jan Hubicka  <jh@suse.cz>
18502
18503         * lto-streamer.c (lto_streamer_cache_insert_1,
18504         lto_streamer_cache_lookup, lto_streamer_cache_create,
18505         lto_streamer_cache_delete): Use pointer map instead of hashtable.
18506         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
18507
18508 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
18509
18510         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
18511         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
18512         config/m68k/t-opts: New files.
18513         * config/m68k/m68k-tables.opt: New file (generated).
18514         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
18515         extra_options and m68k/t-opts to tmake_file.
18516         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
18517         (all_isas): Initialize using m68k-isas.def.
18518         (all_microarchs): Initialize using m68k-microarchs.def.
18519         (m68k_find_selection): Remove.
18520         (m68k_handle_option): Don't assert that global structures are in
18521         use.  Use error_at.  Access variables via opts pointer.  Don't
18522         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
18523         directly for -m68020-40 and -m68020-60.
18524         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
18525         m68k_tune_entry here.
18526         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
18527         to m68k-opts.h.
18528         (m68k_library_id_string): Remove declaration.
18529         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
18530         (m68k_library_id_string): New Variable.
18531         (march=, mcpu=, mtune=): Use Enum and Var.
18532
18533 2011-05-02  Richard Guenther  <rguenther@suse.de>
18534
18535         * varasm.c (output_constructor_regular_field): Compute zero-based
18536         index with double-ints.  Make sure to ICE instead of producing
18537         wrong code.
18538         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
18539         in asserts.  Properly use a signed type.
18540
18541 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
18542
18543         * config/i386/sse.md (V): New mode iterator.
18544         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
18545         TARGET_SSE2.
18546         (V_256): Rename from AVX256MODE.
18547         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
18548         condition to all users.
18549         (VF1): Ditto.
18550         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
18551         condition to all users.
18552         (VF_128): Make V4SF mode unconditional.
18553         (VF_256): Rename from AVX256MODEF2P.
18554         (VI4F_128): Rename from SSEMODE4S.
18555         (VI8F_128): Rename from SSEMODE2D.
18556         (VI4F_256): Rename from AVX256MODE8P.
18557         (VI8F_256): Rename from AVX256MODE4P.
18558         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
18559         (ssescalarmodesuffix): Remove SF and DF modes.
18560         (SSEMODE124): Remove.
18561         (SSEMODE1248): Ditto.
18562         (SSEMODEF2P): Ditto.
18563         (AVXMODEF2P): Ditto.
18564         (AVXMODEFDP): Ditto.
18565         (AVXMODEFSP): Ditto.
18566         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
18567         unconditional.
18568         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
18569         unconditional.
18570         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
18571         xop_pcmov_<mode>256.  Use V mode iterator.
18572
18573         Adjust RTX patterns globally for renamed mode attributes.
18574
18575 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18576
18577         * haifa-sched.c (sched_emit_insn): Emit insn before first
18578         non-scheduled insn.  Inform back-end about new insn.  Add
18579         new insn to scheduled_insns list.
18580
18581 2011-05-02  Richard Guenther  <rguenther@suse.de>
18582
18583         PR tree-optimization/48822
18584         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
18585         (process_scc): Indicate which iteration we start.
18586
18587 2011-05-02  Jan Hubicka  <jh@suse.cz>
18588
18589         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
18590         (lto_section_overrun): New.
18591         * lto-section-out.c (append_block): Rename to ...
18592         (lto_append_block): ... this one; export.
18593         (lto_output_1_stream): Move lto lto-streamer.h
18594         (lto_output_data_stream): Update.
18595         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
18596         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
18597         functions.
18598
18599 2011-05-02  Richard Guenther  <rguenther@suse.de>
18600
18601         * tree.c (tree_code_counts): New global array.
18602         (record_node_allocation_statistics): Count individual tree codes.
18603         (dump_tree_statistics): Dump individual code stats.
18604
18605 2011-05-01  Jan Hubicka  <jh@suse.cz>
18606
18607         * ipa-inline.c (caller_growth_limits): Fix thinko when
18608         looking for largest stack frame.
18609         * ipa-inline.h (dump_inline_summary): Declare.
18610         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
18611         on stack usage.
18612         (dump_inline_summary): Export.
18613         (debug_inline_summary): Declare as DEBUG_FUNCTION.
18614
18615 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
18616
18617         * reginfo.c (memory_move_cost): Change rclass argument type form
18618         'enum reg_class' to reg_class_t.
18619         * reload.h (memory_move_cost): Update prototype.
18620         * postreload.c reload_cse_simplify_set): Change type dclass var to
18621         reg_class_t.
18622         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
18623         Update prototype.
18624         (ira_allocate_and_set_costs): Change aclass argument type form
18625         'enum reg_class' to reg_class_t.
18626         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
18627         Change aclass argument type to reg_class_t.
18628         (update_conflict_hard_reg_costs): Change type aclass and pref vars
18629         to reg_class_t.
18630         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
18631         memory_move_cost call.
18632
18633         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
18634         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
18635         Change type tmp var to reg_class_t.
18636
18637 2011-04-30  Jan Hubicka  <jh@suse.cz>
18638
18639         * ipa-inline.c (can_inline_edge_p): Disregard limits when
18640         inlining into function with flatten attribute.
18641         (want_inline_small_function_p): Be more realistic about inlining
18642         cold calls where callee size grows.
18643
18644 2011-04-30  Jan Hubicka  <jh@suse.cz>
18645
18646         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
18647         flags.
18648
18649 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
18650
18651         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
18652         PRINT_OPERAND_PUNCT_VALID_P): Remove.
18653         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
18654         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
18655         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18656         (print_operand): Rename to...
18657         (sparc_print_operand): ...this. Make static. Adjust
18658         sparc_print_operand function call.
18659         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
18660         functions.
18661
18662 2011-04-30  Jan Hubicka  <jh@suse.cz>
18663
18664         PR middle-end/48752
18665         * ipa-inline.c (early_inliner): Disable when doing late
18666         addition of function.
18667
18668 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
18669
18670         * dwarf2out.c (get_address_mode): New inline.
18671         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
18672         if not dwarf_strict emit
18673         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
18674         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
18675         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
18676         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
18677         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
18678         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
18679         mem_loc_descriptor callers.
18680         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18681         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
18682         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
18683         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
18684         (base_types): New variable.
18685         (get_base_type_offset, calc_base_type_die_sizes,
18686         base_type_for_mode, mark_base_types, base_type_cmp,
18687         move_marked_base_types): New functions.
18688         (calc_die_sizes): Assert that die_offset is 0 or equal to
18689         next_die_offset.
18690         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
18691         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
18692         callers.  If not dwarf_strict, call mem_loc_descriptor even for
18693         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
18694         (gen_subprogram_die): Don't give up on call site parameters
18695         with non-integral or large integral modes.  Adjust
18696         mem_loc_descriptor callers.
18697         (prune_unused_types): Call prune_unused_types_mark on base_types
18698         vector entries.
18699         (resolve_addr): Call mark_base_types.
18700         (dwarf2out_finish): Call move_marked_base_types.
18701
18702         PR tree-optimization/48809
18703         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
18704         type.
18705         (gen_inbound_check): Don't compute index_expr - range_min in utype
18706         again, instead reuse SSA_NAME initialized in build_arrays.
18707         Remove two useless gsi_for_stmt calls.
18708
18709 2011-04-29  Jeff Law  <law@redhat.com>
18710
18711         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
18712
18713 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18714
18715         * cgraph.h (cgraph_postorder): Remove declaration.
18716         * ipa-utils.h (ipa_free_postorder_info): Declare.
18717         (ipa_reverse_postorder): Likewise.
18718         * cgraphunit.c: Include ipa-utils.h.
18719         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
18720         * ipa-inline.c: Include ipa-utils.h.
18721         (ipa_inline): Update call to ipa_reverse_postorder.
18722         * ipa-pure-const.c (propagate_pure_const): Update call to
18723         ipa_reduced_postorder and ipa_print_order.  Call
18724         ipa_free_postorder_info to clean up.
18725         (propagate_nothrow): Likewise.
18726         * ipa-reference.c (propagate): Removed a useless call to
18727         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
18728         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
18729         * ipa.c: Include ipa-utils.h.
18730         (ipa_profile): Update call to ipa_reverse_postorder.
18731         (cgraph_postorder): Moved to...
18732         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
18733         (ipa_utils_print_order): Renamed to ipa_print_order.
18734         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
18735         comments.
18736         (ipa_free_postorder_info): New function.
18737         * passes.c: Include ipa-utils.h.
18738         (do_per_function_toporder): Update call to ipa_reverse_postorder.
18739         (ipa_write_summaries): Likewise.
18740         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
18741         (cgraphunit.o): Likewise.
18742         (ipa.o): Likewise.
18743         (ipa-inline.o): Likewise.
18744
18745 2011-04-29  Jan Hubicka  <jh@suse.cz>
18746
18747         * gcc.dg/tree-ssa/inline-10.c: New testcase.
18748         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
18749         * ipa-inline.h (clause_t): Turn into unsigned int.
18750         * ipa-inline-analysis.c (add_clause): Do more simplification.
18751         (and_predicates): Shortcut more cases.
18752         (predicates_equal_p): Move forward; check that clauses are properly
18753         ordered.
18754         (or_predicates): Shortcut more cases.
18755         (edge_execution_predicate): Rewrite as...
18756         (set_cond_stmt_execution_predicate): ... this function; handle
18757         __builtin_constant_p.
18758         (set_switch_stmt_execution_predicate): New .
18759         (compute_bb_predicates): New.
18760         (will_be_nonconstant_predicate): Update TODO.
18761         (estimate_function_body_sizes): Use compute_bb_predicates
18762         and free them later, always try to estimate if stmt is constant.
18763         (estimate_time_after_inlining, estimate_size_after_inlining):
18764         Gracefully handle optimized out edges.
18765         (read_predicate): Fix off by one error.
18766
18767 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
18768
18769         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
18770
18771 2011-04-27  Xinliang David Li  <davidxl@google.com>
18772
18773         * tree-profile.c (init_ic_make_global_vars): Set
18774         tls attribute on ic vars.
18775         * coverage.c (coverage_end_function): Initialize
18776         function_list with zero.
18777
18778 2011-04-29  Richard Guenther  <rguenther@suse.de>
18779
18780         * builtins.c (fold_builtin_classify_type): Use integer_type_node
18781         for the type of the result.
18782         (fold_builtin_isascii): Likewise.
18783         (fold_builtin_toascii): Use integer_type_node where appropriate.
18784         (fold_builtin_logb): Likewise.
18785         (fold_builtin_frexp): Likewise.
18786         (fold_builtin_strstr): Likewise.
18787         (fold_builtin_strpbrk): Likewise.
18788         (fold_builtin_fputs): Likewise.
18789         (fold_builtin_sprintf): Likewise.
18790         (fold_builtin_snprintf): Likewise.
18791         (fold_builtin_printf): Likewise.
18792         (do_mpfr_remquo): Use a proper type for the assigned constant.
18793         (do_mpfr_lgamma_r): Likewise.
18794         * dwarf2out.c (resolve_one_addr): Use size_int.
18795         * except.c (init_eh): Likewise.
18796         (assign_filter_values): Use integer_type_node for filter values.
18797         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
18798         indices.
18799         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
18800         for EH region numbers.
18801         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
18802         for the shift amount.
18803
18804 2011-04-29  Richard Guenther  <rguenther@suse.de>
18805
18806         * expr.h (expand_shift): Rename to ...
18807         (expand_variable_shift): ... this.
18808         (expand_shift): Take a constant shift amount.
18809         * expmed.c (expand_shift): Rename to ...
18810         (expand_variable_shift): ... this.
18811         (expand_shift): New wrapper around expand_variable_shift.
18812         * expr.c (convert_move, emit_group_load_1, emit_group_store,
18813         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
18814         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
18815         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
18816         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
18817         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
18818         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
18819         emit_store_flag_1, emit_store_flag): Likewise.
18820         * builtins.c (expand_builtin_signbit): Likewise.
18821         * calls.c (load_register_parameters): Likewise.
18822         * function.c (assign_parm_setup_block): Likewise.
18823         * lower-subreg.c (resolve_shift_zext): Likewise.
18824         * optabs.c (widen_bswap, expand_abs_nojump,
18825         expand_one_cmpl_abs_nojump, expand_float): Likewise.
18826         * spu/spu.c (spu_expand_extv): Likewise.
18827         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
18828
18829 2011-04-29  Richard Guenther  <rguenther@suse.de>
18830
18831         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
18832         for the remapped region number.
18833         * predict.c (build_predict_expr): Use integer_type_node for the
18834         predict kind.
18835         * fold-const.c (fold_binary_loc): Use integer_type_node for
18836         the shift amount.  Use a proper type for the PLUS_EXPR operand.
18837
18838 2011-04-29  Michael Matz  <matz@suse.de>
18839
18840         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
18841         other trees that just builtins.
18842         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
18843
18844 2011-04-29  Richard Guenther  <rguenther@suse.de>
18845
18846         * tree-nested.c (get_trampoline_type): Use size_int.
18847         (get_nl_goto_field): Likewise.
18848         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
18849         for all indexes.
18850         (lower_eh_constructs_2): Likewise.
18851         (lower_resx): Likewise.
18852         (lower_eh_dispatch): Likewise.
18853         * tree-mudflap.c (mf_build_string): Use size_int.
18854         (mudflap_register_call): Use integer_type_node for the flag.
18855         (mudflap_enqueue_constant): Use size_int.
18856         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
18857         instead of rebuilding it.
18858
18859 2011-04-29  Richard Guenther  <rguenther@suse.de>
18860
18861         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
18862         Handle OBJ_TYPE_REF.
18863         (find_func_aliases_for_call): Use it more consistently.
18864
18865 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
18866
18867         * haifa-sched.c (last_nondebug_scheduled_insn): New.
18868         (rank_for_schedule): Use it.
18869         (schedule_block): Set it.
18870
18871 2011-04-28  David Li  <davidxl@google.com>
18872
18873         * tree.c (crc32_string): Use crc32_byte.
18874         (crc32_byte): New function.
18875         * tree.h (crc32_byte): New function.
18876         * gcov.c (read_graph_file): Handle new cfg_cksum.
18877         (read_count_file): Ditto.
18878         * profile.c (instrument_values): Ditto.
18879         (get_exec_counts): Ditto.
18880         (read_profile_edge_counts): Ditto.
18881         (compute_branch_probabilities): Ditto.
18882         (compute_value_histograms): Ditto.
18883         (branch_prob): Ditto.
18884         (end_branch_prob): Ditto.
18885         * coverage.c (read_counts_file): Ditto.
18886         (get_coverage_counts): Ditto.
18887         (tree_coverage_counter_addr): Ditto.
18888         (coverage_checksum_string): Ditto.
18889         (coverage_begin_output): Ditto.
18890         (coverage_end_function): Ditto.
18891         (build_fn_info_type): Ditto.
18892         (build_fn_info_value): Ditto.
18893         * libgcov.c (gcov_exit): Ditto.
18894         * gcov-dump.c (tag_function): Ditto.
18895         (compute_checksum): Remove.
18896
18897 2011-04-29  Alan Modra  <amodra@gmail.com>
18898
18899         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18900         unspec plus offset.  Tidy macho code.
18901
18902 2011-04-29  Martin Jambor  <mjambor@suse.cz>
18903
18904         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
18905         node instead of a decl.  Update all callers.
18906         * cgraph.h: Update declaration.
18907
18908 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
18909
18910         PR tree-optimization/48765
18911         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
18912         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
18913         to indicate if loop aware SLP is being used.  Scan the statements
18914         and update the vectorization factor according to the type of
18915         vectorization before statement analysis.
18916         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
18917         pass it to vect_analyze_loop_operations.
18918         (vectorizable_reduction): Set number of copies to 1 in case of pure
18919         SLP statement.
18920         * tree-vect-stmts.c (vectorizable_conversion,
18921         vectorizable_assignment, vectorizable_shift,
18922         vectorizable_operation, vectorizable_type_demotion,
18923         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
18924         Likewise.
18925         (vectorizable_condition): Move the check that it is not SLP
18926         vectorization before the number of copies check.
18927         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
18928         to vectorize the loop using SLP.
18929
18930 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
18931
18932         PR middle-end/48597
18933         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
18934         inline asm.
18935
18936 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
18937
18938         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
18939         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
18940         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18941         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18942         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
18943         linux*.h headers.
18944         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
18945         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18946         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18947         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18948         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
18949         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
18950         REG_NAME.
18951         * config/i386/linux.h (REG_NAME): Don't define.
18952         * config/i386/linux64.h (REG_NAME): Don't define.
18953         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
18954         Undefine before defining.
18955
18956 2011-04-28  Jan Hubicka  <jh@suse.cz>
18957
18958         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
18959         nonconstant_names array.
18960         (estimate_function_body_sizes): Build nonconstant_names array; handle
18961         BUILT_IN_CONSTANT_P.
18962
18963 2011-04-28  Richard Guenther  <rguenther@suse.de>
18964
18965         PR bootstrap/48804
18966         Revert
18967         2011-04-28  Richard Guenther  <rguenther@suse.de>
18968
18969         * tree-ssa-structalias.c (solve_constraints): Build succ graph
18970         as late as possible.
18971
18972 2011-04-28  Richard Guenther  <rguenther@suse.de>
18973
18974         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
18975         (debug_constraint): Do it here.
18976         (dump_constraints): And here.
18977         (rewrite_constraints): And here.
18978         (dump_constraint_edge): Remove.
18979         (dump_constraint_graph): Rewrite to produce DOT output.
18980         (solve_constraints): Build succ graph as late as possible.
18981         Dump constraint graphs before and after solving.
18982
18983 2011-04-28  Richard Guenther  <rguenther@suse.de>
18984
18985         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18986         New function split out from ...
18987         (find_func_aliases): ... here.  Call it.
18988         (find_func_aliases_for_call): Likewise.
18989
18990 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18991
18992         * internal-fn.h (internal_fn_name_array): Declare.
18993         (internal_fn_flags_array): Likewise.
18994
18995 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
18996
18997         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
18998         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
18999         Move from sse.md.
19000         (ssemodefsuffix): Remove.
19001         (ssevecmodesuffix): New mode attribute.
19002         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
19003         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
19004         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
19005         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
19006         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
19007         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
19008         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
19009         ssemodesuffix mode attribute.
19010         (float splitters): Use ssevecmodesuffix mode attribute.
19011         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
19012         (sseinsmode): Rename from avxvecmode.
19013         (avxsizesuffix): Rename from avxmodesuffix.
19014         (sseintvecmode): Rename from avxpermvecmode.
19015         (ssedoublevecmode): Rename from ssedoublesizemode.
19016         (ssehalfvecmode): Rename from avxhalfvecmode.
19017         (ssescalarmode): Rename from avxscalarmode.
19018         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
19019         templates for ssemodesuffix mode attribute.
19020         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
19021         mode attribute.
19022
19023         Adjust RTX patterns globally for renamed mode attributes.
19024
19025 2011-04-27  Jan Hubcika  <jh@suse.cz>
19026
19027         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
19028         * ipa-inline-analysis.c: Include alloc-pool.h.
19029         (edge_predicate_pool): New.
19030         (trye_predicate_p): New function
19031         (false_predicate_p): New function.
19032         (add_clause): Sanity check that false clauses are "optimized";
19033         never add clauses to predicate that is already known to be false.
19034         (and_predicate): Use flase_predicate_p.
19035         (evaulate_predicate): Rename to ...
19036         (evaluate_predicate): ... this one; update all callers; assert
19037         that false is not listed among possible truths.
19038         (dump_predicate): Use true_predicate_p.
19039         (account_size_time): Use false_predicate_p.
19040         (evaulate_conditions_for_edge): Rename to ...
19041         (evaluate_conditions_for_edge) ... this one.
19042         (edge_set_predicate): New function.
19043         (inline_edge_duplication_hook): Duplicate edge predicates.
19044         (inline_edge_removal_hook): Free edge predicates.
19045         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
19046         (dump_inline_summary): Update.
19047         (estimate_function_body_sizes): Set edge predicates.
19048         (estimate_calls_size_and_time): Handle predicates.
19049         (estimate_callee_size_and_time): Update.
19050         (remap_predicate): Add toplev_predicate; update comment.
19051         (remap_edge_predicates): New function.
19052         (inline_merge_summary): Compute toplev predicate; update.
19053         (read_predicate): New function.
19054         (read_inline_edge_summary): Use it.
19055         (inline_read_section): Likewise.
19056         (write_predicate): New function.
19057         (write_inline_edge_summary): Use it.
19058         (inline_write_summary): Likewise.
19059         (inline_free_summary): Free alloc pool and edge summary vec.
19060
19061 2011-04-27  Richard Guenther  <rguenther@suse.de>
19062
19063         * tree-ssa-structalias.c (changed_count): Remove.
19064         (changed): Use a bitmap.
19065         (unify_nodes): Adjust.
19066         (do_sd_constraint): Likewise.
19067         (do_ds_constraint): Likewise.
19068         (do_complex_constraint): Likewise.
19069         (solve_graph): Likewise.
19070
19071 2011-04-27  Jan Hubicka  <jh@suse.cz>
19072
19073         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
19074
19075 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
19076
19077         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
19078         (avx_vperm2f128_*_operand): Ditto.
19079         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
19080         Use avx_vpermilp_parallel in insn condition.
19081         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
19082         Use avx_vperm2f128_parallel in insn condition.
19083
19084 2011-04-27  Richard Guenther  <rguenther@suse.de>
19085
19086         * Makefile.in (tree-ssa-structalias.o): Remove
19087         gt-tree-ssa-structalias.h dependency.
19088         (GTFILES): Remove tree-ssa-structalias.c.
19089         * tree.c (allocate_decl_uid): New function.
19090         (make_node_stat): Use it.
19091         (copy_node_stat): Likewise.
19092         * tree.h (allocate_decl_uid): Declare.
19093         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
19094         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
19095         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
19096         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
19097         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
19098         (struct heapvar_map): Likewise.
19099         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
19100         heapvar_insert): Likewise.
19101         (make_heapvar_for): Rename to ...
19102         (make_heapvar): ... this.  Simplify.
19103         (fake_var_decl_obstack): New global var.
19104         (build_fake_var_decl): New function.
19105         (make_constraint_from_heapvar): Adjust.
19106         (handle_lhs_call): Likewise.
19107         (create_function_info_for): Likewise.
19108         (intra_create_variable_infos): Likewise.
19109         (init_alias_vars): Allocate fake_var_decl_obstack.
19110         (init_alias_heapvars, delete_alias_heapvars): Remove.
19111         (compute_points_to_sets): Do not call init_alias_heapvars.
19112         (ipa_pta_execute): Likewise.
19113         (delete_points_to_sets): Free fake_var_decl_obstack.
19114
19115 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19116
19117         * config/spu/divmovti4.c (union qword_UTItype): New data type.
19118         (si_from_UTItype, si_to_UTItype): New functions.
19119         (__udivmodti4): Use them to implement type-punning.
19120         * config/spu/multi3.c (union qword_TItype): New data type.
19121         (si_from_TItype, si_to_TItype): New functions.
19122         (__multi3): Use them to implement type-punning.
19123
19124 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19125
19126         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
19127
19128 2011-04-27  Jan Hubicka  <jh@suse.cz>
19129
19130         * ipa-prop.c (function_insertion_hook_holder): New holder.
19131         (ipa_add_new_function): New function.
19132         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
19133         Register/deregister holder.
19134
19135 2011-04-27  Richard Guenther  <rguenther@suse.de>
19136
19137         PR tree-optimization/48772
19138         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
19139
19140 2011-04-27  Richard Guenther  <rguenther@suse.de>
19141
19142         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
19143         TARGET_MEM_REF handling.
19144
19145 2011-04-27  Nick Clifton  <nickc@redhat.com>
19146
19147         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
19148         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
19149         (REG_CLASS_NAMES): Likewise.
19150         (REG_CLASS_CONTENTS): Likewise.
19151         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19152         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
19153         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
19154         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
19155         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
19156         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
19157         duplicate register classes.
19158         (frv_class_likely_spilled_p): Likewise.
19159         (frv_register_move_cost): Likewise.
19160
19161         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
19162         end of the regno_reg_class array.
19163
19164 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
19165
19166         PR c/48742
19167         * c-typeck.c (build_binary_op): Don't wrap arguments if
19168         int_operands is true.
19169
19170 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
19171
19172         PR target/48767
19173         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
19174         targetm.calls.must_pass_in_stack for void type.
19175
19176 2011-04-26  Jan Hubicka  <jh@suse.cz>
19177
19178         * cgraphbuild.c (build_cgraph_edges): Update call
19179         of cgraph_create_edge and cgraph_create_indirect_edge.
19180         * cgraph.c (cgraph_create_edge_including_clones,
19181         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
19182         cgraph_update_edges_for_call_stmt_node): Do not take nest
19183         argument; do not initialize call_stmt_size/time.
19184         (dump_cgraph_node): Do not dump nest.
19185         (cgraph_clone_edge): Do not take loop_nest argument;
19186         do not propagate it; do not clone call_stmt_size/time.
19187         (cgraph_clone_node): Likewise.
19188         (cgraph_create_virtual_clone): Update.
19189         * cgraph.h (struct cgraph_edge): Remove
19190         call_stmt_size/call_stmt_time/loop_nest.
19191         (cgraph_create_edge, cgraph_create_indirect_edge,
19192         cgraph_create_edge_including_clones, cgraph_clone_node): Update
19193         prototype.
19194         * tree-emutls.c (gen_emutls_addr): Update.
19195         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
19196         loop_nest; handle indirect calls, too.
19197         (clone_inlined_nodes): Do not care about updating inline summaries.
19198         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
19199         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
19200         stream call_stmt_size/call_stmt_time/loop_nest.
19201         * ipa-inline.c (edge_badness): Update.
19202         (ipa_inline): dump summaries after inlining.
19203         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
19204         New.
19205         (inline_edge_summary): New function.
19206         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
19207         (inline_edge_removal_hook): Handle edge summaries.
19208         (inline_edge_duplication_hook): New hook.
19209         (inline_summary_alloc): Alloc hooks.
19210         (initialize_growth_caches): Do not register removal hooks.
19211         (free_growth_caches); Do not free removal hook.
19212         (dump_inline_edge_summary): New function.
19213         (dump_inline_summary): Use it.
19214         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
19215         (inline_update_callee_summaries): New function.
19216         (inline_merge_summary): Use it.
19217         (do_estimate_edge_time, do_estimate_edge_growth): Update.
19218         (read_inline_edge_summary): New function.
19219         (inline_read_section): Use it.
19220         (write_inline_edge_summary): New function.
19221         (inline_write_summary): Use it.
19222         (inline_free_summary): Free edge new holders.
19223         * tree-inline.c (copy_bb): Update.
19224
19225 2011-04-26  Jason Merrill  <jason@redhat.com>
19226
19227         * tree-eh.c (lower_try_finally_switch): Create the label along with
19228         the CASE_LABEL_EXPR.
19229
19230 2011-04-26  David S. Miller  <davem@davemloft.net>
19231             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19232
19233         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
19234         * configure: Regenerate.
19235
19236 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19237
19238         PR target/48258
19239         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
19240         reduction.
19241         (VEC_reduc): New code iterator and splitters for vector reduction.
19242         (VEC_reduc_name): Ditto.
19243         (VEC_reduc_rtx): Ditto.
19244         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
19245         (reduc_<VEC_reduc_name>_v4sf): Ditto.
19246
19247         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
19248         support for extracting SF on VSX.
19249
19250         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
19251         generating xscvspdp.
19252         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
19253         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
19254         double add, minimum, maximum vector reduction.
19255         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
19256         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
19257         optimize double vector reduction.
19258         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
19259
19260 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
19261
19262         * config/fr30/fr30.h (inhibit_libc): Don't define.
19263         * config/m32r/m32r-protos.h: Correct comment.
19264         * config/v850/v850.h (GHS_default_section_names,
19265         GHS_current_section_names): Use tree, not union tree_node *.
19266
19267 2011-04-26  Xinliang David Li  <davidxl@google.com>
19268
19269         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
19270         * c-family/c-opts.c (c_common_handle_option): Set
19271         warn_maybe_uninitialized.
19272         * opts.c (common_handle_option): Ditto.
19273         * common.opt:  New option.
19274         * tree-ssa.c (warn_uninit): Add one more parameter.
19275         (warn_uninitialized_var): Pass warning code.
19276         * tree-flow.h: Interface change.
19277
19278 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19279
19280         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
19281         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
19282         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
19283
19284 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19285
19286         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
19287         * config/mips/mips.opt (mmips-tfile): Remove.
19288
19289         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
19290         mips-tdump reference to ...
19291         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
19292         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
19293         reference by Tru64 UNIX.
19294
19295 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
19296
19297         PR debug/48768
19298         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
19299         is error_mark_node, set value to NULL.
19300
19301         PR tree-optimization/48734
19302         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
19303         if return value from maybe_fold_*_comparsions isn't something
19304         the code is prepared to handle.
19305
19306 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
19307
19308         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
19309         mode check.
19310         (ext_QIreg_nomode_operands): Remove.
19311         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
19312         (*andsi_1): Ditto.
19313         (*andhi_1): Ditto.
19314
19315 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
19316
19317         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
19318
19319 2011-04-26  Richard Guenther  <rguenther@suse.de>
19320
19321         * c-typeck.c (build_unary_op): Do not expand array-refs via
19322         pointer arithmetic.  Only adjust qualifiers for function types.
19323
19324 2011-04-26  Richard Guenther  <rguenther@suse.de>
19325
19326         PR middle-end/48694
19327         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
19328         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
19329         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
19330         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
19331
19332 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
19333
19334         * doc/extend.texi: Document __underlying_type.
19335
19336 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
19337
19338         * config/rs6000/titan.md (automata_option "progress"): Remove.
19339
19340 2011-04-25  Jeff Law  <law@redhat.com>
19341
19342         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
19343
19344 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
19345
19346         * system.h (ENUM_BITFIELD): Remove.
19347
19348 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
19349             Eric Botcazou  <ebotcazou@adacore.com>
19350
19351         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
19352         for STORE_FLAG_VALUE==-1 case.
19353
19354 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
19355
19356         PR target/43804
19357         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
19358         LEGITIMATE_PIC_OPERAND_P.
19359
19360 2011-04-24  Jan Hubicka  <jh@suse.cz>
19361
19362         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
19363         WPA hack.
19364         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
19365         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
19366         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
19367         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
19368         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
19369         Sanity check predicate length.
19370         (remap_predicate): Likewise; sanity check jump functions.
19371         (inline_read_section, inline_write_summary): Sanity check
19372         predicate length.
19373
19374 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
19375
19376         PR other/48748
19377         * doc/extend.texi (Type Traits): Document __is_standard_layout,
19378         __is_literal_type, and __is_trivial; update throughout about
19379         possibly cv-qualified void types.
19380
19381 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19382
19383         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
19384         testsuite and make it version agnostic.
19385
19386 2011-04-22  Jan Hubicka  <jh@suse.cz>
19387
19388         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
19389
19390 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
19391
19392         PR c/48685
19393         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
19394         to VOID_TYPE even around MODIFY_EXPR.
19395
19396 2011-04-22  Mike Stump  <mikestump@comcast.net>
19397
19398         * gensupport.c (read_md_rtx): Fix typo in comment.
19399         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
19400         comment.
19401
19402 2011-04-22  Jan Hubicka  <jh@suse.cz>
19403
19404         * gengtype.c (open_base_files): Add ipa-inline.h include.
19405         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
19406         ipa-prop.c; update all uses.
19407         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
19408         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
19409         merge summary of inlined function into former caller.
19410         * ipa-inline.c (max_benefit): Remove.
19411         (edge_badness): Compensate for removal of benefits.
19412         (update_caller_keys): Use
19413         reset_node_growth_cache/reset_edge_growth_cache.
19414         (update_callee_keys): Likewise.
19415         (update_all_callee_keys): Likewise.
19416         (inline_small_functions): Do not collect max_benefit; do not reset
19417         estimated_growth; call free_growth_caches and initialize_growth_caches.
19418         * ipa-inline.h (struct condition, type clause_t, struct predicate,
19419         struct size_time_entry): New structures.
19420         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
19421         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
19422         and estimated_growth.
19423         (edge_growth_cache_entry): New structure.
19424         (node_growth_cache, edge_growth_cache): New global vars.
19425         (estimate_growth): Turn into inline.
19426         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
19427         initialize_growth_caches, free_growth_caches): Declare.
19428         (estimate_edge_growth): Rewrite.
19429         (estimate_edge_time): Implement as inline cache lookup.
19430         (reset_node_growth_cache, reset_edge_growth_cache): New inline
19431         functions.
19432         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
19433         (NUM_CONDITIONS): New constant.
19434         (predicate_conditions): New enum.
19435         (IS_NOT_CONSTANT): New constant.
19436         (edge_removal_hook_holder): New var.
19437         (node_growth_cache, edge_growth_cache): New global vars.
19438         (true_predicate, single_cond_predicate, false_predicate,
19439         not_inlined_predicate, add_condition, add_clause, and_predicates,
19440         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
19441         dump_clause, dump_predicate, account_size_time,
19442         evaulate_conditions_for_edge): New functions.
19443         (inline_summary_alloc): Move to heap.
19444         (inline_node_removal_hook): Clear condition and entry vectors.
19445         (inline_edge_removal_hook): New function.
19446         (initialize_growth_caches, free_growth_caches): New function.
19447         (dump_inline_summary): Update.
19448         (edge_execution_predicate): New function.
19449         (will_be_nonconstant_predicate): New function.
19450         (estimate_function_body_sizes): Compute BB and constantness predicates.
19451         (compute_inline_parameters): Do not clear estimated_growth.
19452         (estimate_edge_size_and_time): New function.
19453         (estimate_calls_size_and_time): New function.
19454         (estimate_callee_size_and_time): New function.
19455         (remap_predicate): New function.
19456         (inline_merge_summary): New function.
19457         (do_estimate_edge_time): New function based on...
19458         (estimate_edge_time): ... this one.
19459         (do_estimate_edge_growth): New function.
19460         (do_estimate_growth): New function based on....
19461         (estimate_growth): ... this one.
19462         (inline_analyze_function): Analyze after deciding on jump functions.
19463         (inline_read_section): New function.
19464         (inline_read_summary): Use it.
19465         (inline_write_summary): Write all the new data.
19466         * ipa-prop.c (ipa_get_param_decl_index): Export.
19467         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
19468         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
19469         Declare.
19470         (ipa_get_lattice): Move here from ipa-cp.c
19471         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
19472         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
19473         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
19474         cgraph_edge_inlinable_p): Remove.
19475         * cgraphunit.c: Include ipainline.h
19476         (cgraph_process_new_functions): Update call of
19477         compute_inline_parameters.
19478
19479 2011-04-22  Richard Guenther  <rguenther@suse.de>
19480
19481         * tree.c (build_int_cst): Properly create canonicalized integer
19482         constants.
19483         (build_int_cst_type): Remove scary comments.
19484
19485 2011-04-22  Xinliang David Li  <davidxl@google.com>
19486
19487         * toplev.c (process_options): Enable -Werror=coverage-mismatch
19488         by default when -Wno-error is not specified.
19489         * opts-global.c (decode_options): Remove call to
19490         control_warning_options.
19491
19492 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19493
19494         PR tree-optimization/48717
19495         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
19496         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
19497
19498 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
19499
19500         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
19501         definition where used.
19502
19503 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
19504
19505         PR c/48716
19506         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
19507         TREE_STATIC variables declared inside of some OpenMP construct.
19508
19509 2011-04-22  Martin Jambor  <mjambor@suse.cz>
19510
19511         PR middle-end/48585
19512         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
19513
19514 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
19515
19516         PR c/36750
19517         * c-typeck.c (pop_init_level): Do not warn about initializing
19518         with ` = {0}'.
19519
19520 2011-04-22  Alan Modra  <amodra@gmail.com>
19521
19522         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
19523         when returning call_cookie.
19524         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
19525         pointers, to functions with no more vector args than the current
19526         function, and some non-local calls for ABI_V4.
19527         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
19528         sibcall_nonlocal_aix64): Combine to ..
19529         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
19530         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
19531         (sibcall_value_nonlocal_aix<mode>): ..likewise.
19532         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
19533         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
19534         operand.
19535         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
19536         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
19537         sibcall_value_symbolic_64): Delete.
19538
19539 2011-04-21  Xinliang David Li  <davidxl@google.com>
19540
19541         * cgraph.h: Remove pid.
19542         * cgraph.c: Remove pid.
19543         * value-prof.c (init_node_map): New function.
19544         (del_node_map): New function.
19545         (find_func_by_funcdef_no): New function.
19546         (gimple_ic_transform): Call new function.
19547         * cgraphunit.c (cgraph_finalize_function): Remove pid.
19548         * function.c (get_last_funcdef_no): New function.
19549         * function.h (get_last_funcdef_no): New function.
19550         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
19551         to libgcov function.
19552         (tree-profiling): Call node map init and delete function.
19553
19554 2011-04-21  Ian Lance Taylor  <iant@google.com>
19555
19556         * godump.c (go_format_type): Use exported Go name for anonymous
19557         field name.
19558
19559 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19560
19561         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
19562         Call builtin_function_type_list instead of builtin_function_type.
19563         (UNARY, BINARY, TRINARY, QUAD): Likewise.
19564
19565 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19566
19567         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
19568         build_function_type_list instead of build_function_type.
19569         Delete variable `endlink'.
19570
19571 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19572
19573         * config/s390/s390.c (s390_init_builtins): Call
19574         build_function_type_list instead of build_function_type.
19575
19576 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
19577
19578         * config/ia64/ia64.c (ia64_init_builtins): Call
19579         build_function_type_list instead of builtin_function_type.
19580
19581 2011-04-21  Easwaran Raman  <eraman@google.com>
19582
19583         * cfgexpand.c (stack_var): Remove OFFSET...
19584         (add_stack_var): ...and its reference here...
19585         (expand_stack_vars): ...and here.
19586         (stack_var_cmp): Sort by descending order of size.
19587         (partition_stack_vars): Change heuristic.
19588         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
19589         (dump_stack_var_partition): Add newline after each partition.
19590
19591 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
19592             Jeff Law  <law@redhat.com>
19593
19594         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
19595         * gengtype.c (matching_file_name_substitute): Likewise.
19596
19597 2011-04-21  Richard Guenther  <rguenther@suse.de>
19598
19599         PR lto/48703
19600         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
19601
19602 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
19603
19604         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
19605
19606 2011-04-21  Richard Guenther  <rguenther@suse.de>
19607
19608         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
19609         file name.
19610
19611 2011-04-21  Richard Guenther  <rguenther@suse.de>
19612
19613         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
19614         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
19615         Use DECL_P, not SSA_VAR_P.
19616         (ptr_derefs_may_alias_p): Likewise.
19617         (ptr_deref_may_alias_ref_p_1): Likewise.
19618         (decl_refs_may_alias_p): Likewise.
19619         (refs_may_alias_p_1): Likewise.
19620         (ref_maybe_used_by_call_p_1): Likewise.
19621         (call_may_clobber_ref_p_1): Likewise.
19622         (indirect_ref_may_alias_decl_p): Assume indirect refrences
19623         are either MEM_REF or TARGET_MEM_REF.
19624         (indirect_refs_may_alias_p): Likewise.
19625         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
19626         for MEM_EXPR of indirect calls.
19627
19628 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19629
19630         * vmsdbgout.c (write_srccorr): Compute file length from the string.
19631         (dst_file_info_struct): Remove flen field.
19632         (lookup_filename): Remove code that set flen field.
19633
19634 2011-04-21  Tristan Gingold  <gingold@adacore.com>
19635
19636         * config/ia64/ia64.c (ia64_start_function): Add a guard.
19637
19638 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
19639
19640         PR target/48708
19641         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
19642         vec_extract and vec_concat for non-SSE4_1 targets.
19643
19644 2011-04-21  Richard Guenther  <rguenther@suse.de>
19645
19646         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
19647         return statements.
19648
19649 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19650
19651         * config/i386/cygming.h (union tree_node, TREE): Don't define or
19652         undefine.
19653         (FILE): Don't undefine.
19654
19655 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
19656
19657         * config/alpha/alpha.c (struct machine_function): Use rtx, not
19658         struct rtx_def *.
19659         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
19660         struct rtx_def *.
19661         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
19662         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
19663         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
19664         rtx_def *.
19665         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
19666         definitions where used.
19667         * config/microblaze/microblaze.h (struct microblaze_args): Use
19668         rtx, not struct rtx_def *.
19669         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
19670         rtx_def *.
19671         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
19672         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
19673         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
19674         not struct rtx_def *.
19675         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
19676         struct rtx_def *.
19677         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
19678         rtx_def *.
19679         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
19680
19681 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19682
19683         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
19684         operand_equal_p to compare DR_BASE_ADDRESSes.
19685         (vect_check_interleaving): Likewise.
19686
19687 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19688
19689         PR target/46329
19690         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
19691         for all Neon struct constants.
19692
19693 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19694
19695         * target.def (legitimate_constant_p): New hook.
19696         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
19697         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
19698         * doc/tm.texi: Regenerate.
19699         * hooks.h (hook_bool_mode_rtx_true): Declare.
19700         * hooks.c (hook_bool_mode_rtx_true): Define.
19701         * system.h (LEGITIMATE_CONSTANT_P): Poison.
19702         * calls.c (precompute_register_parameters): Replace uses of
19703         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
19704         (emit_library_call_value_1): Likewise.
19705         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
19706         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
19707         * ira-costs.c (scan_one_insn): Likewise.
19708         * recog.c (general_operand, immediate_operand): Likewise.
19709         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
19710         * reload1.c (init_eliminable_invariants): Likewise.
19711
19712         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
19713         mode argument.
19714         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
19715         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
19716         argument.
19717         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19718         * config/alpha/predicates.md (input_operand): Update call to
19719         alpha_legitimate_constant_p.
19720
19721         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
19722         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
19723         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
19724         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19725         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
19726         (arm_legitimate_constant_p): New functions.
19727         (arm_cannot_force_const_mem): Make static.
19728
19729         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
19730
19731         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
19732         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
19733         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
19734         instead of bfin_legitimate_constant_p.
19735         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
19736         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19737
19738         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
19739
19740         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
19741
19742         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
19743         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
19744         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19745         (frv_legitimate_constant_p): Make static.  Add a mode argument.
19746
19747         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
19748         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
19749         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
19750
19751         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
19752         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
19753         * config/i386/i386.c (legitimate_constant_p): Rename to...
19754         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
19755         argument.
19756         (ix86_cannot_force_const_mem): Update accordingly.
19757         (ix86_legitimate_address_p): Likewise.
19758         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19759         * config/i386/i386.md: Update commentary.
19760
19761         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
19762         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
19763         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19764         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
19765
19766         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
19767
19768         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
19769         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
19770         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19771         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
19772
19773         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
19774         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
19775         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
19776
19777         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
19778         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19779         (m32r_legitimate_constant_p): New function.
19780
19781         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
19782         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
19783         LEGITIMATE_CONSTANT_P.
19784         (LEGITIMATE_CONSTANT_P): Delete.
19785         * config/m68k/m68k.c (m68k_expand_prologue): Call
19786         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
19787         (m68k_legitimate_constant_p): New function.
19788         * config/m68k/m68k.md: Update comments.
19789
19790         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
19791         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19792         (mcore_legitimate_constant_p): New function.
19793
19794         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
19795         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
19796         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
19797         Add a mode argument.
19798         (mep_legitimate_address): Update accordingly.
19799         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19800
19801         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
19802         Delete.
19803         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
19804         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
19805         static.  Check OP's mode for VOIDmode.
19806         (microblaze_legitimate_constant_p): New function.
19807         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19808
19809         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
19810         * config/mips/mips.c (mips_legitimate_constant_p): New function.
19811         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
19812         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19813         * config/mips/predicates.md: Update comments.
19814
19815         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
19816         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
19817         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19818         (mmix_legitimate_constant_p): Make static, return a bool, and take
19819         a mode argument.
19820         (mmix_print_operand_address): Update accordingly.
19821
19822         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
19823         Delete.
19824         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
19825         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
19826         static.  Add a mode argument.
19827         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19828
19829         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
19830
19831         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
19832         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19833         (pa_legitimate_constant_p): New function.
19834
19835         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
19836
19837         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
19838         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19839         (pdp11_legitimate_constant_p): New function.
19840
19841         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
19842         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19843         (rs6000_legitimate_constant_p): New function.
19844
19845         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
19846         (rx_legitimate_constant_p): ...this.
19847         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
19848         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
19849         (rx_legitimate_constant_p): ...this.
19850         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19851         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
19852
19853         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
19854         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
19855         * config/s390/s390.c (legitimate_constant_p): Rename to...
19856         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
19857         and add a mode argument.
19858         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19859
19860         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
19861
19862         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
19863         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19864         (sh_legitimate_constant_p): New function.
19865
19866         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
19867         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
19868         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19869         (legitimate_constant_p): Rename to...
19870         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
19871         argument.
19872         (constant_address_p): Update accordingly.
19873
19874         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
19875         argument and return a bool.
19876         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
19877         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19878         (spu_legitimate_constant_p): Add a mode argument and return a bool.
19879         (spu_rtx_costs): Update accordingly.
19880         * config/spu/predicates.md (vec_imm_operand): Likewise.
19881
19882         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
19883
19884         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
19885         * config/v850/v850.c (v850_legitimate_constant_p): New function.
19886         (TARGET_LEGITIMATE_CONSTANT_P): Define.
19887
19888         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
19889         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
19890         * config/vax/vax.c (legitimate_constant_p): Likewise.
19891
19892         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
19893         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
19894         (xtensa_legitimate_constant_p): New function.
19895
19896 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
19897
19898         * target.def (cannot_force_const_mem): Add a mode argument.
19899         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
19900         * doc/tm.texi: Regenerate.
19901         * hooks.h (hook_bool_mode_rtx_false): Declare.
19902         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
19903         (hook_bool_mode_const_rtx_true): Likewise.
19904         (hook_bool_mode_rtx_false): New function.
19905         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
19906         to be non-VOID.  Update call to cannot_force_const_mem.
19907         (find_reloads): Update accordingly.
19908         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
19909         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
19910         argument.
19911         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
19912         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
19913         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
19914         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
19915         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
19916         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
19917         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
19918         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19919         (m68k_cannot_force_const_mem): ...this new function.
19920         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
19921         argument.
19922         (mips_const_insns, mips_legitimize_const_move): Update calls.
19923         (mips_secondary_reload_class): Likewise.
19924         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
19925         (pa_cannot_force_const_mem): ...this new function.
19926         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
19927         (rs6000_cannot_force_const_mem): ...this new function.
19928         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
19929         argument.
19930         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
19931         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
19932         to...
19933         (xtensa_cannot_force_const_mem): ...this new function.
19934
19935 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19936
19937         * config/mips/mips.c (mips16_build_function_stub): Call
19938         build_function_type_list instead of build_function_type.
19939         (mips16_build_call_stub): Likewise.
19940
19941 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19942
19943         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
19944         instead of build_function_type.
19945
19946 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
19947
19948         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
19949         instead of build_function_type.
19950
19951 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
19952
19953         PR target/48678
19954         * config/i386/i386.md (insv): Change operand 0 constraint to
19955         "register_operand".  Change operand 1 and 2 constraint to
19956         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
19957         * config/i386/sse.md (sse4_1_pinsrb): Export.
19958         (sse2_pinsrw): Ditto.
19959         (sse4_1_pinsrd): Ditto.
19960         (sse4_1_pinsrq): Ditto.
19961         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
19962         * config/i386/i386.c (ix86_expand_pinsr): New.
19963
19964 2011-04-20  Easwaran Raman  <eraman@google.com>
19965
19966         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
19967         containing union type only with -fstrict-aliasing.
19968
19969 2011-04-20  Jim Meyering  <meyering@redhat.com>
19970
19971         Remove useless if-before-free tests.
19972         * calls.c (expand_call, save_area): Likewise.
19973         * cfgcleanup.c (try_forward_edges): Likewise.
19974         * collect2.c (collect_execute): Likewise.
19975         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
19976         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
19977         * coverage.c (coverage_checksum_string): Likewise.
19978         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
19979         * cselib.c (cselib_init): Likewise.
19980         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
19981         (df_set_clean_cfg): Likewise.
19982         * function.c (free_after_compilation): Likewise.
19983         * gcc.c (do_spec_1, main): Likewise.
19984         * gcov.c (create_file_names): Likewise.
19985         * gensupport.c (identify_predicable_attribute): Likewise.
19986         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
19987         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
19988         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
19989         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
19990         * ipa-pure-const.c (local_pure_const): Likewise.
19991         * ipa-reference.c (propagate): Likewise.
19992         * ira-costs.c (free_ira_costs): Likewise.
19993         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
19994         * matrix-reorg.c (mat_free): Likewise.
19995         * prefix.c (get_key_value): Likewise.
19996         * profile.c (compute_value_histograms): Likewise.
19997         * reload1.c (free_reg_equiv): Likewise.
19998         * sched-deps.c (free_deps): Likewise.
19999         * sel-sched-ir.c (fence_clear): Likewise.
20000         * sese.c (set_rename, if_region_set_false_region): Likewise.
20001         * tree-data-ref.c (free_rdg): Likewise.
20002         * tree-eh.c (lower_try_finally): Likewise.
20003         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
20004         * tree-ssa-live.c (delete_var_map): Likewise.
20005         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
20006         * tree-ssa-pre.c (phi_trans_add): Likewise.
20007
20008 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
20009
20010         PR tree-optimization/48611
20011         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
20012         beyond ERT_MUST_NOT_THROW region.
20013
20014 2011-04-20  Catherine Moore  <clm@codesourcery.com>
20015
20016         * config/mips/mips.opt (mfix-24k): New.
20017         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
20018         * config/mips/mips.md (length): Increase by 4 for stores if
20019         fixing 24K errata.
20020         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
20021         all noreorder if fixing 24K errata.
20022         * doc/invoke.texi: Document mfix-24k.
20023
20024 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
20025
20026         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
20027         quad-word modes, reduce to 9-bit index range when above 1016 limit.
20028
20029 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20030
20031         * config/arm/arm.c (arm_gen_constant): Move movw support ....
20032         (const_ok_for_op): ... to here.
20033
20034 2011-04-20  Kai Tietz  <ktietz@redhat.com>
20035
20036         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
20037         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
20038
20039 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
20040
20041         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
20042
20043 2011-04-20  Richard Guenther  <rguenther@suse.de>
20044
20045         PR tree-optimization/47892
20046         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
20047         are if-convertible.
20048
20049 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
20050
20051         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
20052
20053 2011-04-20  Tristan Gingold  <gingold@adacore.com>
20054
20055         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
20056
20057 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
20058
20059         PR target/18145
20060
20061         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
20062         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
20063         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
20064         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
20065         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
20066
20067         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
20068         New prototype.
20069
20070         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
20071         (avr_asm_named_section, avr_asm_output_aligned_common,
20072         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
20073         New functions to update...
20074         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
20075         (avr_asm_init_sections): Overwrite section callbacks for
20076         data_section, bss_section.
20077         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
20078         from here to...
20079         (avr_file_end): ...here.
20080
20081 2011-04-20  Richard Guenther  <rguenther@suse.de>
20082
20083         PR middle-end/48695
20084         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
20085         objects and types here.  Adjust for their offset before comparing.
20086
20087 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20088
20089         * tree-vect-stmts.c (vectorizable_store): Only chain one related
20090         statement per copy.
20091
20092 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
20093
20094         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
20095         (GIMPLE_H): Include $(INTERNAL_FN_H).
20096         (OBJS-common): Add internal-fn.o.
20097         (internal-fn.o): New rule.
20098         * internal-fn.def: New file.
20099         * internal-fn.h: Likewise.
20100         * internal-fn.c: Likewise.
20101         * gimple.h: Include internal-fn.h.
20102         (GF_CALL_INTERNAL): New gf_mask.
20103         (gimple_statement_call): Put fntype into a union with a new
20104         internal_fn field.
20105         (gimple_build_call_internal): Declare.
20106         (gimple_build_call_internal_vec): Likewise.
20107         (gimple_call_same_target_p): Likewise.
20108         (gimple_call_internal_p): New function.
20109         (gimple_call_internal_fn): Likewise.
20110         (gimple_call_fntype): Return null for internal calls.
20111         (gimple_call_set_fntype): Assert that the function is not internal.
20112         (gimple_call_set_fn): Likewise.
20113         (gimple_call_set_fndecl): Likewise.
20114         (gimple_call_set_internal_fn): New function.
20115         (gimple_call_addr_fndecl): Handle null functions.
20116         (gimple_call_return_type): Likewise null types.
20117         * gimple.c (gimple_build_call_internal_1): New function.
20118         (gimple_build_call_internal): Likewise.
20119         (gimple_build_call_internal_vec): Likewise.
20120         (gimple_call_same_target_p): Likewise.
20121         (gimple_call_flags): Handle calls to internal functions.
20122         (gimple_call_fnspec): New function.
20123         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
20124         (gimple_has_side_effects): Handle null functions.
20125         (gimple_rhs_has_side_effects): Likewise.
20126         (gimple_call_copy_skip_args): Handle calls to internal functions.
20127         * cfgexpand.c (expand_call_stmt): Likewise.
20128         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
20129         * gimple-fold.c (gimple_fold_call): Handle null functions.
20130         (gimple_fold_stmt_to_constant_1): Don't fold
20131         calls to internal functions.
20132         * gimple-low.c (gimple_check_call_args): Handle calls to internal
20133         functions.
20134         * gimple-pretty-print.c (dump_gimple_call): Likewise.
20135         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
20136         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
20137         (do_warn_unused_result): Likewise.
20138         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
20139         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
20140         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
20141         the target of a call.
20142         (initialize_hash_element): Update accordingly.
20143         (hashable_expr_equal_p): Use gimple_call_same_target_p.
20144         (iterative_hash_hashable_expr): Handle calls to internal functions.
20145         (print_expr_hash_elt): Likewise.
20146         * tree-ssa-pre.c (can_value_number_call): Likewise.
20147         (eliminate): Handle null functions.
20148         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
20149         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
20150         (find_func_aliases): Likewise.
20151         * value-prof.c (gimple_ic_transform): Likewise.
20152         (gimple_indirect_call_to_profile): Likewise.
20153         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20154         * lto-streamer-out.c (output_gimple_stmt): Likewise.
20155
20156 2011-04-19  Jan Hubicka  <jh@suse.cz>
20157
20158         * ipa-inline-transform.c (save_inline_function_body): Add comments.
20159         * ipa-inline.c (inline_small_functions): Compute summaries first,
20160         populate heap later.
20161
20162 2011-04-19  Jan Hubicka  <jh@suse.cz>
20163
20164         * cgraph.h (save_inline_function_body): Remove.
20165         * ipa-inline-transform.c: New file, broke out of...
20166         * ipa-inline.c: ... this one; Update toplevel comment.
20167         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
20168         make global.
20169         (update_noncloned_frequencies): Move to ipa-inline-transform.c
20170         (cgraph_mark_inline_edge): Rename to inline_call; move to
20171         ipa-inline-transform.c.
20172         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
20173         move to ipa-inline-transform.c
20174         (recursive_inlining, inline_small_functions, flatten_function,
20175         ipa_inline, inline_always_inline_functions,
20176         early_inline_small_functions): Update.
20177         (inline_transform): Move to ipa-inline-transform.c.
20178         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
20179         Declare.
20180         * Makefile.in (ipa-inline-transform.o): New file.
20181         * cgraphunit.c (save_inline_function_body): Move to
20182         ipa-inline-transform.c
20183
20184 2011-04-19  DJ Delorie  <dj@redhat.com>
20185
20186         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
20187         registers if we already know there aren't any.
20188         (m32c_emit_epilogue): Don't emit a barrier here.
20189         (m32c_emit_eh_epilogue): Likewise.
20190         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
20191         operands at expand time.
20192         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
20193         int" wchar type.
20194         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
20195         duplicates.  Provide aliases instead.
20196         * config/m32c/prologue.md (eh_return): Emit a barrier here.
20197         (eh_epilogue): Add a "(return)" here as a hint to other parts of
20198         the compiler.
20199
20200 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
20201
20202         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
20203         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
20204         (general_or_i64_p, sparc_register_move_cost): New function.
20205
20206 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20207
20208         * doc/install.texi (Configuration, --enable-threads): Remove mach.
20209         Add lynx, mipssde.  Sort table.
20210
20211 2011-04-19  Xinliang David Li  <davidxl@google.com>
20212
20213         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
20214         not negative.
20215
20216 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
20217
20218         PR target/48678
20219         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
20220         is a SUBREG with non-MODE_INT mode inside of it.
20221
20222 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20223
20224         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
20225         also according to actual contants.
20226         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
20227         (gimple_fold_call): Use it.
20228         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
20229
20230 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20231
20232         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
20233         non-pointer assignments.
20234
20235 2011-04-19  Martin Jambor  <mjambor@suse.cz>
20236
20237         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
20238         account anc_offset and otr_type from the indirect edge info.
20239         * ipa-prop.c (get_ancestor_addr_info): New function.
20240         (compute_complex_ancestor_jump_func): Assignment analysis moved to
20241         get_ancestor_addr_info, call it.
20242         (ipa_note_param_call): Do not initialize information about polymorphic
20243         calls, return the indirect call graph edge.  Remove the last
20244         parameter, adjust all callers.
20245         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
20246         parameters.  Initialize polymorphic information in the indirect edge.
20247
20248 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20249
20250         PR lto/48148
20251         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
20252         the types if they have different enumeration identifiers.
20253
20254 2011-04-19  Jan Hubicka  <jh@suse.cz>
20255
20256         * cgraph.h (cgraph_optimize_for_size_p): Declare.
20257         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
20258         * predict.c (cgraph_optimize_for_size_p): Break out from ...
20259         (optimize_function_for_size_p) ... here.
20260
20261 2011-04-19  Richard Guenther  <rguenther@suse.de>
20262
20263         PR lto/48207
20264         * tree.c (free_lang_data): Do not reset the decl-assembler-name
20265         langhook.
20266
20267 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20268
20269         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
20270         if DECL_NO_INLINE_WARNING_P is set on the function.
20271
20272 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
20273
20274         PR fortran/47976
20275         * reload1.c (inc_for_reload): Return void. All callers changed.
20276         (emit_input_reload_insns): Don't try to delete previous output
20277         reloads to a register, or record spill_reg_store for autoincs.
20278
20279 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
20280
20281         * gengtype.h: Updated copyright year.
20282         (struct input_file_st): Add inpisplugin field.
20283         (type_fileloc): New function.
20284         * gengtype.c
20285         (write_typed_struct_alloc_def): Add gcc_assert.
20286         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
20287         (write_typed_alloc_defns): Don't output for plugin files.
20288         (input_file_by_name): Clear inpisplugin field.
20289         (main): Set inpisplugin field for plugin files.
20290
20291 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
20292
20293         * gengtype-state.c (string_eq): New.
20294         (read_state): Use string_eq instead of strcmp when creating the
20295         state_ident_tab.
20296
20297 2011-04-19  Wei Guozhi  <carrot@google.com>
20298
20299         PR target/47855
20300         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
20301         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
20302         linkage.
20303         * config/arm/constraints.md (Uu): New constraint.
20304         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
20305
20306 2011-04-19  Tristan Gingold  <gingold@adacore.com>
20307
20308         * config.gcc (-*-*-*vms): Added.
20309         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
20310         definitions moved.
20311         * config/vms/vms-ld.c: New file.
20312         * config/vms/vms-ar.c: New file.
20313         * config/vms/t-vmsnative: New file.
20314
20315 2011-04-18  Xinliang David Li  <davidxl@google.com>
20316
20317         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
20318
20319 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20320
20321         PR middle-end/48661
20322         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
20323         if TREE_TYPE (v) is non-NULL.
20324
20325         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
20326         gimple_get_virt_mehtod_for_binfo.
20327         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
20328         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
20329         callers.
20330         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
20331
20332 2011-04-18  Michael Matz  <matz@suse.de>
20333             Steve Ellcey  <sje@cup.hp.com>
20334
20335         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
20336         use its mode as source mode if it isn't VOIDmode.
20337
20338 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
20339
20340         * doc/passes.texi: Fill crossref nodes.
20341
20342 2011-04-18  Jim Meyering  <meyering@redhat.com>
20343
20344         Fix doubled-word typos in comments and strings
20345         * config/alpha/vms-unwind.h: s/for for/for/
20346         * config/arm/unwind-arm.h: Likewise.
20347         * config/microblaze/microblaze.c: Likewise.
20348         * config/sh/constraints.md: s/in in/in/
20349         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
20350
20351 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
20352
20353         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
20354         (AVX_FLOAT_MODE_P): Ditto.
20355         (AVX128_VEC_FLOAT_MODE_P): Ditto.
20356         (AVX256_VEC_FLOAT_MODE_P): Ditto.
20357         (AVX_VEC_FLOAT_MODE_P): Ditto.
20358         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
20359         (UNSPEC_MASKSTORE): Ditto.
20360         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
20361         Merge from <sse>_movmsk<ssemodesuffix> and
20362         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
20363         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
20364         iterator.
20365         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
20366         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
20367         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
20368
20369 2011-04-18  Jan Hubicka  <jh@suse.cz>
20370
20371         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
20372
20373         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
20374         (want_inline_function_called_once_p): Break out the logic from
20375         ipa_inline.
20376         (edge_badness): Ensure that profile is not misupdated.
20377         (lookup_recursive_calls): Prioritize by call frequencies.
20378         (inline_small_functions): Move program size estimates here;
20379         actually process whole queue even when unit growth has been
20380         met. (to properly compute inline_failed reasons and for the
20381         case unit size decrease.) Revisit comments on recursive inlining.
20382         (ipa_inline): Remove unit summary code; first inline hot calls
20383         of functions called once, cold calls next.
20384         (order, nnodes): Remove unused variables.
20385         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
20386         (GTFILES): Remove ipa-inline.c
20387         * sel-sched.c (fill_insns): Silence uninitialized var warning.
20388
20389 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20390
20391         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
20392
20393 2011-04-18  Jie Zhang  <jie@codesourcery.com>
20394             Richard Earnshaw  <rearnsha@arm.com>
20395
20396         * arm.c (neon_builtin_type_bits): Remove.
20397         (typedef enum neon_builtin_mode): New.
20398         (T_MAX): Don't define.
20399         (typedef enum neon_builtin_datum): Remove bits, codes[],
20400         num_vars and base_fcode.  Add mode, code and fcode.
20401         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
20402         VAR10): Change accordingly.
20403         (neon_builtin_data[]): Change accordingly
20404         (arm_init_neon_builtins): Change accordingly.
20405         (neon_builtin_compare): Remove.
20406         (locate_neon_builtin_icode): Remove.
20407         (arm_expand_neon_builtin): Change accordingly.
20408
20409         * arm.h (enum arm_builtins): Move to ...
20410         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
20411
20412         * arm.c (arm_builtin_decl): Declare.
20413         (TARGET_BUILTIN_DECL): Define.
20414         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
20415         (arm_builtin_decls[]): New.
20416         (arm_init_neon_builtins): Store builtin declarations in
20417         arm_builtin_decls[].
20418         (arm_init_tls_builtins): Likewise.
20419         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
20420         (arm_builtin_decl): New.
20421
20422 2011-04-18  Richard Guenther  <rguenther@suse.de>
20423
20424         * tree.c (upper_bound_in_type): Build properly canonicalized
20425         INTEGER_CSTs.
20426         (lower_bound_in_type): Likewise.
20427
20428 2011-04-18  Richard Guenther  <rguenther@suse.de>
20429
20430         * gimple.h (gimple_call_addr_fndecl): New function.
20431         (gimple_call_fndecl): Use it.
20432         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
20433         for direct calls.
20434         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
20435         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
20436
20437 2011-04-18  Richard Guenther  <rguenther@suse.de>
20438
20439         PR middle-end/48650
20440         * tree.c (build_string): STRING_CST is now derived from tree_typed.
20441
20442 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20443
20444         PR lto/48492
20445         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
20446         DECL_IN_CONSTANT_POOL without RTL.
20447
20448 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
20449             Ira Rosen  <ira.rosen@linaro.org>
20450
20451         PR target/48252
20452         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
20453         to match neon_vzip/vuzp/vtrn_internal.
20454         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
20455         outputs explicitly dependent on both inputs.
20456         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
20457
20458 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
20459
20460         PR tree-optimization/48616
20461         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
20462         whether the shift is by scalar or vector based on whether all SLP
20463         scalar stmts have the same rhs.
20464
20465 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
20466
20467         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
20468         memory operands.
20469
20470 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
20471
20472         PR target/43700
20473         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
20474         registers.
20475
20476 2011-04-17  Jan Hubicka  <jh@suse.cz>
20477
20478         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
20479         * cgrpahunit.c (cgraph_finalize_function): Do not set
20480         finalized_by_frontend.
20481         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20482         finalized_by_frontend.
20483
20484 2011-04-17  Jan Hubicka  <jh@suse.cz>
20485
20486         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
20487         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
20488         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
20489         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
20490         method.
20491         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
20492         gimple-fold.c
20493         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
20494
20495 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
20496
20497         PR lto/48538
20498         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
20499         is non-null before accessing it.
20500         (input_cgraph): Remove trailing spaces.
20501
20502 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20503
20504         * params.def (sms-min-sc): New param flag.
20505         * modulo-sched.c (sms_schedule): Use it.
20506         * doc/invoke.texi (sms-min-sc): Document it.
20507
20508 2011-04-17  Jan Hubicka  <jh@suse.cz>
20509
20510         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
20511         present, also set gimple_call_set_cannot_inline.
20512         * ipa-inline.c: Update toplevel comment.
20513         (MAX_TIME): Remove.
20514         (cgraph_clone_inlined_nodes): Fix linebreaks.
20515         (cgraph_check_inline_limits): Restructure to ...
20516         (caller_growth_limits): ... this one; be more tolerant
20517         on growth in nested inline chains; add explanatory comment;
20518         fix stack accounting thinko introduced by previous patch.
20519         (cgraph_default_inline_p): Remove.
20520         (report_inline_failed_reason): New function.
20521         (can_inline_edge_p): New function.
20522         (can_early_inline_edge_p): New function.
20523         (leaf_node_p): Move upwards in file.
20524         (want_early_inline_function_p): New function.
20525         (want_inline_small_function_p): New function.
20526         (want_inline_self_recursive_call_p): New function.
20527         (cgraph_edge_badness): Rename to ...
20528         (edge_badness) ... this one; fix linebreaks.
20529         (update_edge_key): Update call of edge_baddness; add
20530         detailed dump about queue updates.
20531         (update_caller_keys): Use can_inline_edge_p and
20532         want_inline_small_function_p.
20533         (cgraph_decide_recursive_inlining): Rename to...
20534         (recursive_inlining): Use can_inline_edge_p and
20535         want_inline_self_recursive_call_p; simplify and remove no longer
20536         valid FIXME.
20537         (cgraph_set_inline_failed): Remove.
20538         (add_new_edges_to_heap): Use can_inline_edge_p and
20539         want_inline_small_function_p.
20540         (cgraph_decide_inlining_of_small_functions): Rename to ...
20541         (inline_small_functions): ... this one; cleanup; use
20542         can/want predicates; cleanup debug ouput; work edges till fibheap
20543         is exhausted and do not stop once unit growth is reached; remove
20544         later loop processing remaining edges.
20545         (cgraph_flatten): Rename to ...
20546         (flatten_function): ... this one; use can_inline_edge_p
20547         and can_early_inline_edge_p predicates.
20548         (cgraph_decide_inlining): Rename to ...
20549         (ipa_inline): ... this one; remove unreachable nodes before
20550         inlining functions called once; simplify the pass.
20551         (cgraph_perform_always_inlining): Rename to ...
20552         (inline_always_inline_functions): ... this one; use
20553         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
20554         (cgraph_decide_inlining_incrementally): Rename to ...
20555         (early_inline_small_functions): ... this one; simplify
20556         using new predicates; cleanup; make dumps prettier.
20557         (cgraph_early_inlining): Rename to ...
20558         (early_inliner): newer inline regular functions into always-inlines;
20559         fix updating of call stmt summaries.
20560         (pass_early_inline): Update for new names.
20561         (inline_transform): Fix formating.
20562         (gate_cgraph_decide_inlining): Rename to ...
20563         (pass_ipa_inline): ... this one.
20564         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
20565         * ipa-inline-analysis.c (dump_inline_summary): Update.
20566         (compute_inline_parameters): Do not compute disregard_inline_limits;
20567         look for mismatching arguments.
20568         (estimate_growth): Fix handlig of non-trivial self recursion.
20569         (inline_read_summary): Do not read info->disregard_inline_limits.
20570         (inline_write_summary): Do not write info->disregard_inline_limits.
20571         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
20572         and move all checks into can_inline_edge_p predicate; re-enable code
20573         comparing optimization levels.
20574         (expand_call_inline): Do not test inline_forbidden_into_p.
20575         * Makefile.in (ipa-inline.o): Update arguments.
20576
20577 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20578
20579         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
20580
20581 2011-04-17  Revital Eres  <revital.eres@linaro.org>
20582
20583         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
20584
20585 2011-04-17  Michael Matz  <matz@suse.de>
20586
20587         PR tree-optimization/48622
20588         PR lto/48645
20589         * ipa-inline-analysis.c (inline_read_summary): Read size/time
20590         in same order as they're written.
20591
20592 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20593
20594         * config/pa/predicates.md: Reorganize and simplify predicates.
20595         Eliminate duplicate code checks.
20596         (arith_operand): Rename to arith14_operand
20597         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
20598         * config/pa/pa.md: Use renamed operands.
20599         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
20600         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
20601         arith11_operand, adddi3_operand, indexed_memory_operand,
20602         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
20603         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
20604         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
20605         move_dest_operand, move_src_operand, prefetch_cc_operand,
20606         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
20607         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
20608         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
20609         div_operand, int5_operand, movb_comparison_operator,
20610         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
20611         arith_double_operand, ireg_operand, lhs_lshift_operand,
20612         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
20613         integer_store_memory_operand): Likewise.
20614         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
20615         (integer_store_memory_operand, read_only_operand,
20616         function_label_operand, borx_reg_operand,
20617         non_hard_reg_operand): Likewise.
20618         (eq_neq_comparison_operator): Delete unused operator.
20619         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
20620         function_label_operand.
20621         (emit_move_sequence): Likewise.
20622
20623 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20624
20625         * config/i386/sse.md (sseunpackmode): New mode attribute.
20626         (ssepackmode): Ditto.
20627         (vec_pack_trunc_<mode>): Macroize expander from
20628         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
20629         (vec_unpacks_lo_<mode>): Macroize expander from
20630         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20631         (vec_unpacks_hi_<mode>): Macroize expander from
20632         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20633         (vec_unpacku_lo_<mode>): Macroize expander from
20634         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20635         (vec_unpacku_hi_<mode>): Macroize expander from
20636         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
20637         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
20638         ix86_expand_sse4_unpack.
20639         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
20640
20641 2011-04-16  Jan Hubicka  <jh@suse.cz>
20642
20643         * cgraphbuild.c: Include ipa-inline.h.
20644         (reset_inline_failed): Use initialize_inline_failed.
20645         * cgraph.c: Include ipa-inline.h.
20646         (cgraph_create_node_1): Do not initialize estimated_growth.
20647         (initialize_inline_failed): More to ipa-inline-analysis.c
20648         (dump_cgraph_node): Do not dump inline flags.
20649         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
20650         and disregard_inline_limits flags.
20651         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
20652         time, size, estimated_growth.
20653         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
20654         Update.
20655         * cgraphunit.c (cgraph_decide_is_function_needed): Use
20656         DECL_DISREGARD_INLINE_LIMITS.
20657         (cgraph_analyze_function): Do not initialize
20658         node->local.disregard_inline_limits.
20659         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
20660         inlinable, versionable and disregard_inline_limits.
20661         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
20662         cgraph_check_inline_limits, cgraph_default_inline_p,
20663         cgraph_edge_badness, update_caller_keys, update_callee_keys,
20664         add_new_edges_to_heap): Update.
20665         (cgraph_decide_inlining_of_small_function): Update; set
20666         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
20667         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
20668         cgraph_decide_inlining_incrementally): Update.
20669         * ipa-inline.h (inline_summary): Add inlinable, versionable,
20670         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
20671         time, size and estimated_growth parameters.
20672         (estimate_edge_growth): Update.
20673         (initialize_inline_failed): Declare.
20674         * ipa-split.c: Include ipa-inline.h
20675         (execute_split_functions): Update.
20676         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
20677         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
20678         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
20679         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
20680         estimated_growth to INT_MIN.
20681         (inline_node_duplication_hook): Likewise.
20682         (dump_inline_summary): Dump new fields.
20683         (compute_inline_parameters): Update.
20684         (estimate_edge_time, estimate_time_after_inlining,
20685         estimate_size_after_inlining, estimate_growth, inline_read_summary,
20686         inline_write_summary):
20687         (initialize_inline_failed): Move here from cgraph.c.
20688         * tree-sra.c: Include ipa-inline.h.
20689         (ipa_sra_preliminary_function_checks): Update.
20690         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
20691         ipa-inline.h.
20692
20693 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
20694
20695         * config/i386/sse.md (V16): New mode iterator.
20696         (VI1, VI8): Ditto.
20697         (AVXMODEQI, AVXMODEDI): Remove.
20698         (sse2, sse3): New mode attribute.
20699         (mov<mode>): Use V16 mode iterator.
20700         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
20701         (push<mode>1): Use V16 mode iterator.
20702         (movmisalign<mode>): Ditto.
20703         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20704         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
20705         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
20706         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
20707         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
20708         avx_movdqu<avxmodesuffix>.
20709         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
20710         *avx_movdqu<avxmodesuffix>.
20711         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
20712         avx_lddqu<avxmodesuffix>.
20713         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
20714         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
20715         avx_movnt<AVXMODEDI:mode>.
20716         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
20717         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
20718
20719 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20720
20721         PR target/48629
20722         * haifa-sched.c (prune_ready_list, schedule_block): Use
20723         sched_pressure_p rather than flag_sched_pressure.
20724
20725 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
20726
20727         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
20728         cgraph_get_node instead of cgraph_get_create_node.
20729
20730 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
20731
20732         * cfgexpand.c (expand_debug_expr): Use
20733         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
20734
20735 2011-04-15  Michael Matz  <matz@suse.de>
20736
20737         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
20738         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
20739         * function.c (gimplify_parameters): Ditto.
20740         * gimplify.c (gimplify_vla_decl): Ditto.
20741
20742         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
20743         (gimple_call_set_alloca_for_var): New inline function.
20744         (gimple_call_alloca_for_var_p): Ditto.
20745         * gimple.c (gimple_build_call_from_tree): Remember
20746         CALL_ALLOCA_FOR_VAR_P state.
20747         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
20748
20749         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
20750         calls if they were for VLA objects.
20751
20752 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20753
20754         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
20755         of ADR_EXPRs.
20756
20757 2011-04-15  Martin Jambor  <mjambor@suse.cz>
20758
20759         PR middle-end/48601
20760         * tree-emutls.c (lower_emutls_function_body): Call
20761         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
20762         result is non-NULL.
20763
20764 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
20765
20766         * c-decl.c (detect_field_duplicates): Call
20767         objc_detect_field_duplicates instead of objc_get_interface_ivars.
20768
20769 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
20770
20771         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
20772         * gimple.c (gimple_asm_clobbers_memory_p): Define.
20773         * ipa-pure-const.c (check_stmt): Call it.
20774         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
20775
20776 2011-04-15  Richard Guenther  <rguenther@suse.de>
20777
20778         PR tree-optimization/48290
20779         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
20780         Properly decide inhibiting propagation based on the valueized
20781         operand.  Do loop-closed SSA form preserving here ...
20782         (init_copy_prop): ... not here.
20783
20784 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20785
20786         PR target/48612
20787         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
20788         (*ieee_smax<mode>3): Likewise.
20789
20790 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20791
20792         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
20793         Replace match_operand with match_dup for the third operand in
20794         these expanders.
20795
20796 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20797
20798         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
20799         to track processing of conditionals.  Update all callers.
20800         (try_combine, simplify_if_then_else): Update.
20801
20802 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
20803
20804         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
20805         -fsched-pressure.
20806
20807 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
20808
20809         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
20810         instead of match_operand for operand 3.
20811
20812 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
20813
20814         * recog.h (insn_operand_data): Add an "allows_mem" field.
20815         * genoutput.c (output_operand_data): Initialize it.
20816         * optabs.c (maybe_legitimize_operand_same_code): New function.
20817         (maybe_legitimize_operand): Use it when matching the original
20818         op->value.
20819
20820 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20821
20822         * gimplify.c: Fix issues in comments throughout.
20823         (voidify_wrapper_expr): Fix long line.
20824         (build_stack_save_restore): Likewise.
20825         (gimplify_loop_expr): Likewise.
20826         (gimplify_compound_lval): Likewise.
20827         (gimplify_init_ctor_eval): Likewise.
20828         (gimplify_modify_expr_rhs): Likewise.
20829         (omp_notice_threadprivate_variable): Likewise.
20830
20831 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
20832
20833         * cfgexpand.c (expand_call_stmt): Convert the function type to the
20834         original one if this is not a builtin function.
20835
20836 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
20837
20838         PR target/48605
20839         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
20840         offset it as needed based on top 2 bits in operands[3], change
20841         MEM mode to SFmode and mask those 2 bits away from operands[3].
20842
20843 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20844
20845         * c-parser.c (c_parser_objc_protocol_definition): Updated for
20846         change from objc_declare_protocols() to objc_declare_protocol().
20847
20848 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
20849
20850         * config/i386/sse.md (sse4_1): New mode attribute.
20851         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
20852         avx_blend<ssemodesuffix><avxmodesuffix> and
20853         sse4_1_blend<ssemodesuffix> using VF mode iterator.
20854         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
20855         avx_blendv<ssemodesuffix><avxmodesuffix> and
20856         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
20857         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
20858         avx_dp<ssemodesuffix><avxmodesuffix> and
20859         sse4_1_dp<ssemodesuffix> using VF mode iterator.
20860         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
20861         (sse4_1_packusdw): Merge with *avx_packusdw.
20862         (sse4_1_pblendvb): Merge with *avx_pblendvb.
20863         (sse4_1_pblendw): Merge with *avx_pblendw.
20864         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
20865         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
20866         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
20867         VF mode iterator.
20868         (sse4_1_round<ssescalarmodesuffix>): Merge with
20869         *avx_round<ssescalarmodesuffix>.
20870         (aesenc): Merge with *avx_aesenc.
20871         (aesenclast): Merge with *avx_aesenclast.
20872         (aesdec): Merge with *avx_aesdec.
20873         (aesdeclast): Merge with *avx_aesdeclast.
20874         (pclmulqdq): Merge with *pclmulqdq.
20875         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
20876         New predicate.
20877         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
20878
20879 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
20880
20881         PR middle-end/48608
20882         * cfgexpand.c (get_decl_align_unit): Renamed to ...
20883         (align_local_variable): This.  Update DECL_ALIGN.
20884         (add_stack_var): Updated.
20885         (expand_one_stack_var): Likewise.
20886
20887 2011-04-14  Richard Guenther  <rguenther@suse.de>
20888
20889         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
20890         Remove.
20891         (dse_initialize_block_local_data, dse_leave_block,
20892         record_voperand_set, get_stmt_uid): Likewise.
20893         (dse_possible_dead_store_p): Allow any kind of killing stmt.
20894         (dse_optimize_stmt): Remove voperand set handling code.
20895         Simplify and improve to handle any kind of killing stmt.
20896         (dse_record_phi): Remove.
20897         (dse_enter_block): Simplify.
20898         (tree_ssa_dse): Likewise.
20899         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
20900
20901 2011-04-14  Jan Hubicka  <jh@suse.cz>
20902
20903         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
20904         * cgraph.h (struct inline_summary): Move to ipa-inline.h
20905         (cgraph_local_info): Remove inline_summary.
20906         * ipa-cp.c: Include ipa-inline.h.
20907         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
20908         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
20909         accesor.
20910         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
20911         (input_overwrite_node): Do not set inline summary.
20912         (input_node): Do not stream inline summary.
20913         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
20914         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
20915         growth; we do not have inline parameters computed for that anyway.
20916         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
20917         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
20918         (inline_summary_t): New type and VECtor.
20919         (debug_inline_summary, dump_inline_summaries): Declare.
20920         (inline_summary): Use VOCtor.
20921         (estimate_edge_growth): Kill hack computing call stmt size directly.
20922         * lto-section-in.c (lto_section_name): Add inline section.
20923         * ipa-inline-analysis.c: Include lto-streamer.h
20924         (node_removal_hook_holder, node_duplication_hook_holder): New holders
20925         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
20926         (inline_summary_vec): Define.
20927         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
20928         dump_inline_summaries): New functions.
20929         (estimate_function_body_sizes): Properly compute size/time of outgoing
20930         calls.
20931         (compute_inline_parameters): Alloc inline_summary; do not compute
20932         size/time of incomming calls.
20933         (estimate_edge_time): Avoid missing time summary hack.
20934         (inline_read_summary): Read inline summary info.
20935         (inline_write_summary): Write inline summary info.
20936         (inline_free_summary): Free all hooks and inline summary vector.
20937         * lto-streamer.h: Add LTO_section_inline_summary section.
20938         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
20939         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
20940
20941 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20942
20943         * tree-vectorizer.h (vect_strided_store_supported): Add a
20944         HOST_WIDE_INT argument.
20945         (vect_strided_load_supported): Likewise.
20946         (vect_permute_store_chain): Return void.
20947         (vect_transform_strided_load): Likewise.
20948         (vect_permute_load_chain): Delete.
20949         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
20950         count argument.  Check that the count is a power of two.
20951         (vect_strided_load_supported): Likewise.
20952         (vect_permute_store_chain): Return void.  Update after above changes.
20953         Assert that the access is supported.
20954         (vect_permute_load_chain): Likewise.
20955         (vect_transform_strided_load): Return void.
20956         * tree-vect-stmts.c (vectorizable_store): Update calls after
20957         above interface changes.
20958         (vectorizable_load): Likewise.
20959         (vect_analyze_stmt): Don't check for strided powers of two here.
20960
20961 2011-04-14  Richard Guenther  <rguenther@suse.de>
20962
20963         PR tree-optimization/48590
20964         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
20965         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
20966         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
20967         BUILT_IN_STACK_SAVE.
20968         * tree-ssa-dce.c (propagate_necessity): Handle
20969         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
20970
20971 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
20972
20973         * c-parser.c (c_parser_objc_class_declaration): Updated call to
20974         objc_declare_class.
20975
20976 2011-04-14  Richard Guenther  <rguenther@suse.de>
20977
20978         * tree.h (get_object_alignment_1): Declare.
20979         * builtins.c (get_object_alignment_1): Split out worker from ...
20980         (get_object_alignment): ... here.
20981         * fold-const.c (get_pointer_modulus_and_residue): Use
20982         get_object_alignment_1.
20983
20984 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20985
20986         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
20987         type parameter.
20988         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
20989         parameter.  Generalise code to handle arrays as well as vectors.
20990         (vect_setup_realignment): Update accordingly.
20991         * tree-vect-stmts.c (vectorizable_store): Likewise.
20992         (vectorizable_load): Likewise.
20993
20994 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
20995
20996         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
20997         within the per-copy loop.
20998
20999 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21000
21001         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
21002         in the dump file.
21003
21004 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
21005
21006         * doc/options.texi (Negative): Explicitly mention that the
21007         Negative chain must be circular.
21008
21009 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
21010
21011         * function.h (block_chainon): Declare.
21012         * function.c (block_chainon): Define.
21013
21014 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
21015             Eric Weddington  <eric.weddington@atmel.com>
21016             Georg-Johann Lay  <avr@gjlay.de>
21017
21018         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
21019         New Includes
21020         (avr_init_builtins, avr_expand_builtin,
21021         avr_expand_delay_cycles, avr_expand_unop_builtin,
21022         avr_expand_binop_builtin ): New functions.
21023         (avr_builtin_id): New enum
21024         (struct avr_builtin_description): New struct
21025         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
21026         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
21027
21028         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
21029         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
21030         UNSPECV_DELAY_CYCLES): new enumeration values
21031         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
21032         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
21033         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
21034         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
21035         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
21036         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
21037         "fmulsu"): New insns
21038
21039         * config/avr/avr-c.c: fix line endings
21040         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
21041         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
21042         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
21043         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
21044         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
21045
21046         * doc/extend.texi (AVR Built-in Functions): New node
21047         (Target Builtins): Add documentation of AVR
21048         built-in functions.
21049
21050 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
21051
21052         PR target/44643
21053         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
21054         alone. Error if non-const data has attribute progmem.
21055
21056 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21057
21058         * tree.h (struct tree_constructor): Include tree_typed instead of
21059         tree_common.
21060         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
21061         TS_TYPED instead of TS_COMMON.
21062
21063 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21064
21065         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
21066         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
21067         (sse2_psadbw): Merge with *avx_psadbw.
21068         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
21069         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
21070         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
21071         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
21072         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
21073         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
21074         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
21075         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
21076         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
21077         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
21078         (ssse3_palignrti): Merge with *avx_palignrti.
21079
21080 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21081
21082         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
21083         * tree-ssanames.c (fini_ssanames): VEC_free it.
21084         (make_ssa_name_fn): Update for VECness of free_ssanames.
21085         (release_ssa_name, release_dead_ssa_names): Likewise.
21086         * tree.h (struct tree_ssa_name): Include tree_typed instead of
21087         tree_common.
21088         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
21089         TS_TYPED instead of TS_COMMON.
21090
21091 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21092
21093         * postreload-gcse.c (gcse_after_reload_main): Add calls to
21094         statistics_counter_event.
21095         * tree-ssa-copyrename.c (stats): Define.
21096         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
21097         statistics_counter_event.
21098         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
21099         (bswap_stats, widen_mul_stats): Define.
21100         (insert_reciprocals): Increment rdivs_inserted.
21101         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
21102         rfuncs_inserted.  Add calls to statistics_counter_event.
21103         (execute_cse_sincos_1): Increment inserted.
21104         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
21105         statistics_counter_event.
21106         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
21107         of bswap_stats.  Add calls to statistics_counter_event.
21108         (convert_mult_to_widen): Increment widen_mults_inserted.
21109         (convert_plusminus_to_widen): Increment maccs_inserted.
21110         (convert_mult_to_fma): Increment fmas_inserted.
21111         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
21112         calls to statistics_counter_event.
21113
21114 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
21115
21116         PR rtl-optimization/48455
21117         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
21118         `temp_costs->mem_cost'.
21119
21120 2011-04-13  Jan Hubicka  <jh@suse.cz>
21121
21122         * ipa-inline.h: New file.
21123         * ipa-inline-analysis.c: New file. Broken out of ...
21124         * ipa-inline.c: ... this file; update toplevel comment;
21125         include ipa-inline.h
21126         (inline_summary): Move to ipa-inline.h
21127         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
21128         ipa-inline-analysis.c.
21129         (cgraph_estimate_time_after_inlining): Rename to
21130         estiamte_time_after_inlining; move to ipa-inline-analysis.c
21131         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
21132         to estimate_edge_growth.
21133         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
21134         rename to estimate_size_after_inlining.
21135         (cgraph_mark_inline_edge): Update for new naming convention.
21136         (cgraph_check_inline_limits): Likewise.
21137         (cgraph_edge_badness): Likewise.
21138         (cgraph_decide_recursive_inlining): Likewise.
21139         (cgraph_decide_inlining_of_small_functions): Likewise.
21140         (cgraph_decide_inlining_incrementally): Likewise.
21141         (cgraph_estimate_growth): Rename to estimate_growth; move to
21142         ipa-inline-analysis.c.
21143         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
21144         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
21145         (compute_inline_parameters): Likewise.
21146         (compute_inline_parameters_for_current): Likewise.
21147         (pass_inline_parameters): Likewise.
21148         (inline_indirect_intraprocedural_analysis): Likewise.
21149         (analyze_function): Rename to inline_analyze_function; likewise.
21150         (add_new_function): Move to ipa-inline-analysis.c.
21151         (inline_generate_summary): Likewise.
21152         (inline_read_summary): Likewise.
21153         (inline_write_summary): Likewise.
21154         * Makefile.in (ipa-inline-analysis.c): New file.
21155
21156 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21157
21158         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
21159         * configure: Regenerate.
21160
21161 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
21162
21163         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
21164         instead of tree_common.
21165         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
21166         Likewise.
21167         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
21168         TS_TYPED rather than TS_COMMON.
21169         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
21170
21171 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
21172
21173         PR target/45263
21174         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
21175         r20 around calls of __tablejump_elpm__
21176
21177 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
21178
21179         PR middle-end/48591
21180         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
21181         NULL.
21182         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
21183
21184 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
21185
21186         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
21187         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
21188         (cfi_vec): New typedef.
21189         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
21190         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
21191         (cie_cfi_vec): New static variable.
21192         (cie_cfi_head): Delete.
21193         (add_cfi): Accept a cfi_vec * as first argument. All callers and
21194         declaration changed. Use vector rather than list operations.
21195         (new_cfi): Don't initialize the dw_cfi_next field.
21196         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
21197         rather than list operations.
21198         (lookup_cfa): Use vector rather than list operations.
21199         (output_cfis): New argument upto. Accept a cfi_vec rather than
21200         a dw_cfi_ref list head as argument. All callers changed.
21201         Iterate over the vector using upto as a maximum index.
21202         (output_all_cfis): New static function.
21203         (output_fde): Use vector rather than list operations. Use the
21204         new upto argument for output_cfis rather than manipulating a
21205         list.
21206         (dwarf2out_begin_prologue): Change initializations to match
21207         new struct members.
21208         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
21209         from the vector length rather than searching for the end of a list.
21210         Use output_all_cfis.
21211         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
21212
21213 2011-04-13  Nick Clifton  <nickc@redhat.com>
21214
21215         * config/rx/rx.md (movmemsi): Do not use this pattern when
21216         volatile pointers are involved.
21217
21218 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
21219
21220         * config/i386/sse.md (pinsrbits): Remove.
21221         (sse2_packsswb): Merge with *avx_packsswb.
21222         (sse2_packssdw): Merge with *avx_packssdw.
21223         (sse2_packuswb): Merge with *avx_packuswb.
21224         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
21225         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
21226         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
21227         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
21228         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
21229         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
21230         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
21231         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
21232         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
21233         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
21234         (sse2_loadld): Merge with *avx_loadld.
21235         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
21236         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
21237         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
21238         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
21239         (vec_concatv2di): Merge with *vec_concatv2di_avx.
21240
21241 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
21242
21243         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
21244         calling TREE_CHAIN.
21245         * print-tree.c (print_node): Likewise.
21246         * tree-inline.c (copy_tree_r): Likewise.
21247         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
21248         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
21249         instead of TS_COMMON.
21250         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
21251         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
21252         (copy_node_stat): Zero TREE_CHAIN only if necessary.
21253         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
21254         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
21255         ...and these...
21256         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
21257         * tree.h: ...here.
21258         (TREE_CHAIN): Check for a TS_COMMON structure.
21259         (TREE_TYPE): Check for a TS_TYPED structure.
21260
21261 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
21262
21263         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
21264         cgraph_get_create_node instead of cgraph_node.
21265
21266 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21267
21268         * c-parser.c (c_parser_initelt): Updated call to
21269         objc_build_message_expr.
21270         (c_parser_postfix_expression): Likewise.
21271
21272 2011-04-12  Kai Tietz  <ktietz@redhat.com>
21273
21274         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
21275         MASK_MS_BITFIELD_LAYOUT bit.
21276
21277 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21278
21279         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
21280         assert it is always true.
21281         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
21282         moves.
21283
21284 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
21285
21286         * c-parser.c (c_lex_one_token): Rewritten conditional used when
21287         compiling Objective-C to be more efficient.
21288
21289 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
21290
21291         * opts-common.c (decode_cmdline_options_to_array): Remove variable
21292         argv_copied.
21293
21294 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21295
21296         * recog.h, genoutput.c, optabs.c: Revert last patch.
21297
21298 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21299
21300         PR target/48090
21301         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
21302
21303 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21304
21305         * recog.h (insn_operand_data): Add an "allows_mem" field.
21306         * genoutput.c (output_operand_data): Initialize it.
21307         * optabs.c (maybe_legitimize_operand_same_code): New function.
21308         (maybe_legitimize_operand): Use it when matching the original
21309         op->value.
21310
21311 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21312
21313         * genpreds.c (process_define_predicate): Move most processing
21314         to gensupport.c.  Continue to validate the expression.
21315         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
21316         (process_define_predicate): Move processing to gensupport.c.
21317         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
21318         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
21319         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
21320         argument.
21321         (valid_predicate_name_p): New function, split out from old
21322         genpreds.c:process_define_predicate.
21323         (process_define_predicate): New function, combining code from
21324         old genpreds.c and genrecog.c functions.
21325         (process_rtx): Call it for DEFINE_PREDICATE and
21326         DEFINE_SPECIAL_PREDICATE.
21327
21328 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
21329
21330         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
21331         size of a '%A' memory reference.
21332         (T_DREG, T_QREG): New neon_builtin_type_bits.
21333         (arm_init_neon_builtins): Assert that the load and store operands
21334         are neon_struct_operands.
21335         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
21336         (NEON_ARG_MEMORY): New builtin_arg.
21337         (neon_dereference_pointer): New function.
21338         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
21339         Handle NEON_ARG_MEMORY.
21340         (arm_expand_neon_builtin): Update after above interface changes.
21341         Use NEON_ARG_MEMORY for loads and stores.
21342         * config/arm/predicates.md (neon_struct_operand): New predicate.
21343         * config/arm/iterators.md (V_two_elem): Tweak formatting.
21344         (V_three_elem): Use BLKmode for accesses that have no associated mode.
21345         (V_four_elem): Tweak formatting.
21346         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
21347         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
21348         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
21349         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
21350         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
21351         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
21352         (neon_vst4<mode>): Replace pointer operand with a memory operand.
21353         Use %A in the output template.
21354         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
21355         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
21356         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
21357         the width of the memory access.  Remove post-increment.
21358         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
21359
21360 2011-04-12  Nick Clifton  <nickc@redhat.com>
21361
21362         * config/v850/v850.c (expand_prologue): Do not use the CALLT
21363         instruction for interrupt handlers if the target is the basic V850
21364         architecture.
21365         (expand_epilogue): Likewise.
21366
21367 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21368
21369         PR rtl-optimization/48549
21370         * combine.c (propagate_for_debug): Also stop after BB_END of
21371         this_basic_block.  Process LAST and just stop processing after it.
21372         (combine_instructions): If last_combined_insn has been deleted,
21373         set last_combined_insn to its PREV_INSN.
21374
21375 2011-04-12  Richard Guenther  <rguenther@suse.de>
21376
21377         PR tree-optimization/46076
21378         * gimple.h (struct gimple_statement_call): Add fntype field.
21379         (gimple_call_fntype): Adjust.
21380         (gimple_call_set_fntype): New function.
21381         * gimple.c (gimple_build_call_1): Set the call function type.
21382         * gimplify.c (gimplify_call_expr): Preserve the function
21383         type the frontend used for the call.
21384         (gimplify_modify_expr): Likewise.
21385         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
21386         function type.
21387         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
21388         function type.
21389         * tree-ssa.c (useless_type_conversion_p): Function pointer
21390         conversions are useless.
21391
21392 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21393
21394         * cgraph.h (cgraph_node): Remove function declaration.
21395         (cgraph_create_node): Declare.
21396         (cgraph_get_create_node): Likewise.
21397         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
21398         Updated all callers.
21399         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
21400         the decl does not already exist.  Call cgraph_get_create_node instead
21401         of cgraph_node.
21402         (cgraph_get_create_node): New function.
21403         (cgraph_same_body_alias): Update comment.
21404         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
21405         assert it does not return NULL.
21406         (cgraph_update_edges_for_call_stmt): Likewise.
21407         (cgraph_clone_edge): Likewise.
21408         (cgraph_create_virtual_clone): Likewise.
21409         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
21410         instead of cgraph_node.
21411         (cgraph_add_new_function): Call cgraph_create_node or
21412         cgraph_get_create_node instead of cgraph_node.
21413         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
21414         instead of cgraph_node.
21415         (record_eh_tables): Likewise.
21416         (mark_address): Likewise.
21417         (mark_load): Likewise.
21418         (build_cgraph_edges): Call cgraph_get_create_node instead
21419         of cgraph_node.
21420         (rebuild_cgraph_edges): Likewise.
21421         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
21422         instead of cgraph_node.
21423         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
21424         cgraph_node.
21425         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
21426         cgraph_create_node instead of cgraph_node.
21427         * c-decl.c (finish_function): Call cgraph_get_create_node instead
21428         of cgraph_node.
21429         * lto-cgraph.c (input_node): Likewise.
21430         * lto-streamer-in.c (input_function): Likewise.
21431         * varasm.c (mark_decl_referenced): Likewise.
21432         (assemble_alias): Likewise.
21433
21434 2011-04-12  Martin Jambor  <mjambor@suse.cz>
21435
21436         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
21437         instead of cgraph_node and assert it does not return NULL.
21438         * lto-streamer-in.c (lto_read_body): Likewise.
21439         * omp-low.c (new_omp_context): Likewise.
21440         (create_task_copyfn): Likewise.
21441         * tree-emutls.c (lower_emutls_function_body): Likewise.
21442         * matrix-reorg.c (transform_allocation_sites): Likewise.
21443
21444 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
21445
21446         PR c/48552
21447         * c-typeck.c (build_asm_expr): Error out on attempts to use
21448         void type outputs or inputs for constraints that allow reg or
21449         don't allow memory.
21450
21451 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
21452             Richard Earnshaw  <rearnsha@arm.com>
21453
21454         PR target/48250
21455         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
21456         to use sign-magnitude offsets. Reject unsupported unaligned
21457         cases. Add detailed description in comments.
21458         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
21459         condition from TARGET_32BIT to TARGET_ARM.
21460
21461 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
21462
21463         * tree.h (struct typed_tree): New.
21464         (struct tree_common): Include it instead of tree_base.
21465         (TREE_TYPE): Update for new location of type field.
21466         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
21467         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
21468         (union tree_node): Add typed field.
21469         * treestruct.def (TS_TYPED): New.
21470         * lto-streamer.c (check_handled_ts_structures): Handle it.
21471         * tree.c (MARK_TS_TYPED): New macro.
21472         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
21473
21474 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
21475
21476         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
21477         (force_nonfallthru): Do not alter the loop nest if no basic block
21478         was created.
21479
21480 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21481
21482         * config/i386/sse.md (VI): New mode iterator.
21483         (SSEMODEI): Remove.
21484         (AVX256MODEI): Ditto.
21485         (AVXMODEF4P): Ditto.
21486         (avxvecpsmode): Ditto.
21487         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
21488         (sse2_andnot<mode>3): New expander.
21489         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
21490         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
21491         (<any_logic:code><mode>3): Use VI mode iterator.
21492         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
21493         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
21494         (*andnottf3): Handle AVX three-operand constraints.
21495         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
21496
21497 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21498             Robert Millan  <rmh@gnu.org>
21499
21500         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
21501         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
21502         GNU_USER_DYNAMIC_LINKER64): Define.
21503         (REG_NAME): Don't undefine.
21504         (MD_UNWIND_SUPPORT): Undefine.
21505         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
21506         (REG_NAME): Don't undefine.
21507         (MD_UNWIND_SUPPORT): Undefine.
21508         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
21509
21510 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21511
21512         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
21513         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
21514
21515 2011-04-11  Xinliang David Li  <davidxl@google.com>
21516
21517         * value-profile.c (check_ic_target): New function.
21518         (gimple_ic_transform): Sanity check indirect call target.
21519         * gimple-low.c (gimple_check_call_args): Interface change.
21520         (gimple_check_call_matching_types): New function.
21521         * tree-inline.c (tree_can_inline_p): Call new function.
21522
21523 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
21524
21525         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
21526         tree-pretty-print.h & realmpfr.h.
21527
21528 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
21529
21530         PR middle-end/48464
21531         * ira.c (setup_pressure_classes): Fix typo in loop condition.
21532         (setup_allocno_and_important_classes): Ditto.
21533
21534 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21535
21536         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
21537         GNU_USER_DYNAMIC_LINKER.
21538         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
21539         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21540         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
21541         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21542         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21543         GNU_USER_TARGET_OS_CPP_BUILTINS.
21544         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
21545         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21546         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21547         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21548         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
21549         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21550         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21551         GNU_USER_TARGET_OS_CPP_BUILTINS.
21552         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21553         GNU_USER_DYNAMIC_LINKER.
21554         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21555         GNU_USER_TARGET_OS_CPP_BUILTINS.
21556         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
21557         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21558         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
21559         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21560         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
21561         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
21562         GNU_USER_DYNAMIC_LINKER64): Remove.
21563         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
21564         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21565         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21566         GNU_USER_DYNAMIC_LINKER.
21567         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21568         GNU_USER_TARGET_OS_CPP_BUILTINS.
21569         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21570         GNU_USER_TARGET_OS_CPP_BUILTINS.
21571         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
21572         to GNU_USER_TARGET_OS_CPP_BUILTINS.
21573         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
21574         GNU_USER_TARGET_OS_CPP_BUILTINS.
21575         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
21576         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
21577         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21578         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
21579         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21580         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21581         GNU_USER_DYNAMIC_LINKER.
21582         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
21583         GNU_USER_TARGET_OS_CPP_BUILTINS.
21584         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
21585         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21586         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21587         GNU_USER_DYNAMIC_LINKER.
21588         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21589         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21590         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
21591         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21592         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21593         GNU_USER_DYNAMIC_LINKER.
21594         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
21595         GNU_USER_DYNAMIC_LINKERN32.
21596         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
21597         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
21598         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
21599         GNU_USER_DYNAMIC_LINKER32.
21600         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
21601         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21602         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21603         GNU_USER_DYNAMIC_LINKER.
21604         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
21605         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21606         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
21607         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21608         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21609         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
21610         GNU_USER_DYNAMIC_LINKER32.
21611         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
21612         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
21613         GNU_USER_DYNAMIC_LINKER.
21614         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
21615         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21616         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21617         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
21618         GNU_USER_DYNAMIC_LINKER64.
21619         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
21620         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21621         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21622         GNU_USER_DYNAMIC_LINKER.
21623         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
21624         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21625         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
21626         GNU_USER_DYNAMIC_LINKER.
21627         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
21628         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21629         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
21630         GNU_USER_DYNAMIC_LINKER32.
21631         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21632         GNU_USER_DYNAMIC_LINKER64.
21633         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
21634         GNU_USER_DYNAMIC_LINKER64.
21635         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
21636         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21637         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
21638         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
21639         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
21640
21641 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21642
21643         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
21644         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
21645         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
21646         GNU_USER_DYNAMIC_LINKER.
21647         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21648         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
21649         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
21650         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
21651         GNU_USER_DYNAMIC_LINKER64.
21652         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
21653         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
21654         GNU_USER_LINK_EMULATION.
21655         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
21656         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
21657         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
21658         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
21659         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
21660         CPP_SPEC, CC1_SPEC): Remove.
21661         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
21662         (GNU_USER_DYNAMIC_LINKER): Define.
21663         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
21664         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
21665         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
21666         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
21667         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
21668         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
21669         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21670         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
21671         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
21672         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
21673         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
21674         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
21675         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
21676         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
21677         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
21678         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
21679         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21680         GNU_USER_DYNAMIC_LINKER.
21681         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21682         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21683         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21684         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21685         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
21686         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
21687         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
21688         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
21689         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
21690         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
21691
21692 2011-04-11  Kai Tietz  <ktietz@redhat.com>
21693
21694         PR target/9601
21695         PR target/11772
21696         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
21697         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
21698         comment.
21699         (ix86_is_msabi_thiscall): Removed.
21700         (ix86_is_type_thiscall): Likewise.
21701         (ix86_get_callcvt): New function.
21702         (ix86_comp_type_attributes): Simplify check.
21703         (ix86_function_regparm): Use ix86_get_callcvt for calling
21704         convention attribute checks.
21705         (ix86_return_pops_args): Likewise.
21706         (ix86_static_chain): Likewise.
21707         (x86_this_parameter): Likewise.
21708         (x86_output_mi_thunk): Likewise.
21709         (ix86_function_type_abi): Optimize check for types without attributes.
21710         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
21711         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
21712         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
21713         by flag-values.
21714         (IX86_BASE_CALLCVT): Helper macro.
21715         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
21716         Use ix86_get_callcvt for calling convention attribute checks and avoid
21717         symbol-decoration for stdcall in TARGET_RTD case.
21718         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
21719         Likewise.
21720         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
21721         for declaration.
21722
21723 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
21724
21725         * config/i386/sse.md (VI_128): New mode iterator.
21726         (VI12_128): Rename from SSEMODE12.
21727         (VI14_128): Rename from SSEMODE14.
21728         (VI124_128): New mode iterator.
21729         (VI24_128): Rename from SSEMODE248.
21730         (VI248_128): Rename from SSEMODE248.
21731         (SSEMODE124C8): Remove.
21732         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
21733         (*sse2_<plusminus_insn><mode>3): Merge with
21734         *avx_<plusminus_insn><mode>3.
21735         (*mulv8hi3): Merge with *avx_mulv8hi3.
21736         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
21737         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
21738         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
21739         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
21740         (ashr<mode>3): Merge with *avx_ashr<mode>3.
21741         (lshr<mode>3): Merge with *avx_lshr<mode>3.
21742         (ashl<mode>3): Merge with *avx_ashl<mode>3.
21743         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
21744         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
21745         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
21746         (*<smaxmin:code>v8hi3): Ditto.
21747         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
21748         (*<smaxmin:code>v16qi3): Ditto.
21749         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
21750         (*sse2_eq<mode>3): Ditto.
21751         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
21752         (*sse2_gt<mode>3): Ditto.
21753         (vcondv2di): Split out of vcond<mode>.
21754         (vconduv2di): Split out of vcondu<mode>.
21755
21756 2011-04-11  Richard Guenther  <rguenther@suse.de>
21757
21758         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
21759         before calling tree_low_cst.
21760
21761 2011-04-11  Richard Guenther  <rguenther@suse.de>
21762
21763         * stor-layout.c (layout_type): Compute all array index size operations
21764         in the original type.
21765         (initialize_sizetypes): Add comment.
21766         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
21767
21768 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
21769
21770         * common.opt (Tbss=, Tdata=, Ttext=): New options.
21771
21772 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21773
21774         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
21775         of cgraph_node, handle NULL return value.
21776         (cgraph_global_info): Likewise.
21777         (cgraph_rtl_info): Likewise.
21778         * tree-inline.c (estimate_num_insns): Likewise.
21779         * gimplify.c (unshare_body): Likewise.
21780         (unvisit_body): Likewise.
21781         (gimplify_body): Likewise.
21782         * predict.c (optimize_function_for_size_p): Likewise.
21783         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21784         (call_may_clobber_ref_p_1): Likewise.
21785         * varasm.c (function_section_1): Likewise.
21786         (assemble_start_function): Likewise.
21787
21788 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21789
21790         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
21791         of cgraph_node.
21792         * final.c (rest_of_clean_state): Likewise.
21793         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
21794         * passes.c (pass_init_dump_file): Likewise.
21795         (execute_all_ipa_transforms): Likewise.
21796         (function_called_by_processed_nodes_p): Likewise.
21797         * predict.c (maybe_hot_frequency_p): Likewise.
21798         (probably_never_executed_bb_p): Likewise.
21799         (compute_function_frequency): Likewise.
21800         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
21801         (unnest_nesting_tree_1): Likewise.
21802         (lower_nested_functions): Likewise.
21803         * tree-optimize.c (execute_fixup_cfg): Likewise.
21804         (tree_rest_of_compilation): Likewise.
21805         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
21806         * tree-sra.c (ipa_early_sra): Likewise.
21807         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
21808         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
21809         * ipa.c (record_cdtor_fn): Likewise.
21810         * ipa-inline.c (cgraph_early_inlining): Likewise.
21811         (compute_inline_parameters_for_current): Likewise.
21812         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21813         * ipa-pure-const.c (local_pure_const): Likewise.
21814         * ipa-split.c (split_function): Likewise.
21815         (execute_split_functions): Likewise.
21816         * cgraphbuild.c (build_cgraph_edges): Likewise.
21817         (rebuild_cgraph_edges): Likewise.
21818         (cgraph_rebuild_references): Likewise.
21819         (remove_cgraph_callee_edges): Likewise.
21820         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
21821         (verify_cgraph_node): Likewise.
21822         (cgraph_analyze_functions): Likewise.
21823         (cgraph_preserve_function_body_p): Likewise.
21824         (save_inline_function_body): Likewise.
21825         (save_inline_function_body): Likewise.
21826         * tree-inline.c (copy_bb): Likewise.
21827         (optimize_inline_calls): Likewise.
21828
21829 2011-04-11  Martin Jambor  <mjambor@suse.cz>
21830
21831         PR tree-optimization/48195
21832         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
21833         ipa_check_create_edge_args.
21834         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
21835         ipa_check_create_edge_args.
21836         * ipa-inline.c (inline_generate_summary): Do not call
21837         ipa_check_create_node_params and ipa_check_create_edge_args.
21838         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
21839         ipa_check_create_edge_args.
21840
21841 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
21842
21843         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
21844         instead of loop.
21845         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
21846         * function.c (record_hard_reg_sets): Likewise.
21847         * ira.c (compute_regs_asm_clobbered): Likewise.
21848         * sched-deps.c (sched_analyze_1): Likewise.
21849         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
21850
21851 2011-04-09  Xinliang David Li  <davidxl@google.com>
21852
21853         PR tree-optimization/PR48484
21854         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
21855         has_valid_pred lazily
21856
21857 2011-04-09  Duncan Sands  <baldrick@free.fr>
21858
21859         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
21860
21861 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21862
21863         * combine.c (combine_validate_cost): Adjust comments.  Set registered
21864         cost of I0 to zero at the end, if any.
21865
21866 2011-04-08  Xinliang David Li  <davidxl@google.com>
21867
21868         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
21869         to insane profile data.
21870
21871 2011-04-08  Xinliang David Li  <davidxl@google.com>
21872
21873         * ipa-cp.c (ipcp_update_profiling): Correct
21874          negative scale factor due to insane profile data.
21875
21876 2011-04-08  Xinliang David Li  <davidxl@google.com>
21877
21878         * final.c (dump_basic_block_info): New function.
21879         (final): Dump basic block.
21880         (final_scan_insn): Remove old dump.
21881
21882 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
21883
21884         PR target/47829
21885         * config.gcc (i386-*-freebsd): Disable unwind table generation for
21886         crtbegin/crtend.
21887
21888 2011-04-08  Michael Matz  <matz@suse.de>
21889
21890         PR middle-end/48389
21891         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
21892         functions.
21893         (rebuild_jump_labels): Call rebuild_jump_labels_1.
21894         * rtl.h (rebuild_jump_labels_chain): Declare.
21895         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
21896         insns inserted on edges.
21897
21898 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
21899
21900         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
21901         * config/arm/arm-arches.def: New.
21902         * config/arm/arm-opts.h: New.
21903         * config/arm/genopt.sh: New.
21904         * config/arm/arm-tables.opt: New (generated).
21905         * config/arm/arm.c (arm_handle_option, arm_target_help,
21906         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
21907         (all_architectures): Get most table contents from arm-arches.def.
21908         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
21909         arm_selected_tune here.
21910         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
21911         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
21912         (march=, mcpu=, mtune=): Use Enum and Var.
21913         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
21914         (arm.o): Update dependencies.
21915
21916 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
21917
21918         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
21919         of header_file.
21920         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
21921         (write_typed_alloc_defns): Likewise.
21922         (main): Calls write_typed_alloc_defns with output_header.
21923
21924 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
21925
21926         PR inline-asm/48435
21927         * ira-color.c (setup_profitable_hard_regs): Add comments.
21928         Don't take prohibited hard regs into account.
21929         (setup_conflict_profitable_regs): Rename to
21930         get_conflict_profitable_regs.
21931         (check_hard_reg_p): Check prohibited hard regs.
21932
21933 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
21934
21935         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
21936         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
21937         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
21938
21939 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21940
21941         PR target/48366
21942         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
21943         move from floating point to shift amount register.
21944         (emit_move_sequence): Remove secondary reload support for floating
21945         point to shift amount amount register copies.
21946         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
21947         amount register copies.
21948         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
21949         register, return false if mode isn't a scalar integer mode.
21950         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
21951
21952 2011-04-08  Richard Guenther  <rguenther@suse.de>
21953
21954         * gimple.c (gimple_call_flags): Remove kludge.
21955
21956 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
21957
21958         * sel-sched.c (sel_region_init): Move call to
21959         sel_setup_region_sched_flags after setup_current_loop_nest.
21960
21961 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
21962
21963         PR rtl-optimization/48272
21964         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
21965         init_insn_reg_pressure_info.  Adjust a caller.
21966         * sched-int.h (init_insn_reg_pressure_info): Declare.
21967         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
21968         when sched-pressure is enabled.
21969
21970 2011-04-08  Richard Guenther  <rguenther@suse.de>
21971
21972         * gimple.c (gimple_set_modified): Do not queue calls to
21973         MODIFIED_NORETURN_CALLS here ...
21974         * tree-ssa-operands.c (update_stmt_operands): ... but here.
21975
21976 2011-04-08  Richard Guenther  <rguenther@suse.de>
21977
21978         PR lto/48467
21979         * toplev.c (lang_dependent_init): Do not open asm_out_file
21980         in WPA mode, nor perform debug machinery initialization.
21981         (finalize): Do not unlink asm_out_file in WPA mode.
21982
21983 2011-04-08  Richard Guenther  <rguenther@suse.de>
21984
21985         * gimple.h (gimple_call_fntype): New function.
21986         (gimple_call_return_type): Use it.
21987         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
21988         * gimple-low.c (gimple_check_call_args): Likewise.
21989         * gimple.c (gimple_call_flags): Likewise.
21990         (gimple_call_arg_flags): Likewise.
21991         (gimple_call_return_flags): Likewise.
21992         * tree-cfg.c (verify_gimple_call): Likewise.
21993         (do_warn_unused_result): Likewise.
21994         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
21995         * value-prof.c (gimple_ic_transform): Fix fndecl check.
21996
21997 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
21998
21999         PR rtl-optimization/48235
22000         * sel-sched.c (code_motion_process_successors): Recompute the last
22001         insn in basic block if control flow changed.
22002         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
22003         Update condition for ilist_remove.
22004
22005 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22006
22007         PR rtl-optimization/48302
22008         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
22009         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
22010         it to record added preheader blocks.
22011         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
22012         on to sel_add_loop_preheaders.
22013         (sel_region_init): Move call to setup_current_loop_nest after
22014         sel_init_bbs.
22015
22016 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22017
22018         PR target/48273
22019         * cfgloop.h (loop_has_exit_edges): New helper.
22020         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
22021         non-clonable.
22022         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
22023         that have no exit edges.
22024
22025 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
22026
22027         PR rtl-optimization/48442
22028         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
22029         all callers.  Adjust assert.
22030
22031 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
22032
22033         PR tree-optimization/48377
22034         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
22035         is_packed to true even for types with smaller TYPE_ALIGN than
22036         TYPE_SIZE.
22037
22038 2011-04-08  Richard Guenther  <rguenther@suse.de>
22039
22040         PR bootstrap/48513
22041         * doc/tm.texi: Re-generate.
22042
22043 2011-04-08  Wei Guozhi  <carrot@google.com>
22044
22045         PR target/47855
22046         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
22047         * config/arm/arm.c (arm_attr_length_push_multi): New function.
22048         * config/arm/arm.md (*push_multi): Change the length computation to
22049         call a C function.
22050
22051 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
22052
22053         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
22054         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
22055         * doc/tm.texi: Regenerate.
22056         * system.h (ASM_OUTPUT_BSS): Poison.
22057         * varasm.c (asm_output_bss): Remove function.
22058         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
22059
22060         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
22061         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
22062         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
22063         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22064         Likewise.
22065         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22066         Likewise.
22067         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
22068         Likewise.
22069         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
22070
22071 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22072
22073         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
22074         EnumValue lines.
22075
22076 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
22077
22078         * config/m68k/m68k.c (m68k_handle_option): Don't handle
22079         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
22080         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
22081         OPT_mcpu32.
22082         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22083         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
22084         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
22085         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
22086         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
22087         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
22088         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22089         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
22090         options.  Don't map other m68k options manually.  Don't handle
22091         old-style options as canonical.
22092         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
22093         * doc/install.texi (m68k-*-*): Document binutils version requirement.
22094
22095 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
22096
22097         * basic-block.h (force_nonfallthru): Move to...
22098         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
22099         (force_nonfallthru): ...here.
22100         * cfghooks.c (force_nonfallthru): New function.
22101         * cfgrtl.c (force_nonfallthru): Rename into...
22102         (rtl_force_nonfallthru): ...this.
22103         (commit_one_edge_insertion): Do not set AUX field.
22104         (commit_edge_insertions): Do not discover new basic blocks.
22105         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
22106         (cfg_layout_rtl_cfg_hooks): Likewise.
22107         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
22108         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
22109         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
22110
22111 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
22112
22113         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
22114         Remove macros.
22115
22116 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
22117
22118         * config/i386/sse.md: Update copyright year.
22119         (avxcvtvecmode): Remove.
22120         (sse_movhlps): Merge with *avx_movhlps.
22121         (sse_movlhps): Merge with *avx_movlhps.
22122         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
22123         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
22124         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
22125         (sse_loadhps): Merge with *avx_loadhps.
22126         (sse_storelps): Merge with *avx_storelps.
22127         (sse_loadlps): Merge with *avx_loadlps.
22128         (sse_movss): Merge with *avx_movss.
22129         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
22130         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
22131         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
22132         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
22133         (vec_set<mode>_0): Ditto.
22134         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
22135         (sse4_1_insertps): Merge with *avx_insertps.
22136         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
22137         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
22138         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
22139         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
22140         (sse2_storehpd): Merge with *avx_storehpd.
22141         (sse2_loadhpd): Merge with *avx_loadhpd.
22142         (sse2_loadlpd): Merge with *avx_loadlpd.
22143         (sse2_movsd): Merge with *avx_movsd.
22144         (*vec_concatv2df): Merge with *vec_concatv2df.
22145
22146 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
22147
22148         PR debug/48343
22149         * combine.c (combine_instructions): Add last_combined_insn,
22150         update it if insn is after it, pass it to all try_combine calls.
22151         (try_combine): Add last_combined_insn parameter, pass it instead of
22152         i3 to propagate_for_debug.
22153
22154 2011-04-07  Nick Clifton  <nickc@redhat.com>
22155
22156         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
22157         to handle MDR <-> data register transfers.
22158         (movhi_internal): Likewise.
22159
22160 2011-04-07  Alan Modra  <amodra@gmail.com>
22161
22162         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
22163         previous stack info.
22164
22165 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22166
22167         PR target/43920
22168         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
22169         flow_find_cross_jump.  Swap variables to implement backward replacement.
22170         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
22171
22172 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22173
22174         PR target/43920
22175         * cfgcleanup.c (walk_to_nondebug_insn): New function.
22176         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
22177         and bb2.
22178         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
22179         src1 or src2.  Redirect edges to the last basic block.  Update
22180         frequency and count on multiple basic blocks in case of fallthru.
22181
22182 2011-04-07  Tom de Vries  <tom@codesourcery.com>
22183
22184         PR target/43920
22185         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
22186         function.
22187         (old_insns_match_p): Change return type.  Replace return false/true
22188         with return dir_none/dir_both.  Use can_replace_by.
22189         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
22190         direction from dir_p.  Register replacement direction in dir, last_dir
22191         and afterlast_dir.  Handle new return type of old_insns_match_p using
22192         merge_dir.  Return replacement direction in dir_p.
22193         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
22194         return type of old_insns_match_p.
22195         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
22196         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
22197         flow_find_cross_jump.
22198         * basic-block.h (enum replace_direction): New type.
22199         (flow_find_cross_jump): Add parameter to declaration.
22200
22201 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22202
22203         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
22204         (AVXMODEDCVTPS2DQ): Ditto.
22205         (VEC_FLOAT_MODE): Ditto.
22206         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
22207         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22208         (<any_logic:code><mode>3): Use VF mode iterator.
22209         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
22210         Use VF mode iterator.
22211         (copysign<mode>3): Use VF mode iterator.
22212         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
22213         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
22214         (*<any_logic:code><MODEF:mode>3): Merge with
22215         *avx_<any_logic:code><MODEF:mode>3.
22216         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
22217         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
22218         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
22219         (avx_cvtdq2ps<avxmodesuffix>): Remove.
22220         (sse2_cvtdq2ps): Use %v modifier.
22221         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
22222         (avx_cvtps2dq<avxmodesuffix>): Remove.
22223         (sse2_cvtps2dq): Use %v modifier.
22224         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
22225         (avx_cvttps2dq<avxmodesuffix>): Remove.
22226         (sse2_cvttps2dq): Use %v modifier.
22227         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
22228         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
22229         (sse2_cvtsd2siq): Fix insn template.
22230         (sse2_cvtsd2siq_2): Ditto.
22231         (sse2_cvttsd2siq): Ditto.
22232         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
22233         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
22234
22235 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22236
22237         * gcov-io.c: Use GCC Runtime Library Exception.
22238
22239 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
22240
22241         PR debug/48466
22242         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
22243         as base_reg whatever register reg has been eliminated to, instead
22244         of hardcoding STACK_POINTER_REGNUM.
22245
22246 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
22247
22248         * doc/tm.texi.in: Document C target hooks as separate from general
22249         target hooks.
22250         * doc/tm.texi: Regenerate.
22251         * genhooks.c (struct hook_desc): Add docname field.
22252         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
22253         docname field.
22254         (hook_array): Include c-target.def.
22255         (emit_documentation): Use docname field in output.
22256         (emit_init_macros): Take docname argument.  Only emit definitions
22257         for hooks matching docname.
22258         (main): Expect additional arguments in all cases.  Pass argument
22259         to emit_init_macros.
22260         * target.def: Move initial macro definitions and comments to
22261         target-hooks-macros.h.
22262         (gcc_targetcm): Move to c-family/c-target.def.
22263         * target.h (targetcm): Move declaration to c-family/c-target.h.
22264         * targhooks.c (default_handle_c_option): Move to
22265         c-family/c-opts.c.
22266         * targhooks.h (default_handle_c_option): Move declaration to
22267         c-family/c-common.h.
22268         * target-hooks-macros.h: New file.
22269         * config.gcc (target_has_targetcm): Define and use to add to
22270         c_target_objs and cxx_target_objs.
22271         * config/default-c.c: New file.
22272         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
22273         of target.h and target-def.h.
22274         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
22275         (darwin_objc_construct_string, darwin_cfstring_ref_p,
22276         darwin_check_cfstring_format_arg): Make static.
22277         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22278         TARGET_STRING_OBJECT_REF_TYPE_P,
22279         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
22280         * config/darwin-protos.h (darwin_objc_construct_string,
22281         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
22282         declare.
22283         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
22284         TARGET_STRING_OBJECT_REF_TYPE_P,
22285         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
22286         * config/t-darwin (darwin-c.o): Update dependencies.
22287         * system.h (TARGET_HAS_TARGETCM): Poison.
22288         * Makefile.in (TARGET_H): Update.
22289         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
22290         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
22291         (default-c.o): New target.
22292         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
22293         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
22294         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
22295         c-target.def.
22296         (build/genhooks.o): Update dependencies.
22297
22298 2011-04-06  Richard Guenther  <rguenther@suse.de>
22299
22300         * ipa-inline.c (enum inlining_mode): Remove.
22301         (cgraph_flatten): Use some other token.
22302         (cgraph_edge_early_inlinable_p): New function, split out from ...
22303         (cgraph_perform_always_inlining): New function, split out from ...
22304         (cgraph_decide_inlining_incrementally): ... here.
22305         (cgraph_mark_inline_edge): Adjust.
22306         (cgraph_early_inlining): Re-structure.
22307         (pass_early_inline): Require SSA form.
22308
22309 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
22310             Julian Brown  <julian@codesourcery.com>
22311             Mark Shinwell  <shinwell@codesourcery.com>
22312
22313         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
22314         LO_REGS only for Thumb-1.
22315         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
22316         be used in short instructions when optimising for size on Thumb-2.
22317
22318 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22319
22320         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
22321         associated with user returns to be preserved.
22322
22323 2011-04-06  Tristan Gingold  <gingold@adacore.com>
22324
22325         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
22326         symbol_queue_size, DBXOUT_DECR_NESTING,
22327         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
22328         if XCOFF_DEBUGGING_INFO.
22329
22330 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
22331
22332         * config/i386/i386.md (attribute isa): New.
22333         (attribute enabled): New.
22334         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
22335         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
22336         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
22337         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
22338         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
22339         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22340         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
22341         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
22342
22343         * config/i386/sse.md (VF): New mode iterator.
22344         (VF1): Ditto.
22345         (VF2): Ditto.
22346         (VF_128): Ditto.
22347         (SSEMODEF4): Remove.
22348         (attribute sse): Handle V8SF and V4DF modes.
22349         (<absneg:code><mode>2): Use VF mode iterator.
22350         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
22351         mode iterator.
22352         (<plusminus_insn><mode>3): Use VF mode iterator.
22353         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
22354         Use VF mode iterator.
22355         (<sse>_vm<plusminus_insn><mode>3): Merge with
22356         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
22357         (mul<mode>3): Use VF mode iterator.
22358         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
22359         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
22360         mode iterator.
22361         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
22362         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
22363         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
22364         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
22365         mode iterator.
22366         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
22367         Use VF1 mode iterator.
22368         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
22369         (sqrt<VF2:mode>2): New expander.
22370         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
22371         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
22372         and sqrtv2df2.  Use VF mode iterator.
22373         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
22374         mode iterator.
22375         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
22376         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
22377         Use VF1 mode iterator.
22378         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
22379         (<smaxmin:code><mode>3): Use VF mode iterator.
22380         (*<smaxmin:code><mode>3_finite): Merge with
22381         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
22382         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
22383         (<sse>_vm<smaxmin:code><mode>2): Merge with
22384         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
22385         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
22386         mode iterator.
22387         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
22388         mode iterator.
22389         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
22390         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
22391         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
22392         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
22393         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
22394         VF mode iterator.
22395         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
22396         Use VF_128 mode iterator.
22397         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
22398         mode iterator.
22399         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
22400         VF_128 mode iterator.
22401         (vcond<mode>): Use VF mode iterator.
22402         * config/i386/predicates.md (sse_comparison_operator): Merge with
22403         avx_comparison_float_operator.  Do not declare as special_predicate.
22404         * config/i386/i386.c (struct builtin_description): Update for renamed
22405         compare patterns.
22406         (ix86_expand_args_builtin): Ditto.
22407         (ix86_expand_sse_compare_mask): Ditto.
22408
22409 2011-04-06  Richard Guenther  <rguenther@suse.de>
22410
22411         * tree-inline.c (estimate_num_insns): For calls simply account
22412         for all passed arguments and a used return value.
22413
22414 2011-04-06  Richard Guenther  <rguenther@suse.de>
22415
22416         PR tree-optimization/47663
22417         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
22418         call_stmt_time fields.
22419         (cgraph_edge_inlinable_p): Declare.
22420         (cgraph_edge_recursive_p): New inline function.
22421         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
22422         (cgraph_clone_edge): Copy it.
22423         * ipa-inline.c (cgraph_estimate_edge_time): New function.
22424         Account for call stmt time.
22425         (cgraph_estimate_time_after_inlining): Take edge argument.
22426         (cgraph_estimate_edge_growth): Account call stmt size.
22427         (cgraph_estimate_size_after_inlining): Take edge argument.
22428         (cgraph_mark_inline_edge): Adjust.
22429         (cgraph_check_inline_limits): Likewise.
22430         (cgraph_recursive_inlining_p): Remove.
22431         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
22432         (cgraph_decide_recursive_inlining): Take edge argument and
22433         adjust.
22434         (cgraph_decide_inlining_of_small_functions): Do not avoid
22435         diags for recursive inlining here.
22436         (cgraph_flatten): Adjust.
22437         (cgraph_decide_inlining_incrementally): Likewise.
22438         (estimate_function_body_sizes): Remove call cost handling.
22439         (compute_inline_parameters): Initialize caller edge call costs.
22440         (cgraph_estimate_edge_growth): New function.
22441         (cgraph_estimate_growth): Use it.
22442         (cgraph_edge_badness): Likewise.
22443         (cgraph_check_inline_limits): Take an edge argument.
22444         (cgraph_decide_inlining_of_small_functions): Adjust.
22445         (cgraph_decide_inlining): Likewise.
22446         * tree-inline.c (estimate_num_insns): Only account for call
22447         return value if it is used.
22448         (expand_call_inline): Avoid diagnostics on recursive inline
22449         functions here.
22450         * lto-cgraph.c (lto_output_edge): Output edge call costs.
22451         (input_edge): Input edge call costs.
22452
22453 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22454
22455         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
22456
22457 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
22458
22459         * doc/invoke.texi (Spec Files): Fix typo.
22460
22461 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
22462
22463         * profile.c (branch_prob): Move declaration of local variable.  Remove
22464         obsolete ??? comment.  Expand the location explicitly instead of using
22465         the LOCATION_FILE and LOCATION_LINE macros.
22466
22467 2011-04-06  Wei Guozhi  <carrot@google.com>
22468
22469         PR target/47855
22470         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
22471         (arm_cond_branch): Likewise.
22472         (arm_cond_branch_reversed): Likewise.
22473         (arm_jump): Likewise.
22474         (push_multi): Likewise.
22475         * config/arm/constraints.md (Py): New constraint.
22476
22477 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22478
22479         PR bootstrap/48471
22480         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
22481         Move these...
22482         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
22483         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
22484         #ifdef DBX_DEBUGGING_INFO.
22485
22486 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
22487
22488         PR bootstrap/48403
22489         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
22490         if old and new states differ.
22491
22492 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22493
22494         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
22495         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
22496         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
22497         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
22498         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
22499         mcfv4e): Use Alias.
22500         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
22501         ColdFire options to -mcpu= options.
22502
22503 2011-04-05  Jeff Law  <law@redhat.com>
22504
22505         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
22506         check if BB is a successor of LOOP->header and return
22507         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
22508
22509 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22510
22511         * cprop.c (struct reg_use): Remove.
22512         (reg_use_table): Make an array of RTX.
22513         (find_used_regs, constprop_register, local_cprop_pass,
22514         bypass_block): Simplify users of reg_use_table.
22515         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
22516         on one of the uses found by find_used_regs.
22517
22518 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22519
22520         PR bootstrap/48469
22521         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
22522         declaration.
22523
22524 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22525
22526         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
22527         as an rtx.
22528         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
22529
22530 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
22531
22532         PR middle-end/48441
22533         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
22534
22535 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22536
22537         * combine.c: Include obstack.h.
22538         (struct insn_link): Define.
22539         (uid_log_links): Adjust type.
22540         (FOR_EACH_LOG_LINK): New macro.
22541         (insn_link_obstack): Declare.
22542         (alloc_insn_link): Define.
22543         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
22544         type of link variables.
22545         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
22546         (try_combine, record_promoted_values, distribute_notes): Likewise.
22547         (distribute_links): Likewise.  Tweak prototype.
22548         (clear_log_links): Delete.
22549         (adjust_for_new_dest): Call alloc_insn_link.
22550         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
22551
22552 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22553
22554         * gcse.c (modify_mem_list): Convert to an array of VECs.
22555         (canon_modify_mem_list, compute_transp): Tweak formatting.
22556         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
22557         (load_killed_in_block_p): Likewise.
22558         (record_last_mem_set_info): Likewise.
22559         (clear_modify_mem_tables): Likewise.
22560
22561 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22562
22563         PR middle-end/48461
22564         * function.c (emit_use_return_register_into_block): Only define if
22565         HAVE_return.
22566
22567 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
22568
22569         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
22570
22571 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
22572
22573         * config/rx/rx-opts.h: New.
22574         * config/rx/rx.c (rx_cpu_type): Remove.
22575         (rx_handle_option): Don't assert that global structures are in
22576         use.  Access variables via opts pointer.  Defer most handling of
22577         OPT_mint_register_.  Use error_at.
22578         (rx_option_override): Handle deferred OPT_mint_register_ here.
22579         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
22580         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
22581         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
22582         (rx_cpu_types): New Enum and EnumValue entries.
22583         (mint-register=): Use Defer and use Var accordingly.
22584
22585 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22586
22587         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
22588         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
22589         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
22590         Move these...
22591         (debug_free_queue, debug_nesting, symbol_queue_index):
22592         ...and these...
22593         * dbxout.c: ...to here.  Make static.
22594
22595 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
22596
22597         * gcse.c (modify_pair): Define.  Define a VEC of it.
22598         (canon_modify_mem_list): Convert to an array of VECs.
22599         (free_insn_expr_list_list): Delete.
22600         (clear_modify_mem_tables): Call VEC_free instead.
22601         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
22602         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
22603         (canon_list_insert, compute_transp): Likewise.
22604
22605 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22606
22607         PR target/43920
22608         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
22609         for size.
22610
22611 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22612
22613         PR target/43920
22614         * function.c (emit_use_return_register_into_block): New function.
22615         (thread_prologue_and_epilogue_insns): Use
22616         emit_use_return_register_into_block.
22617
22618 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22619
22620         PR target/43920
22621         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
22622         insn.
22623
22624 2011-04-05  Tom de Vries  <tom@codesourcery.com>
22625
22626         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
22627
22628 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
22629
22630         * config/arm/arm.md (define_constants for unspec): Replace with
22631         define_c_enum.
22632         (define_constants for unspecv): Replace with define_c_enum.
22633         * config/arm/neon.md (define_constants for unspec): Replace with
22634         define_c_enum.
22635
22636 2011-04-04  Richard Henderson  <rth@redhat.com>
22637
22638         PR bootstrap/48400
22639         * dwarf2out.c (output_line_info): Always emit line info from
22640         at least one section.
22641         (dwarf2out_init): Create text_section_line_info here ...
22642         (set_cur_line_info_table): ... not here.
22643
22644 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
22645
22646         PR target/48380
22647         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
22648         not called.
22649
22650         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
22651
22652 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
22653
22654         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
22655         (expr_equiv_p): Remove.
22656         (insert_set_in_table): Look at <dest, src> pair instead of expr.
22657         (hash_scan_set): Update call to insert_set_in_table.
22658         (dump_hash_table): Dump <dest, src> pair.
22659         (lookup_set): Simplify.  Lookup <dest, src> pair.
22660         (compute_transp): Remove, fold heavily simplified code into...
22661         (compute_local_properties): ...here.  Expect COMP and TRANSP
22662         unconditionally.
22663         (find_avail_set): Take set directly from struct expr.
22664         (find_bypass-set): Likewise.
22665         (bypass_block): Likewise.
22666         (cprop_insn): Likewise.  Remove redundant INSN_P test.
22667
22668         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
22669         checks on form of COND from find_implicit_sets to here.
22670         (find_implicit_sets): Cleanup control flow. Split critical edges
22671         if it exposes implicit sets.  Allocate/resize implicit_sets as
22672         necessary.
22673         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
22674         changed something.  Run df_analyze after find_implicit_sets if any
22675         edges were split.  Do not allocate implicit_sets here.
22676
22677         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
22678         (gcse_obstack): Renamed to cprop_obstack.
22679         (GNEW, GNEWVEC, GNEWVAR): Remove.
22680         (gmalloc): Remove.
22681         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
22682         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
22683         (gcse_alloc): Likewise, and rename to cprop_alloc.
22684         (alloc_gcse_men, free_gcse_mem): Remove.
22685         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
22686         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
22687         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
22688
22689         * cprop.c (oprs_not_set_p): Remove.
22690         (mark_set, mark_clobber): Remove.
22691         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
22692         (reg_not_set_p): New function.
22693         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
22694         (cprop_insn): Likewise.
22695         (cprop_jump): Use FOR_EACH_EDGE.
22696
22697 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
22698
22699         PR bootstrap/48403
22700         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
22701         (rank_for_schedule): Use scheduled_insns vector instead of
22702         last_scheduled_insn.
22703         (ok_for_early_queue_removal): Likewise.
22704         (queue_to_ready): Search forward in nonscheduled_insns_begin if
22705         we have a dbg_cnt.
22706         (choose_ready): Likewise.
22707         (commit_schedule): Use VEC_iterate.
22708         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
22709         a dbg_cnt, use it and ensure the first insn is in the ready list.
22710         (haifa_sched_init): Allocate scheduled_insns.
22711         (sched_extend_ready_list): Don't allocate it; reserve space.
22712         (haifa_sched_finish): Free it.
22713
22714 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22715
22716         * optc-gen.awk: Always remove type from Variable entry before
22717         recording in var_seen.
22718
22719 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
22720
22721         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
22722         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
22723         call to tidy_fallthru_edges.
22724
22725 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
22726
22727         * doc/options.texi (ToLower): Document.
22728         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
22729         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
22730         * opts.h (cl_option): Add cl_tolower field.
22731         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
22732         arguments with lowercase strings.
22733         * config/rx/rx.opt (mcpu=): Add ToLower.
22734         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
22735         argument.
22736
22737 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22738
22739         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
22740
22741 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
22742
22743         * config/vax/vax.c: Include reload.h.
22744
22745 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
22746
22747         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
22748         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
22749         (sparc_preferred_reload_class): New function.
22750
22751 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
22752
22753         PR debug/48401
22754         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
22755         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
22756
22757 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
22758
22759         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
22760         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
22761
22762 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
22763
22764         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
22765         (ASM_OUTPUT_ALIGNED_BSS): Define.
22766
22767 2011-04-03  Michael Matz  <matz@suse.de>
22768
22769         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
22770         and next_slot members.
22771         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
22772         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
22773         (lto_streamer_cache_append): Declare.
22774         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
22775         unsigned index, remove offset parameter, ensure that we append
22776         or update existing entries.
22777         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
22778         parameter, update next_slot for append.
22779         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
22780         parameter.
22781         (lto_streamer_cache_insert_at): Likewise.
22782         (lto_streamer_cache_append): New function.
22783         (lto_streamer_cache_lookup): Use unsigned index.
22784         (lto_streamer_cache_get): Likewise.
22785         (lto_record_common_node): Don't test tree_node_can_be_shared.
22786         (preload_common_node): Adjust call to lto_streamer_cache_insert.
22787         (lto_streamer_cache_delete): Don't free offsets member.
22788         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
22789         (lto_output_string_with_length): Use lto_output_data_stream.
22790         (lto_output_tree_header): Remove ix parameter, don't write it.
22791         (lto_output_builtin_tree): Likewise.
22792         (lto_write_tree): Adjust callers to above, don't track and write
22793         offset, write unsigned index.
22794         (output_unreferenced_globals): Don't emit all global vars.
22795         (write_global_references): Use unsigned indices.
22796         (lto_output_decl_state_refs): Likewise.
22797         (write_symbol): Likewise.
22798         * lto-streamer-in.c (lto_input_chain): Move earlier.
22799         (input_function): Use unsigned index.
22800         (input_alias_pairs): Don't read and then ignore all global vars.
22801         (lto_materialize_tree): Remove ix_p parameter, don't read index,
22802         don't pass it back, use lto_streamer_cache_append.
22803         (lto_register_var_decl_in_symtab): Use unsigned index.
22804         (lto_register_function_decl_in_symtab): Likewise.
22805         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
22806         index.
22807         (lto_get_builtin_tree): Don't read index, use
22808         lto_streamer_cache_append.
22809         (lto_read_tree): Adjust call to lto_materialize_tree.
22810
22811         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
22812         don't use function calls in arguments to MIN.
22813
22814         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
22815         twice.
22816
22817         * gimple.c (gimple_type_leader_entry): Mark deletable.
22818
22819 2011-04-03  Alan Modra  <amodra@gmail.com>
22820
22821         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
22822
22823 2011-04-03  Michael Matz  <matz@suse.de>
22824
22825         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
22826         an integer.
22827         * tree.h (tree_decl_non_common.vindex): Adjust comment.
22828
22829 2011-04-03  Michael Matz  <matz@suse.de>
22830
22831         * cgraphbuild.c (record_reference): Canonicalize constructor values.
22832         * gimple-fold.c (canonicalize_constructor_val): Accept being called
22833         without function context.
22834         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
22835         current_function_decl and cfun.
22836
22837 2011-04-03  Michael Matz  <matz@suse.de>
22838
22839         * tree.c (decl_init_priority_insert): Don't create entry for
22840         default priority.
22841         (decl_fini_priority_insert): Ditto.
22842         (fields_compatible_p, find_compatible_field): Remove.
22843         * tree.h (fields_compatible_p, find_compatible_field): Remove.
22844         * gimple.c (gimple_compare_field_offset): Adjust block comment.
22845
22846 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
22847
22848         * combine.c (try_combine): Remove useless local variable.
22849
22850 2011-04-03  Richard Guenther  <rguenther@suse.de>
22851             Ira Rosen  <ira.rosen@linaro.org>
22852
22853         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
22854         non-variable offsets and compare the remaining bases of the two
22855         accesses instead of looking for exact same data-ref.
22856
22857 2011-04-02  Kai Tietz  <ktietz@redhat.com>
22858
22859         PR target/48416
22860         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
22861
22862         * i386.c (ix86_is_msabi_thiscall): New helper function.
22863         (ix86_is_type_thiscall): New helper function.
22864         (ix86_comp_type_attributes): Handle thiscall for method-functions
22865         special.
22866         (init_cumulative_args): Likewise.
22867         (find_drap_reg): Likewise.
22868         (ix86_static_chain): Likewise.
22869         (x86_this_parameter): Likewise.
22870         (x86_output_mi_thunk): Likewise.
22871
22872 2011-04-01  Olivier Hainque  <hainque@adacore.com>
22873             Nicolas Setton  <setton@adacore.com>
22874             Eric Botcazou  <ebotcazou@adacore.com>
22875
22876         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
22877         (add_gnat_descriptive_type_attribute): New function.
22878         (gen_array_type_die): Call it.
22879         (gen_enumeration_type_die): Likewise.
22880         (gen_struct_or_union_type_die): Likewise.
22881         (modified_type_die): Likewise.
22882         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
22883         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
22884         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
22885
22886 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22887
22888         PR bootstrap/48148
22889         * dwarf2out.c (resolve_addr): Don't call force_decl_die
22890         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
22891
22892         Revert:
22893         2011-03-17  Richard Guenther  <rguenther@suse.de>
22894
22895         PR bootstrap/48148
22896         * lto-cgraph.c (input_overwrite_node): Clear the abstract
22897         origin for decls in other ltrans units.
22898         (input_varpool_node): Likewise.
22899
22900 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
22901
22902         PR middle-end/48335
22903         * expr.c (expand_assignment): Handle all possibilities
22904         if TO_RTX is CONCAT.
22905         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
22906         (store_split_bit_field): If SUBREG_REG (op0) or
22907         op0 itself has smaller mode than word, return it
22908         for offset 0 and const0_rtx for out-of-bounds stores.
22909         If word is const0_rtx, skip it.
22910
22911 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
22912
22913         * config/h8300/h8300.c (print_operand_address): Rename to...
22914         (h8300_print_operand_address): ...this. Make static. Adjust comments.
22915         Call h8300_print_operand and h8300_print_operand_address instead of
22916         print_operand and print_operand_address. Declare.
22917         (print_operand): Renake to...
22918         (h8300_print_operand): ...this. Make static. Adjust comments.
22919         Call h8300_print_operand instead of print_operand. Declare.
22920         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
22921         (h8300_register_move_cost): Likewise.
22922         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
22923         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
22924         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
22925         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
22926         * config/h8300/h8300-protos.h (print_operand): Delete.
22927         (print_operand_address): Delete.
22928
22929 2011-04-01  Richard Henderson  <rth@redhat.com>
22930
22931         PR 48400
22932         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
22933         in strict mode before dwarf4.  Re-order tests to early out
22934         before switching sections.
22935
22936 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
22937
22938         * config/h8300/constraints.md: New file.
22939         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
22940         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
22941         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
22942         * config/h8300/predicates.md (bit_operand): Likewise.
22943         (incdec_operand): Use satisfies_constraint_M and
22944         satisfies_constraint_O.  Don't use C code block.
22945         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
22946         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
22947         (compute_mov_length): Use satisfies_constraint_G.
22948         (fix_bit_operand): Use satisfies_constraint_U.
22949         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
22950         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
22951         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
22952         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
22953         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
22954         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
22955         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22956         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
22957         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
22958         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
22959         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
22960         (EXTRA_MEMORY_CONSTRAINT): Delete.
22961
22962 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
22963             Michael Meissner  <meissner@linux.vnet.ibm.com>
22964
22965         PR target/48262
22966         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
22967         operands, as per the specifications.
22968
22969         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
22970         (vec_extract_evenv4sf): Ditto.
22971         (vec_extract_evenv8hi): Ditto.
22972         (vec_extract_evenv16qi): Ditto.
22973         (vec_extract_oddv4si): Ditto.
22974
22975 2011-03-31  Mark Wielaard  <mjw@redhat.com>
22976
22977         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
22978         high_pc attribute if the CU has no associated code. Only output
22979         DW_AT_entry_pc for CU if not generating strict dwarf and
22980         dwarf_version < 4.
22981
22982 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
22983
22984         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
22985         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
22986         out of ...
22987         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
22988         * final.c (final_start_function): Call the new function rather
22989         than using a NULL argument for dwarf2out_frame_debug.
22990
22991         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
22992         that contains the prologue.
22993
22994         * haifa-sched.c (queue_insn): New arg REASON.  All callers
22995         changed.  Print it in debugging output.
22996
22997         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
22998
22999         * sched-ebb.c (begin_schedule_ready): Remove second argument.
23000         Split most of the code into...
23001         (begin_move_insn): ... here.  New function.
23002         (ebb_sched_info): Add a pointer to it.
23003         * haifa-sched.c (scheduled_insns): New static variable.
23004         (sched_extend_ready_list): Allocate it.
23005         (schedule_block): Use it to record the order of scheduled insns.
23006         Perform RTL changes to move insns only after all scheduling
23007         decisions have been made.
23008         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
23009         begin_move_insn field.
23010         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
23011         * sched-int.h (struct haifa_sched_info): Remove second argument
23012         from begin_schedule_ready hook.  Add new member begin_move_insn.
23013         * sched-rgn.c (begin_schedule_ready): Remove second argument.
23014         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
23015
23016         * haifa-sched.c (prune_ready_list): New function, broken out of
23017         schedule_block.
23018         (schedule_block): Use it.
23019
23020 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23021
23022         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
23023
23024 2011-04-01  Kai Tietz  <ktietz@redhat.com>
23025
23026         * config.gcc (*-*-mingw*): Allow as option the
23027         posix threading model.
23028         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
23029         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
23030         definition.
23031         (CPP_SPEC): Add pthread/no-pthread handling.
23032         (LIB_SPEC): Likewise.
23033         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
23034         (LIB_SPEC): Likewise.
23035         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
23036         flag to pass -pthread option for shared libgcc build.
23037         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
23038         for shared libgcc build.
23039         * config/i386/t-mingw-pthread: New file.
23040         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
23041         New define to enable use of library pthread by default.
23042         * config/i386/mingw.opt (pthread): New driver option.
23043         (no-pthread): New driver option.
23044         * config/i386/cygming.opt: Make sure trailing empty line is retained.
23045         * config/i386/mingw-w64.opt: Likewise.
23046
23047 2011-04-01  Gary Funck  <gary@intrepid.com>
23048
23049         * c-decl.c (grokdeclarator): Fix formatting.
23050
23051 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23052
23053         * expr.c (emit_block_move_via_movmem): Use n_generator_args
23054         instead of n_operands.
23055         (set_storage_via_setmem): Likewise.
23056         * optabs.c (maybe_gen_insn): Likewise.
23057         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
23058         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
23059         (mips_expand_builtin_direct): Likewise.
23060         * config/spu/spu.c (expand_builtin_args): Likewise.
23061
23062 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23063
23064         * recog.h (insn_data_d): Add n_generator_args.
23065         * genoutput.c (data): Likewise.
23066         (output_insn_data): Print it.
23067         (max_opno, num_dups): Delete.
23068         (scan_operands): Just fill in "d->operand[...]".
23069         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
23070
23071 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
23072
23073         * gensupport.h (pattern_stats): New structure.
23074         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
23075         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
23076         (max_operand_1, max_operand_vec): Delete.
23077         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
23078
23079 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
23080
23081         * emit-rtl.c (emit_pattern_after_setloc): New function.
23082         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
23083         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
23084         (emit_pattern_after): New function.
23085         (emit_insn_after, emit_jump_insn_after): Call it.
23086         (emit_call_insn_after, emit_debug_insn_after): Likewise.
23087         (emit_pattern_before_setloc): New function.
23088         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
23089         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
23090         Likewise.
23091         (emit_pattern_before): New function.
23092         (emit_insn_before, emit_jump_insn_before): Call it.
23093         (emit_call_insn_before, emit_debug_insn_before): Likewise.
23094
23095 2011-03-31  Richard Henderson  <rth@redhat.com>
23096
23097         * dwarf2out.c (dw_separate_line_info_ref): Remove.
23098         (dw_separate_line_info_entry): Remove.
23099         (enum dw_line_info_opcode): New.
23100         (dw_line_info_entry): Use it.
23101         (dw_line_info_table, dw_line_info_table_p): New.
23102         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
23103         (line_info_table, line_info_label_num): Remove.
23104         (line_info_table_in_use): Remove.
23105         (separate_line_info_table): Remove.
23106         (separate_line_info_table_allocated): Remove.
23107         (separate_line_info_table_in_use): Remove.
23108         (LINE_INFO_TABLE_INCREMENT): Remove.
23109         (line_info_label_num): New.
23110         (cur_line_info_table): New.
23111         (text_section_line_info, cold_text_section_line_info): New.
23112         (separate_line_info): New.
23113         (SEPARATE_LINE_CODE_LABEL): Remove.
23114         (print_dwarf_line_table): Remove.
23115         (debug_dwarf): Don't dump it.
23116         (output_one_line_info_table): New.
23117         (output_line_info): Use it.
23118         (new_line_info_table): New.
23119         (set_cur_line_info_table): New.
23120         (dwarf2out_switch_text_section): Use it.
23121         (dwarf2out_begin_function): Likewise.
23122         (push_dw_line_info_entry): New.
23123         (dwarf2out_source_line): Rewrite for new line info tables.
23124         (dwarf2out_init): Remove dead initailizations.
23125
23126 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23127
23128         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
23129         various flags.
23130         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
23131         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
23132         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
23133         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
23134         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
23135         * opt-functions.awk (flag_init, switch_bit_fields): New.
23136         (switch_flags): Don't handle flags moved to bit-fields.  Don't
23137         generate CL_MISSING_OK or CL_SAVE.
23138         * optc-gen.awk: Update to generate bit-field output as well as
23139         flags field.
23140         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
23141         bit-field instead of CL_REJECT_DRIVER flag.
23142         * opts-common.c (generate_canonical_option,
23143         decode_cmdline_option): Use bit-fields instead of CL_* flags.
23144         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
23145         instead of CL_REJECT_NEGATIVE flag.
23146         * toplev.c (print_switch_values): Use cl_report bit-field instead
23147         of CL_REPORT flag.
23148
23149 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23150
23151         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
23152         a zero minimum index only if it is redundant.
23153
23154 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
23155
23156         PR rtl-optimization/48381
23157         * ira-color.c (assign_hard_reg): Use hard reg set intersection
23158         instead of ira_class_hard_reg_index for calculating conflicting
23159         hard registers.
23160
23161 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
23162
23163         * cprop.c: Clean up hash table building.
23164         (reg_avail_info): Remove.
23165         (oprs_available_p): Remove.
23166         (record_last_reg_set_info): Remove.
23167         (record_last_set_info): Remove.
23168         (reg_available_p): New function.
23169         (gcse_constant_p): Do not treat unfolded conditions as constants.
23170         (make_set_regs_unavailable): New function.
23171         (hash_scan_set): Simplify with new reg_available_p.
23172         (compute_hash_table_work): Traverse insns stream only once.
23173         Do not compute reg_avail_info. Traverse insns in reverse order.
23174         Record implicit sets after recording explicit sets from the block.
23175
23176 2011-03-31  Michael Matz  <matz@suse.de>
23177
23178         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
23179
23180 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
23181
23182         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
23183         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
23184         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23185         (h8300_mode_dependent_address_p): New function.
23186         (h8300_get_index): Make static.
23187
23188 2011-03-31  Jeff Law  <law@redhat.com>
23189
23190         * reload1.c (elimination_effects): Fix typo in recent change.
23191
23192         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
23193         typo potentially leading to null pointer dereference.
23194
23195         * caller-save.c (new_saved_hard_reg): Eliminate return value.
23196         (setup_save_areas): Corresponding changes to avoid useless
23197         assignments.
23198
23199         * jump.c (reversed_comparison_code_parts): Avoid successive return
23200         statements when REVERSE_CONDITION is defined.
23201
23202         * expr.c (expand_assignment): Avoid useless assignments.
23203         (expand_expr_real_1): Likewise.
23204         (expand_expr_real_2): Avoid useless statements.
23205
23206         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
23207
23208         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
23209
23210         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
23211         statements.
23212
23213         * stmt.c (expand_expr_stmt): Avoid useless assignment.
23214
23215 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
23216
23217         PR target/47109
23218         * doc/tm.texi.in (TARGET_VERSION): Remove.
23219         * doc/tm.texi: Regenerate.
23220         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
23221         * collect2.c (main): Don't use TARGET_VERSION.
23222         * mips-tdump.c (main): Don't use TARGET_VERSION.
23223         * mips-tfile.c (main): Don't use TARGET_VERSION.
23224         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
23225         * config/rs6000/vxworksae.h: Remove.
23226         * config/alpha/alpha.h (TARGET_VERSION): Remove.
23227         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
23228         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
23229         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
23230         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23231         * config/arm/arm.h (TARGET_VERSION): Remove.
23232         * config/arm/coff.h (TARGET_VERSION): Remove.
23233         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
23234         * config/arm/elf.h (TARGET_VERSION): Remove.
23235         * config/arm/freebsd.h (TARGET_VERSION): Remove.
23236         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
23237         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
23238         * config/arm/pe.h (TARGET_VERSION): Remove.
23239         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
23240         * config/arm/semi.h (TARGET_VERSION): Remove.
23241         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
23242         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
23243         * config/arm/vxworks.h (TARGET_VERSION): Remove.
23244         * config/avr/avr.h (TARGET_VERSION): Remove.
23245         * config/bfin/bfin.h (TARGET_VERSION): Remove.
23246         * config/fr30/fr30.h (TARGET_VERSION): Remove.
23247         * config/frv/frv.h (TARGET_VERSION): Remove.
23248         * config/h8300/h8300.h (TARGET_VERSION): Remove.
23249         * config/i386/cygwin.h (TARGET_VERSION): Remove.
23250         * config/i386/darwin.h (TARGET_VERSION): Remove.
23251         * config/i386/darwin64.h (TARGET_VERSION): Remove.
23252         * config/i386/djgpp.h (TARGET_VERSION): Remove.
23253         * config/i386/freebsd.h (TARGET_VERSION): Remove.
23254         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
23255         * config/i386/gnu.h (TARGET_VERSION): Remove.
23256         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
23257         * config/i386/i386elf.h (TARGET_VERSION): Remove.
23258         * config/i386/linux.h (TARGET_VERSION): Remove.
23259         * config/i386/linux64.h (TARGET_VERSION): Remove.
23260         * config/i386/lynx.h (TARGET_VERSION): Remove.
23261         * config/i386/mingw32.h (TARGET_VERSION): Remove.
23262         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
23263         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
23264         * config/i386/netware.h (TARGET_VERSION): Remove.
23265         * config/i386/nto.h (TARGET_VERSION): Remove.
23266         * config/i386/openbsd.h (TARGET_VERSION): Remove.
23267         * config/i386/vxworks.h (TARGET_VERSION): Remove.
23268         * config/ia64/elf.h (TARGET_VERSION): Remove.
23269         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
23270         * config/ia64/hpux.h (TARGET_VERSION): Remove.
23271         * config/ia64/linux.h (TARGET_VERSION): Remove.
23272         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
23273         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
23274         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23275         * config/lm32/lm32.h (TARGET_VERSION): Remove.
23276         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
23277         * config/m32c/m32c.h (TARGET_VERSION): Remove.
23278         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
23279         * config/m32r/m32r.h (TARGET_VERSION): Remove.
23280         * config/m68k/linux.h (TARGET_VERSION): Remove.
23281         * config/m68k/m68k.h (TARGET_VERSION): Remove.
23282         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
23283         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
23284         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
23285         * config/mep/mep.h (TARGET_VERSION): Remove.
23286         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
23287         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
23288         * config/mips/iris6.h (MACHINE_TYPE): Remove.
23289         * config/mips/linux.h (TARGET_VERSION): Remove.
23290         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
23291         * config/mips/vxworks.h (TARGET_VERSION): Remove.
23292         * config/mmix/mmix.h (TARGET_VERSION): Remove.
23293         * config/mn10300/linux.h (TARGET_VERSION): Remove.
23294         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
23295         * config/pa/pa.h (TARGET_VERSION): Remove.
23296         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
23297         * config/picochip/picochip.h (TARGET_VERSION): Remove.
23298         * config/rs6000/aix.h (TARGET_VERSION): Remove.
23299         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
23300         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
23301         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
23302         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
23303         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
23304         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
23305         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
23306         * config/rs6000/linux.h (TARGET_VERSION): Remove.
23307         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
23308         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
23309         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
23310         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
23311         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
23312         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
23313         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
23314         * config/s390/linux.h (TARGET_VERSION): Remove.
23315         * config/s390/s390.h (TARGET_VERSION): Remove.
23316         * config/s390/tpf.h (TARGET_VERSION): Remove.
23317         * config/score/score.h (TARGET_VERSION): Remove.
23318         * config/sh/linux.h (TARGET_VERSION): Remove.
23319         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
23320         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
23321         * config/sh/sh.h (TARGET_VERSION): Remove.
23322         * config/sh/sh64.h (TARGET_VERSION): Remove.
23323         * config/sh/superh.h (TARGET_VERSION): Remove.
23324         * config/sh/vxworks.h (TARGET_VERSION): Remove.
23325         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
23326         * config/sparc/linux.h (TARGET_VERSION): Remove.
23327         * config/sparc/linux64.h (TARGET_VERSION): Remove.
23328         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
23329         TARGET_NAME32, TARGET_NAME): Remove.
23330         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
23331         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
23332         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
23333         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
23334         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
23335         * config/spu/spu.h (TARGET_VERSION): Remove.
23336         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
23337         * config/v850/v850.h (TARGET_VERSION): Remove.
23338         * config/vax/linux.h (TARGET_VERSION): Remove.
23339         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
23340         * config/xtensa/elf.h (TARGET_VERSION): Remove.
23341         * config/xtensa/linux.h (TARGET_VERSION): Remove.
23342
23343 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
23344
23345         PR target/48142
23346         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
23347         frame-related from frame-unrelated adjustments to the stack pointer.
23348
23349 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
23350
23351         * common.opt (fdebug-types-section): Move earlier.
23352         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
23353
23354 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
23355
23356         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
23357         var.
23358
23359 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
23360
23361         * tree.h (CASE_CHAIN): Define.
23362         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
23363         (gimple_redirect_edge_and_branch): Likewise.
23364
23365 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23366
23367         PR middle-end/48367
23368         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
23369         calculation.
23370
23371 2011-03-30  Jeff Law  <law@redhat.com>
23372
23373         * PR bootstrap/48371
23374         * reload1.c (reload): Fix botch in last change.
23375
23376         * reload.h (struct reload): Fix typo introduced in last change.
23377
23378 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23379
23380         * config/arm/arm.opt (mhard-float, msoft-float): Mark
23381         Undocumented.  Remove help text.
23382         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
23383         -mhard-float.
23384
23385 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23386
23387         * doc/options.texi (NegativeAlias): Document.
23388         (Alias): Mention NegativeAlias.
23389         * opt-functions.awk: Handle NegativeAlias.
23390         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
23391         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
23392         * opts.h (CL_NEGATIVE_ALIAS): Define.
23393         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
23394         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
23395         OPT_mspe_.
23396         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
23397         Alias entries.
23398         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
23399         mno-spe and mno-isel instead of mspe=no and -misel=no.
23400
23401 2011-03-29  Mark Wielaard  <mjw@redhat.com>
23402
23403         * common.opt (fdebug-types-section): New flag.
23404         * doc/invoke.texi: Document new -fno-debug-types-section flag.
23405         * dwarf2out.c (use_debug_types): New define.
23406         (struct die_struct): Mark die_id with GTY desc use_debug_types.
23407         (print_die): Guard output of type unit signatures using
23408         use_debug_types.
23409         (build_abbrev_table): Replace assert of dwarf_version >= 4
23410         with assert on use_debug_types.
23411         (size_of_die): Likewise.
23412         (unmark_dies): Likewise.
23413         (value_format): Decide AT_ref_external form on use_debug_types.
23414         (output_die): Replace dwarf_version version check guard with
23415         use_debug_types where appropriate.
23416         (modified_type_die): Likewise.
23417         (gen_reference_type_die): Likewise.
23418         (dwarf2out_start_source_file): Likewise.
23419         (dwarf2out_end_source_file): Likewise.
23420         (prune_unused_types_walk_attribs): Likewise.
23421         (dwarf2out_finish): Likewise.
23422
23423 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
23424
23425         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
23426
23427 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23428
23429         PR rtl-optimization/48332
23430         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
23431         mode of input operand N and modeN to its actual mode.
23432
23433 2011-03-30  Jeff Law  <law@redhat.com>
23434
23435         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
23436         define accessor macro.
23437         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
23438         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
23439         (reg_equiv_init): Likewise.
23440         (reg_equivs_size): New variable.
23441         (reg_equiv_init_size): Remove.
23442         (allocate_initial_values): Move prototype to here from....
23443         * integrate.h (allocate_initial_values): Remove prototype.
23444         * integrate.c: Include reload.h.
23445         (allocate_initial_values): Corresponding changes.
23446         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
23447         (fix_reg_equiv_init, no_equiv): Corresponding changes.
23448         (update_equiv_regs): Corresponding changes.
23449         (ira): Corresponding changes.
23450         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
23451         (push_secondary_reload): Corresponding changes.
23452         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
23453         (make_memloc, find_reloads_address): Corresponding changes.
23454         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
23455         (find_reloads_address_1): Corresponding changes.
23456         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
23457         (refers_to_regno_for_reload_p): Corresponding changes.
23458         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
23459         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
23460         * reload1.c: Include ggc.h.
23461         (grow_reg_equivs): New function.
23462         (replace_pseudos_in, reload): Corresponding changes.
23463         (calculate_needs_all_insns, alter_regs): Corresponding changes.
23464         (eliminate_regs_1, elimination_effects): Corresponding changes.
23465         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
23466         (delete_output_reload): Likewise.
23467         * caller-save.c (mark_referenced_regs): Corresponding changes.
23468         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
23469         * frv/predicates.md (frv_load_operand): Corresponding changes.
23470         * microblaze/microblaze.c (double_memory_operand): Corresponding
23471         changes.
23472         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
23473         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
23474         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
23475         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
23476         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
23477         changes.
23478         * pa/pa.c (emit_move_sequence): Corresponding changes.
23479         * vax/vax.c (nonindexed_address_p): Corresponding changes.
23480
23481 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23482
23483         PR target/47551
23484         * config/arm/arm.c (coproc_secondary_reload_class): Handle
23485         structure modes.  Don't check neon_vector_mem_operand for
23486         vector or structure modes.
23487
23488 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
23489             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23490
23491         PR target/43590
23492         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
23493         operand 1 and reshuffle the operands to match.
23494         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
23495
23496 2011-03-30  Christian Schüler  <cschueler@gmx.de>
23497
23498         PR driver/48208
23499         * config/c.opt (F): Added 'Driver' to -F option.
23500
23501         PR driver/48260
23502         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
23503           handler function.
23504         * config/darwin.opt: Added '-arch' option.
23505
23506 2011-03-30  Nick Clifton  <nickc@redhat.com>
23507
23508         * config/rx/rx.md: Add peepholes and patterns to combine
23509         extending loads and simple arithmetic instructions.
23510         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
23511         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
23512         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
23513         modes to use pre-decrement and post-increment addressing.
23514         (rx_is_restricted_memory_address): Add range checking of REG+INT
23515         addresses.
23516         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
23517         (rx_memory_move_cost): Adjust cost of stores.
23518         (rx_adjust_insn_length): New function.
23519
23520 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
23521
23522         PR c/48305
23523         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23524         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
23525         matching arg00/arg01 types.
23526
23527 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
23528
23529         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
23530         last_location to UNKNOWN_LOCATION.
23531
23532 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
23533
23534         PR target/48349
23535         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
23536         FLOAT_SSE_REGS.
23537
23538 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
23539             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23540
23541         PR bootstrap/48337
23542         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
23543         Init(PROCESSOR_V7).
23544         (sparc_cpu): Likewise.
23545         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
23546         PROCESSOR_V7.
23547
23548 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23549
23550         PR target/48336
23551         PR middle-end/48342
23552         PR rtl-optimization/48345
23553         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
23554         hard regs for given mode from profitable regs when doing secondary
23555         allocation.
23556
23557 2011-03-29  Jeff Law  <law@redhat.com>
23558
23559         PR bootstrap/48327
23560         * tree-ssa-threadupdate.c (struct redirection_data): Remove
23561         do_not_duplicate field.
23562         (lookup_redirection_data): Corresponding changes.
23563         (create_duplicates): Always create a template block.
23564         (redirect_edges): Remove code which reused the original block
23565         when it was going to become unreachable code.
23566         (thread_block): Don't set do_not_duplicate field.
23567
23568 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
23569
23570         * lto-opts.c (register_user_option_p, lto_register_user_option):
23571         Make type argument unsigned.
23572         * lto-streamer.h (lto_register_user_option): Make type argument
23573         unsigned.
23574         * opth-gen.awk: Make CL_* macros unsigned.
23575         * opts-common.c (find_opt): Make lang_mask argument unsigned.
23576         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
23577         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
23578         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
23579         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
23580         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
23581         (find_opt): Make lang_mask argument unsigned.
23582
23583 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23584
23585         PR rtl-optimization/48331
23586         PR rtl-optimization/48334
23587         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
23588         for any used algorithm.
23589
23590 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
23591
23592         * ira-conflicts.c (build_object_conflicts): Add unused attribute
23593         to parent_max.
23594
23595 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
23596
23597         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
23598         (alpha_option_override): Don't set alpha_sr_alias_set.
23599         (emit_frame_store_1): Use gen_frame_mem rather than calling
23600         set_mem_alias_set.
23601         (alpha_expand_epilogue): Ditto.
23602
23603 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
23604
23605         PR tree-optimization/48290
23606         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
23607         vectorization, check that relevant phis in the basic block after
23608         the inner loop are really inner loop's exit phis.
23609
23610 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
23611
23612         PR debug/48190
23613         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
23614         (cached_dw_loc_list_def): New structure.
23615         (cached_dw_loc_list): New typedef.
23616         (cached_dw_loc_list_table): New variable.
23617         (cached_dw_loc_list_table_hash): New function.
23618         (cached_dw_loc_list_table_eq): Likewise.
23619         (add_location_or_const_value_attribute): Take a bool cache_p.
23620         Cache the list when the parameter is true.
23621         (gen_formal_parameter_die): Update caller.
23622         (gen_variable_die): Likewise.
23623         (dwarf2out_finish): Likewise.
23624         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
23625         while generating debug info for the decl.
23626         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
23627         (dwarf2out_init): Initialize cached_dw_loc_list_table.
23628         (resolve_addr): Cache the result of resolving a chain of
23629         location lists.
23630
23631 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23632
23633         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
23634         conflict object hard regset nodes have intersecting hard reg sets.
23635
23636         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
23637         after regstat_init_n_sets_and_refs.
23638
23639         * ira.c: Add more comments at the top.
23640         (setup_stack_reg_pressure_class, setup_pressure_classes):
23641         Add comments how we compute the register pressure classes.
23642         (setup_allocno_and_important_classes): Add more comments.
23643         (setup_class_translate_array, reorder_important_classes)
23644         (setup_reg_class_relations): Add comments.
23645
23646         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
23647         start of the file.
23648
23649         * ira-color.c: Add 2011 to the Copyright line.
23650         (assign_hard_reg):  Add more comments.
23651         (improve_allocation): Ditto.
23652
23653         * ira-costs.c: Add 2011 to the Copyright line.
23654         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
23655         comments.
23656         (setup_regno_cost_classes_by_mode): Ditto.
23657
23658         Initial patches from ira-improv branch:
23659
23660         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23661
23662         * ira-build.c (ira_create_object): Remove initialization of
23663         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
23664         (ira_create_allocno): Remove initialization of
23665         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
23666         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
23667         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23668         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
23669         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
23670         Initialize ALLOCNO_ADD_DATA.
23671         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
23672         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
23673         ALLOCNO_REG.
23674         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
23675         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
23676
23677         * ira.c (ira_reallocate): Remove.
23678         (setup_pressure_classes): Call
23679         ira_init_register_move_cost_if_necessary.  Use
23680         ira_register_move_cost instead of ira_get_register_move_cost.
23681         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
23682         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
23683
23684         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
23685         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
23686         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
23687         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
23688         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
23689         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
23690         Fix formatting.
23691         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
23692         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23693         (struct allocno_color_data): New.
23694         (allocno_color_data_t): New typedef.
23695         (allocno_color_data): New definition.
23696         (ALLOCNO_COLOR_DATA): New macro.
23697         (struct object_color_data): New.
23698         (object_color_data_t): New typedef.
23699         (object_color_data): New definition.
23700         (OBJECT_COLOR_DATA): New macro.
23701         (update_copy_costs, calculate_allocno_spill_cost): Call
23702         ira_init_register_move_cost_if_necessary.  Use
23703         ira_register_move_cost instead of ira_get_register_move_cost.
23704         (move_spill_restore, update_curr_costs): Ditto.
23705         (allocno_spill_priority): Make it inline.
23706         (color_pass): Allocate and free allocno_color_dat and object_color_data.
23707         (struct coalesce_data, coalesce_data_t): New.
23708         (allocno_coalesce_data): New definition.
23709         (ALLOCNO_COALESCE_DATA): New macro.
23710         (merge_allocnos, coalesced_allocno_conflict_p): Use
23711         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
23712         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
23713         (coalesce_allocnos): Ditto.
23714         (setup_coalesced_allocno_costs_and_nums): Ditto.
23715         (collect_spilled_coalesced_allocnos): Ditto.
23716         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
23717         (setup_slot_coalesced_allocno_live_ranges): Ditto.
23718         (coalesce_spill_slots): Ditto.
23719         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
23720         free allocno_coalesce_data.
23721
23722         * ira-conflicts.c: Fix formatting.
23723         (process_regs_for_copy): Call
23724         ira_init_register_move_cost_if_necessary.  Use
23725         ira_register_move_cost instead of ira_get_register_move_cost.
23726         (build_object_conflicts): Optimize.
23727
23728         * ira-costs.c (record_reg_classes): Optimize.  Call
23729         ira_init_register_move_cost_if_necessary.  Use
23730         ira_register_move_cost, ira_may_move_in_cost, and
23731         ira_may_move_out_cost instead of ira_get_register_move_cost and
23732         ira_get_may_move_cost.
23733         (record_address_regs): Ditto.
23734         (scan_one_insn): Optimize.
23735         (find_costs_and_classes): Optimize.
23736         (process_bb_node_for_hard_reg_moves): Call
23737         ira_init_register_move_cost_if_necessary.  Use
23738         ira_register_move_cost instead of ira_get_register_move_cost.
23739
23740         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
23741         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
23742         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
23743         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
23744         definitions.
23745         (ira_initiate_emit_data, ira_finish_emit_data)
23746         (create_new_allocno): New functions.
23747         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
23748         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
23749         Use ira_register_move_cost instead of ira_get_register_move_cost.
23750
23751         * ira-int.h: Fix some comments.
23752         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
23753         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
23754         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
23755         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
23756         add_data.
23757         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
23758         bitfield after mode.  Make hard_regno a short int.  Make
23759         hard_regno short.  Remove first_coalesced_allocno and
23760         next_coalesced_allocno.  Move mem_optimized_dest_p,
23761         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
23762         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
23763         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
23764         temp, colorable_p.  Add new member add_data.
23765         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
23766         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
23767         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
23768         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
23769         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
23770         (ALLOCNO_ADD_DATA): New macro.
23771         (ira_emit_data_t): New typedef.
23772         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
23773         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
23774         from struct ira_allocno.
23775         (ALLOCNO_EMIT_DATA): New macro.
23776         (ira_allocno_emit_data, allocno_emit_reg): New.
23777         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
23778         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
23779         (OBJECT_ADD_DATA): New macro.
23780         (ira_reallocate): Remove.
23781         (ira_initiate_emit_data, ira_finish_emit_data): New.
23782         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
23783         (ira_init_register_move_cost_if_necessary): New.
23784         (ira_object_conflict_iter_next): Merge into
23785         ira_object_conflict_iter_cond.
23786         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
23787
23788         * ira-live.c (process_single_reg_class_operands): Call
23789         ira_init_register_move_cost_if_necessary.  Use
23790         ira_register_move_cost instead of ira_get_register_move_cost.
23791
23792         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
23793
23794         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
23795
23796         * ira-costs.c: Fix formatting.
23797         (cost_classes, cost_classes_num): Remove.
23798         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
23799         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
23800         (cost_classes_del, cost_classes_htab): New.
23801         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
23802         (initiate_regno_cost_classes, setup_cost_classes): New.
23803         (setup_regno_cost_classes_by_aclass): New.
23804         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
23805         (record_reg_classes): Use regno_cost_classes instead of
23806         cost_classes.  Move checking opposite operand up.
23807         (record_address_regs): Use regno_cost_classes
23808         instead of cost_classes.
23809         (scan_one_insn): Ditto.  Use always general register.
23810         (print_allocno_costs): Use regno_cost_classes instead of
23811         cost_classes.
23812         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
23813         (find_costs_and_classes): Set up cost classes for each registers.
23814         Use also their mode for this.  Use regno_cost_classes instead of
23815         cost_classes.
23816         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
23817         cost_classes.
23818         (free_ira_costs, ira_init_costs): Don't use cost_classes.
23819         (ira_costs, ira_set_pseudo_classes): Call
23820         initiate_regno_cost_classes and finish_regno_cost_classes.
23821
23822         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
23823
23824         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
23825
23826         * target.def (ira_cover_classes): Remove.
23827
23828         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
23829
23830         * doc/tm.texi.in: Ditto.
23831
23832         * ira-conflicts.c: Remove mentioning cover classes from the file.
23833         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
23834         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
23835
23836         * targhooks.c (default_ira_cover_classes): Remove.
23837
23838         * targhooks.h (default_ira_cover_classes): Ditto.
23839
23840         * haifa-sched.c: Remove mentioning cover classes from the file.
23841         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
23842         ira_pressure_classes and ira_pressure_classes_num instead of
23843         ira_reg_class_cover_size and ira_reg_class_cover.  Use
23844         sched_regno_pressure_class instead of sched_regno_cover_class.
23845         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
23846         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
23847
23848         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
23849         classes from the file.
23850         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
23851         (struct object_hard_regs, struct object_hard_regs_node): New.
23852         (struct ira_object): New members profitable_hard_regs,
23853         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
23854         (struct ira_allocno): Rename cover_class to aclass.  Rename
23855         cover_class_cost and updated_cover_class_cost to class_cost and
23856         updated_class_cost.  Remove splay_removed_p and
23857         left_conflict_size.  Add new members colorable_p.
23858         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
23859         (ALLOCNO_COLORABLE_P): New macro.
23860         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
23861         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
23862         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
23863         (OBJECT_...): Rename parameter C to O.
23864         (OBJECT_PROFITABLE_HARD_REGS): New macro.
23865         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
23866         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
23867         (struct target_ira_int): New members x_ira_max_memory_move_cost,
23868         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
23869         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
23870         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
23871         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
23872         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
23873         x_ira_reg_class_subunion.
23874         (ira_max_memory_move_cost, ira_max_register_move_cost)
23875         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
23876         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
23877         (ira_important_class_nums, ira_reg_class_superunion): New macros.
23878         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
23879         (ira_reg_class_union): Rename to ira_reg_class_subunion.
23880         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
23881         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
23882         (ira_tune_allocno_costs_and_cover_classes): Rename to
23883         ira_tune_allocno_costs.
23884         (ira_debug_hard_regs_forest): New.
23885         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
23886         (ira_object_conflict_iter_next): Fix comments.
23887         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
23888         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
23889         cover_class to aclass.
23890         (ira_allocate_and_accumulate_costs): Ditto.
23891         (ira_allocate_and_set_or_copy_costs): Ditto.
23892
23893         * opts.c (decode_options): Remove ira_cover_class check.
23894
23895         * ira-color.c: Remove mentioning cover classes from the file.  Use
23896         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
23897         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
23898         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
23899         (splay-tree.h): Remove include.
23900         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
23901         before copy_freq_compare_func.
23902         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
23903         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
23904         New definitions.
23905         (hard_regs_roots, hard_regs_node_vec): Ditto.
23906         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
23907         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
23908         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
23909         (create_new_object_hard_regs_node): Ditto.
23910         (add_new_object_hard_regs_node_to_forest): Ditto.
23911         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
23912         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
23913         Ditto.
23914         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
23915         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
23916         (remove_unused_object_hard_regs_nodes): Ditto.
23917         (enumerate_object_hard_regs_nodes): Ditto.
23918         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
23919         (object_hard_regs_subnode_t): Ditto.
23920         (struct object_hard_regs_subnode): Ditto.
23921         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
23922         (setup_object_hard_regs_subnode_index): Ditto.
23923         (get_object_hard_regs_subnodes_num): Ditto.
23924         (form_object_hard_regs_nodes_forest): Ditto.
23925         (finish_object_hard_regs_nodes_tree): Ditto.
23926         (finish_object_hard_regs_nodes_forest): Ditto.
23927         (allocnos_have_intersected_live_ranges_p): Rename to
23928         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23929         (pseudos_have_intersected_live_ranges_p): Rename to
23930         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
23931         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
23932         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
23933         (update_copy_costs): Remove assert.  Skip cost update if the hard
23934         reg does not belong the class.
23935         (assign_hard_reg): Process only profitable hard regs.
23936         (uncolorable_allocnos_num): Make it scalar.
23937         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
23938         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
23939         and ira_reg_class_max_nregs.
23940         (bucket_allocno_compare_func): Check frequency first.
23941         (sort_bucket): Add compare function as a parameter.
23942         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
23943         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
23944         (push_allocno_to_stack): Rewrite for checking new allocno
23945         colorability.
23946         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
23947         (push_only_colorable): Pass new parameter to sort_bucket.
23948         (push_allocno_to_spill): Remove.
23949         (allocno_spill_priority_compare): Make it inline and rewrite.
23950         (splay_tree_allocate, splay_tree_free): Remove.
23951         (allocno_spill_sort_compare): New function.
23952         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
23953         build and use splay tree.  Choose first allocno in uncolorable
23954         allocno bucket to spill.  Remove setting spill cost.
23955         (all_conflicting_hard_regs): Remove.
23956         (setup_allocno_available_regs_num): Check only profitable hard
23957         regs.  Print info about hard regs nodes.
23958         (setup_allocno_left_conflicts_size): Remove.
23959         (put_allocno_into_bucket): Don't call
23960         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
23961         (improve_allocation): New.
23962         (color_allocnos): Call setup_profitable_hard_regs,
23963         form_object_hard_regs_nodes_forest, improve_allocation,
23964         finish_object_hard_regs_nodes_forest.  Setup spill cost.
23965         (print_loop_title): Use pressure classes.
23966         (color_allocnso): Ditto.
23967         (do_coloring): Remove allocation and freeing splay_tree_node_pool
23968         and allocnos_for_spilling.
23969         (ira_sort_regnos_for_alter_reg): Don't setup members
23970         {first,next}_coalesced_allocno.
23971         (color): Remove allocating and freeing removed_splay_allocno_vec.
23972         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
23973         prohibited_class_mode_regs.
23974
23975         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
23976         formatting.
23977         (update_allocno_pressure_excess_length): Use pressure classes.
23978         (inc_register_pressure, dec_register_pressure): Check for pressure
23979         class.
23980         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
23981         pressure class.  Use ira_reg_class_nregs instead of
23982         ira_reg_class_max_nregs.
23983         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
23984         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
23985         (single_reg_class): Use ira_reg_class_nregs instead of
23986         ira_reg_class_max_nregs.
23987         (process_bb_node_lives): Use pressure classes.
23988
23989         * ira-emit.c: Remove mentioning cover classes from the file.  Use
23990         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
23991         (change_loop): Use pressure classes.
23992         (modify_move_list): Call ira_set_allocno_class instead of
23993         ira_set_allocno_cover_class.
23994
23995         * ira-build.c: Remove mentioning cover classes from the file.  Use
23996         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
23997         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
23998         ALLOCNO_UPDATED_CLASS_COST instead of
23999         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
24000         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
24001         (ira_create_allocno): Remove initialization of
24002         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
24003         ALLOCNO_COLORABLE_P.
24004         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
24005         Update conflict regs for the objects.
24006         (create_cap_allocno): Remove assert.  Don't propagate
24007         ALLOCNO_AVAILABLE_REGS_NUM.
24008         (ira_free_allocno_costs): New function.
24009         (finish_allocno): Change a part of code into call of
24010         ira_free_allocno_costs.
24011         (low_pressure_loop_node_p): Use pressure classes.
24012         (object_range_compare_func): Don't compare classes.
24013         (setup_min_max_conflict_allocno_ids): Ditto.
24014
24015         * loop-invariant.c: Remove mentioning cover classes from the file.
24016         Use ira_pressure_classes and ira_pressure_classes_num instead of
24017         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
24018         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
24019         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24020         Use reg_allocno_class instead of reg_cover_class.
24021         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
24022         STACK_REG_COVER_CLASS.
24023         (get_regno_cover_class): Rename to get_regno_pressure_class.
24024         (move_loop_invariants): Initialize and finalize regstat.
24025
24026         * ira.c: Remove mentioning cover classes from the file.  Add
24027         comments about coloring without cover classes.  Use ALLOCNO_CLASS
24028         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
24029         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
24030         setup_class_subset_and_memory_move_costs.
24031         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
24032         (setup_cover_and_important_classes): Rename to
24033         setup_allocno_and_important_classes.
24034         (setup_class_translate_array): New.
24035         (setup_class_translate): Call it for allocno and pressure classes.
24036         (cover_class_order): Rename to allocno_class_order.
24037         (comp_reg_classes_func): Use ira_allocno_class_translate instead
24038         of ira_class_translate.
24039         (reorder_important_classes): Set up ira_important_class_nums.
24040         (setup_reg_class_relations): Set up ira_reg_class_superunion.
24041         (print_class_cover): Rename to print_classes.  Add parameter.
24042         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
24043         Print pressure classes too.
24044         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
24045         setup_reg_subclasses.
24046         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24047         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24048         (setup_prohibited_class_mode_regs): Use
24049         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
24050         (clarify_prohibited_class_mode_regs): New function.
24051         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
24052         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
24053         (ira_init_once): Initialize them.
24054         (free_register_move_costs): Process them.
24055         (ira_init): Move calls of find_reg_classes and
24056         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
24057         Call clarify_prohibited_class_mode_regs.
24058         (ira_no_alloc_reg): Remove.
24059         (too_high_register_pressure_p): Use pressure classes.
24060
24061         * sched-deps.c: Remove mentioning cover classes from the file.
24062         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
24063         ira_pressure_classes and ira_pressure_classes_num instead of
24064         ira_reg_class_cover_size and ira_reg_class_cover.
24065         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
24066         sched_regno_pressure_class instead of sched_regno_cover_class.
24067         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
24068         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
24069
24070         * ira.h: Add 2010 to Copyright.
24071         (ira_no_alloc_reg): Remove external.
24072         (struct target_ira): Rename x_ira_hard_regno_cover_class,
24073         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
24074         x_ira_class_translate to x_ira_hard_regno_allocno_class,
24075         x_ira_allocno_classes_num, x_ira_allocno_classes, and
24076         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
24077         x_ira_pressure_classes, x_ira_pressure_class_translate, and
24078         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
24079         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
24080         x_ira_no_alloc_regs.
24081         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
24082         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
24083         ira_allocno_classes_num and ira_allocno_classes.
24084         (ira_class_translate): Rename to ira_allocno_class_translate.
24085         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
24086         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
24087         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
24088         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
24089         (ira_no_alloc_regs): New.
24090
24091         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
24092         classes from the file.  Use ALLOCNO_CLASS instead of
24093         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
24094         ALLOCNO_COVER_CLASS_COST.
24095         (regno_cover_class): Rename to regno_aclass.
24096         (record_reg_classes): Use ira_reg_class_subunion instead of
24097         ira_reg_class_union.
24098         (record_address_regs): Check overflow.
24099         (scan_one_insn): Ditto.
24100         (print_allocno_costs): Print total mem cost fore regional allocation.
24101         (print_pseudo_costs): Use REG_N_REFS.
24102         (find_costs_and_classes): Use classes intersected with them on the
24103         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
24104         ira_reg_class_union.  Use ira_allocno_class_translate and
24105         regno_aclass instead of ira_class_translate and regno_cover_class.
24106         Modify code for finding regno_aclass.  Setup preferred classes for
24107         the next pass.
24108         (setup_allocno_cover_class_and_costs): Rename to
24109         setup_allocno_class_and_costs.  Use regno_aclass instead of
24110         regno_cover_class.  Use ira_set_allocno_class instead of
24111         ira_set_allocno_cover_class.
24112         (init_costs, finish_costs): Use regno_aclass instead of
24113         regno_cover_class.
24114         (ira_costs): Use setup_allocno_class_and_costs instead of
24115         setup_allocno_cover_class_and_costs.
24116         (ira_tune_allocno_costs_and_cover_classes): Rename to
24117         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
24118         by processing objects.  Use ira_reg_class_max_nregs instead of
24119         ira_reg_class_nregs.
24120
24121         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
24122
24123         * sched-int.h: Remove mentioning cover classes from the file.
24124         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
24125
24126         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
24127         classes from the file.
24128         (struct reg_pref): Rename coverclass into allocnoclass.
24129         (reg_cover_class): Rename to reg_allocno_class.
24130
24131         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
24132
24133         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
24134
24135         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
24136
24137         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
24138
24139         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
24140
24141         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
24142
24143         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
24144
24145         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
24146
24147         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
24148
24149         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
24150
24151         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
24152         (i386_ira_cover_classes): Ditto.
24153
24154         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
24155
24156         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
24157
24158         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
24159
24160         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
24161
24162         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
24163
24164         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
24165
24166         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
24167         (mips_ira_cover_classes): Ditto.
24168
24169         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
24170
24171         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
24172
24173         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
24174
24175         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
24176
24177         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
24178
24179         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
24180         (IRA_COVER_CLASSES_VSX): Ditto.
24181
24182         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
24183         (rs6000_ira_cover_classes): Ditto.
24184
24185         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
24186
24187         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
24188
24189         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
24190
24191         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
24192
24193         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
24194
24195         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
24196
24197         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
24198
24199         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
24200
24201         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
24202
24203         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
24204
24205 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
24206
24207         PR debug/48253
24208         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
24209         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
24210         dw_fde_unlikely_section_end_label, cold_in_std_section,
24211         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
24212         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
24213         fields.
24214         (output_fde): Use dw_fde_second_{begin,end} if second is
24215         true, otherwise dw_fde_{begin,end}.
24216         (output_call_frame_info): Test dw_fde_second_begin != NULL
24217         instead of dw_fde_switched_sections.
24218         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
24219         fields, initialize new fields.  Initialize in_std_section
24220         unconditionally from the first partition.
24221         (dwarf2out_end_epilogue): Don't override dw_fde_end when
24222         dw_fde_second_begin is non-NULL.
24223         (dwarf2out_switch_text_section): Stop initializing removed
24224         dw_fde_struct fields, initialize new fields, initialize
24225         also dw_fde_end here.  Set dw_fde_switch_cfi even when
24226         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
24227         (struct var_loc_list_def): Add last_before_switch field.
24228         (arange_table, arange_table_allocated, arange_table_in_use,
24229         ARANGE_TABLE_INCREMENT, add_arange): Removed.
24230         (size_of_aranges): Count !in_std_section and !second_in_std_section
24231         hunks in fdes, instead of looking at arange_table_in_use.
24232         (output_aranges): Add aranges_length argument, don't call
24233         size_of_aranges here.  Instead of using aranges_table*
24234         emit ranges for fdes when !in_std_section resp.
24235         !second_in_std_section.
24236         (dw_loc_list): Break ranges crossing section switch.
24237         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
24238         use dw_fde_second_end instead of dw_fde_end as end of last range.
24239         (gen_subprogram_die): Don't call add_arange.  Use
24240         dw_fde_{begin,end} for first partition and if switched
24241         section dw_fde_second_{begin,end} for the second.
24242         (var_location_switch_text_section_1,
24243         var_location_switch_text_section): New functions.
24244         (dwarf2out_begin_function): Initialize cold_text_section even
24245         when function_section () isn't text_section.
24246         (prune_unused_types): Don't walk arange_table.
24247         (dwarf2out_finish): Don't needlessly test
24248         flag_reorder_blocks_and_partition when testing cold_text_section_used.
24249         If info_section_emitted, call size_of_aranges and if it indicates
24250         non-empty .debug_aranges, call output_aranges with the computed
24251         size.  Stop using removed dw_fde_struct fields, use
24252         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
24253         for second.
24254
24255         PR debug/48203
24256         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
24257         create ENTRY_VALUE if incoming or address of incoming's MEM
24258         is a hard REG.
24259         * dwarf2out.c (mem_loc_descriptor): Don't emit
24260         DW_OP_GNU_entry_value of DW_OP_fbreg.
24261         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
24262         on ENTRY_VALUE is able to find the canonical parameter VALUE.
24263         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
24264         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
24265         ENTRY_VALUE_EXPs.
24266         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
24267         is a REG_P or MEM_P with REG_P address, compute hash directly
24268         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
24269         (preserve_only_constants): Don't clear VALUES forwaring
24270         ENTRY_VALUE to some other VALUE.
24271
24272 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
24273
24274         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
24275         instead of GEN_INT.
24276
24277 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24278
24279         * cfgexpand.c (expand_gimple_cond): Always set the source location and
24280         block before expanding the statement.
24281         (expand_gimple_stmt_1): Likewise.  Set them here...
24282         (expand_gimple_stmt): ...and not here.  Tidy.
24283         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
24284         unknown.
24285
24286 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24287
24288         * Makefile.in: New rule for cprop.o.
24289         * gcse.c: Move constant/copy propagation to cprop.c.
24290         (compute_local_properties): Only handle expression tables.
24291         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
24292         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
24293         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
24294         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
24295         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
24296         compute_cprop_data, find_used_regs, try_replace_reg,
24297         find_avail_set, cprop_jump, constprop_register, cprop_insn,
24298         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
24299         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
24300         find_bypass_set, reg_killed_on_edge, bypass_block,
24301         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
24302         execute_rtl_cprop, pass_rtl_cprop): Move to...
24303         * cprop.c: ...here.  New file, constant/copy propagation for RTL
24304         moved from gcse.c to here with minor cleanups in duplicated code.
24305
24306 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
24307
24308         * config/i386/i386.c (flag_opts): Fix a typo in
24309         -mavx256-split-unaligned-store.
24310
24311 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24312
24313         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24314         LIBCALL_VALUE): Remove macros.
24315         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24316         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24317         (h8300_function_value, h8300_libcall_value,
24318         h8300_function_value_regno_p): New functions.
24319
24320 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
24321
24322         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
24323
24324 2011-03-28  Jeff Law  <law@redhat.com>
24325
24326         * tree-ssa-threadupdate.c (redirect_edges): Call
24327         create_edge_and_update_destination_phis as needed.
24328         (create_edge_and_update_destination_phis): Accept new BB argument.
24329         All callers updated.
24330         (thread_block): Do not update the profile when threading around
24331         intermediate blocks.
24332         (thread_single_edge): Likewise.
24333         (determine_bb_domination_status): If BB is not a successor of the
24334         loop header, return NONDOMINATING.
24335         (register_jump_thread): Note when we register a jump thread around
24336         an intermediate block.
24337         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
24338         (thread_across_edge): Use it.
24339
24340 2011-03-28  Tristan Gingold  <gingold@adacore.com>
24341
24342         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
24343         when for_return is 2.
24344
24345 2011-03-28  Jeff Law  <law@redhat.com>
24346
24347         * var-tracking.c (canonicalize_values_mark): Delete unused
24348         lhs assignment.
24349         (canonicalize_values_star, set_variable_part): Likewise.
24350         (clobber_variable_part, delete_variable_part): Likewise.
24351
24352 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
24353
24354         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
24355
24356 2011-03-28  Martin Jambor  <mjambor@suse.cz>
24357
24358         * tree-inline.c (expand_call_inline): Do not check that destination
24359         node is analyzed.
24360         (optimize_inline_calls): Assert that destination node is analyzed.
24361         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
24362         not call tree_lowering_passes.
24363         * cgraph.h (cgraph_analyze_function): Declare.
24364         * cgraphunit.c (cgraph_analyze_function): Make public.
24365
24366 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
24367
24368         * config/sparc/sparc-opts.h: New.
24369         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
24370         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
24371         (sparc_option_override): Store processor_type enumeration rather
24372         than string in cpu_default.  Remove name and enumeration from
24373         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
24374         without using sparc_select.  Use target_flags_explicit instead of
24375         fpu_option_set.
24376         * config/sparc/sparc.h (enum processor_type): Move to
24377         sparc-opts.h.
24378         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
24379         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
24380         HeaderInclude entry.
24381         (mcpu=, mtune=): Use Var and Enum.
24382         (sparc_processor_type): New Enum and EnumValue entries.
24383
24384 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24385             Iain Sandoe  <iains@gcc.gnu.org>
24386
24387         PR target/48245
24388         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
24389
24390 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
24391
24392         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
24393         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
24394         Insert new statements at it in lieu of STMT.
24395         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
24396         * tree-vect-stmts.c (vectorizable_store): Likewise.
24397         (vectorizable_load): Likewise.
24398
24399 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
24400
24401         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
24402         (divtf3): Ditto.
24403         (multf3): Ditto.
24404         (subtf3): Ditto.
24405
24406 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24407
24408         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
24409         unaligned 256bit load/store.
24410         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
24411         (*avx_movdqu<avxmodesuffix>): Likewise.
24412
24413 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24414
24415         PR target/48288
24416         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
24417         * config/pa/pa.md (iordi3): Use new predicate in expander.
24418         (iorsi3): Likewise.
24419
24420 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
24421
24422         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
24423         FUNCTION_VALUE_REGNO_P): Remove macros.
24424         * config/mips/mips-protos.h (mips_function_value): Remove.
24425         * config/mips/mips.c (mips_function_value): Rename to...
24426         (mips_function_value_1): ... this. Make static.  Handle receiving
24427         the function type in 'fn_decl_or_type' argument.
24428         (mips_function_value, mips_libcall_value,
24429         mips_function_value_regno_p): New function.
24430         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24431         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24432
24433 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
24434
24435         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
24436         and -mavx256-split-unaligned-store.
24437         (ix86_option_override_internal): Split 32-byte AVX unaligned
24438         load/store by default.
24439         (ix86_avx256_split_vector_move_misalign): New.
24440         (ix86_expand_vector_move_misalign): Use it.
24441
24442         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
24443         -mavx256-split-unaligned-store.
24444
24445         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
24446         256bit load/store.  Generate unaligned store on misaligned memory
24447         operand.
24448         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
24449         256bit load/store.
24450         (*avx_movdqu<avxmodesuffix>): Likewise.
24451
24452         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
24453         -mavx256-split-unaligned-store.
24454
24455 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24456
24457         PR target/38598
24458         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
24459         Update commentary.
24460
24461 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
24462
24463         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
24464         opno arguments with an expand_operand.  Use create_input_operand.
24465         (mips_prepare_builtin_target): Delete.
24466         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
24467         functions.
24468         (mips_expand_builtin_direct): Use create_output_operand and
24469         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
24470         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
24471         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
24472
24473 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
24474
24475         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
24476         function.
24477         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
24478
24479 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
24480
24481         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
24482         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
24483         basic blocks and call commit_edge_insertions directly.
24484         (fixup_abnormal_edges): Move from here to...
24485         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
24486         on the edges and return whether some have actually been inserted.
24487         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
24488         compensation code.
24489
24490 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
24491
24492         PR rtl-optimization/48144
24493         * sel-sched-ir.c (merge_history_vect): Factor out from ...
24494         (merge_expr_data): ... here.
24495         (av_set_intersect): Rename to av_set_code_motion_filter.
24496         Update all callers.  Call merge_history_vect when an expression
24497         is found in both sets.
24498         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
24499
24500 2011-03-26  Alan Modra  <amodra@gmail.com>
24501
24502         * config/rs6000/predicates.md (word_offset_memref_op): Handle
24503         cmodel medium addresses.
24504         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
24505         64-bit gpr loads and stores.
24506         (rs6000_secondary_reload_ppc64): New function.
24507         * config/rs6000/rs6000-protos.h: Declare it.
24508         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
24509
24510 2011-03-26  Alan Modra  <amodra@gmail.com>
24511
24512         PR target/47487
24513         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
24514         GNU Go in traceback table.
24515
24516 2011-03-25  Richard Henderson  <rth@redhat.com>
24517
24518         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
24519         if there are exactly 6 operands.
24520         (set_storage_via_setmem): Similarly.
24521
24522 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24523
24524         * collect2.c (write_c_file_stat): Handle backslash
24525         as right-hand directory separator.
24526         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
24527         checking just for slash.
24528         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
24529         instead of checking for trailing slash.
24530         * gcc.c (record_temp_file): Use filename_cmp instead
24531         of strcmp.
24532         (do_spec_1): Likewise.
24533         (replace_outfile_spec_function): Likewise.
24534         (is_directory): Use filename_ncmp instead of strncmp.
24535         (print_multilib_info): Likewise.
24536         * gcov.c (find_source): Use filename_cmp instead
24537         instead of strcmp.
24538         (make_gcov_file_name): Fix order of slash/backslash
24539         checks.
24540         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
24541         (add_standard_paths): Likewise.
24542         * mips-tfile.c (saber_stop): Handle backslash.
24543         * prefix.c (update_path): Use filename_ncmp instead of
24544         strncmp.
24545         * profile.c (output_location): Use filename_cmp instead
24546         of strcmp.
24547         * read-md.c (handle_toplevel_file): Handle backslash.
24548         * tlink.c (frob_extension):  Likewise.
24549         * tree-cfg.c (same_line_p): Use filename_cmp instead of
24550         strcmp.
24551         * tree-dump.c (dequeue_and_dump): Handle backslash.
24552         * tree.c (get_file_function_name): Likewise.
24553         * gengtype.c (read_input_list): Likewise.
24554         (get_file_realbasename): Likewise.
24555         (get_output_file_with_visibility): Use filename_cmp
24556         instead of strcmp.
24557
24558 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
24559
24560         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
24561         case to VFPv1.
24562
24563 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24564
24565         * fold-const.c (expr_location_or): New function.
24566         (fold_truth_not_expr): Call it.
24567
24568 2011-03-25  Jeff Law  <law@redhat.com>
24569
24570         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
24571         va_end.
24572         * c-family/c-common.c (def_fn_type): Likewise.
24573         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
24574         * emit-rtl.c (gen_rtvec): Likewise.
24575         * lto/lto-lang.c (def_fn_type): Likewise.
24576
24577 2011-03-25  Richard Guenther  <rguenther@suse.de>
24578
24579         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
24580         also generate copies.
24581         (fini_copy_prop): Handle constant values properly.
24582
24583 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
24584
24585         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
24586         mode size instead of bitsize with DWARF2_ADDR_SIZE.
24587         (hash_loc_operands, compare_loc_operands): Handle
24588         DW_OP_GNU_entry_value.
24589
24590 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24591
24592         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
24593         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
24594         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
24595         comment and use macro TARGET_64BIT_MS_ABI instead.
24596         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
24597         and change default behavior for 32-bit MS_ABI.
24598         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
24599         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
24600         32-bit, too.
24601         (ix86_cfun_abi): Likewise.
24602         (ix86_maybe_switch_abi): Adjust comment.
24603         (init_cumulative_args): Check for bit-ness in MS_ABI case.
24604         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
24605         instead of checking for SYSV_ABI.
24606         (ix86_nsaved_sseregs): Likewise.
24607         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
24608         to 16 bytes.
24609         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
24610         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
24611         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
24612         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
24613         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
24614
24615 2011-03-25  Richard Guenther  <rguenther@suse.de>
24616
24617         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
24618         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24619         (verify_gimple): Remove.
24620         * tree-cfg.c (verify_gimple_call): Merge verification
24621         from verify_stmts.
24622         (verify_gimple_phi): Merge verification from verify_stmts.
24623         (verify_gimple_label): New function.
24624         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
24625         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
24626         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
24627         (verify_stmts): Rename to verify_gimple_in_cfg.
24628         (verify_gimple_in_cfg): New function.
24629         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
24630         * tree-ssa.c (verify_ssa): Likewise.
24631         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
24632
24633 2011-03-25  Richard Guenther  <rguenther@suse.de>
24634
24635         * passes.c (init_optimization_passes): Add FRE pass after
24636         early SRA.
24637
24638 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
24639             Andrew Stubbs  <ams@codesourcery.com>
24640
24641         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
24642         for Cortex-A8.
24643         (arm_movdi_vfp_cortexa8): New pattern.
24644         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
24645         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
24646         instructions when tuning for Cortex-A8.  Set attribute "arch".
24647         * config/arm/arm.md: Move include arm-tune.md up a bit.
24648         (define_attr "arch"): Add "onlya8" and "nota8" values.
24649         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
24650
24651 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
24652
24653         PR bootstrap/48282
24654         Revert:
24655         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24656
24657         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24658         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24659         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24660         * passes.c (init_optimization_passes): Move
24661         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24662
24663 2011-03-25  Kai Tietz  <ktietz@redhat.com>
24664
24665         * c-typeck.c (comptypes_internal): Replace target
24666         hook call of comp_type_attributes by version in tree.c file.
24667         * gimple.c (gimple_types_compatible_p_1): Likewise.
24668         * tree-ssa.c (useless_type_conversion_p): Likewise.
24669         * tree.c (build_type_attribute_qual_variant): Likewise.
24670         (attribute_value_equal): New static helper function.
24671         (comp_type_attributes): New function.
24672         (merge_attributes): Use attribute_value_equal for comparison.
24673         (attribute_list_contained): Likewise.
24674         * tree.h (comp_type_attributes): New prototype.
24675
24676 2011-03-25  Richard Guenther  <rguenther@suse.de>
24677
24678         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
24679         of complex types at -O0.
24680         (verify_gimple_assign_binary): Likewise.
24681         (verify_gimple_assign_ternary): Likewise.
24682
24683 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24684
24685         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
24686         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
24687
24688 2011-03-24  Mark Wielaard  <mjw@redhat.com>
24689
24690         PR debug/48041
24691         * dwarf2out.c (output_abbrev_section): Only write table when
24692         abbrev_die_table_in_use > 1.
24693
24694 2011-02-24  Richard Henderson  <rth@redhat.com>
24695
24696         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
24697         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
24698         (alpha_expand_unaligned_load_words): Use extql.
24699         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
24700         (emit_insxl): Handle all modes for consistency.
24701
24702 2011-02-24  Richard Henderson  <rth@redhat.com>
24703
24704         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
24705         (alpha_expand_unaligned_load): Likewise.
24706         (alpha_expand_unaligned_store): Likewise.
24707         (alpha_expand_unaligned_load_words): Likewise.
24708         (alpha_expand_unaligned_store_words): Likewise.
24709         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
24710         (alpha_split_lock_test_and_set_12): Likewise.
24711         (print_operand, alpha_fold_builtin_extxx): Likewise.
24712         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
24713         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
24714         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
24715         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
24716         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
24717         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
24718         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
24719         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
24720         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
24721         (extwl, extll, extql): Similarly.
24722         (inswh, inslh, insqh): Similarly.
24723         (mskbl, mskwl, mskll, mskql): Similarly.
24724         (mskwh, msklh, mskqh): Similarly.
24725
24726 2011-02-24  Richard Henderson  <rth@redhat.com>
24727
24728         * config/alpha/alpha.md (attribute isa): Add er, ner.
24729         (attribute enabled): Handle them.
24730         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
24731
24732 2011-02-24  Richard Henderson  <rth@redhat.com>
24733
24734         * config/alpha/alpha.md (attribute isa): Add vms.
24735         (attribute enabled): Handle it.
24736         (*movsf): Merge *movsf_{nofix,fix,nofp}.
24737         (*movdf): Merge *movdf_{nofix,fix,nofp}.
24738         (*movtf): Rename from *movtf_internal for consistency.
24739         (*movsi): Merge with *movsi_nt_vms.
24740         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
24741         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
24742         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
24743         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
24744
24745 2011-02-24  Richard Henderson  <rth@redhat.com>
24746
24747         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
24748         (extendqisi2, extendhisi2): Likewise.
24749         (extendqidi2): Simplify BWX/non-BWX expansions.
24750         (extendhidi2): Similarly.
24751
24752 2011-02-24  Richard Henderson  <rth@redhat.com>
24753
24754         * config/alpha/alpha.md (attribute isa): New.
24755         (attribute enabled): New.
24756         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
24757         (zero_extendqisi2, zero_extendqidi2): Similarly.
24758         (zero_extendhisi2, zero_extendhidi2): Similarly.
24759         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
24760
24761 2011-02-24  Richard Henderson  <rth@redhat.com>
24762
24763         * config/alpha/predicates.md (input_operand): Revert last change;
24764         update comment to mention 32-bit VMS rather than Windows.
24765
24766 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24767
24768         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
24769         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
24770         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
24771         * passes.c (init_optimization_passes): Move
24772         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
24773
24774 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24775
24776         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
24777
24778 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24779
24780         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
24781         correctly.
24782
24783 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
24784
24785         PR debug/48204
24786         * simplify-rtx.c (simplify_const_unary_operation): Call
24787         real_convert when changing mode class with FLOAT_EXTEND.
24788
24789 2011-03-24  Nick Clifton  <nickc@redhat.com>
24790
24791         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
24792         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
24793         * config/rx/rx.c (rx_option_override): Set align_jumps,
24794         align_loops and align_labels if not set by the user.
24795         (rx_align_for_label): New function.
24796         (rx_max_skip_for_label): New function.
24797         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
24798         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
24799         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
24800         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
24801         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
24802
24803 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24804
24805         PR rtl-optimization/48263
24806         * optabs.c (expand_binop_directly): Reinstate convert_modes code
24807         and original commutative_p handling.  Use maybe_gen_insn.
24808
24809 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24810
24811         * reload.c (find_reloads_subreg_address): Add address_reloaded
24812         parameter and return true there if the full address has been
24813         reloaded.
24814         (find_reloads_toplev): Pass address_reloaded flag.
24815         (find_reloads_address_1): Don't use address_reloaded parameter.
24816
24817 2011-03-24  Jeff Law  <law@redhat.com>
24818
24819         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
24820         unused variable "ann".
24821         (remove_unused_locals): Likewise.
24822
24823         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
24824         statement.
24825
24826         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
24827         after it is freed.
24828
24829 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24830
24831         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
24832         for invalid symbolic addresses.
24833         (s390_secondary_reload): Don't use s390_check_symref_alignment for
24834         larl operands.
24835
24836 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24837
24838         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
24839         the argument in calls to fold_truth_not_expr.
24840
24841 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24842
24843         * tree.c (record_node_allocation_statistics): New function.
24844         (make_node_stat, copy_node_stat, build_string): Call it.
24845         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
24846         (build1_stat, build_omp_clause): Likewise.
24847
24848 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24849
24850         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
24851         last commit.
24852
24853 2011-03-24  Richard Guenther  <rguenther@suse.de>
24854
24855         PR tree-optimization/48271
24856         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
24857         blocks that still exist.
24858
24859 2011-03-24  Richard Guenther  <rguenther@suse.de>
24860
24861         PR tree-optimization/48270
24862         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
24863         not free datarefs before ddrs.
24864
24865 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
24866
24867         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
24868         from the address built for a reference with variable offset.
24869
24870 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
24871
24872         PR target/48237
24873         * config/i386/i386.md (*movdf_internal_rex64): Do not split
24874         alternatives that can be handled with movq or movabsq insn.
24875         (*movdf_internal): Disable for !TARGET_64BIT.
24876         (*movdf_internal_nointeger): Ditto.
24877         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
24878
24879 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
24880
24881         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
24882         (FUNCTION_ARG_ADVANCE): Likewise.
24883         * tm.texi.in: Change references to them to hook references.
24884         * tm.texi: Regenerate.
24885         * targhooks.c (default_function_arg): Eliminate check for target macro.
24886         (default_function_incoming_arg): Likewise.
24887         (default_function_arg_advance): Likewise.
24888         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
24889         (function_arg_advance): Likewise.
24890         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
24891
24892 2011-03-24  Richard Guenther  <rguenther@suse.de>
24893
24894         PR middle-end/48269
24895         * tree-object-size.c (addr_object_size): Do not double-account
24896         for MEM_REF offsets.
24897
24898 2011-03-24  Diego Novillo  <dnovillo@google.com>
24899
24900         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
24901         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
24902         (lto_input_data_block): Move from lto-opts.c.  Make extern.
24903         Update all users.
24904         (lto_input_string): Rename from input_string.  Make extern.
24905         Update all users.
24906         * lto-streamer-out.c (lto_output_string_with_length): Rename from
24907         output_string_with_length.
24908         Output 0 to indicate a non-NULL string.  Update all callers to
24909         not emit 0.
24910         (lto_output_string): Rename from output_string.  Make extern.
24911         Update all users.
24912         (lto_output_decl_state_streams): Make extern.
24913         (lto_output_decl_state_refs): Make extern.
24914         * lto-streamer.h (lto_input_string): Declare.
24915         (lto_input_data_block): Declare.
24916         (lto_output_string): Declare.
24917         (lto_output_string_with_length): Declare.
24918         (lto_output_decl_state_streams): Declare.
24919         (lto_output_decl_state_refs): Declare.
24920
24921 2011-03-24  Richard Guenther  <rguenther@suse.de>
24922
24923         PR tree-optimization/46562
24924         * tree.c (build_invariant_address): New function.
24925         * tree.h (build_invariant_address): Declare.
24926         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
24927         a renamed function moved ...
24928         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
24929         Take valueization callback parameter.
24930         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
24931         * gimple-fold.h: New file.
24932         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
24933         (ccp_fold, fold_const_aggregate_ref,
24934         fold_ctor_reference, fold_nonarray_ctor_reference,
24935         fold_array_ctor_reference, fold_string_cst_ctor_reference,
24936         get_base_constructor): Move ...
24937         * gimple-fold.c: ... here.
24938         (gimple_fold_stmt_to_constant_1): New function
24939         split out from ccp_fold.  Take a valueization callback parameter.
24940         Valueize all operands.
24941         (gimple_fold_stmt_to_constant): New wrapper function.
24942         (fold_const_aggregate_ref_1): New function split out from
24943         fold_const_aggregate_ref.  Take a valueization callback parameter.
24944         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
24945         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
24946         invariant POINTER_PLUS_EXPRs to invariant form.
24947         (vn_valueize): New function.
24948         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
24949         * tree-vrp.c (vrp_valueize): New function.
24950         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
24951         to fold statements to constants.
24952         * tree-ssa-pre.c (eliminate): Properly guard propagation of
24953         function declarations.
24954         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
24955         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
24956
24957 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
24958
24959         * config/h8300/predicates.md (jump_address_operand): Fix register
24960         mode check.
24961
24962 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
24963
24964         * doc/invoke.texi (max-stores-to-sink): Document.
24965         * params.h (MAX_STORES_TO_SINK): Define.
24966         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
24967         if either vectorization or if-conversion is disabled.
24968         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
24969         tree-vect-data-refs.c vect_equal_offsets.
24970         (dr_equal_offsets_p): New function.
24971         (find_data_references_in_bb): Remove static.
24972         * tree-data-ref.h (find_data_references_in_bb): Declare.
24973         (dr_equal_offsets_p): Likewise.
24974         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
24975         (vect_drs_dependent_in_basic_block): Update calls to
24976         vect_equal_offsets.
24977         (vect_check_interleaving): Likewise.
24978         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
24979         (cond_if_else_store_replacement): Rename to...
24980         (cond_if_else_store_replacement_1): ... this.  Change arguments and
24981         documentation.
24982         (cond_if_else_store_replacement): New function.
24983         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
24984         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
24985
24986 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
24987
24988         PR target/46934
24989         * config/arm/arm.md (casesi): Use the gen_int_mode() function
24990         to subtract lower bound instead of GEN_INT().
24991
24992 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
24993
24994         PR other/48179
24995         PR other/48221
24996         PR other/48234
24997         * doc/extend.texi (Alignment): Move section to match order in TOC.
24998         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
24999         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
25000
25001 2011-03-23  Jeff Law  <law@redhat.com>
25002
25003         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
25004         before removing the edge.
25005
25006         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
25007         it may have been freed by redirect_branch_edge or
25008         redirect_edge_succ_nodup.
25009
25010 2011-03-23  Richard Guenther  <rguenther@suse.de>
25011
25012         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
25013         (check_va_list_escapes): Likewise.
25014         (check_all_va_list_escapes): Likewise.
25015
25016 2011-03-23  Richard Guenther  <rguenther@suse.de>
25017
25018         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
25019         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
25020         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
25021         (alias.o): Likewise.
25022         (ipa-type-escape.o): Remove.
25023         (ipa-struct-reorg.o): Likewise.
25024         (GTFILES): Remove ipa-struct-reorg.c.
25025         * alias.c: Do not include ipa-type-escape.h.
25026         * tree-ssa-alias.c: Likewise.
25027         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
25028         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
25029         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
25030         and ipa-type-escape passes.
25031         * tree-pass.h (pass_ipa_type_escape): Remove.
25032         (pass_ipa_struct_reorg): Likewise.
25033         * ipa-struct-reorg.h: Remove.
25034         * ipa-struct-reorg.c: Likewise.
25035         * ipa-type-escape.h: Likewise.
25036         * ipa-type-escape.c: Likewise.
25037         * doc/invoke.texi (-fipa-struct-reorg): Remove.
25038         (--param struct-reorg-cold-struct-ratio): Likewise.
25039         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25040         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
25041         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
25042
25043 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25044
25045         * config/s390/2084.md: Enable all insn reservations also for z9_ec
25046         cpu attribute value.
25047         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
25048         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
25049         * config/s390/s390.c (processor_flags_table): New constant array.
25050         (s390_handle_arch_option): Remove.
25051         (s390_handle_option): Remove s390_handle_arch_option invocations
25052         and OPT_mwarn_framesize_ handling.
25053         (s390_option_override): Remove s390_handle_arch_option invocation.
25054         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
25055         warnings.
25056         * config/s390/s390.md (cpu attribute): Add z9_ec value.
25057         * config/s390/s390.opt (s390_tune, s390_arch)
25058         (march=): Replace s390_arch_option enum and values with
25059         processor_type.  Set variable name to s390_arch.  Set
25060         initialization value.
25061         (mtune=): Replace s390_arch_option with processor_type.  Set
25062         variable name to s390_tune.  Set initialization value.
25063
25064 2011-03-23  Julian Brown  <julian@codesourcery.com>
25065
25066         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
25067         accesses which are not naturally aligned.
25068
25069 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25070
25071         PR target/47553
25072         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
25073
25074 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
25075
25076         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
25077         parameter from "int" to "enum insn_code".
25078         (expand_operand_type): New enum.
25079         (expand_operand): New structure.
25080         (create_expand_operand): New function.
25081         (create_fixed_operand, create_output_operand): Likewise
25082         (create_input_operand, create_convert_operand_to): Likewise.
25083         (create_convert_operand_from, create_address_operand): Likewise.
25084         (create_integer_operand): Likewise.
25085         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
25086         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25087         (expand_insn, expand_jump_insn): Likewise.
25088         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
25089         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
25090         (expand_movstr, expand_builtin___clear_cache): Likewise.
25091         (expand_builtin_lock_release): Likewise.
25092         * explow.c (allocate_dynamic_stack_space): Likewise.
25093         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
25094         and use the default handling in that case.
25095         * expmed.c (check_predicate_volatile_ok): Delete.
25096         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
25097         (emit_cstore): Likewise.
25098         * expr.c (emit_block_move_via_movmem): Likewise.
25099         (set_storage_via_setmem, expand_assignment): Likewise.
25100         (emit_storent_insn, try_casesi): Likewise.
25101         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
25102         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
25103         (expand_vec_shift_expr, expand_binop_directly): Likewise.
25104         (expand_twoval_unop, expand_twoval_binop): Likewise.
25105         (expand_unop_direct, emit_indirect_jump): Likewise.
25106         (emit_conditional_move, vector_compare_rtx): Likewise.
25107         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
25108         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
25109         (expand_sync_lock_test_and_set): Likewise.
25110         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
25111         (emit_unop_insn): Likewise.
25112         (expand_copysign_absneg): Change icode to an insn_code.
25113         (create_convert_operand_from_type): New function.
25114         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
25115         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
25116         (expand_insn, expand_jump_insn): Likewise.
25117         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
25118         than const_int_operand for operand 2.
25119
25120 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25121
25122         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
25123         if possible.
25124
25125 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25126
25127         * emit-rtl.c (emit_pattern_before_noloc): New function.
25128         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
25129         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
25130         (emit_pattern_after_noloc): New function.
25131         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
25132         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
25133
25134 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25135
25136         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
25137         (__ffsDI2): Likewise.
25138
25139 2011-03-22  Richard Henderson  <rth@redhat.com>
25140
25141         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
25142         of !TARGET_ABI_OPEN_VMS.
25143         (alpha_trampoline_init, alpha_start_function): Likewise.
25144         (alpha_expand_epilogue, alpha_file_start): Likewise.
25145         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
25146         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
25147         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
25148         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
25149         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
25150
25151 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25152
25153         * config/s390/s390-opts.h: New.
25154         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
25155         s390_arch_flags, s390_warn_framesize, s390_stack_size,
25156         s390_stack_guard): Remove.
25157         (s390_handle_arch_option): Return void.  Take enum
25158         s390_arch_option value instead of string and searching array.
25159         (s390_handle_option): Don't assert that global structures are in
25160         use.  Access variables via opts pointer.  Use error_at.  Don't use
25161         sscanf for -mstack-guard= or -mstack-size=.  Update call to
25162         s390_handle_arch_option.
25163         (s390_option_override): Update call to s390_handle_arch_option.
25164         (s390_emit_prologue): Use %d format for s390_stack_size in
25165         diagnostic.  Use %wd for HOST_WIDE_INT.
25166         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
25167         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
25168         * config/s390/s390.opt (config/s390/s390-opts.h): New
25169         HeaderInclude entry.
25170         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
25171         s390_arch_flags, s390_warn_framesize): New Variable entries.
25172         (s390_arch_option): New Enum and EnumValue entries.
25173         (march=): Use Enum instead of Var.
25174         (mstack-guard=, mstack-size=): Use UInteger and Var.
25175         (mtune=): Use Enum.
25176
25177 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25178
25179         * config/score/score.c (score_handle_option): Don't assert that
25180         global structures are in use.  Access target_flags via opts
25181         pointer.  Use value of -march= option to determine target_flags
25182         settings.
25183         * config/score/score.opt (march=): Use Enum.
25184         (score_arch): New Enum and EnumValue entries.
25185
25186 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25187
25188         * config/mep/mep.c (option_mtiny_specified): Remove.
25189         (mep_option_override): Move register handling for -mivc2 from
25190         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
25191         instead of option_mtiny_specified.
25192         (mep_handle_option): Access target_flags via opts pointer.  Don't
25193         assert that global structures are in use.  Defer part of -mivc2
25194         handling and move it to mep_option_override.
25195         * config/mep/mep.opt (IVC2): New Mask entry.
25196         (mivc2): Use Var and Defer instead of Mask.
25197
25198 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25199
25200         * config/v850/v850-opts.h: New.
25201         * config/v850/v850.c (small_memory): Replace with
25202         small_memory_physical_max array.  Make that array static const.
25203         (v850_handle_memory_option): Take integer value of argument.  Take
25204         gcc_options pointer, option text and location.  Return void.
25205         Update for changes to small memory structures.
25206         (v850_handle_option): Access target_flags via opts pointer.  Don't
25207         assert that global structures are in use.  Update calls to
25208         v850_handle_memory_option.
25209         (v850_encode_data_area): Update references to small memory settings.
25210         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
25211         (enum small_memory_type): Move to v850-opts.h.
25212         * config/v850/v850.opt (config/v850/v850-opts.h): New
25213         HeaderInclude entry.
25214         (small_memory_max): New Variable entry.
25215         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
25216         (mtda, mzda): Likewise.
25217
25218 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25219
25220         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
25221         pointer.  Don't assert that global structures are in use.
25222
25223 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25224
25225         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
25226         via opts pointer.  Don't assert that global structures are in use.
25227
25228 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25229
25230         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
25231         (munix=93): Use Var.
25232         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
25233         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
25234         * config/pa/pa-opts.h: New.
25235         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
25236         (pa_handle_option): Don't assert that global structures are in
25237         use.  Access target_flags via opts pointer.  Don't handle
25238         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
25239         OPT_munix_98 here.
25240         (pa_option_override): Handle deferred OPT_mfixed_range_.
25241
25242 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25243
25244         * config/mn10300/mn10300-opts.h: New.
25245         * config/mn10300/mn10300.c (mn10300_processor,
25246         mn10300_tune_string): Remove.
25247         (mn10300_handle_option): Don't assert that global structures are
25248         in use.  Access mn10300_processor via opts pointer.  Don't handle
25249         OPT_mtune_ here.
25250         * config/mn10300/mn10300.h (enum processor_type): Move to
25251         mn10300-opts.h.
25252         (mn10300_processor): Remove.
25253         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
25254         HeaderInclude entry.
25255         (mn10300_processor): New Variable entry.
25256         (mtune=): Use Var.
25257
25258 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25259
25260         * config/microblaze/microblaze.c: Don't include opts.h.
25261         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
25262         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
25263         (mno-clearbss): Use Var and Warn.
25264
25265 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25266
25267         * config/m32r/m32r-opts.h: New.
25268         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
25269         (m32r_handle_option): Don't assert that global structures are in
25270         use.  Access target_flags and m32r_cache_flush_func via opts
25271         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
25272         OPT_mno_flush_trap here.
25273         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
25274         include of m32r-opts.h.
25275         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
25276         HeaderInclude entry.
25277         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
25278         (mmodel=): Use Enum and Var.
25279         (m32r_model): New Enum and EnumValue entries.
25280         (mno-flush-trap): Use Var.
25281         (msdata=): Use Enum and Var.
25282         (m32r_sdata): New Enum and EnumValue entries.
25283
25284 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25285
25286         * config/m32c/m32c.c: Don't include opts.h.
25287         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
25288         m32c_handle_option): Remove.
25289         (m32c_option_override): Check global_options_set.x_target_memregs
25290         instead of target_memregs_set.
25291         * config/m32c/m32c.h (target_memregs): Remove.
25292         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
25293         variable.
25294
25295 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25296
25297         * config/iq2000/iq2000-opts.h: New.
25298         * config/iq2000/iq2000.c: Don't include opts.h.
25299         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
25300         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
25301         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
25302         HeaderInclude entry.
25303         (iq2000_tune): New Variable entry.
25304         (march=): Add comment.  Use Enum.
25305         (iq2000_arch): New Enum and EnumValue entries.
25306         (mcpu=): Use Enum and Var.
25307         (iq2000_tune): New Enum and EnumValue entries.
25308
25309 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25310
25311         * config/ia64/ia64-opts.h: New.
25312         * config/ia64/ia64.c (ia64_tune): Remove.
25313         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
25314         here.  Use error_at.
25315         (ia64_option_override): Handle deferred OPT_mfixed_range_.
25316         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
25317         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
25318         HeaderInclude entry.
25319         (ia64_tune): New Variable entry.
25320         (mfixed-range=): Use Defer and Var.
25321         (mtune=): Use Enum and Var.
25322         (ia64_tune): New Enum and EnumValue entries.
25323
25324 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25325
25326         * config/frv/frv-opts.h: New.
25327         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
25328         frv-opts.h.
25329         (frv_cpu_type): Remove.
25330         * config/frv/frv.c: Don't include opts.h.
25331         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
25332         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
25333         (frv_cpu_type): New Variable entry.
25334         (frv_cpu): New Enum and EnumValue entries.
25335
25336 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25337
25338         * config/cris/cris.c (cris_handle_option): Access target_flags via
25339         opts pointer.  Don't assert that global structures are in use.
25340         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
25341         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
25342
25343 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25344
25345         * config/bfin/bfin-opts.h: New.
25346         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
25347         bfin_si_revision, bfin_workarounds): Remove.
25348         (bfin_cpus): Make static const.
25349         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
25350         not bfin_lib_id_given.
25351         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
25352         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
25353         pointer. Use error_at.  Don't assert that global structures are in use.
25354         * config/bfin/bfin.h: Include bfin-opts.h.
25355         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
25356         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
25357         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
25358         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
25359         entries.
25360
25361 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25362
25363         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
25364         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
25365         or -msoft-float here.
25366         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
25367         -msoft-float and -mhard-float.
25368         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
25369         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25370         msoft-float.
25371         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
25372         -msoft-float.
25373         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
25374         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
25375         not mhard-float.
25376         (LIBGCC_SPEC): Don't handle -msoft-float.
25377         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
25378         -mhard-float.
25379         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
25380         msoft-float.
25381         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
25382         -mfloat-abi=*, not -msoft-float and -mhard-float.
25383         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
25384         -msoft-float.
25385         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
25386         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
25387         mhard-float and msoft-float.
25388         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
25389         mfloat-abi=soft in comments, not mhard-float and msoft-float.
25390         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
25391         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
25392         mhard-float.
25393         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
25394         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
25395         msoft-float.
25396         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
25397         not mhard-float.
25398         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
25399         not msoft-float.
25400
25401 2011-03-22  Richard Henderson  <rth@redhat.com>
25402
25403         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
25404         TARGET_ABI_WINDOWS_NT.
25405         (alpha_output_function_end_prologue): Likewise.
25406         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
25407         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
25408         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
25409         (trap, *movsi_nt_vms): Likewise.
25410         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
25411         (*tablejump_osf_nt_internal): Remove.
25412         * config/alpha/predicates.md (input_operand): Only test Pmode.
25413
25414 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25415
25416         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
25417         via opts pointer.  Use error_at.  Don't assert that global
25418         structures are in use.
25419
25420 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25421
25422         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
25423         (ix86_handle_option): Access ix86_isa_flags and
25424         ix86_isa_flags_explicit via opts pointer.  Don't assert that
25425         global structures are in use.
25426         (ix86_function_specific_save, ix86_function_specific_restore):
25427         Update ix86_isa_flags_explicit field name.
25428         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
25429         (ix86_isa_flags_explicit): Rename TargetSave entry to
25430         x_ix86_isa_flags_explicit.
25431
25432 2011-03-22  Richard Henderson  <rth@redhat.com>
25433
25434         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
25435         (alpha_option_override, direct_return): Likewise.
25436         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
25437         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
25438         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
25439         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
25440         (alpha_expand_epilogue, alpha_end_function): Likewise.
25441         (alpha_init_libfuncs): Likewise.
25442         (struct machine_function): Remove unicosmk members.
25443         (print_operand) ['t']: Remove.
25444         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
25445         unicosmk_output_module_name, unicosmk_output_common,
25446         current_section_align, unicosmk_output_text_section_asm_op,
25447         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
25448         unicosmk_section_type_flags, unicosmk_unique_section,
25449         unicosmk_asm_named_section, unicosmk_insert_attributes,
25450         unicosmk_output_align, unicosmk_defer_case_vector,
25451         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
25452         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
25453         unicosmk_output_ssib, unicosmk_add_call_info_word,
25454         unicosmk_extern_head, unicosmk_output_default_externs,
25455         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
25456         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
25457         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
25458         * config/alpha/alpha-protos.h: Update.
25459         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
25460         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
25461         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
25462         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
25463         (*mulsi_se, mulvsi3): Likewise.
25464         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
25465         (*divmodsi_internal, call, call_value, realign): Likewise.
25466         (moddi3, umoddi3): Likewise; remove duplicate expander.
25467         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
25468         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
25469         (*movdi_nofix): Remove r/U alternative.
25470         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
25471         * config/alpha/constraints.md ("U"): Remove.
25472         * config/alpha/predicates.md (call_operand"): Don't test
25473         TARGET_ABI_UNICOSMK.
25474
25475 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25476
25477         * target.def (handle_option): Take gcc_options and
25478         cl_decoded_option pointers and location_t.
25479         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
25480         * doc/tm.texi: Regenerate.
25481         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
25482         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
25483         * lto-opts.c (lto_reissue_options): Generate option structure for
25484         targetm.handle_option call.
25485         * opts.c (target_handle_option): Update call to
25486         targetm.handle_option.  Remove assertions about values now passed
25487         down to hook.
25488         * targhooks.c (default_target_handle_option): New.
25489         * targhooks.h (default_target_handle_option): Declare.
25490         * config/alpha/alpha.c: Include opts.h.
25491         (alpha_handle_option): Update to new hook interface.
25492         * config/arm/arm.c: Include opts.h.
25493         (arm_handle_option): Update to new hook interface.
25494         * config/arm/t-arm (arm.o): Update dependencies.
25495         * config/bfin/bfin.c: Include opts.h.
25496         (bfin_handle_option): Update to new hook interface.
25497         * config/cris/cris.c: Include opts.h.
25498         (cris_handle_option): Update to new hook interface.
25499         * config/frv/frv.c: Include opts.h.
25500         (frv_handle_option): Update to new hook interface.
25501         * config/i386/i386.c: Include opts.h.
25502         (ix86_handle_option): Update to new hook interface.
25503         (ix86_valid_target_attribute_inner_p): Generate option structure
25504         for call to ix86_handle_option.
25505         * config/i386/t-i386 (i386.o): Update dependencies.
25506         * config/ia64/ia64.c: Include opts.h.
25507         (ia64_handle_option): Update to new hook interface.
25508         * config/ia64/t-ia64 (ia64.o): Update dependencies.
25509         * config/iq2000/iq2000.c: Include opts.h.
25510         (iq2000_handle_option): Update to new hook interface.
25511         * config/m32c/m32c.c: Include opts.h.
25512         (m32c_handle_option): Update to new hook interface.
25513         * config/m32r/m32r.c: Include opts.h.
25514         (m32r_handle_option): Update to new hook interface.
25515         * config/m68k/m68k.c: Include opts.h.
25516         (m68k_handle_option): Update to new hook interface.
25517         * config/mep/mep.c: Include opts.h.
25518         (mep_handle_option): Update to new hook interface.
25519         * config/microblaze/microblaze.c: Include opts.h.
25520         (microblaze_handle_option): Update to new hook interface.
25521         * config/mips/mips.c: Include opts.h.
25522         (mips_handle_option): Update to new hook interface.
25523         * config/mn10300/mn10300.c: Include opts.h.
25524         (mn10300_handle_option): Update to new hook interface.
25525         * config/pa/pa.c: Include opts.h.
25526         (pa_handle_option): Update to new hook interface.
25527         * config/pdp11/pdp11.c: Include opts.h.
25528         (pdp11_handle_option): Update to new hook interface.
25529         * config/rs6000/rs6000.c: Include opts.h.
25530         (rs6000_handle_option): Update to new hook interface.
25531         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
25532         * config/rx/rx.c: Include opts.h.
25533         (rx_handle_option): Update to new hook interface.
25534         * config/s390/s390.c: Include opts.h.
25535         (s390_handle_option): Update to new hook interface.
25536         * config/score/score.c: Include opts.h.
25537         (score_handle_option): Update to new hook interface.
25538         * config/sh/sh.c: Include opts.h.
25539         (sh_handle_option): Update to new hook interface.
25540         * config/sparc/sparc.c: Include opts.h.
25541         (sparc_handle_option): Update to new hook interface.
25542         * config/v850/v850.c: Include opts.h.
25543         (v850_handle_option): Update to new hook interface.
25544
25545 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25546
25547         * gcc.c (driver_unknown_option_callback): Only permit and save
25548         unknown -Wno- options.
25549         (driver_wrong_lang_callback): Save options directly instead of via
25550         driver_unknown_option_callback.
25551
25552 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25553
25554         * combine.c (simplify_set): Try harder to find the best CC mode when
25555         simplifying a nested COMPARE on the RHS.
25556
25557 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
25558
25559         * config/alpha/gnu.h: Remove.
25560         * config/arc: Remove directory.
25561         * config/arm/netbsd.h: Remove.
25562         * config/arm/t-pe: Remove.
25563         * config/crx: Remove directory.
25564         * config/i386/netbsd.h: Remove.
25565         * config/m68hc11: Remove directory.
25566         * config/m68k/uclinux-oldabi.h: Remove.
25567         * config/mcore/mcore-pe.h: Remove.
25568         * config/mcore/t-mcore-pe: Remove.
25569         * config/netbsd-aout.h: Remove.
25570         * config/rs6000/gnu.h: Remove.
25571         * config/sh/sh-symbian.h: Remove.
25572         * config/sh/symbian-base.c: Remove.
25573         * config/sh/symbian-c.c: Remove.
25574         * config/sh/symbian-cxx.c: Remove.
25575         * config/sh/symbian-post.h: Remove.
25576         * config/sh/symbian-pre.h: Remove.
25577         * config/sh/t-symbian: Remove.
25578         * config/svr3.h: Remove.
25579         * config/vax/netbsd.h: Remove.
25580         * config.build: Don't handle i[34567]86-*-pe.
25581         * config.gcc: Remove handling of deprecations for most deprecated
25582         targets.
25583         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
25584         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
25585         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
25586         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
25587         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
25588         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
25589         Remove cases.
25590         * config.host: Don't handle i[34567]86-*-pe.
25591         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
25592         (ASM_SPEC32): Don't handle -mcall-gnu.
25593         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
25594         -mcall-gnu.
25595         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
25596         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
25597         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
25598         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
25599         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
25600         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
25601         conditional on SYMBIAN.
25602         * configure.ac: Don't handle powerpc*-*-gnu*.
25603         * configure: Regenerate.
25604         * doc/extend.texi (interrupt attribute): Don't mention CRX.
25605         * doc/install-old.texi (m6811, m6812): Don't mention.
25606         * doc/install.texi (arc-*-elf*): Don't document multilib option.
25607         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
25608         (m68k-uclinuxoldabi): Don't mention.
25609         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
25610         Remove.
25611         (-mcall-gnu): Remove.
25612         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
25613         families): Remove constraint documentation.
25614
25615 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
25616
25617         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
25618         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
25619         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
25620
25621 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25622
25623         PR target/48226
25624         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
25625         vector when peeking at the next token for vector, don't expand the
25626         keywords.
25627
25628 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
25629
25630         * config/avr/avr-protos.h (expand_epilogue): Change prototype
25631         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
25632         * config/avr/avr.c (init_cumulative_args)
25633         (avr_function_arg_advance): Use it.
25634         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
25635         sibcall epilogues.
25636         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
25637         (avr_function_ok_for_sibcall): ...this new function.
25638         (avr_lookup_function_attribute1): New static Function.
25639         (avr_naked_function_p, interrupt_function_p)
25640         (signal_function_p, avr_OS_task_function_p)
25641         (avr_OS_main_function_p): Use it.
25642         * config/avr/avr.md ("sibcall", "sibcall_value")
25643         ("sibcall_epilogue"): New expander.
25644         ("*call_insn", "*call_value_insn"): New insn.
25645         ("call_insn", "call_value_insn"): Remove
25646         ("call", "call_value", "epilogue"): Change expander to handle
25647         sibling calls.
25648
25649 2011-03-21  Nick Clifton  <nickc@redhat.com>
25650
25651         * doc/invoke.texi (Overall Options): Move closing brace to end of
25652         options list.
25653         (Optimization Options): Add missing @gol.
25654         (Directory Options): Likewise.
25655         (i386 and x86-64 Options): Likewise.
25656         (RS6000 and PowerPC Options): Likewise.
25657         (i386 and x86-64 Windows Options): Likewise.
25658         (V850 Options): Add text missing from descriptions.
25659
25660 2011-03-22  Richard Henderson  <rth@redhat.com>
25661
25662         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
25663         (avr_incoming_return_addr_rtx): New.
25664         (emit_push_byte): New.
25665         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
25666         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
25667         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
25668         (emit_pop_byte): New.
25669         (expand_epilogue): Use it.  Pop frame pointer by bytes.
25670         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
25671         (INCOMING_RETURN_ADDR_RTX): New.
25672         (INCOMING_FRAME_SP_OFFSET): New.
25673         (ARG_POINTER_CFA_OFFSET): New.
25674         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
25675         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
25676         (pophi): Remove.
25677
25678         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
25679
25680 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25681
25682         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
25683         (FUNCTION_ARG_ADVANCE): Likewise.
25684         * tm.texi.in: Change references to them to hook references.
25685         * tm.texi: Regenerate.
25686         * targhooks.c (default_function_arg): Eliminate check for target
25687         macro.
25688         (default_function_incoming_arg): Likewise.
25689         (default_function_arg_advance): Likewise.
25690         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
25691         (function_arg_advance): Likewise.
25692         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
25693
25694 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
25695
25696         * tree.c (build_call_1): New function.
25697         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
25698
25699 2011-03-22  Richard Guenther  <rguenther@suse.de>
25700
25701         PR tree-optimization/48228
25702         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
25703         for single-arg PHIs.
25704
25705 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
25706
25707         PR rtl-optimization/48143
25708         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
25709         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
25710         sse2_cvtps2pd): Likewise.
25711
25712 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25713
25714         * recog.c (canonicalize_change_group): Use validate_unshare_change.
25715
25716 2011-03-22  Richard Guenther  <rguenther@suse.de>
25717
25718         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
25719         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
25720         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
25721         and REALIGN_LOAD_EXPR.
25722         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
25723         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
25724         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
25725         DOT_PROD_EXPR case ...
25726         (expand_expr_real_2): ... here.
25727         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
25728         and REALIGN_LOAD_EXPR.
25729         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
25730         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
25731         (vect_create_epilog_for_reduction): Likewise.
25732         (vectorizable_reduction): Likewise.
25733         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
25734         * tree-vect-stmts.c (vectorizable_load): Likewise.
25735
25736 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
25737
25738         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
25739
25740 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25741
25742         * config/s390/s390.c (s390_delegitimize_address): Fix offset
25743         handling for PLTOFF/GOTOFF.
25744
25745 2011-03-22  Nick Clifton  <nickc@redhat.com>
25746
25747         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
25748         trailing backslash from the end of the macro definition.
25749
25750 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25751
25752         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
25753         and PLT unspecs.
25754
25755 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
25756
25757         * expr.h (prepare_operand): Move to...
25758         * optabs.h (prepare_operand): ...here and change the insn code
25759         parameter from "int" to "enum insn_code".
25760         (insn_operand_matches): Declare.
25761         * expr.c (init_expr_target): Use insn_operand_matches.
25762         (compress_float_constant): Likewise.
25763         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
25764         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
25765         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
25766         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
25767         Likewise.
25768         (gen_cond_trap): Likewise.
25769         (prepare_operand): Likewise.  Change icode to an insn_code.
25770         (insn_operand_matches): New function.
25771         * reload.c (find_reloads_address_1): Use insn_operand_matches.
25772         * reload1.c (gen_reload): Likewise.
25773         * targhooks.c (default_secondary_reload): Likewise.
25774
25775 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25776
25777         * config/alpha/alpha.md (unspec): New define_c_enum.
25778         (unspecv): Ditto.
25779
25780 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
25781
25782         PR debug/48214
25783         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
25784         between a call and its CALL_ARG_LOCATION note.
25785
25786 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
25787
25788         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
25789
25790 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25791
25792         PR c/42544
25793         PR c/48197
25794         * c-common.c (shorten_compare): If primopN is first sign-extended
25795         to opN and then zero-extended to result type, set primopN to opN.
25796
25797 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
25798
25799         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
25800         for barrier handlers.
25801
25802 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
25803
25804         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
25805         UNSPEC constants to be in the unspec enumeration, and redefine
25806         all UNSPECV constants to be in the unspecv enumeration, so that
25807         dumps print which unspec/unspec_volatile this is.
25808         * config/rs6000/vector.md (UNSPEC_*): Ditto.
25809         * config/rs6000/paired.md (UNSPEC_*): Ditto.
25810         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
25811         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
25812         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
25813
25814         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
25815         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
25816         UNSPECV_LWSYNC, since these are used as unspec_volatile.
25817         * config/rs6000/sync.md (isync, lwsync): Ditto.
25818
25819 2011-03-21  Richard Guenther  <rguenther@suse.de>
25820
25821         * params.def (lto-min-partition): Fix typo.
25822
25823 2011-03-21  Richard Guenther  <rguenther@suse.de>
25824
25825         PR c/47939
25826         * c-decl.c (grokdeclarator): Drop to the main variant only
25827         for array types.  Drop flag_gen_aux_info check.
25828
25829 2011-03-21  Richard Guenther  <rguenther@suse.de>
25830
25831         PR translation/47911
25832         * params.def (lto-partitions): Fix typo.
25833         (lto-min-partition): Fix wording.
25834
25835 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
25836
25837         * config/rs6000/t-freebsd: Remove duplication from file.
25838
25839 2011-03-21  Richard Guenther  <rguenther@suse.de>
25840
25841         PR middle-end/47661
25842         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
25843
25844 2011-03-21  Richard Guenther  <rguenther@suse.de>
25845
25846         PR lto/48210
25847         * params.def (lto-partitions): Require at least 1 partition.
25848
25849 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25850
25851         * gthr-solaris.h: Remove.
25852         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
25853         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
25854         (LIB_SPEC): Likewise.
25855         * config/sol2.opt (threads): Remove.
25856         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
25857         (sparc*-*-solaris2*): Likewise.
25858         * configure.ac (enable_threads): Enable solaris support.
25859         * configure: Regenerate.
25860         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
25861         * doc/install.texi (Configuration, --enable-threads=lib): Remove
25862         solaris.
25863
25864 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25865
25866         * config.gcc: Obsolete *-*-solaris2.8*.
25867         * doc/install.texi (Specific, *-*-solaris2*): Document it.
25868
25869 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25870
25871         PR bootstrap/48135
25872         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
25873         reference.  Solaris 8 perl works.
25874
25875 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25876
25877         PR bootstrap/48135
25878         * doc/install.texi (Prerequisites): Move jar etc. up.
25879         Explain support library version requirements.
25880
25881 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25882
25883         PR bootstrap/48135
25884         * doc/install.texi (Prerequisites): Move Perl to build
25885         requirements.  Always necessary on Solaris 2 with Sun ld.
25886
25887 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25888
25889         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
25890         binutils 2.21.
25891         (Specific, i?86-*-solaris2.[89]): Likewise.
25892         (Specific, i?86-*-solaris2.10): Likewise.
25893         (Specific, mips-sgi-irix6): Likewise.
25894         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
25895         Update for binutils 2.21.
25896
25897 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25898
25899         * configure.ac (gcc_cv_lto_plugin): Fix typo.
25900         Allow -fuse-linker-plugin for non-default plugin linker.
25901         * configure: Regenerate.
25902
25903 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
25904
25905         PR bootstrap/48167
25906         * gengtype.c (files_rules): Added rule for cp/parser.h.
25907
25908 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
25909
25910         PR target/48213
25911         * config/s390/s390.c (s390_delegitimize_address): Don't call
25912         lowpart_subreg if orig_x has BLKmode.
25913
25914 2011-03-21  Kai Tietz  <ktietz@redhat.com>
25915
25916         PR target/12171
25917         * doc/plugins.texi: Adjust documentation for plugin register_callback.
25918         * tree.h (attribute_spec): Add new member affects_type_identity.
25919         * attribs.c (empty_attribute_table): Adjust attribute_spec
25920         initializers.
25921         * config/alpha/alpha.c: Likewise.
25922         * config/arc/arc.c: Likewise.
25923         * config/arm/arm.c: Likewise.
25924         * config/avr/avr.c: Likewise.
25925         * config/bfin/bfin.c: Likewise.
25926         * config/crx/crx.c: Likewise.
25927         * config/darwin.h: Likewise.
25928         * config/h8300/h8300.c: Likewise.
25929         * config/i386/cygming.h: Likewise.
25930         * config/i386/i386.c: Likewise.
25931         * config/ia64/ia64.c: Likewise.
25932         * config/m32c/m32c.c: Likewise.
25933         * config/m32r/m32r.c: Likewise.
25934         * config/m68hc11/m68hc11.c: Likewise.
25935         * config/m68k/m68k.c: Likewise.
25936         * config/mcore/mcore.c: Likewise.
25937         * config/mep/mep.c: Likewise.
25938         * config/microblaze/microblaze.c: Likewise.
25939         * config/mips/mips.c: Likewise.
25940         * config/rs6000/rs6000.c: Likewise.
25941         * config/rx/rx.c: Likewise.
25942         * config/sh/sh.c: Likewise.
25943         * config/sol2.h: Likewise.
25944         * config/sparc/sparc.c: Likewise.
25945         * config/spu/spu.c: Likewise.
25946         * config/stormy16/stormy16.c: Likewise.
25947         * config/v850/v850.c: Likewise.
25948
25949 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
25950
25951         * simplify-rtx.c (simplify_binary_operation_1): Handle
25952         (xor (and A B) C) case when B and C are both constants.
25953
25954 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
25955
25956         * tree-dfa.c (add_referenced_var): Fix typo in comment.
25957
25958 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
25959
25960         PR bootstrap/48168
25961         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
25962
25963 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
25964
25965         PR rtl-optimization/48156
25966         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
25967         assume df and df_lr are not NULL.
25968
25969 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25970
25971         PR debug/48023
25972         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
25973         between a call and its CALL_ARG_LOCATION note.
25974
25975 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
25976
25977         PR debug/48178
25978         * config/sh/sh.c (find_barrier): Don't emit a constant pool
25979         between a call and its corresponding CALL_ARG_LOCATION note.
25980
25981 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
25982
25983         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
25984         instead of loop. Use HARD_REGISTER_NUM_P predicate.
25985         * haifa-sched.c (setup_ref_regs): Ditto.
25986         * caller-save.c (add_used_regs_1): Ditto.
25987         * dse.c (look_for_hardregs): Ditto.
25988         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
25989         * sched-rgn.c (check_live_1): Ditto.
25990
25991 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
25992
25993         * c-decl.c (diagnose_mismatched_decls): Give an error for
25994         redefining a typedef with variably modified type.
25995
25996 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
25997
25998         * c-decl.c (grokfield): Don't allow typedefs for structures or
25999         unions with no tag by default.
26000         * doc/extend.texi (Unnamed Fields): Update.
26001
26002 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
26003
26004         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
26005         Rewrite using indirect functions.
26006         (lwp_slwpcb): Ditto.
26007         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
26008         (avx_vinsertf128<mode>): Ditto.
26009
26010 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26011
26012         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
26013         unspecs.
26014
26015 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26016
26017         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
26018         splitting between a call and its corresponding CALL_ARG_LOCATION note.
26019
26020 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
26021
26022         PR rtl-optimization/48170
26023         * gcse.c (hoist_code): Remove bogus asserts.
26024
26025 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
26026
26027         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
26028         computation for prologue/epilogue.
26029
26030 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26031
26032         * Makefile.in (check-consistency): Remove.
26033
26034 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
26035
26036         PR debug/48176
26037         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
26038         arange_table_in_use is 0, but either text_section_used or
26039         cold_text_section_used is true.  Don't call it if
26040         !info_section_emitted.
26041
26042 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
26043
26044         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
26045         FUNCTION_VALUE_REGNO_P): Remove.
26046         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
26047         Remove.
26048         * config/avr/avr.c (avr_ret_register): Make static inline.
26049         (avr_function_value_regno_p): New function.
26050         (avr_libcall_value): Make static. Add 'func' argument.
26051         (avr_function_value): Make static. Rename 'func' argument to
26052         'fn_decl_or_type', forward it to avr_libcall_value. Call
26053         avr_ret_register function instead of RET_REGISTER macro.
26054         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26055
26056 2011-03-18  Jason Merrill  <jason@redhat.com>
26057
26058         PR c++/23372
26059         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
26060
26061 2011-03-18  Richard Guenther  <rguenther@suse.de>
26062
26063         * doc/install.texi (--enable-gold): Remove.
26064         (--with-plugin-ld): Document.
26065         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
26066
26067 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
26068
26069         PR middle-end/47790
26070         * expr.c (optimize_bitfield_assignment_op): Revamp to work
26071         again after expansion changes.
26072
26073 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
26074
26075         * combine.c (try_combine): Do simplification only call of
26076         subst() on i2 even when i1 is present. Update comments.
26077
26078 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
26079
26080         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
26081         and UNSPEC_PCREL_SYMOFF.
26082
26083 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26084
26085         * config/s390/s390.md: Use define_c_enum for the unspec constant
26086         definitions.
26087
26088 2011-03-18  Richard Henderson  <rth@redhat.com>
26089             Jakub Jelinek  <jakub@redhat.com>
26090
26091         PR bootstrap/48161
26092         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
26093         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
26094
26095 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
26096
26097         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26098         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
26099         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
26100         Change return type to bool.
26101         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26102
26103 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26104
26105         PR debug/48163
26106         * var-tracking.c (prepare_call_arguments): If CALL target
26107         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
26108         pc instead of looking it up using cselib_lookup and use
26109         Pmode for it if x has VOIDmode.
26110         * dwarf2out.c (gen_subprogram_die): If also both first and
26111         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
26112
26113         PR debug/48163
26114         * function.c (assign_parms): For data.passed_pointer parms
26115         use MEM of data.entry_parm instead of data.entry_parm itself
26116         as DECL_INCOMING_RTL.
26117         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
26118         also when passed and declared mode is the same, DECL_RTL
26119         is a MEM with pseudo as address and DECL_INCOMING_RTL is
26120         a MEM too.
26121
26122 2011-03-16  Jeff Law  <law@redhat.com>
26123
26124         PR rtl-optimization/37273
26125         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26126         handle them like argument loads from stack slots.  Do not double
26127         count memory for memory constants and argument loads from stack slots.
26128
26129 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26130
26131         PR debug/48160
26132         * var-tracking.c (prepare_call_arguments): Check SUBREG.
26133
26134 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
26135
26136         PR target/48171
26137         * config/i386/i386.opt: Add Save to -mavx and -mfma.
26138
26139 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26140
26141         PR bootstrap/48153
26142         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
26143         if dwarf_strict.
26144         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
26145         Clear call_arg_locations and call_arg_loc_last always.
26146
26147         PR middle-end/48152
26148         * var-tracking.c (prepare_call_arguments): If argument needs to be
26149         passed by reference, adjust argtype and mode.
26150
26151 2011-03-17  Richard Guenther  <rguenther@suse.de>
26152
26153         PR middle-end/48134
26154         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
26155         a value make sure to fold the statement.
26156
26157 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
26158
26159         PR target/43872
26160         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
26161         return condition with !cfun->calls_alloca.
26162
26163 2011-03-17  Richard Guenther  <rguenther@suse.de>
26164
26165         PR bootstrap/48148
26166         * lto-cgraph.c (input_overwrite_node): Clear the abstract
26167         origin for decls in other ltrans units.
26168         (input_varpool_node): Likewise.
26169
26170 2011-03-17  Richard Guenther  <rguenther@suse.de>
26171
26172         PR middle-end/48165
26173         * tree-object-size.c (compute_object_offset): Properly return
26174         the offset operand of MEM_REFs as sizetype.
26175
26176 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
26177
26178         PR rtl-optimization/48141
26179         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
26180         * dse.c: Include params.h.
26181         (active_local_stores_len): New variable.
26182         (add_wild_read, dse_step1): Clear it when setting active_local_stores
26183         to NULL.
26184         (record_store, check_mem_read_rtx): Decrease it when removing
26185         from the chain.
26186         (scan_insn): Likewise.  Increase it when adding to chain, if it
26187         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
26188         set active_local_stores to NULL before the addition.
26189         * Makefile.in (dse.o): Depend on $(PARAMS_H).
26190
26191         PR rtl-optimization/48141
26192         * dse.c (record_store): If no positions are needed in an insn
26193         that cannot be deleted, at least unchain it from active_local_stores.
26194
26195 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
26196
26197         PR debug/47510
26198         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
26199         (lookup_type_die_strip_naming_typedef): ... here.
26200         (get_context_die): Use it.
26201         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
26202         the anonymous struct named by the naming typedef.
26203
26204 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
26205
26206         PR target/48154
26207         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
26208         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26209
26210 2011-03-16  Jeff Law  <law@redhat.com>
26211
26212         * tree-vrp.c (identify_jump_threads): Slightly simplify type
26213         check for operands of conditional.  Allow type to be a pointer.
26214
26215 2011-03-16  Richard Guenther  <rguenther@suse.de>
26216
26217         PR tree-optimization/48149
26218         * fold-const.c (fold_binary_loc): Fold
26219         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
26220
26221 2011-03-16  Richard Guenther  <rguenther@suse.de>
26222
26223         PR tree-optimization/26134
26224         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
26225         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
26226         (non_rewritable_mem_ref_base): Handle complex type component
26227         accesses, constrain offsets for vector and complex extracts
26228         more properly.
26229
26230 2011-03-16  Richard Guenther  <rguenther@suse.de>
26231
26232         PR tree-optimization/48146
26233         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
26234         operands avoiding the need for renaming.
26235
26236 2011-03-16  Richard Guenther  <rguenther@suse.de>
26237
26238         * gimple-fold.c (maybe_fold_reference): Open-code relevant
26239         constant folding.  Move MEM_REF canonicalization first.
26240         Rely on fold_const_aggregate_ref for initializer folding.
26241         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
26242
26243 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26244
26245         PR middle-end/48136
26246         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
26247         arg0/arg1 or their arguments are always fold converted to matching
26248         types.
26249
26250         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
26251         to nargs.
26252
26253 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26254
26255         PR lto/46944
26256         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
26257         Handle in-tree gold.
26258         (ld_vers): Extract binutils version for gold.
26259         (gcc_cv_ld_hidden): Handle gold here.
26260         (gcc_cv_lto_plugin): Determine level of linker plugin support.
26261         * configure: Regenerate.
26262         * config.in: Regenerate.
26263         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
26264         -fuse-linker-plugin otherwise.
26265         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
26266         (LINK_COMMAND_SPEC): Use it.
26267         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
26268
26269 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
26270
26271         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
26272         * calls.c: Remove debug.h include.
26273         (emit_call_1): Don't call virtual_call_token debug hook.
26274         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
26275         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
26276         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
26277         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
26278         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
26279         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
26280         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
26281         dwarf2out_virtual_call): Remove.
26282         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
26283         copy_call_info and virtual_call hooks.
26284         (dwarf2out_init): Don't initialize vcall_insn_table,
26285         debug_dcall_section and debug_vcall_section.
26286         (prune_unused_types): Don't mark nodes from dcall_table.
26287         (dwarf2out_finish): Don't output dcall or vcall tables.
26288         * final.c (final_scan_insn): Don't call direct_call or
26289         virtual_call debug hooks.
26290         * debug.h (struct gcc_debug_hooks): Remove direct_call,
26291         virtual_call_token, copy_call_info and virtual_call hooks.
26292         (debug_nothing_uid): Remove prototype.
26293         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
26294         copy_call_info and virtual_call hooks.
26295         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
26296         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
26297         * debug.c (do_nothing_debug_hooks): Likewise.
26298         (debug_nothing_uid): Remove.
26299         * doc/invoke.texi (-fenable-icf-debug): Remove.
26300         * common.opt (-fenable-icf-debug): Likewise.
26301
26302         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
26303         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
26304         call's MEM.  Handle functions returning aggregate through a hidden
26305         first pointer.  For virtual calls add clobbered pc to call arguments
26306         chain.
26307         * dwarf2out.c (gen_subprogram_die): Emit
26308         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
26309         can't be emitted.
26310
26311         PR debug/45882
26312         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
26313         * rtl.h (ENTRY_VALUE_EXP): Define.
26314         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
26315         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
26316         * print-rtl.c (print_rtx): Likewise.
26317         * gengtype.c (adjust_field_rtx_def): Likewise.
26318         * var-tracking.c (vt_add_function_parameter): Adjust
26319         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
26320         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
26321         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
26322         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
26323         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
26324
26325         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
26326         Call var_location debug hook even on CALL_INSNs.
26327         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
26328         * rtl.def (ENTRY_VALUE): New.
26329         * dwarf2out.c: Include cfglayout.h.
26330         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
26331         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
26332         (struct call_arg_loc_node): New type.
26333         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
26334         tail_call_site_count): New variables.
26335         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
26336         DW_TAG_GNU_call_site_parameter.
26337         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
26338         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
26339         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
26340         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
26341         and DW_AT_GNU_all_source_call_sites.
26342         (mem_loc_descriptor): Handle ENTRY_VALUE.
26343         (add_src_coords_attributes): Don't add enything if
26344         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
26345         (dwarf2out_abstract_function): Save and clear call_arg_location,
26346         call_site_count and tail_call_site_count around dwarf2out_decl call.
26347         (gen_call_site_die): New function.
26348         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
26349         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
26350         (dwarf2out_function_decl): Clear call_arg_locations,
26351         call_arg_loc_last, set call_site_count and tail_call_site_count
26352         to -1 and free block_map.
26353         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
26354         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
26355         followed by any real instructions.
26356         (dwarf2out_begin_function): Set call_site_count and
26357         tail_call_site_count to 0.
26358         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
26359         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
26360         attempt to force a DIE for it and worst case remove the attribute.
26361         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
26362         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
26363         the decl itself.
26364         * var-tracking.c: Include tm_p.h.
26365         (vt_stack_adjustments): For calls call note_register_arguments.
26366         (argument_reg_set): New variable.
26367         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
26368         ensure the VALUE is resolved.
26369         (call_arguments): New variable.
26370         (prepare_call_arguments): New function.
26371         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
26372         (struct expand_loc_callback_data): Add ignore_cur_loc field.
26373         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
26374         always use the best expression.
26375         (vt_expand_loc): Add ignore_cur_loc argument.
26376         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
26377         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
26378         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
26379         note for all calls.
26380         (vt_add_function_parameter): Use cselib_lookup_from_insn.
26381         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
26382         argument.  Don't call cselib_preserve_only_values and
26383         cselib_reset_table.
26384         (note_register_arguments): New function.
26385         (vt_initialize): Compute argument_reg_set.  Call
26386         vt_add_function_parameters before processing basic blocks instead of
26387         afterwards.  For calls call prepare_call_arguments before calling
26388         cselib_process_insn.
26389         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
26390         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
26391         (var-tracking.o): Depend on $(TM_P_H).
26392         * cfglayout.h (insn_scope): New prototype.
26393         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
26394         * cfglayout.c (insn_scope): No longer static.
26395         * insn-notes.def (CALL_ARG_LOCATION): New.
26396         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
26397         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
26398         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
26399         nothing for DECL_EXTERNAL BLOCK_VARS.
26400
26401 2011-03-16  Alan Modra  <amodra@gmail.com>
26402
26403         PR target/45844
26404         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
26405         create invalid offset address for vsx splat insn.
26406         * config/rs6000/predicates.md (splat_input_operand): New.
26407         * config/rs6000/vsx.md (vsx_splat_*): Use it.
26408
26409 2011-03-15  Xinliang David Li  <davidxl@google.com>
26410
26411         PR c/47837
26412         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
26413         (normalize_preds): New function.
26414         (is_use_properly_guarded): Normalize def predicates.
26415
26416 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
26417
26418         PR target/46788
26419         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
26420         in the output template.
26421
26422 2011-03-15  Richard Guenther  <rguenther@suse.de>
26423
26424         PR middle-end/47650
26425         * tree-pretty-print.c (dump_function_declaration): Properly
26426         dump unprototyped and varargs function types.
26427
26428 2011-03-15  Richard Guenther  <rguenther@suse.de>
26429
26430         PR tree-optimization/13954
26431         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
26432         and friends.
26433
26434 2011-03-15  Richard Guenther  <rguenther@suse.de>
26435
26436         PR tree-optimization/48037
26437         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
26438         selects into BIT_FIELD_REFs.
26439         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
26440         vector select.
26441
26442 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
26443
26444         PR tree-optimization/48129
26445         * builtins.c (fold_builtin_snprintf): Convert to type of
26446         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
26447         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
26448
26449 2011-03-15  Richard Guenther  <rguenther@suse.de>
26450
26451         PR tree-optimization/41490
26452         * tree-ssa-dce.c (propagate_necessity): Handle returns without
26453         value but with VUSE.
26454         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
26455         return statements.
26456         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
26457         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
26458         * tree-tailcall.c (find_tail_calls): Ignore returns.
26459
26460 2011-03-15  Richard Guenther  <rguenther@suse.de>
26461
26462         PR middle-end/48031
26463         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
26464         or variable-indexed array accesses when in gimple form.
26465
26466 2011-03-15  Richard Guenther  <rguenther@suse.de>
26467
26468         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
26469
26470 2011-03-15  Alan Modra  <amodra@gmail.com>
26471
26472         PR target/48032
26473         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
26474         presume symbol_refs without a symbol_ref_decl are suitably
26475         aligned, nor other trees we may see here.  Handle anchor symbols.
26476         (legitimate_constant_pool_address_p): Comment.  Add mode param.
26477         Check cmodel=medium addresses.  Adjust all calls.
26478         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
26479         creating cmodel=medium optimized access to locals.
26480         * config/rs6000/constraints.md (R): Pass QImode to
26481         legitimate_constant_pool_address_p.
26482         * config/rs6000/predicates.md (input_operand): Pass mode to
26483         legitimate_constant_pool_address_p.
26484         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
26485         Update prototype.
26486
26487 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26488
26489         PR target/48053
26490         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
26491         64-bit constants being loaded into registers other than GPRs such
26492         as loading 0 into a VSX register.
26493
26494 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26495
26496         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
26497
26498 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26499
26500         PR middle-end/47917
26501         * builtins.c (fold_builtin_snprintf): New function.
26502         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
26503         (fold_builtin_4): Likewise.
26504
26505         PR middle-end/38878
26506         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
26507         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
26508         and C - X == X also strip nops from +/-/p+ operand.
26509         When optimizing -X == C, fold C to arg0's type.
26510
26511         PR debug/47946
26512         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
26513         emit it as add_AT_int instead of add_AT_unsigned.
26514
26515 2011-03-14  Tom Tromey  <tromey@redhat.com>
26516
26517         * unwind-dw2.c: Include sys/sdt.h if it exists.
26518         (_Unwind_DebugHook): Use STAP_PROBE2.
26519         * config.in, configure: Rebuild.
26520         * configure.ac: Check for sys/sdt.h.
26521
26522 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
26523
26524         * config/i386/i386.md (ROUND_FLOOR): New constant.
26525         (ROUND_CEIL): Ditto.
26526         (ROUND_TRUNC): Ditto.
26527         (ROUND_MXCSR): Ditto.
26528         (ROUND_NO_EXC): Ditto.
26529         (rint<mode>2): Use new defines instead of numerical constants.
26530         (floor<mode>2): Ditto.
26531         (ceil<mode>2): Ditto.
26532         (btrunc<mode>2): Ditto.
26533         * config/i386/i386-builtin-types.def: Define ROUND function type
26534         aliases.
26535         * config/i386/i386.c (enum ix86_builtins): Add
26536         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
26537         (struct builtin_description): Add
26538         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
26539         (ix86_expand_sse_round): New static function.
26540         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
26541         function types.
26542         (ix86_builtin_vectorized_function): Handle
26543         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
26544
26545 2011-03-14  Tom Tromey  <tromey@redhat.com>
26546
26547         * c-parser.c (c_parser_asm_string_literal): Clear
26548         warn_overlength_strings.
26549
26550 2011-03-14  Tom Tromey  <tromey@redhat.com>
26551
26552         * c-parser.c (disable_extension_diagnostics): Save
26553         warn_overlength_strings.
26554         (restore_extension_diagnostics): Restore warn_overlength_strings.
26555
26556 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26557
26558         * BASE-VER: Change to 4.7.0.
26559
26560 2011-03-14  Richard Guenther  <rguenther@suse.de>
26561
26562         PR middle-end/48098
26563         * tree.c (build_vector_from_val): Adjust assert to requirements
26564         and reality.
26565
26566 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
26567
26568         PR bootstrap/48102
26569         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
26570
26571 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
26572
26573         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
26574         terms of target_flags_explicit. Adjust copyright year.
26575
26576         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
26577         * config/rs6000/t-freebsd: New file. Add override for
26578         LIB2FUNCS_EXTRA.
26579
26580 2011-03-13  Chris Demetriou  <cgd@google.com>
26581
26582         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
26583         (-fno-diagnostics-show-option): this, to reflect current default.
26584         (-Werror=): Update text about -fno-diagnostics-show-option.
26585
26586 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
26587
26588         PR target/48053
26589         * config/rs6000/predicates.md (easy_vector_constant_add_self,
26590         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
26591         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
26592         mode is not V2DImode or V2DFmode.
26593         (vspltis_constant): Do not handle V2DImode and V2DFmode.
26594         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
26595         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
26596         registers to 0.
26597         (movdi_internal64): Likewise.
26598
26599 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
26600
26601         PR tree-optimization/47127
26602         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
26603         parameter.
26604         (set_cloog_options): Same.
26605         (scop_to_clast): Same.
26606         (print_clast_stmt): Do not call cloog_state_malloc and
26607         cloog_state_free.
26608         (print_generated_program): Same.
26609         (gloog): Same.
26610         * graphite-clast-to-gimple.h (cloog_state): Declared.
26611         (scop_to_clast): Adjust declaration.
26612         * graphite.c (cloog_state): Defined here.
26613         (graphite_initialize): Call cloog_state_malloc.
26614         (graphite_finalize): Call cloog_state_free.
26615
26616 2011-03-11  Jason Merrill  <jason@redhat.com>
26617
26618         * attribs.c (lookup_attribute_spec): Take const_tree.
26619         * tree.h: Adjust.
26620
26621 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
26622
26623         * config/sparc/sparc.c (sparc_option_override): Use
26624         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
26625
26626 2011-03-11  Richard Guenther  <rguenther@suse.de>
26627
26628         PR tree-optimization/48067
26629         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
26630         multiplication result will be only used once on the target
26631         stmt.
26632
26633 2011-03-11  Richard Guenther  <rguenther@suse.de>
26634
26635         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
26636
26637 2011-03-11  Richard Guenther  <rguenther@suse.de>
26638
26639         PR lto/48073
26640         * tree.c (find_decls_types_r): Do not walk types only reachable
26641         from IDENTIFIER_NODEs.
26642
26643 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26644
26645         PR middle-end/48044
26646         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
26647         all vnode->force_output nodes as needed.
26648
26649 2011-03-11  Jason Merrill  <jason@redhat.com>
26650
26651         PR c++/48069
26652         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
26653         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
26654
26655 2011-03-11  Martin Jambor  <mjambor@suse.cz>
26656
26657         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
26658         cgraph_node.
26659
26660 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
26661
26662         PR tree-optimization/48063
26663         * ipa-inline.c (cgraph_decide_inlining): Don't try to
26664         inline functions called once if !tree_can_inline_p (node->callers).
26665
26666 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
26667
26668         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
26669         extra_objs.
26670         * config/score/score3.c: Delete.
26671         * config/score/score3.h: Delete.
26672         * config/score/mul-div.S: Delete.
26673         * config/score/sfp-machine.h: Add new file.
26674         * config/score/constraints.md: Add new file.
26675         * config/score/t-score-softfp: Add new file.
26676         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
26677         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
26678         (score7_extra_constraint): Delete.
26679         (score7_option_override): Remove unused code.
26680         * config/score/score.c: Remove score3 and score5 define and code.
26681         * config/score/score.h: Remove score3 and score5 define and code.
26682         * config/score/score.md: Remove score3 template and unusual insn.
26683         * config/score/score.opt: Remove score3 and score5 options.
26684
26685 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26686
26687         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
26688         when _HPUX_SOURCE is defined.
26689         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
26690
26691 2011-03-10  Jason Merrill  <jason@redhat.com>
26692
26693         PR c++/48029
26694         * stor-layout.c (layout_type): Don't set structural equality
26695         on arrays of incomplete type.
26696         * tree.c (type_hash_eq): Handle comparing them properly.
26697
26698 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
26699
26700         PR debug/48043
26701         * config/s390/s390.c (s390_delegitimize_address): Make sure the
26702         result mode matches original rtl mode.
26703
26704 2011-03-10  Nick Clifton  <nickc@redhat.com>
26705
26706         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
26707         (andsi3, andsi3_flags): Fix timings for three operand alternative.
26708
26709 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
26710
26711         PR rtl-optimization/47866
26712         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
26713         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
26714         if target wasn't scalar.
26715         * function.c (assign_stack_temp_for_type): Assert that neither
26716         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
26717         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
26718         macro.
26719         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
26720
26721 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26722
26723         * config/s390/s390-protos.h (s390_label_align): New prototype.
26724         * config/s390/s390.c (s390_label_align): New function.
26725         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
26726
26727 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
26728
26729         PR target/47755
26730         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
26731         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
26732         (output_vec_const_move): Ditto.
26733
26734 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
26735
26736         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
26737         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
26738         * config/mips/mips.c (mips_preferred_reload_class): Make static.
26739         Change 'rclass' argument and result type to reg_class_t.
26740         (TARGET_PREFERRED_RELOAD_CLASS): Define.
26741
26742 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
26743
26744         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26745         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
26746         (TARGET_MEMORY_MOVE_COST): Define.
26747         (avr_register_move_cost, avr_memory_move_cost): New Functions.
26748
26749 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
26750
26751         PR debug/47881
26752         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
26753         removed anything.
26754
26755         PR tree-optimization/48022
26756         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
26757         for EQ/NE_EXPR.
26758
26759 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
26760
26761         PR debug/47991
26762         * var-tracking.c (find_use_val): Return NULL for
26763         cui->sets && cui->store_p BLKmode MEMs.
26764
26765 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
26766
26767         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
26768         Remove.
26769         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
26770         xstormy16_print_operand_address): Remove.
26771         * config/stormy16/stormy16.c (xstormy16_print_operand,
26772         xstormy16_print_operand_address): Make static.
26773         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26774
26775 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
26776
26777         PR target/47862
26778         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
26779         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
26780         before definition.
26781
26782 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
26783
26784         PR bootstrap/48000
26785         * cfgloopmanip.c (fix_bb_placements): Return immediately
26786         if FROM is BASE_LOOP's header.
26787
26788 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
26789
26790         * gimplify.c (gimplify_function_tree): Fix building calls
26791         to __builtin_return_address.
26792
26793 2011-03-07  Alan Modra  <amodra@gmail.com>
26794
26795         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
26796         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
26797         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
26798         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
26799         return_mode args.
26800         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
26801         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
26802         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
26803         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
26804         * config/rs6000/rs6000.c
26805         (rs6000_elf_end_indicate_exec_stack): Rename to..
26806         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
26807         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
26808         (rs6000_file_start): ..here.
26809         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
26810         file scope variables.
26811         (call_ABI_of_interest): New function.
26812         (init_cumulative_args): Set above vars when function return value
26813         is a float, vector, or small struct.
26814         (rs6000_function_arg_advance_1): Likewise for function args.
26815         (rs6000_va_start): Set rs6000_passes_float if variable arg function
26816         references float args.
26817
26818 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
26819
26820         * doc/cfg.texi: Remove "See" before @ref.
26821         * doc/invoke.texi: Likewise.
26822
26823 2011-03-05  Jason Merrill  <jason@redhat.com>
26824
26825         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
26826
26827 2011-03-05  Anthony Green  <green@moxielogic.com>
26828
26829         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
26830
26831 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
26832
26833         PR rtl-optimization/47899
26834         * cfgloopmanip.c (fix_bb_placements): Fix first argument
26835         to flow_loop_nested_p when moving the loop upward.
26836
26837 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
26838
26839         PR target/47719
26840         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
26841
26842 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
26843
26844         PR tree-optimization/47967
26845         * ipa-cp.c (build_const_val): Return NULL instead of creating
26846         VIEW_CONVERT_EXPR for mismatching sizes.
26847         (ipcp_create_replace_map): Return NULL if build_const_val failed.
26848         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
26849         give up on versioning.
26850
26851 2011-03-05  Alan Modra  <amodra@gmail.com>
26852
26853         PR target/47986
26854         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26855         full cmodel medium/large lo_sum + high addresses.
26856
26857 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26858
26859         * config/s390/s390.c (s390_decompose_address): Reject non-literal
26860         pool references in UNSPEC_LTREL_OFFSET.
26861
26862 2011-03-04  Jan Hubicka  <jh@suse.cz>
26863
26864         PR lto/47497
26865         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
26866         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
26867         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
26868         Add node pointers.
26869         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
26870         cgraph_add_thunk): Add node pointers.
26871         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
26872         associated to right node.
26873         (input_node): Update use of cgraph_same_body_alias
26874         and cgraph_add_thunk.
26875
26876 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26877
26878         * config/i386/i386.opt (mprefer-avx128): New flag.
26879         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
26880         modes when the flag -mprefer-avx128 is on.
26881
26882 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
26883
26884         * dwarf2out.c (compare_loc_operands): Fix address handling.
26885
26886 2011-03-04  Alan Modra  <amodra@gmail.com>
26887
26888         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
26889
26890 2011-03-04  Richard Guenther  <rguenther@suse.de>
26891
26892         PR middle-end/47968
26893         * expmed.c (extract_bit_field_1): Prefer vector modes that
26894         vec_extract patterns can handle.
26895
26896 2011-03-04  Richard Guenther  <rguenther@suse.de>
26897
26898         PR middle-end/47975
26899         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
26900
26901 2011-03-04  Richard Henderson  <rth@redhat.com>
26902
26903         * explow.c (emit_stack_save): Remove 'after' parameter.
26904         (emit_stack_restore): Likewise.
26905         * expr.h: Update to match.
26906         * builtins.c, calls.c, stmt.c: Likewise.
26907         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
26908         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
26909         * function.c (expand_function_end): Insert the emit_stack_save
26910         sequence before parm_birth_insn instead of after.
26911
26912 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
26913
26914         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
26915         (ssse3_pmaddubsw128): Ditto.
26916         (ssse3_pmaddubsw): Ditto.
26917
26918 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
26919
26920         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
26921
26922 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
26923
26924         PR c/47963
26925         * gimplify.c (omp_add_variable): Only call omp_notice_variable
26926         on TYPE_SIZE_UNIT if it is a DECL.
26927
26928         PR debug/47283
26929         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
26930         first operand is not is_gimple_mem_ref_addr, try to fold it.
26931         If the operand still isn't is_gimple_mem_ref_addr, clear
26932         MEM_EXPR on op0.
26933
26934 2011-03-03  Richard Guenther  <rguenther@suse.de>
26935
26936         PR middle-end/47283
26937         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
26938         match comment.
26939         (refs_may_alias_p_1): For release branches return true if
26940         we are confused by our input.
26941
26942 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26943
26944         * config/s390/s390.c (s390_function_value): Rename to ...
26945         (s390_function_and_libcall_value): ... this.
26946         (s390_function_value): New function.
26947         (s390_libcall_value): New function.
26948         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
26949         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
26950         target macro definitions.
26951         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
26952
26953 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
26954
26955         * config/i386/freebsd64.h (CC1_SPEC): Define.
26956         * config/i386/linux64.h (CC1_SPEC): Define.
26957         * config/i386/x86-64.h (CC1_SPEC): Don't define.
26958
26959 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
26960
26961         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
26962         Remove.
26963         * config/stormy16/stormy16.c: Include reload.h.
26964         (xstormy16_memory_move_cost): New function.
26965         (TARGET_MEMORY_MOVE_COST): Define.
26966
26967 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
26968
26969         PR rtl-optimization/47925
26970         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
26971         with side effects.  Remove the more-specific check for volatile asms.
26972
26973 2011-03-02  Alan Modra  <amodra@gmail.com>
26974
26975         PR target/47935
26976         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
26977         toc relative addresses for valid offsets.
26978
26979 2011-03-01  Richard Guenther  <rguenther@suse.de>
26980
26981         PR tree-optimization/47890
26982         * tree-vect-loop.c (get_initial_def_for_induction): Set
26983         related stmt properly.
26984
26985 2011-03-01  Richard Guenther  <rguenther@suse.de>
26986
26987         PR lto/47924
26988         * lto-streamer.c (lto_record_common_node): Also register
26989         the canonical type.
26990
26991 2011-03-01  Richard Guenther  <rguenther@suse.de>
26992
26993         PR lto/46911
26994         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
26995         Do not stream DECL_ABSTRACT_ORIGIN.
26996         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
26997         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
26998         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
26999         Do not stream DECL_ABSTRACT_ORIGIN.
27000         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
27001         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
27002
27003 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
27004
27005         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
27006         FUNCTION_VALUE_REGNO_P): Remove.
27007         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
27008         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
27009         Add 'outgoing' argument.
27010         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
27011         function.
27012         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27013         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27014
27015 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
27016
27017         PR debug/28047
27018         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
27019         (lookup_filename): Likewise.
27020         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
27021
27022 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
27023             Jakub Jelinek  <jakub@redhat.com>
27024
27025         PR middle-end/47893
27026         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
27027         (assign_stack_local_1): Change last argument type to int.
27028         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
27029         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
27030         don't record padding space into frame_space_list nor use those areas.
27031         (assign_stack_local): Adjust caller.
27032         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
27033         of assign_stack_local, pass 0 as last argument.
27034         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
27035         callers.
27036
27037 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
27038
27039         PR debug/47283
27040         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
27041         Use target address_mode and pointer_mode hooks instead of hardcoded
27042         Pmode and ptr_mode.  Handle some simple cases of extending if
27043         POINTERS_EXTEND_UNSIGNED < 0.
27044         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
27045         Call convert_debug_memory_address.
27046         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
27047         convert_debug_memory_address.
27048
27049         PR middle-end/46790
27050         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
27051         * configure: Regenerated.
27052         * config.in: Regenerated.
27053         * varasm.c (default_function_section): Return NULL
27054         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
27055
27056 2011-02-28  Martin Jambor  <mjambor@suse.cz>
27057
27058         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
27059         the description to match the printed values.
27060
27061 2011-02-28  Richard Guenther  <rguenther@suse.de>
27062
27063         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
27064         of the copied scope tree.
27065
27066 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27067
27068         * doc/extend.texi (Function Attributes): Avoid deeply (and
27069         wrongly) nested tables.
27070
27071 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
27072
27073         PR middle-end/47903
27074         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
27075         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
27076         r isn't op0 nor op1.
27077
27078 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27079
27080         * config/avr/avr.md: Remove magic comment for emacs.
27081
27082 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
27083
27084         PR target/45261
27085         * config/avr/avr.c (avr_option_override): Use error on bad options.
27086         (avr_help): New function.
27087         (TARGET_HELP): Define.
27088
27089 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
27090
27091         PR target/42240
27092         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
27093         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
27094
27095 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
27096
27097         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
27098         (ARM Options): Ditto.
27099         (i386 and x86-64 Options): Ditto.
27100         (RX Options): Ditto.
27101         (SPARC Options): Ditto.
27102
27103 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
27104
27105         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
27106         FreeBSD 6 and later.  Generally use cpu generic.
27107
27108 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
27109
27110         * doc/cpp.texi: Update copyright years.
27111
27112 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
27113
27114         PR target/46898
27115         * config/lm32/lm32.md (ashrsi3): Added needed variable.
27116
27117 2011-02-25  Jon Beniston  <jon@beniston.com>
27118
27119         PR target/46898
27120         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
27121         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
27122         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
27123         (lm32_block_move_inline): Add type cast to remove warning.
27124         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
27125         (gen_int_relational): Move declarations to start of function.
27126
27127 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
27128
27129         PR tree-optimization/45470
27130         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
27131         can throw internally only.
27132         * tree-vect-stmts.c (vectorizable_call): Likewise.
27133
27134 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
27135
27136         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
27137         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
27138         * config/stormy16/stormy16-protos.h
27139         (xstormy16_preferred_reload_class): Remove.
27140         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
27141         static. Change 'rclass' argument and return type to reg_class_t.
27142         (TARGET_PREFERRED_RELOAD_CLASS,
27143         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
27144
27145 2011-02-24  Richard Guenther  <rguenther@suse.de>
27146
27147         * lto-streamer-in.c (input_bb): Do not find referenced vars
27148         in debug statements.
27149
27150 2011-02-23  Jason Merrill  <jason@redhat.com>
27151
27152         * common.opt (fabi-version): Document v5 and v6.
27153
27154 2011-02-23  Richard Guenther  <rguenther@suse.de>
27155
27156         PR tree-optimization/47849
27157         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
27158
27159 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27160
27161         * opts-common.c (decode_cmdline_option): Print empty string
27162         argument as "" in decoded->orig_option_with_args_text.
27163         * gcc.c (execute): Print empty string argument as ""
27164         in the verbose output.
27165         (do_spec_1): Keep empty string argument.
27166
27167 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
27168
27169         * config.gcc: Declare score-* and crx-* obsolete.
27170
27171 2011-02-23  Jie Zhang  <jie@codesourcery.com>
27172
27173         PR rtl-optimization/47763
27174         * web.c (web_main): Ignore naked clobber when replacing register.
27175
27176 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
27177
27178         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
27179         Remove.
27180
27181 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27182
27183         PR doc/47848
27184         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
27185
27186 2011-02-22  Mike Stump  <mikestump@comcast.net>
27187
27188         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
27189         assembler.
27190         * configure: Regenerate.
27191
27192 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
27193
27194         PR rtl-optimization/46002
27195         * ira-color.c (update_copy_costs): Change class intersection
27196         test to reg_class_contents[] test of 'hard_regno'.
27197
27198 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
27199
27200         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
27201         than Driver option.
27202         * config/hpux11.opt (mt): Likewise.
27203         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
27204         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
27205         * config/vax/elf.opt (mno-asm-pic): Likewise.
27206         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
27207
27208 2011-02-21  Mike Stump  <mikestump@comcast.net>
27209
27210         PR target/47822
27211         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
27212         tree so we can get save the type.
27213         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
27214         for CFString instead of trying to use past the end of the builtins.
27215         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
27216         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
27217         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
27218         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
27219         Rename to darwin_builtin_cfstring.
27220         (darwin_init_cfstring_builtins): Return the built type.
27221
27222 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
27223
27224         PR target/47840
27225         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
27226         (_mm256_insert_epi64): Use _mm_insert_epi64.
27227
27228 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
27229
27230         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27231         * config/stormy16/stormy16-protos.h
27232         (xstormy16_mode_dependent_address_p): Remove.
27233         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
27234         Make static. Change return type to bool. Change argument type to
27235         const_rtx. Remove dead code.
27236         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27237
27238 2011-02-21  Richard Guenther  <rguenther@suse.de>
27239
27240         PR lto/47820
27241         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
27242         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27243         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
27244         TUs context.
27245         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27246         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
27247
27248 2011-02-20  Richard Guenther  <rguenther@suse.de>
27249
27250         PR lto/47822
27251         * tree.c (free_lang_data_in_decl): Clean builtins from
27252         the TU decl BLOCK_VARS.
27253
27254 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
27255
27256         PR debug/47620
27257         PR debug/47630
27258         * haifa-sched.c (fix_tick_ready): Skip tick computation
27259         for debug insns.
27260
27261 2011-02-19  Richard Guenther  <rguenther@suse.de>
27262
27263         PR lto/47647
27264         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
27265         Remove lazy BLOCK_VARS streaming.
27266         (lto_input_ts_block_tree_pointers): Likewise.
27267         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
27268
27269 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27270
27271         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
27272
27273 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
27274
27275         * config/i386/biarch32.h, config/i386/mach.h,
27276         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
27277
27278 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
27279
27280         PR target/47800
27281         * config/i386/i386.md (peephole2 for shift and plus): Use
27282         operands[1] original mode in the first insn.
27283
27284 2011-02-18  Mike Stump  <mikestump@comcast.net>
27285
27286         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
27287
27288 2011-02-18  Jan Hubicka  <jh@suse.cz>
27289
27290         PR middle-end/47788
27291         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
27292         to zero when the function is not inlinable at all.
27293
27294 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27295
27296         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
27297         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
27298         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
27299         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
27300         * config/pa/t-pa64: Likewise.
27301         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
27302
27303 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27304
27305         PR driver/47787
27306         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
27307
27308 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27309
27310         PR target/47792
27311         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
27312
27313 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
27314
27315         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
27316         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
27317         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
27318         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
27319         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
27320         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
27321         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
27322         m32r_load_postinc_p, m32r_store_preinc_predec_p,
27323         m32r_legitimate_address_p): New functions.
27324         * config/m32r/constraints.md (constraint "S"): Don't use
27325         STORE_PREINC_PREDEC_P.
27326         (constraint "U"): Don't use LOAD_POSTINC_P.
27327
27328 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
27329
27330         PR rtl-optimization/46178
27331         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
27332         compute ira_hard_regno_cover_class[].
27333
27334 2011-02-18  Richard Guenther  <rguenther@suse.de>
27335
27336         PR lto/47798
27337         * lto-streamer.h (lto_global_var_decls): Declare.
27338         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
27339         statics for global var processing.
27340
27341 2011-02-18  Richard Guenther  <rguenther@suse.de>
27342
27343         PR tree-optimization/47737
27344         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
27345         edge dominance check.
27346
27347 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
27348
27349         PR debug/47780
27350         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
27351         avoid invalid rtx sharing.
27352
27353 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
27354
27355         * doc/cpp.texi (Obsolete Features): Add background on the
27356         origin of assertions.
27357
27358 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
27359
27360         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
27361         objc_abi == 2.
27362         * config/darwin.c (output_objc_section_asm_op): Added support for
27363         ABI v1 and v2.
27364         (is_objc_metadata): New.
27365         (darwin_objc2_section): New.
27366         (darwin_objc1_section): New.
27367         (machopic_select_section): Added support for ABI v1 and v2.
27368         (darwin_emit_objc_zeroed): New.
27369         (darwin_output_aligned_bss): Detect objc metadata and treat it
27370         appropriately.
27371         (darwin_asm_output_aligned_decl_common): Same.
27372         (darwin_asm_output_aligned_decl_local): Same.
27373         * config/darwin-sections.def: Updated for ABI v1 and v2.
27374         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
27375         compiling Objective-C code for the NeXT runtime, default to using
27376         ABI version 0 for 32-bit, and version 2 for 64-bit.
27377
27378 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27379
27380         * common.opt (optimize_fast): New Variable.
27381         * opts.c (default_options_optimization): Use opts->x_optimize_fast
27382         instead of local variable ofast.
27383
27384 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
27385
27386         * doc/invoke.texi (fobjc-abi-version): Documented.
27387         (fobjc-nilcheck): Documented.
27388         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
27389         version.
27390
27391 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27392
27393         PR driver/47390
27394         * common.opt (export-dynamic): New Driver option.
27395         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
27396
27397 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27398
27399         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
27400
27401 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
27402             Jan Hubicka  <jh@suse.cz>
27403
27404         PR debug/47106
27405         PR debug/47402
27406         * cfgexpand.c (account_used_vars_for_block): Remove.
27407         (estimated_stack_frame_size): Use referenced vars.
27408         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
27409         that were referenced in the original function.  Test src_fn
27410         rather than cfun.  Drop redundant get_var_ann.
27411         (setup_one_parameter): Drop redundant get_var_ann.
27412         (declare_return_variable): Likewise.
27413         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
27414         (copy_arguments_for_versioning): Drop redundant get_var_ann.
27415         * ipa-inline.c (compute_inline_parameters): Do not compute
27416         disregard_inline_limits here.
27417         (compute_inlinable_for_current, pass_inlinable): New.
27418         (pass_inline_parameters): Require PROP_referenced_vars.
27419         * cgraphunit.c (cgraph_process_new_functions): Don't run
27420         compute_inline_parameters explicitly unless function is in SSA form.
27421         (cgraph_analyze_function): Set .disregard_inline_limits.
27422         * tree-sra.c (convert_callers): Compute inliner parameters
27423         only for functions already in SSA form.
27424
27425 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27426
27427         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
27428         -mlittle-endian-data.
27429
27430 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
27431
27432         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
27433         -mno-fpu, not -fpu and -no-fpu.
27434         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
27435         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
27436
27437 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
27438
27439         PR target/43653
27440         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
27441         input reload with PLUS RTX.
27442
27443 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27444
27445         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
27446         of InverseVar(MDMX).
27447
27448 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27449
27450         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
27451         --m4-340.
27452
27453 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27454
27455         * config/mn10300/mn10300.opt (mno-crt0): New.
27456
27457 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27458
27459         * config/m68k/uclinux.opt (static-libc): New Driver option.
27460
27461 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27462
27463         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
27464
27465 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
27466
27467         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
27468         %{muser-extend-enabled}.
27469
27470 2011-02-16  Richard Guenther  <rguenther@suse.de>
27471
27472         PR tree-optimization/47738
27473         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
27474         the TODO from tree_predictive_commoning.
27475
27476 2011-02-15  Jeff Law  <law@redhat.com>
27477
27478         Revert
27479         2011-01-25  Jeff Law  <law@redhat.com>
27480
27481         PR rtl-optimization/37273
27482         * ira-costs.c (scan_one_insn): Detect constants living in memory and
27483         handle them like argument loads from stack slots.  Do not double
27484         count memory for memory constants and argument loads from stack slots.
27485
27486 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
27487
27488         PR target/47755
27489         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
27490         mode for vector constants.  Remove code that checks for TImode.
27491
27492 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27493
27494         PR debug/47106
27495         PR debug/47402
27496         * cgraph.h (compute_inline_parameters): Return void.
27497         * ipa-inline.c (compute_inline_parameters): Adjust.
27498
27499 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27500
27501         PR debug/47106
27502         PR debug/47402
27503         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
27504         rather than decl.
27505         * cfgexpand.c (estimated_stack_frame_size): Likewise.
27506         * ipa-inline.c (compute_inline_parameters): Adjust.
27507
27508 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27509
27510         PR debug/47106
27511         PR debug/47402
27512         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
27513         Adjust all users.  Pass FN to...
27514         * tree-flow-inline.h (first_referenced_var): ... this.  Add
27515         fn argument.
27516         * ipa-struct-reorg.c: Adjust.
27517         * tree-dfa.c: Adjust.
27518         * tree-into-ssa.c: Adjust.
27519         * tree-sra.c: Adjust.
27520         * tree-ssa-alias.c: Adjust.
27521         * tree-ssa-live.c: Adjust.
27522         * tree-ssa.c: Adjust.
27523         * tree-ssanames.c: Adjust.
27524         * tree-tailcall.c: Adjust.
27525
27526 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
27527
27528         PR debug/47106
27529         PR debug/47402
27530         * tree-flow.h (referenced_var_lookup): Add fn parameter.
27531         Adjust all callers.
27532         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
27533         * tree-flow-inline.h: Adjust.
27534         * gimple-pretty-print.c: Adjust.
27535         * tree-into-ssa.c: Adjust.
27536         * tree-ssa.c: Adjust.
27537         * cfgexpand.c: Adjust.
27538
27539 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27540
27541         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
27542         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27543         (EXTRA_CONSTRAINT): Delete.
27544         * config/iq2000/constraints.md: New file.
27545         * config/iq2000/iq2000.md: Include it.
27546         (define_insn ""): Delete.
27547         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
27548         unsupported constraint letters from patterns.
27549         (call_value, call_value_internal1): Likewise.
27550         (call_value_multiple_internal1): Likewise.
27551
27552 2011-02-15  Nick Clifton  <nickc@redhat.com>
27553
27554         * config/mn10300/mn10300.c: Include tm-constrs.h.
27555         (struct liw_data): New data structure describing an LIW candidate
27556         instruction.
27557         (extract_bundle): Use struct liw_data.  Allow small integer
27558         operands for some instructions.
27559         (check_liw_constraints): Use struct liw_data.  Remove swapped
27560         parameter.  Add comments describing the checks.  Fix bug when
27561         assigning the source of liw1 to the source of liw2.
27562         (liw_candidate): Delete.  Code moved into extract_bundle.
27563         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
27564         before swapping.
27565         * config/mn10300/predicates.md (liw_operand): New predicate.
27566         Allows registers and small integer constants.
27567         * config/mn10300/constraints.md (O): New constraint.  Accetps
27568         integers in the range -8 to +7 inclusive.
27569         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
27570         for moving a small integer into a register.  Give this alternative
27571         LIW attributes.
27572         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
27573         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
27574         using the J,K,L and M constraints,
27575         (liw): Remove SI mode on second operands to allow for HI and QI
27576         mode values.
27577         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
27578         instruction.
27579
27580 2011-02-15  Richard Guenther  <rguenther@suse.de>
27581
27582         PR tree-optimization/47743
27583         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
27584         for a non-type-compatible VN lookup bail out.
27585
27586 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27587
27588         * config/fr30/constraints.md: New file.
27589         * config/fr30/fr30.md: Include it.
27590         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
27591         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27592         (EXTRA_CONSTRAINT): Delete.
27593
27594 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
27595
27596         * config/frv/constraints.md: New file.
27597         * config/frv/predicates.md: Include it.
27598         * config/frv/frv.c (reg_class_from_letter): Delete.
27599         (frv_option_override): Don't initialize it.
27600         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
27601         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
27602         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
27603         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27604         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
27605         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27606         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
27607         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
27608         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
27609         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
27610         (REG_CLASS_FROM_CONSTRAINT): Delete.
27611
27612 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
27613
27614         PR middle-end/47581
27615         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
27616         if frame size is 0 in a leaf function.
27617
27618 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27619
27620         PR pch/14940
27621         * config/alpha/host-osf.c: New file.
27622         * config/alpha/x-osf: New file.
27623         * config.host (alpha*-dec-osf*): Use it.
27624
27625 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27626
27627         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27628         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
27629         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
27630         (rx_mode_dependent_address_p): ...this. Make static. Change argument
27631         type to const_rtx.
27632         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27633
27634 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27635
27636         * config/stormy16/constraints.md: New file.
27637         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
27638         Use satisfies_constraint_Q and satisfies_constraint_R.
27639         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
27640         Delete.
27641         (xstormy16_legitiamte_address_p): Declare.
27642         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
27643         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27644         (EXTRA_CONSTRAINT): Delete.
27645         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
27646         Un-staticize.
27647         (xstormy16_extra_constraint_p): Delete.
27648
27649 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
27650
27651         PR tree-optimization/46494
27652         * loop-unroll.c (split_edge_and_insert): Adjust comment.
27653         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
27654         (pass_rtl_loop_done): Add TODO_verify_flow.
27655         * fwprop.c (pass_rtl_fwprop): Likewise.
27656         * modulo-sched.c (pass_sms): Likewise.
27657         * tree-ssa-dom.c (pass_dominator): Likewise.
27658         * tree-ssa-loop-ch.c (pass_ch): Likewise.
27659         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
27660         (pass_tree_loop_done): Likewise.
27661         * tree-ssa-pre.c (execute_pre): Likewise.
27662         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
27663         * tree-ssa-sink.c (pass_sink_code): Likewise.
27664         * tree-vrp.c (pass_vrp): Likewise.
27665
27666 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27667
27668         * config/v850/constraints.md: New file.
27669         * config/v850/v850.md: Include it.
27670         * config/v850/predicates.md (reg_or_0_operand): Use
27671         satisfies_constraint_G.
27672         (special_symbolref_operand): Use satisfies_constraint_K.
27673         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
27674         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
27675         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
27676         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
27677         (EXTRA_CONSTRAINT): Delete.
27678         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
27679         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
27680         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
27681
27682 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
27683
27684         PR target/47696
27685         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
27686         description.
27687
27688 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
27689
27690         * config/mcore/constraints.md: New file.
27691         * config/mcore/mcore.md: Include it.
27692         * config/mcore/mcore.c (reg_class_from_letter): Delete.
27693         * config/mcore/mcore.h (reg_class_from_letter): Delete.
27694         (REG_CLASS_FROM_LETTER): Delete.
27695         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
27696         insn_const_int_ok_for_constraint.
27697         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
27698         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
27699         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
27700         (EXTRA_CONSTRAINT): Delete.
27701
27702 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27703
27704         PR ada/41929
27705         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
27706         (IS_SIGHANDLER): Define.
27707         (sparc64_is_sighandler): New function, split off from
27708         sparc64_fallback_frame_state.
27709         (sparc_is_sighandler): New function, split off from
27710         sparc_fallback_frame_state.
27711         (sparc64_fallback_frame_state): Merge with ...
27712         (sparc_fallback_frame_state): ... this into ...
27713         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
27714         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
27715         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
27716         stack instead of hardcoded offsets.
27717
27718 2011-02-14  Andriy Gapon  <avg@freebsd.org>
27719
27720         PR target/45808
27721         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
27722
27723 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27724
27725         * configure: Regenerate.
27726
27727 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
27728
27729         PR driver/45731
27730         * gcc.c (asm_options): Correct spec matching --target-help.
27731
27732 2011-02-12  Martin Jambor  <mjambor@suse.cz>
27733
27734         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
27735         to gimple call error.
27736
27737 2011-02-12  Mike Stump  <mikestump@comcast.net>
27738
27739         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
27740         comments in backslash regions.
27741
27742 2011-02-12  Mike Stump  <mikestump@comcast.net>
27743             Jakub Jelinek  <jakub@redhat.com>
27744             Iain Sandoe  <iains@gcc.gnu.org>
27745
27746         PR target/47324
27747         * dwarf2out.c (output_cfa_loc): When required, apply the
27748         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
27749         (output_loc_sequence): Likewise.
27750         (output_loc_operands_raw): Likewise.
27751         (output_loc_sequence_raw): Likewise.
27752         (output_cfa_loc): Likewise.
27753         (output_loc_list): Suppress register number adjustment when
27754         calling output_loc_sequence()
27755         (output_die): Likewise.
27756
27757 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
27758
27759         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
27760         Remove macros.
27761         * config/xtensa/xtensa.c (xtensa_register_move_cost,
27762         xtensa_memory_move_cost): New functions.
27763         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
27764
27765 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
27766
27767         PR lto/47225
27768         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
27769         in the current directory.
27770         * configure: Rebuilt.
27771
27772 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27773
27774         * config/darwin.c (darwin_override_options): Add a hunk missed
27775         from the commit of r168571.  Trim comment line lengths and
27776         correct indents of the preceding block.
27777
27778 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
27779
27780         * gcc.c (driver_handle_option): Concatenate the argument to -F with
27781         the switch.
27782
27783 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27784
27785         * common.opt (nostartfiles): New Driver option.
27786
27787 2011-02-11  Xinliang David Li  <davidxl@google.com>
27788
27789         PR tree-optimization/47707
27790         * tree-chrec.c (convert_affine_scev): Keep type precision.
27791
27792 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
27793
27794         PR tree-optimization/47420
27795         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
27796
27797 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
27798
27799         PR rtl-optimization/47614
27800         * rtl.h (check_for_inc_dec): Declare.
27801         * dse.c (check_for_inc_dec): Externalize...
27802         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
27803         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
27804
27805 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
27806
27807         PR driver/47678
27808         * gcc.c (main): Do not compile inputs if there were errors in
27809         option handling.
27810         * opts-common.c (read_cmdline_option): Check for wrong language
27811         after other error checks.
27812
27813 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
27814
27815         * cgraph.c: Fix comment typos.
27816         * cgraph.h: Likewise.
27817         * cgraphunit.c: Likewise.
27818         * ipa-cp.c: Likewise.
27819         * ipa-inline.c: Likewise.
27820         * ipa-prop.c: Likewise.
27821         * ipa-pure-const.c: Likewise.
27822         * ipa-ref.c: Likewise.
27823         * ipa-reference.c: Likewise.
27824
27825 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
27826
27827         PR debug/47684
27828         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
27829
27830 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27831
27832         PR testsuite/47400
27833         * doc/sourcebuild.texi (Require Support): Document
27834         dg-require-ascii-locale.
27835
27836 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
27837
27838         * doc/lto.texi (Write summary): Fix missing parentheses.
27839
27840 2011-02-10  DJ Delorie  <dj@redhat.com>
27841
27842         * config/m32c/m32c.c (m32c_option_override): Disable
27843         -fcombine-stack-adjustments until flag value tracking and compare
27844         optimization can be rewritten.
27845
27846 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
27847
27848         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
27849         PROCESSOR_POWER7.
27850         (PROCESSOR_DEFAULT64): Likewise.
27851
27852 2011-02-10  Richard Henderson  <rth@redhat.com>
27853
27854         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
27855         change from 2011-02-03.
27856         * config/rx/rx.c (flags_from_code): Likewise.
27857         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
27858         is valid, n/pz otherwise.
27859         (rx_select_cc_mode): Return CCmode if Y is not zero.
27860
27861 2011-02-10  Richard Guenther  <rguenther@suse.de>
27862
27863         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
27864
27865 2011-02-10  Richard Guenther  <rguenther@suse.de>
27866
27867         PR tree-optimization/47677
27868         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
27869
27870 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
27871
27872         PR target/47665
27873         * combine.c (make_compound_operation): Only change shifts into
27874         multiplication for SCALAR_INT_MODE_P.
27875
27876 2011-02-10  Jie Zhang  <jie@codesourcery.com>
27877
27878         PR testsuite/47622
27879         Revert
27880         2011-02-05  Jie Zhang  <jie@codesourcery.com>
27881         PR debug/42631
27882         * web.c (entry_register): Don't clobber the number of the
27883         first uninitialized reference in used[].
27884
27885 2011-02-09  Richard Guenther  <rguenther@suse.de>
27886
27887         PR tree-optimization/47664
27888         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
27889         all edges again.
27890
27891 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
27892
27893         PR target/46481
27894         PR target/47032
27895         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
27896         PROCESSOR_POWER7.
27897         (PROCESSOR_DEFAULT64): Same.
27898         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
27899
27900 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27901
27902         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
27903
27904 2011-02-09  Martin Jambor  <mjambor@suse.cz>
27905
27906         PR middle-end/45505
27907         * tree-sra.c (struct access): New flags grp_scalar_read and
27908         grp_scalar_write.  Changed description of assignment read and write
27909         flags.
27910         (dump_access): Dump new flags, reorder all of them.
27911         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
27912         to detect multiple scalar reads.
27913         (analyze_access_subtree): Use the new scalar read write flags instead
27914         of the old flags.  Adjusted comments.
27915
27916 2011-02-08  DJ Delorie  <dj@redhat.com>
27917
27918         PR target/47548
27919         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
27920         patterns.
27921
27922 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27923
27924         * config/m68k/uclinux.opt: New.
27925         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
27926
27927 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27928
27929         * config/cris/elf.opt (sim): New Driver option.
27930
27931 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27932
27933         * config/xtensa/elf.opt: New.
27934         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
27935
27936 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27937
27938         * config/vax/elf.opt: New.
27939         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
27940
27941 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27942
27943         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
27944
27945 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27946
27947         * config/gnu-user.opt: New.
27948         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
27949         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
27950         *-*-uclinux*): Use gnu-user.opt.
27951
27952 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
27953
27954         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
27955         * config/i386/gnu.h (CPP_SPEC): Likewise.
27956
27957 2011-02-08  Ian Lance Taylor  <iant@google.com>
27958
27959         * common.opt (fcx-limited-range): Add SetByCombined flag.
27960         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
27961         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
27962         (fassociative-math, freciprocal-math): Likewise.
27963         (funsafe-math-optimizations): Likewise.
27964         * opth-gen.awk: Handle SetByCombined.
27965         * optc-gen.awk: Likewise.
27966         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
27967         (set_unsafe_math_optimizations_flags): Likewise.
27968         * doc/options.texi (Option properties): Document SetByCombined.
27969
27970 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
27971
27972         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
27973         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
27974         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
27975         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
27976         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
27977
27978 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
27979
27980         PR tree-optimization/46834
27981         PR tree-optimization/46994
27982         PR tree-optimization/46995
27983         * graphite-sese-to-poly.c (used_outside_reduction): New.
27984         (detect_commutative_reduction): Call used_outside_reduction.
27985         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
27986         translate_scalar_reduction_to_array only when at least one
27987         loop-phi/close-phi tuple has been detected.
27988
27989 2011-02-08  Richard Guenther  <rguenther@suse.de>
27990
27991         PR middle-end/47639
27992         * tree-vect-generic.c (expand_vector_operations_1): Update
27993         stmts here ...
27994         (expand_vector_operations): ... not here.  Cleanup EH info
27995         and the CFG if required.
27996
27997 2011-02-08  Richard Guenther  <rguenther@suse.de>
27998
27999         PR tree-optimization/47641
28000         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
28001         require type compatibility.
28002
28003 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28004
28005         * gimple-low.c (lower_function_body): Don't remove the location of
28006         the return statement here.
28007         (lower_gimple_return): Do it here instead but only if the return
28008         statement is actually used twice.
28009
28010 2011-02-08  Richard Guenther  <rguenther@suse.de>
28011
28012         PR tree-optimization/47632
28013         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
28014         unused up_to_stmt parameter, return whether cfg-cleanup is
28015         necessary, remove EH info properly.
28016         (forward_propagate_into_gimple_cond): Adjust caller.
28017         (forward_propagate_into_cond): Likewise.
28018         (forward_propagate_comparison): Likewise.
28019         (tree_ssa_forward_propagate_single_use_vars): Make
28020         forward_propagate_comparison case similar to the two others.
28021
28022 2011-02-08  Nick Clifton  <nickc@redhat.com>
28023
28024         * config/mn10300/mn10300.opt (mliw): New command line option.
28025         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
28026         (liw_bundling): New automaton.
28027         (liw): New attribute.
28028         (liw_op): New attribute.
28029         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
28030         (movsi_internal): Add LIW attributes.
28031         (andsi3): Likewise.
28032         (iorsi3): Likewise.
28033         (xorsi3): Likewise.
28034         (addsi3): Separate register and immediate alternatives.
28035         Add LIW attributes.
28036         (subsi3): Likewise.
28037         (cmpsi): Likewise.
28038         (aslsi3): Likewise.
28039         (lshrsi3): Likewise.
28040         (ashrsi3): Likewise.
28041         (liw): New pattern.
28042         * config/mn10300/mn10300.c (liw_op_names): New
28043         (mn10300_print_operand): Handle 'W' operand descriptor.
28044         (extract_bundle): New function.
28045         (check_liw_constraints): New function.
28046         (liw_candidate): New function.
28047         (mn10300_bundle_liw): New function.
28048         (mn10300_reorg): New function.
28049         (TARGET_MACHINE_DEPENDENT_REORG): Define.
28050         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
28051         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
28052         __LIW__ or __NO_LIW__.
28053         * doc/invoke.texi: Describe the -mliw command line option.
28054
28055 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28056
28057         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
28058         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
28059         pthread_mutex_unlock): Remove.
28060         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
28061         * config/pa/t-pa64: Likewise.
28062         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
28063         shared libc if not linking against libpthread.
28064         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
28065
28066 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
28067
28068         PR target/47558
28069         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
28070         on 10.6 and later to ensure that we always use the unwinder from
28071         the system.  Only add -no_compact_unwind when tarteting darwin
28072         10.6 or later.
28073
28074 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
28075
28076         PR target/46997
28077         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
28078         (vec_interleave_lowv2sf): Ditto.
28079         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
28080         (vec_extract_oddv2sf): Ditto.
28081
28082 2011-02-07  Mike Stump  <mikestump@comcast.net>
28083
28084         PR target/42333
28085         Add __ieee_divdc3 entry point.
28086         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
28087         entry point.
28088         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
28089         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
28090         * config/darwin.c (darwin_rename_builtins): Add.
28091         * config/darwin-protos.h (darwin_rename_builtins): Add.
28092
28093 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
28094
28095         PR target/47636
28096         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
28097         for the condition.
28098
28099 2011-02-07  Mike Stump  <mikestump@comcast.net>
28100
28101         * config/darwin.opt (mmacosx-version-min): Update default OS version.
28102
28103 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
28104
28105         PR target/47534
28106         * config/avr/libgcc.S (exit): Move .endfunc
28107
28108 2011-02-07  Richard Guenther  <rguenther@suse.de>
28109
28110         PR tree-optimization/47615
28111         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
28112         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
28113         (run_scc_vn): Initialize it.
28114         (visit_reference_op_load): Use it.
28115         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
28116
28117 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28118
28119         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
28120         DImode trapping arithmetic libfuncs.
28121
28122 2011-02-07  Richard Guenther  <rguenther@suse.de>
28123
28124         PR tree-optimization/47621
28125         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
28126         two duplicates ...
28127         (execute_update_addresses_taken): ... here.  Make it more
28128         conservative in what we accept.
28129
28130 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28131
28132         * config/sparc/freebsd.h (ASM_SPEC): Define.
28133         * config/sparc/vxworks.h (ASM_SPEC): Define.
28134
28135 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
28136
28137         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
28138
28139 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
28140
28141         * doc/invoke.texi: Remove reference to compiler internals from
28142         user documentation.
28143
28144         * reg-notes.def: Remove REG_VALUE_PROFILE.
28145         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
28146
28147 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
28148
28149         PR middle-end/47610
28150         * varasm.c (default_section_type_flags): If decl is NULL,
28151         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
28152
28153 2011-02-05  Jie Zhang  <jie@codesourcery.com>
28154
28155         PR debug/42631
28156         * web.c (entry_register): Don't clobber the number of the
28157         first uninitialized reference in used[].
28158
28159 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
28160
28161         PR tree-optimization/46194
28162         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
28163         (build_classic_dist_vector_1): Do not represent classic distance
28164         vectors when the access functions are variating in different loops.
28165
28166 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28167
28168         * config/mips/iris6.opt: New.
28169         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
28170
28171 2011-02-04  Richard Henderson  <rth@redhat.com>
28172             Steve Ellcey  <sje@cup.hp.com>
28173
28174         PR target/46997
28175         * config/ia64/predicates.md (mux1_brcst_element): New.
28176         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
28177         * config/ia64/ia64.c (ia64_unpack_assemble): New.
28178         (ia64_unpack_sign): New.
28179         (ia64_expand_unpack): Rewrite using new routines.
28180         (ia64_expand_widen_sum): Ditto.
28181         (ia64_expand_dot_prod_v8qi): Ditto.
28182         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
28183         routines, add endian check.
28184         (pmpy2_even): Rename from pmpy2_r, add endian check.
28185         (pmpy2_odd): Rename from pmpy2_l, add endian check.
28186         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
28187         (vec_widen_smult_hi_v4hi): Ditto.
28188         (vec_widen_umult_lo_v4hi): Ditto.
28189         (vec_widen_umult_hi_v4hi): Ditto.
28190         (mulv2si3): Change endian checks.
28191         (sdot_prodv4hi): Rewrite with new calls.
28192         (udot_prodv4hi): New.
28193         (vec_pack_ssat_v4hi): Add endian check.
28194         (vec_pack_usat_v4hi): Ditto.
28195         (vec_pack_ssat_v2si): Ditto.
28196         (max1_even): Rename from max1_r, add endian check.
28197         (max1_odd): Rename from max1_l, add endian check.
28198         (*mux1_rev): Format change.
28199         (*mux1_mix): Ditto.
28200         (*mux1_shuf): Ditto.
28201         (*mux1_alt): Ditto.
28202         (*mux1_brcst_v8qi): Use new predicate.
28203         (vec_extract_evenv8qi): Remove endian check.
28204         (vec_extract_oddv8qi): Ditto.
28205         (vec_interleave_lowv4hi): Format change.
28206         (vec_interleave_highv4hi): Ditto.
28207         (mix2_even): Rename from mix2_r, add endian check.
28208         (mix2_odd): Rename from mux2_l, add endian check.
28209         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
28210         (vec_extract_evenodd_helper): Format change.
28211         (vec_extract_evenv4hi): Remove endian check.
28212         (vec_extract_oddv4hi): Remove endian check.
28213         (vec_interleave_lowv2si): Format change.
28214         (vec_interleave_highv2si): Format change.
28215         (vec_initv2si): Remove endian check.
28216         (vecinit_v2si): Add endian check.
28217         (reduc_splus_v2sf): Add endian check.
28218         (reduc_smax_v2sf): Ditto.
28219         (reduc_smin_v2sf): Ditto.
28220         (vec_initv2sf): Remove endian check.
28221         (fpack): Add endian check.
28222         (fswap): Add endian check.
28223         (vec_interleave_highv2sf): Add endian check.
28224         (vec_interleave_lowv2sf): Add endian check.
28225         (fmix_lr): Add endian check.
28226         (vec_setv2sf): Format change.
28227         (*vec_extractv2sf_0_be): Use shift to extract operand.
28228         (*vec_extractv2sf_1_be): New.
28229         (vec_pack_trunc_v4hi): Add endian check.
28230         (vec_pack_trunc_v2si): Format change.
28231
28232 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
28233
28234         PR inline-asm/23200
28235         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
28236         do bb, locus and block comparison and disallow loads if it is not set.
28237         (stmt_is_replaceable_p): New function.
28238         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
28239         callers.
28240         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
28241         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
28242         SSA_NAME_DEF_STMT.
28243         * tree-flow.h (stmt_is_replaceable_p): New prototype.
28244
28245 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28246
28247         * config/rs6000/xilinx.opt: New.
28248         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
28249
28250 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
28251
28252         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
28253
28254 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
28255
28256         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
28257         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
28258         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
28259         secondary_reload_info, xtensa_secondary_reload): Remove.
28260         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
28261         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
28262         (xtensa_preferred_reload_class): Make static. Change return and
28263         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
28264         Use CONST_DOUBLE_P predicate.
28265         (xtensa_preferred_output_reload_class): New function.
28266         (xtensa_secondary_reload): Make static.
28267
28268 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
28269
28270         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
28271         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
28272         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
28273
28274 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28275
28276         PR middle-end/31490
28277         * output.h (SECTION_RELRO): Define.
28278         (SECTION_MACH_DEP): Adjust.
28279         (get_variable_section): New prototype.
28280         * varpool.c (varpool_finalize_named_section_flags): New function.
28281         (varpool_assemble_pending_decls): Call it.
28282         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
28283         * cgraphunit.c (cgraph_output_in_order): Call
28284         varpool_finalize_named_section_flags.
28285         * varasm.c (get_section): Allow section flags conflicts between
28286         relro and read-only sections if the section hasn't been declared yet.
28287         Set SECTION_OVERRIDE after diagnosing section type conflict.
28288         (get_variable_section): No longer static.
28289         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
28290         readonly sections that need relocations.
28291         (decl_readonly_section_1): New function.
28292         (decl_readonly_section): Use it.
28293
28294         Revert:
28295         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
28296                     Steve Ellcey  <sje@cup.hp.com>
28297
28298         PR middle-end/31490
28299         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
28300         if section attribute used.
28301
28302 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28303
28304         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
28305         * config/darwin.c (SECTION_NO_ANCHOR): Define.
28306         (darwin_init_sections): Remove assertion.
28307
28308 2011-02-03  Nick Clifton  <nickc@redhat.com>
28309
28310         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
28311         lt and ge.
28312         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
28313         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
28314         instead of "n" and "pz".
28315         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
28316         CC_FLAG_S.
28317
28318 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
28319
28320         PR target/47312
28321         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
28322         fma, expand FMA_EXPR as fma{,f,l} call.
28323
28324         PR lto/47274
28325         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
28326         copy them into a unsigned char variable and pass address of it to
28327         lto_output_data_stream.
28328
28329         PR target/47564
28330         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
28331         around backend_init_target and lang_dependent_init_target calls.
28332         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
28333         (verify_cgraph_node): Don't call set_cfun here.  Use
28334         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
28335         Set error_found for incorrectly represented calls to thunks.
28336
28337 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28338
28339         PR debug/43092
28340         PR rtl-optimization/43494
28341         * rtl.h (for_each_inc_dec_fn): New type.
28342         (for_each_inc_dec): Declare.
28343         * rtlanal.c (struct for_each_inc_dec_ops): New type.
28344         (for_each_inc_dec_find_inc_dec): New fn.
28345         (for_each_inc_dec_find_mem): New fn.
28346         (for_each_inc_dec): New fn.
28347         * dse.c (struct insn_size): Remove.
28348         (replace_inc_dec, replace_inc_dec_mem): Remove.
28349         (emit_inc_dec_insn_before): New fn.
28350         (check_for_inc_dec): Use it, along with for_each_inc_dec.
28351         (canon_address): Pass mem modes to cselib_lookup.
28352         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
28353         (cselib_lookup_from_insn): Likewise.
28354         (cselib_subst_to_values): Likewise.
28355         * cselib.c (find_slot_memmode): New var.
28356         (cselib_find_slot): New fn.  Use it instead of
28357         htab_find_slot_with_hash everywhere.
28358         (entry_and_rtx_equal_p): Use find_slot_memmode.
28359         (autoinc_split): New fn.
28360         (rtx_equal_for_cselib_p): Rename and implement in terms of...
28361         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
28362         Deal with autoinc.  Special-case recursion into MEMs.
28363         (cselib_hash_rtx): Likewise.
28364         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
28365         address and MEM modes.
28366         (cselib_subst_to_values): Add memmode, pass it on.
28367         Deal with autoinc.
28368         (cselib_lookup): Add memmode argument, pass it on.
28369         (cselib_lookup_from_insn): Add memmode.
28370         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
28371         (struct cselib_record_autoinc_data): New.
28372         (cselib_record_autoinc_cb): New fn.
28373         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
28374         mode to cselib_lookup.  Reset autoinced REGs here instead of...
28375         (cselib_process_insn): ... here.
28376         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
28377         to cselib_lookup.
28378         (add_uses): Likewise, also to cselib_subst_to_values.
28379         (add_stores): Likewise.
28380         * sched-deps.c (add_insn_mem_dependence): Pass mode to
28381         cselib_subst_to_values.
28382         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
28383         * gcse.c (do_local_cprop): Adjusted.
28384         * postreload.c (reload_cse_simplify_set): Adjusted.
28385         (reload_cse_simplify_operands): Adjusted.
28386         * sel-sched-dump (debug_mem_addr_value): Pass mode.
28387
28388 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
28389
28390         PR tree-optimization/45122
28391         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
28392         unsafe assumptions when there's more than one loop exit.
28393
28394 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28395
28396         PR target/47272
28397         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28398         Document using vector double with the load/store builtins, and
28399         that the load/store builtins always use Altivec instructions.
28400
28401         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
28402         to use altivec memory instructions, even on VSX.
28403         (vector_altivec_store_<mode>): Ditto.
28404
28405         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
28406         function.
28407
28408         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28409         V2DF, V2DI support to load/store overloaded builtins.
28410
28411         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
28412         altivec load/store builtins for V2DF/V2DI types.
28413
28414         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
28415         set avoid indexed addresses on power6 if -maltivec.
28416         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
28417         vector_altivec_load/vector_altivec_store builtins.
28418         (altivec_expand_st_builtin): Ditto.
28419         (altivec_expand_builtin): Add VSX memory builtins.
28420         (rs6000_init_builtins): Add V2DI types to internal types.
28421         (altivec_init_builtins): Add support for V2DF/V2DI altivec
28422         load/store builtins.
28423         (rs6000_address_for_altivec): Insure memory address is appropriate
28424         for Altivec.
28425
28426         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
28427         vec_vsx_ld and vec_vsx_st.
28428         (vsx_store_<mode>): Ditto.
28429
28430         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
28431         variables to hold long long types for VSX vector memory builtins.
28432         (RS6000_BTI_unsigned_long_long): Ditto.
28433         (long_long_integer_type_internal_node): Ditti.
28434         (long_long_unsigned_type_internal_node): Ditti.
28435
28436         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
28437         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
28438         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
28439
28440         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
28441         short cuts.
28442         (vec_vsx_st): Ditto.
28443
28444 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28445
28446         * config/pa/pa-hpux10.opt: New.
28447         * config/hpux11.opt (pthread): New Driver option.
28448         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
28449         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
28450
28451 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28452
28453         * config/ia64/vms.opt: New.
28454         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
28455
28456 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
28457
28458         PR target/47580
28459         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
28460         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
28461         generator functions.
28462         (vsx_floatuns<VSi><mode>2): Ditto.
28463         (vsx_fix_trunc<mode><VSi>2): Ditto.
28464         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
28465
28466 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
28467
28468         * config/i386/djgpp.opt (posix): New Driver option.
28469
28470 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
28471
28472         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
28473         Move to the unsupported targets list.
28474
28475 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
28476
28477         PR rtl-optimization/47525
28478         * df-scan.c: Update copyright years.
28479         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
28480         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
28481
28482 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28483
28484         * config/i386/sysv4.h (TARGET_VERSION): Remove.
28485         (SUBTARGET_RETURN_IN_MEMORY): Remove.
28486         (ASM_OUTPUT_ASCII): Remove.
28487         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
28488
28489 2011-02-02  Jeff Law  <law@redhat.com>
28490
28491         PR middle-end/47543
28492         * reload.c (find_reloads_address): Handle reg+d address where both
28493         components are invalid by reloading the entire address.
28494
28495 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28496             Richard Guenther  <rguenther@suse.de>
28497
28498         PR tree-optimization/40979
28499         PR bootstrap/47044
28500         * passes.c (init_optimization_passes): After LIM call copy_prop
28501         and DCE to clean up.
28502         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
28503
28504 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
28505
28506         PR tree-optimization/47576
28507         PR tree-optimization/47555
28508         * doc/invoke.texi (scev-max-expr-complexity): Documented.
28509         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28510         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
28511         * tree-scalar-evolution.c (follow_ssa_edge): Use
28512         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
28513
28514 2011-02-02  Richard Guenther  <rguenther@suse.de>
28515
28516         PR tree-optimization/47566
28517         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
28518
28519 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28520
28521         PR debug/47106
28522         PR debug/47402
28523         * tree-inline.c (declare_return_variable): Remove unused caller
28524         variable.
28525
28526         PR debug/47106
28527         PR debug/47402
28528         * tree-flow-inline.h (clear_is_used, is_used_p): New.
28529         * cfgexpand.c (account_used_vars_for_block): Use them.
28530         * tree-nrv.c (tree_nrv): Likewise.
28531         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
28532         (dump_scope_block): Likewise.
28533         (remove_unused_locals): Likewise.
28534
28535         PR debug/47106
28536         PR debug/47402
28537         * tree-inline.c (declare_return_variable): Add result decl to
28538         local decls only once.
28539         * gimple-low.c (record_vars_into): Mark newly-created variables
28540         as referenced.
28541
28542 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
28543
28544         PR debug/47498
28545         PR debug/47501
28546         PR debug/45136
28547         PR debug/45130
28548         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28549         debug insns.
28550         (no_real_insns_p, schedule_block, set_priorities): Drop special
28551         treatment of boundary debug insns.
28552         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28553         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
28554         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28555         (BOUNDARY_DEBUG_INSN_P): Likewise.
28556         (SCHEDULE_DEBUG_INSN_P): Likewise.
28557         * sched-rgn.c (init_ready_list): Drop special treatment of
28558         boundary debug insns.
28559         * final.c (rest_of_clean_state): Clear notes' BB.
28560
28561 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28562
28563         * config/openbsd.opt (assert=): New Driver option.
28564
28565 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28566
28567         * config/i386/nto.opt: New.
28568         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
28569
28570 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28571
28572         * config/i386/netware.opt: New.
28573         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
28574
28575 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28576
28577         * config/interix.opt (posix): New Driver option.
28578
28579 2011-02-01  DJ Delorie  <dj@redhat.com>
28580
28581         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
28582
28583         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
28584         class for A0/A1.
28585
28586 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
28587
28588         PR tree-optimization/47561
28589         * toplev.c (process_options): Print the Graphite flags.  Add
28590         flag_loop_flatten to the list of options requiring Graphite.
28591
28592 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28593
28594         * config/i386/cygming.opt (posix): New Driver option.
28595
28596 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28597
28598         * config/arm/vxworks.opt: New.
28599         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
28600
28601 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
28602
28603         * config/alpha/elf.opt: New.
28604         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
28605         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
28606
28607 2011-02-01  Richard Guenther  <rguenther@suse.de>
28608
28609         PR tree-optimization/47559
28610         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
28611         store-motion on references that can throw.
28612
28613 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
28614
28615         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
28616         * tree-pass.h (TDF_CSELIB): New macro.
28617         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
28618         cselib_lookup): Check for it rather than for TDF_DETAILS.
28619
28620 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
28621
28622         PR driver/47547
28623         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
28624         is HOST_BIT_BUCKET.
28625
28626         * opts.c (finish_options): Don't add x_aux_base_name if it is
28627         HOST_BIT_BUCKET.
28628
28629 2011-02-01  Richard Guenther  <rguenther@suse.de>
28630
28631         PR tree-optimization/47555
28632         Revert
28633         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
28634
28635         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
28636
28637 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
28638
28639         PR gcc/46692
28640         * config/lm32/t-lm32: Add multilib for all CPU options.
28641
28642 2011-02-01  Richard Guenther  <rguenther@suse.de>
28643
28644         PR tree-optimization/47541
28645         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
28646         sure to have a field at offset zero.
28647
28648 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28649
28650         * config/arc/arc.opt (EB, EL): New Driver options.
28651
28652 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28653
28654         * config/alpha/osf5.opt: New.
28655         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
28656
28657 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
28658
28659         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
28660
28661 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
28662
28663         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
28664         -floop-interchange.
28665         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
28666         is an alias of -floop-interchange and that it requires the
28667         Graphite infrastructure.
28668         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
28669         flag_loop_interchange based on the value of flag_tree_loop_linear.
28670
28671 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
28672             Richard Guenther  <rguenther@suse.de>
28673
28674         PR tree-optimization/47538
28675         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
28676         type instead of r1type, except for comparisons.  For right
28677         shifts and comparisons punt if there are mismatches in
28678         sizetype vs. non-sizetype types.
28679
28680 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28681
28682         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28683         avx_runtime.
28684
28685 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28686
28687         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
28688         version number.
28689         * configure: Regenerate.
28690
28691 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28692
28693         * configure.ac (gcc_cv_ld_static_option): Define.
28694         (gcc_cv_ld_dynamic_option): Define.
28695         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
28696         instead.
28697         (HAVE_LD_STATIC_DYNAMIC): Update message.
28698         (LD_STATIC_OPTION): Define.
28699         (LD_DYNAMIC_OPTION): Define.
28700         * configure: Regenerate.
28701         * config.in: Regenerate.
28702         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
28703         HAVE_LD_STATIC_DYNAMIC]: Use them.
28704
28705 2011-01-31  Nick Clifton  <nickc@redhat.com>
28706
28707         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
28708         registers inside interrupt handlers if the handler is not a leaf
28709         function.
28710
28711 2011-01-31  Nick Clifton  <nickc@redhat.com>
28712
28713         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
28714         reg_renumber returning an INVALID_REGNUM.
28715
28716 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28717
28718         PR libgcj/44341
28719         * doc/install.texi: Document host options discarded when cross
28720         configuring target libraries.
28721
28722 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
28723
28724         Reverted:
28725         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
28726         PR debug/45136
28727         PR debug/45130
28728         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28729         debug insns.
28730         (no_real_insns_p, schedule_block, set_priorities): Drop special
28731         treatment of boundary debug insns.
28732         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
28733         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
28734         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
28735         (BOUNDARY_DEBUG_INSN_P): Likewise.
28736         (SCHEDULE_DEBUG_INSN_P): Likewise.
28737         * sched-rgn.c (init_ready_list): Drop special treatment of
28738         boundary debug insns.
28739         * final.c (rest_of_clean-state): Clear notes' BB.
28740
28741 2011-01-31  Alan Modra  <amodra@gmail.com>
28742
28743         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
28744         toc relative expressions as we do in print_operand_address.
28745
28746 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
28747
28748         * doc/extend.texi: Follow spelling conventions.
28749         * doc/invoke.texi: Fix a typo.
28750
28751 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
28752
28753         * config/hpux11.opt: New.
28754         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
28755         ia64*-*-hpux*): Use hpux11.opt.
28756
28757 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
28758
28759         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
28760         to tmake_file.
28761
28762 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28763
28764         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
28765         support sites.
28766
28767 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28768
28769         * doc/install.texi (Binaries): Remove outdated reference for
28770         Motorola 68HC11/68HC12 downloads.
28771
28772 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
28773
28774         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
28775         Drepper's paper.
28776
28777 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
28778
28779         PR bootstrap/47147
28780         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
28781         used by NetBSD.
28782
28783 2011-01-28  Ahmad Sharif  <asharif@google.com>
28784
28785         * value-prof.c (check_counter): Corrected error message.
28786
28787 2011-01-29  Jie Zhang  <jie@codesourcery.com>
28788
28789         * config/arm/arm.c (arm_legitimize_reload_address): New.
28790         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
28791         arm_legitimize_reload_address.
28792         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
28793
28794 2011-01-28  Ian Lance Taylor  <iant@google.com>
28795
28796         * godump.c (go_define): Ignore macros whose definitions include
28797         two adjacent operands.
28798
28799 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
28800
28801         PR target/42894
28802         * varasm.c (force_const_mem): Store copy of x in desc->constant
28803         instead of x itself.
28804         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
28805         itself into REG_EQUAL note.
28806
28807 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
28808
28809         * config/freebsd.opt (posix, rdynamic): New Driver options.
28810
28811 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28812
28813         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
28814         -Bstatic/-Bdynamic.
28815         * configure: Regenerate.
28816
28817 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
28818
28819         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
28820         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
28821
28822 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
28823
28824         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
28825         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
28826         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
28827         (s390_preferred_reload_class): Make static. Change return and
28828         'rclass' argument type to reg_class_t.
28829
28830 2011-01-27  Jan Hubicka  <jh@suse.cz>
28831
28832         PR middle-end/46949
28833         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
28834         (process_function_and_variable_attributes): Check defined weakrefs.
28835
28836 2011-01-27  Martin Jambor  <mjambor@suse.cz>
28837
28838         PR tree-optimization/47228
28839         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
28840         build_ref_for_offset.
28841
28842 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28843
28844         * config/spu/spu-elf.h (ASM_SPEC): Remove.
28845
28846 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
28847
28848         PR rtl-optimization/46856
28849         * postreload.c (reload_combine_recognize_const_pattern): Do not
28850         separate cc0 setter and user on cc0 targets.
28851
28852 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
28853
28854         PR c/43082
28855         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
28856         passed a VOID_TYPE expression, immediately emit an error and
28857         return error_mark_node.
28858
28859 2011-01-26  Jeff Law  <law@redhat.com>
28860
28861         PR rtl-optimization/47464
28862         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
28863         rather than may_trap_p as needed.
28864
28865 2011-01-26  DJ Delorie  <dj@redhat.com>
28866
28867         PR rtl-optimization/46878
28868         * combine.c (insn_a_feeds_b): Check for the implicit cc0
28869         setter/user dependency as well.
28870
28871 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
28872
28873         PR rtl-optimization/44469
28874         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
28875         after removing trivially dead basic blocks.
28876
28877 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28878
28879         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
28880         * config/frv/frv.h (LINK_SPEC): Likewise.
28881         * config/i386/netware.h (LINK_SPEC): Likewise.
28882         * config/m68k/linux.h (ASM_SPEC): Likewise.
28883         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
28884         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28885         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28886         * config/sparc/linux.h (ASM_SPEC): Likewise.
28887         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28888         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28889
28890 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28891
28892         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
28893         * config/frv/frv.h (ASM_SPEC): Likewise.
28894         * config/m68k/linux.h (ASM_SPEC): Likewise.
28895         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28896         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
28897         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28898         * config/sparc/linux.h (ASM_SPEC): Likewise.
28899         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28900         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28901
28902 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28903
28904         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
28905         * config/frv/frv.h (LINK_SPEC): Likewise.
28906         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
28907
28908 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
28909
28910         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
28911         * config/frv/frv.h (ASM_SPEC): Likewise.
28912         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
28913         * config/m68k/linux.h (ASM_SPEC): Likewise.
28914         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
28915         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
28916         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
28917         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
28918         * config/sparc/linux.h (ASM_SPEC): Likewise.
28919         * config/sparc/linux64.h (ASM_SPEC): Likewise.
28920         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
28921         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
28922
28923 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
28924
28925         PR target/46997
28926         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
28927         (*mux2): Ditto.
28928         (vec_extract_evenodd_help): Ditto.
28929         (vec_extract_evenv4hi): Ditto.
28930         (vec_extract_oddv4hi): Ditto.
28931         (vec_interleave_lowv2si): Ditto.
28932         (vec_interleave_highv2si): Ditto.
28933         (vec_extract_evenv2si): Ditto.
28934         (vec_extract_oddv2si: Ditto.
28935         (vec_pack_trunc_v2si): Ditto.
28936
28937 2011-01-22  Jan Hubicka  <jh@suse.cz>
28938
28939         PR target/47237
28940         * cgraph.h (cgraph_local_info): New field can_change_signature.
28941         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
28942         signature can change.
28943         (ipcp_estimate_growth): Call sequence simplify only if calle signature
28944         can change.
28945         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
28946         (cgraph_function_versioning): We can not change signature of functions
28947         that don't allow that.
28948         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
28949         (lto_input_node): Likewise.
28950         * ipa-inline.c (compute_inline_parameters): Compute
28951         local.can_change_signature.
28952         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
28953         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
28954         functions that can not change signature.
28955         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
28956         init_cumulative_args): Do not use local calling conventions
28957         for functions that can not change signature.
28958
28959 2011-01-22  Jan Hubicka  <jh@suse.cz>
28960
28961         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
28962
28963 2011-01-26  Richard Guenther  <rguenther@suse.de>
28964
28965         PR tree-optimization/47190
28966         * cgraphunit.c (process_common_attributes): New function.
28967         (process_function_and_variable_attributes): Use it.
28968
28969 2011-01-26  Richard Guenther  <rguenther@suse.de>
28970
28971         PR lto/47423
28972         * cgraphbuild.c (record_eh_tables): Record reference to personality
28973         function.
28974
28975 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
28976
28977         PR debug/45454
28978         * sel-sched.c (moveup_expr): Don't let debug insns prevent
28979         non-debug insns from moving up.
28980
28981 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
28982
28983         PR target/40125
28984         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
28985         t-dlldir{,-x} fragment for build and add it to tmake_file.
28986         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
28987         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
28988         * config/i386/t-dlldir: New file.
28989         (SHLIB_DLLDIR): Define.
28990         * config/i386/t-dlldir-x: New file.
28991         (SHLIB_DLLDIR): Define.
28992         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
28993         (SHLIB_INSTALL): Use it.
28994
28995 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
28996
28997         PR target/47246
28998         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
28999         lower bound of the allowed Thumb-2 coprocessor load/store
29000         index range to -256. Add explaining comment.
29001
29002 2011-01-25  Ian Lance Taylor  <iant@google.com>
29003
29004         * godump.c (go_define): Improve lexing of macro expansion to only
29005         accept expressions which match Go spec.
29006
29007 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
29008
29009         PR c++/43601
29010         * tree.c (handle_dll_attribute): Handle it.
29011         * doc/extend.texi (@item dllexport): Mention it.
29012         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
29013
29014 2011-01-25  Ian Lance Taylor  <iant@google.com>
29015
29016         PR tree-optimization/26854
29017         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
29018         (decl_jump_unsafe): Move higher in file, with no other change.
29019         (bind): Set has_jump_unsafe_decl if appropriate.
29020         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
29021         (check_earlier_gotos): Likewise.
29022         (c_check_switch_jump_warnings): Likewise.
29023
29024 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
29025
29026         * doc/invoke.texi (Warning Options): Add missing hyphen.
29027         (-fprofile-dir): Minor grammatical fixes.
29028         (-fbranch-probabilities): Likewise.
29029
29030 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
29031
29032         PR debug/45136
29033         PR debug/45130
29034         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
29035         debug insns.
29036         (no_real_insns_p, schedule_block, set_priorities): Drop special
29037         treatment of boundary debug insns.
29038         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
29039         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
29040         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
29041         (BOUNDARY_DEBUG_INSN_P): Likewise.
29042         (SCHEDULE_DEBUG_INSN_P): Likewise.
29043         * sched-rgn.c (init_ready_list): Drop special treatment of
29044         boundary debug insns.
29045         * final.c (rest_of_clean-state): Clear notes' BB.
29046
29047 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29048
29049         * Makefile.in (LAMBDA_H): Removed.
29050         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
29051         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
29052         lambda-trans.o, and tree-loop-linear.o.
29053         (lto-symtab.o): Remove dependence on LAMBDA_H.
29054         (tree-loop-linear.o): Remove rule.
29055         (lambda-mat.o): Same.
29056         (lambda-trans.o): Same.
29057         (lambda-code.o): Same.
29058         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
29059         (tree-vect-slp.o): Same.
29060         * hwint.h (gcd): Moved here.
29061         (least_common_multiple): Same.
29062         * lambda-code.c: Removed.
29063         * lambda-mat.c: Removed.
29064         * lambda-trans.c: Removed.
29065         * lambda.h: Removed.
29066         * tree-loop-linear.c: Removed.
29067         * lto-symtab.c: Do not include lambda.h.
29068         * omega.c (gcd): Removed.
29069         * passes.c (init_optimization_passes): Remove pass_linear_transform.
29070         * tree-data-ref.c (print_lambda_vector): Moved here.
29071         (lambda_vector_copy): Same.
29072         (lambda_matrix_copy): Same.
29073         (lambda_matrix_id): Same.
29074         (lambda_vector_first_nz): Same.
29075         (lambda_matrix_row_add): Same.
29076         (lambda_matrix_row_exchange): Same.
29077         (lambda_vector_mult_const): Same.
29078         (lambda_vector_negate): Same.
29079         (lambda_matrix_row_negate): Same.
29080         (lambda_vector_equal): Same.
29081         (lambda_matrix_right_hermite): Same.
29082         * tree-data-ref.h: Do not include lambda.h.
29083         (lambda_vector): Moved here.
29084         (lambda_matrix): Same.
29085         (dependence_level): Same.
29086         (lambda_transform_legal_p): Removed declaration.
29087         (lambda_collect_parameters): Same.
29088         (lambda_compute_access_matrices): Same.
29089         (lambda_vector_gcd): Same.
29090         (lambda_vector_new): Same.
29091         (lambda_vector_clear): Same.
29092         (lambda_vector_lexico_pos): Same.
29093         (lambda_vector_zerop): Same.
29094         (lambda_matrix_new): Same.
29095         * tree-flow.h (least_common_multiple): Removed declaration.
29096         * tree-parloops.c (lambda_trans_matrix): Moved here.
29097         (LTM_MATRIX): Same.
29098         (LTM_ROWSIZE): Same.
29099         (LTM_COLSIZE): Same.
29100         (LTM_DENOMINATOR): Same.
29101         (lambda_trans_matrix_new): Same.
29102         (lambda_matrix_vector_mult): Same.
29103         (lambda_transform_legal_p): Same.
29104         * tree-pass.h (pass_linear_transform): Removed declaration.
29105         * tree-ssa-loop.c (tree_linear_transform): Removed.
29106         (gate_tree_linear_transform): Removed.
29107         (pass_linear_transform): Removed.
29108         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
29109         flag_loop_interchange.
29110
29111 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29112
29113         PR tree-optimization/47265
29114         PR tree-optimization/47443
29115         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
29116         if name still has some uses.
29117
29118 2011-01-25  Martin Jambor  <mjambor@suse.cz>
29119
29120         PR tree-optimization/47382
29121         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
29122         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
29123
29124 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
29125
29126         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
29127         sjlj_except_unwind_info.
29128
29129 2011-01-25  Richard Guenther  <rguenther@suse.de>
29130
29131         PR tree-optimization/47426
29132         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
29133         visible functions results escape.
29134
29135 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29136
29137         PR target/45701
29138         * config/arm/arm.c (any_sibcall_uses_r3): New function.
29139         (arm_get_frame_offsets): Use it.
29140
29141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29142             Jakub Jelinek  <jakub@redhat.com>
29143
29144         PR tree-optimization/47271
29145         * tree-if-conv.c (bb_postdominates_preds): New.
29146         (if_convertible_bb_p): Call bb_postdominates_preds.
29147         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
29148         (predicate_scalar_phi): Call bb_postdominates_preds.
29149
29150 2011-01-25  Nick Clifton  <nickc@redhat.com>
29151
29152         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
29153         * config/rx/rx.c (rx_function_value): Likewise.
29154         (rx_promote_function_mode): Likewise.
29155         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
29156         in order to make it legitimate.
29157         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
29158         make sure that the first operand is the same as the result register.
29159         (addsi3_unspec): Delete.
29160         (subdi3): Do not accept immediate operands.
29161         (subdi3_internal): Likewise.
29162
29163 2011-01-25  Jeff Law  <law@redhat.com>
29164
29165         PR rtl-optimization/37273
29166         * ira-costs.c (scan_one_insn): Detect constants living in memory and
29167         handle them like argument loads from stack slots.  Do not double
29168         count memory for memory constants and argument loads from stack slots.
29169
29170 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
29171
29172         PR tree-optimization/47427
29173         PR tree-optimization/47428
29174         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
29175         coalesce if the new root var would be TREE_READONLY.
29176
29177 2011-01-25  Richard Guenther  <rguenther@suse.de>
29178
29179         PR middle-end/47414
29180         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
29181         correct type for TBAA.
29182
29183 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29184
29185         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
29186         (close_phi_written_to_memory): Call for_each_index with
29187         dr_indices_valid_in_loop.
29188
29189 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29190
29191         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
29192         when it is initialized.
29193
29194 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29195
29196         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
29197         call to graphite_find_data_references_in_stmt.
29198         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
29199         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
29200         call to graphite_find_data_references_in_stmt.
29201         (analyze_drs_in_stmts): Same.
29202         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
29203         in which the scalar analysis of indices is performed.
29204         (create_data_ref): Same.  Update call to dr_analyze_indices.
29205         (find_data_references_in_stmt): Update call to create_data_ref.
29206         (graphite_find_data_references_in_stmt): Same.
29207         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
29208         declaration.
29209         (create_data_ref): Same.
29210         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
29211         call to create_data_ref.
29212
29213 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29214
29215         * graphite-sese-to-poly.c (build_poly_scop): Move
29216         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
29217
29218 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29219
29220         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
29221         VAR_DECL, PARM_DECL, and RESULT_DECL.
29222
29223 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29224
29225         * graphite-dependences.c (reduction_dr_1): Allow several reductions
29226         in a reduction PBB.
29227         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
29228         that have already been marked as PBB_IS_REDUCTION.
29229
29230 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29231
29232         * graphite-scop-detection.c (same_close_phi_node): New.
29233         (remove_duplicate_close_phi): New.
29234         (make_close_phi_nodes_unique): New.
29235         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
29236
29237 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29238
29239         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
29240         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
29241         of both data references to be the same.
29242
29243 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29244
29245         * graphite-dependences.c (build_lexicographical_constraint): Remove
29246         the gdim parameter.
29247         (build_lexicographical_constraint): Adjust call to
29248         ppl_powerset_is_empty.
29249         (dependence_polyhedron): Same.
29250         (graphite_legal_transform_dr): Same.
29251         (graphite_carried_dependence_level_k): Same.
29252         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
29253         parameter.
29254         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
29255
29256 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29257
29258         * graphite-sese-to-poly.c
29259         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
29260         (close_phi_written_to_memory): New.
29261         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
29262         and unshare_expr.
29263
29264 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29265
29266         * doc/install.texi: Update the expected version number of PPL to 0.11.
29267         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
29268         #if PPL_VERSION_MINOR < 11.
29269
29270 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29271
29272         * graphite-dependences.c: Include graphite-cloog-util.h.
29273         (new_poly_ddr): Inlined into dependence_polyhedron.
29274         (free_poly_ddr): Moved close by new_poly_ddr.
29275         (dependence_polyhedron_1): Renamed dependence_polyhedron.
29276         Early return NULL when ppl_powerset_is_empty returns true.
29277         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
29278         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
29279         (graphite_legal_transform_dr): Call new_poly_ddr.
29280         (graphite_carried_dependence_level_k): Same.
29281         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
29282         (dot_transformed_deps_stmt_1): Removed.
29283         (dot_deps_stmt_1): Call dot_deps_stmt_2.
29284         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
29285         (dot_deps_1): Call dot_deps_2.
29286         * Makefile.in (graphite-dependences.o): Add missing dependence on
29287         graphite-cloog-util.h.
29288
29289 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29290
29291         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
29292         (build_lexicographical_constraint): Same.
29293         (dependence_polyhedron_1): Same.
29294         (graphite_legal_transform_dr): Same.
29295         (graphite_carried_dependence_level_k): Same.
29296         * graphite-ppl.c (ppl_powerset_is_empty): New.
29297         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
29298         * tree-data-ref.c (dump_data_reference): Print the basic block index.
29299
29300 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29301
29302         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
29303         the "a followed by b" relation and document it.
29304
29305 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29306
29307         * graphite-dependences.c (build_lexicographical_constraint): Stop the
29308         iteration when the bag of constraints is empty.
29309
29310 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29311
29312         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
29313
29314 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29315
29316         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
29317         nest and two loop depths as parameters.
29318         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
29319         lst_perfect_nestify.
29320
29321 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29322
29323         * graphite-dependences.c (print_pddr): Call
29324         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
29325
29326 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
29327
29328         * graphite-ppl.c (debug_gmp_value): New.
29329         * graphite-ppl.h (debug_gmp_value): Declared.
29330
29331 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
29332
29333         * doc/install.texi: Document availability of cloog-0.16.
29334
29335 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
29336
29337         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
29338         invalid postdominance info.
29339
29340 2011-01-24  Jan Hubicka  <jh@suse.cz>
29341
29342         PR c/21659
29343         * doc/extend.texi (weak pragma): Drop claim that it must
29344         appear before definition.
29345         * varasm.c (merge_weak, declare_weak): Only sanity check
29346         that DECL is not output at a time it is declared weak.
29347
29348 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
29349
29350         * machmode.def: Fixed comments.
29351
29352 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
29353
29354         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
29355
29356 2011-01-24  Paul Koning  <ni1d@arrl.net>
29357
29358         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
29359         WORDS_BIG_ENDIAN.
29360
29361 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
29362
29363         PR target/46519
29364         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
29365         (block_info): Add scanned and prev.
29366         (move_or_delete_vzeroupper_2): Return if the basic block
29367         has been scanned and the upper 128bit state is unchanged
29368         from the last scan.
29369         (move_or_delete_vzeroupper_1): Return true if the exit
29370         state is changed.
29371         (move_or_delete_vzeroupper): Visit basic blocks using the
29372         work-list based algorithm based on vt_find_locations in
29373         var-tracking.c.
29374
29375         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
29376
29377 2011-01-24  Nick Clifton  <nickc@redhat.com>
29378
29379         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
29380         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
29381         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
29382         then define __v850e1__.
29383         * doc/invoke.texi: Document -mv850es.
29384
29385 2011-01-24  Richard Henderson  <rth@redhat.com>
29386
29387         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
29388         compound unordered comparisons.
29389         * config/rx/rx.c (rx_split_fp_compare): Remove.
29390         * config/rx/rx-protos.h: Update.
29391         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
29392         (cbranchsf4): Don't call rx_split_fp_compare.
29393         (*cbranchsf4): Use rx_split_cbranch.
29394         (*cmpsf): Don't accept "i" constraint.
29395         (*conditional_branch): Only valid after reload.
29396         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
29397
29398 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
29399
29400         PR target/47385
29401         * config/rs6000/altivec.md (vector constant splitters): Add
29402         support for creating vector single precision constants if -mvsx is
29403         used and we would create the constant using Altivec primitives.
29404
29405 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
29406             Richard Sandiford  <rdsandiford@googlemail.com>
29407
29408         PR rtl-optimization/47166
29409         * reload1.c (emit_reload_insns): Disable the spill_reg_store
29410         mechanism for PRE_MODIFY and POST_MODIFY.
29411         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
29412         reloadreg.
29413
29414 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
29415
29416         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
29417
29418 2011-01-22  Jan Hubicka  <jh@suse.cz>
29419
29420         PR lto/47333
29421         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
29422
29423 2011-01-22  Jan Hubicka  <jh@suse.cz>
29424
29425         PR tree-optimization/43884
29426         PR lto/44334
29427         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
29428         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
29429
29430 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
29431
29432         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
29433         * config/s390/s390.c (s390_register_move_cost,
29434         s390_memory_move_cost): New.
29435         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
29436
29437 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29438
29439         PR middle-end/47401
29440         * except.c (sjlj_assign_call_site_values): Move setting the
29441         crtl->uses_eh_lsda flag to ...
29442         (sjlj_mark_call_sites): ... here.
29443         (sjlj_emit_function_enter): Support NULL dispatch label.
29444         (sjlj_build_landing_pads): In a function with no landing pads
29445         that still has must-not-throw regions, generate code to register
29446         a personality function with empty LSDA.
29447
29448 2011-01-21  Richard Henderson  <rth@redhat.com>
29449
29450         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
29451
29452         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
29453
29454         * compare-elim.c: New file.
29455         * Makefile.in (OBJS-common): Add it.
29456         (compare-elim.o): New.
29457         * common.opt (fcompare-elim): New.
29458         * opts.c (default_options_table): Add OPT_fcompare_elim.
29459         * tree-pass.h (pass_compare_elim_after_reload): New.
29460         * passes.c (init_optimization_passes): Add it.
29461         * recog.h: Protect against re-inclusion.
29462         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
29463         * doc/invoke.texi (-fcompare-elim): Document it.
29464         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
29465         * doc/tm.texi: Rebuild.
29466
29467 2011-01-22  Nick Clifton  <nickc@redhat.com>
29468
29469         * config/rx/rx.md (cstoresf4): Pass comparison operator to
29470         rx_split_fp_compare.
29471
29472 2011-01-22  Nick Clifton  <nickc@redhat.com>
29473
29474         * config/rx/rx.md (UNSPEC_CONST): New.
29475         (deallocate_and_return): Wrap the amount popped off the stack in
29476         an UNSPEC_CONST in order to stop it being rejected by
29477         -mmax-constant-size.
29478         (pop_and_return): Add a "(return)" rtx.
29479         (call): Drop the immediate operand.
29480         (call_internal): Likewise.
29481         (call_value): Likewise.
29482         (call_value_internal): Likewise.
29483         (sibcall_internal): Likewise.
29484         (sibcall_value_internal): Likewise.
29485         (sibcall): Likewise.  Generate an explicit call using
29486         sibcall_internal.
29487         (sibcall_value): Likewise.
29488         (mov<>): FAIL if a constant operand is not legitimate.
29489         (addsi3_unpsec): New pattern.
29490
29491         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
29492         (ok_for_max_constant): New function.
29493         (gen_safe_add): New function.
29494         (rx_expand_prologue): Use gen_safe_add.
29495         (rx_expand_epilogue): Likewise.
29496         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
29497         UNSPEC CONSTs.
29498
29499 2011-01-21  Jeff Law  <law@redhat.com>
29500
29501         PR tree-optimization/47053
29502         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
29503         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
29504         statements are deleted.
29505         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
29506         is nonempty, then purge dead edges and cleanup the CFG.
29507
29508 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29509
29510         PR debug/47402
29511         Temporarily revert:
29512         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29513         PR debug/47106
29514         * tree-dfa.c (create_var_ann): Mark variable as used.
29515
29516 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29517
29518         PR middle-end/45566
29519         * except.c (convert_to_eh_region_ranges): Emit queued no-region
29520         notes from other section in hot/cold partitioning even if
29521         last_action is -3.  Increment call_site_base.
29522
29523         PR rtl-optimization/47366
29524         * fwprop.c (forward_propagate_into): Return bool.  If
29525         any changes are made, -fnon-call-exceptions is used and
29526         REG_EH_REGION note is present, call purge_dead_edges
29527         and return true if it purged anything.
29528         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
29529         any EH edges were purged.
29530
29531 2011-01-21  Jeff Law  <law@redhat.com>
29532
29533         PR rtl-optimization/41619
29534         * caller-save.c (setup_save_areas): Break out code to determine
29535         which hard regs are live across calls by examining the reload chains
29536         so that it is always used.
29537         Eliminate code which checked REG_N_CALLS_CROSSED.
29538
29539 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29540
29541         PR tree-optimization/47355
29542         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
29543         NOP has non-debug uses beyond PHIs in new_bb.
29544
29545 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
29546
29547         PR debug/47106
29548         * cfgexpand.c (account_used_vars_for_block): Only account vars
29549         that are annotated as used.
29550         (estimated_stack_frame_size): Don't set TREE_USED.
29551         * tree-dfa.c (create_var_ann): Mark variable as used.
29552
29553 2011-01-21  Richard Guenther  <rguenther@suse.de>
29554
29555         PR middle-end/47395
29556         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
29557
29558 2011-01-21  Richard Guenther  <rguenther@suse.de>
29559
29560         PR tree-optimization/47365
29561         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
29562         (vn_reference_lookup_pieces): Adjust.
29563         (vn_reference_lookup): Likewise.
29564         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
29565         (vn_reference_lookup_3): Only look through kills if in
29566         VN_WALKREWRITE mode.
29567         (vn_reference_lookup_pieces): Adjust.
29568         (vn_reference_lookup): Likewise.
29569         (visit_reference_op_load): Likewise.
29570         (visit_reference_op_store): Likewise.
29571         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
29572         (compute_avail): Likewise.
29573         (eliminate): Likewise.
29574
29575 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
29576
29577         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
29578         DECL_IGNORED_P non-reg vars if they are used.
29579
29580         PR tree-optimization/47391
29581         * varpool.c (const_value_known_p): Return false if
29582         decl is volatile.
29583
29584 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
29585
29586         PR bootstrap/47215
29587         * config/i386/i386.c (ix86_local_alignment): Handle
29588         case for va_list_type_node is nil.
29589         (ix86_canonical_va_list_type): Likewise.
29590
29591 2011-01-21  Alan Modra  <amodra@gmail.com>
29592
29593         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
29594         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
29595
29596 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29597
29598         * config/arm/arm.md (define_attr type): Rename f_load
29599         and f_store to f_fpa_load and f_fpa_store. Update.
29600         (write_conflict): Deal with rename fallout.
29601         (*push_fp_multi): Likewise.
29602         * config/arm/fpa.md (f_load): Use f_fpa_load.
29603         (f_store): Use f_fpa_store.
29604         (*movsf_fpa): Likewise.
29605         (*movdf_fpa): Likewise.
29606         (*movxf_fpa): Likewise.
29607         (*thumb2_movsf_fpa): Likewise.
29608         (*thumb2_movdf_fpa): Likewise.
29609         (*thumb2_movxf_fpa): Likewise.
29610         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
29611         f_loadd and f_stored.
29612         (*thumb2_movdi_vfp): Likewise.
29613         (*thumb2_movsf_vfp): Fix attribute to f_loads.
29614         (*thumb2_movsi_vfp): Likewise.
29615         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
29616         Use f_loads instead of f_load.
29617         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
29618
29619 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
29620
29621         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29622         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
29623         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29624         (xtensa_mode_dependent_address_p): New function.
29625         (constantpool_address_p): Make static. Change return type to bool.
29626         Change argument type to const_rtx. Use CONST_INT_P predicate.
29627
29628 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
29629
29630         PR debug/46583
29631         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
29632
29633 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29634
29635         PR debug/47283
29636         * cfgexpand.c (expand_debug_expr): Instead of generating
29637         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
29638         etc. handling.
29639
29640 2011-01-20  Richard Guenther  <rguenther@suse.de>
29641
29642         PR middle-end/47370
29643         * tree-inline.c (remap_gimple_op_r): Recurse manually for
29644         the pointer operand of MEM_REFs.
29645
29646 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
29647
29648         PR tree-optimization/46130
29649         * ipa-split.c (consider_split): If return_bb contains non-virtual
29650         PHIs other than for retval or if split_function would not adjust it,
29651         refuse to split.
29652
29653 2011-01-20  Richard Guenther  <rguenther@suse.de>
29654
29655         PR tree-optimization/47167
29656         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
29657         Revert previous change, only avoid enumeral type changes.
29658
29659 2011-01-19  Mike Stump  <mikestump@comcast.net>
29660
29661         * doc/tm.texi.in (BRANCH_COST): Englishify.
29662         * doc/tm.texi (BRANCH_COST): Likewise.
29663
29664 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
29665
29666         PR c++/47291
29667         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
29668         (gen_scheduled_generic_parms_dies): New functions.
29669         (gen_struct_or_union_type_die): Schedule template parameters DIEs
29670         generation for the end of CU compilation.
29671         (dwarf2out_finish): Generate template parameters DIEs here.
29672
29673 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29674
29675         PR debug/46240
29676         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
29677         debug bind stmt on merge edges.
29678
29679 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29680
29681         PR debug/47079
29682         PR debug/46724
29683         * function.c (instantiate_expr): Instantiate incoming rtl of
29684         implicit arguments, and recurse on VALUE_EXPRs.
29685         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
29686         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
29687
29688 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
29689
29690         * c-parser.c (c_parser_for_statement): Initialize
29691         collection_expression.
29692
29693 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29694
29695         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
29696
29697 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29698
29699         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
29700         (LINK_SHLIB_SPEC): Don't use %(link_path).
29701         (SUBTARGET_EXTRA_SPECS): Remove link_path.
29702
29703 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29704
29705         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
29706         (NO_SHARED_LIB_SUPPORT): Remove.
29707         (LINK_SHLIB_SPEC): Remove one conditional definition.
29708
29709 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
29710
29711         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
29712         %{call_shared}.
29713         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
29714         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
29715         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
29716         %{call_shared} and conditionals on these options not being passed.
29717         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
29718         %{call_shared}.
29719
29720 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29721
29722         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
29723         simplify.
29724
29725         * ipa-split.c: Spelling fixes.
29726
29727 2011-01-19  Richard Henderson  <rth@redhat.com>
29728
29729         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
29730         (*mulsi3): Likewise.
29731
29732         * longlong.h [__mn10300__] (count_leading_zeros): New.
29733         [__mn10300__] (umul_ppmm, smul_ppmm): New.
29734         [__mn10300__] (add_ssaaaa, subddmmss): New.
29735         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
29736         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
29737
29738 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29739
29740         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
29741
29742 2011-01-19  Richard Henderson  <rth@redhat.com>
29743
29744         * config/mn10300/mn10300.md (addsi3_flags): New.
29745         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
29746         (subsi3_flags, subc_internal, subdi3): New.
29747         (subdi3_internal, *subdi3_degenerate): New.
29748         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
29749
29750         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
29751         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
29752         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
29753         * config/mn10300/mn10300-protos.h: Update.
29754         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
29755         (return_ret): Likewise.  Rename from return_internal_regs.
29756         (return_internal): Remove.
29757
29758         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
29759         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
29760         (mn10300_legitimate_constant_p): Likewise.
29761         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
29762         (mn10300_frame_size): New.
29763         (mn10300_expand_prologue): Use it.
29764         (mn10300_expand_epilogue): Likewise.
29765         (mn10300_initial_offset): Likewise.
29766         * config/mn10300/mn10300-protos.h: Update.
29767         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
29768         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
29769         (prologue, epilogue, return_internal): Tidy output code.
29770         (mn10300_store_multiple_operation, return): Likewise.
29771         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
29772         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
29773         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
29774         (load_pic, am33_load_pic): New.
29775         (mn10300_load_pic0, mn10300_load_pic1): New.
29776
29777         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
29778         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
29779         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
29780         (cc_flags_for_mode, cc_flags_for_code): New.
29781         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
29782         overflow flag is not valid.  Validate that the flags we need
29783         for the comparison are valid.
29784         (mn10300_output_cmp): Remove.
29785         (mn10300_output_add): New.
29786         (mn10300_select_cc_mode): Use cc_flags_for_code.
29787         (mn10300_split_cbranch): New.
29788         (mn10300_match_ccmode): New.
29789         (mn10300_split_and_operand_count): New.
29790         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
29791         to the function.
29792         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
29793         (addsi3): ... here.  Use mn10300_output_add.
29794         (*addsi3_flags): New.
29795         (*am33_subsi3, *mn10300_subsi3): Merge...
29796         (subsi3): ... here.  Use attribute isa.
29797         (*subsi3_flags): New.
29798         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
29799         when possible.
29800         (*am33_andsi3, *mn10300_andsi3): Merge...
29801         (andsi3): ... here.
29802         (*andsi3_flags): New.
29803         (andsi3 splitters): New.
29804         (*am33_iorsi3, *mn10300_iorsi3): Merge...
29805         (iorsi3): ... here.
29806         (*iorsi3_flags): New.
29807         (*am33_xorsi3, *mn10300_xorsi3): Merge...
29808         (xorsi3): ... here.
29809         (*xorsi3_flags): New.
29810         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
29811         (one_cmplsi2): ... here.
29812         (*one_cmplsi2_flags): New.
29813         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
29814         instead of "dax" in constraints.  Use mn10300_split_cbranch.
29815         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
29816         use matching constraints to eliminate a self-comparison.
29817         (*integer_conditional_branch): Rename from integer_conditional_branch.
29818         Use int_mode_flags to match CC_REG.
29819         (*cbranchsi4_btst, *btstsi): New.
29820         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
29821         mn10300_split_cbranch.
29822         (*am33_cmpsf): Rename from am33_cmpsf.
29823         (*float_conditional_branch): Rename from float_conditional_branch.
29824         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
29825         (zero_extendqisi2): ... here.
29826         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
29827         (zero_extendhisi2): ... here.
29828         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
29829         (extendqisi2): ... here.
29830         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
29831         (extendhisi2): ... here.
29832         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
29833         (ashlsi3): ... here.
29834         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
29835         (lshrsi3): ... here.
29836         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
29837         (ashrsi3): ... here.
29838         (consecutive add peephole): Remove.
29839         * config/mn10300/predicates.md (label_ref_operand): New.
29840         (int_mode_flags): New.
29841         (CCZN_comparison_operator): New.
29842
29843         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
29844         (throughput_42_latency_43): New reservation.
29845         (mulsidi3, umulsidi3): New expanders.
29846         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
29847         the MDR register to allocation; separately allocate the low and
29848         high parts of the DImode result.
29849         (umulsidi3_internal): Similarly.
29850         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
29851         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
29852         (udivsi3, umodsi3): Remove.
29853         (udivmodsi4, divmodsi4): New expanders.
29854         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
29855         (*divmodsi4): Simiarly.
29856         (ext_internal): New.
29857
29858         * config/mn10300/constraints.md ("z"): New constraint.
29859         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
29860         (FIXED_REGISTERS): Don't fix MDR.
29861         (CALL_USED_REGSITERS): Reformat nicely.
29862         (REG_ALLOC_ORDER): Add MDR.
29863         (enum regclass): Add MDR_REGS.
29864         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
29865         (IRA_COVER_CLASSES): Add MDR_REGS.
29866         (REGNO_REG_CLASS): Handle MDR_REG.
29867         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
29868         (mn10300_register_move_cost): Likewise.
29869         * config/mn10300/mn10300.md (MDR_REG): New.
29870         (*movsi_internal): Handle moves to/from MDR_REGS.
29871
29872         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
29873         POST_MODIFY.
29874         (mn10300_secondary_reload): Tidy combination reload classes.
29875         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
29876         addresses for AM33.  Allow symbolic offsets for reg+imm.
29877         (mn10300_regno_in_class_p): New.
29878         (mn10300_legitimize_reload_address): New.
29879         * config/mn10300/mn10300.h (enum reg_class): Remove
29880         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
29881         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
29882         SP_OR_GENERAL_REGS.
29883         (REG_CLASS_NAMES): Update to match.
29884         (REG_CLASS_CONTENTS): Likewise.
29885         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
29886         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
29887         (REGNO_IN_RANGE_P): Remove.
29888         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
29889         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
29890         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
29891         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
29892         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
29893         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
29894         (REGNO_GENERAL_P): New.
29895         (HAVE_POST_MODIFY_DISP): New.
29896         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
29897         (LEGITIMIZE_RELOAD_ADDRESS): New.
29898         * config/mn10300/mn10300-protos.h: Update.
29899
29900         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
29901         DATA_REGS for AM33 stack-pointer destination.
29902         (mn10300_preferred_output_reload_class): Likewise.
29903         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
29904         into a form appropriate for ...
29905         (TARGET_SECONDARY_RELOAD): New.
29906         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
29907         * config/mn10300/mn10300-protos.h: Update.
29908         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
29909         reload_insi; use the "A" constraint for the scratch; handle AM33
29910         moves of sp to non-address registers.
29911
29912         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
29913         (*movqi_internal): ... here.
29914         (*am33_movhi, *mn10300_movhi): Merge into...
29915         (*movhi_internal): ... here.
29916         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
29917         as the source/destination of moves from/to SP.
29918         (movsf): Only allow for AM33-2.
29919         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
29920         any integer constant constraint.  Only allow for AM33-2.  Tidy
29921         all of the alternative outputs.
29922         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
29923         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
29924         for MN103.
29925         (udivsi3, umodsi3): New patterns for MN103 only.
29926
29927 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
29928
29929         * doc/tm.texi.in: Spell out that a lack of register class unions
29930         can lead to ICEs.
29931         * doc/tm.texi: Regenerate.
29932
29933 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
29934
29935         PR rtl-optimization/47337
29936         * dce.c (check_argument_store): New function.
29937         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
29938
29939         PR tree-optimization/47290
29940         * tree-eh.c (infinite_empty_loop_p): New function.
29941         (cleanup_empty_eh): Use it.
29942
29943 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
29944
29945         PR target/46997
29946         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
29947         (a64_expand_widen_sum): Ditto.
29948         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
29949         (vec_extract_evenodd_help): Ditto.
29950         (vec_extract_evenv4hi): Ditto.
29951         (vec_extract_oddv4hi): Ditto.
29952         (vec_extract_evenv2si): Ditto.
29953         (vec_extract_oddv2si): Ditto.
29954         (vec_extract_evenv2sf): Ditto.
29955         (vec_extract_oddv2sf): Ditto.
29956         (vec_pack_trunc_v4hi: Ditto.
29957         (vec_pack_trunc_v2si): Ditto.
29958         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
29959         (vec_interleave_highv8qi): Ditto.
29960         (mix1_r): Ditto.
29961         (vec_extract_oddv8qi): Ditto.
29962         (vec_interleave_lowv4hi): Ditto.
29963         (vec_interleave_highv4hi): Ditto.
29964         (vec_interleave_lowv2si): Ditto.
29965         (vec_interleave_highv2si): Ditto.
29966
29967 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29968
29969         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
29970         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
29971         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
29972         (pa_c_mode_for_suffix): New.
29973         (TARGET_EXPAND_BUILTIN): Define.
29974         (TARGET_C_MODE_FOR_SUFFIX): Define.
29975         (pa_builtins): Define.
29976         (pa_init_builtins): Register __float128 type and init new support
29977         builtins.
29978         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
29979         * config/pa/quadlib.c (_U_Qfcopysign): New.
29980
29981 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
29982
29983         PR middle-end/46894
29984         * explow.c (allocate_dynamic_stack_space): Do not assume more than
29985         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
29986         are defined.
29987
29988 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29989
29990         PR tree-optimization/47179
29991         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
29992         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
29993
29994 2011-01-18  Richard Guenther  <rguenther@suse.de>
29995
29996         PR rtl-optimization/47216
29997         * emit-rtl.c: Include tree-flow.h.
29998         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
29999         of replicating it with different semantics.
30000         * Makefile.in (emit-rtl.o): Adjust.
30001
30002 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30003
30004         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
30005         (cortex_a9_dp): Handle neon types correctly.
30006
30007 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
30008
30009         PR rtl-optimization/47299
30010         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
30011         subtarget.  Use normal multiplication if both operands are constants.
30012         * expmed.c (expand_widening_mult): Don't try to optimize constant
30013         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
30014         before using it.
30015
30016 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30017
30018         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
30019         spacing after 'e.g.', typos, comma, hyphenation.
30020
30021 2011-01-17  Richard Henderson  <rth@redhat.com>
30022
30023         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
30024         (rx_restricted_mem_operand): New.
30025         (rx_shift_operand): Use register_operand.
30026         (rx_source_operand, rx_compare_operand): Likewise.
30027         * config/rx/rx.md (addsi3_flags): New expander.
30028         (adddi3): Rewrite as expander.
30029         (adc_internal, *adc_flags, adddi3_internal): New patterns.
30030         (subsi3_flags): New expander.
30031         (subdi3): Rewrite as expander.
30032         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
30033
30034         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
30035         (rx_init_builtins): Remove sat builtin.
30036         (rx_expand_builtin): Likewise.
30037         * config/rx/rx.md (ssaddsi3): New.
30038         (*sat): Rename from sat.  Represent the CC_REG input.
30039
30040         * config/rx/predicates.md (rshift_operator): New.
30041         * config/rx/rx.c (rx_expand_insv): Remove.
30042         * config/rx/rx-protos.h: Update.
30043         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
30044         operand to the canonical position.
30045         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
30046         (*bitclr, *bitclr_in_memory): Similarly.
30047         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
30048         (insv): Retain the zero_extract in the expansion.
30049
30050         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
30051         (bswaphi2, bitinvert, revw): Likewise.
30052
30053         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
30054         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
30055         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
30056         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
30057         (bitset, bitset_in_memory): Likewise.
30058         (bitinvert, bitinvert_in_memory): Likewise.
30059         (bitclr, bitclr_in_memory): Likewise.
30060         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
30061         (rx_strend, rx_cmpstrn): Likewise.
30062         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
30063         (bitop peep2 patterns): Remove.
30064
30065         * config/rx/rx.c (rx_match_ccmode): New.
30066         * config/rx/rx-protos.h: Update.
30067         * config/rx/rx.md (abssi2): Clobber, don't set flags.
30068         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
30069         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
30070         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
30071         (fix_truncsfsi2, floatsisf2): Likewise.
30072         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
30073         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
30074         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
30075         (*subsi3_flags, *xorsi3_flags): New.
30076
30077         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
30078
30079         * config/rx/rx.c (rx_print_operand): Remove workaround for
30080         unsplit comparison operations.
30081
30082         * config/rx/rx.md (movsicc): Split after reload.
30083         (*movsicc): Merge *movsieq and *movsine via match_operator.
30084         (*stcc): New pattern.
30085
30086         * config/rx/rx.c (rx_float_compare_mode): Remove.
30087         * config/rx/rx.h (rx_float_compare_mode): Remove.
30088         * config/rx/rx.md (cstoresi4): Split after reload.
30089         (*sccc): New pattern.
30090
30091         * config/rx/predicates.md (label_ref_operand): New.
30092         (rx_z_comparison_operator): New.
30093         (rx_zs_comparison_operator): New.
30094         (rx_fp_comparison_operator): New.
30095         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
30096         Validate that the flags are set properly for the comparison.
30097         (rx_gen_cond_branch_template): Remove.
30098         (rx_cc_modes_compatible): Remove.
30099         (mode_from_flags): New.
30100         (flags_from_code): Rename from flags_needed_for_conditional.
30101         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
30102         (rx_select_cc_mode): Likewise.
30103         (rx_split_fp_compare): New.
30104         (rx_split_cbranch): New.
30105         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
30106         (*cbranchsi4): Use match_operator and rx_split_cbranch.
30107         (*cbranchsf4): Similarly.
30108         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
30109         match_operator and rx_split_cbranch.
30110         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
30111         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
30112         (*cmpsi): Rename from cmpsi.
30113         (*tstsi): Rename from tstsi.
30114         (*cmpsf): Rename from cmpsf; use CC_Fmode.
30115         (*conditional_branch): Rename from conditional_branch.
30116         (*reveresed_conditional_branch): Remove.
30117         (b<code>): Remove expander.
30118         * config/rx/rx-protos.h: Update.
30119
30120         * config/rx/rx.c (rx_compare_redundant): Remove.
30121         * config/rx/rx.md (cmpsi): Don't use it.
30122         * config/rx/rx-protos.h: Update.
30123
30124         * config/rx/rx-modes.def (CC_F): New mode.
30125         * config/rx/rx.c (rx_select_cc_mode): New.
30126         * config/rx/rx.h (SELECT_CC_MODE): Use it.
30127         * config/rx/rx-protos.h: Update.
30128
30129 2011-01-17  Richard Henderson  <rth@redhat.com>
30130
30131         * except.c (dump_eh_tree): Fix stray ; after for statement.
30132
30133 2011-01-17  Richard Guenther  <rguenther@suse.de>
30134
30135         PR tree-optimization/47313
30136         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
30137         handling before copying the body.  Properly deal with
30138         by-reference result in SSA form.
30139
30140 2011-01-17  Ian Lance Taylor  <iant@google.com>
30141
30142         PR target/47219
30143         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
30144         (struct_value_alias_set): Don't define.
30145         (sparc_option_override): Don't set sparc_sr_alias_set and
30146         struct_value_alias_set.
30147         (save_or_restore_regs): Use gen_frame_mem rather than calling
30148         set_mem_alias_set.
30149         (sparc_struct_value_rtx): Likewise.
30150
30151 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30152
30153         PR target/47318
30154         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
30155         (_mm_maskstore_pd): Likewise.
30156         (_mm_maskload_ps): Likewise.
30157         (_mm_maskstore_ps): Likewise.
30158         (_mm256_maskload_pd): Change mask to __m256i.
30159         (_mm256_maskstore_pd): Likewise.
30160         (_mm256_maskload_ps): Likewise.
30161         (_mm256_maskstore_ps): Likewise.
30162
30163         * config/i386/i386-builtin-types.def: Updated.
30164         (ix86_expand_special_args_builtin): Likewise.
30165
30166         * config/i386/i386.c (bdesc_special_args): Update
30167         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
30168         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
30169         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
30170         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
30171
30172         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
30173         Use <avxpermvecmode> on mask register.
30174         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
30175
30176 2011-01-17  Olivier Hainque  <hainque@adacore.com>
30177             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
30178             Eric Botcazou  <ebotcazou@adacore.com>
30179
30180         PR target/46655
30181         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
30182         if <= USHRT_MAX in 32-bit mode.
30183
30184 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30185
30186         * doc/install.texi (Configuration, Specific): Wrap long
30187         lines in examples.  Allow line wrapping in long options
30188         and URLs where beneficial for PDF output.
30189
30190 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
30191
30192         * config/mips/mips.c (mips_classify_symbol): Don't return
30193         SYMBOL_PC_RELATIVE for nonlocal labels.
30194
30195 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
30196
30197         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
30198
30199 2011-01-15  Jan Hubicka  <jh@suse.cz>
30200
30201         PR tree-optimization/47276
30202         * ipa.c (function_and_variable_visibility): Do not try to mark alias
30203         declarations as needed.
30204
30205 2011-01-15  Martin Jambor  <mjambor@suse.cz>
30206
30207         * common.opt (fdevirtualize): New flag.
30208         * doc/invoke.texi (Option Summary): Document it.
30209         * opts.c (default_options_table): Add devirtualize flag.
30210         * ipa-prop.c (detect_type_change): Return immediately if
30211         devirtualize flag is not set.
30212         (detect_type_change_ssa): Likewise.
30213         (compute_known_type_jump_func): Likewise.
30214         (ipa_analyze_virtual_call_uses): Likewise.
30215
30216 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30217
30218         PR tree-optimization/45934
30219         PR tree-optimization/46302
30220         * ipa-prop.c (type_change_info): New type.
30221         (stmt_may_be_vtbl_ptr_store): New function.
30222         (check_stmt_for_type_change): Likewise.
30223         (detect_type_change): Likewise.
30224         (detect_type_change_ssa): Likewise.
30225         (compute_complex_assign_jump_func): Check for dynamic type change.
30226         (compute_complex_ancestor_jump_func): Likewise.
30227         (compute_known_type_jump_func): Likewise.
30228         (compute_scalar_jump_functions): Likewise.
30229         (ipa_analyze_virtual_call_uses): Likewise.
30230         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
30231
30232 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30233
30234         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
30235         * config/i386/i386.opt (msse5): New Alias.
30236
30237 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30238
30239         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
30240         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30241         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30242         * config/sparc/sparc.h (CC1_SPEC): Likewise.
30243
30244 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30245
30246         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
30247         -mcpu options.
30248         * config/sparc/linux64.h (CC1_SPEC): Likewise.
30249         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
30250         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
30251         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
30252         Likewise.
30253         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
30254
30255 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30256
30257         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
30258
30259 2011-01-14  Mike Stump  <mikestump@comcast.net>
30260
30261         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
30262         * config/fr30/fr30.md: Likweise
30263         (movsi_push): Likewise.
30264         (movsi_pop): Likewise.
30265         (enter_func): Likewise.
30266         * config/moxie/moxie.md (movsi_push): Likewise.
30267         (movsi_pop): Likewise.
30268
30269 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30270
30271         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
30272         %{no_archive} %{exact_version}.
30273         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
30274         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
30275         %{no_archive} %{exact_version}.
30276         * config/mips/openbsd.h (LINK_SPEC): Likewise.
30277         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
30278         * config/mips/vxworks.h: Likewise.
30279
30280 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30281
30282         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
30283
30284 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30285
30286         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
30287         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
30288
30289 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30290
30291         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
30292         -nodefaultlib.
30293
30294 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30295
30296         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
30297         for mcpu not cpu.
30298         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
30299         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
30300         not cpu.
30301         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
30302         Don't handle -shlib.
30303
30304 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30305
30306         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
30307         (CC1_SPEC): Don't handle -profile.
30308
30309 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30310
30311         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
30312         * config/mips/mips.h (CC1_SPEC): Likewise.
30313
30314 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30315
30316         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
30317         * config/mips/mips.h (CC1_SPEC): Likewise.
30318
30319 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30320
30321         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
30322         * config/m32r/linux.h (LINK_SPEC): Likewise.
30323         * config/mips/linux.h (LINK_SPEC): Likewise.
30324         * config/mips/linux64.h (LINK_SPEC): Likewise.
30325         * config/sparc/linux.h (LINK_SPEC): Likewise.
30326         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
30327         LINK_SPEC): Likewise.
30328         * config/xtensa/linux.h (LINK_SPEC): Likewise.
30329
30330 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30331
30332         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
30333         %{version:-v}.
30334         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
30335
30336 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30337
30338         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
30339         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
30340
30341 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
30342
30343         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
30344
30345 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30346
30347         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
30348         supports -Bstatic/-Bdynamic.
30349         * configure: Regenerate.
30350
30351 2011-01-14  Jan Hubicka  <jh@suse.cz>
30352             Jack Howarth  <howarth@bromo.med.uc.edu>
30353
30354         PR target/46037
30355         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
30356         when checking debug_info_level. Test write_symbols instead of
30357         debug_hooks->var_location when setting flag_var_tracking_uninit.
30358
30359 2011-01-14  Richard Guenther  <rguenther@suse.de>
30360
30361         PR tree-optimization/47179
30362         * target.def (ref_may_alias_errno): New target hook.
30363         * targhooks.h (default_ref_may_alias_errno): Declare.
30364         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
30365         (default_ref_may_alias_errno): New function.
30366         * target.h (struct ao_ref_s): Declare.
30367         * tree-ssa-alias.c: Include target.h.
30368         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
30369         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
30370         (targhooks.o): Likewise.
30371         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
30372         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
30373
30374 2011-01-14  Richard Guenther  <rguenther@suse.de>
30375
30376         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
30377
30378 2011-01-14  Richard Guenther  <rguenther@suse.de>
30379
30380         PR tree-optimization/47280
30381         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
30382         return CFG changes.
30383         (tree_ssa_forward_propagate_single_use_vars): Deal with
30384         CFG changes from associate_plusminus.
30385
30386 2011-01-14  Richard Guenther  <rguenther@suse.de>
30387
30388         PR middle-end/47281
30389         Revert
30390         2011-01-11  Richard Guenther  <rguenther@suse.de>
30391
30392         PR tree-optimization/46076
30393         * tree-ssa.c (useless_type_conversion_p): Conversions from
30394         unprototyped to empty argument list function types are useless.
30395
30396 2011-01-14  Richard Guenther  <rguenther@suse.de>
30397
30398         PR tree-optimization/47286
30399         * tree-ssa-structalias.c (new_var_info): Register variables are global.
30400
30401 2011-01-14  Martin Jambor  <mjambor@suse.cz>
30402
30403         PR middle-end/46823
30404         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
30405
30406 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
30407
30408         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
30409         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30410         * config/xtensa/xtensa.c (xtensa_libcall_value,
30411         xtensa_function_value_regno_p): New functions.
30412         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
30413
30414 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
30415
30416         PR c++/47213
30417         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
30418         PE specific hook.
30419         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
30420         New function prototype.
30421         * config/i386/winnt.c (i386_pe_assemble_visibility):
30422         Warn only if attribute was specified by user.
30423
30424 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
30425
30426         PR target/47251
30427         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
30428         floating point.
30429         (floatunsdidf2_fcfidu): Ditto.
30430
30431 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30432
30433         * config/s390/s390.c (print_operand_address): Replace 'error' with
30434         'output_operand_lossage'.
30435         (print_operand): Likewise.
30436
30437 2011-01-13  Jeff Law  <law@redhat.com>
30438
30439         PR rtl-optimization/39077
30440         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
30441         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
30442         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
30443         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
30444         * gcse.c (prune_insertions_deletions): New function.
30445         (compute_pre_data): Use it.
30446
30447 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
30448
30449         PR debug/PR46973
30450         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
30451         static function.
30452         (prune_unused_types_mark): Use it.
30453
30454 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
30455
30456         PR rtl-optimization/45352
30457         * sel-sched.c: Update copyright years.
30458         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
30459         in the advancing loop when we have issued issue_rate insns.
30460
30461 2011-01-12  Richard Henderson  <rth@redhat.com>
30462
30463         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
30464         (TARGET_MD_ASM_CLOBBERS): New.
30465
30466         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
30467         (TARGET_DELEGITIMIZE_ADDRESS): New.
30468
30469         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
30470         (clzsi2, *bsch): New patterns.
30471
30472         * config/mn10300/mn10300.md (INT): New mode iterator.
30473         (*mov<INT>_clr): New pattern, and peep2 to generate it.
30474
30475         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
30476         flag_split_wide_types.
30477
30478         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
30479         (mn10300_trampoline_init): Rewrite without a template, an immediate
30480         load and a direct branch.
30481         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
30482
30483 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
30484
30485         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30486         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
30487         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
30488         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30489
30490 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
30491
30492         PR debug/47209
30493         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
30494         of type.
30495
30496 2011-01-12  Jan Hubicka  <jh@suse.cz>
30497
30498         PR driver/47244
30499         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
30500         (PLUGIN_COND_CLOSE): New macro.
30501         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
30502
30503 2011-01-12  Richard Guenther  <rguenther@suse.de>
30504
30505         PR lto/47259
30506         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
30507         register variables in a MEM_REF.
30508
30509 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
30510
30511         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
30512         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
30513         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
30514         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
30515         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
30516         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
30517         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
30518         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
30519         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
30520         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
30521         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
30522         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
30523         * config/gnu-user.h: New.  Copied from linux.h.
30524         (LINUX_TARGET_STARTFILE_SPEC): Rename to
30525         GNU_USER_TARGET_STARTFILE_SPEC.
30526         (LINUX_TARGET_ENDFILE_SPEC): Rename to
30527         GNU_USER_TARGET_ENDFILE_SPEC.
30528         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
30529         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
30530         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
30531         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
30532         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
30533         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
30534         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
30535         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
30536         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
30537         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
30538         * config/arm/linux-eabi.h (CC1_SPEC): Use
30539         GNU_USER_TARGET_CC1_SPEC.
30540         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
30541         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
30542         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
30543         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
30544         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
30545         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
30546         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
30547         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
30548
30549 2011-01-12  Richard Guenther  <rguenther@suse.de>
30550
30551         PR other/46946
30552         * doc/invoke.texi (ffast-math): Document it is turned on
30553         with -Ofast.
30554
30555 2011-01-12  Jan Hubicka  <jh@suse.cz>
30556
30557         PR tree-optimization/47233
30558         * opts.c (common_handle_option): Disable ipa-reference with profile
30559         feedback.
30560
30561 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30562
30563         * c-parser.c (c_parser_objc_at_property_declaration): Improved
30564         error message.
30565
30566 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
30567
30568         * c-parser.c (c_lex_one_token): Updated and reindented some
30569         comments.  No changes in code.
30570
30571 2011-01-11  Ian Lance Taylor  <iant@google.com>
30572
30573         * godump.c (go_output_var): Don't output the variable if there is
30574         already a type with the same name.
30575
30576 2011-01-11  Ian Lance Taylor  <iant@google.com>
30577
30578         * godump.c (go_format_type): Don't generate float80.
30579
30580 2011-01-11  Richard Henderson  <rth@redhat.com>
30581
30582         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
30583         declaration.  Rewrite for both speed and size.
30584         (mn10300_address_cost_1): Remove.
30585         (mn10300_register_move_cost): New.
30586         (mn10300_memory_move_cost): New.
30587         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
30588         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
30589         extensions, shifts, BSWAP, CLZ.
30590         (mn10300_wide_const_load_uses_clr): Remove.
30591         (TARGET_REGISTER_MOVE_COST): New.
30592         (TARGET_MEMORY_MOVE_COST): New.
30593         * config/mn10300/mn10300-protos.h: Update.
30594         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
30595
30596         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
30597         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
30598         * config/mn10300/mn10300-protos.h: Update.
30599         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
30600         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
30601         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
30602         (*test_int_bitfield, *test_byte_bitfield): Remove.
30603         (*bit_test, *subreg_bit_test): Remove.
30604         * config/mn10300/predicates.md (const_8bit_operand): Remove.
30605
30606         * config/mn10300/constraints.md ("c"): Rename from "A".
30607         ("A", "D"): New constraint letters.
30608         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
30609         (fmssf4, fnmasf4, fnmssf4): Likewise.
30610
30611         * config/mn10300/mn10300.md (isa): New attribute.
30612         (enabled): New attribute.
30613
30614         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
30615         (abssf2, negsf2): Define only for hardware fp.
30616         (sqrtsf2): Reformat.
30617         (addsf3, subsf3, mulsf3): Merge expander and insn.
30618
30619         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
30620         (DEBUGGER_AUTO_OFFSET): Remove.
30621         (DEBUGGER_ARG_OFFSET): Remove.
30622
30623         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
30624         Emit register stores with the same offsets as the hardware.
30625         (mn10300_store_multiple_operation): Don't check that the register
30626         save offsets are monotonic.
30627         * config/mn10300/mn10300-protos.h: Update.
30628
30629         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
30630
30631         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
30632         in terms of the value on the stack, not the MDR register.
30633
30634 2011-01-11  Jan Hubicka  <jh@suse.cz>
30635
30636         PR lto/45721
30637         PR lto/45375
30638         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
30639         (symbol_alias_set_destroy, symbol_alias_set_contains,
30640         propagate_aliases_backward): Declare.
30641         * lto-streamer-out.c (struct sets): New sturcture.
30642         (trivally_defined_alias): New function.
30643         (output_alias_pair_p): Rewrite.
30644         (output_unreferenced_globals): Fix output of alias pairs.
30645         (produce_symtab): Likewise.
30646         * ipa.c (function_and_variable_visibility): Set weak alias destination
30647         as needed in lto.
30648         * varasm.c (symbol_alias_set_t): Remove.
30649         (symbol_alias_set_destroy): Export.
30650         (propagate_aliases_forward, propagate_aliases_backward): New functions
30651         based on ...
30652         (compute_visible_aliases): ... this one; remove.
30653         (trivially_visible_alias): New
30654         (trivially_defined_alias): New.
30655         (remove_unreachable_alias_pairs): Rewrite.
30656         (finish_aliases_1): Reorganize code checking if alias is defined.
30657         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
30658         in LTO mode.
30659
30660 2011-01-11  Richard Guenther  <rguenther@suse.de>
30661
30662         PR tree-optimization/46076
30663         * tree-ssa.c (useless_type_conversion_p): Conversions from
30664         unprototyped to empty argument list function types are useless.
30665
30666 2011-01-11  Richard Guenther  <rguenther@suse.de>
30667
30668         PR middle-end/45235
30669         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
30670         volatile MEMs as MEM_READONLY_P.
30671
30672 2011-01-11  Richard Guenther  <rguenther@suse.de>
30673
30674         PR tree-optimization/47239
30675         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
30676
30677 2011-01-11  Jeff Law  <law@redhat.com>
30678
30679         PR tree-optimization/47086
30680         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
30681         IVs from statements that might throw.
30682
30683 2011-01-10  Jan Hubicka  <jh@suse.cz>
30684
30685         PR lto/45375
30686         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
30687
30688 2011-01-10  Jan Hubicka  <jh@suse.cz>
30689
30690         PR lto/45375
30691         * profile.c (read_profile_edge_counts): Ignore profile inconistency
30692         when correcting profile.
30693
30694 2011-01-10  Jan Hubicka  <jh@suse.cz>
30695
30696         PR lto/46083
30697         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
30698         DECL_FINI_PRIORITY.
30699         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
30700         Restore DECL_FINI_PRIORITY.
30701
30702 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30703
30704         * doc/gimple.texi: Fix quoting of multi-word return values in
30705         @deftypefn statements.  Ensure presence of return value.  Wrap
30706         overlong @deftypefn lines.
30707         (is_gimple_operand, is_gimple_min_invariant_address): Remove
30708         descriptions of removed functions.
30709         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
30710         of multi-word return value in @deftypefn statement.
30711
30712 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30713
30714         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
30715         (Conditional Expressions, Logical Operators)
30716         (Statement and operand traversals): Do not indent smallexample
30717         code.  Fix duplicate function argument in example.
30718
30719 2011-01-10  Jeff Law  <law@redhat.com>
30720
30721         PR tree-optimization/47141
30722         * ipa-split.c (split_function): Handle case where we are
30723         returning a value and the return block has a virtual operand phi.
30724
30725 2011-01-10  Jan Hubicka  <jh@suse.cz>
30726
30727         PR tree-optimization/47234
30728         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
30729         (pass_feedback_split_functions): Declare.
30730         * passes.c (init_optimization_passes): Add ipa-split as subpass of
30731         tree-profile.
30732         * ipa-split.c (gate_split_functions): Update comments; disable
30733         split-functions for profile_arc_flag and branch_probabilities.
30734         (gate_feedback_split_functions): New function.
30735         (execute_feedback_split_functions): New function.
30736         (pass_feedback_split_functions): New global var.
30737
30738 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
30739
30740         PR lto/46760
30741         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
30742         calling gimple_call_set_cannot_inline.
30743
30744 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
30745
30746         * config/darwin-sections.def: Remove unused section.
30747
30748 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
30749
30750         PR c++/47218
30751         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
30752
30753 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
30754
30755         PR objc/47232
30756         * c-parser.c (c_parser_declaration_or_fndef): Improved
30757         error message.
30758
30759 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
30760
30761         * config/i386/winnt.c (i386_pe_start_function): Make sure
30762         to switch back to function's section.
30763
30764 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
30765
30766         PR gcc/46902
30767         PR testsuite/46912
30768         * plugin.c: Move include of dlfcn.h from here...
30769         * system.h: ... to here.
30770
30771 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30772
30773         * doc/cpp.texi (C++ Named Operators): Fix markup for header
30774         file name.
30775         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
30776         two extra empty pages in PDF output.
30777
30778 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
30779
30780         PR objc/47078
30781         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
30782         for error recovery purposes behave as if it was not specified so
30783         that the default type is usd.
30784
30785 2011-01-07  Jan Hubicka  <jh@suse.cz>
30786
30787         PR tree-optmization/46469
30788         * ipa.c (function_and_variable_visibility): Clear needed flags on
30789         nodes with external decls; handle weakrefs merging correctly.
30790
30791 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
30792
30793         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
30794         not false.
30795
30796 2011-01-07  Jan Hubicka  <jh@suse.cz>
30797
30798         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
30799         and no longer claim that gold is required for linker plugin.
30800         * configure: Regenerate.
30801         * gcc.c (PLUGIN_COND): New macro.
30802         (LINK_COMMAND_SPEC): Use it.
30803         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
30804         * config.in (HAVE_LTO_PLUGIN): New.
30805         * configure.ac (--with-lto-plugin): New parameter; autodetect
30806         HAVE_LTO_PLUGIN.
30807
30808 2011-01-07  Jan Hubicka  <jh@suse.cz>
30809
30810         PR tree-optimization/46367
30811         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
30812         when we can update original.
30813         (cgraph_mark_inline_edge): Sanity check.
30814         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
30815
30816 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30817
30818         * config/spu/spu.h (ASM_COMMENT_START): Define.
30819
30820 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
30821
30822         PR driver/42445
30823         * gcc.c (%>S): New.
30824         (SWITCH_KEEP_FOR_GCC): Likewise.
30825         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
30826         (do_spec_1): Handle "%>".
30827
30828         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
30829
30830 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
30831
30832         PR target/47201
30833         * config/i386/i386.c (ix86_delegitimize_address): If
30834         simplify_gen_subreg fails, return orig_x.
30835
30836         PR bootstrap/47187
30837         * value-prof.c (gimple_stringop_fixed_value): Handle
30838         lhs of the call properly.
30839
30840 2011-01-07  Jan Hubicka  <jh@suse.cz>
30841
30842         PR lto/45375
30843         * lto-opt.c (lto_reissue_options): Set flag_shlib.
30844
30845 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30846
30847         * target.def (function_switched_text_sections): New hook.
30848         * doc/tm.texi: Regenerated.
30849         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30850         * final.c (default_function_switched_text_sections): New.
30851         (final_scan_insn): Call function_switched_text_sections when a
30852         mid-function section change occurs.
30853         * output.h (default_function_switched_text_sections): Declare.
30854         * config/darwin-protos.h (darwin_function_switched_text_sections):
30855         Likewise.
30856         * config/darwin.c (darwin_function_switched_text_sections): New.
30857         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
30858
30859 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
30860
30861         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
30862         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
30863         the secondary code fragment when outputting for DWARF == 2.
30864
30865 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
30866
30867         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
30868         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
30869         Remove.
30870         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
30871         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
30872
30873 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
30874
30875         PR debug/46704
30876         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
30877         when it is not empty.
30878
30879 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
30880
30881         Bobcat Enablement
30882         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
30883         (case ${target}): Add btver1.
30884         * config/i386/driver-i386.c (host_detect_local_cpu): Let
30885         -march=native recognize btver1 processors.
30886         * config/i386/i386-c.c (ix86_target_macros_internal): Add
30887         btver1 def_and_undef
30888         * config/i386/i386.c (struct processor_costs btver1_cost): New
30889         btver1 cost table.
30890         (m_BTVER1): New definition.
30891         (m_AMD_MULTIPLE): Includes m_BTVER1.
30892         (initial_ix86_tune_features): Add btver1 tune.
30893         (processor_target_table): Add btver1 entry.
30894         (static const char *const cpu_names): Add btver1 entry.
30895         (software_prefetching_beneficial_p): Add btver1.
30896         (ix86_option_override_internal): Add btver1 instruction sets.
30897         (ix86_issue_rate): Add btver1.
30898         (ix86_adjust_cost): Add btver1.
30899         * config/i386/i386.h (TARGET_BTVER1): New definition.
30900         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
30901         (enum processor_type): Add PROCESSOR_BTVER1.
30902         * config/i386/i386.md (define_attr "cpu"): Add btver1.
30903
30904 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30905
30906         PR target/43309
30907         * config/i386/i386.c (legitimize_tls_address)
30908         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
30909         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
30910         (tls_initial_exec_64_sun): New pattern.
30911
30912 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
30913
30914         * doc/invoke.texi (Overall Options): Improve wording and markup
30915         of the description of -wrapper.
30916
30917 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30918
30919         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
30920         rdynamic, threads): New Driver options.
30921
30922 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30923
30924         PR target/38118
30925         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
30926         if coming from .tdata.
30927         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
30928
30929 2011-01-06  Jan Hubicka  <jh@suse.cz>
30930
30931         PR lto/47188
30932         * collect2.c (main): Do not enable LTOmode when plugin is active.
30933
30934 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30935
30936         PR other/45915
30937         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
30938         --version output if supported.
30939         * configure: Regenerate.
30940
30941 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
30942
30943         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
30944         Driver options.
30945
30946 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
30947
30948         PR c/47150
30949         * c-convert.c (convert): When converting a complex expression
30950         other than COMPLEX_EXPR to a different complex type, ensure
30951         c_save_expr is called instead of save_expr, unless in_late_binary_op.
30952         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
30953         when converting COMPLEX_TYPE.
30954
30955 2011-01-06  Ira Rosen  <irar@il.ibm.com>
30956
30957         PR tree-optimization/47139
30958         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
30959         only the last reduction value is used outside the loop.  Update
30960         documentation.
30961
30962 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
30963
30964         * config/rtems.opt: New.
30965         * config.gcc (*-*-rtems*): Use rtems.opt.
30966
30967 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
30968
30969         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
30970         processors do not support 3DNow instructions.
30971
30972 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30973
30974         * config/spu/spu.c (spu_option_override): Set parameter
30975         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
30976
30977 2011-01-05  Jan Hubicka  <jh@suse.cz>
30978
30979         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
30980         at the command line.
30981
30982 2011-01-05  Martin Jambor  <mjambor@suse.cz>
30983
30984         PR lto/47162
30985         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
30986         deltas on streamed outgoing edges.
30987         (output_node_opt_summary): Output info for outgoing edges only when
30988         the node is in new parameter set.
30989         (output_cgraph_opt_summary): New parameter set, passed to the two
30990         aforementioned functions.  Update its forward declaration and its
30991         callee too.
30992
30993 2011-01-05  Tom Tromey  <tromey@redhat.com>
30994
30995         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
30996         operator to c_finish_omp_atomic.
30997         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
30998         (build_unary_op): Update.
30999         (build_modify_expr): Update.
31000         (build_asm_expr): Update.
31001
31002 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31003
31004         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
31005         newly inserted insns.
31006         (pad_bb): Likewise.
31007         (spu_emit_branch_hint): Likewise.
31008         (insert_hbrp_for_ilb_runout): Likewise.
31009         (spu_machine_dependent_reorg): Call df_finish_pass after
31010         schedule_insns returns.
31011
31012 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31013
31014         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
31015
31016 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
31017
31018         PR tree-optimization/47005
31019         * tree-sra.c (struct access): Add 'non_addressable' bit.
31020         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
31021         (decide_one_param_reduction): Return 0 if the parameter is passed by
31022         reference and one of the accesses in the group is non_addressable.
31023
31024 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31025
31026         PR tree-optimization/47056
31027         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
31028         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
31029         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
31030
31031 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31032
31033         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
31034         initializer.  Skip view conversions from aggregate types.
31035
31036 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
31037
31038         PR bootstrap/47055
31039         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
31040
31041 2011-01-04  Philipp Thomas  <pth@suse.de>
31042
31043         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
31044         obvious typo.
31045
31046 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31047
31048         * function.c (thread_prologue_and_epilogue_insns): Do not crash
31049         on empty epilogue sequences.
31050
31051 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
31052
31053         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
31054         non-static): New Driver options.
31055
31056 2011-01-04  Jie Zhang  <jie@codesourcery.com>
31057
31058         PR driver/47137
31059         * gcc.c (default_compilers[]): Set combinable field to 0
31060         for all assembly languages.
31061
31062 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
31063
31064         * config/mips/loongson3a.md: New file.
31065         * config/mips/mips.md: Include loongson3a.md.
31066         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
31067         TUNE_LOONGSON_3A.
31068
31069 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
31070
31071         PR middle-end/47017
31072         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
31073         instead of convert_memory_address_addr_space on the base expression.
31074
31075 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31076
31077         * config/spu/spu.c (spu_option_override): Update error text
31078         for bad -march= / -mtune= values.
31079
31080 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31081
31082         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
31083         if branch-hint optimization will be performed.
31084
31085 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31086
31087         PR tree-optimization/47148
31088         * ipa-split.c (split_function): Convert arguments to
31089         DECL_ARG_TYPE if possible.
31090
31091         PR tree-optimization/47155
31092         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
31093         when computing uns.
31094
31095         PR rtl-optimization/47157
31096         * combine.c (try_combine): If undobuf.other_insn becomes
31097         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
31098         and set *new_direct_jump_p too.
31099
31100 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
31101
31102         PR tree-optimization/47021
31103         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
31104
31105 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
31106
31107         * gcc.c (process_command): Update copyright notice dates.
31108         * gcov.c (print_version): Likewise.
31109         * gcov-dump.c (print_version): Likewise.
31110         * mips-tfile.c (main): Likewise.
31111         * mips-tdump.c (main): Likewise.
31112
31113 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31114
31115         PR tree-optimization/46801
31116         * tree-sra.c (type_internals_preclude_sra_p): Check whether
31117         aggregate fields start at byte boundary instead of the bit-field flag.
31118
31119 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
31120
31121         PR driver/47137
31122         * gcc.c (main): Revert revision 168407.
31123
31124 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31125
31126         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
31127
31128 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31129
31130         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
31131         vector optab to expand vector/scalar shift, update gimple to vector.
31132
31133 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31134
31135         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
31136         a thunk.
31137
31138 2011-01-03  Martin Jambor  <mjambor@suse.cz>
31139
31140         PR tree-optimization/46984
31141         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
31142         HOST_WIDE_INT.
31143         (cgraph_create_indirect_edge): Fixed line length.
31144         (cgraph_indirect_call_info): Declare.
31145         (cgraph_make_edge_direct) Update declaration.
31146         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
31147         (cgraph_create_indirect_edge): Use it.
31148         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
31149         callees.
31150         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
31151         the new thunk_delta representation.
31152         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
31153         HOST_WIDE_INT.
31154         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
31155         (ipa_read_indirect_edge_info): Likewise.
31156         * lto-cgraph.c (output_edge_opt_summary): New function.
31157         (output_node_opt_summary): Call it on all outgoing edges.
31158         (input_edge_opt_summary): New function.
31159         (input_node_opt_summary): Call it on all outgoing edges.
31160
31161 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
31162
31163         PR driver/47137
31164         * gcc.c (main): Don't check have_o when settting combine_inputs.
31165
31166 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
31167
31168         * regrename.c: Add general comment describing the pass.
31169         (struct du_head): Remove 'length' field.
31170         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
31171         (regrename_optimize): Do not sort chains.  Rework comments, add others.
31172         Force renaming to the preferred class (if any) in the first pass and do
31173         not consider registers that belong to it in the second pass.
31174         (create_new_chain): Do not set 'length' field.
31175         (scan_rtx_reg): Likewise.
31176
31177 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
31178
31179         PR tree-optimization/47140
31180         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
31181         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
31182         to bit_value_binop.
31183
31184         PR rtl-optimization/47028
31185         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
31186         parm_birth_insn instead of at the beginning of first bb.
31187
31188 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
31189
31190         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
31191         Remove the word "see" before "@pxref".
31192         * doc/rtl.texi: Remove the word "see" before "@pxref".
31193
31194 2011-01-01  Jan Hubicka  <jh@suse.cz>
31195
31196         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
31197         memory.
31198
31199 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
31200
31201         PR target/38662
31202         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
31203
31204 \f
31205 Copyright (C) 2011 Free Software Foundation, Inc.
31206
31207 Copying and distribution of this file, with or without modification,
31208 are permitted in any medium without royalty provided the copyright
31209 notice and this notice are preserved.