OSDN Git Service

2011-05-11 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-11  Richard Guenther  <rguenther@suse.de>
2
3         PR middle-end/48953
4         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
5
6 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
7
8         * opts.c (finish_options): Move warning settings from
9         process_options.
10         * toplev.c (process_options): Move warning settings to
11         finish_options.
12
13 2011-05-11  Richard Guenther  <rguenther@suse.de>
14
15         PR tree-optimization/18041
16         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
17         (simplify_bitwise_binary): ... this.  Handle operand conversions
18         by applying them to the result instead.
19         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
20
21 2011-05-11  Richard Guenther  <rguenther@suse.de>
22
23         * gimple.c (gimple_canonical_types_compatible_p): Split out
24         from gimple_types_compatible_p and friends.  Do not recurse
25         to pointed-to types.
26         (gimple_canonical_type_eq): Use it.
27         (iterative_hash_canonical_type): Split out from
28         iterative_hash_gimple_type and friends.  Do not recurse
29         to pointed-to types.
30         (gimple_canonical_type_hash): Use it, allocate the hash here.
31
32 2011-05-11  Revital Eres  <revital.eres@linaro.org>
33
34         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
35         recognizing doloop.
36
37 2011-05-11  Revital Eres  <revital.eres@linaro.org>
38
39         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
40         instead of PREV_INSN.
41
42 2011-05-11  Revital Eres  <revital.eres@linaro.org>
43
44         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
45         * loop-doloop.c (doloop_condition_get): Likewise.
46         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
47         (doloop_end): New.
48         * config/arm/arm.md (*addsi3_compare0): Remove "*".
49
50 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
51
52         * tree.def (CASE_LABEL_EXPR): Add an operand.
53         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
54
55 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
56
57         * c-decl.c (c_override_global_bindings_to_false): Remove.
58         (global_bindings_p): Don't check
59         c_override_global_bindings_to_false.
60         * c-tree.h (c_override_global_bindings_to_false): Remove.
61         * c-typeck.c (composite_type): Don't set
62         c_override_global_bindings_to_false.
63
64 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
65
66         PR target/48857, 48495
67         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
68         (VSX_MODE): Ditto.
69         (VSX_MOVE_MODE): Ditto.
70         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
71         VSX vector types.  Add V2DImode.
72         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
73         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
74         (MODES_TIEABLE_P): Ditto.
75
76         * config/rs6000/rs6000.c (rs6000_emit_move): Use
77         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
78         VSX_VECTOR_MODE.
79         (init_cumulative_args): Ditto.
80         (rs6000_function_arg_boundary): Ditto.
81         (rs6000_function_arg_advance_1): Ditto.
82         (rs6000_function_arg): Ditto.
83         (rs6000_function_ok_for_sibcall): Ditto.
84         (emit_frame_save): Ditto.
85         (rs6000_function_value): Ditto.
86         (rs6000_libcall_value): Ditto.
87
88 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
89
90         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
91         i386/darwin-lib.h to $libgcc_tm_file.
92         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
93
94 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
95
96         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
97
98 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
99
100         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New
101         files.
102         * config/rs6000/rs6000-tables.opt: New file (generated).
103         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
104         rs6000/rs6000-tables.opt to extra_options.
105         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
106         * config/rs6000/rs6000.c (rs6000_select): Remove.
107         (processor_target_table): Move contents to rs6000-cpus.def.
108         (darwin_rs6000_override_options): Check
109         global_options_set.x_rs6000_cpu_index instead of
110         rs6000_select[1].string.
111         (rs6000_option_override_internal): Likewise.
112         (rs6000_handle_option): Don't assert that global structures are in
113         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
114         (rs6000_default_cpu): New variable.
115         (rs6000_file_start): Set it instead of local default_cpu.  Check
116         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
117         global_options_set.x_rs6000_tune_index instead of rs6000_select.
118         (rs6000_darwin_file_start): Check rs6000_default_cpu and
119         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
120         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
121         rs6000_select): Remove.
122         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
123         Remove.
124         (mcpu=, mtune=): Use Var, Init, Enum and Save.
125         * config/rs6000/t-rs6000
126         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
127         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
128         global_options_set.x_rs6000_cpu_index instead of
129         rs6000_select[1].string.
130         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
131         global_options_set.x_rs6000_cpu_index instead of
132         rs6000_select[1].string.
133
134 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
135
136         * config.gcc (libgcc_tm_file): Define instead of including files
137         from ../../libgcc/config/ in tm_file.
138         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list):
139         Define.
140         * configure: Regenerate.
141         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
142         libgcc_tm.h, cs-libgcc_tm.h): New.
143         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
144         (clean): Remove libgcc_tm.h.
145         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
146         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
147         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
148
149 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
150
151         PR target/48896
152         * config/avr/avr.c (avr_ret_register): Return unsigned int
153         instead of int.
154         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
155         it to avr_libcall_value.
156         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
157         expand_expr.
158         (avr_expand_binop_builtin): Ditto.
159         (avr_expand_unop_builtin): Ditto.
160
161 2011-05-10  DJ Delorie  <dj@redhat.com>
162
163         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
164         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
165         * config/rx/rx.c (rx_align_for_label): Add label and
166         uses_threshold parameters.  Do not align when the label is not
167         used enough.
168         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
169
170 2011-05-10  Richard Guenther  <rguenther@suse.de>
171
172         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
173         a series of conversions and apply foldings similar to what
174         fold-const does.
175         (tree_ssa_forward_propagate_single_use_vars): Call it.
176
177 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
178
179         PR tree-optimization/48611
180         PR tree-optimization/48794
181         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
182         referenced from RESX or EH_DISPATCH arguments.
183
184         PR debug/48928
185         * dfp.c (decimal_to_decnumber): Handle conversion from
186         dconst{1,2,m1,half}.
187
188 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
189
190         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
191         for !flag_prefer_avx128.
192         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
193
194 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
195
196         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
197         (fold_ternary_loc): Use expr_location_or.
198
199 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
200
201         PR debug/48853
202         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
203         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
204         Pmode and mem_mode is not VOIDmode.
205
206 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
207
208         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
209         TYPE_QUAL_RESTRICT): Convert to enum.
210
211 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
212
213         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
214         (const_pow2_1_to_8_operand): Ditto.
215         (const_pow2_1_to_128_operand): Ditto.
216         (const_pow2_1_to_32768_operand): Ditto.
217         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
218         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
219         in insn constraint to check integer value of operand 3.
220         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
221
222         (PINSR_MODE): New mode iterator.
223         (sse2p4_1): New mode attribute.
224         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
225         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
226         iterator.  Use const_int_operand instead of
227         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
228         exact_log2 in insn constraint to check integer value of operand 3.
229
230 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
231
232         * config/i386/sse.md (blendbits): Remove mode attribute.
233         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
234         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
235         Check integer value of operand 3 in insn constraint.
236
237 2011-05-09  Richard Guenther  <rguenther@suse.de>
238
239         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
240         for diagnostics.
241         (lto_symtab_merge): Likewise.  Do not register types here.
242         (lto_symtab_merge_decls_2): Likewise.
243         (lto_symtab_merge_decls_1): Likewise.
244         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
245         * gimple.c (enum gtc_mode): Declare.
246         (gimple_types_compatible_p): Make static.
247
248 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
249
250         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
251         temporary register to match Pmode.
252
253 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
254
255         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
256         and *vec_concatv4si_1_avx.
257
258 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
259
260         PR rtl-optimization/48927
261         * ira-conflicts.c (commutative_constraint_p): Use
262         recog_data.alternative_enabled_p to disable alternatives where
263         "enabled" attribute is false.
264         (get_dup_num): Ditto.
265         * ira-lives.c (single_reg_class): Ditto.
266         (ira_implicitly_set_insn_hard_regs): Ditto.
267
268 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
269
270         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
271         (dataflow_set_preserve_mem_locs): Likewise.
272
273 2011-05-09  Philipp Thomas  <pth@suse.de>
274
275         * config/mep/mep.c (mep_validate_vliw): Syntax description
276         should not be translated.
277
278 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
279
280         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
281         * config/mips/mips-tables.opt: New file (generated).
282         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
283         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
284         MIPS_ARCH_OPTION_NATIVE): Define.
285         * config/mips/mips.c (mips_cpu_info_table): Move contents to
286         mips-cpus.def.
287         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
288         mips_parse_cpu): Remove.
289         (mips_cpu_info_from_opt, mips_default_arch): New.
290         (mips_handle_option): Don't assert that global structures are in
291         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
292         (mips_option_override): Use new variables and functions to set
293         state of these options.  Use strcmp to check for individual CPU names.
294         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
295         definition.
296         * config/mips/mips.opt (march=): Use ToLower and Enum.
297         (mips): Use ToLower, Enum and Var.
298         (mtune=): Use ToLower and Enum.
299         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
300
301 2011-05-08  Jan Hubicka  <jh@suse.cz>
302
303         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
304         Arrange type pairs to be UID ordered.
305         (gimple_lookup_type_leader): Make inline.
306
307 2011-05-09  Nick Clifton  <nickc@redhat.com>
308
309         PR target/48899
310         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
311         PROCESSOR_DEFAULT.
312
313         PR target/48897
314         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
315         variable 's'.
316
317 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
318
319         * combine.c (simplify_comparison): Abstract out parts into...
320         (simplify_compare_const): ... new function.
321         (try_combine): Generalize parallel arithmetic/compare combining
322         to call simplify_compare_const() and CANONICALIZE_COMPARE().
323
324 2011-05-08  Jan Hubicka  <jh@suse.cz>
325
326         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
327         (cgraph_create_virtual_clone): Call hooks once virtual clone
328         is finished.
329         * cgraph.h (cgraph_clone_node): Update prototype.
330         * ipa-cp.c (ipcp_estimate_growth): Use
331         estimate_ipcp_clone_size_and_time.
332         * ipa-inline-transform.c (clone_inlined_nodes): Update.
333         * lto-cgraph.c (input_node): Update.
334         * ipa-inline.c (recursive_inlining): Update.
335         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
336         (evaluate_conditions_for_known_args): Break out from ...
337         (evaluate_conditions_for_edge): ... here.
338         (evaluate_conditions_for_ipcp_clone): New function.
339         (inline_node_duplication_hook): Update clone summary based
340         on parameter map.
341         (estimate_callee_size_and_time): Rename to ...
342         (estimate_node_size_and_time): take NODE instead of EDGE;
343         take POSSIBLE_TRUTHS as argument.
344         (estimate_callee_size_and_time): Update.
345         (estimate_ipcp_clone_size_and_time): New function.
346         (do_estimate_edge_time): Update.
347
348 2011-05-08  Richard Guenther  <rguenther@suse.de>
349
350         PR middle-end/48908
351         PR middle-end/48905
352         * expmed.c (expand_shift_1): Compute adjusted constant shift
353         amount manually.
354
355 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
356
357         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
358
359 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
360
361         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
362
363 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
364
365         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
366
367 2011-05-07  Jan Hubicka  <jh@suse.cz>
368
369         * ipa-inline-transform.c (inline_call): Account when program size
370         decreases.
371         * ipa-inline.c (relative_time_benefit): New function.
372         (edge_badness): Reorganize to be power 2 based; fix thinko when
373         computing badness for negative growth; update comments to match
374         reality; better dumps.
375
376 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
377
378         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
379         type to bool and adjust comment.
380         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
381         (fold_mathfn_compare): Remove calls to global_bindings_p.
382         (fold_inf_compare): Likewise.
383         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
384         * c-tree.h (global_bindings_p): Adjust prototype.
385         * c-decl.c (global_bindings_p): Return bool and simplify.
386
387 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
388
389         PR tree-optimization/48837
390         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
391         when accumulator transformation is performed.
392
393 2011-05-06  Jan Hubicka  <jh@suse.cz>
394
395         * i386.h (ix86_tune_indices): Add
396         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
397         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
398         * i386.c (initial_ix86_tune_features): Add
399         X86_SOFTARE_PREFETCHING_BENEFICIAL.
400         (software_prefetching_beneficial_p): Remove predicate.
401         (ix86_option_override_internal): Use new macro.
402
403 2011-05-06  Jan Hubicka  <jh@suse.cz>
404
405         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
406
407 2011-05-06  Jan Hubicka  <jh@suse.cz>
408
409         * cgraph.c (cgraph_add_thunk): Create real function node instead
410         of alias node; finalize it and mark needed/reachale; arrange visibility
411         to be right and add it into the corresponding same comdat group list.
412         (dump_cgraph_node): Dump thunks.
413         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
414         cgraph_function_with_gimple_body_p,
415         cgraph_first_function_with_gimple_body,
416         cgraph_next_function_with_gimple_body): New functions.
417         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
418         New macros.
419         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
420         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
421         * cgraphunit.c (cgraph_finalize_function): Only look into possible
422         devirtualization when optimizing.
423         (verify_cgraph_node): Verify thunks.
424         (cgraph_analyze_function): Analyze thunks.
425         (cgraph_mark_functions_to_output): Output thunks only in combination
426         with function they are assigned to.
427         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
428         alias into normal node.
429         (assemble_thunks): New functoin.
430         (cgraph_expand_function): Use it.
431         * lto-cgraph.c (lto_output_node): Stream thunks.
432         (input_overwrite_node): Stream in thunks.
433         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
434         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
435         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
436         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
437         (inline_analyze_function): Do not care about thunk jump functions.
438         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
439         * ipa-prop.c (ipa_prop_write_jump_functions): Use
440         cgraph_function_with_gimple_body_p.
441         * passes.c (do_per_function_toporder): Use
442         cgraph_function_with_gimple_body_p.
443         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
444         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
445         (function_called_by_processed_nodes_p): Likewise.
446
447 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
448
449         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
450         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
451         entries.
452         (mabi=): Replace with separate entries for mabi=altivec,
453         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
454         mabi=ieeelongdouble and mabi=ibmlongdouble.
455         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
456         check for -mabi=spe without SPE ABI support here.
457         (rs6000_handle_option): Replace OPT_mabi_ handling with
458         OPT_mabi_altivec and OPT_mabi_spe handling.
459
460 2011-05-06  Cary Coutant  <ccoutant@google.com>
461
462         * dwarf2out.c (contains_subprogram_definition): New function.
463         (should_move_die_to_comdat): Call it.
464
465 2011-05-06  Jeff Law  <law@redhat.com>
466
467         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
468         remove_ctrl_stmt_and_useless_edges.
469         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
470         (fixup_template_block, thread_single_edge): Likewise.
471         (mark_threaded_blocks): Use THREAD_TARGET.
472
473 2011-05-06  Alan Modra  <amodra@gmail.com>
474
475         PR target/48900
476         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
477         const0_rtx as the arg to the dummy __tls_get_addr libcall.
478
479 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
480
481         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
482         constraint modifier to "r".
483
484 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
485
486         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
487         fall through for OPT_mcmodel_.
488
489 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
490
491         * config/s390/s390.c (s390_asm_trampoline_template): Comment
492         instruction sizes.
493         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
494
495 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
496
497         PR target/47930
498         * config/arm/arm.opt (marm): Document it.
499         (mthumb): Reject negative variant.
500
501 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
502
503         PR target/48898
504         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
505         Fix typo in "ccvt" variable name.
506
507 2011-05-06  Tristan Gingold  <gingold@adacore.com>
508
509         PR target/48895
510         * config/vms/vms-ar.c (main): Remove cwd variable.
511
512 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
513
514         PR debug/48902
515         * var-tracking.c (prepare_call_arguments): Move else before #endif.
516
517 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
518
519         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
520         * gimplify.c (gimplify_switch_expr): Likewise.
521         * omp-low.c (expand_omp_sections): Likewise.
522         * tree-eh.c (lower_try_finally_switch): Likewise.
523         (lower_eh_dispatch): Likewise.
524         * tree.h (build_case_label): Declare.
525         * tree.c (build_case_label): Define.
526
527 2011-05-05  Jason Merrill  <jason@redhat.com>
528
529         PR c++/40975
530         * tree-inline.c (copy_tree_r): Use copy_statement_list.
531         (copy_statement_list): Don't recurse.
532         * stor-layout.c (copy_self_referential_tree_r): Don't allow
533         STATEMENT_LIST.
534
535 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
536
537         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
538         through from -mfpu= handling.
539         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
540
541 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
542
543         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
544         POST_MODIFY.
545
546 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
547
548         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
549         for 11.31.
550         (hppa[12]*-*-hpux11*): Ditto.
551         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
552         * config/ia64/hpux-unix2003.h: New.
553         * config/pa/pa-hpux1131.opt: New.
554         * config/pa/pa-hpux1131.h: New.
555         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
556         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
557         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
558
559 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
560
561         PR debug/48853
562         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
563         instead of mode as 3rd argument to recursive call.
564         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
565         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
566         VOIDmode.
567         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
568         don't give up if mode is Pmode and mem_mode is not VOIDmode.
569         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
570         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
571
572 2011-05-05  Julian Brown  <julian@codesourcery.com>
573
574         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
575         parenthesis in D-register case.
576
577 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
578
579         * opt-functions.awk (var_type_struct): Handle Enum options.
580         * optc-gen.awk: Don't check range of variables of character type.
581         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
582         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
583         rs6000_sdata_name, rs6000_explicit_options): Remove.
584         (rs6000_option_override_internal): Check for -malign-power here.
585         Use global_options_set instead of rs6000_explicit_options.
586         (rs6000_parse_fpu_option): Remove.
587         (rs6000_handle_option): Access variables via opts and opts_set
588         pointers.  Use error_at and warning_at.  Add fall-through
589         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
590         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
591         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
592         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
593         here.  Don't use rs6000_parse_fpu_option.
594         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
595         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
596         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
597         (mrecip=): Use Var.
598         (mspe): Use Var and Save.
599         (mtraceback=): Use Enum and Var.
600         (rs6000_traceback_type): New Enum and EnumValue entries.
601         (mfloat-gprs=): Use Enum, Var and Save.
602         (rs6000_float_gprs): New Enum and EnumValue entries.
603         (mlong-double-): use Var and Save.
604         (msched-costly-dep=, minsert-sched-nops=): Use Var.
605         (malign-): Use Enum and Var.
606         (rs6000_alignment_flags): New Enum and EnumValue entries.
607         (mfpu=): Use Enum.
608         (fpu_type_t): New Enum and EnumValue entries.
609         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
610         global_options_set instead of rs6000_explicit_options.
611         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
612         global_options_set instead of rs6000_explicit_options.
613         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
614         global_options_set instead of rs6000_explicit_options.
615         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
616         global_options_set instead of rs6000_explicit_options.
617         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
618         global_options_set instead of rs6000_explicit_options.
619         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
620         global_options_set instead of rs6000_explicit_options.
621         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
622         definition.
623         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
624         global_options_set instead of rs6000_explicit_options.
625         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
626         (rs6000_cmodel): New Enum and EnumValue entries.
627         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
628         global_options_set instead of rs6000_explicit_options.
629         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
630         (mtls-size=): Use Enum and Var.
631         (rs6000_tls_size): New Enum and EnumValue entries.
632
633 2011-05-05  Michael Matz  <matz@suse.de>
634
635         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
636         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
637         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
638         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
639         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
640         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
641         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
642         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
643         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
644         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
645         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
646         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
647         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
648         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
649         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
650         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
651
652 2011-05-05  Richard Guenther  <rguenther@suse.de>
653
654         * expmed.c (expand_variable_shift): Rename to ...
655         (expand_shift_1): ... this.  Take an expanded shift amount.
656         For rotates recurse directly not building trees for the shift amount.
657         (expand_variable_shift): Wrap around expand_shift_1.
658         (expand_shift): Adjust.
659
660 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
661
662         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
663
664 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
665
666         * tree.h (get_pending_sizes): Remove prototype.
667         (put_pending_size): Likewise.
668         (put_pending_sizes): Likewise.
669         * stor-layout.c (pending_sizes): Delete.
670         (get_pending_sizes): Likewise.
671         (put_pending_size): Likewise.
672         (put_pending_sizes): Likewise.
673         (variable_size): Do not call put_pending_size and tidy up.
674         * function.h (struct function): Remove dont_save_pending_sizes_p.
675         * lto-streamer-in.c (input_function): Do not stream it.
676         * lto-streamer-out.c (output_function): Likewise.
677         * tree-inline.c (initialize_cfun): Do not copy it.
678         * c-decl.c (store_parm_decls): Do not set it.
679         * omp-low.c (create_task_copyfn): Likewise.
680         * tree-optimize.c (tree_rest_of_compilation): Likewise.
681
682 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
683
684         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
685         conditions.
686         (*movdf_internal): Ditto.
687         (*movdf_internal_nointeger): Ditto.
688         (*movsf_internal): Ditto.
689
690 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
691
692         * c-decl.c (finish_decl): Don't call get_pending_sizes.
693         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
694         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
695         (c_variable_size): Remove.
696         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
697         call put_pending_sizes.
698         (get_parm_info): Add parameter expr.  Use it to set
699         arg_info->pending_sizes.
700         (store_parm_decls): Use arg_info->pending_sizes instead or calling
701         get_pending_sizes.
702         * c-parser.c (c_parser_parms_declarator): Update call to
703         c_parser_parms_list_declarator.
704         (c_parser_parms_list_declarator): Take parameter expr.  Update
705         call to push_parm_decl.  Update recursive call.  Don't call
706         get_pending_sizes.  Update calls to get_parm_info.
707         (c_parser_objc_method_definition): Update calls to
708         c_parser_objc_method_decl and objc_start_method_definition.
709         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
710         (c_parser_objc_method_decl): Add parameter expr.  Update call to
711         grokparm.
712         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
713         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
714         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
715
716 2011-05-05  Michael Hope  <michael.hope@linaro.org>
717
718         PR pch/45979
719         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
720         __ARM_EABI__ hosts.
721
722 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
723
724         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
725         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
726         (spu_output_mi_thunk): New function.
727
728 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
729
730         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
731         targetm.asm_out.print_operand.
732         * config/sol2.c: Include target.h.
733
734 2011-05-04  Jan Hubicka  <jh@suse.cz>
735
736         * ipa-inline.c (reset_edge_caches): New function.
737         (update_caller_keys): Add check_inlinablity_for; do not
738         reset edge caches; remove now unnecesary loop.
739         (update_callee_keys): Add comments; reset node_growth_cache of callee.
740         (update_all_callee_keys): Likewise.
741         (inline_small_functions): Sanity check cache; update code
742         recomputing it.
743
744 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
745
746         PR rtl-optimization/47612
747         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
748         as the last insn of the sequence to be moved.
749
750 2011-05-04  Tobias Burnus  <burnus@net-b.de>
751
752         PR fortran/48864
753         * doc/invoke.texi (Ofast): Document that it
754         enables Fortran's -fno-protect-parens.
755
756 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
757
758         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
759
760 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
761
762         * stor-layout.c (variable_size): Do not issue errors.
763
764 2011-05-04  Richard Guenther  <rguenther@suse.de>
765
766         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
767         for array-ref indices.
768         (tree_coverage_counter_addr): Likewise.
769         (build_fn_info_type): Use size_int for index types.
770         (build_gcov_info): Likewise.
771
772 2011-05-04  Richard Guenther  <rguenther@suse.de>
773
774         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
775         to build_int_cst.
776         * c-typeck.c (really_start_incremental_init): Use bitsize_int
777         for constructor indices.
778         (push_init_level): Likewise.
779
780 2011-05-04  Richard Guenther  <rguenther@suse.de>
781
782         * explow.c (promote_mode): Move variable declarations before code.
783
784 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
785
786         * tree.h (build_function_type_array): Declare.
787         (build_varargs_function_type_array): Declare.
788         (build_function_type_vec, build_varargs_function_type_vec): Define.
789         * tree.c (build_function_type_array_1): New function.
790         (build_function_type_array): New function.
791         (build_varargs_function_type_array): New function.
792
793 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
794
795         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
796         before setting STMT_VINFO_TYPE.
797
798 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
799
800         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
801         instead of spu_pass_by_reference.
802
803 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
804
805         * calls.c (emit_library_call_value_1): Invoke
806         promote_function_mode hook on libcall arguments.
807         * explow.c (promote_function_mode, promote_mode): Handle TYPE
808         argument being NULL.
809         * targhooks.c (default_promote_function_mode): Lisewise.
810         * config/s390/s390.c (s390_promote_function_mode): Likewise.
811         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
812
813         * doc/tm.texi: Document that TYPE argument might be NULL.
814
815 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
816
817         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
818
819 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
820
821         From Bernd Schmidt
822         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
823
824 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
825
826         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
827         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
828         Move ...
829         * mips-tfile.c: ... here.
830         Don't include coretypes.h, tm.h, filenames.h.
831         (saber_stop): Remove definition and all calls.
832         [__SABER__]: Remove.
833         (__LINE__): Remove default.
834         (Size_t, Ptrdiff_t): Remove definitions.
835         Replace by size_t, ptrdiff_t.
836         [!MIPS_DEBUGGING_INFO]: Remove.
837         (SHASH_SIZE, THASH_SIZE): Remove defaults.
838         (progname): Add const.
839         (STATIC): Remove.
840         Replace all uses by static.
841         (ALIGN_SYMTABLE_OFFSET): Remove default.
842         * mips-tdump.c: Don't include coretypes.h, tm.h.
843         Remove !MIPS_IS_STAB guard.
844         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
845         $(TM_H), filenames.h dependencies.
846         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
847
848 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
849
850         From Jie Zhang
851         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
852         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
853
854 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
855
856         From Bernd Schmidt
857         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
858         account and save/restore RETS.
859         (PROFILE_BEFORE_PROLOGUE): Define.
860         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
861         the push insn to use predecrement.
862
863 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
864
865         From Jie Zhang
866         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
867
868 2011-05-04  Nick Clifton  <nickc@redhat.com>
869
870         * config/mn10300/mn10300.c: Include cfgloop.h.
871         (DUMP): New macro.
872         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
873         Lcc or a FLcc insn into the instruction stream.
874         (mn10300_block_contains_call): New function.  Returns true if the
875         given basic block contains a CALL insn.
876         (mn10300_loop_contains_call_insn): New function.  Returns true if
877         the given loop contains a CALL insn.
878         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
879         to use the SETLB and Lcc or FLcc insns.
880         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
881         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
882         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
883         disable the SETLB optimization.
884         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
885         __SETLB__ or __NO_SETLB__.
886         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
887         (movsf_internal): Handle MDR register.
888         (cmpsi): Make visible.
889         (setlb): New pattern.
890         (Lcc): New pattern.
891         (FLcc): New pattern.
892
893 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
894
895         PR target/48860
896         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
897         for reg<->xmm moves.
898         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
899         (vec_concatv2di_rex64_sse): Ditto.
900         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
901         (*vec_extractv2di_1_rex64): Ditto.
902
903         Revert:
904         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
905
906         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
907         reg<->xmm moves.
908         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
909
910 2011-05-04  Richard Guenther  <rguenther@suse.de>
911
912         * tree.h (int_const_binop): Remove notrunc argument.
913         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
914         create integer constants that are properly truncated.
915         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
916         (const_binop): Remove zero notrunc argument to int_const_binop.
917         (size_binop_loc): Likewise.
918         (fold_div_compare): Likewise.
919         (maybe_canonicalize_comparison_1): Likewise.
920         (fold_comparison): Likewise.
921         (fold_binary_loc): Likewise.
922         (multiple_of_p): Likewise.
923         * expr.c (store_constructor): Likewise.
924         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
925         (maybe_fold_stmt_addition): Likewise.
926         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
927         * stor-layout.c (layout_type): Likewise.
928         * tree-data-ref.c (tree_fold_divides_p): Likewise.
929         * tree-sra.c (build_ref_for_offset): Likewise.
930         (build_user_friendly_ref_for_offset): Likewise.
931         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
932         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
933         * tree-ssa-loop-niter.c (inverse): Likewise.
934         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
935         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
936         * tree-switch-conversion.c (check_range): Likewise.
937         (build_constructors): Likewise.
938         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
939         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
940         (extract_range_from_assert): Likewise.
941         (vrp_int_const_binop): Likewise.
942         (extract_range_from_binary_expr): Likewise.
943         (extract_range_from_unary_expr): Likewise.
944         (check_array_ref): Likewise.
945         (find_case_label_range): Likewise.
946         (simplify_div_or_mod_using_ranges): Likewise.
947         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
948         comparing case labels for merging.
949
950 2011-05-03  Mark Wielaard  <mjw@redhat.com>
951
952         * dwarf2out.c (debug_str_hash_forced): Removed.
953         (gen_label_for_indirect_string): Removed.
954         (get_debug_string_label): Removed.
955         (AT_string_form): Generate label directly.
956         (output_indirect_string): Test indirect_string_node for
957         DW_FORM_strp instead of checking label and refcount.
958         (prune_indirect_string): Removed.
959         (prune_unused_types): Don't check debug_str_hash_forced or
960         call prune_indirect_string.
961
962 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
963
964         PR other/48093
965         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
966
967 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
968
969         PR debug/47994
970         PR debug/47919
971         * combine.c (try_combine): Skip debug insns at m_split tests.
972
973 2011-04-26  Mark Wielaard  <mjw@redhat.com>
974
975         PR42288
976         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
977         when info_section_emitted.
978
979 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
980
981         * config/mips/mips-opts.h: New.
982         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
983         to mips-opts.h.
984         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
985         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
986         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
987         via opts pointer.
988         * config/mips/mips.h (enum mips_code_readable_setting): Move to
989         mips-opts.h.
990         (mips_abi, mips_code_readable): Don't declare.
991         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
992         (mabi=): Use Enum and Var.
993         (mips_abi): New Enum and EnumValue entries.
994         (mcode-readable=): Use Enum and Var.
995         (mips_code_readable_setting): New Enum and EnumValue entries.
996         (mr10k-cache-barrier=): Use Enum and Var.
997         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
998
999 2011-05-03  Jan Hubicka  <jh@suse.cz>
1000
1001         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1002         replace hash by pointer map.
1003         (cgraph_node_set_element_def, cgraph_node_set_element,
1004         const_cgraph_node_set_element, varpool_node_set_element_def,
1005         varpool_node_set_element, const_varpool_node_set_element): Remove.
1006         (free_cgraph_node_set, free_varpool_node_set): New function.
1007         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1008         * tree-emutls.c: Free varpool node set.
1009         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1010         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1011         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1012         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1013         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1014         Move here from ipa.c; implement using pointer_map
1015         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1016         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1017         debug_cgraph_node_set, varpool_node_set_new,
1018         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1019         dump_varpool_node_set, debug_varpool_node_set):
1020         Move to ipa-uitls.c.
1021         * passes.c (ipa_write_summaries): Update.
1022
1023 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1024
1025         From Mike Frysinger:
1026         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1027         bf542/bf544/bf547/bf548/bf549.
1028
1029 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1030
1031         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1032
1033 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1034
1035         From Bernd Schmidt:
1036         * config/bfin/bfin.md (MOVCC): New mode_macro.
1037         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1038         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
1039         comments from generated assembly.
1040
1041 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1042
1043         From Bernd Schmidt
1044         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1045         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1046         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1047         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1048         * config/bfin/lib1funcs.asm (___muldi3): New function.
1049
1050 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1051
1052         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1053         build_function_type_list instead of build_function_type.
1054         Rearrange initialization of `args' to do so.
1055
1056 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1057
1058         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1059         instead of build_function_type.
1060
1061 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1062
1063         * config/rs6000/rs6000.c (spe_init_builtins): Call
1064         build_function_type_list instead of build_function_type.
1065         (paired_init_builtins, altivec_init_builtins): Likewise.
1066         (builtin_function_type): Likewise.
1067
1068 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1069
1070         * config/sh/sh.c (sh_media_init_builtins): Call
1071         build_function_type_list instead of build_function_type.
1072
1073 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1074
1075         * config/sparc/sparc.c (sparc_file_end): Call
1076         build_function_type_list instead of build_function_type.
1077
1078 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1079
1080         * config/alpha/alpha.c (alpha_init_builtins): Call
1081         build_function_type_list instead of build_function_type.
1082
1083 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1084
1085         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1086         build_function_type_list instead of build_function_type.
1087
1088 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1089
1090         * config/iq2000/i2000.c (iq2000_init_builtins): Call
1091         build_function_type_list instead of build_function_type.
1092         Delete `endlink' variable.
1093
1094 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1095
1096         * config/avr/avr.c (avr_init_builtins): Call
1097         build_function_type_list instead of build_function_type.
1098
1099 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1100
1101         * config/picochip/picochip.c (picochip_init_builtins): Call
1102         build_function_type_list instead of build_function_type.
1103         Delete `endlink' variable.
1104
1105 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1106
1107         * config/bfin/bfin.c (bfin_init_builtins): Call
1108         build_function_type_list instead of build_function_type.
1109
1110 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1111
1112         From Bernd Schmidt
1113         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1114         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
1115
1116 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1117
1118         From Jie Zhang:
1119         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1120         libbffastfp overrides libgcc when -mfast-fp.
1121
1122 2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>
1123
1124         Originally from Bernd Schmidt
1125         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1126         * config/bfin/bfin.c (override_options): Test it and error if
1127         TARGET_FDPIC.
1128
1129 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1130
1131         Originally From Bernd Schmidt
1132         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1133         FD-PIC.
1134
1135 2011-05-03  Jeff Law  <law@redhat.com>
1136
1137         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1138         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1139         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
1140         than accessing AUX field directly.  Free the AUX field before
1141         clearing it.
1142         (thread_block, thread_through_loop_header): Likewise.
1143         (thread_single_edge, mark_threaded_blocks): Likewise.
1144         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
1145         (register_jump_thread): Do not attempt to thread to a NULL edge.
1146
1147 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1148
1149         * function.c (init_function_start): Call decide_function_section.
1150         * varasm.c (decide_function_section): New function.
1151         (assemble_start_function): When not using
1152         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1153         or first_function_block_is_cold.
1154         * rtl.h (decide_function_section): Declare.
1155
1156 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1157             Jakub Jelinek  <jakub@redhat.com>
1158
1159         PR target/48774
1160         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1161         only succeed if req_mode is the same as set_mode.
1162
1163 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1164
1165         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1166         * genemit.c (gen_exp): Handle RETURN.
1167         * emit-rtl.c (verify_rtx_sharing): Likewise.
1168         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1169         * rtl.c (copy_rtx): RETURN is shared.
1170         * rtl.h (enum global_rtl_index): Add GR_RETURN.
1171         (ret_rtx): New.
1172         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1173         * config/s390/s390.c (s390_emit_epilogue): Likewise.
1174         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1175         * config/cris/cris.c (cris_expand_return): Likewise.
1176         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1177         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1178         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1179         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1180         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1181         Likewise.
1182         * config/v850/v850.c (expand_epilogue): Likewise.
1183         * config/bfin/bfin.c (bfin_expand_call): Likewise.
1184         * config/arm/arm.md (epilogue): Likewise.
1185         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1186         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1187         variable to ret_reg.
1188
1189 2011-05-03  Richard Guenther  <rguenther@suse.de>
1190
1191         PR lto/48846
1192         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1193         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1194         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1195
1196 2011-05-03  Richard Guenther  <rguenther@suse.de>
1197
1198         * c-decl.c (grokdeclarator): Instead of looking at
1199         TREE_OVERFLOW check if the constant fits in the index type.
1200
1201 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1202
1203         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1204         (vec_store_lanes<mode><mode>): Likewise.
1205
1206 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1207
1208         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1209         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1210         convert_optab_index values.
1211         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1212         * genopinit.c (optabs): Initialize the new optabs.
1213         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1214         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1215         (expand_STORE_LANES): New functions.
1216         * tree.h (build_array_type_nelts): Declare.
1217         * tree.c (build_array_type_nelts): New function.
1218         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1219         (vect_model_load_cost): Likewise.
1220         (vect_store_lanes_supported, vect_load_lanes_supported)
1221         (vect_record_strided_load_vectors): Declare.
1222         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1223         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1224         (vect_transform_strided_load): Split out statement recording into...
1225         (vect_record_strided_load_vectors): ...this new function.
1226         * tree-vect-stmts.c (create_vector_array, read_vector_array)
1227         (write_vector_array, create_array_ref): New functions.
1228         (vect_model_store_cost): Add store_lanes_p argument.
1229         (vect_model_load_cost): Add load_lanes_p argument.
1230         (vectorizable_store): Try to use store-lanes functions for
1231         interleaved stores.
1232         (vectorizable_load): Likewise load-lanes and loads.
1233         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1234         to vect_model_store_cost.
1235         (vect_build_slp_tree): Likewise vect_model_load_cost.
1236
1237 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1238
1239         * hooks.h (hook_bool_mode_uhwi_false): Declare.
1240         * hooks.c (hook_bool_mode_uhwi_false): New function.
1241         * target.def (array_mode_supported_p): New hook.
1242         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1243         * doc/tm.texi: Regenerate.
1244         * stor-layout.c (mode_for_array): New function.
1245         (layout_type): Use it.
1246         * config/arm/arm.c (arm_array_mode_supported_p): New function.
1247         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1248
1249 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1250
1251         PR target/48723
1252         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1253         for -fstack-check if the size to allocate is negative.
1254
1255 2011-05-02  Lawrence Crowl  <crowl@google.com>
1256
1257         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1258         (timevar_cond_start): New for starting a timer only when it is not
1259         already running.
1260         (timevar_cond_stop): New for stopping a timer when it was not already
1261         running.
1262
1263         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1264         (timevar_cond_start): New as above.
1265         (timevar_cond_stop): New as above.
1266
1267         * timevar.def: Add start/stop timers for compiler phases,
1268         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1269         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1270         and TV_PHASE_FINALIZE.
1271         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1272         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1273         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1274         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1275         Make unused TV_OVERLOAD into a start/stop timer.
1276
1277         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1278         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1279         to indicate that they are start/stop timers.
1280
1281         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1282         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1283         Move initialization to do_compile.
1284         (do_compile): Add initialization from above.
1285         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1286
1287         * c-decl.c (c_write_global_declarations): Add start/stop of
1288         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1289
1290         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1291         or TV_PARSE_INLINE, as appropriate.
1292         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1293         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1294
1295 2011-05-02  Jason Merrill  <jason@redhat.com>
1296
1297         PR c++/40975
1298         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
1299
1300 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
1301
1302         PR c/35445
1303         * c-decl.c (finish_decl): Only create a composite if the types are
1304         compatible.
1305
1306 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1307
1308         * config/fr30/fr30-protos.h (Mmode): Don't define.
1309         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
1310         definition where used.
1311         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
1312         define.  Expand definitions where used.
1313         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
1314         Expand definitions where used.
1315         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
1316         rx_function_arg, rx_function_arg_advance,
1317         rx_function_arg_boundary): Expand definitions of those macros.
1318         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
1319         definition where used.
1320
1321 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1322
1323         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1324         reg<->xmm moves.
1325         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
1326         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
1327         with *movv2sf_internal_rex64_avx.
1328         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
1329         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
1330         Use %v prefix in insn mnemonic to handle TARGET_AVX.
1331         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
1332         "vex" in "prefix" attribute calculation.
1333         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
1334
1335 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
1336
1337         PR target/47951
1338         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
1339         inputs match the output.
1340
1341 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
1342
1343         PR target/47955
1344         * config/m68k/m68k.c (m68k_expand_prologue): Set
1345         current_function_static_stack_size.
1346
1347 2011-05-02   Jan Hubicka  <jh@suse.cz>
1348
1349         * lto-streamer.c (lto_streamer_cache_insert_1,
1350         lto_streamer_cache_lookup, lto_streamer_cache_create,
1351         lto_streamer_cache_delete): Use pointer map instead of hashtable.
1352         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
1353
1354 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1355
1356         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
1357         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
1358         config/m68k/t-opts: New files.
1359         * config/m68k/m68k-tables.opt: New file (generated).
1360         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
1361         extra_options and m68k/t-opts to tmake_file.
1362         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
1363         (all_isas): Initialize using m68k-isas.def.
1364         (all_microarchs): Initialize using m68k-microarchs.def.
1365         (m68k_find_selection): Remove.
1366         (m68k_handle_option): Don't assert that global structures are in
1367         use.  Use error_at.  Access variables via opts pointer.  Don't
1368         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
1369         directly for -m68020-40 and -m68020-60.
1370         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
1371         m68k_tune_entry here.
1372         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1373         to m68k-opts.h.
1374         (m68k_library_id_string): Remove declaration.
1375         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
1376         (m68k_library_id_string): New Variable.
1377         (march=, mcpu=, mtune=): Use Enum and Var.
1378
1379 2011-05-02  Richard Guenther  <rguenther@suse.de>
1380
1381         * varasm.c (output_constructor_regular_field): Compute zero-based
1382         index with double-ints.  Make sure to ICE instead of producing
1383         wrong code.
1384         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1385         in asserts.  Properly use a signed type.
1386
1387 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1388
1389         * config/i386/sse.md (V): New mode iterator.
1390         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
1391         TARGET_SSE2.
1392         (V_256): Rename from AVX256MODE.
1393         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
1394         condition to all users.
1395         (VF1): Ditto.
1396         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
1397         condition to all users.
1398         (VF_128): Make V4SF mode unconditional.
1399         (VF_256): Rename from AVX256MODEF2P.
1400         (VI4F_128): Rename from SSEMODE4S.
1401         (VI8F_128): Rename from SSEMODE2D.
1402         (VI4F_256): Rename from AVX256MODE8P.
1403         (VI8F_256): Rename from AVX256MODE4P.
1404         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1405         (ssescalarmodesuffix): Remove SF and DF modes.
1406         (SSEMODE124): Remove.
1407         (SSEMODE1248): Ditto.
1408         (SSEMODEF2P): Ditto.
1409         (AVXMODEF2P): Ditto.
1410         (AVXMODEFDP): Ditto.
1411         (AVXMODEFSP): Ditto.
1412         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1413         unconditional.
1414         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
1415         unconditional.
1416         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1417         xop_pcmov_<mode>256.  Use V mode iterator.
1418
1419         Adjust RTX patterns globally for renamed mode attributes.
1420
1421 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1422
1423         * haifa-sched.c (sched_emit_insn): Emit insn before first
1424         non-scheduled insn.  Inform back-end about new insn.  Add
1425         new insn to scheduled_insns list.
1426
1427 2011-05-02  Richard Guenther  <rguenther@suse.de>
1428
1429         PR tree-optimization/48822
1430         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1431         (process_scc): Indicate which iteration we start.
1432
1433 2011-05-02  Jan Hubicka  <jh@suse.cz>
1434
1435         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1436         (lto_section_overrun): New.
1437         * lto-section-out.c (append_block): Rename to ...
1438         (lto_append_block): ... this one; export.
1439         (lto_output_1_stream): Move lto lto-streamer.h
1440         (lto_output_data_stream): Update.
1441         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1442         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1443         functions.
1444
1445 2011-05-02  Richard Guenther  <rguenther@suse.de>
1446
1447         * tree.c (tree_code_counts): New global array.
1448         (record_node_allocation_statistics): Count individual tree codes.
1449         (dump_tree_statistics): Dump individual code stats.
1450
1451 2011-05-01  Jan Hubicka  <jh@suse.cz>
1452
1453         * ipa-inline.c (caller_growth_limits): Fix thinko when
1454         looking for largest stack frame.
1455         * ipa-inline.h (dump_inline_summary): Declare.
1456         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1457         on stack usage.
1458         (dump_inline_summary): Export.
1459         (debug_inline_summary): Declare as DEBUG_FUNCTION.
1460
1461 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
1462
1463         * reginfo.c (memory_move_cost): Change rclass argument type form
1464         'enum reg_class' to reg_class_t.
1465         * reload.h (memory_move_cost): Update prototype.
1466         * postreload.c reload_cse_simplify_set): Change type dclass var to
1467         reg_class_t.
1468         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1469         Update prototype.
1470         (ira_allocate_and_set_costs): Change aclass argument type form
1471         'enum reg_class' to reg_class_t.
1472         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
1473         Change aclass argument type to reg_class_t.
1474         (update_conflict_hard_reg_costs): Change type aclass and pref vars
1475         to reg_class_t.
1476         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1477         memory_move_cost call.
1478
1479         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1480         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1481         Change type tmp var to reg_class_t.
1482
1483 2011-04-30  Jan Hubicka  <jh@suse.cz>
1484
1485         * ipa-inline.c (can_inline_edge_p): Disregard limits when
1486         inlining into function with flatten attribute.
1487         (want_inline_small_function_p): Be more realistic about inlining
1488         cold calls where callee size grows.
1489
1490 2011-04-30  Jan Hubicka  <jh@suse.cz>
1491
1492         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1493         flags.
1494
1495 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
1496
1497         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1498         PRINT_OPERAND_PUNCT_VALID_P): Remove.
1499         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1500         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1501         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1502         (print_operand): Rename to...
1503         (sparc_print_operand): ...this. Make static. Adjust
1504         sparc_print_operand function call.
1505         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1506         functions.
1507
1508 2011-04-30  Jan Hubicka  <jh@suse.cz>
1509
1510         PR middle-end/48752
1511         * ipa-inline.c (early_inliner): Disable when doing late
1512         addition of function.
1513
1514 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
1515
1516         * dwarf2out.c (get_address_mode): New inline.
1517         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1518         if not dwarf_strict emit
1519         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1520         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1521         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
1522         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1523         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1524         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1525         mem_loc_descriptor callers.
1526         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1527         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1528         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1529         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1530         (base_types): New variable.
1531         (get_base_type_offset, calc_base_type_die_sizes,
1532         base_type_for_mode, mark_base_types, base_type_cmp,
1533         move_marked_base_types): New functions.
1534         (calc_die_sizes): Assert that die_offset is 0 or equal to
1535         next_die_offset.
1536         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1537         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
1538         callers.  If not dwarf_strict, call mem_loc_descriptor even for
1539         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1540         (gen_subprogram_die): Don't give up on call site parameters
1541         with non-integral or large integral modes.  Adjust
1542         mem_loc_descriptor callers.
1543         (prune_unused_types): Call prune_unused_types_mark on base_types
1544         vector entries.
1545         (resolve_addr): Call mark_base_types.
1546         (dwarf2out_finish): Call move_marked_base_types.
1547
1548         PR tree-optimization/48809
1549         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
1550         type.
1551         (gen_inbound_check): Don't compute index_expr - range_min in utype
1552         again, instead reuse SSA_NAME initialized in build_arrays.
1553         Remove two useless gsi_for_stmt calls.
1554
1555 2011-04-29  Jeff Law  <law@redhat.com>
1556
1557         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1558
1559 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1560
1561         * cgraph.h (cgraph_postorder): Remove declaration.
1562         * ipa-utils.h (ipa_free_postorder_info): Declare.
1563         (ipa_reverse_postorder): Likewise.
1564         * cgraphunit.c: Include ipa-utils.h.
1565         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
1566         * ipa-inline.c: Include ipa-utils.h.
1567         (ipa_inline): Update call to ipa_reverse_postorder.
1568         * ipa-pure-const.c (propagate_pure_const): Update call to
1569         ipa_reduced_postorder and ipa_print_order.  Call
1570         ipa_free_postorder_info to clean up.
1571         (propagate_nothrow): Likewise.
1572         * ipa-reference.c (propagate): Removed a useless call to
1573         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
1574         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
1575         * ipa.c: Include ipa-utils.h.
1576         (ipa_profile): Update call to ipa_reverse_postorder.
1577         (cgraph_postorder): Moved to...
1578         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
1579         (ipa_utils_print_order): Renamed to ipa_print_order.
1580         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
1581         comments.
1582         (ipa_free_postorder_info): New function.
1583         * passes.c: Include ipa-utils.h.
1584         (do_per_function_toporder): Update call to ipa_reverse_postorder.
1585         (ipa_write_summaries): Likewise.
1586         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
1587         (cgraphunit.o): Likewise.
1588         (ipa.o): Likewise.
1589         (ipa-inline.o): Likewise.
1590
1591 2011-04-29  Jan Hubicka  <jh@suse.cz>
1592
1593         * gcc.dg/tree-ssa/inline-10.c: New testcase.
1594         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
1595         * ipa-inline.h (clause_t): Turn into unsigned int.
1596         * ipa-inline-analysis.c (add_clause): Do more simplification.
1597         (and_predicates): Shortcut more cases.
1598         (predicates_equal_p): Move forward; check that clauses are properly
1599         ordered.
1600         (or_predicates): Shortcut more cases.
1601         (edge_execution_predicate): Rewrite as...
1602         (set_cond_stmt_execution_predicate): ... this function; handle
1603         __builtin_constant_p.
1604         (set_switch_stmt_execution_predicate): New .
1605         (compute_bb_predicates): New.
1606         (will_be_nonconstant_predicate): Update TODO.
1607         (estimate_function_body_sizes): Use compute_bb_predicates
1608         and free them later, always try to estimate if stmt is constant.
1609         (estimate_time_after_inlining, estimate_size_after_inlining):
1610         Gracefully handle optimized out edges.
1611         (read_predicate): Fix off by one error.
1612
1613 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1614
1615         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1616
1617 2011-04-27  Xinliang David Li  <davidxl@google.com>
1618
1619         * tree-profile.c (init_ic_make_global_vars): Set
1620         tls attribute on ic vars.
1621         * coverage.c (coverage_end_function): Initialize
1622         function_list with zero.
1623
1624 2011-04-29  Richard Guenther  <rguenther@suse.de>
1625
1626         * builtins.c (fold_builtin_classify_type): Use integer_type_node
1627         for the type of the result.
1628         (fold_builtin_isascii): Likewise.
1629         (fold_builtin_toascii): Use integer_type_node where appropriate.
1630         (fold_builtin_logb): Likewise.
1631         (fold_builtin_frexp): Likewise.
1632         (fold_builtin_strstr): Likewise.
1633         (fold_builtin_strpbrk): Likewise.
1634         (fold_builtin_fputs): Likewise.
1635         (fold_builtin_sprintf): Likewise.
1636         (fold_builtin_snprintf): Likewise.
1637         (fold_builtin_printf): Likewise.
1638         (do_mpfr_remquo): Use a proper type for the assigned constant.
1639         (do_mpfr_lgamma_r): Likewise.
1640         * dwarf2out.c (resolve_one_addr): Use size_int.
1641         * except.c (init_eh): Likewise.
1642         (assign_filter_values): Use integer_type_node for filter values.
1643         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
1644         indices.
1645         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
1646         for EH region numbers.
1647         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
1648         for the shift amount.
1649
1650 2011-04-29  Richard Guenther  <rguenther@suse.de>
1651
1652         * expr.h (expand_shift): Rename to ...
1653         (expand_variable_shift): ... this.
1654         (expand_shift): Take a constant shift amount.
1655         * expmed.c (expand_shift): Rename to ...
1656         (expand_variable_shift): ... this.
1657         (expand_shift): New wrapper around expand_variable_shift.
1658         * expr.c (convert_move, emit_group_load_1, emit_group_store,
1659         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
1660         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
1661         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
1662         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
1663         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
1664         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
1665         emit_store_flag_1, emit_store_flag): Likewise.
1666         * builtins.c (expand_builtin_signbit): Likewise.
1667         * calls.c (load_register_parameters): Likewise.
1668         * function.c (assign_parm_setup_block): Likewise.
1669         * lower-subreg.c (resolve_shift_zext): Likewise.
1670         * optabs.c (widen_bswap, expand_abs_nojump,
1671         expand_one_cmpl_abs_nojump, expand_float): Likewise.
1672         * spu/spu.c (spu_expand_extv): Likewise.
1673         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1674
1675 2011-04-29  Richard Guenther  <rguenther@suse.de>
1676
1677         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
1678         for the remapped region number.
1679         * predict.c (build_predict_expr): Use integer_type_node for the
1680         predict kind.
1681         * fold-const.c (fold_binary_loc): Use integer_type_node for
1682         the shift amount.  Use a proper type for the PLUS_EXPR operand.
1683
1684 2011-04-29  Michael Matz  <matz@suse.de>
1685
1686         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
1687         other trees that just builtins.
1688         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
1689
1690 2011-04-29  Richard Guenther  <rguenther@suse.de>
1691
1692         * tree-nested.c (get_trampoline_type): Use size_int.
1693         (get_nl_goto_field): Likewise.
1694         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
1695         for all indexes.
1696         (lower_eh_constructs_2): Likewise.
1697         (lower_resx): Likewise.
1698         (lower_eh_dispatch): Likewise.
1699         * tree-mudflap.c (mf_build_string): Use size_int.
1700         (mudflap_register_call): Use integer_type_node for the flag.
1701         (mudflap_enqueue_constant): Use size_int.
1702         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
1703         instead of rebuilding it.
1704
1705 2011-04-29  Richard Guenther  <rguenther@suse.de>
1706
1707         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
1708         Handle OBJ_TYPE_REF.
1709         (find_func_aliases_for_call): Use it more consistently.
1710
1711 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
1712
1713         * haifa-sched.c (last_nondebug_scheduled_insn): New.
1714         (rank_for_schedule): Use it.
1715         (schedule_block): Set it.
1716
1717 2011-04-28  David Li  <davidxl@google.com>
1718
1719         * tree.c (crc32_string): Use crc32_byte.
1720         (crc32_byte): New function.
1721         * tree.h (crc32_byte): New function.
1722         * gcov.c (read_graph_file): Handle new cfg_cksum.
1723         (read_count_file): Ditto.
1724         * profile.c (instrument_values): Ditto.
1725         (get_exec_counts): Ditto.
1726         (read_profile_edge_counts): Ditto.
1727         (compute_branch_probabilities): Ditto.
1728         (compute_value_histograms): Ditto.
1729         (branch_prob): Ditto.
1730         (end_branch_prob): Ditto.
1731         * coverage.c (read_counts_file): Ditto.
1732         (get_coverage_counts): Ditto.
1733         (tree_coverage_counter_addr): Ditto.
1734         (coverage_checksum_string): Ditto.
1735         (coverage_begin_output): Ditto.
1736         (coverage_end_function): Ditto.
1737         (build_fn_info_type): Ditto.
1738         (build_fn_info_value): Ditto.
1739         * libgcov.c (gcov_exit): Ditto.
1740         * gcov-dump.c (tag_function): Ditto.
1741         (compute_checksum): Remove.
1742
1743 2011-04-29  Alan Modra  <amodra@gmail.com>
1744
1745         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1746         unspec plus offset.  Tidy macho code.
1747
1748 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1749
1750         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
1751         node instead of a decl.  Update all callers.
1752         * cgraph.h: Update declaration.
1753
1754 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
1755
1756         PR tree-optimization/48765
1757         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1758         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1759         to indicate if loop aware SLP is being used.  Scan the statements
1760         and update the vectorization factor according to the type of
1761         vectorization before statement analysis.
1762         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1763         pass it to vect_analyze_loop_operations.
1764         (vectorizable_reduction): Set number of copies to 1 in case of pure
1765         SLP statement.
1766         * tree-vect-stmts.c (vectorizable_conversion,
1767         vectorizable_assignment, vectorizable_shift,
1768         vectorizable_operation, vectorizable_type_demotion,
1769         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1770         Likewise.
1771         (vectorizable_condition): Move the check that it is not SLP
1772         vectorization before the number of copies check.
1773         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1774         to vectorize the loop using SLP.
1775
1776 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
1777
1778         PR middle-end/48597
1779         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1780         inline asm.
1781
1782 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
1783
1784         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
1785         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
1786         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1787         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1788         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
1789         linux*.h headers.
1790         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
1791         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1792         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1793         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1794         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1795         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
1796         REG_NAME.
1797         * config/i386/linux.h (REG_NAME): Don't define.
1798         * config/i386/linux64.h (REG_NAME): Don't define.
1799         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
1800         Undefine before defining.
1801
1802 2011-04-28  Jan Hubicka  <jh@suse.cz>
1803
1804         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
1805         nonconstant_names array.
1806         (estimate_function_body_sizes): Build nonconstant_names array; handle
1807         BUILT_IN_CONSTANT_P.
1808
1809 2011-04-28  Richard Guenther  <rguenther@suse.de>
1810
1811         PR bootstrap/48804
1812         Revert
1813         2011-04-28  Richard Guenther  <rguenther@suse.de>
1814
1815         * tree-ssa-structalias.c (solve_constraints): Build succ graph
1816         as late as possible.
1817
1818 2011-04-28  Richard Guenther  <rguenther@suse.de>
1819
1820         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
1821         (debug_constraint): Do it here.
1822         (dump_constraints): And here.
1823         (rewrite_constraints): And here.
1824         (dump_constraint_edge): Remove.
1825         (dump_constraint_graph): Rewrite to produce DOT output.
1826         (solve_constraints): Build succ graph as late as possible.
1827         Dump constraint graphs before and after solving.
1828
1829 2011-04-28  Richard Guenther  <rguenther@suse.de>
1830
1831         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1832         New function split out from ...
1833         (find_func_aliases): ... here.  Call it.
1834         (find_func_aliases_for_call): Likewise.
1835
1836 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1837
1838         * internal-fn.h (internal_fn_name_array): Declare.
1839         (internal_fn_flags_array): Likewise.
1840
1841 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
1842
1843         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
1844         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
1845         Move from sse.md.
1846         (ssemodefsuffix): Remove.
1847         (ssevecmodesuffix): New mode attribute.
1848         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
1849         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1850         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1851         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1852         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
1853         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
1854         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
1855         ssemodesuffix mode attribute.
1856         (float splitters): Use ssevecmodesuffix mode attribute.
1857         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
1858         (sseinsmode): Rename from avxvecmode.
1859         (avxsizesuffix): Rename from avxmodesuffix.
1860         (sseintvecmode): Rename from avxpermvecmode.
1861         (ssedoublevecmode): Rename from ssedoublesizemode.
1862         (ssehalfvecmode): Rename from avxhalfvecmode.
1863         (ssescalarmode): Rename from avxscalarmode.
1864         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
1865         templates for ssemodesuffix mode attribute.
1866         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
1867         mode attribute.
1868
1869         Adjust RTX patterns globally for renamed mode attributes.
1870
1871 2011-04-27  Jan Hubcika  <jh@suse.cz>
1872
1873         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
1874         * ipa-inline-analysis.c: Include alloc-pool.h.
1875         (edge_predicate_pool): New.
1876         (trye_predicate_p): New function
1877         (false_predicate_p): New function.
1878         (add_clause): Sanity check that false clauses are "optimized";
1879         never add clauses to predicate that is already known to be false.
1880         (and_predicate): Use flase_predicate_p.
1881         (evaulate_predicate): Rename to ...
1882         (evaluate_predicate): ... this one; update all callers; assert
1883         that false is not listed among possible truths.
1884         (dump_predicate): Use true_predicate_p.
1885         (account_size_time): Use false_predicate_p.
1886         (evaulate_conditions_for_edge): Rename to ...
1887         (evaluate_conditions_for_edge) ... this one.
1888         (edge_set_predicate): New function.
1889         (inline_edge_duplication_hook): Duplicate edge predicates.
1890         (inline_edge_removal_hook): Free edge predicates.
1891         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
1892         (dump_inline_summary): Update.
1893         (estimate_function_body_sizes): Set edge predicates.
1894         (estimate_calls_size_and_time): Handle predicates.
1895         (estimate_callee_size_and_time): Update.
1896         (remap_predicate): Add toplev_predicate; update comment.
1897         (remap_edge_predicates): New function.
1898         (inline_merge_summary): Compute toplev predicate; update.
1899         (read_predicate): New function.
1900         (read_inline_edge_summary): Use it.
1901         (inline_read_section): Likewise.
1902         (write_predicate): New function.
1903         (write_inline_edge_summary): Use it.
1904         (inline_write_summary): Likewise.
1905         (inline_free_summary): Free alloc pool and edge summary vec.
1906
1907 2011-04-27  Richard Guenther  <rguenther@suse.de>
1908
1909         * tree-ssa-structalias.c (changed_count): Remove.
1910         (changed): Use a bitmap.
1911         (unify_nodes): Adjust.
1912         (do_sd_constraint): Likewise.
1913         (do_ds_constraint): Likewise.
1914         (do_complex_constraint): Likewise.
1915         (solve_graph): Likewise.
1916
1917 2011-04-27  Jan Hubicka  <jh@suse.cz>
1918
1919         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1920
1921 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
1922
1923         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
1924         (avx_vperm2f128_*_operand): Ditto.
1925         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
1926         Use avx_vpermilp_parallel in insn condition.
1927         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
1928         Use avx_vperm2f128_parallel in insn condition.
1929
1930 2011-04-27  Richard Guenther  <rguenther@suse.de>
1931
1932         * Makefile.in (tree-ssa-structalias.o): Remove
1933         gt-tree-ssa-structalias.h dependency.
1934         (GTFILES): Remove tree-ssa-structalias.c.
1935         * tree.c (allocate_decl_uid): New function.
1936         (make_node_stat): Use it.
1937         (copy_node_stat): Likewise.
1938         * tree.h (allocate_decl_uid): Declare.
1939         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
1940         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
1941         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
1942         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
1943         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
1944         (struct heapvar_map): Likewise.
1945         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
1946         heapvar_insert): Likewise.
1947         (make_heapvar_for): Rename to ...
1948         (make_heapvar): ... this.  Simplify.
1949         (fake_var_decl_obstack): New global var.
1950         (build_fake_var_decl): New function.
1951         (make_constraint_from_heapvar): Adjust.
1952         (handle_lhs_call): Likewise.
1953         (create_function_info_for): Likewise.
1954         (intra_create_variable_infos): Likewise.
1955         (init_alias_vars): Allocate fake_var_decl_obstack.
1956         (init_alias_heapvars, delete_alias_heapvars): Remove.
1957         (compute_points_to_sets): Do not call init_alias_heapvars.
1958         (ipa_pta_execute): Likewise.
1959         (delete_points_to_sets): Free fake_var_decl_obstack.
1960
1961 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1962
1963         * config/spu/divmovti4.c (union qword_UTItype): New data type.
1964         (si_from_UTItype, si_to_UTItype): New functions.
1965         (__udivmodti4): Use them to implement type-punning.
1966         * config/spu/multi3.c (union qword_TItype): New data type.
1967         (si_from_TItype, si_to_TItype): New functions.
1968         (__multi3): Use them to implement type-punning.
1969
1970 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1971
1972         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1973
1974 2011-04-27  Jan Hubicka  <jh@suse.cz>
1975
1976         * ipa-prop.c (function_insertion_hook_holder): New holder.
1977         (ipa_add_new_function): New function.
1978         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1979         Register/deregister holder.
1980
1981 2011-04-27  Richard Guenther  <rguenther@suse.de>
1982
1983         PR tree-optimization/48772
1984         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
1985
1986 2011-04-27  Richard Guenther  <rguenther@suse.de>
1987
1988         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1989         TARGET_MEM_REF handling.
1990
1991 2011-04-27  Nick Clifton  <nickc@redhat.com>
1992
1993         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1994         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1995         (REG_CLASS_NAMES): Likewise.
1996         (REG_CLASS_CONTENTS): Likewise.
1997         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
1998         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
1999         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2000         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2001         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2002         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2003         duplicate register classes.
2004         (frv_class_likely_spilled_p): Likewise.
2005         (frv_register_move_cost): Likewise.
2006
2007         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2008         end of the regno_reg_class array.
2009
2010 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2011
2012         PR c/48742
2013         * c-typeck.c (build_binary_op): Don't wrap arguments if
2014         int_operands is true.
2015
2016 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2017
2018         PR target/48767
2019         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2020         targetm.calls.must_pass_in_stack for void type.
2021
2022 2011-04-26  Jan Hubicka  <jh@suse.cz>
2023
2024         * cgraphbuild.c (build_cgraph_edges): Update call
2025         of cgraph_create_edge and cgraph_create_indirect_edge.
2026         * cgraph.c (cgraph_create_edge_including_clones,
2027         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2028         cgraph_update_edges_for_call_stmt_node): Do not take nest
2029         argument; do not initialize call_stmt_size/time.
2030         (dump_cgraph_node): Do not dump nest.
2031         (cgraph_clone_edge): Do not take loop_nest argument;
2032         do not propagate it; do not clone call_stmt_size/time.
2033         (cgraph_clone_node): Likewise.
2034         (cgraph_create_virtual_clone): Update.
2035         * cgraph.h (struct cgraph_edge): Remove
2036         call_stmt_size/call_stmt_time/loop_nest.
2037         (cgraph_create_edge, cgraph_create_indirect_edge,
2038         cgraph_create_edge_including_clones, cgraph_clone_node): Update
2039         prototype.
2040         * tree-emutls.c (gen_emutls_addr): Update.
2041         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2042         loop_nest; handle indirect calls, too.
2043         (clone_inlined_nodes): Do not care about updating inline summaries.
2044         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2045         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2046         stream call_stmt_size/call_stmt_time/loop_nest.
2047         * ipa-inline.c (edge_badness): Update.
2048         (ipa_inline): dump summaries after inlining.
2049         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
2050         New.
2051         (inline_edge_summary): New function.
2052         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2053         (inline_edge_removal_hook): Handle edge summaries.
2054         (inline_edge_duplication_hook): New hook.
2055         (inline_summary_alloc): Alloc hooks.
2056         (initialize_growth_caches): Do not register removal hooks.
2057         (free_growth_caches); Do not free removal hook.
2058         (dump_inline_edge_summary): New function.
2059         (dump_inline_summary): Use it.
2060         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2061         (inline_update_callee_summaries): New function.
2062         (inline_merge_summary): Use it.
2063         (do_estimate_edge_time, do_estimate_edge_growth): Update.
2064         (read_inline_edge_summary): New function.
2065         (inline_read_section): Use it.
2066         (write_inline_edge_summary): New function.
2067         (inline_write_summary): Use it.
2068         (inline_free_summary): Free edge new holders.
2069         * tree-inline.c (copy_bb): Update.
2070
2071 2011-04-26  Jason Merrill  <jason@redhat.com>
2072
2073         * tree-eh.c (lower_try_finally_switch): Create the label along with
2074         the CASE_LABEL_EXPR.
2075
2076 2011-04-26  David S. Miller  <davem@davemloft.net>
2077             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2078
2079         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2080         * configure: Regenerate.
2081
2082 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2083
2084         PR target/48258
2085         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2086         reduction.
2087         (VEC_reduc): New code iterator and splitters for vector reduction.
2088         (VEC_reduc_name): Ditto.
2089         (VEC_reduc_rtx): Ditto.
2090         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2091         (reduc_<VEC_reduc_name>_v4sf): Ditto.
2092
2093         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2094         support for extracting SF on VSX.
2095
2096         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2097         generating xscvspdp.
2098         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2099         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2100         double add, minimum, maximum vector reduction.
2101         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2102         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2103         optimize double vector reduction.
2104         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2105
2106 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
2107
2108         * config/fr30/fr30.h (inhibit_libc): Don't define.
2109         * config/m32r/m32r-protos.h: Correct comment.
2110         * config/v850/v850.h (GHS_default_section_names,
2111         GHS_current_section_names): Use tree, not union tree_node *.
2112
2113 2011-04-26  Xinliang David Li  <davidxl@google.com>
2114
2115         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2116         * c-family/c-opts.c (c_common_handle_option): Set
2117         warn_maybe_uninitialized.
2118         * opts.c (common_handle_option): Ditto.
2119         * common.opt:  New option.
2120         * tree-ssa.c (warn_uninit): Add one more parameter.
2121         (warn_uninitialized_var): Pass warning code.
2122         * tree-flow.h: Interface change.
2123
2124
2125 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2126
2127         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2128         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2129         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2130
2131 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2132
2133         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2134         * config/mips/mips.opt (mmips-tfile): Remove.
2135
2136         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2137         mips-tdump reference to ...
2138         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
2139         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2140         reference by Tru64 UNIX.
2141
2142 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
2143
2144         PR debug/48768
2145         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2146         is error_mark_node, set value to NULL.
2147
2148         PR tree-optimization/48734
2149         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2150         if return value from maybe_fold_*_comparsions isn't something
2151         the code is prepared to handle.
2152
2153 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
2154
2155         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2156         mode check.
2157         (ext_QIreg_nomode_operands): Remove.
2158         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2159         (*andsi_1): Ditto.
2160         (*andhi_1): Ditto.
2161
2162 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
2163
2164         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2165
2166 2011-04-26  Richard Guenther  <rguenther@suse.de>
2167
2168         * c-typeck.c (build_unary_op): Do not expand array-refs via
2169         pointer arithmetic.  Only adjust qualifiers for function types.
2170
2171 2011-04-26  Richard Guenther  <rguenther@suse.de>
2172
2173         PR middle-end/48694
2174         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2175         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
2176         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
2177         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2178
2179 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
2180
2181         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
2182         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
2183         * doc/extend.texi: Document __underlying_type.
2184
2185 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
2186
2187         * config/rs6000/titan.md (automata_option "progress"): Remove.
2188
2189 2011-04-25  Jeff Law  <law@redhat.com>
2190
2191         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2192
2193 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2194
2195         * system.h (ENUM_BITFIELD): Remove.
2196
2197 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
2198             Eric Botcazou  <ebotcazou@adacore.com>
2199
2200         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2201         for STORE_FLAG_VALUE==-1 case.
2202
2203 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
2204
2205         PR target/43804
2206         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2207         LEGITIMATE_PIC_OPERAND_P.
2208
2209 2011-04-24  Jan Hubicka  <jh@suse.cz>
2210
2211         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2212         WPA hack.
2213         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2214         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2215         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
2216         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2217         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2218         Sanity check predicate length.
2219         (remap_predicate): Likewise; sanity check jump functions.
2220         (inline_read_section, inline_write_summary): Sanity check
2221         predicate length.
2222
2223 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
2224
2225         PR other/48748
2226         * doc/extend.texi (Type Traits): Document __is_standard_layout,
2227         __is_literal_type, and __is_trivial; update throughout about
2228         possibly cv-qualified void types.
2229
2230 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2231
2232         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2233         testsuite and make it version agnostic.
2234
2235 2011-04-22  Jan Hubicka  <jh@suse.cz>
2236
2237         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2238
2239 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
2240
2241         PR c/48685
2242         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2243         to VOID_TYPE even around MODIFY_EXPR.
2244
2245 2011-04-22  Mike Stump  <mikestump@comcast.net>
2246
2247         * gensupport.c (read_md_rtx): Fix typo in comment.
2248         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2249         comment.
2250
2251 2011-04-22  Jan Hubicka  <jh@suse.cz>
2252
2253         * gengtype.c (open_base_files): Add ipa-inline.h include.
2254         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2255         ipa-prop.c; update all uses.
2256         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
2257         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2258         merge summary of inlined function into former caller.
2259         * ipa-inline.c (max_benefit): Remove.
2260         (edge_badness): Compensate for removal of benefits.
2261         (update_caller_keys): Use
2262         reset_node_growth_cache/reset_edge_growth_cache.
2263         (update_callee_keys): Likewise.
2264         (update_all_callee_keys): Likewise.
2265         (inline_small_functions): Do not collect max_benefit; do not reset
2266         estimated_growth; call free_growth_caches and initialize_growth_caches.
2267         * ipa-inline.h (struct condition, type clause_t, struct predicate,
2268         struct size_time_entry): New structures.
2269         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
2270         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2271         and estimated_growth.
2272         (edge_growth_cache_entry): New structure.
2273         (node_growth_cache, edge_growth_cache): New global vars.
2274         (estimate_growth): Turn into inline.
2275         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2276         initialize_growth_caches, free_growth_caches): Declare.
2277         (estimate_edge_growth): Rewrite.
2278         (estimate_edge_time): Implement as inline cache lookup.
2279         (reset_node_growth_cache, reset_edge_growth_cache): New inline
2280         functions.
2281         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2282         (NUM_CONDITIONS): New constant.
2283         (predicate_conditions): New enum.
2284         (IS_NOT_CONSTANT): New constant.
2285         (edge_removal_hook_holder): New var.
2286         (node_growth_cache, edge_growth_cache): New global vars.
2287         (true_predicate, single_cond_predicate, false_predicate,
2288         not_inlined_predicate, add_condition, add_clause, and_predicates,
2289         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2290         dump_clause, dump_predicate, account_size_time,
2291         evaulate_conditions_for_edge): New functions.
2292         (inline_summary_alloc): Move to heap.
2293         (inline_node_removal_hook): Clear condition and entry vectors.
2294         (inline_edge_removal_hook): New function.
2295         (initialize_growth_caches, free_growth_caches): New function.
2296         (dump_inline_summary): Update.
2297         (edge_execution_predicate): New function.
2298         (will_be_nonconstant_predicate): New function.
2299         (estimate_function_body_sizes): Compute BB and constantness predicates.
2300         (compute_inline_parameters): Do not clear estimated_growth.
2301         (estimate_edge_size_and_time): New function.
2302         (estimate_calls_size_and_time): New function.
2303         (estimate_callee_size_and_time): New function.
2304         (remap_predicate): New function.
2305         (inline_merge_summary): New function.
2306         (do_estimate_edge_time): New function based on...
2307         (estimate_edge_time): ... this one.
2308         (do_estimate_edge_growth): New function.
2309         (do_estimate_growth): New function based on....
2310         (estimate_growth): ... this one.
2311         (inline_analyze_function): Analyze after deciding on jump functions.
2312         (inline_read_section): New function.
2313         (inline_read_summary): Use it.
2314         (inline_write_summary): Write all the new data.
2315         * ipa-prop.c (ipa_get_param_decl_index): Export.
2316         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
2317         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
2318         Declare.
2319         (ipa_get_lattice): Move here from ipa-cp.c
2320         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
2321         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
2322         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
2323         cgraph_edge_inlinable_p): Remove.
2324         * cgraphunit.c: Include ipainline.h
2325         (cgraph_process_new_functions): Update call of
2326         compute_inline_parameters.
2327
2328 2011-04-22  Richard Guenther  <rguenther@suse.de>
2329
2330         * tree.c (build_int_cst): Properly create canonicalized integer
2331         constants.
2332         (build_int_cst_type): Remove scary comments.
2333
2334 2011-04-22  Xinliang David Li  <davidxl@google.com>
2335
2336         * toplev.c (process_options): Enable -Werror=coverage-mismatch
2337         by default when -Wno-error is not specified.
2338         * opts-global.c (decode_options): Remove call to
2339         control_warning_options.
2340
2341 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2342
2343         PR tree-optimization/48717
2344         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
2345         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
2346
2347 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
2348
2349         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
2350         definition where used.
2351
2352 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2353
2354         PR c/48716
2355         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
2356         TREE_STATIC variables declared inside of some OpenMP construct.
2357
2358 2011-04-22  Martin Jambor  <mjambor@suse.cz>
2359
2360         PR middle-end/48585
2361         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
2362
2363 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
2364
2365         PR c/36750
2366         * c-typeck.c (pop_init_level): Do not warn about initializing
2367         with ` = {0}'.
2368
2369 2011-04-22  Alan Modra  <amodra@gmail.com>
2370
2371         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2372         when returning call_cookie.
2373         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2374         pointers, to functions with no more vector args than the current
2375         function, and some non-local calls for ABI_V4.
2376         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2377         sibcall_nonlocal_aix64): Combine to ..
2378         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
2379         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2380         (sibcall_value_nonlocal_aix<mode>): ..likewise.
2381         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2382         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
2383         operand.
2384         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2385         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2386         sibcall_value_symbolic_64): Delete.
2387
2388 2011-04-21  Xinliang David Li  <davidxl@google.com>
2389
2390         * cgraph.h: Remove pid.
2391         * cgraph.c: Remove pid.
2392         * value-prof.c (init_node_map): New function.
2393         (del_node_map): New function.
2394         (find_func_by_funcdef_no): New function.
2395         (gimple_ic_transform): Call new function.
2396         * cgraphunit.c (cgraph_finalize_function): Remove pid.
2397         * function.c (get_last_funcdef_no): New function.
2398         * function.h (get_last_funcdef_no): New function.
2399         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
2400         to libgcov function.
2401         (tree-profiling): Call node map init and delete function.
2402
2403 2011-04-21  Ian Lance Taylor  <iant@google.com>
2404
2405         * godump.c (go_format_type): Use exported Go name for anonymous
2406         field name.
2407
2408 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2409
2410         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2411         Call builtin_function_type_list instead of builtin_function_type.
2412         (UNARY, BINARY, TRINARY, QUAD): Likewise.
2413
2414 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2415
2416         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2417         build_function_type_list instead of build_function_type.
2418         Delete variable `endlink'.
2419
2420 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2421
2422         * config/s390/s390.c (s390_init_builtins): Call
2423         build_function_type_list instead of build_function_type.
2424
2425 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2426
2427         * config/ia64/ia64.c (ia64_init_builtins): Call
2428         build_function_type_list instead of builtin_function_type.
2429
2430 2011-04-21  Easwaran Raman  <eraman@google.com>
2431
2432         * cfgexpand.c (stack_var): Remove OFFSET...
2433         (add_stack_var): ...and its reference here...
2434         (expand_stack_vars): ...and here.
2435         (stack_var_cmp): Sort by descending order of size.
2436         (partition_stack_vars): Change heuristic.
2437         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2438         (dump_stack_var_partition): Add newline after each partition.
2439
2440 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
2441             Jeff Law  <law@redhat.com>
2442
2443         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2444         * gengtype.c (matching_file_name_substitute): Likewise.
2445
2446 2011-04-21  Richard Guenther  <rguenther@suse.de>
2447
2448         PR lto/48703
2449         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2450
2451 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2452
2453         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2454
2455 2011-04-21  Richard Guenther  <rguenther@suse.de>
2456
2457         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2458         file name.
2459
2460 2011-04-21  Richard Guenther  <rguenther@suse.de>
2461
2462         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2463         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2464         Use DECL_P, not SSA_VAR_P.
2465         (ptr_derefs_may_alias_p): Likewise.
2466         (ptr_deref_may_alias_ref_p_1): Likewise.
2467         (decl_refs_may_alias_p): Likewise.
2468         (refs_may_alias_p_1): Likewise.
2469         (ref_maybe_used_by_call_p_1): Likewise.
2470         (call_may_clobber_ref_p_1): Likewise.
2471         (indirect_ref_may_alias_decl_p): Assume indirect refrences
2472         are either MEM_REF or TARGET_MEM_REF.
2473         (indirect_refs_may_alias_p): Likewise.
2474         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2475         for MEM_EXPR of indirect calls.
2476
2477 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2478
2479         * vmsdbgout.c (write_srccorr): Compute file length from the string.
2480         (dst_file_info_struct): Remove flen field.
2481         (lookup_filename): Remove code that set flen field.
2482
2483 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2484
2485         * config/ia64/ia64.c (ia64_start_function): Add a guard.
2486
2487 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
2488
2489         PR target/48708
2490         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2491         vec_extract and vec_concat for non-SSE4_1 targets.
2492
2493 2011-04-21  Richard Guenther  <rguenther@suse.de>
2494
2495         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2496         return statements.
2497
2498 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2499
2500         * config/i386/cygming.h (union tree_node, TREE): Don't define or
2501         undefine.
2502         (FILE): Don't undefine.
2503
2504 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2505
2506         * config/alpha/alpha.c (struct machine_function): Use rtx, not
2507         struct rtx_def *.
2508         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2509         struct rtx_def *.
2510         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2511         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
2512         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2513         rtx_def *.
2514         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
2515         definitions where used.
2516         * config/microblaze/microblaze.h (struct microblaze_args): Use
2517         rtx, not struct rtx_def *.
2518         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2519         rtx_def *.
2520         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2521         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
2522         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2523         not struct rtx_def *.
2524         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2525         struct rtx_def *.
2526         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2527         rtx_def *.
2528         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2529
2530 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2531
2532         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2533         operand_equal_p to compare DR_BASE_ADDRESSes.
2534         (vect_check_interleaving): Likewise.
2535
2536 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2537
2538         PR target/46329
2539         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2540         for all Neon struct constants.
2541
2542 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2543
2544         * target.def (legitimate_constant_p): New hook.
2545         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2546         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2547         * doc/tm.texi: Regenerate.
2548         * hooks.h (hook_bool_mode_rtx_true): Declare.
2549         * hooks.c (hook_bool_mode_rtx_true): Define.
2550         * system.h (LEGITIMATE_CONSTANT_P): Poison.
2551         * calls.c (precompute_register_parameters): Replace uses of
2552         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
2553         (emit_library_call_value_1): Likewise.
2554         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
2555         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
2556         * ira-costs.c (scan_one_insn): Likewise.
2557         * recog.c (general_operand, immediate_operand): Likewise.
2558         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
2559         * reload1.c (init_eliminable_invariants): Likewise.
2560
2561         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2562         mode argument.
2563         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2564         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2565         argument.
2566         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2567         * config/alpha/predicates.md (input_operand): Update call to
2568         alpha_legitimate_constant_p.
2569
2570         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
2571         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
2572         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
2573         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2574         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
2575         (arm_legitimate_constant_p): New functions.
2576         (arm_cannot_force_const_mem): Make static.
2577
2578         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
2579
2580         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
2581         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
2582         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
2583         instead of bfin_legitimate_constant_p.
2584         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
2585         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2586
2587         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2588
2589         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
2590
2591         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
2592         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
2593         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2594         (frv_legitimate_constant_p): Make static.  Add a mode argument.
2595
2596         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
2597         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
2598         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
2599
2600         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
2601         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
2602         * config/i386/i386.c (legitimate_constant_p): Rename to...
2603         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
2604         argument.
2605         (ix86_cannot_force_const_mem): Update accordingly.
2606         (ix86_legitimate_address_p): Likewise.
2607         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2608         * config/i386/i386.md: Update commentary.
2609
2610         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
2611         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
2612         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2613         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
2614
2615         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
2616
2617         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
2618         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
2619         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2620         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
2621
2622         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
2623         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
2624         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
2625
2626         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
2627         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2628         (m32r_legitimate_constant_p): New function.
2629
2630         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
2631         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
2632         LEGITIMATE_CONSTANT_P.
2633         (LEGITIMATE_CONSTANT_P): Delete.
2634         * config/m68k/m68k.c (m68k_expand_prologue): Call
2635         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
2636         (m68k_legitimate_constant_p): New function.
2637         * config/m68k/m68k.md: Update comments.
2638
2639         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
2640         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2641         (mcore_legitimate_constant_p): New function.
2642
2643         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
2644         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
2645         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
2646         Add a mode argument.
2647         (mep_legitimate_address): Update accordingly.
2648         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2649
2650         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
2651         Delete.
2652         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
2653         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
2654         static.  Check OP's mode for VOIDmode.
2655         (microblaze_legitimate_constant_p): New function.
2656         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2657
2658         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
2659         * config/mips/mips.c (mips_legitimate_constant_p): New function.
2660         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
2661         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2662         * config/mips/predicates.md: Update comments.
2663
2664         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
2665         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
2666         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2667         (mmix_legitimate_constant_p): Make static, return a bool, and take
2668         a mode argument.
2669         (mmix_print_operand_address): Update accordingly.
2670
2671         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
2672         Delete.
2673         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2674         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
2675         static.  Add a mode argument.
2676         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2677
2678         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
2679
2680         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
2681         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2682         (pa_legitimate_constant_p): New function.
2683
2684         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
2685
2686         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
2687         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2688         (pdp11_legitimate_constant_p): New function.
2689
2690         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
2691         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2692         (rs6000_legitimate_constant_p): New function.
2693
2694         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
2695         (rx_legitimate_constant_p): ...this.
2696         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
2697         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
2698         (rx_legitimate_constant_p): ...this.
2699         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2700         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
2701
2702         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
2703         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
2704         * config/s390/s390.c (legitimate_constant_p): Rename to...
2705         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
2706         and add a mode argument.
2707         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2708
2709         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
2710
2711         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
2712         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2713         (sh_legitimate_constant_p): New function.
2714
2715         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
2716         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
2717         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2718         (legitimate_constant_p): Rename to...
2719         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
2720         argument.
2721         (constant_address_p): Update accordingly.
2722
2723         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
2724         argument and return a bool.
2725         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
2726         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2727         (spu_legitimate_constant_p): Add a mode argument and return a bool.
2728         (spu_rtx_costs): Update accordingly.
2729         * config/spu/predicates.md (vec_imm_operand): Likewise.
2730
2731         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
2732
2733         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
2734         * config/v850/v850.c (v850_legitimate_constant_p): New function.
2735         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2736
2737         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
2738         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
2739         * config/vax/vax.c (legitimate_constant_p): Likewise.
2740
2741         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
2742         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2743         (xtensa_legitimate_constant_p): New function.
2744
2745 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2746
2747         * target.def (cannot_force_const_mem): Add a mode argument.
2748         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
2749         * doc/tm.texi: Regenerate.
2750         * hooks.h (hook_bool_mode_rtx_false): Declare.
2751         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
2752         (hook_bool_mode_const_rtx_true): Likewise.
2753         (hook_bool_mode_rtx_false): New function.
2754         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2755         to be non-VOID.  Update call to cannot_force_const_mem.
2756         (find_reloads): Update accordingly.
2757         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2758         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2759         argument.
2760         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2761         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2762         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2763         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2764         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2765         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2766         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2767         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2768         (m68k_cannot_force_const_mem): ...this new function.
2769         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2770         argument.
2771         (mips_const_insns, mips_legitimize_const_move): Update calls.
2772         (mips_secondary_reload_class): Likewise.
2773         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2774         (pa_cannot_force_const_mem): ...this new function.
2775         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
2776         (rs6000_cannot_force_const_mem): ...this new function.
2777         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2778         argument.
2779         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2780         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2781         to...
2782         (xtensa_cannot_force_const_mem): ...this new function.
2783
2784 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2785
2786         * config/mips/mips.c (mips16_build_function_stub): Call
2787         build_function_type_list instead of build_function_type.
2788         (mips16_build_call_stub): Likewise.
2789
2790 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2791
2792         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2793         instead of build_function_type.
2794
2795 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
2796
2797         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2798         instead of build_function_type.
2799
2800 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
2801
2802         PR target/48678
2803         * config/i386/i386.md (insv): Change operand 0 constraint to
2804         "register_operand".  Change operand 1 and 2 constraint to
2805         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
2806         * config/i386/sse.md (sse4_1_pinsrb): Export.
2807         (sse2_pinsrw): Ditto.
2808         (sse4_1_pinsrd): Ditto.
2809         (sse4_1_pinsrq): Ditto.
2810         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
2811         * config/i386/i386.c (ix86_expand_pinsr): New.
2812
2813 2011-04-20  Easwaran Raman  <eraman@google.com>
2814
2815         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2816         containing union type only with -fstrict-aliasing.
2817
2818 2011-04-20  Jim Meyering  <meyering@redhat.com>
2819
2820         Remove useless if-before-free tests.
2821         * calls.c (expand_call, save_area): Likewise.
2822         * cfgcleanup.c (try_forward_edges): Likewise.
2823         * collect2.c (collect_execute): Likewise.
2824         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
2825         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2826         * coverage.c (coverage_checksum_string): Likewise.
2827         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
2828         * cselib.c (cselib_init): Likewise.
2829         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
2830         (df_set_clean_cfg): Likewise.
2831         * function.c (free_after_compilation): Likewise.
2832         * gcc.c (do_spec_1, main): Likewise.
2833         * gcov.c (create_file_names): Likewise.
2834         * gensupport.c (identify_predicable_attribute): Likewise.
2835         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
2836         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
2837         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
2838         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
2839         * ipa-pure-const.c (local_pure_const): Likewise.
2840         * ipa-reference.c (propagate): Likewise.
2841         * ira-costs.c (free_ira_costs): Likewise.
2842         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
2843         * matrix-reorg.c (mat_free): Likewise.
2844         * prefix.c (get_key_value): Likewise.
2845         * profile.c (compute_value_histograms): Likewise.
2846         * reload1.c (free_reg_equiv): Likewise.
2847         * sched-deps.c (free_deps): Likewise.
2848         * sel-sched-ir.c (fence_clear): Likewise.
2849         * sese.c (set_rename, if_region_set_false_region): Likewise.
2850         * tree-data-ref.c (free_rdg): Likewise.
2851         * tree-eh.c (lower_try_finally): Likewise.
2852         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
2853         * tree-ssa-live.c (delete_var_map): Likewise.
2854         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
2855         * tree-ssa-pre.c (phi_trans_add): Likewise.
2856
2857 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
2858
2859         PR tree-optimization/48611
2860         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
2861         beyond ERT_MUST_NOT_THROW region.
2862
2863 2011-04-20  Catherine Moore  <clm@codesourcery.com>
2864
2865         * config/mips/mips.opt (mfix-24k): New.
2866         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
2867         * config/mips/mips.md (length): Increase by 4 for stores if
2868         fixing 24K errata.
2869         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
2870         all noreorder if fixing 24K errata.
2871         * doc/invoke.texi: Document mfix-24k.
2872
2873 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
2874
2875         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2876         quad-word modes, reduce to 9-bit index range when above 1016 limit.
2877
2878 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
2879
2880         * config/arm/arm.c (arm_gen_constant): Move movw support ....
2881         (const_ok_for_op): ... to here.
2882
2883 2011-04-20  Kai Tietz  <ktietz@redhat.com>
2884
2885         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2886         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2887
2888 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
2889
2890         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2891
2892 2011-04-20  Richard Guenther  <rguenther@suse.de>
2893
2894         PR tree-optimization/47892
2895         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2896         are if-convertible.
2897
2898 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
2899
2900         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2901
2902 2011-04-20  Tristan Gingold  <gingold@adacore.com>
2903
2904         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2905
2906 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
2907
2908         PR target/18145
2909
2910         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
2911         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2912         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2913         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2914         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
2915
2916         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
2917         New prototype.
2918
2919         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
2920         (avr_asm_named_section, avr_asm_output_aligned_common,
2921         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
2922         New functions to update...
2923         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
2924         (avr_asm_init_sections): Overwrite section callbacks for
2925         data_section, bss_section.
2926         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
2927         from here to...
2928         (avr_file_end): ...here.
2929
2930 2011-04-20  Richard Guenther  <rguenther@suse.de>
2931
2932         PR middle-end/48695
2933         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2934         objects and types here.  Adjust for their offset before comparing.
2935
2936 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
2937
2938         * tree-vect-stmts.c (vectorizable_store): Only chain one related
2939         statement per copy.
2940
2941 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
2942
2943         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
2944         (GIMPLE_H): Include $(INTERNAL_FN_H).
2945         (OBJS-common): Add internal-fn.o.
2946         (internal-fn.o): New rule.
2947         * internal-fn.def: New file.
2948         * internal-fn.h: Likewise.
2949         * internal-fn.c: Likewise.
2950         * gimple.h: Include internal-fn.h.
2951         (GF_CALL_INTERNAL): New gf_mask.
2952         (gimple_statement_call): Put fntype into a union with a new
2953         internal_fn field.
2954         (gimple_build_call_internal): Declare.
2955         (gimple_build_call_internal_vec): Likewise.
2956         (gimple_call_same_target_p): Likewise.
2957         (gimple_call_internal_p): New function.
2958         (gimple_call_internal_fn): Likewise.
2959         (gimple_call_fntype): Return null for internal calls.
2960         (gimple_call_set_fntype): Assert that the function is not internal.
2961         (gimple_call_set_fn): Likewise.
2962         (gimple_call_set_fndecl): Likewise.
2963         (gimple_call_set_internal_fn): New function.
2964         (gimple_call_addr_fndecl): Handle null functions.
2965         (gimple_call_return_type): Likewise null types.
2966         * gimple.c (gimple_build_call_internal_1): New function.
2967         (gimple_build_call_internal): Likewise.
2968         (gimple_build_call_internal_vec): Likewise.
2969         (gimple_call_same_target_p): Likewise.
2970         (gimple_call_flags): Handle calls to internal functions.
2971         (gimple_call_fnspec): New function.
2972         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
2973         (gimple_has_side_effects): Handle null functions.
2974         (gimple_rhs_has_side_effects): Likewise.
2975         (gimple_call_copy_skip_args): Handle calls to internal functions.
2976         * cfgexpand.c (expand_call_stmt): Likewise.
2977         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2978         * gimple-fold.c (gimple_fold_call): Handle null functions.
2979         (gimple_fold_stmt_to_constant_1): Don't fold
2980         calls to internal functions.
2981         * gimple-low.c (gimple_check_call_args): Handle calls to internal
2982         functions.
2983         * gimple-pretty-print.c (dump_gimple_call): Likewise.
2984         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2985         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2986         (do_warn_unused_result): Likewise.
2987         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2988         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2989         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2990         the target of a call.
2991         (initialize_hash_element): Update accordingly.
2992         (hashable_expr_equal_p): Use gimple_call_same_target_p.
2993         (iterative_hash_hashable_expr): Handle calls to internal functions.
2994         (print_expr_hash_elt): Likewise.
2995         * tree-ssa-pre.c (can_value_number_call): Likewise.
2996         (eliminate): Handle null functions.
2997         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2998         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2999         (find_func_aliases): Likewise.
3000         * value-prof.c (gimple_ic_transform): Likewise.
3001         (gimple_indirect_call_to_profile): Likewise.
3002         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3003         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3004
3005 2011-04-19  Jan Hubicka  <jh@suse.cz>
3006
3007         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3008         * ipa-inline.c (inline_small_functions): Compute summaries first,
3009         populate heap later.
3010
3011 2011-04-19  Jan Hubicka  <jh@suse.cz>
3012
3013         * cgraph.h (save_inline_function_body): Remove.
3014         * ipa-inline-transform.c: New file, broke out of...
3015         * ipa-inline.c: ... this one; Update toplevel comment.
3016         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3017         make global.
3018         (update_noncloned_frequencies): Move to ipa-inline-transform.c
3019         (cgraph_mark_inline_edge): Rename to inline_call; move to
3020         ipa-inline-transform.c.
3021         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3022         move to ipa-inline-transform.c
3023         (recursive_inlining, inline_small_functions, flatten_function,
3024         ipa_inline, inline_always_inline_functions,
3025         early_inline_small_functions): Update.
3026         (inline_transform): Move to ipa-inline-transform.c.
3027         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3028         Declare.
3029         * Makefile.in (ipa-inline-transform.o): New file.
3030         * cgraphunit.c (save_inline_function_body): Move to
3031         ipa-inline-transform.c
3032
3033 2011-04-19  DJ Delorie  <dj@redhat.com>
3034
3035         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3036         registers if we already know there aren't any.
3037         (m32c_emit_epilogue): Don't emit a barrier here.
3038         (m32c_emit_eh_epilogue): Likewise.
3039         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3040         operands at expand time.
3041         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3042         int" wchar type.
3043         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3044         duplicates.  Provide aliases instead.
3045         * config/m32c/prologue.md (eh_return): Emit a barrier here.
3046         (eh_epilogue): Add a "(return)" here as a hint to other parts of
3047         the compiler.
3048
3049 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
3050
3051         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3052         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3053         (general_or_i64_p, sparc_register_move_cost): New function.
3054
3055 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3056
3057         * doc/install.texi (Configuration, --enable-threads): Remove mach.
3058         Add lynx, mipssde.  Sort table.
3059
3060 2011-04-19  Xinliang David Li  <davidxl@google.com>
3061
3062         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3063         not negative.
3064
3065 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
3066
3067         PR target/48678
3068         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3069         is a SUBREG with non-MODE_INT mode inside of it.
3070
3071 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3072
3073         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3074         also according to actual contants.
3075         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3076         (gimple_fold_call): Use it.
3077         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3078
3079 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3080
3081         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3082         non-pointer assignments.
3083
3084 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3085
3086         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3087         account anc_offset and otr_type from the indirect edge info.
3088         * ipa-prop.c (get_ancestor_addr_info): New function.
3089         (compute_complex_ancestor_jump_func): Assignment analysis moved to
3090         get_ancestor_addr_info, call it.
3091         (ipa_note_param_call): Do not initialize information about polymorphic
3092         calls, return the indirect call graph edge.  Remove the last
3093         parameter, adjust all callers.
3094         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3095         parameters.  Initialize polymorphic information in the indirect edge.
3096
3097 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3098
3099         PR lto/48148
3100         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3101         the types if they have different enumeration identifiers.
3102
3103 2011-04-19  Jan Hubicka  <jh@suse.cz>
3104
3105         * cgraph.h (cgraph_optimize_for_size_p): Declare.
3106         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3107         * predict.c (cgraph_optimize_for_size_p): Break out from ...
3108         (optimize_function_for_size_p) ... here.
3109
3110 2011-04-19  Richard Guenther  <rguenther@suse.de>
3111
3112         PR lto/48207
3113         * tree.c (free_lang_data): Do not reset the decl-assembler-name
3114         langhook.
3115
3116 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3117
3118         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3119         if DECL_NO_INLINE_WARNING_P is set on the function.
3120
3121 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
3122
3123         PR fortran/47976
3124         * reload1.c (inc_for_reload): Return void. All callers changed.
3125         (emit_input_reload_insns): Don't try to delete previous output
3126         reloads to a register, or record spill_reg_store for autoincs.
3127
3128 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
3129
3130         * gengtype.h: Updated copyright year.
3131         (struct input_file_st): Add inpisplugin field.
3132         (type_fileloc): New function.
3133         * gengtype.c
3134         (write_typed_struct_alloc_def): Add gcc_assert.
3135         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3136         (write_typed_alloc_defns): Don't output for plugin files.
3137         (input_file_by_name): Clear inpisplugin field.
3138         (main): Set inpisplugin field for plugin files.
3139
3140 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3141
3142         * gengtype-state.c (string_eq): New.
3143         (read_state): Use string_eq instead of strcmp when creating the
3144         state_ident_tab.
3145
3146 2011-04-19  Wei Guozhi  <carrot@google.com>
3147
3148         PR target/47855
3149         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3150         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3151         linkage.
3152         * config/arm/constraints.md (Uu): New constraint.
3153         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3154
3155 2011-04-19  Tristan Gingold  <gingold@adacore.com>
3156
3157         * config.gcc (-*-*-*vms): Added.
3158         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3159         definitions moved.
3160         * config/vms/vms-ld.c: New file.
3161         * config/vms/vms-ar.c: New file.
3162         * config/vms/t-vmsnative: New file.
3163
3164 2011-04-18  Xinliang David Li  <davidxl@google.com>
3165
3166         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3167
3168 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3169
3170         PR middle-end/48661
3171         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3172         if TREE_TYPE (v) is non-NULL.
3173
3174         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3175         gimple_get_virt_mehtod_for_binfo.
3176         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3177         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3178         callers.
3179         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3180
3181 2011-04-18  Michael Matz  <matz@suse.de>
3182             Steve Ellcey  <sje@cup.hp.com>
3183
3184         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3185         use its mode as source mode if it isn't VOIDmode.
3186
3187 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
3188
3189         * doc/passes.texi: Fill crossref nodes.
3190
3191 2011-04-18  Jim Meyering  <meyering@redhat.com>
3192
3193         Fix doubled-word typos in comments and strings
3194         * config/alpha/vms-unwind.h: s/for for/for/
3195         * config/arm/unwind-arm.h: Likewise.
3196         * config/microblaze/microblaze.c: Likewise.
3197         * config/sh/constraints.md: s/in in/in/
3198         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3199
3200 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
3201
3202         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3203         (AVX_FLOAT_MODE_P): Ditto.
3204         (AVX128_VEC_FLOAT_MODE_P): Ditto.
3205         (AVX256_VEC_FLOAT_MODE_P): Ditto.
3206         (AVX_VEC_FLOAT_MODE_P): Ditto.
3207         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3208         (UNSPEC_MASKSTORE): Ditto.
3209         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3210         Merge from <sse>_movmsk<ssemodesuffix> and
3211         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
3212         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
3213         iterator.
3214         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3215         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3216         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3217
3218 2011-04-18  Jan Hubicka  <jh@suse.cz>
3219
3220         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3221
3222         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3223         (want_inline_function_called_once_p): Break out the logic from
3224         ipa_inline.
3225         (edge_badness): Ensure that profile is not misupdated.
3226         (lookup_recursive_calls): Prioritize by call frequencies.
3227         (inline_small_functions): Move program size estimates here;
3228         actually process whole queue even when unit growth has been
3229         met. (to properly compute inline_failed reasons and for the
3230         case unit size decrease.) Revisit comments on recursive inlining.
3231         (ipa_inline): Remove unit summary code; first inline hot calls
3232         of functions called once, cold calls next.
3233         (order, nnodes): Remove unused variables.
3234         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3235         (GTFILES): Remove ipa-inline.c
3236         * sel-sched.c (fill_insns): Silence uninitialized var warning.
3237
3238 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3239
3240         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3241
3242 2011-04-18  Jie Zhang  <jie@codesourcery.com>
3243             Richard Earnshaw  <rearnsha@arm.com>
3244
3245         * arm.c (neon_builtin_type_bits): Remove.
3246         (typedef enum neon_builtin_mode): New.
3247         (T_MAX): Don't define.
3248         (typedef enum neon_builtin_datum): Remove bits, codes[],
3249         num_vars and base_fcode.  Add mode, code and fcode.
3250         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3251         VAR10): Change accordingly.
3252         (neon_builtin_data[]): Change accordingly
3253         (arm_init_neon_builtins): Change accordingly.
3254         (neon_builtin_compare): Remove.
3255         (locate_neon_builtin_icode): Remove.
3256         (arm_expand_neon_builtin): Change accordingly.
3257
3258         * arm.h (enum arm_builtins): Move to ...
3259         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3260
3261         * arm.c (arm_builtin_decl): Declare.
3262         (TARGET_BUILTIN_DECL): Define.
3263         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3264         (arm_builtin_decls[]): New.
3265         (arm_init_neon_builtins): Store builtin declarations in
3266         arm_builtin_decls[].
3267         (arm_init_tls_builtins): Likewise.
3268         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
3269         (arm_builtin_decl): New.
3270
3271 2011-04-18  Richard Guenther  <rguenther@suse.de>
3272
3273         * tree.c (upper_bound_in_type): Build properly canonicalized
3274         INTEGER_CSTs.
3275         (lower_bound_in_type): Likewise.
3276
3277 2011-04-18  Richard Guenther  <rguenther@suse.de>
3278
3279         * gimple.h (gimple_call_addr_fndecl): New function.
3280         (gimple_call_fndecl): Use it.
3281         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3282         for direct calls.
3283         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3284         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3285
3286 2011-04-18  Richard Guenther  <rguenther@suse.de>
3287
3288         PR middle-end/48650
3289         * tree.c (build_string): STRING_CST is now derived from tree_typed.
3290
3291 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3292
3293         PR lto/48492
3294         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3295         DECL_IN_CONSTANT_POOL without RTL.
3296
3297 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
3298             Ira Rosen  <ira.rosen@linaro.org>
3299
3300         PR target/48252
3301         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
3302         to match neon_vzip/vuzp/vtrn_internal.
3303         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
3304         outputs explicitly dependent on both inputs.
3305         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
3306
3307 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3308
3309         PR tree-optimization/48616
3310         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
3311         whether the shift is by scalar or vector based on whether all SLP
3312         scalar stmts have the same rhs.
3313
3314 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
3315
3316         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
3317         memory operands.
3318
3319 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
3320
3321         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
3322         registers.
3323
3324 2011-04-17  Jan Hubicka  <jh@suse.cz>
3325
3326         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
3327         * cgrpahunit.c (cgraph_finalize_function): Do not set
3328         finalized_by_frontend.
3329         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3330         finalized_by_frontend.
3331
3332 2011-04-17  Jan Hubicka  <jh@suse.cz>
3333
3334         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
3335         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
3336         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
3337         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
3338         method.
3339         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
3340         gimple-fold.c
3341         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
3342
3343 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3344
3345         PR lto/48538
3346         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
3347         is non-null before accessing it.
3348         (input_cgraph): Remove trailing spaces.
3349
3350 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3351
3352         * params.def (sms-min-sc): New param flag.
3353         * modulo-sched.c (sms_schedule): Use it.
3354         * doc/invoke.texi (sms-min-sc): Document it.
3355
3356 2011-04-17  Jan Hubicka  <jh@suse.cz>
3357
3358         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
3359         present, also set gimple_call_set_cannot_inline.
3360         * ipa-inline.c: Update toplevel comment.
3361         (MAX_TIME): Remove.
3362         (cgraph_clone_inlined_nodes): Fix linebreaks.
3363         (cgraph_check_inline_limits): Restructure to ...
3364         (caller_growth_limits): ... this one; be more tolerant
3365         on growth in nested inline chains; add explanatory comment;
3366         fix stack accounting thinko introduced by previous patch.
3367         (cgraph_default_inline_p): Remove.
3368         (report_inline_failed_reason): New function.
3369         (can_inline_edge_p): New function.
3370         (can_early_inline_edge_p): New function.
3371         (leaf_node_p): Move upwards in file.
3372         (want_early_inline_function_p): New function.
3373         (want_inline_small_function_p): New function.
3374         (want_inline_self_recursive_call_p): New function.
3375         (cgraph_edge_badness): Rename to ...
3376         (edge_badness) ... this one; fix linebreaks.
3377         (update_edge_key): Update call of edge_baddness; add
3378         detailed dump about queue updates.
3379         (update_caller_keys): Use can_inline_edge_p and
3380         want_inline_small_function_p.
3381         (cgraph_decide_recursive_inlining): Rename to...
3382         (recursive_inlining): Use can_inline_edge_p and
3383         want_inline_self_recursive_call_p; simplify and remove no longer
3384         valid FIXME.
3385         (cgraph_set_inline_failed): Remove.
3386         (add_new_edges_to_heap): Use can_inline_edge_p and
3387         want_inline_small_function_p.
3388         (cgraph_decide_inlining_of_small_functions): Rename to ...
3389         (inline_small_functions): ... this one; cleanup; use
3390         can/want predicates; cleanup debug ouput; work edges till fibheap
3391         is exhausted and do not stop once unit growth is reached; remove
3392         later loop processing remaining edges.
3393         (cgraph_flatten): Rename to ...
3394         (flatten_function): ... this one; use can_inline_edge_p
3395         and can_early_inline_edge_p predicates.
3396         (cgraph_decide_inlining): Rename to ...
3397         (ipa_inline): ... this one; remove unreachable nodes before
3398         inlining functions called once; simplify the pass.
3399         (cgraph_perform_always_inlining): Rename to ...
3400         (inline_always_inline_functions): ... this one; use
3401         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
3402         (cgraph_decide_inlining_incrementally): Rename to ...
3403         (early_inline_small_functions): ... this one; simplify
3404         using new predicates; cleanup; make dumps prettier.
3405         (cgraph_early_inlining): Rename to ...
3406         (early_inliner): newer inline regular functions into always-inlines;
3407         fix updating of call stmt summaries.
3408         (pass_early_inline): Update for new names.
3409         (inline_transform): Fix formating.
3410         (gate_cgraph_decide_inlining): Rename to ...
3411         (pass_ipa_inline): ... this one.
3412         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3413         * ipa-inline-analysis.c (dump_inline_summary): Update.
3414         (compute_inline_parameters): Do not compute disregard_inline_limits;
3415         look for mismatching arguments.
3416         (estimate_growth): Fix handlig of non-trivial self recursion.
3417         (inline_read_summary): Do not read info->disregard_inline_limits.
3418         (inline_write_summary): Do not write info->disregard_inline_limits.
3419         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3420         and move all checks into can_inline_edge_p predicate; re-enable code
3421         comparing optimization levels.
3422         (expand_call_inline): Do not test inline_forbidden_into_p.
3423         * Makefile.in (ipa-inline.o): Update arguments.
3424
3425 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3426
3427         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3428
3429 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3430
3431         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3432
3433 2011-04-17  Michael Matz  <matz@suse.de>
3434
3435         PR tree-optimization/48622
3436         PR lto/48645
3437         * ipa-inline-analysis.c (inline_read_summary): Read size/time
3438         in same order as they're written.
3439
3440 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3441
3442         * config/pa/predicates.md: Reorganize and simplify predicates.
3443         Eliminate duplicate code checks.
3444         (arith_operand): Rename to arith14_operand
3445         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3446         * config/pa/pa.md: Use renamed operands.
3447         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3448         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3449         arith11_operand, adddi3_operand, indexed_memory_operand,
3450         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3451         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3452         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3453         move_dest_operand, move_src_operand, prefetch_cc_operand,
3454         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3455         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3456         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3457         div_operand, int5_operand, movb_comparison_operator,
3458         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3459         arith_double_operand, ireg_operand, lhs_lshift_operand,
3460         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3461         integer_store_memory_operand): Likewise.
3462         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3463         (integer_store_memory_operand, read_only_operand,
3464         function_label_operand, borx_reg_operand,
3465         non_hard_reg_operand): Likewise.
3466         (eq_neq_comparison_operator): Delete unused operator.
3467         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3468         function_label_operand.
3469         (emit_move_sequence): Likewise.
3470
3471 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3472
3473         * config/i386/sse.md (sseunpackmode): New mode attribute.
3474         (ssepackmode): Ditto.
3475         (vec_pack_trunc_<mode>): Macroize expander from
3476         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3477         (vec_unpacks_lo_<mode>): Macroize expander from
3478         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3479         (vec_unpacks_hi_<mode>): Macroize expander from
3480         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3481         (vec_unpacku_lo_<mode>): Macroize expander from
3482         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3483         (vec_unpacku_hi_<mode>): Macroize expander from
3484         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3485         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3486         ix86_expand_sse4_unpack.
3487         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3488
3489 2011-04-16  Jan Hubicka  <jh@suse.cz>
3490
3491         * cgraphbuild.c: Include ipa-inline.h.
3492         (reset_inline_failed): Use initialize_inline_failed.
3493         * cgraph.c: Include ipa-inline.h.
3494         (cgraph_create_node_1): Do not initialize estimated_growth.
3495         (initialize_inline_failed): More to ipa-inline-analysis.c
3496         (dump_cgraph_node): Do not dump inline flags.
3497         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3498         and disregard_inline_limits flags.
3499         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3500         time, size, estimated_growth.
3501         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3502         Update.
3503         * cgraphunit.c (cgraph_decide_is_function_needed): Use
3504         DECL_DISREGARD_INLINE_LIMITS.
3505         (cgraph_analyze_function): Do not initialize
3506         node->local.disregard_inline_limits.
3507         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3508         inlinable, versionable and disregard_inline_limits.
3509         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3510         cgraph_check_inline_limits, cgraph_default_inline_p,
3511         cgraph_edge_badness, update_caller_keys, update_callee_keys,
3512         add_new_edges_to_heap): Update.
3513         (cgraph_decide_inlining_of_small_function): Update; set
3514         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
3515         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3516         cgraph_decide_inlining_incrementally): Update.
3517         * ipa-inline.h (inline_summary): Add inlinable, versionable,
3518         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3519         time, size and estimated_growth parameters.
3520         (estimate_edge_growth): Update.
3521         (initialize_inline_failed): Declare.
3522         * ipa-split.c: Include ipa-inline.h
3523         (execute_split_functions): Update.
3524         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3525         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3526         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3527         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3528         estimated_growth to INT_MIN.
3529         (inline_node_duplication_hook): Likewise.
3530         (dump_inline_summary): Dump new fields.
3531         (compute_inline_parameters): Update.
3532         (estimate_edge_time, estimate_time_after_inlining,
3533         estimate_size_after_inlining, estimate_growth, inline_read_summary,
3534         inline_write_summary):
3535         (initialize_inline_failed): Move here from cgraph.c.
3536         * tree-sra.c: Include ipa-inline.h.
3537         (ipa_sra_preliminary_function_checks): Update.
3538         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3539         ipa-inline.h.
3540
3541 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3542
3543         * config/i386/sse.md (V16): New mode iterator.
3544         (VI1, VI8): Ditto.
3545         (AVXMODEQI, AVXMODEDI): Remove.
3546         (sse2, sse3): New mode attribute.
3547         (mov<mode>): Use V16 mode iterator.
3548         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3549         (push<mode>1): Use V16 mode iterator.
3550         (movmisalign<mode>): Ditto.
3551         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3552         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
3553         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3554         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
3555         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
3556         avx_movdqu<avxmodesuffix>.
3557         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
3558         *avx_movdqu<avxmodesuffix>.
3559         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
3560         avx_lddqu<avxmodesuffix>.
3561         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
3562         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
3563         avx_movnt<AVXMODEDI:mode>.
3564         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
3565         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
3566
3567 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3568
3569         PR target/48629
3570         * haifa-sched.c (prune_ready_list, schedule_block): Use
3571         sched_pressure_p rather than flag_sched_pressure.
3572
3573 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
3574
3575         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3576         cgraph_get_node instead of cgraph_get_create_node.
3577
3578 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
3579
3580         * cfgexpand.c (expand_debug_expr): Use
3581         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3582
3583 2011-04-15  Michael Matz  <matz@suse.de>
3584
3585         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
3586         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
3587         * function.c (gimplify_parameters): Ditto.
3588         * gimplify.c (gimplify_vla_decl): Ditto.
3589
3590         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
3591         (gimple_call_set_alloca_for_var): New inline function.
3592         (gimple_call_alloca_for_var_p): Ditto.
3593         * gimple.c (gimple_build_call_from_tree): Remember
3594         CALL_ALLOCA_FOR_VAR_P state.
3595         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
3596
3597         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3598         calls if they were for VLA objects.
3599
3600 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3601
3602         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3603         of ADR_EXPRs.
3604
3605 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3606
3607         PR middle-end/48601
3608         * tree-emutls.c (lower_emutls_function_body): Call
3609         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
3610         result is non-NULL.
3611
3612 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3613
3614         * c-decl.c (detect_field_duplicates): Call
3615         objc_detect_field_duplicates instead of objc_get_interface_ivars.
3616
3617 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
3618
3619         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
3620         * gimple.c (gimple_asm_clobbers_memory_p): Define.
3621         * ipa-pure-const.c (check_stmt): Call it.
3622         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
3623
3624 2011-04-15  Richard Guenther  <rguenther@suse.de>
3625
3626         PR tree-optimization/48290
3627         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
3628         Properly decide inhibiting propagation based on the valueized
3629         operand.  Do loop-closed SSA form preserving here ...
3630         (init_copy_prop): ... not here.
3631
3632 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
3633
3634         PR target/48612
3635         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3636         (*ieee_smax<mode>3): Likewise.
3637
3638 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3639
3640         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3641         Replace match_operand with match_dup for the third operand in
3642         these expanders.
3643
3644 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3645
3646         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
3647         to track processing of conditionals.  Update all callers.
3648         (try_combine, simplify_if_then_else): Update.
3649
3650 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3651
3652         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3653         -fsched-pressure.
3654
3655 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
3656
3657         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3658         instead of match_operand for operand 3.
3659
3660 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
3661
3662         * recog.h (insn_operand_data): Add an "allows_mem" field.
3663         * genoutput.c (output_operand_data): Initialize it.
3664         * optabs.c (maybe_legitimize_operand_same_code): New function.
3665         (maybe_legitimize_operand): Use it when matching the original
3666         op->value.
3667
3668 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3669
3670         * gimplify.c: Fix issues in comments throughout.
3671         (voidify_wrapper_expr): Fix long line.
3672         (build_stack_save_restore): Likewise.
3673         (gimplify_loop_expr): Likewise.
3674         (gimplify_compound_lval): Likewise.
3675         (gimplify_init_ctor_eval): Likewise.
3676         (gimplify_modify_expr_rhs): Likewise.
3677         (omp_notice_threadprivate_variable): Likewise.
3678
3679 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3680
3681         * cfgexpand.c (expand_call_stmt): Convert the function type to the
3682         original one if this is not a builtin function.
3683
3684 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
3685
3686         PR target/48605
3687         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
3688         offset it as needed based on top 2 bits in operands[3], change
3689         MEM mode to SFmode and mask those 2 bits away from operands[3].
3690
3691 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
3692
3693         * c-parser.c (c_parser_objc_protocol_definition): Updated for
3694         change from objc_declare_protocols() to objc_declare_protocol().
3695
3696 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
3697
3698         * config/i386/sse.md (sse4_1): New mode attribute.
3699         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
3700         avx_blend<ssemodesuffix><avxmodesuffix> and
3701         sse4_1_blend<ssemodesuffix> using VF mode iterator.
3702         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
3703         avx_blendv<ssemodesuffix><avxmodesuffix> and
3704         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
3705         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
3706         avx_dp<ssemodesuffix><avxmodesuffix> and
3707         sse4_1_dp<ssemodesuffix> using VF mode iterator.
3708         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
3709         (sse4_1_packusdw): Merge with *avx_packusdw.
3710         (sse4_1_pblendvb): Merge with *avx_pblendvb.
3711         (sse4_1_pblendw): Merge with *avx_pblendw.
3712         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
3713         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
3714         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
3715         VF mode iterator.
3716         (sse4_1_round<ssescalarmodesuffix>): Merge with
3717         *avx_round<ssescalarmodesuffix>.
3718         (aesenc): Merge with *avx_aesenc.
3719         (aesenclast): Merge with *avx_aesenclast.
3720         (aesdec): Merge with *avx_aesdec.
3721         (aesdeclast): Merge with *avx_aesdeclast.
3722         (pclmulqdq): Merge with *pclmulqdq.
3723         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
3724         New predicate.
3725         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3726
3727 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
3728
3729         PR middle-end/48608
3730         * cfgexpand.c (get_decl_align_unit): Renamed to ...
3731         (align_local_variable): This.  Update DECL_ALIGN.
3732         (add_stack_var): Updated.
3733         (expand_one_stack_var): Likewise.
3734
3735 2011-04-14  Richard Guenther  <rguenther@suse.de>
3736
3737         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
3738         Remove.
3739         (dse_initialize_block_local_data, dse_leave_block,
3740         record_voperand_set, get_stmt_uid): Likewise.
3741         (dse_possible_dead_store_p): Allow any kind of killing stmt.
3742         (dse_optimize_stmt): Remove voperand set handling code.
3743         Simplify and improve to handle any kind of killing stmt.
3744         (dse_record_phi): Remove.
3745         (dse_enter_block): Simplify.
3746         (tree_ssa_dse): Likewise.
3747         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
3748
3749 2011-04-14  Jan Hubicka  <jh@suse.cz>
3750
3751         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
3752         * cgraph.h (struct inline_summary): Move to ipa-inline.h
3753         (cgraph_local_info): Remove inline_summary.
3754         * ipa-cp.c: Include ipa-inline.h.
3755         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3756         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3757         accesor.
3758         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3759         (input_overwrite_node): Do not set inline summary.
3760         (input_node): Do not stream inline summary.
3761         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3762         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3763         growth; we do not have inline parameters computed for that anyway.
3764         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3765         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3766         (inline_summary_t): New type and VECtor.
3767         (debug_inline_summary, dump_inline_summaries): Declare.
3768         (inline_summary): Use VOCtor.
3769         (estimate_edge_growth): Kill hack computing call stmt size directly.
3770         * lto-section-in.c (lto_section_name): Add inline section.
3771         * ipa-inline-analysis.c: Include lto-streamer.h
3772         (node_removal_hook_holder, node_duplication_hook_holder): New holders
3773         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3774         (inline_summary_vec): Define.
3775         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3776         dump_inline_summaries): New functions.
3777         (estimate_function_body_sizes): Properly compute size/time of outgoing
3778         calls.
3779         (compute_inline_parameters): Alloc inline_summary; do not compute
3780         size/time of incomming calls.
3781         (estimate_edge_time): Avoid missing time summary hack.
3782         (inline_read_summary): Read inline summary info.
3783         (inline_write_summary): Write inline summary info.
3784         (inline_free_summary): Free all hooks and inline summary vector.
3785         * lto-streamer.h: Add LTO_section_inline_summary section.
3786         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
3787         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
3788
3789 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3790
3791         * tree-vectorizer.h (vect_strided_store_supported): Add a
3792         HOST_WIDE_INT argument.
3793         (vect_strided_load_supported): Likewise.
3794         (vect_permute_store_chain): Return void.
3795         (vect_transform_strided_load): Likewise.
3796         (vect_permute_load_chain): Delete.
3797         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
3798         count argument.  Check that the count is a power of two.
3799         (vect_strided_load_supported): Likewise.
3800         (vect_permute_store_chain): Return void.  Update after above changes.
3801         Assert that the access is supported.
3802         (vect_permute_load_chain): Likewise.
3803         (vect_transform_strided_load): Return void.
3804         * tree-vect-stmts.c (vectorizable_store): Update calls after
3805         above interface changes.
3806         (vectorizable_load): Likewise.
3807         (vect_analyze_stmt): Don't check for strided powers of two here.
3808
3809 2011-04-14  Richard Guenther  <rguenther@suse.de>
3810
3811         PR tree-optimization/48590
3812         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3813         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3814         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
3815         BUILT_IN_STACK_SAVE.
3816         * tree-ssa-dce.c (propagate_necessity): Handle
3817         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3818
3819 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
3820
3821         * c-parser.c (c_parser_objc_class_declaration): Updated call to
3822         objc_declare_class.
3823
3824 2011-04-14  Richard Guenther  <rguenther@suse.de>
3825
3826         * tree.h (get_object_alignment_1): Declare.
3827         * builtins.c (get_object_alignment_1): Split out worker from ...
3828         (get_object_alignment): ... here.
3829         * fold-const.c (get_pointer_modulus_and_residue): Use
3830         get_object_alignment_1.
3831
3832 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3833
3834         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
3835         type parameter.
3836         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
3837         parameter.  Generalise code to handle arrays as well as vectors.
3838         (vect_setup_realignment): Update accordingly.
3839         * tree-vect-stmts.c (vectorizable_store): Likewise.
3840         (vectorizable_load): Likewise.
3841
3842 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3843
3844         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
3845         within the per-copy loop.
3846
3847 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3848
3849         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
3850         in the dump file.
3851
3852 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
3853
3854         * doc/options.texi (Negative): Explicitly mention that the
3855         Negative chain must be circular.
3856
3857 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
3858
3859         * function.h (block_chainon): Declare.
3860         * function.c (block_chainon): Define.
3861
3862 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
3863             Eric Weddington  <eric.weddington@atmel.com>
3864             Georg-Johann Lay <avr@gjlay.de>
3865
3866         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
3867         New Includes
3868         (avr_init_builtins, avr_expand_builtin,
3869         avr_expand_delay_cycles, avr_expand_unop_builtin,
3870         avr_expand_binop_builtin ): New functions.
3871         (avr_builtin_id): New enum
3872         (struct avr_builtin_description): New struct
3873         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
3874         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3875
3876         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
3877         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
3878         UNSPECV_DELAY_CYCLES): new enumeration values
3879         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
3880         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
3881         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
3882         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
3883         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
3884         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
3885         "fmulsu"): New insns
3886
3887         * config/avr/avr-c.c: fix line endings
3888         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
3889         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
3890         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
3891         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
3892         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
3893
3894         * doc/extend.texi (AVR Built-in Functions): New node
3895         (Target Builtins): Add documentation of AVR
3896         built-in functions.
3897
3898 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
3899
3900         PR target/44643
3901         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
3902         alone. Error if non-const data has attribute progmem.
3903
3904 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3905
3906         * tree.h (struct tree_constructor): Include tree_typed instead of
3907         tree_common.
3908         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
3909         TS_TYPED instead of TS_COMMON.
3910
3911 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
3912
3913         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
3914         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
3915         (sse2_psadbw): Merge with *avx_psadbw.
3916         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
3917         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
3918         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
3919         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
3920         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
3921         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
3922         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
3923         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
3924         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
3925         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
3926         (ssse3_palignrti): Merge with *avx_palignrti.
3927
3928 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3929
3930         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
3931         * tree-ssanames.c (fini_ssanames): VEC_free it.
3932         (make_ssa_name_fn): Update for VECness of free_ssanames.
3933         (release_ssa_name, release_dead_ssa_names): Likewise.
3934         * tree.h (struct tree_ssa_name): Include tree_typed instead of
3935         tree_common.
3936         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
3937         TS_TYPED instead of TS_COMMON.
3938
3939 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
3940
3941         * postreload-gcse.c (gcse_after_reload_main): Add calls to
3942         statistics_counter_event.
3943         * tree-ssa-copyrename.c (stats): Define.
3944         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
3945         statistics_counter_event.
3946         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
3947         (bswap_stats, widen_mul_stats): Define.
3948         (insert_reciprocals): Increment rdivs_inserted.
3949         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
3950         rfuncs_inserted.  Add calls to statistics_counter_event.
3951         (execute_cse_sincos_1): Increment inserted.
3952         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
3953         statistics_counter_event.
3954         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
3955         of bswap_stats.  Add calls to statistics_counter_event.
3956         (convert_mult_to_widen): Increment widen_mults_inserted.
3957         (convert_plusminus_to_widen): Increment maccs_inserted.
3958         (convert_mult_to_fma): Increment fmas_inserted.
3959         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
3960         calls to statistics_counter_event.
3961
3962 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3963
3964         PR rtl-optimization/48455
3965         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
3966         `temp_costs->mem_cost'.
3967
3968 2011-04-13  Jan Hubicka  <jh@suse.cz>
3969
3970         * ipa-inline.h: New file.
3971         * ipa-inline-analysis.c: New file. Broken out of ...
3972         * ipa-inline.c: ... this file; update toplevel comment;
3973         include ipa-inline.h
3974         (inline_summary): Move to ipa-inline.h
3975         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
3976         ipa-inline-analysis.c.
3977         (cgraph_estimate_time_after_inlining): Rename to
3978         estiamte_time_after_inlining; move to ipa-inline-analysis.c
3979         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3980         to estimate_edge_growth.
3981         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3982         rename to estimate_size_after_inlining.
3983         (cgraph_mark_inline_edge): Update for new naming convention.
3984         (cgraph_check_inline_limits): Likewise.
3985         (cgraph_edge_badness): Likewise.
3986         (cgraph_decide_recursive_inlining): Likewise.
3987         (cgraph_decide_inlining_of_small_functions): Likewise.
3988         (cgraph_decide_inlining_incrementally): Likewise.
3989         (cgraph_estimate_growth): Rename to estimate_growth; move to
3990         ipa-inline-analysis.c.
3991         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3992         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3993         (compute_inline_parameters): Likewise.
3994         (compute_inline_parameters_for_current): Likewise.
3995         (pass_inline_parameters): Likewise.
3996         (inline_indirect_intraprocedural_analysis): Likewise.
3997         (analyze_function): Rename to inline_analyze_function; likewise.
3998         (add_new_function): Move to ipa-inline-analysis.c.
3999         (inline_generate_summary): Likewise.
4000         (inline_read_summary): Likewise.
4001         (inline_write_summary): Likewise.
4002         * Makefile.in (ipa-inline-analysis.c): New file.
4003
4004 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4005
4006         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4007         * configure: Regenerate.
4008
4009 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4010
4011         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4012         instead of tree_common.
4013         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4014         Likewise.
4015         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4016         TS_TYPED rather than TS_COMMON.
4017         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4018
4019 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
4020
4021         PR target/45263
4022         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4023         r20 around calls of __tablejump_elpm__
4024
4025 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
4026
4027         PR middle-end/48591
4028         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4029         NULL.
4030         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4031
4032 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
4033
4034         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4035         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4036         (cfi_vec): New typedef.
4037         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4038         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4039         (cie_cfi_vec): New static variable.
4040         (cie_cfi_head): Delete.
4041         (add_cfi): Accept a cfi_vec * as first argument. All callers and
4042         declaration changed. Use vector rather than list operations.
4043         (new_cfi): Don't initialize the dw_cfi_next field.
4044         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4045         rather than list operations.
4046         (lookup_cfa): Use vector rather than list operations.
4047         (output_cfis): New argument upto. Accept a cfi_vec rather than
4048         a dw_cfi_ref list head as argument. All callers changed.
4049         Iterate over the vector using upto as a maximum index.
4050         (output_all_cfis): New static function.
4051         (output_fde): Use vector rather than list operations. Use the
4052         new upto argument for output_cfis rather than manipulating a
4053         list.
4054         (dwarf2out_begin_prologue): Change initializations to match
4055         new struct members.
4056         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4057         from the vector length rather than searching for the end of a list.
4058         Use output_all_cfis.
4059         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4060
4061 2011-04-13  Nick Clifton  <nickc@redhat.com>
4062
4063         * config/rx/rx.md (movmemsi): Do not use this pattern when
4064         volatile pointers are involved.
4065
4066 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4067
4068         * config/i386/sse.md (pinsrbits): Remove.
4069         (sse2_packsswb): Merge with *avx_packsswb.
4070         (sse2_packssdw): Merge with *avx_packssdw.
4071         (sse2_packuswb): Merge with *avx_packuswb.
4072         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4073         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4074         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4075         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4076         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4077         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4078         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4079         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4080         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4081         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4082         (sse2_loadld): Merge with *avx_loadld.
4083         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4084         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4085         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4086         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4087         (vec_concatv2di): Merge with *vec_concatv2di_avx.
4088
4089 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
4090
4091         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4092         calling TREE_CHAIN.
4093         * print-tree.c (print_node): Likewise.
4094         * tree-inline.c (copy_tree_r): Likewise.
4095         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4096         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4097         instead of TS_COMMON.
4098         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4099         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4100         (copy_node_stat): Zero TREE_CHAIN only if necessary.
4101         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4102         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4103         ...and these...
4104         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4105         * tree.h: ...here.
4106         (TREE_CHAIN): Check for a TS_COMMON structure.
4107         (TREE_TYPE): Check for a TS_TYPED structure.
4108
4109 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
4110
4111         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4112         cgraph_get_create_node instead of cgraph_node.
4113
4114 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4115
4116         * c-parser.c (c_parser_initelt): Updated call to
4117         objc_build_message_expr.
4118         (c_parser_postfix_expression): Likewise.
4119
4120 2011-04-12  Kai Tietz  <ktietz@redhat.com>
4121
4122         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4123         MASK_MS_BITFIELD_LAYOUT bit.
4124
4125 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4126
4127         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4128         assert it is always true.
4129         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4130         moves.
4131
4132 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4133
4134         * c-parser.c (c_lex_one_token): Rewritten conditional used when
4135         compiling Objective-C to be more efficient.
4136
4137 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
4138
4139         * opts-common.c (decode_cmdline_options_to_array): Remove variable
4140         argv_copied.
4141
4142 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4143
4144         * recog.h, genoutput.c, optabs.c: Revert last patch.
4145
4146 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4147
4148         PR target/48090
4149         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
4150
4151 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4152
4153         * recog.h (insn_operand_data): Add an "allows_mem" field.
4154         * genoutput.c (output_operand_data): Initialize it.
4155         * optabs.c (maybe_legitimize_operand_same_code): New function.
4156         (maybe_legitimize_operand): Use it when matching the original
4157         op->value.
4158
4159 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4160
4161         * genpreds.c (process_define_predicate): Move most processing
4162         to gensupport.c.  Continue to validate the expression.
4163         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4164         (process_define_predicate): Move processing to gensupport.c.
4165         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4166         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4167         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
4168         argument.
4169         (valid_predicate_name_p): New function, split out from old
4170         genpreds.c:process_define_predicate.
4171         (process_define_predicate): New function, combining code from
4172         old genpreds.c and genrecog.c functions.
4173         (process_rtx): Call it for DEFINE_PREDICATE and
4174         DEFINE_SPECIAL_PREDICATE.
4175
4176 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4177
4178         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4179         size of a '%A' memory reference.
4180         (T_DREG, T_QREG): New neon_builtin_type_bits.
4181         (arm_init_neon_builtins): Assert that the load and store operands
4182         are neon_struct_operands.
4183         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4184         (NEON_ARG_MEMORY): New builtin_arg.
4185         (neon_dereference_pointer): New function.
4186         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4187         Handle NEON_ARG_MEMORY.
4188         (arm_expand_neon_builtin): Update after above interface changes.
4189         Use NEON_ARG_MEMORY for loads and stores.
4190         * config/arm/predicates.md (neon_struct_operand): New predicate.
4191         * config/arm/iterators.md (V_two_elem): Tweak formatting.
4192         (V_three_elem): Use BLKmode for accesses that have no associated mode.
4193         (V_four_elem): Tweak formatting.
4194         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4195         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4196         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4197         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4198         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4199         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4200         (neon_vst4<mode>): Replace pointer operand with a memory operand.
4201         Use %A in the output template.
4202         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4203         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4204         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4205         the width of the memory access.  Remove post-increment.
4206         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4207
4208 2011-04-12  Nick Clifton  <nickc@redhat.com>
4209
4210         * config/v850/v850.c (expand_prologue): Do not use the CALLT
4211         instruction for interrupt handlers if the target is the basic V850
4212         architecture.
4213         (expand_epilogue): Likewise.
4214
4215 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR rtl-optimization/48549
4218         * combine.c (propagate_for_debug): Also stop after BB_END of
4219         this_basic_block.  Process LAST and just stop processing after it.
4220         (combine_instructions): If last_combined_insn has been deleted,
4221         set last_combined_insn to its PREV_INSN.
4222
4223 2011-04-12  Richard Guenther  <rguenther@suse.de>
4224
4225         PR tree-optimization/46076
4226         * gimple.h (struct gimple_statement_call): Add fntype field.
4227         (gimple_call_fntype): Adjust.
4228         (gimple_call_set_fntype): New function.
4229         * gimple.c (gimple_build_call_1): Set the call function type.
4230         * gimplify.c (gimplify_call_expr): Preserve the function
4231         type the frontend used for the call.
4232         (gimplify_modify_expr): Likewise.
4233         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4234         function type.
4235         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4236         function type.
4237         * tree-ssa.c (useless_type_conversion_p): Function pointer
4238         conversions are useless.
4239
4240 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4241
4242         * cgraph.h (cgraph_node): Remove function declaration.
4243         (cgraph_create_node): Declare.
4244         (cgraph_get_create_node): Likewise.
4245         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4246         Updated all callers.
4247         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4248         the decl does not already exist.  Call cgraph_get_create_node instead
4249         of cgraph_node.
4250         (cgraph_get_create_node): New function.
4251         (cgraph_same_body_alias): Update comment.
4252         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4253         assert it does not return NULL.
4254         (cgraph_update_edges_for_call_stmt): Likewise.
4255         (cgraph_clone_edge): Likewise.
4256         (cgraph_create_virtual_clone): Likewise.
4257         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4258         instead of cgraph_node.
4259         (cgraph_add_new_function): Call cgraph_create_node or
4260         cgraph_get_create_node instead of cgraph_node.
4261         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4262         instead of cgraph_node.
4263         (record_eh_tables): Likewise.
4264         (mark_address): Likewise.
4265         (mark_load): Likewise.
4266         (build_cgraph_edges): Call cgraph_get_create_node instead
4267         of cgraph_node.
4268         (rebuild_cgraph_edges): Likewise.
4269         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4270         instead of cgraph_node.
4271         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4272         cgraph_node.
4273         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4274         cgraph_create_node instead of cgraph_node.
4275         * c-decl.c (finish_function): Call cgraph_get_create_node instead
4276         of cgraph_node.
4277         * lto-cgraph.c (input_node): Likewise.
4278         * lto-streamer-in.c (input_function): Likewise.
4279         * varasm.c (mark_decl_referenced): Likewise.
4280         (assemble_alias): Likewise.
4281
4282 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4283
4284         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4285         instead of cgraph_node and assert it does not return NULL.
4286         * lto-streamer-in.c (lto_read_body): Likewise.
4287         * omp-low.c (new_omp_context): Likewise.
4288         (create_task_copyfn): Likewise.
4289         * tree-emutls.c (lower_emutls_function_body): Likewise.
4290         * matrix-reorg.c (transform_allocation_sites): Likewise.
4291
4292 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4293
4294         PR c/48552
4295         * c-typeck.c (build_asm_expr): Error out on attempts to use
4296         void type outputs or inputs for constraints that allow reg or
4297         don't allow memory.
4298
4299 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
4300             Richard Earnshaw  <rearnsha@arm.com>
4301
4302         PR target/48250
4303         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
4304         to use sign-magnitude offsets. Reject unsupported unaligned
4305         cases. Add detailed description in comments.
4306         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
4307         condition from TARGET_32BIT to TARGET_ARM.
4308
4309 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
4310
4311         * tree.h (struct typed_tree): New.
4312         (struct tree_common): Include it instead of tree_base.
4313         (TREE_TYPE): Update for new location of type field.
4314         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
4315         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
4316         (union tree_node): Add typed field.
4317         * treestruct.def (TS_TYPED): New.
4318         * lto-streamer.c (check_handled_ts_structures): Handle it.
4319         * tree.c (MARK_TS_TYPED): New macro.
4320         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
4321
4322 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
4323
4324         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
4325         (force_nonfallthru): Do not alter the loop nest if no basic block
4326         was created.
4327
4328 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4329
4330         * config/i386/sse.md (VI): New mode iterator.
4331         (SSEMODEI): Remove.
4332         (AVX256MODEI): Ditto.
4333         (AVXMODEF4P): Ditto.
4334         (avxvecpsmode): Ditto.
4335         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
4336         (sse2_andnot<mode>3): New expander.
4337         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
4338         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
4339         (<any_logic:code><mode>3): Use VI mode iterator.
4340         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
4341         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
4342         (*andnottf3): Handle AVX three-operand constraints.
4343         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
4344
4345 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4346             Robert Millan  <rmh@gnu.org>
4347
4348         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
4349         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
4350         GNU_USER_DYNAMIC_LINKER64): Define.
4351         (REG_NAME): Don't undefine.
4352         (MD_UNWIND_SUPPORT): Undefine.
4353         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
4354         (REG_NAME): Don't undefine.
4355         (MD_UNWIND_SUPPORT): Undefine.
4356         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
4357
4358 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4359
4360         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
4361         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
4362
4363 2011-04-11  Xinliang David Li  <davidxl@google.com>
4364
4365         * value-profile.c (check_ic_target): New function.
4366         (gimple_ic_transform): Sanity check indirect call target.
4367         * gimple-low.c (gimple_check_call_args): Interface change.
4368         (gimple_check_call_matching_types): New function.
4369         * tree-inline.c (tree_can_inline_p): Call new function.
4370
4371 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
4372
4373         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
4374         tree-pretty-print.h & realmpfr.h.
4375
4376 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4377
4378         PR middle-end/48464
4379         * ira.c (setup_pressure_classes): Fix typo in loop condition.
4380         (setup_allocno_and_important_classes): Ditto.
4381
4382 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4383
4384         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
4385         GNU_USER_DYNAMIC_LINKER.
4386         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
4387         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4388         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
4389         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4390         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4391         GNU_USER_TARGET_OS_CPP_BUILTINS.
4392         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
4393         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4394         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4395         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4396         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
4397         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4398         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4399         GNU_USER_TARGET_OS_CPP_BUILTINS.
4400         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4401         GNU_USER_DYNAMIC_LINKER.
4402         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4403         GNU_USER_TARGET_OS_CPP_BUILTINS.
4404         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
4405         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4406         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
4407         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4408         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
4409         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
4410         GNU_USER_DYNAMIC_LINKER64): Remove.
4411         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
4412         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4413         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4414         GNU_USER_DYNAMIC_LINKER.
4415         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4416         GNU_USER_TARGET_OS_CPP_BUILTINS.
4417         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4418         GNU_USER_TARGET_OS_CPP_BUILTINS.
4419         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
4420         to GNU_USER_TARGET_OS_CPP_BUILTINS.
4421         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4422         GNU_USER_TARGET_OS_CPP_BUILTINS.
4423         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
4424         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
4425         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4426         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
4427         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4428         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4429         GNU_USER_DYNAMIC_LINKER.
4430         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4431         GNU_USER_TARGET_OS_CPP_BUILTINS.
4432         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
4433         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4434         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4435         GNU_USER_DYNAMIC_LINKER.
4436         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4437         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4438         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
4439         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4440         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4441         GNU_USER_DYNAMIC_LINKER.
4442         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
4443         GNU_USER_DYNAMIC_LINKERN32.
4444         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
4445         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
4446         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
4447         GNU_USER_DYNAMIC_LINKER32.
4448         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
4449         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4450         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4451         GNU_USER_DYNAMIC_LINKER.
4452         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4453         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4454         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
4455         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4456         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4457         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
4458         GNU_USER_DYNAMIC_LINKER32.
4459         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4460         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
4461         GNU_USER_DYNAMIC_LINKER.
4462         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
4463         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4464         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4465         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
4466         GNU_USER_DYNAMIC_LINKER64.
4467         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
4468         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4469         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4470         GNU_USER_DYNAMIC_LINKER.
4471         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
4472         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4473         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4474         GNU_USER_DYNAMIC_LINKER.
4475         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
4476         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4477         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4478         GNU_USER_DYNAMIC_LINKER32.
4479         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4480         GNU_USER_DYNAMIC_LINKER64.
4481         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4482         GNU_USER_DYNAMIC_LINKER64.
4483         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
4484         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4485         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
4486         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4487         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4488
4489 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4490
4491         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
4492         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
4493         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
4494         GNU_USER_DYNAMIC_LINKER.
4495         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4496         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
4497         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
4498         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
4499         GNU_USER_DYNAMIC_LINKER64.
4500         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4501         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
4502         GNU_USER_LINK_EMULATION.
4503         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
4504         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
4505         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
4506         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
4507         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
4508         CPP_SPEC, CC1_SPEC): Remove.
4509         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
4510         (GNU_USER_DYNAMIC_LINKER): Define.
4511         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
4512         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
4513         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
4514         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
4515         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
4516         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
4517         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4518         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
4519         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
4520         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
4521         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
4522         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
4523         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
4524         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
4525         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
4526         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4527         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4528         GNU_USER_DYNAMIC_LINKER.
4529         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4530         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4531         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4532         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4533         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4534         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4535         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
4536         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
4537         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
4538         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
4539
4540 2011-04-11  Kai Tietz  <ktietz@redhat.com>
4541
4542         PR target/9601
4543         PR target/11772
4544         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
4545         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
4546         comment.
4547         (ix86_is_msabi_thiscall): Removed.
4548         (ix86_is_type_thiscall): Likewise.
4549         (ix86_get_callcvt): New function.
4550         (ix86_comp_type_attributes): Simplify check.
4551         (ix86_function_regparm): Use ix86_get_callcvt for calling
4552         convention attribute checks.
4553         (ix86_return_pops_args): Likewise.
4554         (ix86_static_chain): Likewise.
4555         (x86_this_parameter): Likewise.
4556         (x86_output_mi_thunk): Likewise.
4557         (ix86_function_type_abi): Optimize check for types without attributes.
4558         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
4559         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
4560         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
4561         by flag-values.
4562         (IX86_BASE_CALLCVT): Helper macro.
4563         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4564         Use ix86_get_callcvt for calling convention attribute checks and avoid
4565         symbol-decoration for stdcall in TARGET_RTD case.
4566         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4567         Likewise.
4568         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
4569         for declaration.
4570
4571 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4572
4573         * config/i386/sse.md (VI_128): New mode iterator.
4574         (VI12_128): Rename from SSEMODE12.
4575         (VI14_128): Rename from SSEMODE14.
4576         (VI124_128): New mode iterator.
4577         (VI24_128): Rename from SSEMODE248.
4578         (VI248_128): Rename from SSEMODE248.
4579         (SSEMODE124C8): Remove.
4580         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4581         (*sse2_<plusminus_insn><mode>3): Merge with
4582         *avx_<plusminus_insn><mode>3.
4583         (*mulv8hi3): Merge with *avx_mulv8hi3.
4584         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
4585         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
4586         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
4587         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
4588         (ashr<mode>3): Merge with *avx_ashr<mode>3.
4589         (lshr<mode>3): Merge with *avx_lshr<mode>3.
4590         (ashl<mode>3): Merge with *avx_ashl<mode>3.
4591         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
4592         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
4593         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4594         (*<smaxmin:code>v8hi3): Ditto.
4595         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
4596         (*<smaxmin:code>v16qi3): Ditto.
4597         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
4598         (*sse2_eq<mode>3): Ditto.
4599         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
4600         (*sse2_gt<mode>3): Ditto.
4601         (vcondv2di): Split out of vcond<mode>.
4602         (vconduv2di): Split out of vcondu<mode>.
4603
4604 2011-04-11  Richard Guenther  <rguenther@suse.de>
4605
4606         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
4607         before calling tree_low_cst.
4608
4609 2011-04-11  Richard Guenther  <rguenther@suse.de>
4610
4611         * stor-layout.c (layout_type): Compute all array index size operations
4612         in the original type.
4613         (initialize_sizetypes): Add comment.
4614         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
4615
4616 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4617
4618         * common.opt (Tbss=, Tdata=, Ttext=): New options.
4619
4620 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4621
4622         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
4623         of cgraph_node, handle NULL return value.
4624         (cgraph_global_info): Likewise.
4625         (cgraph_rtl_info): Likewise.
4626         * tree-inline.c (estimate_num_insns): Likewise.
4627         * gimplify.c (unshare_body): Likewise.
4628         (unvisit_body): Likewise.
4629         (gimplify_body): Likewise.
4630         * predict.c (optimize_function_for_size_p): Likewise.
4631         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
4632         (call_may_clobber_ref_p_1): Likewise.
4633         * varasm.c (function_section_1): Likewise.
4634         (assemble_start_function): Likewise.
4635
4636 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4637
4638         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
4639         of cgraph_node.
4640         * final.c (rest_of_clean_state): Likewise.
4641         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
4642         * passes.c (pass_init_dump_file): Likewise.
4643         (execute_all_ipa_transforms): Likewise.
4644         (function_called_by_processed_nodes_p): Likewise.
4645         * predict.c (maybe_hot_frequency_p): Likewise.
4646         (probably_never_executed_bb_p): Likewise.
4647         (compute_function_frequency): Likewise.
4648         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
4649         (unnest_nesting_tree_1): Likewise.
4650         (lower_nested_functions): Likewise.
4651         * tree-optimize.c (execute_fixup_cfg): Likewise.
4652         (tree_rest_of_compilation): Likewise.
4653         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
4654         * tree-sra.c (ipa_early_sra): Likewise.
4655         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
4656         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
4657         * ipa.c (record_cdtor_fn): Likewise.
4658         * ipa-inline.c (cgraph_early_inlining): Likewise.
4659         (compute_inline_parameters_for_current): Likewise.
4660         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4661         * ipa-pure-const.c (local_pure_const): Likewise.
4662         * ipa-split.c (split_function): Likewise.
4663         (execute_split_functions): Likewise.
4664         * cgraphbuild.c (build_cgraph_edges): Likewise.
4665         (rebuild_cgraph_edges): Likewise.
4666         (cgraph_rebuild_references): Likewise.
4667         (remove_cgraph_callee_edges): Likewise.
4668         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
4669         (verify_cgraph_node): Likewise.
4670         (cgraph_analyze_functions): Likewise.
4671         (cgraph_preserve_function_body_p): Likewise.
4672         (save_inline_function_body): Likewise.
4673         (save_inline_function_body): Likewise.
4674         * tree-inline.c (copy_bb): Likewise.
4675         (optimize_inline_calls): Likewise.
4676
4677 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4678
4679         PR tree-optimization/48195
4680         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
4681         ipa_check_create_edge_args.
4682         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
4683         ipa_check_create_edge_args.
4684         * ipa-inline.c (inline_generate_summary): Do not call
4685         ipa_check_create_node_params and ipa_check_create_edge_args.
4686         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
4687         ipa_check_create_edge_args.
4688
4689 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
4690
4691         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
4692         instead of loop.
4693         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
4694         * function.c (record_hard_reg_sets): Likewise.
4695         * ira.c (compute_regs_asm_clobbered): Likewise.
4696         * sched-deps.c (sched_analyze_1): Likewise.
4697         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
4698
4699 2011-04-09  Xinliang David Li  <davidxl@google.com>
4700
4701         PR tree-optimization/PR48484
4702         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
4703         has_valid_pred lazily
4704
4705 2011-04-09  Duncan Sands  <baldrick@free.fr>
4706
4707         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
4708
4709 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4710
4711         * combine.c (combine_validate_cost): Adjust comments.  Set registered
4712         cost of I0 to zero at the end, if any.
4713
4714 2011-04-08  Xinliang David Li  <davidxl@google.com>
4715
4716         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
4717         to insane profile data.
4718
4719 2011-04-08  Xinliang David Li  <davidxl@google.com>
4720
4721         * ipa-cp.c (ipcp_update_profiling): Correct
4722          negative scale factor due to insane profile data.
4723
4724 2011-04-08  Xinliang David Li  <davidxl@google.com>
4725
4726         * final.c (dump_basic_block_info): New function.
4727         (final): Dump basic block.
4728         (final_scan_insn): Remove old dump.
4729
4730 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4731
4732         PR target/47829
4733         * config.gcc (i386-*-freebsd): Disable unwind table generation for
4734         crtbegin/crtend.
4735
4736 2011-04-08  Michael Matz  <matz@suse.de>
4737
4738         PR middle-end/48389
4739         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
4740         functions.
4741         (rebuild_jump_labels): Call rebuild_jump_labels_1.
4742         * rtl.h (rebuild_jump_labels_chain): Declare.
4743         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
4744         insns inserted on edges.
4745
4746 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
4747
4748         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
4749         * config/arm/arm-arches.def: New.
4750         * config/arm/arm-opts.h: New.
4751         * config/arm/genopt.sh: New.
4752         * config/arm/arm-tables.opt: New (generated).
4753         * config/arm/arm.c (arm_handle_option, arm_target_help,
4754         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
4755         (all_architectures): Get most table contents from arm-arches.def.
4756         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
4757         arm_selected_tune here.
4758         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
4759         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
4760         (march=, mcpu=, mtune=): Use Enum and Var.
4761         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
4762         (arm.o): Update dependencies.
4763
4764 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
4765
4766         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
4767         of header_file.
4768         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
4769         (write_typed_alloc_defns): Likewise.
4770         (main): Calls write_typed_alloc_defns with output_header.
4771
4772 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
4773
4774         PR inline-asm/48435
4775         * ira-color.c (setup_profitable_hard_regs): Add comments.
4776         Don't take prohibited hard regs into account.
4777         (setup_conflict_profitable_regs): Rename to
4778         get_conflict_profitable_regs.
4779         (check_hard_reg_p): Check prohibited hard regs.
4780
4781 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
4782
4783         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
4784         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
4785         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
4786
4787 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4788
4789         PR target/48366
4790         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
4791         move from floating point to shift amount register.
4792         (emit_move_sequence): Remove secondary reload support for floating
4793         point to shift amount amount register copies.
4794         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
4795         amount register copies.
4796         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
4797         register, return false if mode isn't a scalar integer mode.
4798         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
4799
4800 2011-04-08  Richard Guenther  <rguenther@suse.de>
4801
4802         * gimple.c (gimple_call_flags): Remove kludge.
4803
4804 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
4805
4806         * sel-sched.c (sel_region_init): Move call to
4807         sel_setup_region_sched_flags after setup_current_loop_nest.
4808
4809 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
4810
4811         PR rtl-optimization/48272
4812         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
4813         init_insn_reg_pressure_info.  Adjust a caller.
4814         * sched-int.h (init_insn_reg_pressure_info): Declare.
4815         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
4816         when sched-pressure is enabled.
4817
4818 2011-04-08  Richard Guenther  <rguenther@suse.de>
4819
4820         * gimple.c (gimple_set_modified): Do not queue calls to
4821         MODIFIED_NORETURN_CALLS here ...
4822         * tree-ssa-operands.c (update_stmt_operands): ... but here.
4823
4824 2011-04-08  Richard Guenther  <rguenther@suse.de>
4825
4826         PR lto/48467
4827         * toplev.c (lang_dependent_init): Do not open asm_out_file
4828         in WPA mode, nor perform debug machinery initialization.
4829         (finalize): Do not unlink asm_out_file in WPA mode.
4830
4831 2011-04-08  Richard Guenther  <rguenther@suse.de>
4832
4833         * gimple.h (gimple_call_fntype): New function.
4834         (gimple_call_return_type): Use it.
4835         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
4836         * gimple-low.c (gimple_check_call_args): Likewise.
4837         * gimple.c (gimple_call_flags): Likewise.
4838         (gimple_call_arg_flags): Likewise.
4839         (gimple_call_return_flags): Likewise.
4840         * tree-cfg.c (verify_gimple_call): Likewise.
4841         (do_warn_unused_result): Likewise.
4842         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
4843         * value-prof.c (gimple_ic_transform): Fix fndecl check.
4844
4845 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
4846
4847         PR rtl-optimization/48235
4848         * sel-sched.c (code_motion_process_successors): Recompute the last
4849         insn in basic block if control flow changed.
4850         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
4851         Update condition for ilist_remove.
4852
4853 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
4854
4855         PR rtl-optimization/48302
4856         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
4857         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
4858         it to record added preheader blocks.
4859         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
4860         on to sel_add_loop_preheaders.
4861         (sel_region_init): Move call to setup_current_loop_nest after
4862         sel_init_bbs.
4863
4864 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
4865
4866         PR target/48273
4867         * cfgloop.h (loop_has_exit_edges): New helper.
4868         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
4869         non-clonable.
4870         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
4871         that have no exit edges.
4872
4873 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
4874
4875         PR rtl-optimization/48442
4876         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
4877         all callers.  Adjust assert.
4878
4879 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR tree-optimization/48377
4882         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
4883         is_packed to true even for types with smaller TYPE_ALIGN than
4884         TYPE_SIZE.
4885
4886 2011-04-08  Richard Guenther  <rguenther@suse.de>
4887
4888         PR bootstrap/48513
4889         * doc/tm.texi: Re-generate.
4890
4891 2011-04-08  Wei Guozhi  <carrot@google.com>
4892
4893         PR target/47855
4894         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
4895         * config/arm/arm.c (arm_attr_length_push_multi): New function.
4896         * config/arm/arm.md (*push_multi): Change the length computation to
4897         call a C function.
4898
4899 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
4900
4901         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
4902         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
4903         * doc/tm.texi: Regenerate.
4904         * system.h (ASM_OUTPUT_BSS): Poison.
4905         * varasm.c (asm_output_bss): Remove function.
4906         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
4907
4908         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
4909         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
4910         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
4911         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4912         Likewise.
4913         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4914         Likewise.
4915         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4916         Likewise.
4917         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4918
4919 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
4920
4921         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
4922         EnumValue lines.
4923
4924 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
4925
4926         * config/m68k/m68k.c (m68k_handle_option): Don't handle
4927         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
4928         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
4929         OPT_mcpu32.
4930         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4931         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
4932         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
4933         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
4934         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
4935         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
4936         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4937         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
4938         options.  Don't map other m68k options manually.  Don't handle
4939         old-style options as canonical.
4940         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4941         * doc/install.texi (m68k-*-*): Document binutils version requirement.
4942
4943 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4944
4945         * basic-block.h (force_nonfallthru): Move to...
4946         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
4947         (force_nonfallthru): ...here.
4948         * cfghooks.c (force_nonfallthru): New function.
4949         * cfgrtl.c (force_nonfallthru): Rename into...
4950         (rtl_force_nonfallthru): ...this.
4951         (commit_one_edge_insertion): Do not set AUX field.
4952         (commit_edge_insertions): Do not discover new basic blocks.
4953         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
4954         (cfg_layout_rtl_cfg_hooks): Likewise.
4955         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
4956         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
4957         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
4958
4959 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
4960
4961         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4962         Remove macros.
4963
4964 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
4965
4966         * config/i386/sse.md: Update copyright year.
4967         (avxcvtvecmode): Remove.
4968         (sse_movhlps): Merge with *avx_movhlps.
4969         (sse_movlhps): Merge with *avx_movlhps.
4970         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
4971         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
4972         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
4973         (sse_loadhps): Merge with *avx_loadhps.
4974         (sse_storelps): Merge with *avx_storelps.
4975         (sse_loadlps): Merge with *avx_loadlps.
4976         (sse_movss): Merge with *avx_movss.
4977         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
4978         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
4979         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
4980         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
4981         (vec_set<mode>_0): Ditto.
4982         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
4983         (sse4_1_insertps): Merge with *avx_insertps.
4984         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
4985         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
4986         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
4987         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
4988         (sse2_storehpd): Merge with *avx_storehpd.
4989         (sse2_loadhpd): Merge with *avx_loadhpd.
4990         (sse2_loadlpd): Merge with *avx_loadlpd.
4991         (sse2_movsd): Merge with *avx_movsd.
4992         (*vec_concatv2df): Merge with *vec_concatv2df.
4993
4994 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
4995
4996         PR debug/48343
4997         * combine.c (combine_instructions): Add last_combined_insn,
4998         update it if insn is after it, pass it to all try_combine calls.
4999         (try_combine): Add last_combined_insn parameter, pass it instead of
5000         i3 to propagate_for_debug.
5001
5002 2011-04-07  Nick Clifton  <nickc@redhat.com>
5003
5004         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5005         to handle MDR <-> data register transfers.
5006         (movhi_internal): Likewise.
5007
5008 2011-04-07  Alan Modra  <amodra@gmail.com>
5009
5010         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5011         previous stack info.
5012
5013 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5014
5015         PR target/43920
5016         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5017         flow_find_cross_jump.  Swap variables to implement backward replacement.
5018         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5019
5020 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5021
5022         PR target/43920
5023         * cfgcleanup.c (walk_to_nondebug_insn): New function.
5024         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
5025         and bb2.
5026         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5027         src1 or src2.  Redirect edges to the last basic block.  Update
5028         frequency and count on multiple basic blocks in case of fallthru.
5029
5030 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5031
5032         PR target/43920
5033         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5034         function.
5035         (old_insns_match_p): Change return type.  Replace return false/true
5036         with return dir_none/dir_both.  Use can_replace_by.
5037         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
5038         direction from dir_p.  Register replacement direction in dir, last_dir
5039         and afterlast_dir.  Handle new return type of old_insns_match_p using
5040         merge_dir.  Return replacement direction in dir_p.
5041         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5042         return type of old_insns_match_p.
5043         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5044         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5045         flow_find_cross_jump.
5046         * basic-block.h (enum replace_direction): New type.
5047         (flow_find_cross_jump): Add parameter to declaration.
5048
5049 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5050
5051         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5052         (AVXMODEDCVTPS2DQ): Ditto.
5053         (VEC_FLOAT_MODE): Ditto.
5054         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
5055         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5056         (<any_logic:code><mode>3): Use VF mode iterator.
5057         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5058         Use VF mode iterator.
5059         (copysign<mode>3): Use VF mode iterator.
5060         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
5061         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5062         (*<any_logic:code><MODEF:mode>3): Merge with
5063         *avx_<any_logic:code><MODEF:mode>3.
5064         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5065         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5066         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5067         (avx_cvtdq2ps<avxmodesuffix>): Remove.
5068         (sse2_cvtdq2ps): Use %v modifier.
5069         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5070         (avx_cvtps2dq<avxmodesuffix>): Remove.
5071         (sse2_cvtps2dq): Use %v modifier.
5072         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5073         (avx_cvttps2dq<avxmodesuffix>): Remove.
5074         (sse2_cvttps2dq): Use %v modifier.
5075         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5076         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5077         (sse2_cvtsd2siq): Fix insn template.
5078         (sse2_cvtsd2siq_2): Ditto.
5079         (sse2_cvttsd2siq): Ditto.
5080         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5081         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5082
5083 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5084
5085         * gcov-io.c: Use GCC Runtime Library Exception.
5086
5087 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
5088
5089         PR debug/48466
5090         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5091         as base_reg whatever register reg has been eliminated to, instead
5092         of hardcoding STACK_POINTER_REGNUM.
5093
5094 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5095
5096         * doc/tm.texi.in: Document C target hooks as separate from general
5097         target hooks.
5098         * doc/tm.texi: Regenerate.
5099         * genhooks.c (struct hook_desc): Add docname field.
5100         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
5101         docname field.
5102         (hook_array): Include c-target.def.
5103         (emit_documentation): Use docname field in output.
5104         (emit_init_macros): Take docname argument.  Only emit definitions
5105         for hooks matching docname.
5106         (main): Expect additional arguments in all cases.  Pass argument
5107         to emit_init_macros.
5108         * target.def: Move initial macro definitions and comments to
5109         target-hooks-macros.h.
5110         (gcc_targetcm): Move to c-family/c-target.def.
5111         * target.h (targetcm): Move declaration to c-family/c-target.h.
5112         * targhooks.c (default_handle_c_option): Move to
5113         c-family/c-opts.c.
5114         * targhooks.h (default_handle_c_option): Move declaration to
5115         c-family/c-common.h.
5116         * target-hooks-macros.h: New file.
5117         * config.gcc (target_has_targetcm): Define and use to add to
5118         c_target_objs and cxx_target_objs.
5119         * config/default-c.c: New file.
5120         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5121         of target.h and target-def.h.
5122         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5123         (darwin_objc_construct_string, darwin_cfstring_ref_p,
5124         darwin_check_cfstring_format_arg): Make static.
5125         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5126         TARGET_STRING_OBJECT_REF_TYPE_P,
5127         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5128         * config/darwin-protos.h (darwin_objc_construct_string,
5129         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5130         declare.
5131         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5132         TARGET_STRING_OBJECT_REF_TYPE_P,
5133         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
5134         * config/t-darwin (darwin-c.o): Update dependencies.
5135         * system.h (TARGET_HAS_TARGETCM): Poison.
5136         * Makefile.in (TARGET_H): Update.
5137         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5138         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5139         (default-c.o): New target.
5140         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
5141         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
5142         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
5143         c-target.def.
5144         (build/genhooks.o): Update dependencies.
5145
5146 2011-04-06  Richard Guenther  <rguenther@suse.de>
5147
5148         * ipa-inline.c (enum inlining_mode): Remove.
5149         (cgraph_flatten): Use some other token.
5150         (cgraph_edge_early_inlinable_p): New function, split out from ...
5151         (cgraph_perform_always_inlining): New function, split out from ...
5152         (cgraph_decide_inlining_incrementally): ... here.
5153         (cgraph_mark_inline_edge): Adjust.
5154         (cgraph_early_inlining): Re-structure.
5155         (pass_early_inline): Require SSA form.
5156
5157 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
5158             Julian Brown  <julian@codesourcery.com>
5159             Mark Shinwell  <shinwell@codesourcery.com>
5160
5161         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5162         LO_REGS only for Thumb-1.
5163         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5164         be used in short instructions when optimising for size on Thumb-2.
5165
5166 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5167
5168         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5169         associated with user returns to be preserved.
5170
5171 2011-04-06  Tristan Gingold  <gingold@adacore.com>
5172
5173         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5174         symbol_queue_size, DBXOUT_DECR_NESTING,
5175         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5176         if XCOFF_DEBUGGING_INFO.
5177
5178 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5179
5180         * config/i386/i386.md (attribute isa): New.
5181         (attribute enabled): New.
5182         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5183         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5184         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5185         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5186         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5187         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5188         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5189         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5190
5191         * config/i386/sse.md (VF): New mode iterator.
5192         (VF1): Ditto.
5193         (VF2): Ditto.
5194         (VF_128): Ditto.
5195         (SSEMODEF4): Remove.
5196         (attribute sse): Handle V8SF and V4DF modes.
5197         (<absneg:code><mode>2): Use VF mode iterator.
5198         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
5199         mode iterator.
5200         (<plusminus_insn><mode>3): Use VF mode iterator.
5201         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5202         Use VF mode iterator.
5203         (<sse>_vm<plusminus_insn><mode>3): Merge with
5204         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
5205         (mul<mode>3): Use VF mode iterator.
5206         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
5207         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
5208         mode iterator.
5209         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5210         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5211         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
5212         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
5213         mode iterator.
5214         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5215         Use VF1 mode iterator.
5216         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5217         (sqrt<VF2:mode>2): New expander.
5218         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5219         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5220         and sqrtv2df2.  Use VF mode iterator.
5221         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
5222         mode iterator.
5223         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5224         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5225         Use VF1 mode iterator.
5226         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5227         (<smaxmin:code><mode>3): Use VF mode iterator.
5228         (*<smaxmin:code><mode>3_finite): Merge with
5229         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
5230         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5231         (<sse>_vm<smaxmin:code><mode>2): Merge with
5232         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
5233         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
5234         mode iterator.
5235         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
5236         mode iterator.
5237         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5238         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5239         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5240         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5241         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
5242         VF mode iterator.
5243         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5244         Use VF_128 mode iterator.
5245         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
5246         mode iterator.
5247         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
5248         VF_128 mode iterator.
5249         (vcond<mode>): Use VF mode iterator.
5250         * config/i386/predicates.md (sse_comparison_operator): Merge with
5251         avx_comparison_float_operator.  Do not declare as special_predicate.
5252         * config/i386/i386.c (struct builtin_description): Update for renamed
5253         compare patterns.
5254         (ix86_expand_args_builtin): Ditto.
5255         (ix86_expand_sse_compare_mask): Ditto.
5256
5257 2011-04-06  Richard Guenther  <rguenther@suse.de>
5258
5259         * tree-inline.c (estimate_num_insns): For calls simply account
5260         for all passed arguments and a used return value.
5261
5262 2011-04-06  Richard Guenther  <rguenther@suse.de>
5263
5264         PR tree-optimization/47663
5265         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5266         call_stmt_time fields.
5267         (cgraph_edge_inlinable_p): Declare.
5268         (cgraph_edge_recursive_p): New inline function.
5269         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5270         (cgraph_clone_edge): Copy it.
5271         * ipa-inline.c (cgraph_estimate_edge_time): New function.
5272         Account for call stmt time.
5273         (cgraph_estimate_time_after_inlining): Take edge argument.
5274         (cgraph_estimate_edge_growth): Account call stmt size.
5275         (cgraph_estimate_size_after_inlining): Take edge argument.
5276         (cgraph_mark_inline_edge): Adjust.
5277         (cgraph_check_inline_limits): Likewise.
5278         (cgraph_recursive_inlining_p): Remove.
5279         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5280         (cgraph_decide_recursive_inlining): Take edge argument and
5281         adjust.
5282         (cgraph_decide_inlining_of_small_functions): Do not avoid
5283         diags for recursive inlining here.
5284         (cgraph_flatten): Adjust.
5285         (cgraph_decide_inlining_incrementally): Likewise.
5286         (estimate_function_body_sizes): Remove call cost handling.
5287         (compute_inline_parameters): Initialize caller edge call costs.
5288         (cgraph_estimate_edge_growth): New function.
5289         (cgraph_estimate_growth): Use it.
5290         (cgraph_edge_badness): Likewise.
5291         (cgraph_check_inline_limits): Take an edge argument.
5292         (cgraph_decide_inlining_of_small_functions): Adjust.
5293         (cgraph_decide_inlining): Likewise.
5294         * tree-inline.c (estimate_num_insns): Only account for call
5295         return value if it is used.
5296         (expand_call_inline): Avoid diagnostics on recursive inline
5297         functions here.
5298         * lto-cgraph.c (lto_output_edge): Output edge call costs.
5299         (input_edge): Input edge call costs.
5300
5301 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5302
5303         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
5304
5305 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5306
5307         * doc/invoke.texi (Spec Files): Fix typo.
5308
5309 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5310
5311         * profile.c (branch_prob): Move declaration of local variable.  Remove
5312         obsolete ??? comment.  Expand the location explicitly instead of using
5313         the LOCATION_FILE and LOCATION_LINE macros.
5314
5315 2011-04-06  Wei Guozhi  <carrot@google.com>
5316
5317         PR target/47855
5318         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
5319         (arm_cond_branch): Likewise.
5320         (arm_cond_branch_reversed): Likewise.
5321         (arm_jump): Likewise.
5322         (push_multi): Likewise.
5323         * config/arm/constraints.md (Py): New constraint.
5324
5325 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5326
5327         PR bootstrap/48471
5328         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
5329         Move these...
5330         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
5331         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
5332         #ifdef DBX_DEBUGGING_INFO.
5333
5334 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
5335
5336         PR bootstrap/48403
5337         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
5338         if old and new states differ.
5339
5340 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5341
5342         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
5343         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
5344         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5345         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
5346         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
5347         mcfv4e): Use Alias.
5348         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
5349         ColdFire options to -mcpu= options.
5350
5351 2011-04-05  Jeff Law  <law@redhat.com>
5352
5353         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
5354         check if BB is a successor of LOOP->header and return
5355         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
5356
5357 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5358
5359         * cprop.c (struct reg_use): Remove.
5360         (reg_use_table): Make an array of RTX.
5361         (find_used_regs, constprop_register, local_cprop_pass,
5362         bypass_block): Simplify users of reg_use_table.
5363         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
5364         on one of the uses found by find_used_regs.
5365
5366 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5367
5368         PR bootstrap/48469
5369         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
5370         declaration.
5371
5372 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5373
5374         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
5375         as an rtx.
5376         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
5377
5378 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5379
5380         PR middle-end/48441
5381         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
5382
5383 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5384
5385         * combine.c: Include obstack.h.
5386         (struct insn_link): Define.
5387         (uid_log_links): Adjust type.
5388         (FOR_EACH_LOG_LINK): New macro.
5389         (insn_link_obstack): Declare.
5390         (alloc_insn_link): Define.
5391         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
5392         type of link variables.
5393         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
5394         (try_combine, record_promoted_values, distribute_notes): Likewise.
5395         (distribute_links): Likewise.  Tweak prototype.
5396         (clear_log_links): Delete.
5397         (adjust_for_new_dest): Call alloc_insn_link.
5398         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
5399
5400 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5401
5402         * gcse.c (modify_mem_list): Convert to an array of VECs.
5403         (canon_modify_mem_list, compute_transp): Tweak formatting.
5404         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
5405         (load_killed_in_block_p): Likewise.
5406         (record_last_mem_set_info): Likewise.
5407         (clear_modify_mem_tables): Likewise.
5408
5409 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5410
5411         PR middle-end/48461
5412         * function.c (emit_use_return_register_into_block): Only define if
5413         HAVE_return.
5414
5415 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
5416
5417         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
5418
5419 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5420
5421         * config/rx/rx-opts.h: New.
5422         * config/rx/rx.c (rx_cpu_type): Remove.
5423         (rx_handle_option): Don't assert that global structures are in
5424         use.  Access variables via opts pointer.  Defer most handling of
5425         OPT_mint_register_.  Use error_at.
5426         (rx_option_override): Handle deferred OPT_mint_register_ here.
5427         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
5428         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
5429         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
5430         (rx_cpu_types): New Enum and EnumValue entries.
5431         (mint-register=): Use Defer and use Var accordingly.
5432
5433 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5434
5435         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
5436         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
5437         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
5438         Move these...
5439         (debug_free_queue, debug_nesting, symbol_queue_index):
5440         ...and these...
5441         * dbxout.c: ...to here.  Make static.
5442
5443 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5444
5445         * gcse.c (modify_pair): Define.  Define a VEC of it.
5446         (canon_modify_mem_list): Convert to an array of VECs.
5447         (free_insn_expr_list_list): Delete.
5448         (clear_modify_mem_tables): Call VEC_free instead.
5449         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
5450         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
5451         (canon_list_insert, compute_transp): Likewise.
5452
5453 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5454
5455         PR target/43920
5456         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
5457         for size.
5458
5459 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5460
5461         PR target/43920
5462         * function.c (emit_use_return_register_into_block): New function.
5463         (thread_prologue_and_epilogue_insns): Use
5464         emit_use_return_register_into_block.
5465
5466 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5467
5468         PR target/43920
5469         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
5470         insn.
5471
5472 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5473
5474         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
5475
5476 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
5477
5478         * config/arm/arm.md (define_constants for unspec): Replace with
5479         define_c_enum.
5480         (define_constants for unspecv): Replace with define_c_enum.
5481         * config/arm/neon.md (define_constants for unspec): Replace with
5482         define_c_enum.
5483
5484 2011-04-04  Richard Henderson  <rth@redhat.com>
5485
5486         PR bootstrap/48400
5487         * dwarf2out.c (output_line_info): Always emit line info from
5488         at least one section.
5489         (dwarf2out_init): Create text_section_line_info here ...
5490         (set_cur_line_info_table): ... not here.
5491
5492 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
5493
5494         PR target/48380
5495         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
5496         not called.
5497
5498         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
5499
5500 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
5501
5502         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
5503         (expr_equiv_p): Remove.
5504         (insert_set_in_table): Look at <dest, src> pair instead of expr.
5505         (hash_scan_set): Update call to insert_set_in_table.
5506         (dump_hash_table): Dump <dest, src> pair.
5507         (lookup_set): Simplify.  Lookup <dest, src> pair.
5508         (compute_transp): Remove, fold heavily simplified code into...
5509         (compute_local_properties): ...here.  Expect COMP and TRANSP
5510         unconditionally.
5511         (find_avail_set): Take set directly from struct expr.
5512         (find_bypass-set): Likewise.
5513         (bypass_block): Likewise.
5514         (cprop_insn): Likewise.  Remove redundant INSN_P test.
5515
5516         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
5517         checks on form of COND from find_implicit_sets to here.
5518         (find_implicit_sets): Cleanup control flow. Split critical edges
5519         if it exposes implicit sets.  Allocate/resize implicit_sets as
5520         necessary.
5521         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
5522         changed something.  Run df_analyze after find_implicit_sets if any
5523         edges were split.  Do not allocate implicit_sets here.
5524
5525         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
5526         (gcse_obstack): Renamed to cprop_obstack.
5527         (GNEW, GNEWVEC, GNEWVAR): Remove.
5528         (gmalloc): Remove.
5529         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
5530         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
5531         (gcse_alloc): Likewise, and rename to cprop_alloc.
5532         (alloc_gcse_men, free_gcse_mem): Remove.
5533         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
5534         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
5535         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
5536
5537         * cprop.c (oprs_not_set_p): Remove.
5538         (mark_set, mark_clobber): Remove.
5539         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
5540         (reg_not_set_p): New function.
5541         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
5542         (cprop_insn): Likewise.
5543         (cprop_jump): Use FOR_EACH_EDGE.
5544
5545 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
5546
5547         PR bootstrap/48403
5548         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
5549         (rank_for_schedule): Use scheduled_insns vector instead of
5550         last_scheduled_insn.
5551         (ok_for_early_queue_removal): Likewise.
5552         (queue_to_ready): Search forward in nonscheduled_insns_begin if
5553         we have a dbg_cnt.
5554         (choose_ready): Likewise.
5555         (commit_schedule): Use VEC_iterate.
5556         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
5557         a dbg_cnt, use it and ensure the first insn is in the ready list.
5558         (haifa_sched_init): Allocate scheduled_insns.
5559         (sched_extend_ready_list): Don't allocate it; reserve space.
5560         (haifa_sched_finish): Free it.
5561
5562 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
5563
5564         * optc-gen.awk: Always remove type from Variable entry before
5565         recording in var_seen.
5566
5567 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
5568
5569         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
5570         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
5571         call to tidy_fallthru_edges.
5572
5573 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
5574
5575         * doc/options.texi (ToLower): Document.
5576         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
5577         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
5578         * opts.h (cl_option): Add cl_tolower field.
5579         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
5580         arguments with lowercase strings.
5581         * config/rx/rx.opt (mcpu=): Add ToLower.
5582         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
5583         argument.
5584
5585 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
5586
5587         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
5588
5589 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
5590
5591         * config/vax/vax.c: Include reload.h.
5592
5593 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
5594
5595         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
5596         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5597         (sparc_preferred_reload_class): New function.
5598
5599 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
5600
5601         PR debug/48401
5602         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5603         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
5604
5605 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
5606
5607         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
5608         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
5609
5610 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
5611
5612         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
5613         (ASM_OUTPUT_ALIGNED_BSS): Define.
5614
5615 2011-04-03  Michael Matz  <matz@suse.de>
5616
5617         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
5618         and next_slot members.
5619         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
5620         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
5621         (lto_streamer_cache_append): Declare.
5622         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
5623         unsigned index, remove offset parameter, ensure that we append
5624         or update existing entries.
5625         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
5626         parameter, update next_slot for append.
5627         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
5628         parameter.
5629         (lto_streamer_cache_insert_at): Likewise.
5630         (lto_streamer_cache_append): New function.
5631         (lto_streamer_cache_lookup): Use unsigned index.
5632         (lto_streamer_cache_get): Likewise.
5633         (lto_record_common_node): Don't test tree_node_can_be_shared.
5634         (preload_common_node): Adjust call to lto_streamer_cache_insert.
5635         (lto_streamer_cache_delete): Don't free offsets member.
5636         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
5637         (lto_output_string_with_length): Use lto_output_data_stream.
5638         (lto_output_tree_header): Remove ix parameter, don't write it.
5639         (lto_output_builtin_tree): Likewise.
5640         (lto_write_tree): Adjust callers to above, don't track and write
5641         offset, write unsigned index.
5642         (output_unreferenced_globals): Don't emit all global vars.
5643         (write_global_references): Use unsigned indices.
5644         (lto_output_decl_state_refs): Likewise.
5645         (write_symbol): Likewise.
5646         * lto-streamer-in.c (lto_input_chain): Move earlier.
5647         (input_function): Use unsigned index.
5648         (input_alias_pairs): Don't read and then ignore all global vars.
5649         (lto_materialize_tree): Remove ix_p parameter, don't read index,
5650         don't pass it back, use lto_streamer_cache_append.
5651         (lto_register_var_decl_in_symtab): Use unsigned index.
5652         (lto_register_function_decl_in_symtab): Likewise.
5653         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
5654         index.
5655         (lto_get_builtin_tree): Don't read index, use
5656         lto_streamer_cache_append.
5657         (lto_read_tree): Adjust call to lto_materialize_tree.
5658
5659         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
5660         don't use function calls in arguments to MIN.
5661
5662         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
5663         twice.
5664
5665         * gimple.c (gimple_type_leader_entry): Mark deletable.
5666
5667 2011-04-03  Alan Modra  <amodra@gmail.com>
5668
5669         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
5670
5671 2011-04-03  Michael Matz  <matz@suse.de>
5672
5673         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
5674         an integer.
5675         * tree.h (tree_decl_non_common.vindex): Adjust comment.
5676
5677 2011-04-03  Michael Matz  <matz@suse.de>
5678
5679         * cgraphbuild.c (record_reference): Canonicalize constructor values.
5680         * gimple-fold.c (canonicalize_constructor_val): Accept being called
5681         without function context.
5682         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
5683         current_function_decl and cfun.
5684
5685 2011-04-03  Michael Matz  <matz@suse.de>
5686
5687         * tree.c (decl_init_priority_insert): Don't create entry for
5688         default priority.
5689         (decl_fini_priority_insert): Ditto.
5690         (fields_compatible_p, find_compatible_field): Remove.
5691         * tree.h (fields_compatible_p, find_compatible_field): Remove.
5692         * gimple.c (gimple_compare_field_offset): Adjust block comment.
5693
5694 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
5695
5696         * combine.c (try_combine): Remove useless local variable.
5697
5698 2011-04-03  Richard Guenther  <rguenther@suse.de>
5699             Ira Rosen  <ira.rosen@linaro.org>
5700
5701         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
5702         non-variable offsets and compare the remaining bases of the two
5703         accesses instead of looking for exact same data-ref.
5704
5705 2011-04-02  Kai Tietz  <ktietz@redhat.com>
5706
5707         PR target/48416
5708         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
5709
5710         * i386.c (ix86_is_msabi_thiscall): New helper function.
5711         (ix86_is_type_thiscall): New helper function.
5712         (ix86_comp_type_attributes): Handle thiscall for method-functions
5713         special.
5714         (init_cumulative_args): Likewise.
5715         (find_drap_reg): Likewise.
5716         (ix86_static_chain): Likewise.
5717         (x86_this_parameter): Likewise.
5718         (x86_output_mi_thunk): Likewise.
5719
5720 2011-04-01  Olivier Hainque  <hainque@adacore.com>
5721             Nicolas Setton  <setton@adacore.com>
5722             Eric Botcazou  <ebotcazou@adacore.com>
5723
5724         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
5725         (add_gnat_descriptive_type_attribute): New function.
5726         (gen_array_type_die): Call it.
5727         (gen_enumeration_type_die): Likewise.
5728         (gen_struct_or_union_type_die): Likewise.
5729         (modified_type_die): Likewise.
5730         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
5731         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
5732         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
5733
5734 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
5735
5736         PR bootstrap/48148
5737         * dwarf2out.c (resolve_addr): Don't call force_decl_die
5738         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
5739
5740         Revert:
5741         2011-03-17  Richard Guenther  <rguenther@suse.de>
5742
5743         PR bootstrap/48148
5744         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5745         origin for decls in other ltrans units.
5746         (input_varpool_node): Likewise.
5747
5748 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
5749
5750         PR middle-end/48335
5751         * expr.c (expand_assignment): Handle all possibilities
5752         if TO_RTX is CONCAT.
5753         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
5754         (store_split_bit_field): If SUBREG_REG (op0) or
5755         op0 itself has smaller mode than word, return it
5756         for offset 0 and const0_rtx for out-of-bounds stores.
5757         If word is const0_rtx, skip it.
5758
5759 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
5760
5761         * config/h8300/h8300.c (print_operand_address): Rename to...
5762         (h8300_print_operand_address): ...this. Make static. Adjust comments.
5763         Call h8300_print_operand and h8300_print_operand_address instead of
5764         print_operand and print_operand_address. Declare.
5765         (print_operand): Renake to...
5766         (h8300_print_operand): ...this. Make static. Adjust comments.
5767         Call h8300_print_operand instead of print_operand. Declare.
5768         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
5769         (h8300_register_move_cost): Likewise.
5770         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
5771         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
5772         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
5773         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
5774         * config/h8300/h8300-protos.h (print_operand): Delete.
5775         (print_operand_address): Delete.
5776
5777 2011-04-01  Richard Henderson  <rth@redhat.com>
5778
5779         PR 48400
5780         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
5781         in strict mode before dwarf4.  Re-order tests to early out
5782         before switching sections.
5783
5784 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
5785
5786         * config/h8300/constraints.md: New file.
5787         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
5788         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
5789         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
5790         * config/h8300/predicates.md (bit_operand): Likewise.
5791         (incdec_operand): Use satisfies_constraint_M and
5792         satisfies_constraint_O.  Don't use C code block.
5793         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
5794         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
5795         (compute_mov_length): Use satisfies_constraint_G.
5796         (fix_bit_operand): Use satisfies_constraint_U.
5797         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
5798         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
5799         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
5800         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
5801         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
5802         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
5803         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5804         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
5805         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
5806         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
5807         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
5808         (EXTRA_MEMORY_CONSTRAINT): Delete.
5809
5810 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
5811             Michael Meissner  <meissner@linux.vnet.ibm.com>
5812
5813         PR target/48262
5814         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
5815         operands, as per the specifications.
5816
5817         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
5818         (vec_extract_evenv4sf): Ditto.
5819         (vec_extract_evenv8hi): Ditto.
5820         (vec_extract_evenv16qi): Ditto.
5821         (vec_extract_oddv4si): Ditto.
5822
5823 2011-03-31  Mark Wielaard  <mjw@redhat.com>
5824
5825         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
5826         high_pc attribute if the CU has no associated code. Only output
5827         DW_AT_entry_pc for CU if not generating strict dwarf and
5828         dwarf_version < 4.
5829
5830 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
5831
5832         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
5833         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
5834         out of ...
5835         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
5836         * final.c (final_start_function): Call the new function rather
5837         than using a NULL argument for dwarf2out_frame_debug.
5838
5839         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
5840         that contains the prologue.
5841
5842         * haifa-sched.c (queue_insn): New arg REASON.  All callers
5843         changed.  Print it in debugging output.
5844
5845         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
5846
5847         * sched-ebb.c (begin_schedule_ready): Remove second argument.
5848         Split most of the code into...
5849         (begin_move_insn): ... here.  New function.
5850         (ebb_sched_info): Add a pointer to it.
5851         * haifa-sched.c (scheduled_insns): New static variable.
5852         (sched_extend_ready_list): Allocate it.
5853         (schedule_block): Use it to record the order of scheduled insns.
5854         Perform RTL changes to move insns only after all scheduling
5855         decisions have been made.
5856         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
5857         begin_move_insn field.
5858         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5859         * sched-int.h (struct haifa_sched_info): Remove second argument
5860         from begin_schedule_ready hook.  Add new member begin_move_insn.
5861         * sched-rgn.c (begin_schedule_ready): Remove second argument.
5862         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
5863
5864         * haifa-sched.c (prune_ready_list): New function, broken out of
5865         schedule_block.
5866         (schedule_block): Use it.
5867
5868 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5869
5870         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
5871
5872 2011-04-01  Kai Tietz  <ktietz@redhat.com>
5873
5874         * config.gcc (*-*-mingw*): Allow as option the
5875         posix threading model.
5876         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
5877         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
5878         definition.
5879         (CPP_SPEC): Add pthread/no-pthread handling.
5880         (LIB_SPEC): Likewise.
5881         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
5882         (LIB_SPEC): Likewise.
5883         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
5884         flag to pass -pthread option for shared libgcc build.
5885         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
5886         for shared libgcc build.
5887         * config/i386/t-mingw-pthread: New file.
5888         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
5889         New define to enable use of library pthread by default.
5890         * config/i386/mingw.opt (pthread): New driver option.
5891         (no-pthread): New driver option.
5892         * config/i386/cygming.opt: Make sure trailing empty line is retained.
5893         * config/i386/mingw-w64.opt: Likewise.
5894
5895 2011-04-01  Gary Funck <gary@intrepid.com>
5896
5897         * c-decl.c (grokdeclarator): Fix formatting.
5898
5899 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
5900
5901         * expr.c (emit_block_move_via_movmem): Use n_generator_args
5902         instead of n_operands.
5903         (set_storage_via_setmem): Likewise.
5904         * optabs.c (maybe_gen_insn): Likewise.
5905         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
5906         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
5907         (mips_expand_builtin_direct): Likewise.
5908         * config/spu/spu.c (expand_builtin_args): Likewise.
5909
5910 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
5911
5912         * recog.h (insn_data_d): Add n_generator_args.
5913         * genoutput.c (data): Likewise.
5914         (output_insn_data): Print it.
5915         (max_opno, num_dups): Delete.
5916         (scan_operands): Just fill in "d->operand[...]".
5917         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
5918
5919 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
5920
5921         * gensupport.h (pattern_stats): New structure.
5922         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
5923         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
5924         (max_operand_1, max_operand_vec): Delete.
5925         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
5926
5927 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
5928
5929         * emit-rtl.c (emit_pattern_after_setloc): New function.
5930         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
5931         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
5932         (emit_pattern_after): New function.
5933         (emit_insn_after, emit_jump_insn_after): Call it.
5934         (emit_call_insn_after, emit_debug_insn_after): Likewise.
5935         (emit_pattern_before_setloc): New function.
5936         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
5937         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
5938         Likewise.
5939         (emit_pattern_before): New function.
5940         (emit_insn_before, emit_jump_insn_before): Call it.
5941         (emit_call_insn_before, emit_debug_insn_before): Likewise.
5942
5943 2011-03-31  Richard Henderson  <rth@redhat.com>
5944
5945         * dwarf2out.c (dw_separate_line_info_ref): Remove.
5946         (dw_separate_line_info_entry): Remove.
5947         (enum dw_line_info_opcode): New.
5948         (dw_line_info_entry): Use it.
5949         (dw_line_info_table, dw_line_info_table_p): New.
5950         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
5951         (line_info_table, line_info_label_num): Remove.
5952         (line_info_table_in_use): Remove.
5953         (separate_line_info_table): Remove.
5954         (separate_line_info_table_allocated): Remove.
5955         (separate_line_info_table_in_use): Remove.
5956         (LINE_INFO_TABLE_INCREMENT): Remove.
5957         (line_info_label_num): New.
5958         (cur_line_info_table): New.
5959         (text_section_line_info, cold_text_section_line_info): New.
5960         (separate_line_info): New.
5961         (SEPARATE_LINE_CODE_LABEL): Remove.
5962         (print_dwarf_line_table): Remove.
5963         (debug_dwarf): Don't dump it.
5964         (output_one_line_info_table): New.
5965         (output_line_info): Use it.
5966         (new_line_info_table): New.
5967         (set_cur_line_info_table): New.
5968         (dwarf2out_switch_text_section): Use it.
5969         (dwarf2out_begin_function): Likewise.
5970         (push_dw_line_info_entry): New.
5971         (dwarf2out_source_line): Rewrite for new line info tables.
5972         (dwarf2out_init): Remove dead initailizations.
5973
5974 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
5975
5976         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
5977         various flags.
5978         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
5979         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
5980         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
5981         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
5982         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
5983         * opt-functions.awk (flag_init, switch_bit_fields): New.
5984         (switch_flags): Don't handle flags moved to bit-fields.  Don't
5985         generate CL_MISSING_OK or CL_SAVE.
5986         * optc-gen.awk: Update to generate bit-field output as well as
5987         flags field.
5988         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
5989         bit-field instead of CL_REJECT_DRIVER flag.
5990         * opts-common.c (generate_canonical_option,
5991         decode_cmdline_option): Use bit-fields instead of CL_* flags.
5992         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
5993         instead of CL_REJECT_NEGATIVE flag.
5994         * toplev.c (print_switch_values): Use cl_report bit-field instead
5995         of CL_REPORT flag.
5996
5997 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
5998
5999         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6000         a zero minimum index only if it is redundant.
6001
6002 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6003
6004         PR rtl-optimization/48381
6005         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6006         instead of ira_class_hard_reg_index for calculating conflicting
6007         hard registers.
6008
6009 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6010
6011         * cprop.c: Clean up hash table building.
6012         (reg_avail_info): Remove.
6013         (oprs_available_p): Remove.
6014         (record_last_reg_set_info): Remove.
6015         (record_last_set_info): Remove.
6016         (reg_available_p): New function.
6017         (gcse_constant_p): Do not treat unfolded conditions as constants.
6018         (make_set_regs_unavailable): New function.
6019         (hash_scan_set): Simplify with new reg_available_p.
6020         (compute_hash_table_work): Traverse insns stream only once.
6021         Do not compute reg_avail_info. Traverse insns in reverse order.
6022         Record implicit sets after recording explicit sets from the block.
6023
6024 2011-03-31  Michael Matz  <matz@suse.de>
6025
6026         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
6027
6028 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
6029
6030         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6031         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6032         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6033         (h8300_mode_dependent_address_p): New function.
6034         (h8300_get_index): Make static.
6035
6036 2011-03-31  Jeff Law  <law@redhat.com>
6037
6038         * reload1.c (elimination_effects): Fix typo in recent change.
6039
6040         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
6041         typo potentially leading to null pointer dereference.
6042
6043         * caller-save.c (new_saved_hard_reg): Eliminate return value.
6044         (setup_save_areas): Corresponding changes to avoid useless
6045         assignments.
6046
6047         * jump.c (reversed_comparison_code_parts): Avoid successive return
6048         statements when REVERSE_CONDITION is defined.
6049
6050         * expr.c (expand_assignment): Avoid useless assignments.
6051         (expand_expr_real_1): Likewise.
6052         (expand_expr_real_2): Avoid useless statements.
6053
6054         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6055
6056         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6057
6058         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6059         statements.
6060
6061         * stmt.c (expand_expr_stmt): Avoid useless assignment.
6062
6063 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6064
6065         PR target/47109
6066         * doc/tm.texi.in (TARGET_VERSION): Remove.
6067         * doc/tm.texi: Regenerate.
6068         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6069         * collect2.c (main): Don't use TARGET_VERSION.
6070         * mips-tdump.c (main): Don't use TARGET_VERSION.
6071         * mips-tfile.c (main): Don't use TARGET_VERSION.
6072         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
6073         * config/rs6000/vxworksae.h: Remove.
6074         * config/alpha/alpha.h (TARGET_VERSION): Remove.
6075         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6076         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6077         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6078         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6079         * config/arm/arm.h (TARGET_VERSION): Remove.
6080         * config/arm/coff.h (TARGET_VERSION): Remove.
6081         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6082         * config/arm/elf.h (TARGET_VERSION): Remove.
6083         * config/arm/freebsd.h (TARGET_VERSION): Remove.
6084         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6085         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6086         * config/arm/pe.h (TARGET_VERSION): Remove.
6087         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6088         * config/arm/semi.h (TARGET_VERSION): Remove.
6089         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6090         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6091         * config/arm/vxworks.h (TARGET_VERSION): Remove.
6092         * config/avr/avr.h (TARGET_VERSION): Remove.
6093         * config/bfin/bfin.h (TARGET_VERSION): Remove.
6094         * config/fr30/fr30.h (TARGET_VERSION): Remove.
6095         * config/frv/frv.h (TARGET_VERSION): Remove.
6096         * config/h8300/h8300.h (TARGET_VERSION): Remove.
6097         * config/i386/cygwin.h (TARGET_VERSION): Remove.
6098         * config/i386/darwin.h (TARGET_VERSION): Remove.
6099         * config/i386/darwin64.h (TARGET_VERSION): Remove.
6100         * config/i386/djgpp.h (TARGET_VERSION): Remove.
6101         * config/i386/freebsd.h (TARGET_VERSION): Remove.
6102         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6103         * config/i386/gnu.h (TARGET_VERSION): Remove.
6104         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6105         * config/i386/i386elf.h (TARGET_VERSION): Remove.
6106         * config/i386/linux.h (TARGET_VERSION): Remove.
6107         * config/i386/linux64.h (TARGET_VERSION): Remove.
6108         * config/i386/lynx.h (TARGET_VERSION): Remove.
6109         * config/i386/mingw32.h (TARGET_VERSION): Remove.
6110         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6111         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6112         * config/i386/netware.h (TARGET_VERSION): Remove.
6113         * config/i386/nto.h (TARGET_VERSION): Remove.
6114         * config/i386/openbsd.h (TARGET_VERSION): Remove.
6115         * config/i386/vxworks.h (TARGET_VERSION): Remove.
6116         * config/ia64/elf.h (TARGET_VERSION): Remove.
6117         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6118         * config/ia64/hpux.h (TARGET_VERSION): Remove.
6119         * config/ia64/linux.h (TARGET_VERSION): Remove.
6120         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6121         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6122         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6123         * config/lm32/lm32.h (TARGET_VERSION): Remove.
6124         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6125         * config/m32c/m32c.h (TARGET_VERSION): Remove.
6126         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6127         * config/m32r/m32r.h (TARGET_VERSION): Remove.
6128         * config/m68k/linux.h (TARGET_VERSION): Remove.
6129         * config/m68k/m68k.h (TARGET_VERSION): Remove.
6130         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6131         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6132         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6133         * config/mep/mep.h (TARGET_VERSION): Remove.
6134         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6135         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6136         * config/mips/iris6.h (MACHINE_TYPE): Remove.
6137         * config/mips/linux.h (TARGET_VERSION): Remove.
6138         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6139         * config/mips/vxworks.h (TARGET_VERSION): Remove.
6140         * config/mmix/mmix.h (TARGET_VERSION): Remove.
6141         * config/mn10300/linux.h (TARGET_VERSION): Remove.
6142         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6143         * config/pa/pa.h (TARGET_VERSION): Remove.
6144         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6145         * config/picochip/picochip.h (TARGET_VERSION): Remove.
6146         * config/rs6000/aix.h (TARGET_VERSION): Remove.
6147         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6148         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6149         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6150         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6151         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6152         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6153         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6154         * config/rs6000/linux.h (TARGET_VERSION): Remove.
6155         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6156         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6157         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6158         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6159         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6160         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6161         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6162         * config/s390/linux.h (TARGET_VERSION): Remove.
6163         * config/s390/s390.h (TARGET_VERSION): Remove.
6164         * config/s390/tpf.h (TARGET_VERSION): Remove.
6165         * config/score/score.h (TARGET_VERSION): Remove.
6166         * config/sh/linux.h (TARGET_VERSION): Remove.
6167         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6168         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6169         * config/sh/sh.h (TARGET_VERSION): Remove.
6170         * config/sh/sh64.h (TARGET_VERSION): Remove.
6171         * config/sh/superh.h (TARGET_VERSION): Remove.
6172         * config/sh/vxworks.h (TARGET_VERSION): Remove.
6173         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6174         * config/sparc/linux.h (TARGET_VERSION): Remove.
6175         * config/sparc/linux64.h (TARGET_VERSION): Remove.
6176         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6177         TARGET_NAME32, TARGET_NAME): Remove.
6178         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6179         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6180         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6181         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6182         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6183         * config/spu/spu.h (TARGET_VERSION): Remove.
6184         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6185         * config/v850/v850.h (TARGET_VERSION): Remove.
6186         * config/vax/linux.h (TARGET_VERSION): Remove.
6187         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6188         * config/xtensa/elf.h (TARGET_VERSION): Remove.
6189         * config/xtensa/linux.h (TARGET_VERSION): Remove.
6190
6191 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6192
6193         PR target/48142
6194         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6195         frame-related from frame-unrelated adjustments to the stack pointer.
6196
6197 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
6198
6199         * common.opt (fdebug-types-section): Move earlier.
6200         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6201
6202 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
6203
6204         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6205         var.
6206
6207 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
6208
6209         * tree.h (CASE_CHAIN): Define.
6210         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6211         (gimple_redirect_edge_and_branch): Likewise.
6212
6213 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6214
6215         PR middle-end/48367
6216         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6217         calculation.
6218
6219 2011-03-30  Jeff Law  <law@redhat.com>
6220
6221         * PR bootstrap/48371
6222         * reload1.c (reload): Fix botch in last change.
6223
6224         * reload.h (struct reload): Fix typo introduced in last change.
6225
6226 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6227
6228         * config/arm/arm.opt (mhard-float, msoft-float): Mark
6229         Undocumented.  Remove help text.
6230         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6231         -mhard-float.
6232
6233 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6234
6235         * doc/options.texi (NegativeAlias): Document.
6236         (Alias): Mention NegativeAlias.
6237         * opt-functions.awk: Handle NegativeAlias.
6238         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
6239         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6240         * opts.h (CL_NEGATIVE_ALIAS): Define.
6241         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6242         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6243         OPT_mspe_.
6244         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6245         Alias entries.
6246         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6247         mno-spe and mno-isel instead of mspe=no and -misel=no.
6248
6249 2011-03-29  Mark Wielaard  <mjw@redhat.com>
6250
6251         * common.opt (fdebug-types-section): New flag.
6252         * doc/invoke.texi: Document new -fno-debug-types-section flag.
6253         * dwarf2out.c (use_debug_types): New define.
6254         (struct die_struct): Mark die_id with GTY desc use_debug_types.
6255         (print_die): Guard output of type unit signatures using
6256         use_debug_types.
6257         (build_abbrev_table): Replace assert of dwarf_version >= 4
6258         with assert on use_debug_types.
6259         (size_of_die): Likewise.
6260         (unmark_dies): Likewise.
6261         (value_format): Decide AT_ref_external form on use_debug_types.
6262         (output_die): Replace dwarf_version version check guard with
6263         use_debug_types where appropriate.
6264         (modified_type_die): Likewise.
6265         (gen_reference_type_die): Likewise.
6266         (dwarf2out_start_source_file): Likewise.
6267         (dwarf2out_end_source_file): Likewise.
6268         (prune_unused_types_walk_attribs): Likewise.
6269         (dwarf2out_finish): Likewise.
6270
6271 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6272
6273         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6274
6275 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6276
6277         PR rtl-optimization/48332
6278         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6279         mode of input operand N and modeN to its actual mode.
6280
6281 2011-03-30  Jeff Law  <law@redhat.com>
6282
6283         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6284         define accessor macro.
6285         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6286         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6287         (reg_equiv_init): Likewise.
6288         (reg_equivs_size): New variable.
6289         (reg_equiv_init_size): Remove.
6290         (allocate_initial_values): Move prototype to here from....
6291         * integrate.h (allocate_initial_values): Remove prototype.
6292         * integrate.c: Include reload.h.
6293         (allocate_initial_values): Corresponding changes.
6294         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6295         (fix_reg_equiv_init, no_equiv): Corresponding changes.
6296         (update_equiv_regs): Corresponding changes.
6297         (ira): Corresponding changes.
6298         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6299         (push_secondary_reload): Corresponding changes.
6300         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
6301         (make_memloc, find_reloads_address): Corresponding changes.
6302         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
6303         (find_reloads_address_1): Corresponding changes.
6304         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
6305         (refers_to_regno_for_reload_p): Corresponding changes.
6306         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
6307         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
6308         * reload1.c: Include ggc.h.
6309         (grow_reg_equivs): New function.
6310         (replace_pseudos_in, reload): Corresponding changes.
6311         (calculate_needs_all_insns, alter_regs): Corresponding changes.
6312         (eliminate_regs_1, elimination_effects): Corresponding changes.
6313         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
6314         (delete_output_reload): Likewise.
6315         * caller-save.c (mark_referenced_regs): Corresponding changes.
6316         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
6317         * frv/predicates.md (frv_load_operand): Corresponding changes.
6318         * microblaze/microblaze.c (double_memory_operand): Corresponding
6319         changes.
6320         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
6321         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
6322         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
6323         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
6324         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
6325         changes.
6326         * pa/pa.c (emit_move_sequence): Corresponding changes.
6327         * vax/vax.c (nonindexed_address_p): Corresponding changes.
6328
6329 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6330
6331         PR target/47551
6332         * config/arm/arm.c (coproc_secondary_reload_class): Handle
6333         structure modes.  Don't check neon_vector_mem_operand for
6334         vector or structure modes.
6335
6336 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6337             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6338
6339         PR target/43590
6340         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6341         operand 1 and reshuffle the operands to match.
6342         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
6343
6344 2011-03-30  Christian Schüler  <cschueler@gmx.de>
6345
6346         PR driver/48208
6347         * config/c.opt (F): Added 'Driver' to -F option.
6348
6349         PR driver/48260
6350         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
6351           handler function.
6352         * config/darwin.opt: Added '-arch' option.
6353
6354 2011-03-30  Nick Clifton  <nickc@redhat.com>
6355
6356         * config/rx/rx.md: Add peepholes and patterns to combine
6357         extending loads and simple arithmetic instructions.
6358         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
6359         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
6360         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
6361         modes to use pre-decrement and post-increment addressing.
6362         (rx_is_restricted_memory_address): Add range checking of REG+INT
6363         addresses.
6364         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
6365         (rx_memory_move_cost): Adjust cost of stores.
6366         (rx_adjust_insn_length): New function.
6367
6368 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
6369
6370         PR c/48305
6371         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6372         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
6373         matching arg00/arg01 types.
6374
6375 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6376
6377         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
6378         last_location to UNKNOWN_LOCATION.
6379
6380 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6381
6382         PR target/48349
6383         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
6384         FLOAT_SSE_REGS.
6385
6386 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6387             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6388
6389         PR bootstrap/48337
6390         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
6391         Init(PROCESSOR_V7).
6392         (sparc_cpu): Likewise.
6393         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
6394         PROCESSOR_V7.
6395
6396 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6397
6398         PR target/48336
6399         PR middle-end/48342
6400         PR rtl-optimization/48345
6401         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
6402         hard regs for given mode from profitable regs when doing secondary
6403         allocation.
6404
6405 2011-03-29  Jeff Law  <law@redhat.com>
6406
6407         PR bootstrap/48327
6408         * tree-ssa-threadupdate.c (struct redirection_data): Remove
6409         do_not_duplicate field.
6410         (lookup_redirection_data): Corresponding changes.
6411         (create_duplicates): Always create a template block.
6412         (redirect_edges): Remove code which reused the original block
6413         when it was going to become unreachable code.
6414         (thread_block): Don't set do_not_duplicate field.
6415
6416 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
6417
6418         * lto-opts.c (register_user_option_p, lto_register_user_option):
6419         Make type argument unsigned.
6420         * lto-streamer.h (lto_register_user_option): Make type argument
6421         unsigned.
6422         * opth-gen.awk: Make CL_* macros unsigned.
6423         * opts-common.c (find_opt): Make lang_mask argument unsigned.
6424         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6425         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
6426         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
6427         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
6428         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
6429         (find_opt): Make lang_mask argument unsigned.
6430
6431 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6432
6433         PR rtl-optimization/48331
6434         PR rtl-optimization/48334
6435         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
6436         for any used algorithm.
6437
6438 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6439
6440         * ira-conflicts.c (build_object_conflicts): Add unused attribute
6441         to parent_max.
6442
6443 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
6444
6445         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
6446         (alpha_option_override): Don't set alpha_sr_alias_set.
6447         (emit_frame_store_1): Use gen_frame_mem rather than calling
6448         set_mem_alias_set.
6449         (alpha_expand_epilogue): Ditto.
6450
6451 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
6452
6453         PR tree-optimization/48290
6454         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
6455         vectorization, check that relevant phis in the basic block after
6456         the inner loop are really inner loop's exit phis.
6457
6458 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
6459
6460         PR debug/48190
6461         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
6462         (cached_dw_loc_list_def): New structure.
6463         (cached_dw_loc_list): New typedef.
6464         (cached_dw_loc_list_table): New variable.
6465         (cached_dw_loc_list_table_hash): New function.
6466         (cached_dw_loc_list_table_eq): Likewise.
6467         (add_location_or_const_value_attribute): Take a bool cache_p.
6468         Cache the list when the parameter is true.
6469         (gen_formal_parameter_die): Update caller.
6470         (gen_variable_die): Likewise.
6471         (dwarf2out_finish): Likewise.
6472         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
6473         while generating debug info for the decl.
6474         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
6475         (dwarf2out_init): Initialize cached_dw_loc_list_table.
6476         (resolve_addr): Cache the result of resolving a chain of
6477         location lists.
6478
6479 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
6480
6481         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
6482         conflict object hard regset nodes have intersecting hard reg sets.
6483
6484         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
6485         after regstat_init_n_sets_and_refs.
6486
6487         * ira.c: Add more comments at the top.
6488         (setup_stack_reg_pressure_class, setup_pressure_classes):
6489         Add comments how we compute the register pressure classes.
6490         (setup_allocno_and_important_classes): Add more comments.
6491         (setup_class_translate_array, reorder_important_classes)
6492         (setup_reg_class_relations): Add comments.
6493
6494         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
6495         start of the file.
6496
6497         * ira-color.c: Add 2011 to the Copyright line.
6498         (assign_hard_reg):  Add more comments.
6499         (improve_allocation): Ditto.
6500
6501         * ira-costs.c: Add 2011 to the Copyright line.
6502         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
6503         comments.
6504         (setup_regno_cost_classes_by_mode): Ditto.
6505
6506         Initial patches from ira-improv branch:
6507
6508         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
6509
6510         * ira-build.c (ira_create_object): Remove initialization of
6511         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
6512         (ira_create_allocno): Remove initialization of
6513         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
6514         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
6515         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6516         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
6517         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
6518         Initialize ALLOCNO_ADD_DATA.
6519         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
6520         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
6521         ALLOCNO_REG.
6522         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
6523         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
6524
6525         * ira.c (ira_reallocate): Remove.
6526         (setup_pressure_classes): Call
6527         ira_init_register_move_cost_if_necessary.  Use
6528         ira_register_move_cost instead of ira_get_register_move_cost.
6529         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
6530         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
6531
6532         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
6533         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6534         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
6535         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
6536         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
6537         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
6538         Fix formatting.
6539         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
6540         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6541         (struct allocno_color_data): New.
6542         (allocno_color_data_t): New typedef.
6543         (allocno_color_data): New definition.
6544         (ALLOCNO_COLOR_DATA): New macro.
6545         (struct object_color_data): New.
6546         (object_color_data_t): New typedef.
6547         (object_color_data): New definition.
6548         (OBJECT_COLOR_DATA): New macro.
6549         (update_copy_costs, calculate_allocno_spill_cost): Call
6550         ira_init_register_move_cost_if_necessary.  Use
6551         ira_register_move_cost instead of ira_get_register_move_cost.
6552         (move_spill_restore, update_curr_costs): Ditto.
6553         (allocno_spill_priority): Make it inline.
6554         (color_pass): Allocate and free allocno_color_dat and object_color_data.
6555         (struct coalesce_data, coalesce_data_t): New.
6556         (allocno_coalesce_data): New definition.
6557         (ALLOCNO_COALESCE_DATA): New macro.
6558         (merge_allocnos, coalesced_allocno_conflict_p): Use
6559         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
6560         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
6561         (coalesce_allocnos): Ditto.
6562         (setup_coalesced_allocno_costs_and_nums): Ditto.
6563         (collect_spilled_coalesced_allocnos): Ditto.
6564         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
6565         (setup_slot_coalesced_allocno_live_ranges): Ditto.
6566         (coalesce_spill_slots): Ditto.
6567         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
6568         free allocno_coalesce_data.
6569
6570         * ira-conflicts.c: Fix formatting.
6571         (process_regs_for_copy): Call
6572         ira_init_register_move_cost_if_necessary.  Use
6573         ira_register_move_cost instead of ira_get_register_move_cost.
6574         (build_object_conflicts): Optimize.
6575
6576         * ira-costs.c (record_reg_classes): Optimize.  Call
6577         ira_init_register_move_cost_if_necessary.  Use
6578         ira_register_move_cost, ira_may_move_in_cost, and
6579         ira_may_move_out_cost instead of ira_get_register_move_cost and
6580         ira_get_may_move_cost.
6581         (record_address_regs): Ditto.
6582         (scan_one_insn): Optimize.
6583         (find_costs_and_classes): Optimize.
6584         (process_bb_node_for_hard_reg_moves): Call
6585         ira_init_register_move_cost_if_necessary.  Use
6586         ira_register_move_cost instead of ira_get_register_move_cost.
6587
6588         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
6589         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
6590         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
6591         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
6592         definitions.
6593         (ira_initiate_emit_data, ira_finish_emit_data)
6594         (create_new_allocno): New functions.
6595         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
6596         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
6597         Use ira_register_move_cost instead of ira_get_register_move_cost.
6598
6599         * ira-int.h: Fix some comments.
6600         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
6601         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6602         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
6603         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
6604         add_data.
6605         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
6606         bitfield after mode.  Make hard_regno a short int.  Make
6607         hard_regno short.  Remove first_coalesced_allocno and
6608         next_coalesced_allocno.  Move mem_optimized_dest_p,
6609         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
6610         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
6611         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
6612         temp, colorable_p.  Add new member add_data.
6613         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
6614         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
6615         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
6616         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
6617         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
6618         (ALLOCNO_ADD_DATA): New macro.
6619         (ira_emit_data_t): New typedef.
6620         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
6621         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
6622         from struct ira_allocno.
6623         (ALLOCNO_EMIT_DATA): New macro.
6624         (ira_allocno_emit_data, allocno_emit_reg): New.
6625         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
6626         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
6627         (OBJECT_ADD_DATA): New macro.
6628         (ira_reallocate): Remove.
6629         (ira_initiate_emit_data, ira_finish_emit_data): New.
6630         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
6631         (ira_init_register_move_cost_if_necessary): New.
6632         (ira_object_conflict_iter_next): Merge into
6633         ira_object_conflict_iter_cond.
6634         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
6635
6636         * ira-live.c (process_single_reg_class_operands): Call
6637         ira_init_register_move_cost_if_necessary.  Use
6638         ira_register_move_cost instead of ira_get_register_move_cost.
6639
6640         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
6641
6642         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
6643
6644         * ira-costs.c: Fix formatting.
6645         (cost_classes, cost_classes_num): Remove.
6646         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
6647         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
6648         (cost_classes_del, cost_classes_htab): New.
6649         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
6650         (initiate_regno_cost_classes, setup_cost_classes): New.
6651         (setup_regno_cost_classes_by_aclass): New.
6652         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
6653         (record_reg_classes): Use regno_cost_classes instead of
6654         cost_classes.  Move checking opposite operand up.
6655         (record_address_regs): Use regno_cost_classes
6656         instead of cost_classes.
6657         (scan_one_insn): Ditto.  Use always general register.
6658         (print_allocno_costs): Use regno_cost_classes instead of
6659         cost_classes.
6660         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
6661         (find_costs_and_classes): Set up cost classes for each registers.
6662         Use also their mode for this.  Use regno_cost_classes instead of
6663         cost_classes.
6664         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
6665         cost_classes.
6666         (free_ira_costs, ira_init_costs): Don't use cost_classes.
6667         (ira_costs, ira_set_pseudo_classes): Call
6668         initiate_regno_cost_classes and finish_regno_cost_classes.
6669
6670         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
6671
6672         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
6673
6674         * target.def (ira_cover_classes): Remove.
6675
6676         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
6677
6678         * doc/tm.texi.in: Ditto.
6679
6680         * ira-conflicts.c: Remove mentioning cover classes from the file.
6681         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
6682         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
6683
6684         * targhooks.c (default_ira_cover_classes): Remove.
6685
6686         * targhooks.h (default_ira_cover_classes): Ditto.
6687
6688         * haifa-sched.c: Remove mentioning cover classes from the file.
6689         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
6690         ira_pressure_classes and ira_pressure_classes_num instead of
6691         ira_reg_class_cover_size and ira_reg_class_cover.  Use
6692         sched_regno_pressure_class instead of sched_regno_cover_class.
6693         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
6694         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6695
6696         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
6697         classes from the file.
6698         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
6699         (struct object_hard_regs, struct object_hard_regs_node): New.
6700         (struct ira_object): New members profitable_hard_regs,
6701         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
6702         (struct ira_allocno): Rename cover_class to aclass.  Rename
6703         cover_class_cost and updated_cover_class_cost to class_cost and
6704         updated_class_cost.  Remove splay_removed_p and
6705         left_conflict_size.  Add new members colorable_p.
6706         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
6707         (ALLOCNO_COLORABLE_P): New macro.
6708         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
6709         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
6710         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
6711         (OBJECT_...): Rename parameter C to O.
6712         (OBJECT_PROFITABLE_HARD_REGS): New macro.
6713         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
6714         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
6715         (struct target_ira_int): New members x_ira_max_memory_move_cost,
6716         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
6717         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
6718         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
6719         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
6720         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
6721         x_ira_reg_class_subunion.
6722         (ira_max_memory_move_cost, ira_max_register_move_cost)
6723         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
6724         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
6725         (ira_important_class_nums, ira_reg_class_superunion): New macros.
6726         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
6727         (ira_reg_class_union): Rename to ira_reg_class_subunion.
6728         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6729         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6730         (ira_tune_allocno_costs_and_cover_classes): Rename to
6731         ira_tune_allocno_costs.
6732         (ira_debug_hard_regs_forest): New.
6733         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
6734         (ira_object_conflict_iter_next): Fix comments.
6735         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
6736         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
6737         cover_class to aclass.
6738         (ira_allocate_and_accumulate_costs): Ditto.
6739         (ira_allocate_and_set_or_copy_costs): Ditto.
6740
6741         * opts.c (decode_options): Remove ira_cover_class check.
6742
6743         * ira-color.c: Remove mentioning cover classes from the file.  Use
6744         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
6745         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
6746         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
6747         (splay-tree.h): Remove include.
6748         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
6749         before copy_freq_compare_func.
6750         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
6751         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
6752         New definitions.
6753         (hard_regs_roots, hard_regs_node_vec): Ditto.
6754         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
6755         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
6756         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
6757         (create_new_object_hard_regs_node): Ditto.
6758         (add_new_object_hard_regs_node_to_forest): Ditto.
6759         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
6760         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
6761         Ditto.
6762         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
6763         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
6764         (remove_unused_object_hard_regs_nodes): Ditto.
6765         (enumerate_object_hard_regs_nodes): Ditto.
6766         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
6767         (object_hard_regs_subnode_t): Ditto.
6768         (struct object_hard_regs_subnode): Ditto.
6769         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
6770         (setup_object_hard_regs_subnode_index): Ditto.
6771         (get_object_hard_regs_subnodes_num): Ditto.
6772         (form_object_hard_regs_nodes_forest): Ditto.
6773         (finish_object_hard_regs_nodes_tree): Ditto.
6774         (finish_object_hard_regs_nodes_forest): Ditto.
6775         (allocnos_have_intersected_live_ranges_p): Rename to
6776         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
6777         (pseudos_have_intersected_live_ranges_p): Rename to
6778         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
6779         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
6780         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
6781         (update_copy_costs): Remove assert.  Skip cost update if the hard
6782         reg does not belong the class.
6783         (assign_hard_reg): Process only profitable hard regs.
6784         (uncolorable_allocnos_num): Make it scalar.
6785         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6786         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
6787         and ira_reg_class_max_nregs.
6788         (bucket_allocno_compare_func): Check frequency first.
6789         (sort_bucket): Add compare function as a parameter.
6790         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
6791         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
6792         (push_allocno_to_stack): Rewrite for checking new allocno
6793         colorability.
6794         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
6795         (push_only_colorable): Pass new parameter to sort_bucket.
6796         (push_allocno_to_spill): Remove.
6797         (allocno_spill_priority_compare): Make it inline and rewrite.
6798         (splay_tree_allocate, splay_tree_free): Remove.
6799         (allocno_spill_sort_compare): New function.
6800         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
6801         build and use splay tree.  Choose first allocno in uncolorable
6802         allocno bucket to spill.  Remove setting spill cost.
6803         (all_conflicting_hard_regs): Remove.
6804         (setup_allocno_available_regs_num): Check only profitable hard
6805         regs.  Print info about hard regs nodes.
6806         (setup_allocno_left_conflicts_size): Remove.
6807         (put_allocno_into_bucket): Don't call
6808         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
6809         (improve_allocation): New.
6810         (color_allocnos): Call setup_profitable_hard_regs,
6811         form_object_hard_regs_nodes_forest, improve_allocation,
6812         finish_object_hard_regs_nodes_forest.  Setup spill cost.
6813         (print_loop_title): Use pressure classes.
6814         (color_allocnso): Ditto.
6815         (do_coloring): Remove allocation and freeing splay_tree_node_pool
6816         and allocnos_for_spilling.
6817         (ira_sort_regnos_for_alter_reg): Don't setup members
6818         {first,next}_coalesced_allocno.
6819         (color): Remove allocating and freeing removed_splay_allocno_vec.
6820         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
6821         prohibited_class_mode_regs.
6822
6823         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
6824         formatting.
6825         (update_allocno_pressure_excess_length): Use pressure classes.
6826         (inc_register_pressure, dec_register_pressure): Check for pressure
6827         class.
6828         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
6829         pressure class.  Use ira_reg_class_nregs instead of
6830         ira_reg_class_max_nregs.
6831         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
6832         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
6833         (single_reg_class): Use ira_reg_class_nregs instead of
6834         ira_reg_class_max_nregs.
6835         (process_bb_node_lives): Use pressure classes.
6836
6837         * ira-emit.c: Remove mentioning cover classes from the file.  Use
6838         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
6839         (change_loop): Use pressure classes.
6840         (modify_move_list): Call ira_set_allocno_class instead of
6841         ira_set_allocno_cover_class.
6842
6843         * ira-build.c: Remove mentioning cover classes from the file.  Use
6844         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
6845         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
6846         ALLOCNO_UPDATED_CLASS_COST instead of
6847         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
6848         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
6849         (ira_create_allocno): Remove initialization of
6850         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
6851         ALLOCNO_COLORABLE_P.
6852         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6853         Update conflict regs for the objects.
6854         (create_cap_allocno): Remove assert.  Don't propagate
6855         ALLOCNO_AVAILABLE_REGS_NUM.
6856         (ira_free_allocno_costs): New function.
6857         (finish_allocno): Change a part of code into call of
6858         ira_free_allocno_costs.
6859         (low_pressure_loop_node_p): Use pressure classes.
6860         (object_range_compare_func): Don't compare classes.
6861         (setup_min_max_conflict_allocno_ids): Ditto.
6862
6863         * loop-invariant.c: Remove mentioning cover classes from the file.
6864         Use ira_pressure_classes and ira_pressure_classes_num instead of
6865         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
6866         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
6867         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6868         Use reg_allocno_class instead of reg_cover_class.
6869         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
6870         STACK_REG_COVER_CLASS.
6871         (get_regno_cover_class): Rename to get_regno_pressure_class.
6872         (move_loop_invariants): Initialize and finalize regstat.
6873
6874         * ira.c: Remove mentioning cover classes from the file.  Add
6875         comments about coloring without cover classes.  Use ALLOCNO_CLASS
6876         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
6877         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
6878         setup_class_subset_and_memory_move_costs.
6879         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
6880         (setup_cover_and_important_classes): Rename to
6881         setup_allocno_and_important_classes.
6882         (setup_class_translate_array): New.
6883         (setup_class_translate): Call it for allocno and pressure classes.
6884         (cover_class_order): Rename to allocno_class_order.
6885         (comp_reg_classes_func): Use ira_allocno_class_translate instead
6886         of ira_class_translate.
6887         (reorder_important_classes): Set up ira_important_class_nums.
6888         (setup_reg_class_relations): Set up ira_reg_class_superunion.
6889         (print_class_cover): Rename to print_classes.  Add parameter.
6890         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6891         Print pressure classes too.
6892         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
6893         setup_reg_subclasses.
6894         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6895         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6896         (setup_prohibited_class_mode_regs): Use
6897         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
6898         (clarify_prohibited_class_mode_regs): New function.
6899         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
6900         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
6901         (ira_init_once): Initialize them.
6902         (free_register_move_costs): Process them.
6903         (ira_init): Move calls of find_reg_classes and
6904         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
6905         Call clarify_prohibited_class_mode_regs.
6906         (ira_no_alloc_reg): Remove.
6907         (too_high_register_pressure_p): Use pressure classes.
6908
6909         * sched-deps.c: Remove mentioning cover classes from the file.
6910         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
6911         ira_pressure_classes and ira_pressure_classes_num instead of
6912         ira_reg_class_cover_size and ira_reg_class_cover.
6913         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
6914         sched_regno_pressure_class instead of sched_regno_cover_class.
6915         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
6916         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6917
6918         * ira.h: Add 2010 to Copyright.
6919         (ira_no_alloc_reg): Remove external.
6920         (struct target_ira): Rename x_ira_hard_regno_cover_class,
6921         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
6922         x_ira_class_translate to x_ira_hard_regno_allocno_class,
6923         x_ira_allocno_classes_num, x_ira_allocno_classes, and
6924         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
6925         x_ira_pressure_classes, x_ira_pressure_class_translate, and
6926         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
6927         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
6928         x_ira_no_alloc_regs.
6929         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6930         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
6931         ira_allocno_classes_num and ira_allocno_classes.
6932         (ira_class_translate): Rename to ira_allocno_class_translate.
6933         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
6934         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
6935         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6936         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
6937         (ira_no_alloc_regs): New.
6938
6939         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
6940         classes from the file.  Use ALLOCNO_CLASS instead of
6941         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
6942         ALLOCNO_COVER_CLASS_COST.
6943         (regno_cover_class): Rename to regno_aclass.
6944         (record_reg_classes): Use ira_reg_class_subunion instead of
6945         ira_reg_class_union.
6946         (record_address_regs): Check overflow.
6947         (scan_one_insn): Ditto.
6948         (print_allocno_costs): Print total mem cost fore regional allocation.
6949         (print_pseudo_costs): Use REG_N_REFS.
6950         (find_costs_and_classes): Use classes intersected with them on the
6951         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
6952         ira_reg_class_union.  Use ira_allocno_class_translate and
6953         regno_aclass instead of ira_class_translate and regno_cover_class.
6954         Modify code for finding regno_aclass.  Setup preferred classes for
6955         the next pass.
6956         (setup_allocno_cover_class_and_costs): Rename to
6957         setup_allocno_class_and_costs.  Use regno_aclass instead of
6958         regno_cover_class.  Use ira_set_allocno_class instead of
6959         ira_set_allocno_cover_class.
6960         (init_costs, finish_costs): Use regno_aclass instead of
6961         regno_cover_class.
6962         (ira_costs): Use setup_allocno_class_and_costs instead of
6963         setup_allocno_cover_class_and_costs.
6964         (ira_tune_allocno_costs_and_cover_classes): Rename to
6965         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
6966         by processing objects.  Use ira_reg_class_max_nregs instead of
6967         ira_reg_class_nregs.
6968
6969         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
6970
6971         * sched-int.h: Remove mentioning cover classes from the file.
6972         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
6973
6974         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
6975         classes from the file.
6976         (struct reg_pref): Rename coverclass into allocnoclass.
6977         (reg_cover_class): Rename to reg_allocno_class.
6978
6979         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
6980
6981         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
6982
6983         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6984
6985         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
6986
6987         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
6988
6989         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
6990
6991         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
6992
6993         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
6994
6995         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
6996
6997         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
6998
6999         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7000         (i386_ira_cover_classes): Ditto.
7001
7002         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7003
7004         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7005
7006         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7007
7008         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7009
7010         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7011
7012         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7013
7014         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7015         (mips_ira_cover_classes): Ditto.
7016
7017         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7018
7019         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7020
7021         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7022
7023         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7024
7025         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7026
7027         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7028         (IRA_COVER_CLASSES_VSX): Ditto.
7029
7030         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7031         (rs6000_ira_cover_classes): Ditto.
7032
7033         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7034
7035         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7036
7037         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7038
7039         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7040
7041         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7042
7043         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7044
7045         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7046
7047         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7048
7049         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7050
7051         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7052
7053 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7054
7055         PR debug/48253
7056         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7057         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7058         dw_fde_unlikely_section_end_label, cold_in_std_section,
7059         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7060         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7061         fields.
7062         (output_fde): Use dw_fde_second_{begin,end} if second is
7063         true, otherwise dw_fde_{begin,end}.
7064         (output_call_frame_info): Test dw_fde_second_begin != NULL
7065         instead of dw_fde_switched_sections.
7066         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7067         fields, initialize new fields.  Initialize in_std_section
7068         unconditionally from the first partition.
7069         (dwarf2out_end_epilogue): Don't override dw_fde_end when
7070         dw_fde_second_begin is non-NULL.
7071         (dwarf2out_switch_text_section): Stop initializing removed
7072         dw_fde_struct fields, initialize new fields, initialize
7073         also dw_fde_end here.  Set dw_fde_switch_cfi even when
7074         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
7075         (struct var_loc_list_def): Add last_before_switch field.
7076         (arange_table, arange_table_allocated, arange_table_in_use,
7077         ARANGE_TABLE_INCREMENT, add_arange): Removed.
7078         (size_of_aranges): Count !in_std_section and !second_in_std_section
7079         hunks in fdes, instead of looking at arange_table_in_use.
7080         (output_aranges): Add aranges_length argument, don't call
7081         size_of_aranges here.  Instead of using aranges_table*
7082         emit ranges for fdes when !in_std_section resp.
7083         !second_in_std_section.
7084         (dw_loc_list): Break ranges crossing section switch.
7085         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
7086         use dw_fde_second_end instead of dw_fde_end as end of last range.
7087         (gen_subprogram_die): Don't call add_arange.  Use
7088         dw_fde_{begin,end} for first partition and if switched
7089         section dw_fde_second_{begin,end} for the second.
7090         (var_location_switch_text_section_1,
7091         var_location_switch_text_section): New functions.
7092         (dwarf2out_begin_function): Initialize cold_text_section even
7093         when function_section () isn't text_section.
7094         (prune_unused_types): Don't walk arange_table.
7095         (dwarf2out_finish): Don't needlessly test
7096         flag_reorder_blocks_and_partition when testing cold_text_section_used.
7097         If info_section_emitted, call size_of_aranges and if it indicates
7098         non-empty .debug_aranges, call output_aranges with the computed
7099         size.  Stop using removed dw_fde_struct fields, use
7100         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7101         for second.
7102
7103         PR debug/48203
7104         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7105         create ENTRY_VALUE if incoming or address of incoming's MEM
7106         is a hard REG.
7107         * dwarf2out.c (mem_loc_descriptor): Don't emit
7108         DW_OP_GNU_entry_value of DW_OP_fbreg.
7109         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7110         on ENTRY_VALUE is able to find the canonical parameter VALUE.
7111         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7112         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7113         ENTRY_VALUE_EXPs.
7114         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7115         is a REG_P or MEM_P with REG_P address, compute hash directly
7116         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7117         (preserve_only_constants): Don't clear VALUES forwaring
7118         ENTRY_VALUE to some other VALUE.
7119
7120 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
7121
7122         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7123         instead of GEN_INT.
7124
7125 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7126
7127         * cfgexpand.c (expand_gimple_cond): Always set the source location and
7128         block before expanding the statement.
7129         (expand_gimple_stmt_1): Likewise.  Set them here...
7130         (expand_gimple_stmt): ...and not here.  Tidy.
7131         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7132         unknown.
7133
7134 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7135
7136         * Makefile.in: New rule for cprop.o.
7137         * gcse.c: Move constant/copy propagation to cprop.c.
7138         (compute_local_properties): Only handle expression tables.
7139         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7140         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7141         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7142         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7143         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
7144         compute_cprop_data, find_used_regs, try_replace_reg,
7145         find_avail_set, cprop_jump, constprop_register, cprop_insn,
7146         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7147         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7148         find_bypass_set, reg_killed_on_edge, bypass_block,
7149         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7150         execute_rtl_cprop, pass_rtl_cprop): Move to...
7151         * cprop.c: ...here.  New file, constant/copy propagation for RTL
7152         moved from gcse.c to here with minor cleanups in duplicated code.
7153
7154 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7155
7156         * config/i386/i386.c (flag_opts): Fix a typo in
7157         -mavx256-split-unaligned-store.
7158
7159 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7160
7161         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7162         LIBCALL_VALUE): Remove macros.
7163         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7164         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7165         (h8300_function_value, h8300_libcall_value,
7166         h8300_function_value_regno_p): New functions.
7167
7168 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7169
7170         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7171
7172 2011-03-28  Jeff Law  <law@redhat.com>
7173
7174         * tree-ssa-threadupdate.c (redirect_edges): Call
7175         create_edge_and_update_destination_phis as needed.
7176         (create_edge_and_update_destination_phis): Accept new BB argument.
7177         All callers updated.
7178         (thread_block): Do not update the profile when threading around
7179         intermediate blocks.
7180         (thread_single_edge): Likewise.
7181         (determine_bb_domination_status): If BB is not a successor of the
7182         loop header, return NONDOMINATING.
7183         (register_jump_thread): Note when we register a jump thread around
7184         an intermediate block.
7185         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7186         (thread_across_edge): Use it.
7187
7188 2011-03-28  Tristan Gingold  <gingold@adacore.com>
7189
7190         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7191         when for_return is 2.
7192
7193 2011-03-28  Jeff Law  <law@redhat.com>
7194
7195         * var-tracking.c (canonicalize_values_mark): Delete unused
7196         lhs assignment.
7197         (canonicalize_values_star, set_variable_part): Likewise.
7198         (clobber_variable_part, delete_variable_part): Likewise.
7199
7200 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7201
7202         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7203
7204 2011-03-28  Martin Jambor  <mjambor@suse.cz>
7205
7206         * tree-inline.c (expand_call_inline): Do not check that destination
7207         node is analyzed.
7208         (optimize_inline_calls): Assert that destination node is analyzed.
7209         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7210         not call tree_lowering_passes.
7211         * cgraph.h (cgraph_analyze_function): Declare.
7212         * cgraphunit.c (cgraph_analyze_function): Make public.
7213
7214 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
7215
7216         * config/sparc/sparc-opts.h: New.
7217         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7218         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7219         (sparc_option_override): Store processor_type enumeration rather
7220         than string in cpu_default.  Remove name and enumeration from
7221         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
7222         without using sparc_select.  Use target_flags_explicit instead of
7223         fpu_option_set.
7224         * config/sparc/sparc.h (enum processor_type): Move to
7225         sparc-opts.h.
7226         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7227         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7228         HeaderInclude entry.
7229         (mcpu=, mtune=): Use Var and Enum.
7230         (sparc_processor_type): New Enum and EnumValue entries.
7231
7232 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7233             Iain Sandoe  <iains@gcc.gnu.org>
7234
7235         PR target/48245
7236         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7237
7238 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7239
7240         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7241         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7242         Insert new statements at it in lieu of STMT.
7243         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7244         * tree-vect-stmts.c (vectorizable_store): Likewise.
7245         (vectorizable_load): Likewise.
7246
7247 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
7248
7249         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7250         (divtf3): Ditto.
7251         (multf3): Ditto.
7252         (subtf3): Ditto.
7253
7254 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7255
7256         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7257         unaligned 256bit load/store.
7258         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7259         (*avx_movdqu<avxmodesuffix>): Likewise.
7260
7261 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7262
7263         PR target/48288
7264         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7265         * config/pa/pa.md (iordi3): Use new predicate in expander.
7266         (iorsi3): Likewise.
7267
7268 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
7269
7270         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
7271         FUNCTION_VALUE_REGNO_P): Remove macros.
7272         * config/mips/mips-protos.h (mips_function_value): Remove.
7273         * config/mips/mips.c (mips_function_value): Rename to...
7274         (mips_function_value_1): ... this. Make static.  Handle receiving
7275         the function type in 'fn_decl_or_type' argument.
7276         (mips_function_value, mips_libcall_value,
7277         mips_function_value_regno_p): New function.
7278         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7279         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7280
7281 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7282
7283         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7284         and -mavx256-split-unaligned-store.
7285         (ix86_option_override_internal): Split 32-byte AVX unaligned
7286         load/store by default.
7287         (ix86_avx256_split_vector_move_misalign): New.
7288         (ix86_expand_vector_move_misalign): Use it.
7289
7290         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7291         -mavx256-split-unaligned-store.
7292
7293         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7294         256bit load/store.  Generate unaligned store on misaligned memory
7295         operand.
7296         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7297         256bit load/store.
7298         (*avx_movdqu<avxmodesuffix>): Likewise.
7299
7300         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
7301         -mavx256-split-unaligned-store.
7302
7303 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7304
7305         PR target/38598
7306         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
7307         Update commentary.
7308
7309 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7310
7311         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
7312         opno arguments with an expand_operand.  Use create_input_operand.
7313         (mips_prepare_builtin_target): Delete.
7314         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
7315         functions.
7316         (mips_expand_builtin_direct): Use create_output_operand and
7317         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
7318         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
7319         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
7320
7321 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
7322
7323         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
7324         function.
7325         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7326
7327 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7328
7329         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
7330         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
7331         basic blocks and call commit_edge_insertions directly.
7332         (fixup_abnormal_edges): Move from here to...
7333         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
7334         on the edges and return whether some have actually been inserted.
7335         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
7336         compensation code.
7337
7338 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
7339
7340         PR rtl-optimization/48144
7341         * sel-sched-ir.c (merge_history_vect): Factor out from ...
7342         (merge_expr_data): ... here.
7343         (av_set_intersect): Rename to av_set_code_motion_filter.
7344         Update all callers.  Call merge_history_vect when an expression
7345         is found in both sets.
7346         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
7347
7348 2011-03-26  Alan Modra  <amodra@gmail.com>
7349
7350         * config/rs6000/predicates.md (word_offset_memref_op): Handle
7351         cmodel medium addresses.
7352         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
7353         64-bit gpr loads and stores.
7354         (rs6000_secondary_reload_ppc64): New function.
7355         * config/rs6000/rs6000-protos.h: Declare it.
7356         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
7357
7358 2011-03-26  Alan Modra  <amodra@gmail.com>
7359
7360         PR target/47487
7361         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
7362         GNU Go in traceback table.
7363
7364 2011-03-25  Richard Henderson  <rth@redhat.com>
7365
7366         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
7367         if there are exactly 6 operands.
7368         (set_storage_via_setmem): Similarly.
7369
7370 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7371
7372         * collect2.c (write_c_file_stat): Handle backslash
7373         as right-hand directory separator.
7374         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
7375         checking just for slash.
7376         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
7377         instead of checking for trailing slash.
7378         * gcc.c (record_temp_file): Use filename_cmp instead
7379         of strcmp.
7380         (do_spec_1): Likewise.
7381         (replace_outfile_spec_function): Likewise.
7382         (is_directory): Use filename_ncmp instead of strncmp.
7383         (print_multilib_info): Likewise.
7384         * gcov.c (find_source): Use filename_cmp instead
7385         instead of strcmp.
7386         (make_gcov_file_name): Fix order of slash/backslash
7387         checks.
7388         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
7389         (add_standard_paths): Likewise.
7390         * mips-tfile.c (saber_stop): Handle backslash.
7391         * prefix.c (update_path): Use filename_ncmp instead of
7392         strncmp.
7393         * profile.c (output_location): Use filename_cmp instead
7394         of strcmp.
7395         * read-md.c (handle_toplevel_file): Handle backslash.
7396         * tlink.c (frob_extension):  Likewise.
7397         * tree-cfg.c (same_line_p): Use filename_cmp instead of
7398         strcmp.
7399         * tree-dump.c (dequeue_and_dump): Handle backslash.
7400         * tree.c (get_file_function_name): Likewise.
7401         * gengtype.c (read_input_list): Likewise.
7402         (get_file_realbasename): Likewise.
7403         (get_output_file_with_visibility): Use filename_cmp
7404         instead of strcmp.
7405
7406 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
7407
7408         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
7409         case to VFPv1.
7410
7411 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
7412
7413         * fold-const.c (expr_location_or): New function.
7414         (fold_truth_not_expr): Call it.
7415
7416 2011-03-25  Jeff Law  <law@redhat.com>
7417
7418         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
7419         va_end.
7420         * c-family/c-common.c (def_fn_type): Likewise.
7421         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
7422         * emit-rtl.c (gen_rtvec): Likewise.
7423         * lto/lto-lang.c (def_fn_type): Likewise.
7424
7425 2011-03-25  Richard Guenther  <rguenther@suse.de>
7426
7427         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
7428         also generate copies.
7429         (fini_copy_prop): Handle constant values properly.
7430
7431 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
7432
7433         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
7434         mode size instead of bitsize with DWARF2_ADDR_SIZE.
7435         (hash_loc_operands, compare_loc_operands): Handle
7436         DW_OP_GNU_entry_value.
7437
7438 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7439
7440         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
7441         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
7442         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
7443         comment and use macro TARGET_64BIT_MS_ABI instead.
7444         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
7445         and change default behavior for 32-bit MS_ABI.
7446         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
7447         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
7448         32-bit, too.
7449         (ix86_cfun_abi): Likewise.
7450         (ix86_maybe_switch_abi): Adjust comment.
7451         (init_cumulative_args): Check for bit-ness in MS_ABI case.
7452         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
7453         instead of checking for SYSV_ABI.
7454         (ix86_nsaved_sseregs): Likewise.
7455         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
7456         to 16 bytes.
7457         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
7458         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
7459         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
7460         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
7461         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
7462
7463 2011-03-25  Richard Guenther  <rguenther@suse.de>
7464
7465         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
7466         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7467         (verify_gimple): Remove.
7468         * tree-cfg.c (verify_gimple_call): Merge verification
7469         from verify_stmts.
7470         (verify_gimple_phi): Merge verification from verify_stmts.
7471         (verify_gimple_label): New function.
7472         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
7473         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7474         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
7475         (verify_stmts): Rename to verify_gimple_in_cfg.
7476         (verify_gimple_in_cfg): New function.
7477         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
7478         * tree-ssa.c (verify_ssa): Likewise.
7479         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
7480
7481 2011-03-25  Richard Guenther  <rguenther@suse.de>
7482
7483         * passes.c (init_optimization_passes): Add FRE pass after
7484         early SRA.
7485
7486 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
7487             Andrew Stubbs  <ams@codesourcery.com>
7488
7489         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
7490         for Cortex-A8.
7491         (arm_movdi_vfp_cortexa8): New pattern.
7492         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
7493         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
7494         instructions when tuning for Cortex-A8.  Set attribute "arch".
7495         * config/arm/arm.md: Move include arm-tune.md up a bit.
7496         (define_attr "arch"): Add "onlya8" and "nota8" values.
7497         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
7498
7499 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
7500
7501         PR bootstrap/48282
7502         Revert:
7503         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7504
7505         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7506         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
7507         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7508         * passes.c (init_optimization_passes): Move
7509         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7510
7511 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7512
7513         * c-typeck.c (comptypes_internal): Replace target
7514         hook call of comp_type_attributes by version in tree.c file.
7515         * gimple.c (gimple_types_compatible_p_1): Likewise.
7516         * tree-ssa.c (useless_type_conversion_p): Likewise.
7517         * tree.c (build_type_attribute_qual_variant): Likewise.
7518         (attribute_value_equal): New static helper function.
7519         (comp_type_attributes): New function.
7520         (merge_attributes): Use attribute_value_equal for comparison.
7521         (attribute_list_contained): Likewise.
7522         * tree.h (comp_type_attributes): New prototype.
7523
7524 2011-03-25  Richard Guenther  <rguenther@suse.de>
7525
7526         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
7527         of complex types at -O0.
7528         (verify_gimple_assign_binary): Likewise.
7529         (verify_gimple_assign_ternary): Likewise.
7530
7531 2011-03-24  Mark Wielaard  <mjw@redhat.com>
7532
7533         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
7534         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
7535
7536 2011-03-24  Mark Wielaard  <mjw@redhat.com>
7537
7538         PR debug/48041
7539         * dwarf2out.c (output_abbrev_section): Only write table when
7540         abbrev_die_table_in_use > 1.
7541
7542 2011-02-24  Richard Henderson  <rth@redhat.com>
7543
7544         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
7545         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
7546         (alpha_expand_unaligned_load_words): Use extql.
7547         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
7548         (emit_insxl): Handle all modes for consistency.
7549
7550 2011-02-24  Richard Henderson  <rth@redhat.com>
7551
7552         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
7553         (alpha_expand_unaligned_load): Likewise.
7554         (alpha_expand_unaligned_store): Likewise.
7555         (alpha_expand_unaligned_load_words): Likewise.
7556         (alpha_expand_unaligned_store_words): Likewise.
7557         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
7558         (alpha_split_lock_test_and_set_12): Likewise.
7559         (print_operand, alpha_fold_builtin_extxx): Likewise.
7560         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
7561         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
7562         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
7563         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
7564         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
7565         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
7566         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
7567         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
7568         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
7569         (extwl, extll, extql): Similarly.
7570         (inswh, inslh, insqh): Similarly.
7571         (mskbl, mskwl, mskll, mskql): Similarly.
7572         (mskwh, msklh, mskqh): Similarly.
7573
7574 2011-02-24  Richard Henderson  <rth@redhat.com>
7575
7576         * config/alpha/alpha.md (attribute isa): Add er, ner.
7577         (attribute enabled): Handle them.
7578         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
7579
7580 2011-02-24  Richard Henderson  <rth@redhat.com>
7581
7582         * config/alpha/alpha.md (attribute isa): Add vms.
7583         (attribute enabled): Handle it.
7584         (*movsf): Merge *movsf_{nofix,fix,nofp}.
7585         (*movdf): Merge *movdf_{nofix,fix,nofp}.
7586         (*movtf): Rename from *movtf_internal for consistency.
7587         (*movsi): Merge with *movsi_nt_vms.
7588         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
7589         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
7590         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
7591         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
7592
7593 2011-02-24  Richard Henderson  <rth@redhat.com>
7594
7595         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
7596         (extendqisi2, extendhisi2): Likewise.
7597         (extendqidi2): Simplify BWX/non-BWX expansions.
7598         (extendhidi2): Similarly.
7599
7600 2011-02-24  Richard Henderson  <rth@redhat.com>
7601
7602         * config/alpha/alpha.md (attribute isa): New.
7603         (attribute enabled): New.
7604         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
7605         (zero_extendqisi2, zero_extendqidi2): Similarly.
7606         (zero_extendhisi2, zero_extendhidi2): Similarly.
7607         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
7608
7609 2011-02-24  Richard Henderson  <rth@redhat.com>
7610
7611         * config/alpha/predicates.md (input_operand): Revert last change;
7612         update comment to mention 32-bit VMS rather than Windows.
7613
7614 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7615
7616         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7617         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
7618         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7619         * passes.c (init_optimization_passes): Move
7620         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7621
7622 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7623
7624         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
7625
7626 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
7627
7628         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
7629         correctly.
7630
7631 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
7632
7633         PR debug/48204
7634         * simplify-rtx.c (simplify_const_unary_operation): Call
7635         real_convert when changing mode class with FLOAT_EXTEND.
7636
7637 2011-03-24  Nick Clifton  <nickc@redhat.com>
7638
7639         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
7640         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
7641         * config/rx/rx.c (rx_option_override): Set align_jumps,
7642         align_loops and align_labels if not set by the user.
7643         (rx_align_for_label): New function.
7644         (rx_max_skip_for_label): New function.
7645         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
7646         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
7647         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
7648         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
7649         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
7650
7651 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
7652
7653         PR rtl-optimization/48263
7654         * optabs.c (expand_binop_directly): Reinstate convert_modes code
7655         and original commutative_p handling.  Use maybe_gen_insn.
7656
7657 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7658
7659         * reload.c (find_reloads_subreg_address): Add address_reloaded
7660         parameter and return true there if the full address has been
7661         reloaded.
7662         (find_reloads_toplev): Pass address_reloaded flag.
7663         (find_reloads_address_1): Don't use address_reloaded parameter.
7664
7665 2011-03-24  Jeff Law  <law@redhat.com>
7666
7667         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
7668         unused variable "ann".
7669         (remove_unused_locals): Likewise.
7670
7671         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
7672         statement.
7673
7674         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
7675         after it is freed.
7676
7677 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7678
7679         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
7680         for invalid symbolic addresses.
7681         (s390_secondary_reload): Don't use s390_check_symref_alignment for
7682         larl operands.
7683
7684 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7685
7686         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
7687         the argument in calls to fold_truth_not_expr.
7688
7689 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7690
7691         * tree.c (record_node_allocation_statistics): New function.
7692         (make_node_stat, copy_node_stat, build_string): Call it.
7693         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
7694         (build1_stat, build_omp_clause): Likewise.
7695
7696 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
7697
7698         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
7699         last commit.
7700
7701 2011-03-24  Richard Guenther  <rguenther@suse.de>
7702
7703         PR tree-optimization/48271
7704         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
7705         blocks that still exist.
7706
7707 2011-03-24  Richard Guenther  <rguenther@suse.de>
7708
7709         PR tree-optimization/48270
7710         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
7711         not free datarefs before ddrs.
7712
7713 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7714
7715         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
7716         from the address built for a reference with variable offset.
7717
7718 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
7719
7720         PR target/48237
7721         * config/i386/i386.md (*movdf_internal_rex64): Do not split
7722         alternatives that can be handled with movq or movabsq insn.
7723         (*movdf_internal): Disable for !TARGET_64BIT.
7724         (*movdf_internal_nointeger): Ditto.
7725         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
7726
7727 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7728
7729         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7730         (FUNCTION_ARG_ADVANCE): Likewise.
7731         * tm.texi.in: Change references to them to hook references.
7732         * tm.texi: Regenerate.
7733         * targhooks.c (default_function_arg): Eliminate check for target macro.
7734         (default_function_incoming_arg): Likewise.
7735         (default_function_arg_advance): Likewise.
7736         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
7737         (function_arg_advance): Likewise.
7738         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7739
7740 2011-03-24  Richard Guenther  <rguenther@suse.de>
7741
7742         PR middle-end/48269
7743         * tree-object-size.c (addr_object_size): Do not double-account
7744         for MEM_REF offsets.
7745
7746 2011-03-24  Diego Novillo  <dnovillo@google.com>
7747
7748         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
7749         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
7750         (lto_input_data_block): Move from lto-opts.c.  Make extern.
7751         Update all users.
7752         (lto_input_string): Rename from input_string.  Make extern.
7753         Update all users.
7754         * lto-streamer-out.c (lto_output_string_with_length): Rename from
7755         output_string_with_length.
7756         Output 0 to indicate a non-NULL string.  Update all callers to
7757         not emit 0.
7758         (lto_output_string): Rename from output_string.  Make extern.
7759         Update all users.
7760         (lto_output_decl_state_streams): Make extern.
7761         (lto_output_decl_state_refs): Make extern.
7762         * lto-streamer.h (lto_input_string): Declare.
7763         (lto_input_data_block): Declare.
7764         (lto_output_string): Declare.
7765         (lto_output_string_with_length): Declare.
7766         (lto_output_decl_state_streams): Declare.
7767         (lto_output_decl_state_refs): Declare.
7768
7769 2011-03-24  Richard Guenther  <rguenther@suse.de>
7770
7771         PR tree-optimization/46562
7772         * tree.c (build_invariant_address): New function.
7773         * tree.h (build_invariant_address): Declare.
7774         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
7775         a renamed function moved ...
7776         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
7777         Take valueization callback parameter.
7778         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
7779         * gimple-fold.h: New file.
7780         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
7781         (ccp_fold, fold_const_aggregate_ref,
7782         fold_ctor_reference, fold_nonarray_ctor_reference,
7783         fold_array_ctor_reference, fold_string_cst_ctor_reference,
7784         get_base_constructor): Move ...
7785         * gimple-fold.c: ... here.
7786         (gimple_fold_stmt_to_constant_1): New function
7787         split out from ccp_fold.  Take a valueization callback parameter.
7788         Valueize all operands.
7789         (gimple_fold_stmt_to_constant): New wrapper function.
7790         (fold_const_aggregate_ref_1): New function split out from
7791         fold_const_aggregate_ref.  Take a valueization callback parameter.
7792         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
7793         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
7794         invariant POINTER_PLUS_EXPRs to invariant form.
7795         (vn_valueize): New function.
7796         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
7797         * tree-vrp.c (vrp_valueize): New function.
7798         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
7799         to fold statements to constants.
7800         * tree-ssa-pre.c (eliminate): Properly guard propagation of
7801         function declarations.
7802         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
7803         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
7804
7805 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
7806
7807         * config/h8300/predicates.md (jump_address_operand): Fix register
7808         mode check.
7809
7810 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
7811
7812         * doc/invoke.texi (max-stores-to-sink): Document.
7813         * params.h (MAX_STORES_TO_SINK): Define.
7814         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
7815         if either vectorization or if-conversion is disabled.
7816         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
7817         tree-vect-data-refs.c vect_equal_offsets.
7818         (dr_equal_offsets_p): New function.
7819         (find_data_references_in_bb): Remove static.
7820         * tree-data-ref.h (find_data_references_in_bb): Declare.
7821         (dr_equal_offsets_p): Likewise.
7822         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
7823         (vect_drs_dependent_in_basic_block): Update calls to
7824         vect_equal_offsets.
7825         (vect_check_interleaving): Likewise.
7826         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
7827         (cond_if_else_store_replacement): Rename to...
7828         (cond_if_else_store_replacement_1): ... this.  Change arguments and
7829         documentation.
7830         (cond_if_else_store_replacement): New function.
7831         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
7832         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
7833
7834 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
7835
7836         PR target/46934
7837         * config/arm/arm.md (casesi): Use the gen_int_mode() function
7838         to subtract lower bound instead of GEN_INT().
7839
7840 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
7841
7842         PR other/48179
7843         PR other/48221
7844         PR other/48234
7845         * doc/extend.texi (Alignment): Move section to match order in TOC.
7846         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
7847         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
7848
7849 2011-03-23  Jeff Law  <law@redhat.com>
7850
7851         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
7852         before removing the edge.
7853
7854         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
7855         it may have been freed by redirect_branch_edge or
7856         redirect_edge_succ_nodup.
7857
7858 2011-03-23  Richard Guenther  <rguenther@suse.de>
7859
7860         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
7861         (check_va_list_escapes): Likewise.
7862         (check_all_va_list_escapes): Likewise.
7863
7864 2011-03-23  Richard Guenther  <rguenther@suse.de>
7865
7866         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
7867         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
7868         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
7869         (alias.o): Likewise.
7870         (ipa-type-escape.o): Remove.
7871         (ipa-struct-reorg.o): Likewise.
7872         (GTFILES): Remove ipa-struct-reorg.c.
7873         * alias.c: Do not include ipa-type-escape.h.
7874         * tree-ssa-alias.c: Likewise.
7875         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
7876         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
7877         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
7878         and ipa-type-escape passes.
7879         * tree-pass.h (pass_ipa_type_escape): Remove.
7880         (pass_ipa_struct_reorg): Likewise.
7881         * ipa-struct-reorg.h: Remove.
7882         * ipa-struct-reorg.c: Likewise.
7883         * ipa-type-escape.h: Likewise.
7884         * ipa-type-escape.c: Likewise.
7885         * doc/invoke.texi (-fipa-struct-reorg): Remove.
7886         (--param struct-reorg-cold-struct-ratio): Likewise.
7887         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7888         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7889         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
7890
7891 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7892
7893         * config/s390/2084.md: Enable all insn reservations also for z9_ec
7894         cpu attribute value.
7895         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
7896         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
7897         * config/s390/s390.c (processor_flags_table): New constant array.
7898         (s390_handle_arch_option): Remove.
7899         (s390_handle_option): Remove s390_handle_arch_option invocations
7900         and OPT_mwarn_framesize_ handling.
7901         (s390_option_override): Remove s390_handle_arch_option invocation.
7902         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
7903         warnings.
7904         * config/s390/s390.md (cpu attribute): Add z9_ec value.
7905         * config/s390/s390.opt (s390_tune, s390_arch)
7906         (march=): Replace s390_arch_option enum and values with
7907         processor_type.  Set variable name to s390_arch.  Set
7908         initialization value.
7909         (mtune=): Replace s390_arch_option with processor_type.  Set
7910         variable name to s390_tune.  Set initialization value.
7911
7912 2011-03-23  Julian Brown  <julian@codesourcery.com>
7913
7914         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
7915         accesses which are not naturally aligned.
7916
7917 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
7918
7919         PR target/47553
7920         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
7921
7922 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
7923
7924         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
7925         parameter from "int" to "enum insn_code".
7926         (expand_operand_type): New enum.
7927         (expand_operand): New structure.
7928         (create_expand_operand): New function.
7929         (create_fixed_operand, create_output_operand): Likewise
7930         (create_input_operand, create_convert_operand_to): Likewise.
7931         (create_convert_operand_from, create_address_operand): Likewise.
7932         (create_integer_operand): Likewise.
7933         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
7934         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7935         (expand_insn, expand_jump_insn): Likewise.
7936         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
7937         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
7938         (expand_movstr, expand_builtin___clear_cache): Likewise.
7939         (expand_builtin_lock_release): Likewise.
7940         * explow.c (allocate_dynamic_stack_space): Likewise.
7941         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
7942         and use the default handling in that case.
7943         * expmed.c (check_predicate_volatile_ok): Delete.
7944         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
7945         (emit_cstore): Likewise.
7946         * expr.c (emit_block_move_via_movmem): Likewise.
7947         (set_storage_via_setmem, expand_assignment): Likewise.
7948         (emit_storent_insn, try_casesi): Likewise.
7949         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
7950         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
7951         (expand_vec_shift_expr, expand_binop_directly): Likewise.
7952         (expand_twoval_unop, expand_twoval_binop): Likewise.
7953         (expand_unop_direct, emit_indirect_jump): Likewise.
7954         (emit_conditional_move, vector_compare_rtx): Likewise.
7955         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
7956         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
7957         (expand_sync_lock_test_and_set): Likewise.
7958         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
7959         (emit_unop_insn): Likewise.
7960         (expand_copysign_absneg): Change icode to an insn_code.
7961         (create_convert_operand_from_type): New function.
7962         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
7963         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7964         (expand_insn, expand_jump_insn): Likewise.
7965         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
7966         than const_int_operand for operand 2.
7967
7968 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7969
7970         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
7971         if possible.
7972
7973 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
7974
7975         * emit-rtl.c (emit_pattern_before_noloc): New function.
7976         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
7977         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
7978         (emit_pattern_after_noloc): New function.
7979         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
7980         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
7981
7982 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
7983
7984         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
7985         (__ffsDI2): Likewise.
7986
7987 2011-03-22  Richard Henderson  <rth@redhat.com>
7988
7989         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
7990         of !TARGET_ABI_OPEN_VMS.
7991         (alpha_trampoline_init, alpha_start_function): Likewise.
7992         (alpha_expand_epilogue, alpha_file_start): Likewise.
7993         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
7994         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
7995         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
7996         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
7997         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
7998
7999 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8000
8001         * config/s390/s390-opts.h: New.
8002         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8003         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8004         s390_stack_guard): Remove.
8005         (s390_handle_arch_option): Return void.  Take enum
8006         s390_arch_option value instead of string and searching array.
8007         (s390_handle_option): Don't assert that global structures are in
8008         use.  Access variables via opts pointer.  Use error_at.  Don't use
8009         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8010         s390_handle_arch_option.
8011         (s390_option_override): Update call to s390_handle_arch_option.
8012         (s390_emit_prologue): Use %d format for s390_stack_size in
8013         diagnostic.  Use %wd for HOST_WIDE_INT.
8014         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8015         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8016         * config/s390/s390.opt (config/s390/s390-opts.h): New
8017         HeaderInclude entry.
8018         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8019         s390_arch_flags, s390_warn_framesize): New Variable entries.
8020         (s390_arch_option): New Enum and EnumValue entries.
8021         (march=): Use Enum instead of Var.
8022         (mstack-guard=, mstack-size=): Use UInteger and Var.
8023         (mtune=): Use Enum.
8024
8025 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8026
8027         * config/score/score.c (score_handle_option): Don't assert that
8028         global structures are in use.  Access target_flags via opts
8029         pointer.  Use value of -march= option to determine target_flags
8030         settings.
8031         * config/score/score.opt (march=): Use Enum.
8032         (score_arch): New Enum and EnumValue entries.
8033
8034 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8035
8036         * config/mep/mep.c (option_mtiny_specified): Remove.
8037         (mep_option_override): Move register handling for -mivc2 from
8038         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
8039         instead of option_mtiny_specified.
8040         (mep_handle_option): Access target_flags via opts pointer.  Don't
8041         assert that global structures are in use.  Defer part of -mivc2
8042         handling and move it to mep_option_override.
8043         * config/mep/mep.opt (IVC2): New Mask entry.
8044         (mivc2): Use Var and Defer instead of Mask.
8045
8046 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8047
8048         * config/v850/v850-opts.h: New.
8049         * config/v850/v850.c (small_memory): Replace with
8050         small_memory_physical_max array.  Make that array static const.
8051         (v850_handle_memory_option): Take integer value of argument.  Take
8052         gcc_options pointer, option text and location.  Return void.
8053         Update for changes to small memory structures.
8054         (v850_handle_option): Access target_flags via opts pointer.  Don't
8055         assert that global structures are in use.  Update calls to
8056         v850_handle_memory_option.
8057         (v850_encode_data_area): Update references to small memory settings.
8058         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
8059         (enum small_memory_type): Move to v850-opts.h.
8060         * config/v850/v850.opt (config/v850/v850-opts.h): New
8061         HeaderInclude entry.
8062         (small_memory_max): New Variable entry.
8063         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
8064         (mtda, mzda): Likewise.
8065
8066 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8067
8068         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8069         pointer.  Don't assert that global structures are in use.
8070
8071 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8072
8073         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8074         via opts pointer.  Don't assert that global structures are in use.
8075
8076 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8077
8078         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8079         (munix=93): Use Var.
8080         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8081         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8082         * config/pa/pa-opts.h: New.
8083         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8084         (pa_handle_option): Don't assert that global structures are in
8085         use.  Access target_flags via opts pointer.  Don't handle
8086         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8087         OPT_munix_98 here.
8088         (pa_option_override): Handle deferred OPT_mfixed_range_.
8089
8090 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8091
8092         * config/mn10300/mn10300-opts.h: New.
8093         * config/mn10300/mn10300.c (mn10300_processor,
8094         mn10300_tune_string): Remove.
8095         (mn10300_handle_option): Don't assert that global structures are
8096         in use.  Access mn10300_processor via opts pointer.  Don't handle
8097         OPT_mtune_ here.
8098         * config/mn10300/mn10300.h (enum processor_type): Move to
8099         mn10300-opts.h.
8100         (mn10300_processor): Remove.
8101         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8102         HeaderInclude entry.
8103         (mn10300_processor): New Variable entry.
8104         (mtune=): Use Var.
8105
8106 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8107
8108         * config/microblaze/microblaze.c: Don't include opts.h.
8109         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8110         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8111         (mno-clearbss): Use Var and Warn.
8112
8113 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8114
8115         * config/m32r/m32r-opts.h: New.
8116         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8117         (m32r_handle_option): Don't assert that global structures are in
8118         use.  Access target_flags and m32r_cache_flush_func via opts
8119         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
8120         OPT_mno_flush_trap here.
8121         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8122         include of m32r-opts.h.
8123         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8124         HeaderInclude entry.
8125         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8126         (mmodel=): Use Enum and Var.
8127         (m32r_model): New Enum and EnumValue entries.
8128         (mno-flush-trap): Use Var.
8129         (msdata=): Use Enum and Var.
8130         (m32r_sdata): New Enum and EnumValue entries.
8131
8132 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8133
8134         * config/m32c/m32c.c: Don't include opts.h.
8135         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8136         m32c_handle_option): Remove.
8137         (m32c_option_override): Check global_options_set.x_target_memregs
8138         instead of target_memregs_set.
8139         * config/m32c/m32c.h (target_memregs): Remove.
8140         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8141         variable.
8142
8143 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8144
8145         * config/iq2000/iq2000-opts.h: New.
8146         * config/iq2000/iq2000.c: Don't include opts.h.
8147         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
8148         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
8149         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8150         HeaderInclude entry.
8151         (iq2000_tune): New Variable entry.
8152         (march=): Add comment.  Use Enum.
8153         (iq2000_arch): New Enum and EnumValue entries.
8154         (mcpu=): Use Enum and Var.
8155         (iq2000_tune): New Enum and EnumValue entries.
8156
8157 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8158
8159         * config/ia64/ia64-opts.h: New.
8160         * config/ia64/ia64.c (ia64_tune): Remove.
8161         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8162         here.  Use error_at.
8163         (ia64_option_override): Handle deferred OPT_mfixed_range_.
8164         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8165         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8166         HeaderInclude entry.
8167         (ia64_tune): New Variable entry.
8168         (mfixed-range=): Use Defer and Var.
8169         (mtune=): Use Enum and Var.
8170         (ia64_tune): New Enum and EnumValue entries.
8171
8172 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8173
8174         * config/frv/frv-opts.h: New.
8175         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8176         frv-opts.h.
8177         (frv_cpu_type): Remove.
8178         * config/frv/frv.c: Don't include opts.h.
8179         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
8180         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
8181         (frv_cpu_type): New Variable entry.
8182         (frv_cpu): New Enum and EnumValue entries.
8183
8184 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8185
8186         * config/cris/cris.c (cris_handle_option): Access target_flags via
8187         opts pointer.  Don't assert that global structures are in use.
8188         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8189         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8190
8191 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8192
8193         * config/bfin/bfin-opts.h: New.
8194         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8195         bfin_si_revision, bfin_workarounds): Remove.
8196         (bfin_cpus): Make static const.
8197         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8198         not bfin_lib_id_given.
8199         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
8200         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
8201         pointer. Use error_at.  Don't assert that global structures are in use.
8202         * config/bfin/bfin.h: Include bfin-opts.h.
8203         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8204         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8205         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8206         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8207         entries.
8208
8209 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8210
8211         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8212         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8213         or -msoft-float here.
8214         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8215         -msoft-float and -mhard-float.
8216         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
8217         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8218         msoft-float.
8219         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8220         -msoft-float.
8221         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8222         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8223         not mhard-float.
8224         (LIBGCC_SPEC): Don't handle -msoft-float.
8225         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8226         -mhard-float.
8227         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8228         msoft-float.
8229         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8230         -mfloat-abi=*, not -msoft-float and -mhard-float.
8231         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8232         -msoft-float.
8233         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8234         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8235         mhard-float and msoft-float.
8236         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8237         mfloat-abi=soft in comments, not mhard-float and msoft-float.
8238         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8239         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8240         mhard-float.
8241         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8242         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8243         msoft-float.
8244         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8245         not mhard-float.
8246         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8247         not msoft-float.
8248
8249 2011-03-22  Richard Henderson  <rth@redhat.com>
8250
8251         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8252         TARGET_ABI_WINDOWS_NT.
8253         (alpha_output_function_end_prologue): Likewise.
8254         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8255         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8256         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8257         (trap, *movsi_nt_vms): Likewise.
8258         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8259         (*tablejump_osf_nt_internal): Remove.
8260         * config/alpha/predicates.md (input_operand): Only test Pmode.
8261
8262 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8263
8264         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8265         via opts pointer.  Use error_at.  Don't assert that global
8266         structures are in use.
8267
8268 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8269
8270         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8271         (ix86_handle_option): Access ix86_isa_flags and
8272         ix86_isa_flags_explicit via opts pointer.  Don't assert that
8273         global structures are in use.
8274         (ix86_function_specific_save, ix86_function_specific_restore):
8275         Update ix86_isa_flags_explicit field name.
8276         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
8277         (ix86_isa_flags_explicit): Rename TargetSave entry to
8278         x_ix86_isa_flags_explicit.
8279
8280 2011-03-22  Richard Henderson  <rth@redhat.com>
8281
8282         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8283         (alpha_option_override, direct_return): Likewise.
8284         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8285         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8286         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8287         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8288         (alpha_expand_epilogue, alpha_end_function): Likewise.
8289         (alpha_init_libfuncs): Likewise.
8290         (struct machine_function): Remove unicosmk members.
8291         (print_operand) ['t']: Remove.
8292         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8293         unicosmk_output_module_name, unicosmk_output_common,
8294         current_section_align, unicosmk_output_text_section_asm_op,
8295         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8296         unicosmk_section_type_flags, unicosmk_unique_section,
8297         unicosmk_asm_named_section, unicosmk_insert_attributes,
8298         unicosmk_output_align, unicosmk_defer_case_vector,
8299         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
8300         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
8301         unicosmk_output_ssib, unicosmk_add_call_info_word,
8302         unicosmk_extern_head, unicosmk_output_default_externs,
8303         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
8304         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
8305         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
8306         * config/alpha/alpha-protos.h: Update.
8307         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
8308         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
8309         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
8310         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
8311         (*mulsi_se, mulvsi3): Likewise.
8312         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
8313         (*divmodsi_internal, call, call_value, realign): Likewise.
8314         (moddi3, umoddi3): Likewise; remove duplicate expander.
8315         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
8316         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
8317         (*movdi_nofix): Remove r/U alternative.
8318         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
8319         * config/alpha/constraints.md ("U"): Remove.
8320         * config/alpha/predicates.md (call_operand"): Don't test
8321         TARGET_ABI_UNICOSMK.
8322
8323 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8324
8325         * target.def (handle_option): Take gcc_options and
8326         cl_decoded_option pointers and location_t.
8327         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
8328         * doc/tm.texi: Regenerate.
8329         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
8330         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
8331         * lto-opts.c (lto_reissue_options): Generate option structure for
8332         targetm.handle_option call.
8333         * opts.c (target_handle_option): Update call to
8334         targetm.handle_option.  Remove assertions about values now passed
8335         down to hook.
8336         * targhooks.c (default_target_handle_option): New.
8337         * targhooks.h (default_target_handle_option): Declare.
8338         * config/alpha/alpha.c: Include opts.h.
8339         (alpha_handle_option): Update to new hook interface.
8340         * config/arm/arm.c: Include opts.h.
8341         (arm_handle_option): Update to new hook interface.
8342         * config/arm/t-arm (arm.o): Update dependencies.
8343         * config/bfin/bfin.c: Include opts.h.
8344         (bfin_handle_option): Update to new hook interface.
8345         * config/cris/cris.c: Include opts.h.
8346         (cris_handle_option): Update to new hook interface.
8347         * config/frv/frv.c: Include opts.h.
8348         (frv_handle_option): Update to new hook interface.
8349         * config/i386/i386.c: Include opts.h.
8350         (ix86_handle_option): Update to new hook interface.
8351         (ix86_valid_target_attribute_inner_p): Generate option structure
8352         for call to ix86_handle_option.
8353         * config/i386/t-i386 (i386.o): Update dependencies.
8354         * config/ia64/ia64.c: Include opts.h.
8355         (ia64_handle_option): Update to new hook interface.
8356         * config/ia64/t-ia64 (ia64.o): Update dependencies.
8357         * config/iq2000/iq2000.c: Include opts.h.
8358         (iq2000_handle_option): Update to new hook interface.
8359         * config/m32c/m32c.c: Include opts.h.
8360         (m32c_handle_option): Update to new hook interface.
8361         * config/m32r/m32r.c: Include opts.h.
8362         (m32r_handle_option): Update to new hook interface.
8363         * config/m68k/m68k.c: Include opts.h.
8364         (m68k_handle_option): Update to new hook interface.
8365         * config/mep/mep.c: Include opts.h.
8366         (mep_handle_option): Update to new hook interface.
8367         * config/microblaze/microblaze.c: Include opts.h.
8368         (microblaze_handle_option): Update to new hook interface.
8369         * config/mips/mips.c: Include opts.h.
8370         (mips_handle_option): Update to new hook interface.
8371         * config/mn10300/mn10300.c: Include opts.h.
8372         (mn10300_handle_option): Update to new hook interface.
8373         * config/pa/pa.c: Include opts.h.
8374         (pa_handle_option): Update to new hook interface.
8375         * config/pdp11/pdp11.c: Include opts.h.
8376         (pdp11_handle_option): Update to new hook interface.
8377         * config/rs6000/rs6000.c: Include opts.h.
8378         (rs6000_handle_option): Update to new hook interface.
8379         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
8380         * config/rx/rx.c: Include opts.h.
8381         (rx_handle_option): Update to new hook interface.
8382         * config/s390/s390.c: Include opts.h.
8383         (s390_handle_option): Update to new hook interface.
8384         * config/score/score.c: Include opts.h.
8385         (score_handle_option): Update to new hook interface.
8386         * config/sh/sh.c: Include opts.h.
8387         (sh_handle_option): Update to new hook interface.
8388         * config/sparc/sparc.c: Include opts.h.
8389         (sparc_handle_option): Update to new hook interface.
8390         * config/v850/v850.c: Include opts.h.
8391         (v850_handle_option): Update to new hook interface.
8392
8393 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8394
8395         * gcc.c (driver_unknown_option_callback): Only permit and save
8396         unknown -Wno- options.
8397         (driver_wrong_lang_callback): Save options directly instead of via
8398         driver_unknown_option_callback.
8399
8400 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
8401
8402         * combine.c (simplify_set): Try harder to find the best CC mode when
8403         simplifying a nested COMPARE on the RHS.
8404
8405 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8406
8407         * config/alpha/gnu.h: Remove.
8408         * config/arc: Remove directory.
8409         * config/arm/netbsd.h: Remove.
8410         * config/arm/t-pe: Remove.
8411         * config/crx: Remove directory.
8412         * config/i386/netbsd.h: Remove.
8413         * config/m68hc11: Remove directory.
8414         * config/m68k/uclinux-oldabi.h: Remove.
8415         * config/mcore/mcore-pe.h: Remove.
8416         * config/mcore/t-mcore-pe: Remove.
8417         * config/netbsd-aout.h: Remove.
8418         * config/rs6000/gnu.h: Remove.
8419         * config/sh/sh-symbian.h: Remove.
8420         * config/sh/symbian-base.c: Remove.
8421         * config/sh/symbian-c.c: Remove.
8422         * config/sh/symbian-cxx.c: Remove.
8423         * config/sh/symbian-post.h: Remove.
8424         * config/sh/symbian-pre.h: Remove.
8425         * config/sh/t-symbian: Remove.
8426         * config/svr3.h: Remove.
8427         * config/vax/netbsd.h: Remove.
8428         * config.build: Don't handle i[34567]86-*-pe.
8429         * config.gcc: Remove handling of deprecations for most deprecated
8430         targets.
8431         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
8432         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
8433         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
8434         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
8435         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
8436         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
8437         Remove cases.
8438         * config.host: Don't handle i[34567]86-*-pe.
8439         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
8440         (ASM_SPEC32): Don't handle -mcall-gnu.
8441         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
8442         -mcall-gnu.
8443         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
8444         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
8445         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8446         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
8447         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
8448         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
8449         conditional on SYMBIAN.
8450         * configure.ac: Don't handle powerpc*-*-gnu*.
8451         * configure: Regenerate.
8452         * doc/extend.texi (interrupt attribute): Don't mention CRX.
8453         * doc/install-old.texi (m6811, m6812): Don't mention.
8454         * doc/install.texi (arc-*-elf*): Don't document multilib option.
8455         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
8456         (m68k-uclinuxoldabi): Don't mention.
8457         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
8458         Remove.
8459         (-mcall-gnu): Remove.
8460         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
8461         families): Remove constraint documentation.
8462
8463 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
8464
8465         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
8466         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
8467         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
8468
8469 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
8470
8471         PR target/48226
8472         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
8473         vector when peeking at the next token for vector, don't expand the
8474         keywords.
8475
8476 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
8477
8478         * config/avr/avr-protos.h (expand_epilogue): Change prototype
8479         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
8480         * config/avr/avr.c (init_cumulative_args)
8481         (avr_function_arg_advance): Use it.
8482         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
8483         sibcall epilogues.
8484         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
8485         (avr_function_ok_for_sibcall): ...this new function.
8486         (avr_lookup_function_attribute1): New static Function.
8487         (avr_naked_function_p, interrupt_function_p)
8488         (signal_function_p, avr_OS_task_function_p)
8489         (avr_OS_main_function_p): Use it.
8490         * config/avr/avr.md ("sibcall", "sibcall_value")
8491         ("sibcall_epilogue"): New expander.
8492         ("*call_insn", "*call_value_insn"): New insn.
8493         ("call_insn", "call_value_insn"): Remove
8494         ("call", "call_value", "epilogue"): Change expander to handle
8495         sibling calls.
8496
8497 2011-03-21  Nick Clifton  <nickc@redhat.com>
8498
8499         * doc/invoke.texi (Overall Options): Move closing brace to end of
8500         options list.
8501         (Optimization Options): Add missing @gol.
8502         (Directory Options): Likewise.
8503         (i386 and x86-64 Options): Likewise.
8504         (RS6000 and PowerPC Options): Likewise.
8505         (i386 and x86-64 Windows Options): Likewise.
8506         (V850 Options): Add text missing from descriptions.
8507
8508 2011-03-22  Richard Henderson  <rth@redhat.com>
8509
8510         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
8511         (avr_incoming_return_addr_rtx): New.
8512         (emit_push_byte): New.
8513         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
8514         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
8515         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
8516         (emit_pop_byte): New.
8517         (expand_epilogue): Use it.  Pop frame pointer by bytes.
8518         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
8519         (INCOMING_RETURN_ADDR_RTX): New.
8520         (INCOMING_FRAME_SP_OFFSET): New.
8521         (ARG_POINTER_CFA_OFFSET): New.
8522         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
8523         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
8524         (pophi): Remove.
8525
8526         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
8527
8528 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8529
8530         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8531         (FUNCTION_ARG_ADVANCE): Likewise.
8532         * tm.texi.in: Change references to them to hook references.
8533         * tm.texi: Regenerate.
8534         * targhooks.c (default_function_arg): Eliminate check for target
8535         macro.
8536         (default_function_incoming_arg): Likewise.
8537         (default_function_arg_advance): Likewise.
8538         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8539         (function_arg_advance): Likewise.
8540         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8541
8542 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8543
8544         * tree.c (build_call_1): New function.
8545         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
8546
8547 2011-03-22  Richard Guenther  <rguenther@suse.de>
8548
8549         PR tree-optimization/48228
8550         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
8551         for single-arg PHIs.
8552
8553 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
8554
8555         PR rtl-optimization/48143
8556         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
8557         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
8558         sse2_cvtps2pd): Likewise.
8559
8560 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8561
8562         * recog.c (canonicalize_change_group): Use validate_unshare_change.
8563
8564 2011-03-22  Richard Guenther  <rguenther@suse.de>
8565
8566         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
8567         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
8568         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
8569         and REALIGN_LOAD_EXPR.
8570         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
8571         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
8572         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
8573         DOT_PROD_EXPR case ...
8574         (expand_expr_real_2): ... here.
8575         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
8576         and REALIGN_LOAD_EXPR.
8577         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
8578         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
8579         (vect_create_epilog_for_reduction): Likewise.
8580         (vectorizable_reduction): Likewise.
8581         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
8582         * tree-vect-stmts.c (vectorizable_load): Likewise.
8583
8584 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
8585
8586         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
8587
8588 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8589
8590         * config/s390/s390.c (s390_delegitimize_address): Fix offset
8591         handling for PLTOFF/GOTOFF.
8592
8593 2011-03-22  Nick Clifton  <nickc@redhat.com>
8594
8595         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
8596         trailing backslash from the end of the macro definition.
8597
8598 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8599
8600         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
8601         and PLT unspecs.
8602
8603 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
8604
8605         * expr.h (prepare_operand): Move to...
8606         * optabs.h (prepare_operand): ...here and change the insn code
8607         parameter from "int" to "enum insn_code".
8608         (insn_operand_matches): Declare.
8609         * expr.c (init_expr_target): Use insn_operand_matches.
8610         (compress_float_constant): Likewise.
8611         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
8612         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
8613         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
8614         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
8615         Likewise.
8616         (gen_cond_trap): Likewise.
8617         (prepare_operand): Likewise.  Change icode to an insn_code.
8618         (insn_operand_matches): New function.
8619         * reload.c (find_reloads_address_1): Use insn_operand_matches.
8620         * reload1.c (gen_reload): Likewise.
8621         * targhooks.c (default_secondary_reload): Likewise.
8622
8623 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
8624
8625         * config/alpha/alpha.md (unspec): New define_c_enum.
8626         (unspecv): Ditto.
8627
8628 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
8629
8630         PR debug/48214
8631         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
8632         between a call and its CALL_ARG_LOCATION note.
8633
8634 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
8635
8636         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
8637
8638 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
8639
8640         PR c/42544
8641         PR c/48197
8642         * c-common.c (shorten_compare): If primopN is first sign-extended
8643         to opN and then zero-extended to result type, set primopN to opN.
8644
8645 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
8646
8647         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
8648         for barrier handlers.
8649
8650 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
8651
8652         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
8653         UNSPEC constants to be in the unspec enumeration, and redefine
8654         all UNSPECV constants to be in the unspecv enumeration, so that
8655         dumps print which unspec/unspec_volatile this is.
8656         * config/rs6000/vector.md (UNSPEC_*): Ditto.
8657         * config/rs6000/paired.md (UNSPEC_*): Ditto.
8658         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
8659         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
8660         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
8661
8662         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
8663         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
8664         UNSPECV_LWSYNC, since these are used as unspec_volatile.
8665         * config/rs6000/sync.md (isync, lwsync): Ditto.
8666
8667 2011-03-21  Richard Guenther  <rguenther@suse.de>
8668
8669         * params.def (lto-min-partition): Fix typo.
8670
8671 2011-03-21  Richard Guenther  <rguenther@suse.de>
8672
8673         PR c/47939
8674         * c-decl.c (grokdeclarator): Drop to the main variant only
8675         for array types.  Drop flag_gen_aux_info check.
8676
8677 2011-03-21  Richard Guenther  <rguenther@suse.de>
8678
8679         PR translation/47911
8680         * params.def (lto-partitions): Fix typo.
8681         (lto-min-partition): Fix wording.
8682
8683 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
8684
8685         * config/rs6000/t-freebsd: Remove duplication from file.
8686
8687 2011-03-21  Richard Guenther  <rguenther@suse.de>
8688
8689         PR middle-end/47661
8690         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
8691
8692 2011-03-21  Richard Guenther  <rguenther@suse.de>
8693
8694         PR lto/48210
8695         * params.def (lto-partitions): Require at least 1 partition.
8696
8697 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8698
8699         * gthr-solaris.h: Remove.
8700         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
8701         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
8702         (LIB_SPEC): Likewise.
8703         * config/sol2.opt (threads): Remove.
8704         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
8705         (sparc*-*-solaris2*): Likewise.
8706         * configure.ac (enable_threads): Enable solaris support.
8707         * configure: Regenerate.
8708         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
8709         * doc/install.texi (Configuration, --enable-threads=lib): Remove
8710         solaris.
8711
8712 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8713
8714         * config.gcc: Obsolete *-*-solaris2.8*.
8715         * doc/install.texi (Specific, *-*-solaris2*): Document it.
8716
8717 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8718
8719         PR bootstrap/48135
8720         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
8721         reference.  Solaris 8 perl works.
8722
8723 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8724
8725         PR bootstrap/48135
8726         * doc/install.texi (Prerequisites): Move jar etc. up.
8727         Explain support library version requirements.
8728
8729 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8730
8731         PR bootstrap/48135
8732         * doc/install.texi (Prerequisites): Move Perl to build
8733         requirements.  Always necessary on Solaris 2 with Sun ld.
8734
8735 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8736
8737         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
8738         binutils 2.21.
8739         (Specific, i?86-*-solaris2.[89]): Likewise.
8740         (Specific, i?86-*-solaris2.10): Likewise.
8741         (Specific, mips-sgi-irix6): Likewise.
8742         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
8743         Update for binutils 2.21.
8744
8745 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8746
8747         * configure.ac (gcc_cv_lto_plugin): Fix typo.
8748         Allow -fuse-linker-plugin for non-default plugin linker.
8749         * configure: Regenerate.
8750
8751 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8752
8753         PR bootstrap/48167
8754         * gengtype.c (files_rules): Added rule for cp/parser.h.
8755
8756 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
8757
8758         PR target/48213
8759         * config/s390/s390.c (s390_delegitimize_address): Don't call
8760         lowpart_subreg if orig_x has BLKmode.
8761
8762 2011-03-21  Kai Tietz  <ktietz@redhat.com>
8763
8764         PR target/12171
8765         * doc/plugins.texi: Adjust documentation for plugin register_callback.
8766         * tree.h (attribute_spec): Add new member affects_type_identity.
8767         * attribs.c (empty_attribute_table): Adjust attribute_spec
8768         initializers.
8769         * config/alpha/alpha.c: Likewise.
8770         * config/arc/arc.c: Likewise.
8771         * config/arm/arm.c: Likewise.
8772         * config/avr/avr.c: Likewise.
8773         * config/bfin/bfin.c: Likewise.
8774         * config/crx/crx.c: Likewise.
8775         * config/darwin.h: Likewise.
8776         * config/h8300/h8300.c: Likewise.
8777         * config/i386/cygming.h: Likewise.
8778         * config/i386/i386.c: Likewise.
8779         * config/ia64/ia64.c: Likewise.
8780         * config/m32c/m32c.c: Likewise.
8781         * config/m32r/m32r.c: Likewise.
8782         * config/m68hc11/m68hc11.c: Likewise.
8783         * config/m68k/m68k.c: Likewise.
8784         * config/mcore/mcore.c: Likewise.
8785         * config/mep/mep.c: Likewise.
8786         * config/microblaze/microblaze.c: Likewise.
8787         * config/mips/mips.c: Likewise.
8788         * config/rs6000/rs6000.c: Likewise.
8789         * config/rx/rx.c: Likewise.
8790         * config/sh/sh.c: Likewise.
8791         * config/sol2.h: Likewise.
8792         * config/sparc/sparc.c: Likewise.
8793         * config/spu/spu.c: Likewise.
8794         * config/stormy16/stormy16.c: Likewise.
8795         * config/v850/v850.c: Likewise.
8796
8797 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
8798
8799         * simplify-rtx.c (simplify_binary_operation_1): Handle
8800         (xor (and A B) C) case when B and C are both constants.
8801
8802 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
8803
8804         * tree-dfa.c (add_referenced_var): Fix typo in comment.
8805
8806 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
8807
8808         PR bootstrap/48168
8809         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
8810
8811 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
8812
8813         PR rtl-optimization/48156
8814         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
8815         assume df and df_lr are not NULL.
8816
8817 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8818
8819         PR debug/48023
8820         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
8821         between a call and its CALL_ARG_LOCATION note.
8822
8823 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
8824
8825         PR debug/48178
8826         * config/sh/sh.c (find_barrier): Don't emit a constant pool
8827         between a call and its corresponding CALL_ARG_LOCATION note.
8828
8829 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
8830
8831         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
8832         instead of loop. Use HARD_REGISTER_NUM_P predicate.
8833         * haifa-sched.c (setup_ref_regs): Ditto.
8834         * caller-save.c (add_used_regs_1): Ditto.
8835         * dse.c (look_for_hardregs): Ditto.
8836         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
8837         * sched-rgn.c (check_live_1): Ditto.
8838
8839 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
8840
8841         * c-decl.c (diagnose_mismatched_decls): Give an error for
8842         redefining a typedef with variably modified type.
8843
8844 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
8845
8846         * c-decl.c (grokfield): Don't allow typedefs for structures or
8847         unions with no tag by default.
8848         * doc/extend.texi (Unnamed Fields): Update.
8849
8850 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
8851
8852         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8853         Rewrite using indirect functions.
8854         (lwp_slwpcb): Ditto.
8855         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
8856         (avx_vinsertf128<mode>): Ditto.
8857
8858 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8859
8860         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
8861         unspecs.
8862
8863 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8864
8865         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
8866         splitting between a call and its corresponding CALL_ARG_LOCATION note.
8867
8868 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
8869
8870         PR rtl-optimization/48170
8871         * gcse.c (hoist_code): Remove bogus asserts.
8872
8873 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
8874
8875         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
8876         computation for prologue/epilogue.
8877
8878 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8879
8880         * Makefile.in (check-consistency): Remove.
8881
8882 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
8883
8884         PR debug/48176
8885         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
8886         arange_table_in_use is 0, but either text_section_used or
8887         cold_text_section_used is true.  Don't call it if
8888         !info_section_emitted.
8889
8890 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
8891
8892         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
8893         FUNCTION_VALUE_REGNO_P): Remove.
8894         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
8895         Remove.
8896         * config/avr/avr.c (avr_ret_register): Make static inline.
8897         (avr_function_value_regno_p): New function.
8898         (avr_libcall_value): Make static. Add 'func' argument.
8899         (avr_function_value): Make static. Rename 'func' argument to
8900         'fn_decl_or_type', forward it to avr_libcall_value. Call
8901         avr_ret_register function instead of RET_REGISTER macro.
8902         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8903
8904 2011-03-18  Jason Merrill  <jason@redhat.com>
8905
8906         PR c++/23372
8907         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
8908
8909 2011-03-18  Richard Guenther  <rguenther@suse.de>
8910
8911         * doc/install.texi (--enable-gold): Remove.
8912         (--with-plugin-ld): Document.
8913         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
8914
8915 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
8916
8917         PR middle-end/47790
8918         * expr.c (optimize_bitfield_assignment_op): Revamp to work
8919         again after expansion changes.
8920
8921 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
8922
8923         * combine.c (try_combine): Do simplification only call of
8924         subst() on i2 even when i1 is present. Update comments.
8925
8926 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8927
8928         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
8929         and UNSPEC_PCREL_SYMOFF.
8930
8931 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8932
8933         * config/s390/s390.md: Use define_c_enum for the unspec constant
8934         definitions.
8935
8936 2011-03-18  Richard Henderson  <rth@redhat.com>
8937             Jakub Jelinek  <jakub@redhat.com>
8938
8939         PR bootstrap/48161
8940         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
8941         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
8942
8943 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8944
8945         PR middle-end/47725
8946         * combine.c (cant_combine_insn_p): Don't check zero/sign
8947         extended hard registers.
8948
8949 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8950
8951         PR middle-end/47725
8952         * combine.c (cant_combine_insn_p): Check zero/sign extended
8953         hard registers.
8954
8955 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
8956
8957         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8958         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
8959         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
8960         Change return type to bool.
8961         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8962
8963 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
8964
8965         PR debug/48163
8966         * var-tracking.c (prepare_call_arguments): If CALL target
8967         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
8968         pc instead of looking it up using cselib_lookup and use
8969         Pmode for it if x has VOIDmode.
8970         * dwarf2out.c (gen_subprogram_die): If also both first and
8971         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
8972
8973         PR debug/48163
8974         * function.c (assign_parms): For data.passed_pointer parms
8975         use MEM of data.entry_parm instead of data.entry_parm itself
8976         as DECL_INCOMING_RTL.
8977         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
8978         also when passed and declared mode is the same, DECL_RTL
8979         is a MEM with pseudo as address and DECL_INCOMING_RTL is
8980         a MEM too.
8981
8982 2011-03-16  Jeff Law  <law@redhat.com>
8983
8984         PR rtl-optimization/37273
8985         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8986         handle them like argument loads from stack slots.  Do not double
8987         count memory for memory constants and argument loads from stack slots.
8988
8989 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8990
8991         PR debug/48160
8992         * var-tracking.c (prepare_call_arguments): Check SUBREG.
8993
8994 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8995
8996         PR target/48171
8997         * config/i386/i386.opt: Add Save to -mavx and -mfma.
8998
8999 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9000
9001         PR bootstrap/48153
9002         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9003         if dwarf_strict.
9004         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9005         Clear call_arg_locations and call_arg_loc_last always.
9006
9007         PR middle-end/48152
9008         * var-tracking.c (prepare_call_arguments): If argument needs to be
9009         passed by reference, adjust argtype and mode.
9010
9011 2011-03-17  Richard Guenther  <rguenther@suse.de>
9012
9013         PR middle-end/48134
9014         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9015         a value make sure to fold the statement.
9016
9017 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
9018
9019         PR target/43872
9020         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9021         return condition with !cfun->calls_alloca.
9022
9023 2011-03-17  Richard Guenther  <rguenther@suse.de>
9024
9025         PR bootstrap/48148
9026         * lto-cgraph.c (input_overwrite_node): Clear the abstract
9027         origin for decls in other ltrans units.
9028         (input_varpool_node): Likewise.
9029
9030 2011-03-17  Richard Guenther  <rguenther@suse.de>
9031
9032         PR middle-end/48165
9033         * tree-object-size.c (compute_object_offset): Properly return
9034         the offset operand of MEM_REFs as sizetype.
9035
9036 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9037
9038         PR rtl-optimization/48141
9039         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9040         * dse.c: Include params.h.
9041         (active_local_stores_len): New variable.
9042         (add_wild_read, dse_step1): Clear it when setting active_local_stores
9043         to NULL.
9044         (record_store, check_mem_read_rtx): Decrease it when removing
9045         from the chain.
9046         (scan_insn): Likewise.  Increase it when adding to chain, if it
9047         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9048         set active_local_stores to NULL before the addition.
9049         * Makefile.in (dse.o): Depend on $(PARAMS_H).
9050
9051         PR rtl-optimization/48141
9052         * dse.c (record_store): If no positions are needed in an insn
9053         that cannot be deleted, at least unchain it from active_local_stores.
9054
9055 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
9056
9057         PR debug/47510
9058         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9059         (lookup_type_die_strip_naming_typedef): ... here.
9060         (get_context_die): Use it.
9061         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9062         the anonymous struct named by the naming typedef.
9063
9064 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9065
9066         PR target/48154
9067         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9068         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9069
9070 2011-03-16  Jeff Law  <law@redhat.com>
9071
9072         * tree-vrp.c (identify_jump_threads): Slightly simplify type
9073         check for operands of conditional.  Allow type to be a pointer.
9074
9075 2011-03-16  Richard Guenther  <rguenther@suse.de>
9076
9077         PR tree-optimization/48149
9078         * fold-const.c (fold_binary_loc): Fold
9079         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9080
9081 2011-03-16  Richard Guenther  <rguenther@suse.de>
9082
9083         PR tree-optimization/26134
9084         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9085         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9086         (non_rewritable_mem_ref_base): Handle complex type component
9087         accesses, constrain offsets for vector and complex extracts
9088         more properly.
9089
9090 2011-03-16  Richard Guenther  <rguenther@suse.de>
9091
9092         PR tree-optimization/48146
9093         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9094         operands avoiding the need for renaming.
9095
9096 2011-03-16  Richard Guenther  <rguenther@suse.de>
9097
9098         * gimple-fold.c (maybe_fold_reference): Open-code relevant
9099         constant folding.  Move MEM_REF canonicalization first.
9100         Rely on fold_const_aggregate_ref for initializer folding.
9101         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9102
9103 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9104
9105         PR middle-end/48136
9106         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9107         arg0/arg1 or their arguments are always fold converted to matching
9108         types.
9109
9110         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9111         to nargs.
9112
9113 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9114
9115         PR lto/46944
9116         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9117         Handle in-tree gold.
9118         (ld_vers): Extract binutils version for gold.
9119         (gcc_cv_ld_hidden): Handle gold here.
9120         (gcc_cv_lto_plugin): Determine level of linker plugin support.
9121         * configure: Regenerate.
9122         * config.in: Regenerate.
9123         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9124         -fuse-linker-plugin otherwise.
9125         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
9126         (LINK_COMMAND_SPEC): Use it.
9127         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9128
9129 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9130
9131         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9132         * calls.c: Remove debug.h include.
9133         (emit_call_1): Don't call virtual_call_token debug hook.
9134         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9135         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9136         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9137         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9138         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9139         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9140         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9141         dwarf2out_virtual_call): Remove.
9142         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9143         copy_call_info and virtual_call hooks.
9144         (dwarf2out_init): Don't initialize vcall_insn_table,
9145         debug_dcall_section and debug_vcall_section.
9146         (prune_unused_types): Don't mark nodes from dcall_table.
9147         (dwarf2out_finish): Don't output dcall or vcall tables.
9148         * final.c (final_scan_insn): Don't call direct_call or
9149         virtual_call debug hooks.
9150         * debug.h (struct gcc_debug_hooks): Remove direct_call,
9151         virtual_call_token, copy_call_info and virtual_call hooks.
9152         (debug_nothing_uid): Remove prototype.
9153         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9154         copy_call_info and virtual_call hooks.
9155         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9156         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9157         * debug.c (do_nothing_debug_hooks): Likewise.
9158         (debug_nothing_uid): Remove.
9159         * doc/invoke.texi (-fenable-icf-debug): Remove.
9160         * common.opt (-fenable-icf-debug): Likewise.
9161
9162         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9163         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9164         call's MEM.  Handle functions returning aggregate through a hidden
9165         first pointer.  For virtual calls add clobbered pc to call arguments
9166         chain.
9167         * dwarf2out.c (gen_subprogram_die): Emit
9168         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9169         can't be emitted.
9170
9171         PR debug/45882
9172         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9173         * rtl.h (ENTRY_VALUE_EXP): Define.
9174         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9175         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9176         * print-rtl.c (print_rtx): Likewise.
9177         * gengtype.c (adjust_field_rtx_def): Likewise.
9178         * var-tracking.c (vt_add_function_parameter): Adjust
9179         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9180         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9181         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9182         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9183         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9184
9185         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9186         Call var_location debug hook even on CALL_INSNs.
9187         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9188         * rtl.def (ENTRY_VALUE): New.
9189         * dwarf2out.c: Include cfglayout.h.
9190         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9191         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9192         (struct call_arg_loc_node): New type.
9193         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9194         tail_call_site_count): New variables.
9195         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9196         DW_TAG_GNU_call_site_parameter.
9197         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9198         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9199         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9200         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9201         and DW_AT_GNU_all_source_call_sites.
9202         (mem_loc_descriptor): Handle ENTRY_VALUE.
9203         (add_src_coords_attributes): Don't add enything if
9204         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9205         (dwarf2out_abstract_function): Save and clear call_arg_location,
9206         call_site_count and tail_call_site_count around dwarf2out_decl call.
9207         (gen_call_site_die): New function.
9208         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9209         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9210         (dwarf2out_function_decl): Clear call_arg_locations,
9211         call_arg_loc_last, set call_site_count and tail_call_site_count
9212         to -1 and free block_map.
9213         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9214         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
9215         followed by any real instructions.
9216         (dwarf2out_begin_function): Set call_site_count and
9217         tail_call_site_count to 0.
9218         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9219         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9220         attempt to force a DIE for it and worst case remove the attribute.
9221         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9222         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9223         the decl itself.
9224         * var-tracking.c: Include tm_p.h.
9225         (vt_stack_adjustments): For calls call note_register_arguments.
9226         (argument_reg_set): New variable.
9227         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9228         ensure the VALUE is resolved.
9229         (call_arguments): New variable.
9230         (prepare_call_arguments): New function.
9231         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9232         (struct expand_loc_callback_data): Add ignore_cur_loc field.
9233         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9234         always use the best expression.
9235         (vt_expand_loc): Add ignore_cur_loc argument.
9236         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9237         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9238         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9239         note for all calls.
9240         (vt_add_function_parameter): Use cselib_lookup_from_insn.
9241         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9242         argument.  Don't call cselib_preserve_only_values and
9243         cselib_reset_table.
9244         (note_register_arguments): New function.
9245         (vt_initialize): Compute argument_reg_set.  Call
9246         vt_add_function_parameters before processing basic blocks instead of
9247         afterwards.  For calls call prepare_call_arguments before calling
9248         cselib_process_insn.
9249         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9250         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9251         (var-tracking.o): Depend on $(TM_P_H).
9252         * cfglayout.h (insn_scope): New prototype.
9253         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9254         * cfglayout.c (insn_scope): No longer static.
9255         * insn-notes.def (CALL_ARG_LOCATION): New.
9256         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9257         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9258         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9259         nothing for DECL_EXTERNAL BLOCK_VARS.
9260
9261 2011-03-16  Alan Modra  <amodra@gmail.com>
9262
9263         PR target/45844
9264         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9265         create invalid offset address for vsx splat insn.
9266         * config/rs6000/predicates.md (splat_input_operand): New.
9267         * config/rs6000/vsx.md (vsx_splat_*): Use it.
9268
9269 2011-03-15  Xinliang David Li  <davidxl@google.com>
9270
9271         PR c/47837
9272         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9273         (normalize_preds): New function.
9274         (is_use_properly_guarded): Normalize def predicates.
9275
9276 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9277
9278         PR target/46788
9279         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9280         in the output template.
9281
9282 2011-03-15  Richard Guenther  <rguenther@suse.de>
9283
9284         PR middle-end/47650
9285         * tree-pretty-print.c (dump_function_declaration): Properly
9286         dump unprototyped and varargs function types.
9287
9288 2011-03-15  Richard Guenther  <rguenther@suse.de>
9289
9290         PR tree-optimization/13954
9291         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9292         and friends.
9293
9294 2011-03-15  Richard Guenther  <rguenther@suse.de>
9295
9296         PR tree-optimization/48037
9297         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9298         selects into BIT_FIELD_REFs.
9299         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
9300         vector select.
9301
9302 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
9303
9304         PR tree-optimization/48129
9305         * builtins.c (fold_builtin_snprintf): Convert to type of
9306         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
9307         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
9308
9309 2011-03-15  Richard Guenther  <rguenther@suse.de>
9310
9311         PR tree-optimization/41490
9312         * tree-ssa-dce.c (propagate_necessity): Handle returns without
9313         value but with VUSE.
9314         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
9315         return statements.
9316         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
9317         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
9318         * tree-tailcall.c (find_tail_calls): Ignore returns.
9319
9320 2011-03-15  Richard Guenther  <rguenther@suse.de>
9321
9322         PR middle-end/48031
9323         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
9324         or variable-indexed array accesses when in gimple form.
9325
9326 2011-03-15  Richard Guenther  <rguenther@suse.de>
9327
9328         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
9329
9330 2011-03-15  Alan Modra  <amodra@gmail.com>
9331
9332         PR target/48032
9333         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
9334         presume symbol_refs without a symbol_ref_decl are suitably
9335         aligned, nor other trees we may see here.  Handle anchor symbols.
9336         (legitimate_constant_pool_address_p): Comment.  Add mode param.
9337         Check cmodel=medium addresses.  Adjust all calls.
9338         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
9339         creating cmodel=medium optimized access to locals.
9340         * config/rs6000/constraints.md (R): Pass QImode to
9341         legitimate_constant_pool_address_p.
9342         * config/rs6000/predicates.md (input_operand): Pass mode to
9343         legitimate_constant_pool_address_p.
9344         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
9345         Update prototype.
9346
9347 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9348
9349         PR target/48053
9350         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
9351         64-bit constants being loaded into registers other than GPRs such
9352         as loading 0 into a VSX register.
9353
9354 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9355
9356         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
9357
9358 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9359
9360         PR middle-end/47917
9361         * builtins.c (fold_builtin_snprintf): New function.
9362         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
9363         (fold_builtin_4): Likewise.
9364
9365         PR middle-end/38878
9366         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
9367         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
9368         and C - X == X also strip nops from +/-/p+ operand.
9369         When optimizing -X == C, fold C to arg0's type.
9370
9371         PR debug/47946
9372         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
9373         emit it as add_AT_int instead of add_AT_unsigned.
9374
9375 2011-03-14  Tom Tromey  <tromey@redhat.com>
9376
9377         * unwind-dw2.c: Include sys/sdt.h if it exists.
9378         (_Unwind_DebugHook): Use STAP_PROBE2.
9379         * config.in, configure: Rebuild.
9380         * configure.ac: Check for sys/sdt.h.
9381
9382 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
9383
9384         * config/i386/i386.md (ROUND_FLOOR): New constant.
9385         (ROUND_CEIL): Ditto.
9386         (ROUND_TRUNC): Ditto.
9387         (ROUND_MXCSR): Ditto.
9388         (ROUND_NO_EXC): Ditto.
9389         (rint<mode>2): Use new defines instead of numerical constants.
9390         (floor<mode>2): Ditto.
9391         (ceil<mode>2): Ditto.
9392         (btrunc<mode>2): Ditto.
9393         * config/i386/i386-builtin-types.def: Define ROUND function type
9394         aliases.
9395         * config/i386/i386.c (enum ix86_builtins): Add
9396         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
9397         (struct builtin_description): Add
9398         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
9399         (ix86_expand_sse_round): New static function.
9400         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
9401         function types.
9402         (ix86_builtin_vectorized_function): Handle
9403         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9404
9405 2011-03-14  Tom Tromey  <tromey@redhat.com>
9406
9407         * c-parser.c (c_parser_asm_string_literal): Clear
9408         warn_overlength_strings.
9409
9410 2011-03-14  Tom Tromey  <tromey@redhat.com>
9411
9412         * c-parser.c (disable_extension_diagnostics): Save
9413         warn_overlength_strings.
9414         (restore_extension_diagnostics): Restore warn_overlength_strings.
9415
9416 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9417
9418         * BASE-VER: Change to 4.7.0.
9419
9420 2011-03-14  Richard Guenther  <rguenther@suse.de>
9421
9422         PR middle-end/48098
9423         * tree.c (build_vector_from_val): Adjust assert to requirements
9424         and reality.
9425
9426 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9427
9428         PR bootstrap/48102
9429         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
9430
9431 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
9432
9433         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
9434         terms of target_flags_explicit. Adjust copyright year.
9435
9436         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
9437         * config/rs6000/t-freebsd: New file. Add override for
9438         LIB2FUNCS_EXTRA.
9439
9440 2011-03-13  Chris Demetriou  <cgd@google.com>
9441
9442         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
9443         (-fno-diagnostics-show-option): this, to reflect current default.
9444         (-Werror=): Update text about -fno-diagnostics-show-option.
9445
9446 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
9447
9448         PR target/48053
9449         * config/rs6000/predicates.md (easy_vector_constant_add_self,
9450         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
9451         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
9452         mode is not V2DImode or V2DFmode.
9453         (vspltis_constant): Do not handle V2DImode and V2DFmode.
9454         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
9455         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
9456         registers to 0.
9457         (movdi_internal64): Likewise.
9458
9459 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
9460
9461         PR tree-optimization/47127
9462         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
9463         parameter.
9464         (set_cloog_options): Same.
9465         (scop_to_clast): Same.
9466         (print_clast_stmt): Do not call cloog_state_malloc and
9467         cloog_state_free.
9468         (print_generated_program): Same.
9469         (gloog): Same.
9470         * graphite-clast-to-gimple.h (cloog_state): Declared.
9471         (scop_to_clast): Adjust declaration.
9472         * graphite.c (cloog_state): Defined here.
9473         (graphite_initialize): Call cloog_state_malloc.
9474         (graphite_finalize): Call cloog_state_free.
9475
9476 2011-03-11  Jason Merrill  <jason@redhat.com>
9477
9478         * attribs.c (lookup_attribute_spec): Take const_tree.
9479         * tree.h: Adjust.
9480
9481 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
9482
9483         * config/sparc/sparc.c (sparc_option_override): Use
9484         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
9485
9486 2011-03-11  Richard Guenther  <rguenther@suse.de>
9487
9488         PR tree-optimization/48067
9489         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
9490         multiplication result will be only used once on the target
9491         stmt.
9492
9493 2011-03-11  Richard Guenther  <rguenther@suse.de>
9494
9495         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
9496
9497 2011-03-11  Richard Guenther  <rguenther@suse.de>
9498
9499         PR lto/48073
9500         * tree.c (find_decls_types_r): Do not walk types only reachable
9501         from IDENTIFIER_NODEs.
9502
9503 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
9504
9505         PR middle-end/48044
9506         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
9507         all vnode->force_output nodes as needed.
9508
9509 2011-03-11  Jason Merrill  <jason@redhat.com>
9510
9511         PR c++/48069
9512         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
9513         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
9514
9515 2011-03-11  Martin Jambor  <mjambor@suse.cz>
9516
9517         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
9518         cgraph_node.
9519
9520 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
9521
9522         PR tree-optimization/48063
9523         * ipa-inline.c (cgraph_decide_inlining): Don't try to
9524         inline functions called once if !tree_can_inline_p (node->callers).
9525
9526 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
9527
9528         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
9529         extra_objs.
9530         * config/score/score3.c: Delete.
9531         * config/score/score3.h: Delete.
9532         * config/score/mul-div.S: Delete.
9533         * config/score/sfp-machine.h: Add new file.
9534         * config/score/constraints.md: Add new file.
9535         * config/score/t-score-softfp: Add new file.
9536         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9537         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
9538         (score7_extra_constraint): Delete.
9539         (score7_option_override): Remove unused code.
9540         * config/score/score.c: Remove score3 and score5 define and code.
9541         * config/score/score.h: Remove score3 and score5 define and code.
9542         * config/score/score.md: Remove score3 template and unusual insn.
9543         * config/score/score.opt: Remove score3 and score5 options.
9544
9545 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9546
9547         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
9548         when _HPUX_SOURCE is defined.
9549         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
9550
9551 2011-03-10  Jason Merrill  <jason@redhat.com>
9552
9553         PR c++/48029
9554         * stor-layout.c (layout_type): Don't set structural equality
9555         on arrays of incomplete type.
9556         * tree.c (type_hash_eq): Handle comparing them properly.
9557
9558 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
9559
9560         PR debug/48043
9561         * config/s390/s390.c (s390_delegitimize_address): Make sure the
9562         result mode matches original rtl mode.
9563
9564 2011-03-10  Nick Clifton  <nickc@redhat.com>
9565
9566         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
9567         (andsi3, andsi3_flags): Fix timings for three operand alternative.
9568
9569 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
9570
9571         PR rtl-optimization/47866
9572         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
9573         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
9574         if target wasn't scalar.
9575         * function.c (assign_stack_temp_for_type): Assert that neither
9576         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
9577         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
9578         macro.
9579         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
9580
9581 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9582
9583         * config/s390/s390-protos.h (s390_label_align): New prototype.
9584         * config/s390/s390.c (s390_label_align): New function.
9585         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
9586
9587 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
9588
9589         PR target/47755
9590         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
9591         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
9592         (output_vec_const_move): Ditto.
9593
9594 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
9595
9596         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
9597         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
9598         * config/mips/mips.c (mips_preferred_reload_class): Make static.
9599         Change 'rclass' argument and result type to reg_class_t.
9600         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9601
9602 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
9603
9604         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9605         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
9606         (TARGET_MEMORY_MOVE_COST): Define.
9607         (avr_register_move_cost, avr_memory_move_cost): New Functions.
9608
9609 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
9610
9611         PR debug/47881
9612         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
9613         removed anything.
9614
9615         PR tree-optimization/48022
9616         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
9617         for EQ/NE_EXPR.
9618
9619 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
9620
9621         PR debug/47991
9622         * var-tracking.c (find_use_val): Return NULL for
9623         cui->sets && cui->store_p BLKmode MEMs.
9624
9625 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
9626
9627         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
9628         Remove.
9629         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
9630         xstormy16_print_operand_address): Remove.
9631         * config/stormy16/stormy16.c (xstormy16_print_operand,
9632         xstormy16_print_operand_address): Make static.
9633         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9634
9635 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
9636
9637         PR target/47862
9638         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9639         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
9640         before definition.
9641
9642 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
9643
9644         PR bootstrap/48000
9645         * cfgloopmanip.c (fix_bb_placements): Return immediately
9646         if FROM is BASE_LOOP's header.
9647
9648 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
9649
9650         * gimplify.c (gimplify_function_tree): Fix building calls
9651         to __builtin_return_address.
9652
9653 2011-03-07  Alan Modra  <amodra@gmail.com>
9654
9655         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
9656         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
9657         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
9658         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
9659         return_mode args.
9660         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
9661         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
9662         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
9663         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
9664         * config/rs6000/rs6000.c
9665         (rs6000_elf_end_indicate_exec_stack): Rename to..
9666         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
9667         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
9668         (rs6000_file_start): ..here.
9669         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
9670         file scope variables.
9671         (call_ABI_of_interest): New function.
9672         (init_cumulative_args): Set above vars when function return value
9673         is a float, vector, or small struct.
9674         (rs6000_function_arg_advance_1): Likewise for function args.
9675         (rs6000_va_start): Set rs6000_passes_float if variable arg function
9676         references float args.
9677
9678 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
9679
9680         * doc/cfg.texi: Remove "See" before @ref.
9681         * doc/invoke.texi: Likewise.
9682
9683 2011-03-05  Jason Merrill  <jason@redhat.com>
9684
9685         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
9686
9687 2011-03-05  Anthony Green  <green@moxielogic.com>
9688
9689         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
9690
9691 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
9692
9693         PR rtl-optimization/47899
9694         * cfgloopmanip.c (fix_bb_placements): Fix first argument
9695         to flow_loop_nested_p when moving the loop upward.
9696
9697 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
9698
9699         PR target/47719
9700         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
9701
9702 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
9703
9704         PR tree-optimization/47967
9705         * ipa-cp.c (build_const_val): Return NULL instead of creating
9706         VIEW_CONVERT_EXPR for mismatching sizes.
9707         (ipcp_create_replace_map): Return NULL if build_const_val failed.
9708         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
9709         give up on versioning.
9710
9711 2011-03-05  Alan Modra  <amodra@gmail.com>
9712
9713         PR target/47986
9714         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9715         full cmodel medium/large lo_sum + high addresses.
9716
9717 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9718
9719         * config/s390/s390.c (s390_decompose_address): Reject non-literal
9720         pool references in UNSPEC_LTREL_OFFSET.
9721
9722 2011-03-04  Jan Hubicka  <jh@suse.cz>
9723
9724         PR lto/47497
9725         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
9726         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
9727         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
9728         Add node pointers.
9729         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
9730         cgraph_add_thunk): Add node pointers.
9731         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
9732         associated to right node.
9733         (input_node): Update use of cgraph_same_body_alias
9734         and cgraph_add_thunk.
9735
9736 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
9737
9738         * config/i386/i386.opt (mprefer-avx128): New flag.
9739         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
9740         modes when the flag -mprefer-avx128 is on.
9741
9742 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
9743
9744         * dwarf2out.c (compare_loc_operands): Fix address handling.
9745
9746 2011-03-04  Alan Modra  <amodra@gmail.com>
9747
9748         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
9749
9750 2011-03-04  Richard Guenther  <rguenther@suse.de>
9751
9752         PR middle-end/47968
9753         * expmed.c (extract_bit_field_1): Prefer vector modes that
9754         vec_extract patterns can handle.
9755
9756 2011-03-04  Richard Guenther  <rguenther@suse.de>
9757
9758         PR middle-end/47975
9759         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
9760
9761 2011-03-04  Richard Henderson  <rth@redhat.com>
9762
9763         * explow.c (emit_stack_save): Remove 'after' parameter.
9764         (emit_stack_restore): Likewise.
9765         * expr.h: Update to match.
9766         * builtins.c, calls.c, stmt.c: Likewise.
9767         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
9768         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
9769         * function.c (expand_function_end): Insert the emit_stack_save
9770         sequence before parm_birth_insn instead of after.
9771
9772 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
9773
9774         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
9775         (ssse3_pmaddubsw128): Ditto.
9776         (ssse3_pmaddubsw): Ditto.
9777
9778 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
9779
9780         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
9781
9782 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
9783
9784         PR c/47963
9785         * gimplify.c (omp_add_variable): Only call omp_notice_variable
9786         on TYPE_SIZE_UNIT if it is a DECL.
9787
9788         PR debug/47283
9789         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
9790         first operand is not is_gimple_mem_ref_addr, try to fold it.
9791         If the operand still isn't is_gimple_mem_ref_addr, clear
9792         MEM_EXPR on op0.
9793
9794 2011-03-03  Richard Guenther  <rguenther@suse.de>
9795
9796         PR middle-end/47283
9797         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
9798         match comment.
9799         (refs_may_alias_p_1): For release branches return true if
9800         we are confused by our input.
9801
9802 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9803
9804         * config/s390/s390.c (s390_function_value): Rename to ...
9805         (s390_function_and_libcall_value): ... this.
9806         (s390_function_value): New function.
9807         (s390_libcall_value): New function.
9808         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
9809         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
9810         target macro definitions.
9811         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
9812
9813 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
9814
9815         * config/i386/freebsd64.h (CC1_SPEC): Define.
9816         * config/i386/linux64.h (CC1_SPEC): Define.
9817         * config/i386/x86-64.h (CC1_SPEC): Don't define.
9818
9819 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
9820
9821         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9822         Remove.
9823         * config/stormy16/stormy16.c: Include reload.h.
9824         (xstormy16_memory_move_cost): New function.
9825         (TARGET_MEMORY_MOVE_COST): Define.
9826
9827 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
9828
9829         PR rtl-optimization/47925
9830         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
9831         with side effects.  Remove the more-specific check for volatile asms.
9832
9833 2011-03-02  Alan Modra  <amodra@gmail.com>
9834
9835         PR target/47935
9836         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
9837         toc relative addresses for valid offsets.
9838
9839 2011-03-01  Richard Guenther  <rguenther@suse.de>
9840
9841         PR tree-optimization/47890
9842         * tree-vect-loop.c (get_initial_def_for_induction): Set
9843         related stmt properly.
9844
9845 2011-03-01  Richard Guenther  <rguenther@suse.de>
9846
9847         PR lto/47924
9848         * lto-streamer.c (lto_record_common_node): Also register
9849         the canonical type.
9850
9851 2011-03-01  Richard Guenther  <rguenther@suse.de>
9852
9853         PR lto/46911
9854         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9855         Do not stream DECL_ABSTRACT_ORIGIN.
9856         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9857         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9858         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9859         Do not stream DECL_ABSTRACT_ORIGIN.
9860         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9861         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9862
9863 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
9864
9865         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
9866         FUNCTION_VALUE_REGNO_P): Remove.
9867         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
9868         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
9869         Add 'outgoing' argument.
9870         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
9871         function.
9872         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9873         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9874
9875 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
9876
9877         PR debug/28047
9878         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
9879         (lookup_filename): Likewise.
9880         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
9881
9882 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
9883             Jakub Jelinek  <jakub@redhat.com>
9884
9885         PR middle-end/47893
9886         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
9887         (assign_stack_local_1): Change last argument type to int.
9888         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
9889         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
9890         don't record padding space into frame_space_list nor use those areas.
9891         (assign_stack_local): Adjust caller.
9892         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
9893         of assign_stack_local, pass 0 as last argument.
9894         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
9895         callers.
9896
9897 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
9898
9899         PR debug/47283
9900         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
9901         Use target address_mode and pointer_mode hooks instead of hardcoded
9902         Pmode and ptr_mode.  Handle some simple cases of extending if
9903         POINTERS_EXTEND_UNSIGNED < 0.
9904         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
9905         Call convert_debug_memory_address.
9906         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
9907         convert_debug_memory_address.
9908
9909         PR middle-end/46790
9910         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
9911         * configure: Regenerated.
9912         * config.in: Regenerated.
9913         * varasm.c (default_function_section): Return NULL
9914         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
9915
9916 2011-02-28  Martin Jambor  <mjambor@suse.cz>
9917
9918         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
9919         the description to match the printed values.
9920
9921 2011-02-28  Richard Guenther  <rguenther@suse.de>
9922
9923         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
9924         of the copied scope tree.
9925
9926 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9927
9928         * doc/extend.texi (Function Attributes): Avoid deeply (and
9929         wrongly) nested tables.
9930
9931 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
9932
9933         PR middle-end/47903
9934         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
9935         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
9936         r isn't op0 nor op1.
9937
9938 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
9939
9940         * config/avr/avr.md: Remove magic comment for emacs.
9941
9942 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
9943
9944         PR target/45261
9945         * config/avr/avr.c (avr_option_override): Use error on bad options.
9946         (avr_help): New function.
9947         (TARGET_HELP): Define.
9948
9949 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
9950
9951         PR target/42240
9952         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
9953         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
9954
9955 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
9956
9957         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
9958         (ARM Options): Ditto.
9959         (i386 and x86-64 Options): Ditto.
9960         (RX Options): Ditto.
9961         (SPARC Options): Ditto.
9962
9963 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
9964
9965         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
9966         FreeBSD 6 and later.  Generally use cpu generic.
9967
9968 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9969
9970         * doc/cpp.texi: Update copyright years.
9971
9972 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
9973
9974         PR target/46898
9975         * config/lm32/lm32.md (ashrsi3): Added needed variable.
9976
9977 2011-02-25  Jon Beniston  <jon@beniston.com>
9978
9979         PR target/46898
9980         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
9981         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
9982         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
9983         (lm32_block_move_inline): Add type cast to remove warning.
9984         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
9985         (gen_int_relational): Move declarations to start of function.
9986
9987 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9988
9989         PR tree-optimization/45470
9990         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9991         can throw internally only.
9992         * tree-vect-stmts.c (vectorizable_call): Likewise.
9993
9994 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
9995
9996         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
9997         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9998         * config/stormy16/stormy16-protos.h
9999         (xstormy16_preferred_reload_class): Remove.
10000         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10001         static. Change 'rclass' argument and return type to reg_class_t.
10002         (TARGET_PREFERRED_RELOAD_CLASS,
10003         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10004
10005 2011-02-24  Richard Guenther  <rguenther@suse.de>
10006
10007         * lto-streamer-in.c (input_bb): Do not find referenced vars
10008         in debug statements.
10009
10010 2011-02-23  Jason Merrill  <jason@redhat.com>
10011
10012         * common.opt (fabi-version): Document v5 and v6.
10013
10014 2011-02-23  Richard Guenther  <rguenther@suse.de>
10015
10016         PR tree-optimization/47849
10017         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10018
10019 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10020
10021         * opts-common.c (decode_cmdline_option): Print empty string
10022         argument as "" in decoded->orig_option_with_args_text.
10023         * gcc.c (execute): Print empty string argument as ""
10024         in the verbose output.
10025         (do_spec_1): Keep empty string argument.
10026
10027 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
10028
10029         * config.gcc: Declare score-* and crx-* obsolete.
10030
10031 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10032
10033         PR rtl-optimization/47763
10034         * web.c (web_main): Ignore naked clobber when replacing register.
10035
10036 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
10037
10038         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10039         Remove.
10040
10041 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10042
10043         PR doc/47848
10044         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10045
10046 2011-02-22  Mike Stump  <mikestump@comcast.net>
10047
10048         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10049         assembler.
10050         * configure: Regenerate.
10051
10052 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
10053
10054         PR rtl-optimization/46002
10055         * ira-color.c (update_copy_costs): Change class intersection
10056         test to reg_class_contents[] test of 'hard_regno'.
10057
10058 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
10059
10060         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10061         than Driver option.
10062         * config/hpux11.opt (mt): Likewise.
10063         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10064         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10065         * config/vax/elf.opt (mno-asm-pic): Likewise.
10066         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10067
10068 2011-02-21  Mike Stump  <mikestump@comcast.net>
10069
10070         PR target/47822
10071         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10072         tree so we can get save the type.
10073         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10074         for CFString instead of trying to use past the end of the builtins.
10075         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10076         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10077         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10078         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10079         Rename to darwin_builtin_cfstring.
10080         (darwin_init_cfstring_builtins): Return the built type.
10081
10082 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
10083
10084         PR target/47840
10085         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10086         (_mm256_insert_epi64): Use _mm_insert_epi64.
10087
10088 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
10089
10090         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10091         * config/stormy16/stormy16-protos.h
10092         (xstormy16_mode_dependent_address_p): Remove.
10093         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10094         Make static. Change return type to bool. Change argument type to
10095         const_rtx. Remove dead code.
10096         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10097
10098 2011-02-21  Richard Guenther  <rguenther@suse.de>
10099
10100         PR lto/47820
10101         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10102         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10103         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10104         TUs context.
10105         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10106         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10107
10108 2011-02-20  Richard Guenther  <rguenther@suse.de>
10109
10110         PR lto/47822
10111         * tree.c (free_lang_data_in_decl): Clean builtins from
10112         the TU decl BLOCK_VARS.
10113
10114 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
10115
10116         PR debug/47620
10117         PR debug/47630
10118         * haifa-sched.c (fix_tick_ready): Skip tick computation
10119         for debug insns.
10120
10121 2011-02-19  Richard Guenther  <rguenther@suse.de>
10122
10123         PR lto/47647
10124         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10125         Remove lazy BLOCK_VARS streaming.
10126         (lto_input_ts_block_tree_pointers): Likewise.
10127         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10128
10129 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10130
10131         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10132
10133 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10134
10135         * config/i386/biarch32.h, config/i386/mach.h,
10136         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10137
10138 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
10139
10140         PR target/47800
10141         * config/i386/i386.md (peephole2 for shift and plus): Use
10142         operands[1] original mode in the first insn.
10143
10144 2011-02-18  Mike Stump  <mikestump@comcast.net>
10145
10146         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
10147
10148 2011-02-18  Jan Hubicka  <jh@suse.cz>
10149
10150         PR middle-end/47788
10151         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10152         to zero when the function is not inlinable at all.
10153
10154 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10155
10156         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10157         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10158         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10159         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10160         * config/pa/t-pa64: Likewise.
10161         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10162
10163 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10164
10165         PR driver/47787
10166         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10167
10168 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10169
10170         PR target/47792
10171         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10172
10173 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
10174
10175         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10176         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10177         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10178         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10179         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10180         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10181         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10182         m32r_load_postinc_p, m32r_store_preinc_predec_p,
10183         m32r_legitimate_address_p): New functions.
10184         * config/m32r/constraints.md (constraint "S"): Don't use
10185         STORE_PREINC_PREDEC_P.
10186         (constraint "U"): Don't use LOAD_POSTINC_P.
10187
10188 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
10189
10190         PR rtl-optimization/46178
10191         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10192         compute ira_hard_regno_cover_class[].
10193
10194 2011-02-18  Richard Guenther  <rguenther@suse.de>
10195
10196         PR lto/47798
10197         * lto-streamer.h (lto_global_var_decls): Declare.
10198         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10199         statics for global var processing.
10200
10201 2011-02-18  Richard Guenther  <rguenther@suse.de>
10202
10203         PR tree-optimization/47737
10204         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10205         edge dominance check.
10206
10207 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10208
10209         PR debug/47780
10210         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10211         avoid invalid rtx sharing.
10212
10213 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
10214
10215         * doc/cpp.texi (Obsolete Features): Add background on the
10216         origin of assertions.
10217
10218 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
10219
10220         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
10221         objc_abi == 2.
10222         * config/darwin.c (output_objc_section_asm_op): Added support for
10223         ABI v1 and v2.
10224         (is_objc_metadata): New.
10225         (darwin_objc2_section): New.
10226         (darwin_objc1_section): New.
10227         (machopic_select_section): Added support for ABI v1 and v2.
10228         (darwin_emit_objc_zeroed): New.
10229         (darwin_output_aligned_bss): Detect objc metadata and treat it
10230         appropriately.
10231         (darwin_asm_output_aligned_decl_common): Same.
10232         (darwin_asm_output_aligned_decl_local): Same.
10233         * config/darwin-sections.def: Updated for ABI v1 and v2.
10234         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10235         compiling Objective-C code for the NeXT runtime, default to using
10236         ABI version 0 for 32-bit, and version 2 for 64-bit.
10237
10238 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10239
10240         * common.opt (optimize_fast): New Variable.
10241         * opts.c (default_options_optimization): Use opts->x_optimize_fast
10242         instead of local variable ofast.
10243
10244 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
10245
10246         * doc/invoke.texi (fobjc-abi-version): Documented.
10247         (fobjc-nilcheck): Documented.
10248         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10249         version.
10250
10251 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10252
10253         PR driver/47390
10254         * common.opt (export-dynamic): New Driver option.
10255         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10256
10257 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10258
10259         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10260
10261 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
10262             Jan Hubicka  <jh@suse.cz>
10263
10264         PR debug/47106
10265         PR debug/47402
10266         * cfgexpand.c (account_used_vars_for_block): Remove.
10267         (estimated_stack_frame_size): Use referenced vars.
10268         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10269         that were referenced in the original function.  Test src_fn
10270         rather than cfun.  Drop redundant get_var_ann.
10271         (setup_one_parameter): Drop redundant get_var_ann.
10272         (declare_return_variable): Likewise.
10273         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10274         (copy_arguments_for_versioning): Drop redundant get_var_ann.
10275         * ipa-inline.c (compute_inline_parameters): Do not compute
10276         disregard_inline_limits here.
10277         (compute_inlinable_for_current, pass_inlinable): New.
10278         (pass_inline_parameters): Require PROP_referenced_vars.
10279         * cgraphunit.c (cgraph_process_new_functions): Don't run
10280         compute_inline_parameters explicitly unless function is in SSA form.
10281         (cgraph_analyze_function): Set .disregard_inline_limits.
10282         * tree-sra.c (convert_callers): Compute inliner parameters
10283         only for functions already in SSA form.
10284
10285 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10286
10287         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10288         -mlittle-endian-data.
10289
10290 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10291
10292         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10293         -mno-fpu, not -fpu and -no-fpu.
10294         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10295         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10296
10297 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
10298
10299         PR target/43653
10300         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
10301         input reload with PLUS RTX.
10302
10303 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10304
10305         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
10306         of InverseVar(MDMX).
10307
10308 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10309
10310         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
10311         --m4-340.
10312
10313 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10314
10315         * config/mn10300/mn10300.opt (mno-crt0): New.
10316
10317 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10318
10319         * config/m68k/uclinux.opt (static-libc): New Driver option.
10320
10321 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10322
10323         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
10324
10325 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10326
10327         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
10328         %{muser-extend-enabled}.
10329
10330 2011-02-16  Richard Guenther  <rguenther@suse.de>
10331
10332         PR tree-optimization/47738
10333         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
10334         the TODO from tree_predictive_commoning.
10335
10336 2011-02-15  Jeff Law  <law@redhat.com>
10337
10338         Revert
10339         2011-01-25  Jeff Law  <law@redhat.com>
10340
10341         PR rtl-optimization/37273
10342         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10343         handle them like argument loads from stack slots.  Do not double
10344         count memory for memory constants and argument loads from stack slots.
10345
10346 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10347
10348         PR middle-end/47725
10349         * combine.c (cant_combine_insn_p): Revert the last change.
10350
10351 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10352
10353         PR target/47755
10354         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
10355         mode for vector constants.  Remove code that checks for TImode.
10356
10357 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10358
10359         PR debug/47106
10360         PR debug/47402
10361         * cgraph.h (compute_inline_parameters): Return void.
10362         * ipa-inline.c (compute_inline_parameters): Adjust.
10363
10364 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10365
10366         PR debug/47106
10367         PR debug/47402
10368         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
10369         rather than decl.
10370         * cfgexpand.c (estimated_stack_frame_size): Likewise.
10371         * ipa-inline.c (compute_inline_parameters): Adjust.
10372
10373 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10374
10375         PR debug/47106
10376         PR debug/47402
10377         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
10378         Adjust all users.  Pass FN to...
10379         * tree-flow-inline.h (first_referenced_var): ... this.  Add
10380         fn argument.
10381         * ipa-struct-reorg.c: Adjust.
10382         * tree-dfa.c: Adjust.
10383         * tree-into-ssa.c: Adjust.
10384         * tree-sra.c: Adjust.
10385         * tree-ssa-alias.c: Adjust.
10386         * tree-ssa-live.c: Adjust.
10387         * tree-ssa.c: Adjust.
10388         * tree-ssanames.c: Adjust.
10389         * tree-tailcall.c: Adjust.
10390
10391 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10392
10393         PR debug/47106
10394         PR debug/47402
10395         * tree-flow.h (referenced_var_lookup): Add fn parameter.
10396         Adjust all callers.
10397         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
10398         * tree-flow-inline.h: Adjust.
10399         * gimple-pretty-print.c: Adjust.
10400         * tree-into-ssa.c: Adjust.
10401         * tree-ssa.c: Adjust.
10402         * cfgexpand.c: Adjust.
10403
10404 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10405
10406         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
10407         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10408         (EXTRA_CONSTRAINT): Delete.
10409         * config/iq2000/constraints.md: New file.
10410         * config/iq2000/iq2000.md: Include it.
10411         (define_insn ""): Delete.
10412         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
10413         unsupported constraint letters from patterns.
10414         (call_value, call_value_internal1): Likewise.
10415         (call_value_multiple_internal1): Likewise.
10416
10417 2011-02-15  Nick Clifton  <nickc@redhat.com>
10418
10419         * config/mn10300/mn10300.c: Include tm-constrs.h.
10420         (struct liw_data): New data structure describing an LIW candidate
10421         instruction.
10422         (extract_bundle): Use struct liw_data.  Allow small integer
10423         operands for some instructions.
10424         (check_liw_constraints): Use struct liw_data.  Remove swapped
10425         parameter.  Add comments describing the checks.  Fix bug when
10426         assigning the source of liw1 to the source of liw2.
10427         (liw_candidate): Delete.  Code moved into extract_bundle.
10428         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
10429         before swapping.
10430         * config/mn10300/predicates.md (liw_operand): New predicate.
10431         Allows registers and small integer constants.
10432         * config/mn10300/constraints.md (O): New constraint.  Accetps
10433         integers in the range -8 to +7 inclusive.
10434         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
10435         for moving a small integer into a register.  Give this alternative
10436         LIW attributes.
10437         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
10438         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
10439         using the J,K,L and M constraints,
10440         (liw): Remove SI mode on second operands to allow for HI and QI
10441         mode values.
10442         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
10443         instruction.
10444
10445 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10446
10447         PR middle-end/47725
10448         * combine.c (cant_combine_insn_p): Check zero/sign extended
10449         hard registers.
10450
10451 2011-02-15  Richard Guenther  <rguenther@suse.de>
10452
10453         PR tree-optimization/47743
10454         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
10455         for a non-type-compatible VN lookup bail out.
10456
10457 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10458
10459         * config/fr30/constraints.md: New file.
10460         * config/fr30/fr30.md: Include it.
10461         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
10462         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10463         (EXTRA_CONSTRAINT): Delete.
10464
10465 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10466
10467         * config/frv/constraints.md: New file.
10468         * config/frv/predicates.md: Include it.
10469         * config/frv/frv.c (reg_class_from_letter): Delete.
10470         (frv_option_override): Don't initialize it.
10471         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
10472         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
10473         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
10474         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10475         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
10476         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10477         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
10478         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
10479         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
10480         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
10481         (REG_CLASS_FROM_CONSTRAINT): Delete.
10482
10483 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
10484
10485         PR middle-end/47581
10486         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
10487         if frame size is 0 in a leaf function.
10488
10489 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10490
10491         PR pch/14940
10492         * config/alpha/host-osf.c: New file.
10493         * config/alpha/x-osf: New file.
10494         * config.host (alpha*-dec-osf*): Use it.
10495
10496 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
10497
10498         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10499         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
10500         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
10501         (rx_mode_dependent_address_p): ...this. Make static. Change argument
10502         type to const_rtx.
10503         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10504
10505 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10506
10507         * config/stormy16/constraints.md: New file.
10508         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
10509         Use satisfies_constraint_Q and satisfies_constraint_R.
10510         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
10511         Delete.
10512         (xstormy16_legitiamte_address_p): Declare.
10513         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
10514         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10515         (EXTRA_CONSTRAINT): Delete.
10516         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10517         Un-staticize.
10518         (xstormy16_extra_constraint_p): Delete.
10519
10520 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10521
10522         PR tree-optimization/46494
10523         * loop-unroll.c (split_edge_and_insert): Adjust comment.
10524         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
10525         (pass_rtl_loop_done): Add TODO_verify_flow.
10526         * fwprop.c (pass_rtl_fwprop): Likewise.
10527         * modulo-sched.c (pass_sms): Likewise.
10528         * tree-ssa-dom.c (pass_dominator): Likewise.
10529         * tree-ssa-loop-ch.c (pass_ch): Likewise.
10530         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
10531         (pass_tree_loop_done): Likewise.
10532         * tree-ssa-pre.c (execute_pre): Likewise.
10533         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10534         * tree-ssa-sink.c (pass_sink_code): Likewise.
10535         * tree-vrp.c (pass_vrp): Likewise.
10536
10537 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10538
10539         * config/v850/constraints.md: New file.
10540         * config/v850/v850.md: Include it.
10541         * config/v850/predicates.md (reg_or_0_operand): Use
10542         satisfies_constraint_G.
10543         (special_symbolref_operand): Use satisfies_constraint_K.
10544         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
10545         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10546         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
10547         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10548         (EXTRA_CONSTRAINT): Delete.
10549         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
10550         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
10551         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
10552
10553 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
10554
10555         PR target/47696
10556         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
10557         description.
10558
10559 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10560
10561         * config/mcore/constraints.md: New file.
10562         * config/mcore/mcore.md: Include it.
10563         * config/mcore/mcore.c (reg_class_from_letter): Delete.
10564         * config/mcore/mcore.h (reg_class_from_letter): Delete.
10565         (REG_CLASS_FROM_LETTER): Delete.
10566         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
10567         insn_const_int_ok_for_constraint.
10568         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
10569         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
10570         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10571         (EXTRA_CONSTRAINT): Delete.
10572
10573 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10574
10575         PR ada/41929
10576         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
10577         (IS_SIGHANDLER): Define.
10578         (sparc64_is_sighandler): New function, split off from
10579         sparc64_fallback_frame_state.
10580         (sparc_is_sighandler): New function, split off from
10581         sparc_fallback_frame_state.
10582         (sparc64_fallback_frame_state): Merge with ...
10583         (sparc_fallback_frame_state): ... this into ...
10584         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
10585         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
10586         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
10587         stack instead of hardcoded offsets.
10588
10589 2011-02-14  Andriy Gapon  <avg@freebsd.org>
10590
10591         PR target/45808
10592         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
10593
10594 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10595
10596         * configure: Regenerate.
10597
10598 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
10599
10600         PR driver/45731
10601         * gcc.c (asm_options): Correct spec matching --target-help.
10602
10603 2011-02-12  Martin Jambor  <mjambor@suse.cz>
10604
10605         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
10606         to gimple call error.
10607
10608 2011-02-12  Mike Stump  <mikestump@comcast.net>
10609
10610         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
10611         comments in backslash regions.
10612
10613 2011-02-12  Mike Stump  <mikestump@comcast.net>
10614             Jakub Jelinek  <jakub@redhat.com>
10615             Iain Sandoe  <iains@gcc.gnu.org>
10616
10617         PR target/47324
10618         * dwarf2out.c (output_cfa_loc): When required, apply the
10619         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
10620         (output_loc_sequence): Likewise.
10621         (output_loc_operands_raw): Likewise.
10622         (output_loc_sequence_raw): Likewise.
10623         (output_cfa_loc): Likewise.
10624         (output_loc_list): Suppress register number adjustment when
10625         calling output_loc_sequence()
10626         (output_die): Likewise.
10627
10628 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
10629
10630         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10631         Remove macros.
10632         * config/xtensa/xtensa.c (xtensa_register_move_cost,
10633         xtensa_memory_move_cost): New functions.
10634         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
10635
10636 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
10637
10638         PR lto/47225
10639         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
10640         in the current directory.
10641         * configure: Rebuilt.
10642
10643 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
10644
10645         * config/darwin.c (darwin_override_options): Add a hunk missed
10646         from the commit of r168571.  Trim comment line lengths and
10647         correct indents of the preceding block.
10648
10649 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
10650
10651         * gcc.c (driver_handle_option): Concatenate the argument to -F with
10652         the switch.
10653
10654 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
10655
10656         * common.opt (nostartfiles): New Driver option.
10657
10658 2011-02-11  Xinliang David Li  <davidxl@google.com>
10659
10660         PR tree-optimization/47707
10661         * tree-chrec.c (convert_affine_scev): Keep type precision.
10662
10663 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
10664
10665         PR tree-optimization/47420
10666         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
10667
10668 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
10669
10670         PR rtl-optimization/47614
10671         * rtl.h (check_for_inc_dec): Declare.
10672         * dse.c (check_for_inc_dec): Externalize...
10673         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
10674         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
10675
10676 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
10677
10678         PR driver/47678
10679         * gcc.c (main): Do not compile inputs if there were errors in
10680         option handling.
10681         * opts-common.c (read_cmdline_option): Check for wrong language
10682         after other error checks.
10683
10684 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
10685
10686         * cgraph.c: Fix comment typos.
10687         * cgraph.h: Likewise.
10688         * cgraphunit.c: Likewise.
10689         * ipa-cp.c: Likewise.
10690         * ipa-inline.c: Likewise.
10691         * ipa-prop.c: Likewise.
10692         * ipa-pure-const.c: Likewise.
10693         * ipa-ref.c: Likewise.
10694         * ipa-reference.c: Likewise.
10695
10696 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
10697
10698         PR debug/47684
10699         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
10700
10701 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10702
10703         PR testsuite/47400
10704         * doc/sourcebuild.texi (Require Support): Document
10705         dg-require-ascii-locale.
10706
10707 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
10708
10709         * doc/lto.texi (Write summary): Fix missing parentheses.
10710
10711 2011-02-10  DJ Delorie  <dj@redhat.com>
10712
10713         * config/m32c/m32c.c (m32c_option_override): Disable
10714         -fcombine-stack-adjustments until flag value tracking and compare
10715         optimization can be rewritten.
10716
10717 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
10718
10719         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
10720         PROCESSOR_POWER7.
10721         (PROCESSOR_DEFAULT64): Likewise.
10722
10723 2011-02-10  Richard Henderson  <rth@redhat.com>
10724
10725         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
10726         change from 2011-02-03.
10727         * config/rx/rx.c (flags_from_code): Likewise.
10728         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
10729         is valid, n/pz otherwise.
10730         (rx_select_cc_mode): Return CCmode if Y is not zero.
10731
10732 2011-02-10  Richard Guenther  <rguenther@suse.de>
10733
10734         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
10735
10736 2011-02-10  Richard Guenther  <rguenther@suse.de>
10737
10738         PR tree-optimization/47677
10739         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
10740
10741 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
10742
10743         PR target/47665
10744         * combine.c (make_compound_operation): Only change shifts into
10745         multiplication for SCALAR_INT_MODE_P.
10746
10747 2011-02-10  Jie Zhang  <jie@codesourcery.com>
10748
10749         PR testsuite/47622
10750         Revert
10751         2011-02-05  Jie Zhang  <jie@codesourcery.com>
10752         PR debug/42631
10753         * web.c (entry_register): Don't clobber the number of the
10754         first uninitialized reference in used[].
10755
10756 2011-02-09  Richard Guenther  <rguenther@suse.de>
10757
10758         PR tree-optimization/47664
10759         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
10760         all edges again.
10761
10762 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
10763
10764         PR target/46481
10765         PR target/47032
10766         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
10767         PROCESSOR_POWER7.
10768         (PROCESSOR_DEFAULT64): Same.
10769         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
10770
10771 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10772
10773         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
10774
10775 2011-02-09  Martin Jambor  <mjambor@suse.cz>
10776
10777         PR middle-end/45505
10778         * tree-sra.c (struct access): New flags grp_scalar_read and
10779         grp_scalar_write.  Changed description of assignment read and write
10780         flags.
10781         (dump_access): Dump new flags, reorder all of them.
10782         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
10783         to detect multiple scalar reads.
10784         (analyze_access_subtree): Use the new scalar read write flags instead
10785         of the old flags.  Adjusted comments.
10786
10787 2011-02-08  DJ Delorie  <dj@redhat.com>
10788
10789         PR target/47548
10790         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
10791         patterns.
10792
10793 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10794
10795         * config/m68k/uclinux.opt: New.
10796         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
10797
10798 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10799
10800         * config/cris/elf.opt (sim): New Driver option.
10801
10802 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10803
10804         * config/xtensa/elf.opt: New.
10805         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
10806
10807 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10808
10809         * config/vax/elf.opt: New.
10810         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
10811
10812 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10813
10814         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
10815
10816 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10817
10818         * config/gnu-user.opt: New.
10819         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
10820         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
10821         *-*-uclinux*): Use gnu-user.opt.
10822
10823 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
10824
10825         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
10826         * config/i386/gnu.h (CPP_SPEC): Likewise.
10827
10828 2011-02-08  Ian Lance Taylor  <iant@google.com>
10829
10830         * common.opt (fcx-limited-range): Add SetByCombined flag.
10831         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
10832         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
10833         (fassociative-math, freciprocal-math): Likewise.
10834         (funsafe-math-optimizations): Likewise.
10835         * opth-gen.awk: Handle SetByCombined.
10836         * optc-gen.awk: Likewise.
10837         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
10838         (set_unsafe_math_optimizations_flags): Likewise.
10839         * doc/options.texi (Option properties): Document SetByCombined.
10840
10841 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
10842
10843         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
10844         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
10845         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
10846         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
10847         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
10848
10849 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
10850
10851         PR tree-optimization/46834
10852         PR tree-optimization/46994
10853         PR tree-optimization/46995
10854         * graphite-sese-to-poly.c (used_outside_reduction): New.
10855         (detect_commutative_reduction): Call used_outside_reduction.
10856         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
10857         translate_scalar_reduction_to_array only when at least one
10858         loop-phi/close-phi tuple has been detected.
10859
10860 2011-02-08  Richard Guenther  <rguenther@suse.de>
10861
10862         PR middle-end/47639
10863         * tree-vect-generic.c (expand_vector_operations_1): Update
10864         stmts here ...
10865         (expand_vector_operations): ... not here.  Cleanup EH info
10866         and the CFG if required.
10867
10868 2011-02-08  Richard Guenther  <rguenther@suse.de>
10869
10870         PR tree-optimization/47641
10871         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
10872         require type compatibility.
10873
10874 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10875
10876         * gimple-low.c (lower_function_body): Don't remove the location of
10877         the return statement here.
10878         (lower_gimple_return): Do it here instead but only if the return
10879         statement is actually used twice.
10880
10881 2011-02-08  Richard Guenther  <rguenther@suse.de>
10882
10883         PR tree-optimization/47632
10884         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
10885         unused up_to_stmt parameter, return whether cfg-cleanup is
10886         necessary, remove EH info properly.
10887         (forward_propagate_into_gimple_cond): Adjust caller.
10888         (forward_propagate_into_cond): Likewise.
10889         (forward_propagate_comparison): Likewise.
10890         (tree_ssa_forward_propagate_single_use_vars): Make
10891         forward_propagate_comparison case similar to the two others.
10892
10893 2011-02-08  Nick Clifton  <nickc@redhat.com>
10894
10895         * config/mn10300/mn10300.opt (mliw): New command line option.
10896         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
10897         (liw_bundling): New automaton.
10898         (liw): New attribute.
10899         (liw_op): New attribute.
10900         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
10901         (movsi_internal): Add LIW attributes.
10902         (andsi3): Likewise.
10903         (iorsi3): Likewise.
10904         (xorsi3): Likewise.
10905         (addsi3): Separate register and immediate alternatives.
10906         Add LIW attributes.
10907         (subsi3): Likewise.
10908         (cmpsi): Likewise.
10909         (aslsi3): Likewise.
10910         (lshrsi3): Likewise.
10911         (ashrsi3): Likewise.
10912         (liw): New pattern.
10913         * config/mn10300/mn10300.c (liw_op_names): New
10914         (mn10300_print_operand): Handle 'W' operand descriptor.
10915         (extract_bundle): New function.
10916         (check_liw_constraints): New function.
10917         (liw_candidate): New function.
10918         (mn10300_bundle_liw): New function.
10919         (mn10300_reorg): New function.
10920         (TARGET_MACHINE_DEPENDENT_REORG): Define.
10921         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
10922         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
10923         __LIW__ or __NO_LIW__.
10924         * doc/invoke.texi: Describe the -mliw command line option.
10925
10926 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10927
10928         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
10929         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10930         pthread_mutex_unlock): Remove.
10931         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
10932         * config/pa/t-pa64: Likewise.
10933         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
10934         shared libc if not linking against libpthread.
10935         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10936
10937 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
10938
10939         PR target/47558
10940         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
10941         on 10.6 and later to ensure that we always use the unwinder from
10942         the system.  Only add -no_compact_unwind when tarteting darwin
10943         10.6 or later.
10944
10945 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
10946
10947         PR target/46997
10948         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
10949         (vec_interleave_lowv2sf): Ditto.
10950         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
10951         (vec_extract_oddv2sf): Ditto.
10952
10953 2011-02-07  Mike Stump  <mikestump@comcast.net>
10954
10955         PR target/42333
10956         Add __ieee_divdc3 entry point.
10957         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
10958         entry point.
10959         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
10960         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
10961         * config/darwin.c (darwin_rename_builtins): Add.
10962         * config/darwin-protos.h (darwin_rename_builtins): Add.
10963
10964 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
10965
10966         PR target/47636
10967         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
10968         for the condition.
10969
10970 2011-02-07  Mike Stump  <mikestump@comcast.net>
10971
10972         * config/darwin.opt (mmacosx-version-min): Update default OS version.
10973
10974 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
10975
10976         PR target/47534
10977         * config/avr/libgcc.S (exit): Move .endfunc
10978
10979 2011-02-07  Richard Guenther  <rguenther@suse.de>
10980
10981         PR tree-optimization/47615
10982         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
10983         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
10984         (run_scc_vn): Initialize it.
10985         (visit_reference_op_load): Use it.
10986         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
10987
10988 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10989
10990         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
10991         DImode trapping arithmetic libfuncs.
10992
10993 2011-02-07  Richard Guenther  <rguenther@suse.de>
10994
10995         PR tree-optimization/47621
10996         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
10997         two duplicates ...
10998         (execute_update_addresses_taken): ... here.  Make it more
10999         conservative in what we accept.
11000
11001 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11002
11003         * config/sparc/freebsd.h (ASM_SPEC): Define.
11004         * config/sparc/vxworks.h (ASM_SPEC): Define.
11005
11006 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11007
11008         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11009
11010 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11011
11012         * doc/invoke.texi: Remove reference to compiler internals from
11013         user documentation.
11014
11015         * reg-notes.def: Remove REG_VALUE_PROFILE.
11016         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11017
11018 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
11019
11020         PR middle-end/47610
11021         * varasm.c (default_section_type_flags): If decl is NULL,
11022         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
11023
11024 2011-02-05  Jie Zhang  <jie@codesourcery.com>
11025
11026         PR debug/42631
11027         * web.c (entry_register): Don't clobber the number of the
11028         first uninitialized reference in used[].
11029
11030 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
11031
11032         PR tree-optimization/46194
11033         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11034         (build_classic_dist_vector_1): Do not represent classic distance
11035         vectors when the access functions are variating in different loops.
11036
11037 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11038
11039         * config/mips/iris6.opt: New.
11040         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11041
11042 2011-02-04  Richard Henderson  <rth@redhat.com>
11043             Steve Ellcey  <sje@cup.hp.com>
11044
11045         PR target/46997
11046         * config/ia64/predicates.md (mux1_brcst_element): New.
11047         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11048         * config/ia64/ia64.c (ia64_unpack_assemble): New.
11049         (ia64_unpack_sign): New.
11050         (ia64_expand_unpack): Rewrite using new routines.
11051         (ia64_expand_widen_sum): Ditto.
11052         (ia64_expand_dot_prod_v8qi): Ditto.
11053         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11054         routines, add endian check.
11055         (pmpy2_even): Rename from pmpy2_r, add endian check.
11056         (pmpy2_odd): Rename from pmpy2_l, add endian check.
11057         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11058         (vec_widen_smult_hi_v4hi): Ditto.
11059         (vec_widen_umult_lo_v4hi): Ditto.
11060         (vec_widen_umult_hi_v4hi): Ditto.
11061         (mulv2si3): Change endian checks.
11062         (sdot_prodv4hi): Rewrite with new calls.
11063         (udot_prodv4hi): New.
11064         (vec_pack_ssat_v4hi): Add endian check.
11065         (vec_pack_usat_v4hi): Ditto.
11066         (vec_pack_ssat_v2si): Ditto.
11067         (max1_even): Rename from max1_r, add endian check.
11068         (max1_odd): Rename from max1_l, add endian check.
11069         (*mux1_rev): Format change.
11070         (*mux1_mix): Ditto.
11071         (*mux1_shuf): Ditto.
11072         (*mux1_alt): Ditto.
11073         (*mux1_brcst_v8qi): Use new predicate.
11074         (vec_extract_evenv8qi): Remove endian check.
11075         (vec_extract_oddv8qi): Ditto.
11076         (vec_interleave_lowv4hi): Format change.
11077         (vec_interleave_highv4hi): Ditto.
11078         (mix2_even): Rename from mix2_r, add endian check.
11079         (mix2_odd): Rename from mux2_l, add endian check.
11080         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11081         (vec_extract_evenodd_helper): Format change.
11082         (vec_extract_evenv4hi): Remove endian check.
11083         (vec_extract_oddv4hi): Remove endian check.
11084         (vec_interleave_lowv2si): Format change.
11085         (vec_interleave_highv2si): Format change.
11086         (vec_initv2si): Remove endian check.
11087         (vecinit_v2si): Add endian check.
11088         (reduc_splus_v2sf): Add endian check.
11089         (reduc_smax_v2sf): Ditto.
11090         (reduc_smin_v2sf): Ditto.
11091         (vec_initv2sf): Remove endian check.
11092         (fpack): Add endian check.
11093         (fswap): Add endian check.
11094         (vec_interleave_highv2sf): Add endian check.
11095         (vec_interleave_lowv2sf): Add endian check.
11096         (fmix_lr): Add endian check.
11097         (vec_setv2sf): Format change.
11098         (*vec_extractv2sf_0_be): Use shift to extract operand.
11099         (*vec_extractv2sf_1_be): New.
11100         (vec_pack_trunc_v4hi): Add endian check.
11101         (vec_pack_trunc_v2si): Format change.
11102
11103 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
11104
11105         PR inline-asm/23200
11106         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
11107         do bb, locus and block comparison and disallow loads if it is not set.
11108         (stmt_is_replaceable_p): New function.
11109         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11110         callers.
11111         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11112         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11113         SSA_NAME_DEF_STMT.
11114         * tree-flow.h (stmt_is_replaceable_p): New prototype.
11115
11116 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11117
11118         * config/rs6000/xilinx.opt: New.
11119         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11120
11121 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11122
11123         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11124
11125 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
11126
11127         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11128         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11129         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11130         secondary_reload_info, xtensa_secondary_reload): Remove.
11131         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11132         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11133         (xtensa_preferred_reload_class): Make static. Change return and
11134         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11135         Use CONST_DOUBLE_P predicate.
11136         (xtensa_preferred_output_reload_class): New function.
11137         (xtensa_secondary_reload): Make static.
11138
11139 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
11140
11141         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11142         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11143         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11144
11145 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11146
11147         PR middle-end/31490
11148         * output.h (SECTION_RELRO): Define.
11149         (SECTION_MACH_DEP): Adjust.
11150         (get_variable_section): New prototype.
11151         * varpool.c (varpool_finalize_named_section_flags): New function.
11152         (varpool_assemble_pending_decls): Call it.
11153         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11154         * cgraphunit.c (cgraph_output_in_order): Call
11155         varpool_finalize_named_section_flags.
11156         * varasm.c (get_section): Allow section flags conflicts between
11157         relro and read-only sections if the section hasn't been declared yet.
11158         Set SECTION_OVERRIDE after diagnosing section type conflict.
11159         (get_variable_section): No longer static.
11160         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11161         readonly sections that need relocations.
11162         (decl_readonly_section_1): New function.
11163         (decl_readonly_section): Use it.
11164
11165         Revert:
11166         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
11167                     Steve Ellcey  <sje@cup.hp.com>
11168
11169         PR middle-end/31490
11170         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11171         if section attribute used.
11172
11173 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11174
11175         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11176         * config/darwin.c (SECTION_NO_ANCHOR): Define.
11177         (darwin_init_sections): Remove assertion.
11178
11179 2011-02-03  Nick Clifton  <nickc@redhat.com>
11180
11181         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11182         lt and ge.
11183         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
11184         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11185         instead of "n" and "pz".
11186         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11187         CC_FLAG_S.
11188
11189 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11190
11191         PR target/47312
11192         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11193         fma, expand FMA_EXPR as fma{,f,l} call.
11194
11195         PR lto/47274
11196         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11197         copy them into a unsigned char variable and pass address of it to
11198         lto_output_data_stream.
11199
11200         PR target/47564
11201         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11202         around backend_init_target and lang_dependent_init_target calls.
11203         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11204         (verify_cgraph_node): Don't call set_cfun here.  Use
11205         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11206         Set error_found for incorrectly represented calls to thunks.
11207
11208 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11209
11210         PR debug/43092
11211         PR rtl-optimization/43494
11212         * rtl.h (for_each_inc_dec_fn): New type.
11213         (for_each_inc_dec): Declare.
11214         * rtlanal.c (struct for_each_inc_dec_ops): New type.
11215         (for_each_inc_dec_find_inc_dec): New fn.
11216         (for_each_inc_dec_find_mem): New fn.
11217         (for_each_inc_dec): New fn.
11218         * dse.c (struct insn_size): Remove.
11219         (replace_inc_dec, replace_inc_dec_mem): Remove.
11220         (emit_inc_dec_insn_before): New fn.
11221         (check_for_inc_dec): Use it, along with for_each_inc_dec.
11222         (canon_address): Pass mem modes to cselib_lookup.
11223         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
11224         (cselib_lookup_from_insn): Likewise.
11225         (cselib_subst_to_values): Likewise.
11226         * cselib.c (find_slot_memmode): New var.
11227         (cselib_find_slot): New fn.  Use it instead of
11228         htab_find_slot_with_hash everywhere.
11229         (entry_and_rtx_equal_p): Use find_slot_memmode.
11230         (autoinc_split): New fn.
11231         (rtx_equal_for_cselib_p): Rename and implement in terms of...
11232         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
11233         Deal with autoinc.  Special-case recursion into MEMs.
11234         (cselib_hash_rtx): Likewise.
11235         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
11236         address and MEM modes.
11237         (cselib_subst_to_values): Add memmode, pass it on.
11238         Deal with autoinc.
11239         (cselib_lookup): Add memmode argument, pass it on.
11240         (cselib_lookup_from_insn): Add memmode.
11241         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11242         (struct cselib_record_autoinc_data): New.
11243         (cselib_record_autoinc_cb): New fn.
11244         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
11245         mode to cselib_lookup.  Reset autoinced REGs here instead of...
11246         (cselib_process_insn): ... here.
11247         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11248         to cselib_lookup.
11249         (add_uses): Likewise, also to cselib_subst_to_values.
11250         (add_stores): Likewise.
11251         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
11252         cselib_subst_to_values.
11253         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
11254         * gcse.c (do_local_cprop): Adjusted.
11255         * postreload.c (reload_cse_simplify_set): Adjusted.
11256         (reload_cse_simplify_operands): Adjusted.
11257         * sel-sched-dump (debug_mem_addr_value): Pass mode.
11258
11259 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11260
11261         PR tree-optimization/45122
11262         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11263         unsafe assumptions when there's more than one loop exit.
11264
11265 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11266
11267         PR target/47272
11268         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11269         Document using vector double with the load/store builtins, and
11270         that the load/store builtins always use Altivec instructions.
11271
11272         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11273         to use altivec memory instructions, even on VSX.
11274         (vector_altivec_store_<mode>): Ditto.
11275
11276         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11277         function.
11278
11279         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11280         V2DF, V2DI support to load/store overloaded builtins.
11281
11282         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11283         altivec load/store builtins for V2DF/V2DI types.
11284
11285         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11286         set avoid indexed addresses on power6 if -maltivec.
11287         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11288         vector_altivec_load/vector_altivec_store builtins.
11289         (altivec_expand_st_builtin): Ditto.
11290         (altivec_expand_builtin): Add VSX memory builtins.
11291         (rs6000_init_builtins): Add V2DI types to internal types.
11292         (altivec_init_builtins): Add support for V2DF/V2DI altivec
11293         load/store builtins.
11294         (rs6000_address_for_altivec): Insure memory address is appropriate
11295         for Altivec.
11296
11297         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11298         vec_vsx_ld and vec_vsx_st.
11299         (vsx_store_<mode>): Ditto.
11300
11301         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
11302         variables to hold long long types for VSX vector memory builtins.
11303         (RS6000_BTI_unsigned_long_long): Ditto.
11304         (long_long_integer_type_internal_node): Ditti.
11305         (long_long_unsigned_type_internal_node): Ditti.
11306
11307         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
11308         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
11309         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
11310
11311         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
11312         short cuts.
11313         (vec_vsx_st): Ditto.
11314
11315 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11316
11317         * config/pa/pa-hpux10.opt: New.
11318         * config/hpux11.opt (pthread): New Driver option.
11319         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
11320         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
11321
11322 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11323
11324         * config/ia64/vms.opt: New.
11325         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
11326
11327 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
11328
11329         PR target/47580
11330         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
11331         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
11332         generator functions.
11333         (vsx_floatuns<VSi><mode>2): Ditto.
11334         (vsx_fix_trunc<mode><VSi>2): Ditto.
11335         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
11336
11337 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11338
11339         * config/i386/djgpp.opt (posix): New Driver option.
11340
11341 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11342
11343         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
11344         Move to the unsupported targets list.
11345
11346 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
11347
11348         PR rtl-optimization/47525
11349         * df-scan.c: Update copyright years.
11350         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
11351         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
11352
11353 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11354
11355         * config/i386/sysv4.h (TARGET_VERSION): Remove.
11356         (SUBTARGET_RETURN_IN_MEMORY): Remove.
11357         (ASM_OUTPUT_ASCII): Remove.
11358         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
11359
11360 2011-02-02  Jeff Law  <law@redhat.com>
11361
11362         PR middle-end/47543
11363         * reload.c (find_reloads_address): Handle reg+d address where both
11364         components are invalid by reloading the entire address.
11365
11366 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11367             Richard Guenther  <rguenther@suse.de>
11368
11369         PR tree-optimization/40979
11370         PR bootstrap/47044
11371         * passes.c (init_optimization_passes): After LIM call copy_prop
11372         and DCE to clean up.
11373         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
11374
11375 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11376
11377         PR tree-optimization/47576
11378         PR tree-optimization/47555
11379         * doc/invoke.texi (scev-max-expr-complexity): Documented.
11380         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11381         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
11382         * tree-scalar-evolution.c (follow_ssa_edge): Use
11383         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
11384
11385 2011-02-02  Richard Guenther  <rguenther@suse.de>
11386
11387         PR tree-optimization/47566
11388         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
11389
11390 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
11391
11392         PR debug/47106
11393         PR debug/47402
11394         * tree-inline.c (declare_return_variable): Remove unused caller
11395         variable.
11396
11397         PR debug/47106
11398         PR debug/47402
11399         * tree-flow-inline.h (clear_is_used, is_used_p): New.
11400         * cfgexpand.c (account_used_vars_for_block): Use them.
11401         * tree-nrv.c (tree_nrv): Likewise.
11402         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
11403         (dump_scope_block): Likewise.
11404         (remove_unused_locals): Likewise.
11405
11406         PR debug/47106
11407         PR debug/47402
11408         * tree-inline.c (declare_return_variable): Add result decl to
11409         local decls only once.
11410         * gimple-low.c (record_vars_into): Mark newly-created variables
11411         as referenced.
11412
11413 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
11414
11415         PR debug/47498
11416         PR debug/47501
11417         PR debug/45136
11418         PR debug/45130
11419         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11420         debug insns.
11421         (no_real_insns_p, schedule_block, set_priorities): Drop special
11422         treatment of boundary debug insns.
11423         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11424         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
11425         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11426         (BOUNDARY_DEBUG_INSN_P): Likewise.
11427         (SCHEDULE_DEBUG_INSN_P): Likewise.
11428         * sched-rgn.c (init_ready_list): Drop special treatment of
11429         boundary debug insns.
11430         * final.c (rest_of_clean_state): Clear notes' BB.
11431
11432 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11433
11434         * config/openbsd.opt (assert=): New Driver option.
11435
11436 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11437
11438         * config/i386/nto.opt: New.
11439         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
11440
11441 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11442
11443         * config/i386/netware.opt: New.
11444         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
11445
11446 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11447
11448         * config/interix.opt (posix): New Driver option.
11449
11450 2011-02-01  DJ Delorie  <dj@redhat.com>
11451
11452         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
11453
11454         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
11455         class for A0/A1.
11456
11457 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
11458
11459         PR tree-optimization/47561
11460         * toplev.c (process_options): Print the Graphite flags.  Add
11461         flag_loop_flatten to the list of options requiring Graphite.
11462
11463 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11464
11465         * config/i386/cygming.opt (posix): New Driver option.
11466
11467 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11468
11469         * config/arm/vxworks.opt: New.
11470         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
11471
11472 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11473
11474         * config/alpha/elf.opt: New.
11475         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
11476         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
11477
11478 2011-02-01  Richard Guenther  <rguenther@suse.de>
11479
11480         PR tree-optimization/47559
11481         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
11482         store-motion on references that can throw.
11483
11484 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
11485
11486         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
11487         * tree-pass.h (TDF_CSELIB): New macro.
11488         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
11489         cselib_lookup): Check for it rather than for TDF_DETAILS.
11490
11491 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
11492
11493         PR driver/47547
11494         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
11495         is HOST_BIT_BUCKET.
11496
11497         * opts.c (finish_options): Don't add x_aux_base_name if it is
11498         HOST_BIT_BUCKET.
11499
11500 2011-02-01  Richard Guenther  <rguenther@suse.de>
11501
11502         PR tree-optimization/47555
11503         Revert
11504         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
11505
11506         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11507
11508 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11509
11510         PR gcc/46692
11511         * config/lm32/t-lm32: Add multilib for all CPU options.
11512
11513 2011-02-01  Richard Guenther  <rguenther@suse.de>
11514
11515         PR tree-optimization/47541
11516         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11517         sure to have a field at offset zero.
11518
11519 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11520
11521         * config/arc/arc.opt (EB, EL): New Driver options.
11522
11523 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11524
11525         * config/alpha/osf5.opt: New.
11526         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
11527
11528 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11529
11530         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
11531
11532 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
11533
11534         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
11535         -floop-interchange.
11536         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
11537         is an alias of -floop-interchange and that it requires the
11538         Graphite infrastructure.
11539         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
11540         flag_loop_interchange based on the value of flag_tree_loop_linear.
11541
11542 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
11543             Richard Guenther  <rguenther@suse.de>
11544
11545         PR tree-optimization/47538
11546         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
11547         type instead of r1type, except for comparisons.  For right
11548         shifts and comparisons punt if there are mismatches in
11549         sizetype vs. non-sizetype types.
11550
11551 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11552
11553         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11554         avx_runtime.
11555
11556 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11557
11558         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
11559         version number.
11560         * configure: Regenerate.
11561
11562 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11563
11564         * configure.ac (gcc_cv_ld_static_option): Define.
11565         (gcc_cv_ld_dynamic_option): Define.
11566         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
11567         instead.
11568         (HAVE_LD_STATIC_DYNAMIC): Update message.
11569         (LD_STATIC_OPTION): Define.
11570         (LD_DYNAMIC_OPTION): Define.
11571         * configure: Regenerate.
11572         * config.in: Regenerate.
11573         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
11574         HAVE_LD_STATIC_DYNAMIC]: Use them.
11575
11576 2011-01-31  Nick Clifton  <nickc@redhat.com>
11577
11578         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
11579         registers inside interrupt handlers if the handler is not a leaf
11580         function.
11581
11582 2011-01-31  Nick Clifton  <nickc@redhat.com>
11583
11584         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
11585         reg_renumber returning an INVALID_REGNUM.
11586
11587 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
11588
11589         PR libgcj/44341
11590         * doc/install.texi: Document host options discarded when cross
11591         configuring target libraries.
11592
11593 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
11594
11595         Reverted:
11596         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
11597         PR debug/45136
11598         PR debug/45130
11599         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11600         debug insns.
11601         (no_real_insns_p, schedule_block, set_priorities): Drop special
11602         treatment of boundary debug insns.
11603         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11604         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11605         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11606         (BOUNDARY_DEBUG_INSN_P): Likewise.
11607         (SCHEDULE_DEBUG_INSN_P): Likewise.
11608         * sched-rgn.c (init_ready_list): Drop special treatment of
11609         boundary debug insns.
11610         * final.c (rest_of_clean-state): Clear notes' BB.
11611
11612 2011-01-31  Alan Modra  <amodra@gmail.com>
11613
11614         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
11615         toc relative expressions as we do in print_operand_address.
11616
11617 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
11618
11619         * doc/extend.texi: Follow spelling conventions.
11620         * doc/invoke.texi: Fix a typo.
11621
11622 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
11623
11624         * config/hpux11.opt: New.
11625         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
11626         ia64*-*-hpux*): Use hpux11.opt.
11627
11628 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
11629
11630         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
11631         to tmake_file.
11632
11633 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11634
11635         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
11636         support sites.
11637
11638 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11639
11640         * doc/install.texi (Binaries): Remove outdated reference for
11641         Motorola 68HC11/68HC12 downloads.
11642
11643 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11644
11645         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
11646         Drepper's paper.
11647
11648 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
11649
11650         PR bootstrap/47147
11651         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
11652         used by NetBSD.
11653
11654 2011-01-28  Ahmad Sharif  <asharif@google.com>
11655
11656         * value-prof.c (check_counter): Corrected error message.
11657
11658 2011-01-29  Jie Zhang  <jie@codesourcery.com>
11659
11660         * config/arm/arm.c (arm_legitimize_reload_address): New.
11661         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11662         arm_legitimize_reload_address.
11663         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
11664
11665 2011-01-28  Ian Lance Taylor  <iant@google.com>
11666
11667         * godump.c (go_define): Ignore macros whose definitions include
11668         two adjacent operands.
11669
11670 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
11671
11672         PR target/42894
11673         * varasm.c (force_const_mem): Store copy of x in desc->constant
11674         instead of x itself.
11675         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
11676         itself into REG_EQUAL note.
11677
11678 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
11679
11680         * config/freebsd.opt (posix, rdynamic): New Driver options.
11681
11682 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11683
11684         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
11685         -Bstatic/-Bdynamic.
11686         * configure: Regenerate.
11687
11688 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
11689
11690         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
11691         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
11692
11693 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
11694
11695         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
11696         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
11697         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11698         (s390_preferred_reload_class): Make static. Change return and
11699         'rclass' argument type to reg_class_t.
11700
11701 2011-01-27  Jan Hubicka  <jh@suse.cz>
11702
11703         PR middle-end/46949
11704         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
11705         (process_function_and_variable_attributes): Check defined weakrefs.
11706
11707 2011-01-27  Martin Jambor  <mjambor@suse.cz>
11708
11709         PR tree-optimization/47228
11710         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
11711         build_ref_for_offset.
11712
11713 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11714
11715         * config/spu/spu-elf.h (ASM_SPEC): Remove.
11716
11717 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
11718
11719         PR rtl-optimization/46856
11720         * postreload.c (reload_combine_recognize_const_pattern): Do not
11721         separate cc0 setter and user on cc0 targets.
11722
11723 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
11724
11725         PR c/43082
11726         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
11727         passed a VOID_TYPE expression, immediately emit an error and
11728         return error_mark_node.
11729
11730 2011-01-26  Jeff Law  <law@redhat.com>
11731
11732         PR rtl-optimization/47464
11733         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
11734         rather than may_trap_p as needed.
11735
11736 2011-01-26  DJ Delorie  <dj@redhat.com>
11737
11738         PR rtl-optimization/46878
11739         * combine.c (insn_a_feeds_b): Check for the implicit cc0
11740         setter/user dependency as well.
11741
11742 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
11743
11744         PR rtl-optimization/44469
11745         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
11746         after removing trivially dead basic blocks.
11747
11748 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11749
11750         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
11751         * config/frv/frv.h (LINK_SPEC): Likewise.
11752         * config/i386/netware.h (LINK_SPEC): Likewise.
11753         * config/m68k/linux.h (ASM_SPEC): Likewise.
11754         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11755         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11756         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11757         * config/sparc/linux.h (ASM_SPEC): Likewise.
11758         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11759         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11760
11761 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11762
11763         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
11764         * config/frv/frv.h (ASM_SPEC): Likewise.
11765         * config/m68k/linux.h (ASM_SPEC): Likewise.
11766         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11767         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
11768         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11769         * config/sparc/linux.h (ASM_SPEC): Likewise.
11770         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11771         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11772
11773 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11774
11775         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
11776         * config/frv/frv.h (LINK_SPEC): Likewise.
11777         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11778
11779 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11780
11781         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
11782         * config/frv/frv.h (ASM_SPEC): Likewise.
11783         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
11784         * config/m68k/linux.h (ASM_SPEC): Likewise.
11785         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11786         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
11787         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11788         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
11789         * config/sparc/linux.h (ASM_SPEC): Likewise.
11790         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11791         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11792         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
11793
11794 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
11795
11796         PR target/46997
11797         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
11798         (*mux2): Ditto.
11799         (vec_extract_evenodd_help): Ditto.
11800         (vec_extract_evenv4hi): Ditto.
11801         (vec_extract_oddv4hi): Ditto.
11802         (vec_interleave_lowv2si): Ditto.
11803         (vec_interleave_highv2si): Ditto.
11804         (vec_extract_evenv2si): Ditto.
11805         (vec_extract_oddv2si: Ditto.
11806         (vec_pack_trunc_v2si): Ditto.
11807
11808 2011-01-22  Jan Hubicka  <jh@suse.cz>
11809
11810         PR target/47237
11811         * cgraph.h (cgraph_local_info): New field can_change_signature.
11812         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
11813         signature can change.
11814         (ipcp_estimate_growth): Call sequence simplify only if calle signature
11815         can change.
11816         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
11817         (cgraph_function_versioning): We can not change signature of functions
11818         that don't allow that.
11819         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
11820         (lto_input_node): Likewise.
11821         * ipa-inline.c (compute_inline_parameters): Compute
11822         local.can_change_signature.
11823         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
11824         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
11825         functions that can not change signature.
11826         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
11827         init_cumulative_args): Do not use local calling conventions
11828         for functions that can not change signature.
11829
11830 2011-01-22  Jan Hubicka  <jh@suse.cz>
11831
11832         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
11833
11834 2011-01-26  Richard Guenther  <rguenther@suse.de>
11835
11836         PR tree-optimization/47190
11837         * cgraphunit.c (process_common_attributes): New function.
11838         (process_function_and_variable_attributes): Use it.
11839
11840 2011-01-26  Richard Guenther  <rguenther@suse.de>
11841
11842         PR lto/47423
11843         * cgraphbuild.c (record_eh_tables): Record reference to personality
11844         function.
11845
11846 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
11847
11848         PR debug/45454
11849         * sel-sched.c (moveup_expr): Don't let debug insns prevent
11850         non-debug insns from moving up.
11851
11852 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
11853
11854         PR target/40125
11855         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
11856         t-dlldir{,-x} fragment for build and add it to tmake_file.
11857         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11858         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
11859         * config/i386/t-dlldir: New file.
11860         (SHLIB_DLLDIR): Define.
11861         * config/i386/t-dlldir-x: New file.
11862         (SHLIB_DLLDIR): Define.
11863         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
11864         (SHLIB_INSTALL): Use it.
11865
11866 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
11867
11868         PR target/47246
11869         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
11870         lower bound of the allowed Thumb-2 coprocessor load/store
11871         index range to -256. Add explaining comment.
11872
11873 2011-01-25  Ian Lance Taylor  <iant@google.com>
11874
11875         * godump.c (go_define): Improve lexing of macro expansion to only
11876         accept expressions which match Go spec.
11877
11878 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
11879
11880         PR c++/43601
11881         * tree.c (handle_dll_attribute): Handle it.
11882         * doc/extend.texi (@item dllexport): Mention it.
11883         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
11884
11885 2011-01-25  Ian Lance Taylor  <iant@google.com>
11886
11887         PR tree-optimization/26854
11888         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
11889         (decl_jump_unsafe): Move higher in file, with no other change.
11890         (bind): Set has_jump_unsafe_decl if appropriate.
11891         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
11892         (check_earlier_gotos): Likewise.
11893         (c_check_switch_jump_warnings): Likewise.
11894
11895 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
11896
11897         * doc/invoke.texi (Warning Options): Add missing hyphen.
11898         (-fprofile-dir): Minor grammatical fixes.
11899         (-fbranch-probabilities): Likewise.
11900
11901 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
11902
11903         PR debug/45136
11904         PR debug/45130
11905         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11906         debug insns.
11907         (no_real_insns_p, schedule_block, set_priorities): Drop special
11908         treatment of boundary debug insns.
11909         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11910         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11911         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11912         (BOUNDARY_DEBUG_INSN_P): Likewise.
11913         (SCHEDULE_DEBUG_INSN_P): Likewise.
11914         * sched-rgn.c (init_ready_list): Drop special treatment of
11915         boundary debug insns.
11916         * final.c (rest_of_clean-state): Clear notes' BB.
11917
11918 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11919
11920         * Makefile.in (LAMBDA_H): Removed.
11921         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
11922         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
11923         lambda-trans.o, and tree-loop-linear.o.
11924         (lto-symtab.o): Remove dependence on LAMBDA_H.
11925         (tree-loop-linear.o): Remove rule.
11926         (lambda-mat.o): Same.
11927         (lambda-trans.o): Same.
11928         (lambda-code.o): Same.
11929         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
11930         (tree-vect-slp.o): Same.
11931         * hwint.h (gcd): Moved here.
11932         (least_common_multiple): Same.
11933         * lambda-code.c: Removed.
11934         * lambda-mat.c: Removed.
11935         * lambda-trans.c: Removed.
11936         * lambda.h: Removed.
11937         * tree-loop-linear.c: Removed.
11938         * lto-symtab.c: Do not include lambda.h.
11939         * omega.c (gcd): Removed.
11940         * passes.c (init_optimization_passes): Remove pass_linear_transform.
11941         * tree-data-ref.c (print_lambda_vector): Moved here.
11942         (lambda_vector_copy): Same.
11943         (lambda_matrix_copy): Same.
11944         (lambda_matrix_id): Same.
11945         (lambda_vector_first_nz): Same.
11946         (lambda_matrix_row_add): Same.
11947         (lambda_matrix_row_exchange): Same.
11948         (lambda_vector_mult_const): Same.
11949         (lambda_vector_negate): Same.
11950         (lambda_matrix_row_negate): Same.
11951         (lambda_vector_equal): Same.
11952         (lambda_matrix_right_hermite): Same.
11953         * tree-data-ref.h: Do not include lambda.h.
11954         (lambda_vector): Moved here.
11955         (lambda_matrix): Same.
11956         (dependence_level): Same.
11957         (lambda_transform_legal_p): Removed declaration.
11958         (lambda_collect_parameters): Same.
11959         (lambda_compute_access_matrices): Same.
11960         (lambda_vector_gcd): Same.
11961         (lambda_vector_new): Same.
11962         (lambda_vector_clear): Same.
11963         (lambda_vector_lexico_pos): Same.
11964         (lambda_vector_zerop): Same.
11965         (lambda_matrix_new): Same.
11966         * tree-flow.h (least_common_multiple): Removed declaration.
11967         * tree-parloops.c (lambda_trans_matrix): Moved here.
11968         (LTM_MATRIX): Same.
11969         (LTM_ROWSIZE): Same.
11970         (LTM_COLSIZE): Same.
11971         (LTM_DENOMINATOR): Same.
11972         (lambda_trans_matrix_new): Same.
11973         (lambda_matrix_vector_mult): Same.
11974         (lambda_transform_legal_p): Same.
11975         * tree-pass.h (pass_linear_transform): Removed declaration.
11976         * tree-ssa-loop.c (tree_linear_transform): Removed.
11977         (gate_tree_linear_transform): Removed.
11978         (pass_linear_transform): Removed.
11979         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
11980         flag_loop_interchange.
11981
11982 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
11983
11984         PR tree-optimization/47265
11985         PR tree-optimization/47443
11986         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
11987         if name still has some uses.
11988
11989 2011-01-25  Martin Jambor  <mjambor@suse.cz>
11990
11991         PR tree-optimization/47382
11992         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
11993         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
11994
11995 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
11996
11997         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
11998         sjlj_except_unwind_info.
11999
12000 2011-01-25  Richard Guenther  <rguenther@suse.de>
12001
12002         PR tree-optimization/47426
12003         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12004         visible functions results escape.
12005
12006 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12007
12008         PR target/45701
12009         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12010         (arm_get_frame_offsets): Use it.
12011
12012 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12013             Jakub Jelinek  <jakub@redhat.com>
12014
12015         PR tree-optimization/47271
12016         * tree-if-conv.c (bb_postdominates_preds): New.
12017         (if_convertible_bb_p): Call bb_postdominates_preds.
12018         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12019         (predicate_scalar_phi): Call bb_postdominates_preds.
12020
12021 2011-01-25  Nick Clifton  <nickc@redhat.com>
12022
12023         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12024         * config/rx/rx.c (rx_function_value): Likewise.
12025         (rx_promote_function_mode): Likewise.
12026         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12027         in order to make it legitimate.
12028         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12029         make sure that the first operand is the same as the result register.
12030         (addsi3_unspec): Delete.
12031         (subdi3): Do not accept immediate operands.
12032         (subdi3_internal): Likewise.
12033
12034 2011-01-25  Jeff Law  <law@redhat.com>
12035
12036         PR rtl-optimization/37273
12037         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12038         handle them like argument loads from stack slots.  Do not double
12039         count memory for memory constants and argument loads from stack slots.
12040
12041 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12042
12043         PR tree-optimization/47427
12044         PR tree-optimization/47428
12045         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12046         coalesce if the new root var would be TREE_READONLY.
12047
12048 2011-01-25  Richard Guenther  <rguenther@suse.de>
12049
12050         PR middle-end/47414
12051         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12052         correct type for TBAA.
12053
12054 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12055
12056         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12057         (close_phi_written_to_memory): Call for_each_index with
12058         dr_indices_valid_in_loop.
12059
12060 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12061
12062         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12063         when it is initialized.
12064
12065 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12066
12067         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12068         call to graphite_find_data_references_in_stmt.
12069         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12070         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
12071         call to graphite_find_data_references_in_stmt.
12072         (analyze_drs_in_stmts): Same.
12073         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12074         in which the scalar analysis of indices is performed.
12075         (create_data_ref): Same.  Update call to dr_analyze_indices.
12076         (find_data_references_in_stmt): Update call to create_data_ref.
12077         (graphite_find_data_references_in_stmt): Same.
12078         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12079         declaration.
12080         (create_data_ref): Same.
12081         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12082         call to create_data_ref.
12083
12084 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12085
12086         * graphite-sese-to-poly.c (build_poly_scop): Move
12087         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
12088
12089 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12090
12091         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12092         VAR_DECL, PARM_DECL, and RESULT_DECL.
12093
12094 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12095
12096         * graphite-dependences.c (reduction_dr_1): Allow several reductions
12097         in a reduction PBB.
12098         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12099         that have already been marked as PBB_IS_REDUCTION.
12100
12101 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12102
12103         * graphite-scop-detection.c (same_close_phi_node): New.
12104         (remove_duplicate_close_phi): New.
12105         (make_close_phi_nodes_unique): New.
12106         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12107
12108 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12109
12110         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12111         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12112         of both data references to be the same.
12113
12114 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12115
12116         * graphite-dependences.c (build_lexicographical_constraint): Remove
12117         the gdim parameter.
12118         (build_lexicographical_constraint): Adjust call to
12119         ppl_powerset_is_empty.
12120         (dependence_polyhedron): Same.
12121         (graphite_legal_transform_dr): Same.
12122         (graphite_carried_dependence_level_k): Same.
12123         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12124         parameter.
12125         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12126
12127 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12128
12129         * graphite-sese-to-poly.c
12130         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12131         (close_phi_written_to_memory): New.
12132         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12133         and unshare_expr.
12134
12135 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12136
12137         * doc/install.texi: Update the expected version number of PPL to 0.11.
12138         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12139         #if PPL_VERSION_MINOR < 11.
12140
12141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12142
12143         * graphite-dependences.c: Include graphite-cloog-util.h.
12144         (new_poly_ddr): Inlined into dependence_polyhedron.
12145         (free_poly_ddr): Moved close by new_poly_ddr.
12146         (dependence_polyhedron_1): Renamed dependence_polyhedron.
12147         Early return NULL when ppl_powerset_is_empty returns true.
12148         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
12149         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
12150         (graphite_legal_transform_dr): Call new_poly_ddr.
12151         (graphite_carried_dependence_level_k): Same.
12152         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
12153         (dot_transformed_deps_stmt_1): Removed.
12154         (dot_deps_stmt_1): Call dot_deps_stmt_2.
12155         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
12156         (dot_deps_1): Call dot_deps_2.
12157         * Makefile.in (graphite-dependences.o): Add missing dependence on
12158         graphite-cloog-util.h.
12159
12160 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12161
12162         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12163         (build_lexicographical_constraint): Same.
12164         (dependence_polyhedron_1): Same.
12165         (graphite_legal_transform_dr): Same.
12166         (graphite_carried_dependence_level_k): Same.
12167         * graphite-ppl.c (ppl_powerset_is_empty): New.
12168         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12169         * tree-data-ref.c (dump_data_reference): Print the basic block index.
12170
12171 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12172
12173         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12174         the "a followed by b" relation and document it.
12175
12176 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12177
12178         * graphite-dependences.c (build_lexicographical_constraint): Stop the
12179         iteration when the bag of constraints is empty.
12180
12181 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12182
12183         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12184
12185 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12186
12187         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12188         nest and two loop depths as parameters.
12189         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12190         lst_perfect_nestify.
12191
12192 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12193
12194         * graphite-dependences.c (print_pddr): Call
12195         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12196
12197 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12198
12199         * graphite-ppl.c (debug_gmp_value): New.
12200         * graphite-ppl.h (debug_gmp_value): Declared.
12201
12202 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
12203
12204         * doc/install.texi: Document availability of cloog-0.16.
12205
12206 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
12207
12208         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12209         invalid postdominance info.
12210
12211 2011-01-24  Jan Hubicka  <jh@suse.cz>
12212
12213         PR c/21659
12214         * doc/extend.texi (weak pragma): Drop claim that it must
12215         appear before definition.
12216         * varasm.c (merge_weak, declare_weak): Only sanity check
12217         that DECL is not output at a time it is declared weak.
12218
12219 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
12220
12221         * machmode.def: Fixed comments.
12222
12223 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
12224
12225         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12226
12227 2011-01-24  Paul Koning  <ni1d@arrl.net>
12228
12229         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
12230         WORDS_BIG_ENDIAN.
12231
12232 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12233
12234         PR target/46519
12235         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12236         (block_info): Add scanned and prev.
12237         (move_or_delete_vzeroupper_2): Return if the basic block
12238         has been scanned and the upper 128bit state is unchanged
12239         from the last scan.
12240         (move_or_delete_vzeroupper_1): Return true if the exit
12241         state is changed.
12242         (move_or_delete_vzeroupper): Visit basic blocks using the
12243         work-list based algorithm based on vt_find_locations in
12244         var-tracking.c.
12245
12246         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12247
12248 2011-01-24  Nick Clifton  <nickc@redhat.com>
12249
12250         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12251         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12252         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
12253         then define __v850e1__.
12254         * doc/invoke.texi: Document -mv850es.
12255
12256 2011-01-24  Richard Henderson  <rth@redhat.com>
12257
12258         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12259         compound unordered comparisons.
12260         * config/rx/rx.c (rx_split_fp_compare): Remove.
12261         * config/rx/rx-protos.h: Update.
12262         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12263         (cbranchsf4): Don't call rx_split_fp_compare.
12264         (*cbranchsf4): Use rx_split_cbranch.
12265         (*cmpsf): Don't accept "i" constraint.
12266         (*conditional_branch): Only valid after reload.
12267         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
12268
12269 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12270
12271         PR target/47385
12272         * config/rs6000/altivec.md (vector constant splitters): Add
12273         support for creating vector single precision constants if -mvsx is
12274         used and we would create the constant using Altivec primitives.
12275
12276 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
12277             Richard Sandiford  <rdsandiford@googlemail.com>
12278
12279         PR rtl-optimization/47166
12280         * reload1.c (emit_reload_insns): Disable the spill_reg_store
12281         mechanism for PRE_MODIFY and POST_MODIFY.
12282         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12283         reloadreg.
12284
12285 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
12286
12287         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
12288
12289 2011-01-22  Jan Hubicka  <jh@suse.cz>
12290
12291         PR lto/47333
12292         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12293
12294 2011-01-22  Jan Hubicka  <jh@suse.cz>
12295
12296         PR tree-optimization/43884
12297         PR lto/44334
12298         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
12299         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
12300
12301 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
12302
12303         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12304         * config/s390/s390.c (s390_register_move_cost,
12305         s390_memory_move_cost): New.
12306         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12307
12308 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12309
12310         PR middle-end/47401
12311         * except.c (sjlj_assign_call_site_values): Move setting the
12312         crtl->uses_eh_lsda flag to ...
12313         (sjlj_mark_call_sites): ... here.
12314         (sjlj_emit_function_enter): Support NULL dispatch label.
12315         (sjlj_build_landing_pads): In a function with no landing pads
12316         that still has must-not-throw regions, generate code to register
12317         a personality function with empty LSDA.
12318
12319 2011-01-21  Richard Henderson  <rth@redhat.com>
12320
12321         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
12322
12323         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
12324
12325         * compare-elim.c: New file.
12326         * Makefile.in (OBJS-common): Add it.
12327         (compare-elim.o): New.
12328         * common.opt (fcompare-elim): New.
12329         * opts.c (default_options_table): Add OPT_fcompare_elim.
12330         * tree-pass.h (pass_compare_elim_after_reload): New.
12331         * passes.c (init_optimization_passes): Add it.
12332         * recog.h: Protect against re-inclusion.
12333         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
12334         * doc/invoke.texi (-fcompare-elim): Document it.
12335         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
12336         * doc/tm.texi: Rebuild.
12337
12338 2011-01-22  Nick Clifton  <nickc@redhat.com>
12339
12340         * config/rx/rx.md (cstoresf4): Pass comparison operator to
12341         rx_split_fp_compare.
12342
12343 2011-01-22  Nick Clifton  <nickc@redhat.com>
12344
12345         * config/rx/rx.md (UNSPEC_CONST): New.
12346         (deallocate_and_return): Wrap the amount popped off the stack in
12347         an UNSPEC_CONST in order to stop it being rejected by
12348         -mmax-constant-size.
12349         (pop_and_return): Add a "(return)" rtx.
12350         (call): Drop the immediate operand.
12351         (call_internal): Likewise.
12352         (call_value): Likewise.
12353         (call_value_internal): Likewise.
12354         (sibcall_internal): Likewise.
12355         (sibcall_value_internal): Likewise.
12356         (sibcall): Likewise.  Generate an explicit call using
12357         sibcall_internal.
12358         (sibcall_value): Likewise.
12359         (mov<>): FAIL if a constant operand is not legitimate.
12360         (addsi3_unpsec): New pattern.
12361
12362         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
12363         (ok_for_max_constant): New function.
12364         (gen_safe_add): New function.
12365         (rx_expand_prologue): Use gen_safe_add.
12366         (rx_expand_epilogue): Likewise.
12367         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
12368         UNSPEC CONSTs.
12369
12370 2011-01-21  Jeff Law  <law@redhat.com>
12371
12372         PR tree-optimization/47053
12373         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
12374         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
12375         statements are deleted.
12376         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
12377         is nonempty, then purge dead edges and cleanup the CFG.
12378
12379 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12380
12381         PR debug/47402
12382         Temporarily revert:
12383         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12384         PR debug/47106
12385         * tree-dfa.c (create_var_ann): Mark variable as used.
12386
12387 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12388
12389         PR middle-end/45566
12390         * except.c (convert_to_eh_region_ranges): Emit queued no-region
12391         notes from other section in hot/cold partitioning even if
12392         last_action is -3.  Increment call_site_base.
12393
12394         PR rtl-optimization/47366
12395         * fwprop.c (forward_propagate_into): Return bool.  If
12396         any changes are made, -fnon-call-exceptions is used and
12397         REG_EH_REGION note is present, call purge_dead_edges
12398         and return true if it purged anything.
12399         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
12400         any EH edges were purged.
12401
12402 2011-01-21  Jeff Law  <law@redhat.com>
12403
12404         PR rtl-optimization/41619
12405         * caller-save.c (setup_save_areas): Break out code to determine
12406         which hard regs are live across calls by examining the reload chains
12407         so that it is always used.
12408         Eliminate code which checked REG_N_CALLS_CROSSED.
12409
12410 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12411
12412         PR tree-optimization/47355
12413         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
12414         NOP has non-debug uses beyond PHIs in new_bb.
12415
12416 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12417
12418         PR debug/47106
12419         * cfgexpand.c (account_used_vars_for_block): Only account vars
12420         that are annotated as used.
12421         (estimated_stack_frame_size): Don't set TREE_USED.
12422         * tree-dfa.c (create_var_ann): Mark variable as used.
12423
12424 2011-01-21  Richard Guenther  <rguenther@suse.de>
12425
12426         PR middle-end/47395
12427         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
12428
12429 2011-01-21  Richard Guenther  <rguenther@suse.de>
12430
12431         PR tree-optimization/47365
12432         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
12433         (vn_reference_lookup_pieces): Adjust.
12434         (vn_reference_lookup): Likewise.
12435         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
12436         (vn_reference_lookup_3): Only look through kills if in
12437         VN_WALKREWRITE mode.
12438         (vn_reference_lookup_pieces): Adjust.
12439         (vn_reference_lookup): Likewise.
12440         (visit_reference_op_load): Likewise.
12441         (visit_reference_op_store): Likewise.
12442         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
12443         (compute_avail): Likewise.
12444         (eliminate): Likewise.
12445
12446 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12447
12448         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
12449         DECL_IGNORED_P non-reg vars if they are used.
12450
12451         PR tree-optimization/47391
12452         * varpool.c (const_value_known_p): Return false if
12453         decl is volatile.
12454
12455 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
12456
12457         PR bootstrap/47215
12458         * config/i386/i386.c (ix86_local_alignment): Handle
12459         case for va_list_type_node is nil.
12460         (ix86_canonical_va_list_type): Likewise.
12461
12462 2011-01-21  Alan Modra  <amodra@gmail.com>
12463
12464         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
12465         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
12466
12467 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12468
12469         * config/arm/arm.md (define_attr type): Rename f_load
12470         and f_store to f_fpa_load and f_fpa_store. Update.
12471         (write_conflict): Deal with rename fallout.
12472         (*push_fp_multi): Likewise.
12473         * config/arm/fpa.md (f_load): Use f_fpa_load.
12474         (f_store): Use f_fpa_store.
12475         (*movsf_fpa): Likewise.
12476         (*movdf_fpa): Likewise.
12477         (*movxf_fpa): Likewise.
12478         (*thumb2_movsf_fpa): Likewise.
12479         (*thumb2_movdf_fpa): Likewise.
12480         (*thumb2_movxf_fpa): Likewise.
12481         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
12482         f_loadd and f_stored.
12483         (*thumb2_movdi_vfp): Likewise.
12484         (*thumb2_movsf_vfp): Fix attribute to f_loads.
12485         (*thumb2_movsi_vfp): Likewise.
12486         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
12487         Use f_loads instead of f_load.
12488         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
12489
12490 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
12491
12492         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12493         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
12494         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12495         (xtensa_mode_dependent_address_p): New function.
12496         (constantpool_address_p): Make static. Change return type to bool.
12497         Change argument type to const_rtx. Use CONST_INT_P predicate.
12498
12499 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
12500
12501         PR debug/46583
12502         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
12503
12504 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
12505
12506         PR debug/47283
12507         * cfgexpand.c (expand_debug_expr): Instead of generating
12508         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
12509         etc. handling.
12510
12511 2011-01-20  Richard Guenther  <rguenther@suse.de>
12512
12513         PR middle-end/47370
12514         * tree-inline.c (remap_gimple_op_r): Recurse manually for
12515         the pointer operand of MEM_REFs.
12516
12517 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
12518
12519         PR tree-optimization/46130
12520         * ipa-split.c (consider_split): If return_bb contains non-virtual
12521         PHIs other than for retval or if split_function would not adjust it,
12522         refuse to split.
12523
12524 2011-01-20  Richard Guenther  <rguenther@suse.de>
12525
12526         PR tree-optimization/47167
12527         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12528         Revert previous change, only avoid enumeral type changes.
12529
12530 2011-01-19  Mike Stump  <mikestump@comcast.net>
12531
12532         * doc/tm.texi.in (BRANCH_COST): Englishify.
12533         * doc/tm.texi (BRANCH_COST): Likewise.
12534
12535 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
12536
12537         PR c++/47291
12538         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
12539         (gen_scheduled_generic_parms_dies): New functions.
12540         (gen_struct_or_union_type_die): Schedule template parameters DIEs
12541         generation for the end of CU compilation.
12542         (dwarf2out_finish): Generate template parameters DIEs here.
12543
12544 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12545
12546         PR debug/46240
12547         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
12548         debug bind stmt on merge edges.
12549
12550 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12551
12552         PR debug/47079
12553         PR debug/46724
12554         * function.c (instantiate_expr): Instantiate incoming rtl of
12555         implicit arguments, and recurse on VALUE_EXPRs.
12556         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
12557         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
12558
12559 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12560
12561         * c-parser.c (c_parser_for_statement): Initialize
12562         collection_expression.
12563
12564 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12565
12566         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
12567
12568 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12569
12570         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
12571         (LINK_SHLIB_SPEC): Don't use %(link_path).
12572         (SUBTARGET_EXTRA_SPECS): Remove link_path.
12573
12574 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12575
12576         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
12577         (NO_SHARED_LIB_SUPPORT): Remove.
12578         (LINK_SHLIB_SPEC): Remove one conditional definition.
12579
12580 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12581
12582         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
12583         %{call_shared}.
12584         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
12585         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
12586         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
12587         %{call_shared} and conditionals on these options not being passed.
12588         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
12589         %{call_shared}.
12590
12591 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
12592
12593         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
12594         simplify.
12595
12596         * ipa-split.c: Spelling fixes.
12597
12598 2011-01-19  Richard Henderson  <rth@redhat.com>
12599
12600         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
12601         (*mulsi3): Likewise.
12602
12603         * longlong.h [__mn10300__] (count_leading_zeros): New.
12604         [__mn10300__] (umul_ppmm, smul_ppmm): New.
12605         [__mn10300__] (add_ssaaaa, subddmmss): New.
12606         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
12607         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
12608
12609 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12610
12611         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
12612
12613 2011-01-19  Richard Henderson  <rth@redhat.com>
12614
12615         * config/mn10300/mn10300.md (addsi3_flags): New.
12616         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
12617         (subsi3_flags, subc_internal, subdi3): New.
12618         (subdi3_internal, *subdi3_degenerate): New.
12619         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
12620
12621         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
12622         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
12623         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
12624         * config/mn10300/mn10300-protos.h: Update.
12625         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
12626         (return_ret): Likewise.  Rename from return_internal_regs.
12627         (return_internal): Remove.
12628
12629         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
12630         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
12631         (mn10300_legitimate_constant_p): Likewise.
12632         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
12633         (mn10300_frame_size): New.
12634         (mn10300_expand_prologue): Use it.
12635         (mn10300_expand_epilogue): Likewise.
12636         (mn10300_initial_offset): Likewise.
12637         * config/mn10300/mn10300-protos.h: Update.
12638         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
12639         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
12640         (prologue, epilogue, return_internal): Tidy output code.
12641         (mn10300_store_multiple_operation, return): Likewise.
12642         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
12643         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
12644         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
12645         (load_pic, am33_load_pic): New.
12646         (mn10300_load_pic0, mn10300_load_pic1): New.
12647
12648         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
12649         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
12650         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
12651         (cc_flags_for_mode, cc_flags_for_code): New.
12652         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
12653         overflow flag is not valid.  Validate that the flags we need
12654         for the comparison are valid.
12655         (mn10300_output_cmp): Remove.
12656         (mn10300_output_add): New.
12657         (mn10300_select_cc_mode): Use cc_flags_for_code.
12658         (mn10300_split_cbranch): New.
12659         (mn10300_match_ccmode): New.
12660         (mn10300_split_and_operand_count): New.
12661         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
12662         to the function.
12663         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
12664         (addsi3): ... here.  Use mn10300_output_add.
12665         (*addsi3_flags): New.
12666         (*am33_subsi3, *mn10300_subsi3): Merge...
12667         (subsi3): ... here.  Use attribute isa.
12668         (*subsi3_flags): New.
12669         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
12670         when possible.
12671         (*am33_andsi3, *mn10300_andsi3): Merge...
12672         (andsi3): ... here.
12673         (*andsi3_flags): New.
12674         (andsi3 splitters): New.
12675         (*am33_iorsi3, *mn10300_iorsi3): Merge...
12676         (iorsi3): ... here.
12677         (*iorsi3_flags): New.
12678         (*am33_xorsi3, *mn10300_xorsi3): Merge...
12679         (xorsi3): ... here.
12680         (*xorsi3_flags): New.
12681         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
12682         (one_cmplsi2): ... here.
12683         (*one_cmplsi2_flags): New.
12684         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
12685         instead of "dax" in constraints.  Use mn10300_split_cbranch.
12686         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
12687         use matching constraints to eliminate a self-comparison.
12688         (*integer_conditional_branch): Rename from integer_conditional_branch.
12689         Use int_mode_flags to match CC_REG.
12690         (*cbranchsi4_btst, *btstsi): New.
12691         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
12692         mn10300_split_cbranch.
12693         (*am33_cmpsf): Rename from am33_cmpsf.
12694         (*float_conditional_branch): Rename from float_conditional_branch.
12695         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
12696         (zero_extendqisi2): ... here.
12697         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
12698         (zero_extendhisi2): ... here.
12699         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
12700         (extendqisi2): ... here.
12701         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
12702         (extendhisi2): ... here.
12703         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
12704         (ashlsi3): ... here.
12705         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
12706         (lshrsi3): ... here.
12707         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
12708         (ashrsi3): ... here.
12709         (consecutive add peephole): Remove.
12710         * config/mn10300/predicates.md (label_ref_operand): New.
12711         (int_mode_flags): New.
12712         (CCZN_comparison_operator): New.
12713
12714         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
12715         (throughput_42_latency_43): New reservation.
12716         (mulsidi3, umulsidi3): New expanders.
12717         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
12718         the MDR register to allocation; separately allocate the low and
12719         high parts of the DImode result.
12720         (umulsidi3_internal): Similarly.
12721         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
12722         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
12723         (udivsi3, umodsi3): Remove.
12724         (udivmodsi4, divmodsi4): New expanders.
12725         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
12726         (*divmodsi4): Simiarly.
12727         (ext_internal): New.
12728
12729         * config/mn10300/constraints.md ("z"): New constraint.
12730         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
12731         (FIXED_REGISTERS): Don't fix MDR.
12732         (CALL_USED_REGSITERS): Reformat nicely.
12733         (REG_ALLOC_ORDER): Add MDR.
12734         (enum regclass): Add MDR_REGS.
12735         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
12736         (IRA_COVER_CLASSES): Add MDR_REGS.
12737         (REGNO_REG_CLASS): Handle MDR_REG.
12738         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
12739         (mn10300_register_move_cost): Likewise.
12740         * config/mn10300/mn10300.md (MDR_REG): New.
12741         (*movsi_internal): Handle moves to/from MDR_REGS.
12742
12743         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
12744         POST_MODIFY.
12745         (mn10300_secondary_reload): Tidy combination reload classes.
12746         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
12747         addresses for AM33.  Allow symbolic offsets for reg+imm.
12748         (mn10300_regno_in_class_p): New.
12749         (mn10300_legitimize_reload_address): New.
12750         * config/mn10300/mn10300.h (enum reg_class): Remove
12751         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
12752         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
12753         SP_OR_GENERAL_REGS.
12754         (REG_CLASS_NAMES): Update to match.
12755         (REG_CLASS_CONTENTS): Likewise.
12756         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
12757         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
12758         (REGNO_IN_RANGE_P): Remove.
12759         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
12760         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
12761         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
12762         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
12763         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
12764         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
12765         (REGNO_GENERAL_P): New.
12766         (HAVE_POST_MODIFY_DISP): New.
12767         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
12768         (LEGITIMIZE_RELOAD_ADDRESS): New.
12769         * config/mn10300/mn10300-protos.h: Update.
12770
12771         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
12772         DATA_REGS for AM33 stack-pointer destination.
12773         (mn10300_preferred_output_reload_class): Likewise.
12774         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
12775         into a form appropriate for ...
12776         (TARGET_SECONDARY_RELOAD): New.
12777         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
12778         * config/mn10300/mn10300-protos.h: Update.
12779         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
12780         reload_insi; use the "A" constraint for the scratch; handle AM33
12781         moves of sp to non-address registers.
12782
12783         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
12784         (*movqi_internal): ... here.
12785         (*am33_movhi, *mn10300_movhi): Merge into...
12786         (*movhi_internal): ... here.
12787         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
12788         as the source/destination of moves from/to SP.
12789         (movsf): Only allow for AM33-2.
12790         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
12791         any integer constant constraint.  Only allow for AM33-2.  Tidy
12792         all of the alternative outputs.
12793         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
12794         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
12795         for MN103.
12796         (udivsi3, umodsi3): New patterns for MN103 only.
12797
12798 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
12799
12800         * doc/tm.texi.in: Spell out that a lack of register class unions
12801         can lead to ICEs.
12802         * doc/tm.texi: Regenerate.
12803
12804 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
12805
12806         PR rtl-optimization/47337
12807         * dce.c (check_argument_store): New function.
12808         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
12809
12810         PR tree-optimization/47290
12811         * tree-eh.c (infinite_empty_loop_p): New function.
12812         (cleanup_empty_eh): Use it.
12813
12814 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
12815
12816         PR target/46997
12817         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
12818         (a64_expand_widen_sum): Ditto.
12819         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
12820         (vec_extract_evenodd_help): Ditto.
12821         (vec_extract_evenv4hi): Ditto.
12822         (vec_extract_oddv4hi): Ditto.
12823         (vec_extract_evenv2si): Ditto.
12824         (vec_extract_oddv2si): Ditto.
12825         (vec_extract_evenv2sf): Ditto.
12826         (vec_extract_oddv2sf): Ditto.
12827         (vec_pack_trunc_v4hi: Ditto.
12828         (vec_pack_trunc_v2si): Ditto.
12829         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
12830         (vec_interleave_highv8qi): Ditto.
12831         (mix1_r): Ditto.
12832         (vec_extract_oddv8qi): Ditto.
12833         (vec_interleave_lowv4hi): Ditto.
12834         (vec_interleave_highv4hi): Ditto.
12835         (vec_interleave_lowv2si): Ditto.
12836         (vec_interleave_highv2si): Ditto.
12837
12838 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12839
12840         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
12841         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
12842         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
12843         (pa_c_mode_for_suffix): New.
12844         (TARGET_EXPAND_BUILTIN): Define.
12845         (TARGET_C_MODE_FOR_SUFFIX): Define.
12846         (pa_builtins): Define.
12847         (pa_init_builtins): Register __float128 type and init new support
12848         builtins.
12849         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
12850         * config/pa/quadlib.c (_U_Qfcopysign): New.
12851
12852 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
12853
12854         PR middle-end/46894
12855         * explow.c (allocate_dynamic_stack_space): Do not assume more than
12856         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
12857         are defined.
12858
12859 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12860
12861         PR tree-optimization/47179
12862         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
12863         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
12864
12865 2011-01-18  Richard Guenther  <rguenther@suse.de>
12866
12867         PR rtl-optimization/47216
12868         * emit-rtl.c: Include tree-flow.h.
12869         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
12870         of replicating it with different semantics.
12871         * Makefile.in (emit-rtl.o): Adjust.
12872
12873 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12874
12875         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
12876         (cortex_a9_dp): Handle neon types correctly.
12877
12878 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
12879
12880         PR rtl-optimization/47299
12881         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
12882         subtarget.  Use normal multiplication if both operands are constants.
12883         * expmed.c (expand_widening_mult): Don't try to optimize constant
12884         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
12885         before using it.
12886
12887 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12888
12889         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
12890         spacing after 'e.g.', typos, comma, hyphenation.
12891
12892 2011-01-17  Richard Henderson  <rth@redhat.com>
12893
12894         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
12895         (rx_restricted_mem_operand): New.
12896         (rx_shift_operand): Use register_operand.
12897         (rx_source_operand, rx_compare_operand): Likewise.
12898         * config/rx/rx.md (addsi3_flags): New expander.
12899         (adddi3): Rewrite as expander.
12900         (adc_internal, *adc_flags, adddi3_internal): New patterns.
12901         (subsi3_flags): New expander.
12902         (subdi3): Rewrite as expander.
12903         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
12904
12905         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
12906         (rx_init_builtins): Remove sat builtin.
12907         (rx_expand_builtin): Likewise.
12908         * config/rx/rx.md (ssaddsi3): New.
12909         (*sat): Rename from sat.  Represent the CC_REG input.
12910
12911         * config/rx/predicates.md (rshift_operator): New.
12912         * config/rx/rx.c (rx_expand_insv): Remove.
12913         * config/rx/rx-protos.h: Update.
12914         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
12915         operand to the canonical position.
12916         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
12917         (*bitclr, *bitclr_in_memory): Similarly.
12918         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
12919         (insv): Retain the zero_extract in the expansion.
12920
12921         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
12922         (bswaphi2, bitinvert, revw): Likewise.
12923
12924         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
12925         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
12926         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
12927         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
12928         (bitset, bitset_in_memory): Likewise.
12929         (bitinvert, bitinvert_in_memory): Likewise.
12930         (bitclr, bitclr_in_memory): Likewise.
12931         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
12932         (rx_strend, rx_cmpstrn): Likewise.
12933         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
12934         (bitop peep2 patterns): Remove.
12935
12936         * config/rx/rx.c (rx_match_ccmode): New.
12937         * config/rx/rx-protos.h: Update.
12938         * config/rx/rx.md (abssi2): Clobber, don't set flags.
12939         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
12940         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
12941         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
12942         (fix_truncsfsi2, floatsisf2): Likewise.
12943         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
12944         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
12945         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
12946         (*subsi3_flags, *xorsi3_flags): New.
12947
12948         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
12949
12950         * config/rx/rx.c (rx_print_operand): Remove workaround for
12951         unsplit comparison operations.
12952
12953         * config/rx/rx.md (movsicc): Split after reload.
12954         (*movsicc): Merge *movsieq and *movsine via match_operator.
12955         (*stcc): New pattern.
12956
12957         * config/rx/rx.c (rx_float_compare_mode): Remove.
12958         * config/rx/rx.h (rx_float_compare_mode): Remove.
12959         * config/rx/rx.md (cstoresi4): Split after reload.
12960         (*sccc): New pattern.
12961
12962         * config/rx/predicates.md (label_ref_operand): New.
12963         (rx_z_comparison_operator): New.
12964         (rx_zs_comparison_operator): New.
12965         (rx_fp_comparison_operator): New.
12966         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
12967         Validate that the flags are set properly for the comparison.
12968         (rx_gen_cond_branch_template): Remove.
12969         (rx_cc_modes_compatible): Remove.
12970         (mode_from_flags): New.
12971         (flags_from_code): Rename from flags_needed_for_conditional.
12972         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
12973         (rx_select_cc_mode): Likewise.
12974         (rx_split_fp_compare): New.
12975         (rx_split_cbranch): New.
12976         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
12977         (*cbranchsi4): Use match_operator and rx_split_cbranch.
12978         (*cbranchsf4): Similarly.
12979         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
12980         match_operator and rx_split_cbranch.
12981         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
12982         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
12983         (*cmpsi): Rename from cmpsi.
12984         (*tstsi): Rename from tstsi.
12985         (*cmpsf): Rename from cmpsf; use CC_Fmode.
12986         (*conditional_branch): Rename from conditional_branch.
12987         (*reveresed_conditional_branch): Remove.
12988         (b<code>): Remove expander.
12989         * config/rx/rx-protos.h: Update.
12990
12991         * config/rx/rx.c (rx_compare_redundant): Remove.
12992         * config/rx/rx.md (cmpsi): Don't use it.
12993         * config/rx/rx-protos.h: Update.
12994
12995         * config/rx/rx-modes.def (CC_F): New mode.
12996         * config/rx/rx.c (rx_select_cc_mode): New.
12997         * config/rx/rx.h (SELECT_CC_MODE): Use it.
12998         * config/rx/rx-protos.h: Update.
12999
13000 2011-01-17  Richard Henderson  <rth@redhat.com>
13001
13002         * except.c (dump_eh_tree): Fix stray ; after for statement.
13003
13004 2011-01-17  Richard Guenther  <rguenther@suse.de>
13005
13006         PR tree-optimization/47313
13007         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13008         handling before copying the body.  Properly deal with
13009         by-reference result in SSA form.
13010
13011 2011-01-17  Ian Lance Taylor  <iant@google.com>
13012
13013         PR target/47219
13014         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13015         (struct_value_alias_set): Don't define.
13016         (sparc_option_override): Don't set sparc_sr_alias_set and
13017         struct_value_alias_set.
13018         (save_or_restore_regs): Use gen_frame_mem rather than calling
13019         set_mem_alias_set.
13020         (sparc_struct_value_rtx): Likewise.
13021
13022 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
13023
13024         PR target/47318
13025         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
13026         (_mm_maskstore_pd): Likewise.
13027         (_mm_maskload_ps): Likewise.
13028         (_mm_maskstore_ps): Likewise.
13029         (_mm256_maskload_pd): Change mask to __m256i.
13030         (_mm256_maskstore_pd): Likewise.
13031         (_mm256_maskload_ps): Likewise.
13032         (_mm256_maskstore_ps): Likewise.
13033
13034         * config/i386/i386-builtin-types.def: Updated.
13035         (ix86_expand_special_args_builtin): Likewise.
13036
13037         * config/i386/i386.c (bdesc_special_args): Update
13038         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13039         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13040         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13041         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13042
13043         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13044         Use <avxpermvecmode> on mask register.
13045         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13046
13047 2011-01-17  Olivier Hainque  <hainque@adacore.com>
13048             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
13049             Eric Botcazou  <ebotcazou@adacore.com>
13050
13051         PR target/46655
13052         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13053         if <= USHRT_MAX in 32-bit mode.
13054
13055 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13056
13057         * doc/install.texi (Configuration, Specific): Wrap long
13058         lines in examples.  Allow line wrapping in long options
13059         and URLs where beneficial for PDF output.
13060
13061 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
13062
13063         * config/mips/mips.c (mips_classify_symbol): Don't return
13064         SYMBOL_PC_RELATIVE for nonlocal labels.
13065
13066 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13067
13068         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13069
13070 2011-01-15  Jan Hubicka  <jh@suse.cz>
13071
13072         PR tree-optimization/47276
13073         * ipa.c (function_and_variable_visibility): Do not try to mark alias
13074         declarations as needed.
13075
13076 2011-01-15  Martin Jambor  <mjambor@suse.cz>
13077
13078         * common.opt (fdevirtualize): New flag.
13079         * doc/invoke.texi (Option Summary): Document it.
13080         * opts.c (default_options_table): Add devirtualize flag.
13081         * ipa-prop.c (detect_type_change): Return immediately if
13082         devirtualize flag is not set.
13083         (detect_type_change_ssa): Likewise.
13084         (compute_known_type_jump_func): Likewise.
13085         (ipa_analyze_virtual_call_uses): Likewise.
13086
13087 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13088
13089         PR tree-optimization/45934
13090         PR tree-optimization/46302
13091         * ipa-prop.c (type_change_info): New type.
13092         (stmt_may_be_vtbl_ptr_store): New function.
13093         (check_stmt_for_type_change): Likewise.
13094         (detect_type_change): Likewise.
13095         (detect_type_change_ssa): Likewise.
13096         (compute_complex_assign_jump_func): Check for dynamic type change.
13097         (compute_complex_ancestor_jump_func): Likewise.
13098         (compute_known_type_jump_func): Likewise.
13099         (compute_scalar_jump_functions): Likewise.
13100         (ipa_analyze_virtual_call_uses): Likewise.
13101         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13102
13103 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13104
13105         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13106         * config/i386/i386.opt (msse5): New Alias.
13107
13108 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13109
13110         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13111         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13112         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13113         * config/sparc/sparc.h (CC1_SPEC): Likewise.
13114
13115 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13116
13117         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13118         -mcpu options.
13119         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13120         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13121         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13122         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13123         Likewise.
13124         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13125
13126 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13127
13128         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
13129
13130 2011-01-14  Mike Stump  <mikestump@comcast.net>
13131
13132         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13133         * config/fr30/fr30.md: Likweise
13134         (movsi_push): Likewise.
13135         (movsi_pop): Likewise.
13136         (enter_func): Likewise.
13137         * config/moxie/moxie.md (movsi_push): Likewise.
13138         (movsi_pop): Likewise.
13139
13140 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13141
13142         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13143         %{no_archive} %{exact_version}.
13144         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13145         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13146         %{no_archive} %{exact_version}.
13147         * config/mips/openbsd.h (LINK_SPEC): Likewise.
13148         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13149         * config/mips/vxworks.h: Likewise.
13150
13151 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13152
13153         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
13154
13155 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13156
13157         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13158         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13159
13160 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13161
13162         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13163         -nodefaultlib.
13164
13165 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13166
13167         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13168         for mcpu not cpu.
13169         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13170         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13171         not cpu.
13172         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13173         Don't handle -shlib.
13174
13175 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13176
13177         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13178         (CC1_SPEC): Don't handle -profile.
13179
13180 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13181
13182         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13183         * config/mips/mips.h (CC1_SPEC): Likewise.
13184
13185 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13186
13187         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13188         * config/mips/mips.h (CC1_SPEC): Likewise.
13189
13190 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13191
13192         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13193         * config/m32r/linux.h (LINK_SPEC): Likewise.
13194         * config/mips/linux.h (LINK_SPEC): Likewise.
13195         * config/mips/linux64.h (LINK_SPEC): Likewise.
13196         * config/sparc/linux.h (LINK_SPEC): Likewise.
13197         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13198         LINK_SPEC): Likewise.
13199         * config/xtensa/linux.h (LINK_SPEC): Likewise.
13200
13201 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13202
13203         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13204         %{version:-v}.
13205         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13206
13207 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13208
13209         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13210         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13211
13212 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13213
13214         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13215
13216 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13217
13218         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13219         supports -Bstatic/-Bdynamic.
13220         * configure: Regenerate.
13221
13222 2011-01-14  Jan Hubicka  <jh@suse.cz>
13223             Jack Howarth  <howarth@bromo.med.uc.edu>
13224
13225         PR target/46037
13226         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13227         when checking debug_info_level. Test write_symbols instead of
13228         debug_hooks->var_location when setting flag_var_tracking_uninit.
13229
13230 2011-01-14  Richard Guenther  <rguenther@suse.de>
13231
13232         PR tree-optimization/47179
13233         * target.def (ref_may_alias_errno): New target hook.
13234         * targhooks.h (default_ref_may_alias_errno): Declare.
13235         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13236         (default_ref_may_alias_errno): New function.
13237         * target.h (struct ao_ref_s): Declare.
13238         * tree-ssa-alias.c: Include target.h.
13239         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13240         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13241         (targhooks.o): Likewise.
13242         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13243         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13244
13245 2011-01-14  Richard Guenther  <rguenther@suse.de>
13246
13247         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
13248
13249 2011-01-14  Richard Guenther  <rguenther@suse.de>
13250
13251         PR tree-optimization/47280
13252         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13253         return CFG changes.
13254         (tree_ssa_forward_propagate_single_use_vars): Deal with
13255         CFG changes from associate_plusminus.
13256
13257 2011-01-14  Richard Guenther  <rguenther@suse.de>
13258
13259         PR middle-end/47281
13260         Revert
13261         2011-01-11  Richard Guenther  <rguenther@suse.de>
13262
13263         PR tree-optimization/46076
13264         * tree-ssa.c (useless_type_conversion_p): Conversions from
13265         unprototyped to empty argument list function types are useless.
13266
13267 2011-01-14  Richard Guenther  <rguenther@suse.de>
13268
13269         PR tree-optimization/47286
13270         * tree-ssa-structalias.c (new_var_info): Register variables are global.
13271
13272 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13273
13274         PR middle-end/46823
13275         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13276
13277 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
13278
13279         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13280         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13281         * config/xtensa/xtensa.c (xtensa_libcall_value,
13282         xtensa_function_value_regno_p): New functions.
13283         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13284
13285 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
13286
13287         PR c++/47213
13288         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13289         PE specific hook.
13290         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13291         New function prototype.
13292         * config/i386/winnt.c (i386_pe_assemble_visibility):
13293         Warn only if attribute was specified by user.
13294
13295 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13296
13297         PR target/47251
13298         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13299         floating point.
13300         (floatunsdidf2_fcfidu): Ditto.
13301
13302 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13303
13304         * config/s390/s390.c (print_operand_address): Replace 'error' with
13305         'output_operand_lossage'.
13306         (print_operand): Likewise.
13307
13308 2011-01-13  Jeff Law  <law@redhat.com>
13309
13310         PR rtl-optimization/39077
13311         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
13312         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
13313         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
13314         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
13315         * gcse.c (prune_insertions_deletions): New function.
13316         (compute_pre_data): Use it.
13317
13318 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
13319
13320         PR debug/PR46973
13321         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
13322         static function.
13323         (prune_unused_types_mark): Use it.
13324
13325 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
13326
13327         PR rtl-optimization/45352
13328         * sel-sched.c: Update copyright years.
13329         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
13330         in the advancing loop when we have issued issue_rate insns.
13331
13332 2011-01-12  Richard Henderson  <rth@redhat.com>
13333
13334         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
13335         (TARGET_MD_ASM_CLOBBERS): New.
13336
13337         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
13338         (TARGET_DELEGITIMIZE_ADDRESS): New.
13339
13340         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
13341         (clzsi2, *bsch): New patterns.
13342
13343         * config/mn10300/mn10300.md (INT): New mode iterator.
13344         (*mov<INT>_clr): New pattern, and peep2 to generate it.
13345
13346         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
13347         flag_split_wide_types.
13348
13349         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
13350         (mn10300_trampoline_init): Rewrite without a template, an immediate
13351         load and a direct branch.
13352         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
13353
13354 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
13355
13356         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13357         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
13358         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
13359         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13360
13361 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
13362
13363         PR debug/47209
13364         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
13365         of type.
13366
13367 2011-01-12  Jan Hubicka  <jh@suse.cz>
13368
13369         PR driver/47244
13370         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
13371         (PLUGIN_COND_CLOSE): New macro.
13372         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
13373
13374 2011-01-12  Richard Guenther  <rguenther@suse.de>
13375
13376         PR lto/47259
13377         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
13378         register variables in a MEM_REF.
13379
13380 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
13381
13382         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
13383         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
13384         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
13385         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13386         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13387         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
13388         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
13389         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
13390         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
13391         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
13392         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
13393         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
13394         * config/gnu-user.h: New.  Copied from linux.h.
13395         (LINUX_TARGET_STARTFILE_SPEC): Rename to
13396         GNU_USER_TARGET_STARTFILE_SPEC.
13397         (LINUX_TARGET_ENDFILE_SPEC): Rename to
13398         GNU_USER_TARGET_ENDFILE_SPEC.
13399         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
13400         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
13401         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
13402         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
13403         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
13404         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13405         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
13406         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
13407         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
13408         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
13409         * config/arm/linux-eabi.h (CC1_SPEC): Use
13410         GNU_USER_TARGET_CC1_SPEC.
13411         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
13412         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
13413         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
13414         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
13415         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
13416         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
13417         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
13418         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
13419
13420 2011-01-12  Richard Guenther  <rguenther@suse.de>
13421
13422         PR other/46946
13423         * doc/invoke.texi (ffast-math): Document it is turned on
13424         with -Ofast.
13425
13426 2011-01-12  Jan Hubicka  <jh@suse.cz>
13427
13428         PR tree-optimization/47233
13429         * opts.c (common_handle_option): Disable ipa-reference with profile
13430         feedback.
13431
13432 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13433
13434         * c-parser.c (c_parser_objc_at_property_declaration): Improved
13435         error message.
13436
13437 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13438
13439         * c-parser.c (c_lex_one_token): Updated and reindented some
13440         comments.  No changes in code.
13441
13442 2011-01-11  Ian Lance Taylor  <iant@google.com>
13443
13444         * godump.c (go_output_var): Don't output the variable if there is
13445         already a type with the same name.
13446
13447 2011-01-11  Ian Lance Taylor  <iant@google.com>
13448
13449         * godump.c (go_format_type): Don't generate float80.
13450
13451 2011-01-11  Richard Henderson  <rth@redhat.com>
13452
13453         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
13454         declaration.  Rewrite for both speed and size.
13455         (mn10300_address_cost_1): Remove.
13456         (mn10300_register_move_cost): New.
13457         (mn10300_memory_move_cost): New.
13458         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
13459         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
13460         extensions, shifts, BSWAP, CLZ.
13461         (mn10300_wide_const_load_uses_clr): Remove.
13462         (TARGET_REGISTER_MOVE_COST): New.
13463         (TARGET_MEMORY_MOVE_COST): New.
13464         * config/mn10300/mn10300-protos.h: Update.
13465         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
13466
13467         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
13468         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
13469         * config/mn10300/mn10300-protos.h: Update.
13470         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
13471         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
13472         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
13473         (*test_int_bitfield, *test_byte_bitfield): Remove.
13474         (*bit_test, *subreg_bit_test): Remove.
13475         * config/mn10300/predicates.md (const_8bit_operand): Remove.
13476
13477         * config/mn10300/constraints.md ("c"): Rename from "A".
13478         ("A", "D"): New constraint letters.
13479         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
13480         (fmssf4, fnmasf4, fnmssf4): Likewise.
13481
13482         * config/mn10300/mn10300.md (isa): New attribute.
13483         (enabled): New attribute.
13484
13485         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
13486         (abssf2, negsf2): Define only for hardware fp.
13487         (sqrtsf2): Reformat.
13488         (addsf3, subsf3, mulsf3): Merge expander and insn.
13489
13490         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
13491         (DEBUGGER_AUTO_OFFSET): Remove.
13492         (DEBUGGER_ARG_OFFSET): Remove.
13493
13494         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
13495         Emit register stores with the same offsets as the hardware.
13496         (mn10300_store_multiple_operation): Don't check that the register
13497         save offsets are monotonic.
13498         * config/mn10300/mn10300-protos.h: Update.
13499
13500         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
13501
13502         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
13503         in terms of the value on the stack, not the MDR register.
13504
13505 2011-01-11  Jan Hubicka  <jh@suse.cz>
13506
13507         PR lto/45721
13508         PR lto/45375
13509         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
13510         (symbol_alias_set_destroy, symbol_alias_set_contains,
13511         propagate_aliases_backward): Declare.
13512         * lto-streamer-out.c (struct sets): New sturcture.
13513         (trivally_defined_alias): New function.
13514         (output_alias_pair_p): Rewrite.
13515         (output_unreferenced_globals): Fix output of alias pairs.
13516         (produce_symtab): Likewise.
13517         * ipa.c (function_and_variable_visibility): Set weak alias destination
13518         as needed in lto.
13519         * varasm.c (symbol_alias_set_t): Remove.
13520         (symbol_alias_set_destroy): Export.
13521         (propagate_aliases_forward, propagate_aliases_backward): New functions
13522         based on ...
13523         (compute_visible_aliases): ... this one; remove.
13524         (trivially_visible_alias): New
13525         (trivially_defined_alias): New.
13526         (remove_unreachable_alias_pairs): Rewrite.
13527         (finish_aliases_1): Reorganize code checking if alias is defined.
13528         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
13529         in LTO mode.
13530
13531 2011-01-11  Richard Guenther  <rguenther@suse.de>
13532
13533         PR tree-optimization/46076
13534         * tree-ssa.c (useless_type_conversion_p): Conversions from
13535         unprototyped to empty argument list function types are useless.
13536
13537 2011-01-11  Richard Guenther  <rguenther@suse.de>
13538
13539         PR middle-end/45235
13540         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
13541         volatile MEMs as MEM_READONLY_P.
13542
13543 2011-01-11  Richard Guenther  <rguenther@suse.de>
13544
13545         PR tree-optimization/47239
13546         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
13547
13548 2011-01-11  Jeff Law  <law@redhat.com>
13549
13550         PR tree-optimization/47086
13551         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
13552         IVs from statements that might throw.
13553
13554 2011-01-10  Jan Hubicka  <jh@suse.cz>
13555
13556         PR lto/45375
13557         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
13558
13559 2011-01-10  Jan Hubicka  <jh@suse.cz>
13560
13561         PR lto/45375
13562         * profile.c (read_profile_edge_counts): Ignore profile inconistency
13563         when correcting profile.
13564
13565 2011-01-10  Jan Hubicka  <jh@suse.cz>
13566
13567         PR lto/46083
13568         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
13569         DECL_FINI_PRIORITY.
13570         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
13571         Restore DECL_FINI_PRIORITY.
13572
13573 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13574
13575         * doc/gimple.texi: Fix quoting of multi-word return values in
13576         @deftypefn statements.  Ensure presence of return value.  Wrap
13577         overlong @deftypefn lines.
13578         (is_gimple_operand, is_gimple_min_invariant_address): Remove
13579         descriptions of removed functions.
13580         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
13581         of multi-word return value in @deftypefn statement.
13582
13583 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13584
13585         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
13586         (Conditional Expressions, Logical Operators)
13587         (Statement and operand traversals): Do not indent smallexample
13588         code.  Fix duplicate function argument in example.
13589
13590 2011-01-10  Jeff Law  <law@redhat.com>
13591
13592         PR tree-optimization/47141
13593         * ipa-split.c (split_function): Handle case where we are
13594         returning a value and the return block has a virtual operand phi.
13595
13596 2011-01-10  Jan Hubicka  <jh@suse.cz>
13597
13598         PR tree-optimization/47234
13599         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
13600         (pass_feedback_split_functions): Declare.
13601         * passes.c (init_optimization_passes): Add ipa-split as subpass of
13602         tree-profile.
13603         * ipa-split.c (gate_split_functions): Update comments; disable
13604         split-functions for profile_arc_flag and branch_probabilities.
13605         (gate_feedback_split_functions): New function.
13606         (execute_feedback_split_functions): New function.
13607         (pass_feedback_split_functions): New global var.
13608
13609 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
13610
13611         PR lto/46760
13612         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
13613         calling gimple_call_set_cannot_inline.
13614
13615 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
13616
13617         * config/darwin-sections.def: Remove unused section.
13618
13619 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
13620
13621         PR c++/47218
13622         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
13623
13624 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
13625
13626         PR objc/47232
13627         * c-parser.c (c_parser_declaration_or_fndef): Improved
13628         error message.
13629
13630 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
13631
13632         * config/i386/winnt.c (i386_pe_start_function): Make sure
13633         to switch back to function's section.
13634
13635 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
13636
13637         PR gcc/46902
13638         PR testsuite/46912
13639         * plugin.c: Move include of dlfcn.h from here...
13640         * system.h: ... to here.
13641
13642 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13643
13644         * doc/cpp.texi (C++ Named Operators): Fix markup for header
13645         file name.
13646         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
13647         two extra empty pages in PDF output.
13648
13649 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
13650
13651         PR objc/47078
13652         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
13653         for error recovery purposes behave as if it was not specified so
13654         that the default type is usd.
13655
13656 2011-01-07  Jan Hubicka  <jh@suse.cz>
13657
13658         PR tree-optmization/46469
13659         * ipa.c (function_and_variable_visibility): Clear needed flags on
13660         nodes with external decls; handle weakrefs merging correctly.
13661
13662 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
13663
13664         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
13665         not false.
13666
13667 2011-01-07  Jan Hubicka  <jh@suse.cz>
13668
13669         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
13670         and no longer claim that gold is required for linker plugin.
13671         * configure: Regenerate.
13672         * gcc.c (PLUGIN_COND): New macro.
13673         (LINK_COMMAND_SPEC): Use it.
13674         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
13675         * config.in (HAVE_LTO_PLUGIN): New.
13676         * configure.ac (--with-lto-plugin): New parameter; autodetect
13677         HAVE_LTO_PLUGIN.
13678
13679 2011-01-07  Jan Hubicka  <jh@suse.cz>
13680
13681         PR tree-optimization/46367
13682         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
13683         when we can update original.
13684         (cgraph_mark_inline_edge): Sanity check.
13685         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
13686
13687 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13688
13689         * config/spu/spu.h (ASM_COMMENT_START): Define.
13690
13691 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13692
13693         PR driver/42445
13694         * gcc.c (%>S): New.
13695         (SWITCH_KEEP_FOR_GCC): Likewise.
13696         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
13697         (do_spec_1): Handle "%>".
13698
13699         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
13700
13701 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
13702
13703         PR target/47201
13704         * config/i386/i386.c (ix86_delegitimize_address): If
13705         simplify_gen_subreg fails, return orig_x.
13706
13707         PR bootstrap/47187
13708         * value-prof.c (gimple_stringop_fixed_value): Handle
13709         lhs of the call properly.
13710
13711 2011-01-07  Jan Hubicka  <jh@suse.cz>
13712
13713         PR lto/45375
13714         * lto-opt.c (lto_reissue_options): Set flag_shlib.
13715
13716 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
13717
13718         * target.def (function_switched_text_sections): New hook.
13719         * doc/tm.texi: Regenerated.
13720         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13721         * final.c (default_function_switched_text_sections): New.
13722         (final_scan_insn): Call function_switched_text_sections when a
13723         mid-function section change occurs.
13724         * output.h (default_function_switched_text_sections): Declare.
13725         * config/darwin-protos.h (darwin_function_switched_text_sections):
13726         Likewise.
13727         * config/darwin.c (darwin_function_switched_text_sections): New.
13728         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13729
13730 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
13731
13732         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
13733         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
13734         the secondary code fragment when outputting for DWARF == 2.
13735
13736 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
13737
13738         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13739         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
13740         Remove.
13741         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
13742         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13743
13744 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
13745
13746         PR debug/46704
13747         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
13748         when it is not empty.
13749
13750 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
13751
13752         Bobcat Enablement
13753         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
13754         (case ${target}): Add btver1.
13755         * config/i386/driver-i386.c (host_detect_local_cpu): Let
13756         -march=native recognize btver1 processors.
13757         * config/i386/i386-c.c (ix86_target_macros_internal): Add
13758         btver1 def_and_undef
13759         * config/i386/i386.c (struct processor_costs btver1_cost): New
13760         btver1 cost table.
13761         (m_BTVER1): New definition.
13762         (m_AMD_MULTIPLE): Includes m_BTVER1.
13763         (initial_ix86_tune_features): Add btver1 tune.
13764         (processor_target_table): Add btver1 entry.
13765         (static const char *const cpu_names): Add btver1 entry.
13766         (software_prefetching_beneficial_p): Add btver1.
13767         (ix86_option_override_internal): Add btver1 instruction sets.
13768         (ix86_issue_rate): Add btver1.
13769         (ix86_adjust_cost): Add btver1.
13770         * config/i386/i386.h (TARGET_BTVER1): New definition.
13771         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
13772         (enum processor_type): Add PROCESSOR_BTVER1.
13773         * config/i386/i386.md (define_attr "cpu"): Add btver1.
13774
13775 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13776
13777         PR target/43309
13778         * config/i386/i386.c (legitimize_tls_address)
13779         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
13780         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
13781         (tls_initial_exec_64_sun): New pattern.
13782
13783 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
13784
13785         * doc/invoke.texi (Overall Options): Improve wording and markup
13786         of the description of -wrapper.
13787
13788 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
13789
13790         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
13791         rdynamic, threads): New Driver options.
13792
13793 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13794
13795         PR target/38118
13796         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
13797         if coming from .tdata.
13798         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13799
13800 2011-01-06  Jan Hubicka  <jh@suse.cz>
13801
13802         PR lto/47188
13803         * collect2.c (main): Do not enable LTOmode when plugin is active.
13804
13805 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13806
13807         PR other/45915
13808         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
13809         --version output if supported.
13810         * configure: Regenerate.
13811
13812 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
13813
13814         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
13815         Driver options.
13816
13817 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
13818
13819         PR c/47150
13820         * c-convert.c (convert): When converting a complex expression
13821         other than COMPLEX_EXPR to a different complex type, ensure
13822         c_save_expr is called instead of save_expr, unless in_late_binary_op.
13823         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
13824         when converting COMPLEX_TYPE.
13825
13826 2011-01-06  Ira Rosen  <irar@il.ibm.com>
13827
13828         PR tree-optimization/47139
13829         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
13830         only the last reduction value is used outside the loop.  Update
13831         documentation.
13832
13833 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
13834
13835         * config/rtems.opt: New.
13836         * config.gcc (*-*-rtems*): Use rtems.opt.
13837
13838 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
13839
13840         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
13841         processors do not support 3DNow instructions.
13842
13843 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13844
13845         * config/spu/spu.c (spu_option_override): Set parameter
13846         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
13847
13848 2011-01-05  Jan Hubicka  <jh@suse.cz>
13849
13850         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
13851         at the command line.
13852
13853 2011-01-05  Martin Jambor  <mjambor@suse.cz>
13854
13855         PR lto/47162
13856         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
13857         deltas on streamed outgoing edges.
13858         (output_node_opt_summary): Output info for outgoing edges only when
13859         the node is in new parameter set.
13860         (output_cgraph_opt_summary): New parameter set, passed to the two
13861         aforementioned functions.  Update its forward declaration and its
13862         callee too.
13863
13864 2011-01-05  Tom Tromey  <tromey@redhat.com>
13865
13866         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
13867         operator to c_finish_omp_atomic.
13868         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
13869         (build_unary_op): Update.
13870         (build_modify_expr): Update.
13871         (build_asm_expr): Update.
13872
13873 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13874
13875         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
13876         newly inserted insns.
13877         (pad_bb): Likewise.
13878         (spu_emit_branch_hint): Likewise.
13879         (insert_hbrp_for_ilb_runout): Likewise.
13880         (spu_machine_dependent_reorg): Call df_finish_pass after
13881         schedule_insns returns.
13882
13883 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13884
13885         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
13886
13887 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
13888
13889         PR tree-optimization/47005
13890         * tree-sra.c (struct access): Add 'non_addressable' bit.
13891         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
13892         (decide_one_param_reduction): Return 0 if the parameter is passed by
13893         reference and one of the accesses in the group is non_addressable.
13894
13895 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13896
13897         PR tree-optimization/47056
13898         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
13899         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
13900         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
13901
13902 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13903
13904         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
13905         initializer.  Skip view conversions from aggregate types.
13906
13907 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
13908
13909         PR bootstrap/47055
13910         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
13911
13912 2011-01-04  Philipp Thomas  <pth@suse.de>
13913
13914         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
13915         obvious typo.
13916
13917 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13918
13919         * function.c (thread_prologue_and_epilogue_insns): Do not crash
13920         on empty epilogue sequences.
13921
13922 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
13923
13924         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
13925         non-static): New Driver options.
13926
13927 2011-01-04  Jie Zhang  <jie@codesourcery.com>
13928
13929         PR driver/47137
13930         * gcc.c (default_compilers[]): Set combinable field to 0
13931         for all assembly languages.
13932
13933 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
13934
13935         * config/mips/loongson3a.md: New file.
13936         * config/mips/mips.md: Include loongson3a.md.
13937         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
13938         TUNE_LOONGSON_3A.
13939
13940 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
13941
13942         PR middle-end/47017
13943         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
13944         instead of convert_memory_address_addr_space on the base expression.
13945
13946 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13947
13948         * config/spu/spu.c (spu_option_override): Update error text
13949         for bad -march= / -mtune= values.
13950
13951 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13952
13953         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
13954         if branch-hint optimization will be performed.
13955
13956 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
13957
13958         PR tree-optimization/47148
13959         * ipa-split.c (split_function): Convert arguments to
13960         DECL_ARG_TYPE if possible.
13961
13962         PR tree-optimization/47155
13963         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
13964         when computing uns.
13965
13966         PR rtl-optimization/47157
13967         * combine.c (try_combine): If undobuf.other_insn becomes
13968         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
13969         and set *new_direct_jump_p too.
13970
13971 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13972
13973         PR tree-optimization/47021
13974         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
13975
13976 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
13977
13978         * gcc.c (process_command): Update copyright notice dates.
13979         * gcov.c (print_version): Likewise.
13980         * gcov-dump.c (print_version): Likewise.
13981         * mips-tfile.c (main): Likewise.
13982         * mips-tdump.c (main): Likewise.
13983
13984 2011-01-03  Martin Jambor  <mjambor@suse.cz>
13985
13986         PR tree-optimization/46801
13987         * tree-sra.c (type_internals_preclude_sra_p): Check whether
13988         aggregate fields start at byte boundary instead of the bit-field flag.
13989
13990 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
13991
13992         PR driver/47137
13993         * gcc.c (main): Revert revision 168407.
13994
13995 2011-01-03  Martin Jambor  <mjambor@suse.cz>
13996
13997         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
13998
13999 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14000
14001         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14002         vector optab to expand vector/scalar shift, update gimple to vector.
14003
14004 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14005
14006         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14007         a thunk.
14008
14009 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14010
14011         PR tree-optimization/46984
14012         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14013         HOST_WIDE_INT.
14014         (cgraph_create_indirect_edge): Fixed line length.
14015         (cgraph_indirect_call_info): Declare.
14016         (cgraph_make_edge_direct) Update declaration.
14017         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14018         (cgraph_create_indirect_edge): Use it.
14019         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
14020         callees.
14021         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14022         the new thunk_delta representation.
14023         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14024         HOST_WIDE_INT.
14025         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14026         (ipa_read_indirect_edge_info): Likewise.
14027         * lto-cgraph.c (output_edge_opt_summary): New function.
14028         (output_node_opt_summary): Call it on all outgoing edges.
14029         (input_edge_opt_summary): New function.
14030         (input_node_opt_summary): Call it on all outgoing edges.
14031
14032 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
14033
14034         PR driver/47137
14035         * gcc.c (main): Don't check have_o when settting combine_inputs.
14036
14037 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14038
14039         * regrename.c: Add general comment describing the pass.
14040         (struct du_head): Remove 'length' field.
14041         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14042         (regrename_optimize): Do not sort chains.  Rework comments, add others.
14043         Force renaming to the preferred class (if any) in the first pass and do
14044         not consider registers that belong to it in the second pass.
14045         (create_new_chain): Do not set 'length' field.
14046         (scan_rtx_reg): Likewise.
14047
14048 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
14049
14050         PR tree-optimization/47140
14051         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14052         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14053         to bit_value_binop.
14054
14055         PR rtl-optimization/47028
14056         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14057         parm_birth_insn instead of at the beginning of first bb.
14058
14059 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
14060
14061         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14062         Remove the word "see" before "@pxref".
14063         * doc/rtl.texi: Remove the word "see" before "@pxref".
14064
14065 2011-01-01  Jan Hubicka  <jh@suse.cz>
14066
14067         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14068         memory.
14069
14070 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
14071
14072         PR target/38662
14073         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
14074
14075 \f
14076 Copyright (C) 2011 Free Software Foundation, Inc.
14077
14078 Copying and distribution of this file, with or without modification,
14079 are permitted in any medium without royalty provided the copyright
14080 notice and this notice are preserved.