0e7c475170988cd3f3990d0926402e2b21baec23
[gcc.git] / gcc / ChangeLog
1 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
2
3 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
4
5 2011-05-07 Jan Hubicka <jh@suse.cz>
6
7 * ipa-inline-transform.c (inline_call): Account when program size decreases.
8 * ipa-inline.c (relative_time_benefit): New function.
9 (edge_badness): Reorganize to be power 2 based; fix
10 thinko when computing badness for negative growth; update
11 comments to match reality; better dumps.
12
13 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
14
15 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
16 type to bool and adjust comment.
17 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
18 (fold_mathfn_compare): Remove calls to global_bindings_p.
19 (fold_inf_compare): Likewise.
20 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
21 * c-tree.h (global_bindings_p): Adjust prototype.
22 * c-decl.c (global_bindings_p): Return bool and simplify.
23
24 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
25
26 PR tree-optimization/48837
27 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
28 when accumulator transformation is performed.
29
30 2011-05-06 Jan Hubicka <jh@suse.cz>
31
32 * i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
33 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macor.
34 * i386.c (initial_ix86_tune_features): Add X86_SOFTARE_PREFETCHING_BENEFICIAL.
35 (software_prefetching_beneficial_p): Remove predicate.
36 (ix86_option_override_internal): Use new macro.
37
38 2011-05-06 Jan Hubicka <jh@suse.cz>
39
40 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
41
42 2011-05-06 Jan Hubicka <jh@suse.cz>
43
44 * cgraph.c (cgraph_add_thunk): Create real function node instead
45 of alias node; finalize it and mark needed/reachale; arrange visibility
46 to be right and add it into the corresponding same comdat group list.
47 (dump_cgraph_node): Dump thunks.
48 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
49 cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
50 cgraph_next_function_with_gimple_body): New functions.
51 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
52 New macros.
53 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
54 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
55 * cgraphunit.c (cgraph_finalize_function): Only look into possible
56 devirtualization when optimizing.
57 (verify_cgraph_node): Verify thunks.
58 (cgraph_analyze_function): Analyze thunks.
59 (cgraph_mark_functions_to_output): Output thunks only in combination
60 with function they are assigned to.
61 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
62 alias into normal node.
63 (assemble_thunks): New functoin.
64 (cgraph_expand_function): Use it.
65 * lto-cgraph.c (lto_output_node): Stream thunks.
66 (input_overwrite_node): Stream in thunks.
67 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
68 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
69 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
70 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
71 (inline_analyze_function): Do not care about thunk jump functions.
72 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
73 * ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
74 * passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
75 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
76 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
77 (function_called_by_processed_nodes_p): Likewise.
78
79 2011-05-06 Joseph Myers <joseph@codesourcery.com>
80
81 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
82 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
83 entries.
84 (mabi=): Replace with separate entries for mabi=altivec,
85 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
86 mabi=ieeelongdouble and mabi=ibmlongdouble.
87 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
88 check for -mabi=spe without SPE ABI support here.
89 (rs6000_handle_option): Replace OPT_mabi_ handling with
90 OPT_mabi_altivec and OPT_mabi_spe handling.
91
92 2011-05-06 Cary Coutant <ccoutant@google.com>
93
94 * dwarf2out.c (contains_subprogram_definition): New function.
95 (should_move_die_to_comdat): Call it.
96
97 2011-05-06 Jeff Law <law@redhat.com>
98
99 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
100 remove_ctrl_stmt_and_useless_edges.
101 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
102 (fixup_template_block, thread_single_edge): Likewise.
103 (mark_threaded_blocks): Use THREAD_TARGET.
104
105 2011-05-06 Alan Modra <amodra@gmail.com>
106
107 PR target/48900
108 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
109 const0_rtx as the arg to the dummy __tls_get_addr libcall.
110
111 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
112
113 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
114 constraint modifier to "r".
115
116 2011-05-06 Joseph Myers <joseph@codesourcery.com>
117
118 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
119 fall through for OPT_mcmodel_.
120
121 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
122
123 * config/s390/s390.c (s390_asm_trampoline_template): Comment
124 instruction sizes.
125 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
126
127 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
128
129 PR target/47930
130 * config/arm/arm.opt (marm): Document it.
131 (mthumb): Reject negative variant.
132
133 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
134
135 PR target/48898
136 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
137 Fix typo in "ccvt" variable name.
138
139 2011-05-06 Tristan Gingold <gingold@adacore.com>
140
141 PR target/48895
142 * config/vms/vms-ar.c (main): Remove cwd variable.
143
144 2011-05-06 Jakub Jelinek <jakub@redhat.com>
145
146 PR debug/48902
147 * var-tracking.c (prepare_call_arguments): Move else before #endif.
148
149 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
150
151 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
152 * gimplify.c (gimplify_switch_expr): Likewise.
153 * omp-low.c (expand_omp_sections): Likewise.
154 * tree-eh.c (lower_try_finally_switch): Likewise.
155 (lower_eh_dispatch): Likewise.
156 * tree.h (build_case_label): Declare.
157 * tree.c (build_case_label): Define.
158
159 2011-05-05 Jason Merrill <jason@redhat.com>
160
161 PR c++/40975
162 * tree-inline.c (copy_tree_r): Use copy_statement_list.
163 (copy_statement_list): Don't recurse.
164 * stor-layout.c (copy_self_referential_tree_r): Don't allow
165 STATEMENT_LIST.
166
167 2011-05-05 Joseph Myers <joseph@codesourcery.com>
168
169 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
170 through from -mfpu= handling.
171 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
172
173 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
174
175 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
176 POST_MODIFY.
177
178 2011-05-05 Steve Ellcey <sje@cup.hp.com>
179
180 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
181 for 11.31.
182 (hppa[12]*-*-hpux11*): Ditto.
183 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
184 * config/ia64/hpux-unix2003.h: New.
185 * config/pa/pa-hpux1131.opt: New.
186 * config/pa/pa-hpux1131.h: New.
187 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
188 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
189 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
190
191 2011-05-05 Jakub Jelinek <jakub@redhat.com>
192
193 PR debug/48853
194 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
195 instead of mode as 3rd argument to recursive call.
196 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
197 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
198 VOIDmode.
199 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
200 don't give up if mode is Pmode and mem_mode is not VOIDmode.
201 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
202 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
203
204 2011-05-05 Julian Brown <julian@codesourcery.com>
205
206 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
207 parenthesis in D-register case.
208
209 2011-05-05 Joseph Myers <joseph@codesourcery.com>
210
211 * opt-functions.awk (var_type_struct): Handle Enum options.
212 * optc-gen.awk: Don't check range of variables of character type.
213 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
214 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
215 rs6000_sdata_name, rs6000_explicit_options): Remove.
216 (rs6000_option_override_internal): Check for -malign-power here.
217 Use global_options_set instead of rs6000_explicit_options.
218 (rs6000_parse_fpu_option): Remove.
219 (rs6000_handle_option): Access variables via opts and opts_set
220 pointers. Use error_at and warning_at. Add fall-through
221 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
222 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
223 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
224 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
225 here. Don't use rs6000_parse_fpu_option.
226 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
227 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
228 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
229 (mrecip=): Use Var.
230 (mspe): Use Var and Save.
231 (mtraceback=): Use Enum and Var.
232 (rs6000_traceback_type): New Enum and EnumValue entries.
233 (mfloat-gprs=): Use Enum, Var and Save.
234 (rs6000_float_gprs): New Enum and EnumValue entries.
235 (mlong-double-): use Var and Save.
236 (msched-costly-dep=, minsert-sched-nops=): Use Var.
237 (malign-): Use Enum and Var.
238 (rs6000_alignment_flags): New Enum and EnumValue entries.
239 (mfpu=): Use Enum.
240 (fpu_type_t): New Enum and EnumValue entries.
241 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
242 global_options_set instead of rs6000_explicit_options.
243 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
244 global_options_set instead of rs6000_explicit_options.
245 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
246 global_options_set instead of rs6000_explicit_options.
247 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
248 global_options_set instead of rs6000_explicit_options.
249 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
250 global_options_set instead of rs6000_explicit_options.
251 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
252 global_options_set instead of rs6000_explicit_options.
253 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
254 definition.
255 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
256 global_options_set instead of rs6000_explicit_options.
257 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
258 (rs6000_cmodel): New Enum and EnumValue entries.
259 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
260 global_options_set instead of rs6000_explicit_options.
261 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
262 (mtls-size=): Use Enum and Var.
263 (rs6000_tls_size): New Enum and EnumValue entries.
264
265 2011-05-05 Michael Matz <matz@suse.de>
266
267 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
268 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
269 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
270 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
271 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
272 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
273 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
274 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
275 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
276 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
277 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
278 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
279 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
280 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
281 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
282 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
283
284 2011-05-05 Richard Guenther <rguenther@suse.de>
285
286 * expmed.c (expand_variable_shift): Rename to ...
287 (expand_shift_1): ... this. Take an expanded shift amount.
288 For rotates recurse directly not building trees for the shift amount.
289 (expand_variable_shift): Wrap around expand_shift_1.
290 (expand_shift): Adjust.
291
292 2011-05-05 Jakub Jelinek <jakub@redhat.com>
293
294 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
295
296 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
297
298 * tree.h (get_pending_sizes): Remove prototype.
299 (put_pending_size): Likewise.
300 (put_pending_sizes): Likewise.
301 * stor-layout.c (pending_sizes): Delete.
302 (get_pending_sizes): Likewise.
303 (put_pending_size): Likewise.
304 (put_pending_sizes): Likewise.
305 (variable_size): Do not call put_pending_size and tidy up.
306 * function.h (struct function): Remove dont_save_pending_sizes_p.
307 * lto-streamer-in.c (input_function): Do not stream it.
308 * lto-streamer-out.c (output_function): Likewise.
309 * tree-inline.c (initialize_cfun): Do not copy it.
310 * c-decl.c (store_parm_decls): Do not set it.
311 * omp-low.c (create_task_copyfn): Likewise.
312 * tree-optimize.c (tree_rest_of_compilation): Likewise.
313
314 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
315
316 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
317 conditions.
318 (*movdf_internal): Ditto.
319 (*movdf_internal_nointeger): Ditto.
320 (*movsf_internal): Ditto.
321
322 2011-05-05 Joseph Myers <joseph@codesourcery.com>
323
324 * c-decl.c (finish_decl): Don't call get_pending_sizes.
325 (grokparm): Add parameter expr. Pass it to grokdeclarator.
326 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
327 (c_variable_size): Remove.
328 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
329 call put_pending_sizes.
330 (get_parm_info): Add parameter expr. Use it to set
331 arg_info->pending_sizes.
332 (store_parm_decls): Use arg_info->pending_sizes instead or calling
333 get_pending_sizes.
334 * c-parser.c (c_parser_parms_declarator): Update call to
335 c_parser_parms_list_declarator.
336 (c_parser_parms_list_declarator): Take parameter expr. Update
337 call to push_parm_decl. Update recursive call. Don't call
338 get_pending_sizes. Update calls to get_parm_info.
339 (c_parser_objc_method_definition): Update calls to
340 c_parser_objc_method_decl and objc_start_method_definition.
341 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
342 (c_parser_objc_method_decl): Add parameter expr. Update call to
343 grokparm.
344 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
345 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
346 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
347
348 2011-05-05 Michael Hope <michael.hope@linaro.org>
349
350 PR pch/45979
351 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
352 __ARM_EABI__ hosts.
353
354 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
355
356 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
357 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
358 (spu_output_mi_thunk): New function.
359
360 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
361
362 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
363 targetm.asm_out.print_operand.
364 * config/sol2.c: Include target.h.
365
366 2011-05-04 Jan Hubicka <jh@suse.cz>
367
368 * ipa-inline.c (reset_edge_caches): New function.
369 (update_caller_keys): Add check_inlinablity_for; do not
370 reset edge caches; remove now unnecesary loop.
371 (update_callee_keys): Add comments; reset node_growth_cache of callee.
372 (update_all_callee_keys): Likewise.
373 (inline_small_functions): Sanity check cache; update code
374 recomputing it.
375
376 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
377
378 PR rtl-optimization/47612
379 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
380 as the last insn of the sequence to be moved.
381
382 2011-05-04 Tobias Burnus <burnus@net-b.de>
383
384 PR fortran/48864
385 * doc/invoke.texi (Ofast): Document that it
386 enables Fortran's -fno-protect-parens.
387
388 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
389
390 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
391
392 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
393
394 * stor-layout.c (variable_size): Do not issue errors.
395
396 2011-05-04 Richard Guenther <rguenther@suse.de>
397
398 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
399 for array-ref indices.
400 (tree_coverage_counter_addr): Likewise.
401 (build_fn_info_type): Use size_int for index types.
402 (build_gcov_info): Likewise.
403
404 2011-05-04 Richard Guenther <rguenther@suse.de>
405
406 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
407 to build_int_cst.
408 * c-typeck.c (really_start_incremental_init): Use bitsize_int
409 for constructor indices.
410 (push_init_level): Likewise.
411
412 2011-05-04 Richard Guenther <rguenther@suse.de>
413
414 * explow.c (promote_mode): Move variable declarations before code.
415
416 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
417
418 * tree.h (build_function_type_array): Declare.
419 (build_varargs_function_type_array): Declare.
420 (build_function_type_vec, build_varargs_function_type_vec): Define.
421 * tree.c (build_function_type_array_1): New function.
422 (build_function_type_array): New function.
423 (build_varargs_function_type_array): New function.
424
425 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
426
427 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
428 before setting STMT_VINFO_TYPE.
429
430 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
431
432 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
433 instead of spu_pass_by_reference.
434
435 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
436
437 * calls.c (emit_library_call_value_1): Invoke
438 promote_function_mode hook on libcall arguments.
439 * explow.c (promote_function_mode, promote_mode): Handle TYPE
440 argument being NULL.
441 * targhooks.c (default_promote_function_mode): Lisewise.
442 * config/s390/s390.c (s390_promote_function_mode): Likewise.
443 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
444
445 * doc/tm.texi: Document that TYPE argument might be NULL.
446
447 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
448
449 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
450
451 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
452
453 From Bernd Schmidt
454 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
455
456 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
457
458 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
459 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
460 Move ...
461 * mips-tfile.c: ... here.
462 Don't include coretypes.h, tm.h, filenames.h.
463 (saber_stop): Remove definition and all calls.
464 [__SABER__]: Remove.
465 (__LINE__): Remove default.
466 (Size_t, Ptrdiff_t): Remove definitions.
467 Replace by size_t, ptrdiff_t.
468 [!MIPS_DEBUGGING_INFO]: Remove.
469 (SHASH_SIZE, THASH_SIZE): Remove defaults.
470 (progname): Add const.
471 (STATIC): Remove.
472 Replace all uses by static.
473 (ALIGN_SYMTABLE_OFFSET): Remove default.
474 * mips-tdump.c: Don't include coretypes.h, tm.h.
475 Remove !MIPS_IS_STAB guard.
476 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
477 $(TM_H), filenames.h dependencies.
478 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
479
480 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
481
482 From Jie Zhang
483 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
484 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
485
486 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
487
488 From Bernd Schmidt
489 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
490 account and save/restore RETS.
491 (PROFILE_BEFORE_PROLOGUE): Define.
492 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
493 the push insn to use predecrement.
494
495 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
496
497 From Jie Zhang
498 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
499
500 2011-05-04 Nick Clifton <nickc@redhat.com>
501
502 * config/mn10300/mn10300.c: Include cfgloop.h.
503 (DUMP): New macro.
504 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
505 Lcc or a FLcc insn into the instruction stream.
506 (mn10300_block_contains_call): New function. Returns true if the
507 given basic block contains a CALL insn.
508 (mn10300_loop_contains_call_insn): New function. Returns true if
509 the given loop contains a CALL insn.
510 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
511 to use the SETLB and Lcc or FLcc insns.
512 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
513 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
514 * config/mn10300/mn10300.opt (msetlb): New option. Used to
515 disable the SETLB optimization.
516 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
517 __SETLB__ or __NO_SETLB__.
518 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
519 (movsf_internal): Handle MDR register.
520 (cmpsi): Make visible.
521 (setlb): New pattern.
522 (Lcc): New pattern.
523 (FLcc): New pattern.
524
525 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
526
527 PR target/48860
528 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
529 for reg<->xmm moves.
530 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
531 (vec_concatv2di_rex64_sse): Ditto.
532 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
533 (*vec_extractv2di_1_rex64): Ditto.
534
535 Revert:
536 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
537
538 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
539 reg<->xmm moves.
540 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
541
542 2011-05-04 Richard Guenther <rguenther@suse.de>
543
544 * tree.h (int_const_binop): Remove notrunc argument.
545 * fold-const.c (int_const_binop): Remove notrunc argument. Always
546 create integer constants that are properly truncated.
547 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
548 (const_binop): Remove zero notrunc argument to int_const_binop.
549 (size_binop_loc): Likewise.
550 (fold_div_compare): Likewise.
551 (maybe_canonicalize_comparison_1): Likewise.
552 (fold_comparison): Likewise.
553 (fold_binary_loc): Likewise.
554 (multiple_of_p): Likewise.
555 * expr.c (store_constructor): Likewise.
556 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
557 (maybe_fold_stmt_addition): Likewise.
558 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
559 * stor-layout.c (layout_type): Likewise.
560 * tree-data-ref.c (tree_fold_divides_p): Likewise.
561 * tree-sra.c (build_ref_for_offset): Likewise.
562 (build_user_friendly_ref_for_offset): Likewise.
563 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
564 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
565 * tree-ssa-loop-niter.c (inverse): Likewise.
566 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
567 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
568 * tree-switch-conversion.c (check_range): Likewise.
569 (build_constructors): Likewise.
570 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
571 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
572 (extract_range_from_assert): Likewise.
573 (vrp_int_const_binop): Likewise.
574 (extract_range_from_binary_expr): Likewise.
575 (extract_range_from_unary_expr): Likewise.
576 (check_array_ref): Likewise.
577 (find_case_label_range): Likewise.
578 (simplify_div_or_mod_using_ranges): Likewise.
579 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
580 comparing case labels for merging.
581
582 2011-05-03 Mark Wielaard <mjw@redhat.com>
583
584 * dwarf2out.c (debug_str_hash_forced): Removed.
585 (gen_label_for_indirect_string): Removed.
586 (get_debug_string_label): Removed.
587 (AT_string_form): Generate label directly.
588 (output_indirect_string): Test indirect_string_node for
589 DW_FORM_strp instead of checking label and refcount.
590 (prune_indirect_string): Removed.
591 (prune_unused_types): Don't check debug_str_hash_forced or
592 call prune_indirect_string.
593
594 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
595
596 PR other/48093
597 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
598
599 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
600
601 PR debug/47994
602 PR debug/47919
603 * combine.c (try_combine): Skip debug insns at m_split tests.
604
605 2011-04-26 Mark Wielaard <mjw@redhat.com>
606
607 PR42288
608 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
609 when info_section_emitted.
610
611 2011-05-03 Joseph Myers <joseph@codesourcery.com>
612
613 * config/mips/mips-opts.h: New.
614 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
615 to mips-opts.h.
616 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
617 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
618 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
619 via opts pointer.
620 * config/mips/mips.h (enum mips_code_readable_setting): Move to
621 mips-opts.h.
622 (mips_abi, mips_code_readable): Don't declare.
623 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
624 (mabi=): Use Enum and Var.
625 (mips_abi): New Enum and EnumValue entries.
626 (mcode-readable=): Use Enum and Var.
627 (mips_code_readable_setting): New Enum and EnumValue entries.
628 (mr10k-cache-barrier=): Use Enum and Var.
629 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
630
631 2011-05-03 Jan Hubicka <jh@suse.cz>
632
633 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
634 replace hash by pointer map.
635 (cgraph_node_set_element_def, cgraph_node_set_element,
636 const_cgraph_node_set_element, varpool_node_set_element_def,
637 varpool_node_set_element, const_varpool_node_set_element): Remove.
638 (free_cgraph_node_set, free_varpool_node_set): New function.
639 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
640 * tree-emutls.c: Free varpool node set.
641 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
642 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
643 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
644 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
645 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
646 Move here from ipa.c; implement using pointer_map
647 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
648 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
649 debug_cgraph_node_set, varpool_node_set_new,
650 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
651 dump_varpool_node_set, debug_varpool_node_set):
652 Move to ipa-uitls.c.
653 * passes.c (ipa_write_summaries): Update.
654
655 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
656
657 From Mike Frysinger:
658 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
659 bf542/bf544/bf547/bf548/bf549.
660
661 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
662
663 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
664
665 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
666
667 From Bernd Schmidt:
668 * config/bfin/bfin.md (MOVCC): New mode_macro.
669 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
670 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
671 comments from generated assembly.
672
673 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
674
675 From Bernd Schmidt
676 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
677 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
678 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
679 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
680 * config/bfin/lib1funcs.asm (___muldi3): New function.
681
682 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
683
684 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
685 build_function_type_list instead of build_function_type.
686 Rearrange initialization of `args' to do so.
687
688 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
689
690 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
691 instead of build_function_type.
692
693 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
694
695 * config/rs6000/rs6000.c (spe_init_builtins): Call
696 build_function_type_list instead of build_function_type.
697 (paired_init_builtins, altivec_init_builtins): Likewise.
698 (builtin_function_type): Likewise.
699
700 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
701
702 * config/sh/sh.c (sh_media_init_builtins): Call
703 build_function_type_list instead of build_function_type.
704
705 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
706
707 * config/sparc/sparc.c (sparc_file_end): Call
708 build_function_type_list instead of build_function_type.
709
710 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
711
712 * config/alpha/alpha.c (alpha_init_builtins): Call
713 build_function_type_list instead of build_function_type.
714
715 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
716
717 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
718 build_function_type_list instead of build_function_type.
719
720 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
721
722 * config/iq2000/i2000.c (iq2000_init_builtins): Call
723 build_function_type_list instead of build_function_type.
724 Delete `endlink' variable.
725
726 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
727
728 * config/avr/avr.c (avr_init_builtins): Call
729 build_function_type_list instead of build_function_type.
730
731 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
732
733 * config/picochip/picochip.c (picochip_init_builtins): Call
734 build_function_type_list instead of build_function_type.
735 Delete `endlink' variable.
736
737 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
738
739 * config/bfin/bfin.c (bfin_init_builtins): Call
740 build_function_type_list instead of build_function_type.
741
742 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
743
744 From Bernd Schmidt
745 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
746 that's not CONST_INT. Seemingly redundant check is due to PR39768.
747
748 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
749
750 From Jie Zhang:
751 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
752 libbffastfp overrides libgcc when -mfast-fp.
753
754 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
755
756 Originally from Bernd Schmidt
757 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
758 * config/bfin/bfin.c (override_options): Test it and error if
759 TARGET_FDPIC.
760
761 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
762
763 Originally From Bernd Schmidt
764 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
765 FD-PIC.
766
767 2011-05-03 Jeff Law <law@redhat.com>
768
769 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
770 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
771 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
772 than accessing AUX field directly. Free the AUX field before
773 clearing it.
774 (thread_block, thread_through_loop_header): Likewise.
775 (thread_single_edge, mark_threaded_blocks): Likewise.
776 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
777 (register_jump_thread): Do not attempt to thread to a NULL edge.
778
779 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
780
781 * function.c (init_function_start): Call decide_function_section.
782 * varasm.c (decide_function_section): New function.
783 (assemble_start_function): When not using
784 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
785 or first_function_block_is_cold.
786 * rtl.h (decide_function_section): Declare.
787
788 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
789 Jakub Jelinek <jakub@redhat.com>
790
791 PR target/48774
792 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
793 only succeed if req_mode is the same as set_mode.
794
795 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
796
797 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
798 * genemit.c (gen_exp): Handle RETURN.
799 * emit-rtl.c (verify_rtx_sharing): Likewise.
800 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
801 * rtl.c (copy_rtx): RETURN is shared.
802 * rtl.h (enum global_rtl_index): Add GR_RETURN.
803 (ret_rtx): New.
804 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
805 * config/s390/s390.c (s390_emit_epilogue): Likewise.
806 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
807 * config/cris/cris.c (cris_expand_return): Likewise.
808 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
809 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
810 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
811 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
812 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
813 Likewise.
814 * config/v850/v850.c (expand_epilogue): Likewise.
815 * config/bfin/bfin.c (bfin_expand_call): Likewise.
816 * config/arm/arm.md (epilogue): Likewise.
817 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
818 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
819 variable to ret_reg.
820
821 2011-05-03 Richard Guenther <rguenther@suse.de>
822
823 PR lto/48846
824 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
825 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
826 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
827
828 2011-05-03 Richard Guenther <rguenther@suse.de>
829
830 * c-decl.c (grokdeclarator): Instead of looking at
831 TREE_OVERFLOW check if the constant fits in the index type.
832
833 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
834
835 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
836 (vec_store_lanes<mode><mode>): Likewise.
837
838 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
839
840 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
841 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
842 convert_optab_index values.
843 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
844 * genopinit.c (optabs): Initialize the new optabs.
845 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
846 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
847 (expand_STORE_LANES): New functions.
848 * tree.h (build_array_type_nelts): Declare.
849 * tree.c (build_array_type_nelts): New function.
850 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
851 (vect_model_load_cost): Likewise.
852 (vect_store_lanes_supported, vect_load_lanes_supported)
853 (vect_record_strided_load_vectors): Declare.
854 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
855 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
856 (vect_transform_strided_load): Split out statement recording into...
857 (vect_record_strided_load_vectors): ...this new function.
858 * tree-vect-stmts.c (create_vector_array, read_vector_array)
859 (write_vector_array, create_array_ref): New functions.
860 (vect_model_store_cost): Add store_lanes_p argument.
861 (vect_model_load_cost): Add load_lanes_p argument.
862 (vectorizable_store): Try to use store-lanes functions for
863 interleaved stores.
864 (vectorizable_load): Likewise load-lanes and loads.
865 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
866 to vect_model_store_cost.
867 (vect_build_slp_tree): Likewise vect_model_load_cost.
868
869 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
870
871 * hooks.h (hook_bool_mode_uhwi_false): Declare.
872 * hooks.c (hook_bool_mode_uhwi_false): New function.
873 * target.def (array_mode_supported_p): New hook.
874 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
875 * doc/tm.texi: Regenerate.
876 * stor-layout.c (mode_for_array): New function.
877 (layout_type): Use it.
878 * config/arm/arm.c (arm_array_mode_supported_p): New function.
879 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
880
881 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
882
883 PR target/48723
884 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
885 for -fstack-check if the size to allocate is negative.
886
887 2011-05-02 Lawrence Crowl <crowl@google.com>
888
889 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
890 (timevar_cond_start): New for starting a timer only when it is not
891 already running.
892 (timevar_cond_stop): New for stopping a timer when it was not already
893 running.
894
895 * timevar.c (timevar_stop): Enable start/stop timers to start again.
896 (timevar_cond_start): New as above.
897 (timevar_cond_stop): New as above.
898
899 * timevar.def: Add start/stop timers for compiler phases,
900 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
901 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
902 and TV_PHASE_FINALIZE.
903 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
904 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
905 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
906 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
907 Make unused TV_OVERLOAD into a start/stop timer.
908
909 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
910 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
911 to indicate that they are start/stop timers.
912
913 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
914 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
915 Move initialization to do_compile.
916 (do_compile): Add initialization from above.
917 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
918
919 * c-decl.c (c_write_global_declarations): Add start/stop of
920 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
921
922 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
923 or TV_PARSE_INLINE, as appropriate.
924 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
925 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
926
927 2011-05-02 Jason Merrill <jason@redhat.com>
928
929 PR c++/40975
930 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
931
932 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
933
934 PR c/35445
935 * c-decl.c (finish_decl): Only create a composite if the types are
936 compatible.
937
938 2011-05-02 Joseph Myers <joseph@codesourcery.com>
939
940 * config/fr30/fr30-protos.h (Mmode): Don't define.
941 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
942 definition where used.
943 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
944 define. Expand definitions where used.
945 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
946 Expand definitions where used.
947 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
948 rx_function_arg, rx_function_arg_advance,
949 rx_function_arg_boundary): Expand definitions of those macros.
950 * config/v850/v850-protos.h (Mmode): Don't define. Expand
951 definition where used.
952
953 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
954
955 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
956 reg<->xmm moves.
957 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
958 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
959 with *movv2sf_internal_rex64_avx.
960 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
961 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
962 Use %v prefix in insn mnemonic to handle TARGET_AVX.
963 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
964 "vex" in "prefix" attribute calculation.
965 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
966
967 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
968
969 PR target/47951
970 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
971 inputs match the output.
972
973 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
974
975 PR target/47955
976 * config/m68k/m68k.c (m68k_expand_prologue): Set
977 current_function_static_stack_size.
978
979 2011-05-02 Jan Hubicka <jh@suse.cz>
980
981 * lto-streamer.c (lto_streamer_cache_insert_1,
982 lto_streamer_cache_lookup, lto_streamer_cache_create,
983 lto_streamer_cache_delete): Use pointer map instead of hashtable.
984 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
985
986 2011-05-02 Joseph Myers <joseph@codesourcery.com>
987
988 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
989 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
990 config/m68k/t-opts: New files.
991 * config/m68k/m68k-tables.opt: New file (generated).
992 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
993 extra_options and m68k/t-opts to tmake_file.
994 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
995 (all_isas): Initialize using m68k-isas.def.
996 (all_microarchs): Initialize using m68k-microarchs.def.
997 (m68k_find_selection): Remove.
998 (m68k_handle_option): Don't assert that global structures are in
999 use. Use error_at. Access variables via opts pointer. Don't
1000 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
1001 directly for -m68020-40 and -m68020-60.
1002 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
1003 m68k_tune_entry here.
1004 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1005 to m68k-opts.h.
1006 (m68k_library_id_string): Remove declaration.
1007 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
1008 (m68k_library_id_string): New Variable.
1009 (march=, mcpu=, mtune=): Use Enum and Var.
1010
1011 2011-05-02 Richard Guenther <rguenther@suse.de>
1012
1013 * varasm.c (output_constructor_regular_field): Compute zero-based
1014 index with double-ints. Make sure to ICE instead of producing
1015 wrong code.
1016 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1017 in asserts. Properly use a signed type.
1018
1019 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
1020
1021 * config/i386/sse.md (V): New mode iterator.
1022 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
1023 TARGET_SSE2.
1024 (V_256): Rename from AVX256MODE.
1025 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
1026 condition to all users.
1027 (VF1): Ditto.
1028 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
1029 condition to all users.
1030 (VF_128): Make V4SF mode unconditional.
1031 (VF_256): Rename from AVX256MODEF2P.
1032 (VI4F_128): Rename from SSEMODE4S.
1033 (VI8F_128): Rename from SSEMODE2D.
1034 (VI4F_256): Rename from AVX256MODE8P.
1035 (VI8F_256): Rename from AVX256MODE4P.
1036 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1037 (ssescalarmodesuffix): Remove SF and DF modes.
1038 (SSEMODE124): Remove.
1039 (SSEMODE1248): Ditto.
1040 (SSEMODEF2P): Ditto.
1041 (AVXMODEF2P): Ditto.
1042 (AVXMODEFDP): Ditto.
1043 (AVXMODEFSP): Ditto.
1044 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1045 unconditional.
1046 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
1047 unconditional.
1048 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1049 xop_pcmov_<mode>256. Use V mode iterator.
1050
1051 Adjust RTX patterns globally for renamed mode attributes.
1052
1053 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1054
1055 * haifa-sched.c (sched_emit_insn): Emit insn before first
1056 non-scheduled insn. Inform back-end about new insn. Add
1057 new insn to scheduled_insns list.
1058
1059 2011-05-02 Richard Guenther <rguenther@suse.de>
1060
1061 PR tree-optimization/48822
1062 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1063 (process_scc): Indicate which iteration we start.
1064
1065 2011-05-02 Jan Hubicka <jh@suse.cz>
1066
1067 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1068 (lto_section_overrun): New.
1069 * lto-section-out.c (append_block): Rename to ...
1070 (lto_append_block): ... this one; export.
1071 (lto_output_1_stream): Move lto lto-streamer.h
1072 (lto_output_data_stream): Update.
1073 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1074 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1075 functions.
1076
1077 2011-05-02 Richard Guenther <rguenther@suse.de>
1078
1079 * tree.c (tree_code_counts): New global array.
1080 (record_node_allocation_statistics): Count individual tree codes.
1081 (dump_tree_statistics): Dump individual code stats.
1082
1083 2011-05-01 Jan Hubicka <jh@suse.cz>
1084
1085 * ipa-inline.c (caller_growth_limits): Fix thinko when
1086 looking for largest stack frame.
1087 * ipa-inline.h (dump_inline_summary): Declare.
1088 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1089 on stack usage.
1090 (dump_inline_summary): Export.
1091 (debug_inline_summary): Declare as DEBUG_FUNCTION.
1092
1093 2011-05-01 Anatoly Sokolov <aesok@post.ru>
1094
1095 * reginfo.c (memory_move_cost): Change rclass argument type form
1096 'enum reg_class' to reg_class_t.
1097 * reload.h (memory_move_cost): Update prototype.
1098 * postreload.c reload_cse_simplify_set): Change type dclass var to
1099 reg_class_t.
1100 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1101 Update prototype.
1102 (ira_allocate_and_set_costs): Change aclass argument type form
1103 'enum reg_class' to reg_class_t.
1104 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
1105 Change aclass argument type to reg_class_t.
1106 (update_conflict_hard_reg_costs): Change type aclass and pref vars
1107 to reg_class_t.
1108 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1109 memory_move_cost call.
1110
1111 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1112 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1113 Change type tmp var to reg_class_t.
1114
1115 2011-04-30 Jan Hubicka <jh@suse.cz>
1116
1117 * ipa-inline.c (can_inline_edge_p): Disregard limits when
1118 inlining into function with flatten attribute.
1119 (want_inline_small_function_p): Be more realistic about inlining
1120 cold calls where callee size grows.
1121
1122 2011-04-30 Jan Hubicka <jh@suse.cz>
1123
1124 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1125 flags.
1126
1127 2011-04-30 Anatoly Sokolov <aesok@post.ru>
1128
1129 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1130 PRINT_OPERAND_PUNCT_VALID_P): Remove.
1131 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1132 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1133 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1134 (print_operand): Rename to...
1135 (sparc_print_operand): ...this. Make static. Adjust
1136 sparc_print_operand function call.
1137 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1138 functions.
1139
1140 2011-04-30 Jan Hubicka <jh@suse.cz>
1141
1142 PR middle-end/48752
1143 * ipa-inline.c (early_inliner): Disable when doing late
1144 addition of function.
1145
1146 2011-04-30 Jakub Jelinek <jakub@redhat.com>
1147
1148 * dwarf2out.c (get_address_mode): New inline.
1149 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1150 if not dwarf_strict emit
1151 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1152 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1153 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
1154 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1155 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1156 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1157 mem_loc_descriptor callers.
1158 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1159 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1160 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1161 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1162 (base_types): New variable.
1163 (get_base_type_offset, calc_base_type_die_sizes,
1164 base_type_for_mode, mark_base_types, base_type_cmp,
1165 move_marked_base_types): New functions.
1166 (calc_die_sizes): Assert that die_offset is 0 or equal to
1167 next_die_offset.
1168 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1169 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
1170 callers. If not dwarf_strict, call mem_loc_descriptor even for
1171 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1172 (gen_subprogram_die): Don't give up on call site parameters
1173 with non-integral or large integral modes. Adjust
1174 mem_loc_descriptor callers.
1175 (prune_unused_types): Call prune_unused_types_mark on base_types
1176 vector entries.
1177 (resolve_addr): Call mark_base_types.
1178 (dwarf2out_finish): Call move_marked_base_types.
1179
1180 PR tree-optimization/48809
1181 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
1182 type.
1183 (gen_inbound_check): Don't compute index_expr - range_min in utype
1184 again, instead reuse SSA_NAME initialized in build_arrays.
1185 Remove two useless gsi_for_stmt calls.
1186
1187 2011-04-29 Jeff Law <law@redhat.com>
1188
1189 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1190
1191 2011-04-29 Martin Jambor <mjambor@suse.cz>
1192
1193 * cgraph.h (cgraph_postorder): Remove declaration.
1194 * ipa-utils.h (ipa_free_postorder_info): Declare.
1195 (ipa_reverse_postorder): Likewise.
1196 * cgraphunit.c: Include ipa-utils.h.
1197 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
1198 * ipa-inline.c: Include ipa-utils.h.
1199 (ipa_inline): Update call to ipa_reverse_postorder.
1200 * ipa-pure-const.c (propagate_pure_const): Update call to
1201 ipa_reduced_postorder and ipa_print_order. Call
1202 ipa_free_postorder_info to clean up.
1203 (propagate_nothrow): Likewise.
1204 * ipa-reference.c (propagate): Removed a useless call to
1205 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
1206 and ipa_print_order. Call ipa_free_postorder_info to clean up.
1207 * ipa.c: Include ipa-utils.h.
1208 (ipa_profile): Update call to ipa_reverse_postorder.
1209 (cgraph_postorder): Moved to...
1210 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
1211 (ipa_utils_print_order): Renamed to ipa_print_order.
1212 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
1213 comments.
1214 (ipa_free_postorder_info): New function.
1215 * passes.c: Include ipa-utils.h.
1216 (do_per_function_toporder): Update call to ipa_reverse_postorder.
1217 (ipa_write_summaries): Likewise.
1218 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
1219 (cgraphunit.o): Likewise.
1220 (ipa.o): Likewise.
1221 (ipa-inline.o): Likewise.
1222
1223 2011-04-29 Jan Hubicka <jh@suse.cz>
1224
1225 * gcc.dg/tree-ssa/inline-10.c: New testcase.
1226 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
1227 * ipa-inline.h (clause_t): Turn into unsigned int.
1228 * ipa-inline-analysis.c (add_clause): Do more simplification.
1229 (and_predicates): Shortcut more cases.
1230 (predicates_equal_p): Move forward; check that clauses are properly
1231 ordered.
1232 (or_predicates): Shortcut more cases.
1233 (edge_execution_predicate): Rewrite as...
1234 (set_cond_stmt_execution_predicate): ... this function; handle
1235 __builtin_constant_p.
1236 (set_switch_stmt_execution_predicate): New .
1237 (compute_bb_predicates): New.
1238 (will_be_nonconstant_predicate): Update TODO.
1239 (estimate_function_body_sizes): Use compute_bb_predicates
1240 and free them later, always try to estimate if stmt is constant.
1241 (estimate_time_after_inlining, estimate_size_after_inlining):
1242 Gracefully handle optimized out edges.
1243 (read_predicate): Fix off by one error.
1244
1245 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
1246
1247 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1248
1249 2011-04-27 Xinliang David Li <davidxl@google.com>
1250
1251 * tree-profile.c (init_ic_make_global_vars): Set
1252 tls attribute on ic vars.
1253 * coverage.c (coverage_end_function): Initialize
1254 function_list with zero.
1255
1256 2011-04-29 Richard Guenther <rguenther@suse.de>
1257
1258 * builtins.c (fold_builtin_classify_type): Use integer_type_node
1259 for the type of the result.
1260 (fold_builtin_isascii): Likewise.
1261 (fold_builtin_toascii): Use integer_type_node where appropriate.
1262 (fold_builtin_logb): Likewise.
1263 (fold_builtin_frexp): Likewise.
1264 (fold_builtin_strstr): Likewise.
1265 (fold_builtin_strpbrk): Likewise.
1266 (fold_builtin_fputs): Likewise.
1267 (fold_builtin_sprintf): Likewise.
1268 (fold_builtin_snprintf): Likewise.
1269 (fold_builtin_printf): Likewise.
1270 (do_mpfr_remquo): Use a proper type for the assigned constant.
1271 (do_mpfr_lgamma_r): Likewise.
1272 * dwarf2out.c (resolve_one_addr): Use size_int.
1273 * except.c (init_eh): Likewise.
1274 (assign_filter_values): Use integer_type_node for filter values.
1275 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
1276 indices.
1277 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
1278 for EH region numbers.
1279 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
1280 for the shift amount.
1281
1282 2011-04-29 Richard Guenther <rguenther@suse.de>
1283
1284 * expr.h (expand_shift): Rename to ...
1285 (expand_variable_shift): ... this.
1286 (expand_shift): Take a constant shift amount.
1287 * expmed.c (expand_shift): Rename to ...
1288 (expand_variable_shift): ... this.
1289 (expand_shift): New wrapper around expand_variable_shift.
1290 * expr.c (convert_move, emit_group_load_1, emit_group_store,
1291 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
1292 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
1293 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
1294 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
1295 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
1296 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
1297 emit_store_flag_1, emit_store_flag): Likewise.
1298 * builtins.c (expand_builtin_signbit): Likewise.
1299 * calls.c (load_register_parameters): Likewise.
1300 * function.c (assign_parm_setup_block): Likewise.
1301 * lower-subreg.c (resolve_shift_zext): Likewise.
1302 * optabs.c (widen_bswap, expand_abs_nojump,
1303 expand_one_cmpl_abs_nojump, expand_float): Likewise.
1304 * spu/spu.c (spu_expand_extv): Likewise.
1305 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1306
1307 2011-04-29 Richard Guenther <rguenther@suse.de>
1308
1309 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
1310 for the remapped region number.
1311 * predict.c (build_predict_expr): Use integer_type_node for the
1312 predict kind.
1313 * fold-const.c (fold_binary_loc): Use integer_type_node for
1314 the shift amount. Use a proper type for the PLUS_EXPR operand.
1315
1316 2011-04-29 Michael Matz <matz@suse.de>
1317
1318 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
1319 other trees that just builtins.
1320 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
1321
1322 2011-04-29 Richard Guenther <rguenther@suse.de>
1323
1324 * tree-nested.c (get_trampoline_type): Use size_int.
1325 (get_nl_goto_field): Likewise.
1326 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
1327 for all indexes.
1328 (lower_eh_constructs_2): Likewise.
1329 (lower_resx): Likewise.
1330 (lower_eh_dispatch): Likewise.
1331 * tree-mudflap.c (mf_build_string): Use size_int.
1332 (mudflap_register_call): Use integer_type_node for the flag.
1333 (mudflap_enqueue_constant): Use size_int.
1334 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
1335 instead of rebuilding it.
1336
1337 2011-04-29 Richard Guenther <rguenther@suse.de>
1338
1339 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
1340 Handle OBJ_TYPE_REF.
1341 (find_func_aliases_for_call): Use it more consistently.
1342
1343 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
1344
1345 * haifa-sched.c (last_nondebug_scheduled_insn): New.
1346 (rank_for_schedule): Use it.
1347 (schedule_block): Set it.
1348
1349 2011-04-28 David Li <davidxl@google.com>
1350
1351 * tree.c (crc32_string): Use crc32_byte.
1352 (crc32_byte): New function.
1353 * tree.h (crc32_byte): New function.
1354 * gcov.c (read_graph_file): Handle new cfg_cksum.
1355 (read_count_file): Ditto.
1356 * profile.c (instrument_values): Ditto.
1357 (get_exec_counts): Ditto.
1358 (read_profile_edge_counts): Ditto.
1359 (compute_branch_probabilities): Ditto.
1360 (compute_value_histograms): Ditto.
1361 (branch_prob): Ditto.
1362 (end_branch_prob): Ditto.
1363 * coverage.c (read_counts_file): Ditto.
1364 (get_coverage_counts): Ditto.
1365 (tree_coverage_counter_addr): Ditto.
1366 (coverage_checksum_string): Ditto.
1367 (coverage_begin_output): Ditto.
1368 (coverage_end_function): Ditto.
1369 (build_fn_info_type): Ditto.
1370 (build_fn_info_value): Ditto.
1371 * libgcov.c (gcov_exit): Ditto.
1372 * gcov-dump.c (tag_function): Ditto.
1373 (compute_checksum): Remove.
1374
1375 2011-04-29 Alan Modra <amodra@gmail.com>
1376
1377 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1378 unspec plus offset. Tidy macho code.
1379
1380 2011-04-29 Martin Jambor <mjambor@suse.cz>
1381
1382 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
1383 node instead of a decl. Update all callers.
1384 * cgraph.h: Update declaration.
1385
1386 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
1387
1388 PR tree-optimization/48765
1389 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1390 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1391 to indicate if loop aware SLP is being used. Scan the statements
1392 and update the vectorization factor according to the type of
1393 vectorization before statement analysis.
1394 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1395 pass it to vect_analyze_loop_operations.
1396 (vectorizable_reduction): Set number of copies to 1 in case of pure
1397 SLP statement.
1398 * tree-vect-stmts.c (vectorizable_conversion,
1399 vectorizable_assignment, vectorizable_shift,
1400 vectorizable_operation, vectorizable_type_demotion,
1401 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1402 Likewise.
1403 (vectorizable_condition): Move the check that it is not SLP
1404 vectorization before the number of copies check.
1405 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1406 to vectorize the loop using SLP.
1407
1408 2011-04-28 Jakub Jelinek <jakub@redhat.com>
1409
1410 PR middle-end/48597
1411 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1412 inline asm.
1413
1414 2011-04-28 Joseph Myers <joseph@codesourcery.com>
1415
1416 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
1417 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
1418 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1419 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1420 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
1421 linux*.h headers.
1422 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
1423 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1424 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1425 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1426 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1427 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
1428 REG_NAME.
1429 * config/i386/linux.h (REG_NAME): Don't define.
1430 * config/i386/linux64.h (REG_NAME): Don't define.
1431 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
1432 Undefine before defining.
1433
1434 2011-04-28 Jan Hubicka <jh@suse.cz>
1435
1436 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
1437 nonconstant_names array.
1438 (estimate_function_body_sizes): Build nonconstant_names array; handle
1439 BUILT_IN_CONSTANT_P.
1440
1441 2011-04-28 Richard Guenther <rguenther@suse.de>
1442
1443 PR bootstrap/48804
1444 Revert
1445 2011-04-28 Richard Guenther <rguenther@suse.de>
1446
1447 * tree-ssa-structalias.c (solve_constraints): Build succ graph
1448 as late as possible.
1449
1450 2011-04-28 Richard Guenther <rguenther@suse.de>
1451
1452 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
1453 (debug_constraint): Do it here.
1454 (dump_constraints): And here.
1455 (rewrite_constraints): And here.
1456 (dump_constraint_edge): Remove.
1457 (dump_constraint_graph): Rewrite to produce DOT output.
1458 (solve_constraints): Build succ graph as late as possible.
1459 Dump constraint graphs before and after solving.
1460
1461 2011-04-28 Richard Guenther <rguenther@suse.de>
1462
1463 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1464 New function split out from ...
1465 (find_func_aliases): ... here. Call it.
1466 (find_func_aliases_for_call): Likewise.
1467
1468 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
1469
1470 * internal-fn.h (internal_fn_name_array): Declare.
1471 (internal_fn_flags_array): Likewise.
1472
1473 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
1474
1475 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
1476 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
1477 Move from sse.md.
1478 (ssemodefsuffix): Remove.
1479 (ssevecmodesuffix): New mode attribute.
1480 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
1481 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1482 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1483 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1484 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
1485 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
1486 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
1487 ssemodesuffix mode attribute.
1488 (float splitters): Use ssevecmodesuffix mode attribute.
1489 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
1490 (sseinsmode): Rename from avxvecmode.
1491 (avxsizesuffix): Rename from avxmodesuffix.
1492 (sseintvecmode): Rename from avxpermvecmode.
1493 (ssedoublevecmode): Rename from ssedoublesizemode.
1494 (ssehalfvecmode): Rename from avxhalfvecmode.
1495 (ssescalarmode): Rename from avxscalarmode.
1496 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
1497 templates for ssemodesuffix mode attribute.
1498 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
1499 mode attribute.
1500
1501 Adjust RTX patterns globally for renamed mode attributes.
1502
1503 2011-04-27 Jan Hubcika <jh@suse.cz>
1504
1505 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
1506 * ipa-inline-analysis.c: Include alloc-pool.h.
1507 (edge_predicate_pool): New.
1508 (trye_predicate_p): New function
1509 (false_predicate_p): New function.
1510 (add_clause): Sanity check that false clauses are "optimized";
1511 never add clauses to predicate that is already known to be false.
1512 (and_predicate): Use flase_predicate_p.
1513 (evaulate_predicate): Rename to ...
1514 (evaluate_predicate): ... this one; update all callers; assert
1515 that false is not listed among possible truths.
1516 (dump_predicate): Use true_predicate_p.
1517 (account_size_time): Use false_predicate_p.
1518 (evaulate_conditions_for_edge): Rename to ...
1519 (evaluate_conditions_for_edge) ... this one.
1520 (edge_set_predicate): New function.
1521 (inline_edge_duplication_hook): Duplicate edge predicates.
1522 (inline_edge_removal_hook): Free edge predicates.
1523 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
1524 (dump_inline_summary): Update.
1525 (estimate_function_body_sizes): Set edge predicates.
1526 (estimate_calls_size_and_time): Handle predicates.
1527 (estimate_callee_size_and_time): Update.
1528 (remap_predicate): Add toplev_predicate; update comment.
1529 (remap_edge_predicates): New function.
1530 (inline_merge_summary): Compute toplev predicate; update.
1531 (read_predicate): New function.
1532 (read_inline_edge_summary): Use it.
1533 (inline_read_section): Likewise.
1534 (write_predicate): New function.
1535 (write_inline_edge_summary): Use it.
1536 (inline_write_summary): Likewise.
1537 (inline_free_summary): Free alloc pool and edge summary vec.
1538
1539 2011-04-27 Richard Guenther <rguenther@suse.de>
1540
1541 * tree-ssa-structalias.c (changed_count): Remove.
1542 (changed): Use a bitmap.
1543 (unify_nodes): Adjust.
1544 (do_sd_constraint): Likewise.
1545 (do_ds_constraint): Likewise.
1546 (do_complex_constraint): Likewise.
1547 (solve_graph): Likewise.
1548
1549 2011-04-27 Jan Hubicka <jh@suse.cz>
1550
1551 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1552
1553 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
1554
1555 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
1556 (avx_vperm2f128_*_operand): Ditto.
1557 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
1558 Use avx_vpermilp_parallel in insn condition.
1559 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
1560 Use avx_vperm2f128_parallel in insn condition.
1561
1562 2011-04-27 Richard Guenther <rguenther@suse.de>
1563
1564 * Makefile.in (tree-ssa-structalias.o): Remove
1565 gt-tree-ssa-structalias.h dependency.
1566 (GTFILES): Remove tree-ssa-structalias.c.
1567 * tree.c (allocate_decl_uid): New function.
1568 (make_node_stat): Use it.
1569 (copy_node_stat): Likewise.
1570 * tree.h (allocate_decl_uid): Declare.
1571 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
1572 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
1573 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
1574 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
1575 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
1576 (struct heapvar_map): Likewise.
1577 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
1578 heapvar_insert): Likewise.
1579 (make_heapvar_for): Rename to ...
1580 (make_heapvar): ... this. Simplify.
1581 (fake_var_decl_obstack): New global var.
1582 (build_fake_var_decl): New function.
1583 (make_constraint_from_heapvar): Adjust.
1584 (handle_lhs_call): Likewise.
1585 (create_function_info_for): Likewise.
1586 (intra_create_variable_infos): Likewise.
1587 (init_alias_vars): Allocate fake_var_decl_obstack.
1588 (init_alias_heapvars, delete_alias_heapvars): Remove.
1589 (compute_points_to_sets): Do not call init_alias_heapvars.
1590 (ipa_pta_execute): Likewise.
1591 (delete_points_to_sets): Free fake_var_decl_obstack.
1592
1593 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1594
1595 * config/spu/divmovti4.c (union qword_UTItype): New data type.
1596 (si_from_UTItype, si_to_UTItype): New functions.
1597 (__udivmodti4): Use them to implement type-punning.
1598 * config/spu/multi3.c (union qword_TItype): New data type.
1599 (si_from_TItype, si_to_TItype): New functions.
1600 (__multi3): Use them to implement type-punning.
1601
1602 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1603
1604 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1605
1606 2011-04-27 Jan Hubicka <jh@suse.cz>
1607
1608 * ipa-prop.c (function_insertion_hook_holder): New holder.
1609 (ipa_add_new_function): New function.
1610 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1611 Register/deregister holder.
1612
1613 2011-04-27 Richard Guenther <rguenther@suse.de>
1614
1615 PR tree-optimization/48772
1616 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
1617
1618 2011-04-27 Richard Guenther <rguenther@suse.de>
1619
1620 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1621 TARGET_MEM_REF handling.
1622
1623 2011-04-27 Nick Clifton <nickc@redhat.com>
1624
1625 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1626 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1627 (REG_CLASS_NAMES): Likewise.
1628 (REG_CLASS_CONTENTS): Likewise.
1629 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1630 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1631 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
1632 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
1633 (EVEN_REGS): New macro. Alias for QUAD_REGS.
1634 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
1635 duplicate register classes.
1636 (frv_class_likely_spilled_p): Likewise.
1637 (frv_register_move_cost): Likewise.
1638
1639 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1640 end of the regno_reg_class array.
1641
1642 2011-04-27 Jakub Jelinek <jakub@redhat.com>
1643
1644 PR c/48742
1645 * c-typeck.c (build_binary_op): Don't wrap arguments if
1646 int_operands is true.
1647
1648 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
1649
1650 PR target/48767
1651 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1652 targetm.calls.must_pass_in_stack for void type.
1653
1654 2011-04-26 Jan Hubicka <jh@suse.cz>
1655
1656 * cgraphbuild.c (build_cgraph_edges): Update call
1657 of cgraph_create_edge and cgraph_create_indirect_edge.
1658 * cgraph.c (cgraph_create_edge_including_clones,
1659 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
1660 cgraph_update_edges_for_call_stmt_node): Do not take nest
1661 argument; do not initialize call_stmt_size/time.
1662 (dump_cgraph_node): Do not dump nest.
1663 (cgraph_clone_edge): Do not take loop_nest argument;
1664 do not propagate it; do not clone call_stmt_size/time.
1665 (cgraph_clone_node): Likewise.
1666 (cgraph_create_virtual_clone): Update.
1667 * cgraph.h (struct cgraph_edge): Remove
1668 call_stmt_size/call_stmt_time/loop_nest.
1669 (cgraph_create_edge, cgraph_create_indirect_edge,
1670 cgraph_create_edge_including_clones, cgraph_clone_node): Update
1671 prototype.
1672 * tree-emutls.c (gen_emutls_addr): Update.
1673 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1674 loop_nest; handle indirect calls, too.
1675 (clone_inlined_nodes): Do not care about updating inline summaries.
1676 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1677 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1678 stream call_stmt_size/call_stmt_time/loop_nest.
1679 * ipa-inline.c (edge_badness): Update.
1680 (ipa_inline): dump summaries after inlining.
1681 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
1682 New.
1683 (inline_edge_summary): New function.
1684 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1685 (inline_edge_removal_hook): Handle edge summaries.
1686 (inline_edge_duplication_hook): New hook.
1687 (inline_summary_alloc): Alloc hooks.
1688 (initialize_growth_caches): Do not register removal hooks.
1689 (free_growth_caches); Do not free removal hook.
1690 (dump_inline_edge_summary): New function.
1691 (dump_inline_summary): Use it.
1692 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1693 (inline_update_callee_summaries): New function.
1694 (inline_merge_summary): Use it.
1695 (do_estimate_edge_time, do_estimate_edge_growth): Update.
1696 (read_inline_edge_summary): New function.
1697 (inline_read_section): Use it.
1698 (write_inline_edge_summary): New function.
1699 (inline_write_summary): Use it.
1700 (inline_free_summary): Free edge new holders.
1701 * tree-inline.c (copy_bb): Update.
1702
1703 2011-04-26 Jason Merrill <jason@redhat.com>
1704
1705 * tree-eh.c (lower_try_finally_switch): Create the label along with
1706 the CASE_LABEL_EXPR.
1707
1708 2011-04-26 David S. Miller <davem@davemloft.net>
1709 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1710
1711 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1712 * configure: Regenerate.
1713
1714 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1715
1716 PR target/48258
1717 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1718 reduction.
1719 (VEC_reduc): New code iterator and splitters for vector reduction.
1720 (VEC_reduc_name): Ditto.
1721 (VEC_reduc_rtx): Ditto.
1722 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1723 (reduc_<VEC_reduc_name>_v4sf): Ditto.
1724
1725 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1726 support for extracting SF on VSX.
1727
1728 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1729 generating xscvspdp.
1730 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1731 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1732 double add, minimum, maximum vector reduction.
1733 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1734 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1735 optimize double vector reduction.
1736 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1737
1738 2011-04-26 Joseph Myers <joseph@codesourcery.com>
1739
1740 * config/fr30/fr30.h (inhibit_libc): Don't define.
1741 * config/m32r/m32r-protos.h: Correct comment.
1742 * config/v850/v850.h (GHS_default_section_names,
1743 GHS_current_section_names): Use tree, not union tree_node *.
1744
1745 2011-04-26 Xinliang David Li <davidxl@google.com>
1746
1747 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
1748 * c-family/c-opts.c (c_common_handle_option): Set
1749 warn_maybe_uninitialized.
1750 * opts.c (common_handle_option): Ditto.
1751 * common.opt: New option.
1752 * tree-ssa.c (warn_uninit): Add one more parameter.
1753 (warn_uninitialized_var): Pass warning code.
1754 * tree-flow.h: Interface change.
1755
1756
1757 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1758
1759 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
1760 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1761 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1762
1763 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1764
1765 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1766 * config/mips/mips.opt (mmips-tfile): Remove.
1767
1768 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1769 mips-tdump reference to ...
1770 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
1771 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1772 reference by Tru64 UNIX.
1773
1774 2011-04-26 Jakub Jelinek <jakub@redhat.com>
1775
1776 PR debug/48768
1777 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1778 is error_mark_node, set value to NULL.
1779
1780 PR tree-optimization/48734
1781 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1782 if return value from maybe_fold_*_comparsions isn't something
1783 the code is prepared to handle.
1784
1785 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
1786
1787 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1788 mode check.
1789 (ext_QIreg_nomode_operands): Remove.
1790 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1791 (*andsi_1): Ditto.
1792 (*andhi_1): Ditto.
1793
1794 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
1795
1796 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1797
1798 2011-04-26 Richard Guenther <rguenther@suse.de>
1799
1800 * c-typeck.c (build_unary_op): Do not expand array-refs via
1801 pointer arithmetic. Only adjust qualifiers for function types.
1802
1803 2011-04-26 Richard Guenther <rguenther@suse.de>
1804
1805 PR middle-end/48694
1806 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1807 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
1808 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
1809 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
1810
1811 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
1812
1813 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
1814 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
1815 * doc/extend.texi: Document __underlying_type.
1816
1817 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
1818
1819 * config/rs6000/titan.md (automata_option "progress"): Remove.
1820
1821 2011-04-25 Jeff Law <law@redhat.com>
1822
1823 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1824
1825 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1826
1827 * system.h (ENUM_BITFIELD): Remove.
1828
1829 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1830 Eric Botcazou <ebotcazou@adacore.com>
1831
1832 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1833 for STORE_FLAG_VALUE==-1 case.
1834
1835 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
1836
1837 PR target/43804
1838 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1839 LEGITIMATE_PIC_OPERAND_P.
1840
1841 2011-04-24 Jan Hubicka <jh@suse.cz>
1842
1843 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1844 WPA hack.
1845 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1846 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1847 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
1848 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1849 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1850 Sanity check predicate length.
1851 (remap_predicate): Likewise; sanity check jump functions.
1852 (inline_read_section, inline_write_summary): Sanity check
1853 predicate length.
1854
1855 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1856
1857 PR other/48748
1858 * doc/extend.texi (Type Traits): Document __is_standard_layout,
1859 __is_literal_type, and __is_trivial; update throughout about
1860 possibly cv-qualified void types.
1861
1862 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
1863
1864 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1865 testsuite and make it version agnostic.
1866
1867 2011-04-22 Jan Hubicka <jh@suse.cz>
1868
1869 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1870
1871 2011-04-23 Jakub Jelinek <jakub@redhat.com>
1872
1873 PR c/48685
1874 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1875 to VOID_TYPE even around MODIFY_EXPR.
1876
1877 2011-04-22 Mike Stump <mikestump@comcast.net>
1878
1879 * gensupport.c (read_md_rtx): Fix typo in comment.
1880 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1881 comment.
1882
1883 2011-04-22 Jan Hubicka <jh@suse.cz>
1884
1885 * gengtype.c (open_base_files): Add ipa-inline.h include.
1886 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1887 ipa-prop.c; update all uses.
1888 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
1889 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1890 merge summary of inlined function into former caller.
1891 * ipa-inline.c (max_benefit): Remove.
1892 (edge_badness): Compensate for removal of benefits.
1893 (update_caller_keys): Use
1894 reset_node_growth_cache/reset_edge_growth_cache.
1895 (update_callee_keys): Likewise.
1896 (update_all_callee_keys): Likewise.
1897 (inline_small_functions): Do not collect max_benefit; do not reset
1898 estimated_growth; call free_growth_caches and initialize_growth_caches.
1899 * ipa-inline.h (struct condition, type clause_t, struct predicate,
1900 struct size_time_entry): New structures.
1901 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
1902 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1903 and estimated_growth.
1904 (edge_growth_cache_entry): New structure.
1905 (node_growth_cache, edge_growth_cache): New global vars.
1906 (estimate_growth): Turn into inline.
1907 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1908 initialize_growth_caches, free_growth_caches): Declare.
1909 (estimate_edge_growth): Rewrite.
1910 (estimate_edge_time): Implement as inline cache lookup.
1911 (reset_node_growth_cache, reset_edge_growth_cache): New inline
1912 functions.
1913 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1914 (NUM_CONDITIONS): New constant.
1915 (predicate_conditions): New enum.
1916 (IS_NOT_CONSTANT): New constant.
1917 (edge_removal_hook_holder): New var.
1918 (node_growth_cache, edge_growth_cache): New global vars.
1919 (true_predicate, single_cond_predicate, false_predicate,
1920 not_inlined_predicate, add_condition, add_clause, and_predicates,
1921 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1922 dump_clause, dump_predicate, account_size_time,
1923 evaulate_conditions_for_edge): New functions.
1924 (inline_summary_alloc): Move to heap.
1925 (inline_node_removal_hook): Clear condition and entry vectors.
1926 (inline_edge_removal_hook): New function.
1927 (initialize_growth_caches, free_growth_caches): New function.
1928 (dump_inline_summary): Update.
1929 (edge_execution_predicate): New function.
1930 (will_be_nonconstant_predicate): New function.
1931 (estimate_function_body_sizes): Compute BB and constantness predicates.
1932 (compute_inline_parameters): Do not clear estimated_growth.
1933 (estimate_edge_size_and_time): New function.
1934 (estimate_calls_size_and_time): New function.
1935 (estimate_callee_size_and_time): New function.
1936 (remap_predicate): New function.
1937 (inline_merge_summary): New function.
1938 (do_estimate_edge_time): New function based on...
1939 (estimate_edge_time): ... this one.
1940 (do_estimate_edge_growth): New function.
1941 (do_estimate_growth): New function based on....
1942 (estimate_growth): ... this one.
1943 (inline_analyze_function): Analyze after deciding on jump functions.
1944 (inline_read_section): New function.
1945 (inline_read_summary): Use it.
1946 (inline_write_summary): Write all the new data.
1947 * ipa-prop.c (ipa_get_param_decl_index): Export.
1948 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
1949 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1950 Declare.
1951 (ipa_get_lattice): Move here from ipa-cp.c
1952 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1953 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1954 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1955 cgraph_edge_inlinable_p): Remove.
1956 * cgraphunit.c: Include ipainline.h
1957 (cgraph_process_new_functions): Update call of
1958 compute_inline_parameters.
1959
1960 2011-04-22 Richard Guenther <rguenther@suse.de>
1961
1962 * tree.c (build_int_cst): Properly create canonicalized integer
1963 constants.
1964 (build_int_cst_type): Remove scary comments.
1965
1966 2011-04-22 Xinliang David Li <davidxl@google.com>
1967
1968 * toplev.c (process_options): Enable -Werror=coverage-mismatch
1969 by default when -Wno-error is not specified.
1970 * opts-global.c (decode_options): Remove call to
1971 control_warning_options.
1972
1973 2011-04-22 Jakub Jelinek <jakub@redhat.com>
1974
1975 PR tree-optimization/48717
1976 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1977 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1978
1979 2011-04-22 Joseph Myers <joseph@codesourcery.com>
1980
1981 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1982 definition where used.
1983
1984 2011-04-22 Jakub Jelinek <jakub@redhat.com>
1985
1986 PR c/48716
1987 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1988 TREE_STATIC variables declared inside of some OpenMP construct.
1989
1990 2011-04-22 Martin Jambor <mjambor@suse.cz>
1991
1992 PR middle-end/48585
1993 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
1994
1995 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
1996
1997 PR c/36750
1998 * c-typeck.c (pop_init_level): Do not warn about initializing
1999 with ` = {0}'.
2000
2001 2011-04-22 Alan Modra <amodra@gmail.com>
2002
2003 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2004 when returning call_cookie.
2005 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2006 pointers, to functions with no more vector args than the current
2007 function, and some non-local calls for ABI_V4.
2008 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2009 sibcall_nonlocal_aix64): Combine to ..
2010 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
2011 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2012 (sibcall_value_nonlocal_aix<mode>): ..likewise.
2013 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2014 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
2015 operand.
2016 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2017 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2018 sibcall_value_symbolic_64): Delete.
2019
2020 2011-04-21 Xinliang David Li <davidxl@google.com>
2021
2022 * cgraph.h: Remove pid.
2023 * cgraph.c: Remove pid.
2024 * value-prof.c (init_node_map): New function.
2025 (del_node_map): New function.
2026 (find_func_by_funcdef_no): New function.
2027 (gimple_ic_transform): Call new function.
2028 * cgraphunit.c (cgraph_finalize_function): Remove pid.
2029 * function.c (get_last_funcdef_no): New function.
2030 * function.h (get_last_funcdef_no): New function.
2031 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
2032 to libgcov function.
2033 (tree-profiling): Call node map init and delete function.
2034
2035 2011-04-21 Ian Lance Taylor <iant@google.com>
2036
2037 * godump.c (go_format_type): Use exported Go name for anonymous
2038 field name.
2039
2040 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2041
2042 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2043 Call builtin_function_type_list instead of builtin_function_type.
2044 (UNARY, BINARY, TRINARY, QUAD): Likewise.
2045
2046 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2047
2048 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2049 build_function_type_list instead of build_function_type.
2050 Delete variable `endlink'.
2051
2052 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2053
2054 * config/s390/s390.c (s390_init_builtins): Call
2055 build_function_type_list instead of build_function_type.
2056
2057 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2058
2059 * config/ia64/ia64.c (ia64_init_builtins): Call
2060 build_function_type_list instead of builtin_function_type.
2061
2062 2011-04-21 Easwaran Raman <eraman@google.com>
2063
2064 * cfgexpand.c (stack_var): Remove OFFSET...
2065 (add_stack_var): ...and its reference here...
2066 (expand_stack_vars): ...and here.
2067 (stack_var_cmp): Sort by descending order of size.
2068 (partition_stack_vars): Change heuristic.
2069 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2070 (dump_stack_var_partition): Add newline after each partition.
2071
2072 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
2073 Jeff Law <law@redhat.com>
2074
2075 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2076 * gengtype.c (matching_file_name_substitute): Likewise.
2077
2078 2011-04-21 Richard Guenther <rguenther@suse.de>
2079
2080 PR lto/48703
2081 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2082
2083 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
2084
2085 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2086
2087 2011-04-21 Richard Guenther <rguenther@suse.de>
2088
2089 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2090 file name.
2091
2092 2011-04-21 Richard Guenther <rguenther@suse.de>
2093
2094 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2095 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2096 Use DECL_P, not SSA_VAR_P.
2097 (ptr_derefs_may_alias_p): Likewise.
2098 (ptr_deref_may_alias_ref_p_1): Likewise.
2099 (decl_refs_may_alias_p): Likewise.
2100 (refs_may_alias_p_1): Likewise.
2101 (ref_maybe_used_by_call_p_1): Likewise.
2102 (call_may_clobber_ref_p_1): Likewise.
2103 (indirect_ref_may_alias_decl_p): Assume indirect refrences
2104 are either MEM_REF or TARGET_MEM_REF.
2105 (indirect_refs_may_alias_p): Likewise.
2106 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2107 for MEM_EXPR of indirect calls.
2108
2109 2011-04-21 Tristan Gingold <gingold@adacore.com>
2110
2111 * vmsdbgout.c (write_srccorr): Compute file length from the string.
2112 (dst_file_info_struct): Remove flen field.
2113 (lookup_filename): Remove code that set flen field.
2114
2115 2011-04-21 Tristan Gingold <gingold@adacore.com>
2116
2117 * config/ia64/ia64.c (ia64_start_function): Add a guard.
2118
2119 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
2120
2121 PR target/48708
2122 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2123 vec_extract and vec_concat for non-SSE4_1 targets.
2124
2125 2011-04-21 Richard Guenther <rguenther@suse.de>
2126
2127 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2128 return statements.
2129
2130 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2131
2132 * config/i386/cygming.h (union tree_node, TREE): Don't define or
2133 undefine.
2134 (FILE): Don't undefine.
2135
2136 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2137
2138 * config/alpha/alpha.c (struct machine_function): Use rtx, not
2139 struct rtx_def *.
2140 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2141 struct rtx_def *.
2142 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2143 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
2144 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2145 rtx_def *.
2146 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
2147 definitions where used.
2148 * config/microblaze/microblaze.h (struct microblaze_args): Use
2149 rtx, not struct rtx_def *.
2150 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2151 rtx_def *.
2152 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2153 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
2154 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2155 not struct rtx_def *.
2156 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2157 struct rtx_def *.
2158 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2159 rtx_def *.
2160 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2161
2162 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2163
2164 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2165 operand_equal_p to compare DR_BASE_ADDRESSes.
2166 (vect_check_interleaving): Likewise.
2167
2168 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2169
2170 PR target/46329
2171 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2172 for all Neon struct constants.
2173
2174 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2175
2176 * target.def (legitimate_constant_p): New hook.
2177 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2178 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2179 * doc/tm.texi: Regenerate.
2180 * hooks.h (hook_bool_mode_rtx_true): Declare.
2181 * hooks.c (hook_bool_mode_rtx_true): Define.
2182 * system.h (LEGITIMATE_CONSTANT_P): Poison.
2183 * calls.c (precompute_register_parameters): Replace uses of
2184 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
2185 (emit_library_call_value_1): Likewise.
2186 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
2187 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
2188 * ira-costs.c (scan_one_insn): Likewise.
2189 * recog.c (general_operand, immediate_operand): Likewise.
2190 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
2191 * reload1.c (init_eliminable_invariants): Likewise.
2192
2193 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2194 mode argument.
2195 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2196 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2197 argument.
2198 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2199 * config/alpha/predicates.md (input_operand): Update call to
2200 alpha_legitimate_constant_p.
2201
2202 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
2203 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
2204 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
2205 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2206 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
2207 (arm_legitimate_constant_p): New functions.
2208 (arm_cannot_force_const_mem): Make static.
2209
2210 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
2211
2212 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
2213 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
2214 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
2215 instead of bfin_legitimate_constant_p.
2216 (bfin_legitimate_constant_p): Make static. Add a mode argument.
2217 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2218
2219 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2220
2221 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
2222
2223 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
2224 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
2225 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2226 (frv_legitimate_constant_p): Make static. Add a mode argument.
2227
2228 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
2229 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
2230 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
2231
2232 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
2233 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
2234 * config/i386/i386.c (legitimate_constant_p): Rename to...
2235 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
2236 argument.
2237 (ix86_cannot_force_const_mem): Update accordingly.
2238 (ix86_legitimate_address_p): Likewise.
2239 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2240 * config/i386/i386.md: Update commentary.
2241
2242 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
2243 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
2244 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2245 (ia64_legitimate_constant_p): Make static. Add a mode argument.
2246
2247 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
2248
2249 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
2250 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
2251 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2252 (lm32_legitimate_constant_p): Make static. Add a mode argument.
2253
2254 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
2255 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
2256 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
2257
2258 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
2259 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2260 (m32r_legitimate_constant_p): New function.
2261
2262 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
2263 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
2264 LEGITIMATE_CONSTANT_P.
2265 (LEGITIMATE_CONSTANT_P): Delete.
2266 * config/m68k/m68k.c (m68k_expand_prologue): Call
2267 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
2268 (m68k_legitimate_constant_p): New function.
2269 * config/m68k/m68k.md: Update comments.
2270
2271 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
2272 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2273 (mcore_legitimate_constant_p): New function.
2274
2275 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
2276 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
2277 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
2278 Add a mode argument.
2279 (mep_legitimate_address): Update accordingly.
2280 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2281
2282 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
2283 Delete.
2284 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
2285 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
2286 static. Check OP's mode for VOIDmode.
2287 (microblaze_legitimate_constant_p): New function.
2288 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2289
2290 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
2291 * config/mips/mips.c (mips_legitimate_constant_p): New function.
2292 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
2293 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2294 * config/mips/predicates.md: Update comments.
2295
2296 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
2297 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
2298 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2299 (mmix_legitimate_constant_p): Make static, return a bool, and take
2300 a mode argument.
2301 (mmix_print_operand_address): Update accordingly.
2302
2303 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
2304 Delete.
2305 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2306 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
2307 static. Add a mode argument.
2308 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2309
2310 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
2311
2312 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
2313 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2314 (pa_legitimate_constant_p): New function.
2315
2316 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
2317
2318 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
2319 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2320 (pdp11_legitimate_constant_p): New function.
2321
2322 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
2323 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2324 (rs6000_legitimate_constant_p): New function.
2325
2326 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
2327 (rx_legitimate_constant_p): ...this.
2328 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
2329 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
2330 (rx_legitimate_constant_p): ...this.
2331 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2332 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
2333
2334 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
2335 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
2336 * config/s390/s390.c (legitimate_constant_p): Rename to...
2337 (s390_legitimate_constant_p): ...this. Make static, return a bool,
2338 and add a mode argument.
2339 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2340
2341 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
2342
2343 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
2344 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2345 (sh_legitimate_constant_p): New function.
2346
2347 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
2348 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
2349 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2350 (legitimate_constant_p): Rename to...
2351 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
2352 argument.
2353 (constant_address_p): Update accordingly.
2354
2355 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
2356 argument and return a bool.
2357 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
2358 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2359 (spu_legitimate_constant_p): Add a mode argument and return a bool.
2360 (spu_rtx_costs): Update accordingly.
2361 * config/spu/predicates.md (vec_imm_operand): Likewise.
2362
2363 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
2364
2365 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
2366 * config/v850/v850.c (v850_legitimate_constant_p): New function.
2367 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2368
2369 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
2370 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
2371 * config/vax/vax.c (legitimate_constant_p): Likewise.
2372
2373 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
2374 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2375 (xtensa_legitimate_constant_p): New function.
2376
2377 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2378
2379 * target.def (cannot_force_const_mem): Add a mode argument.
2380 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
2381 * doc/tm.texi: Regenerate.
2382 * hooks.h (hook_bool_mode_rtx_false): Declare.
2383 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
2384 (hook_bool_mode_const_rtx_true): Likewise.
2385 (hook_bool_mode_rtx_false): New function.
2386 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2387 to be non-VOID. Update call to cannot_force_const_mem.
2388 (find_reloads): Update accordingly.
2389 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2390 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2391 argument.
2392 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2393 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2394 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2395 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2396 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2397 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2398 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2399 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2400 (m68k_cannot_force_const_mem): ...this new function.
2401 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2402 argument.
2403 (mips_const_insns, mips_legitimize_const_move): Update calls.
2404 (mips_secondary_reload_class): Likewise.
2405 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2406 (pa_cannot_force_const_mem): ...this new function.
2407 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
2408 (rs6000_cannot_force_const_mem): ...this new function.
2409 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2410 argument.
2411 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2412 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2413 to...
2414 (xtensa_cannot_force_const_mem): ...this new function.
2415
2416 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2417
2418 * config/mips/mips.c (mips16_build_function_stub): Call
2419 build_function_type_list instead of build_function_type.
2420 (mips16_build_call_stub): Likewise.
2421
2422 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2423
2424 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2425 instead of build_function_type.
2426
2427 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2428
2429 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2430 instead of build_function_type.
2431
2432 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
2433
2434 PR target/48678
2435 * config/i386/i386.md (insv): Change operand 0 constraint to
2436 "register_operand". Change operand 1 and 2 constraint to
2437 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
2438 * config/i386/sse.md (sse4_1_pinsrb): Export.
2439 (sse2_pinsrw): Ditto.
2440 (sse4_1_pinsrd): Ditto.
2441 (sse4_1_pinsrq): Ditto.
2442 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
2443 * config/i386/i386.c (ix86_expand_pinsr): New.
2444
2445 2011-04-20 Easwaran Raman <eraman@google.com>
2446
2447 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2448 containing union type only with -fstrict-aliasing.
2449
2450 2011-04-20 Jim Meyering <meyering@redhat.com>
2451
2452 Remove useless if-before-free tests.
2453 * calls.c (expand_call, save_area): Likewise.
2454 * cfgcleanup.c (try_forward_edges): Likewise.
2455 * collect2.c (collect_execute): Likewise.
2456 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
2457 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2458 * coverage.c (coverage_checksum_string): Likewise.
2459 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
2460 * cselib.c (cselib_init): Likewise.
2461 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
2462 (df_set_clean_cfg): Likewise.
2463 * function.c (free_after_compilation): Likewise.
2464 * gcc.c (do_spec_1, main): Likewise.
2465 * gcov.c (create_file_names): Likewise.
2466 * gensupport.c (identify_predicable_attribute): Likewise.
2467 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
2468 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
2469 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
2470 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
2471 * ipa-pure-const.c (local_pure_const): Likewise.
2472 * ipa-reference.c (propagate): Likewise.
2473 * ira-costs.c (free_ira_costs): Likewise.
2474 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
2475 * matrix-reorg.c (mat_free): Likewise.
2476 * prefix.c (get_key_value): Likewise.
2477 * profile.c (compute_value_histograms): Likewise.
2478 * reload1.c (free_reg_equiv): Likewise.
2479 * sched-deps.c (free_deps): Likewise.
2480 * sel-sched-ir.c (fence_clear): Likewise.
2481 * sese.c (set_rename, if_region_set_false_region): Likewise.
2482 * tree-data-ref.c (free_rdg): Likewise.
2483 * tree-eh.c (lower_try_finally): Likewise.
2484 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
2485 * tree-ssa-live.c (delete_var_map): Likewise.
2486 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
2487 * tree-ssa-pre.c (phi_trans_add): Likewise.
2488
2489 2011-04-20 Jakub Jelinek <jakub@redhat.com>
2490
2491 PR tree-optimization/48611
2492 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
2493 beyond ERT_MUST_NOT_THROW region.
2494
2495 2011-04-20 Catherine Moore <clm@codesourcery.com>
2496
2497 * config/mips/mips.opt (mfix-24k): New.
2498 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
2499 * config/mips/mips.md (length): Increase by 4 for stores if
2500 fixing 24K errata.
2501 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
2502 all noreorder if fixing 24K errata.
2503 * doc/invoke.texi: Document mfix-24k.
2504
2505 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
2506
2507 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2508 quad-word modes, reduce to 9-bit index range when above 1016 limit.
2509
2510 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2511
2512 * config/arm/arm.c (arm_gen_constant): Move movw support ....
2513 (const_ok_for_op): ... to here.
2514
2515 2011-04-20 Kai Tietz <ktietz@redhat.com>
2516
2517 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2518 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2519
2520 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2521
2522 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2523
2524 2011-04-20 Richard Guenther <rguenther@suse.de>
2525
2526 PR tree-optimization/47892
2527 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2528 are if-convertible.
2529
2530 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
2531
2532 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2533
2534 2011-04-20 Tristan Gingold <gingold@adacore.com>
2535
2536 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2537
2538 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
2539
2540 PR target/18145
2541
2542 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
2543 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2544 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2545 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2546 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
2547
2548 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
2549 New prototype.
2550
2551 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
2552 (avr_asm_named_section, avr_asm_output_aligned_common,
2553 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
2554 New functions to update...
2555 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
2556 (avr_asm_init_sections): Overwrite section callbacks for
2557 data_section, bss_section.
2558 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
2559 from here to...
2560 (avr_file_end): ...here.
2561
2562 2011-04-20 Richard Guenther <rguenther@suse.de>
2563
2564 PR middle-end/48695
2565 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2566 objects and types here. Adjust for their offset before comparing.
2567
2568 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2569
2570 * tree-vect-stmts.c (vectorizable_store): Only chain one related
2571 statement per copy.
2572
2573 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2574
2575 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
2576 (GIMPLE_H): Include $(INTERNAL_FN_H).
2577 (OBJS-common): Add internal-fn.o.
2578 (internal-fn.o): New rule.
2579 * internal-fn.def: New file.
2580 * internal-fn.h: Likewise.
2581 * internal-fn.c: Likewise.
2582 * gimple.h: Include internal-fn.h.
2583 (GF_CALL_INTERNAL): New gf_mask.
2584 (gimple_statement_call): Put fntype into a union with a new
2585 internal_fn field.
2586 (gimple_build_call_internal): Declare.
2587 (gimple_build_call_internal_vec): Likewise.
2588 (gimple_call_same_target_p): Likewise.
2589 (gimple_call_internal_p): New function.
2590 (gimple_call_internal_fn): Likewise.
2591 (gimple_call_fntype): Return null for internal calls.
2592 (gimple_call_set_fntype): Assert that the function is not internal.
2593 (gimple_call_set_fn): Likewise.
2594 (gimple_call_set_fndecl): Likewise.
2595 (gimple_call_set_internal_fn): New function.
2596 (gimple_call_addr_fndecl): Handle null functions.
2597 (gimple_call_return_type): Likewise null types.
2598 * gimple.c (gimple_build_call_internal_1): New function.
2599 (gimple_build_call_internal): Likewise.
2600 (gimple_build_call_internal_vec): Likewise.
2601 (gimple_call_same_target_p): Likewise.
2602 (gimple_call_flags): Handle calls to internal functions.
2603 (gimple_call_fnspec): New function.
2604 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
2605 (gimple_has_side_effects): Handle null functions.
2606 (gimple_rhs_has_side_effects): Likewise.
2607 (gimple_call_copy_skip_args): Handle calls to internal functions.
2608 * cfgexpand.c (expand_call_stmt): Likewise.
2609 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2610 * gimple-fold.c (gimple_fold_call): Handle null functions.
2611 (gimple_fold_stmt_to_constant_1): Don't fold
2612 calls to internal functions.
2613 * gimple-low.c (gimple_check_call_args): Handle calls to internal
2614 functions.
2615 * gimple-pretty-print.c (dump_gimple_call): Likewise.
2616 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2617 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2618 (do_warn_unused_result): Likewise.
2619 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2620 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2621 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2622 the target of a call.
2623 (initialize_hash_element): Update accordingly.
2624 (hashable_expr_equal_p): Use gimple_call_same_target_p.
2625 (iterative_hash_hashable_expr): Handle calls to internal functions.
2626 (print_expr_hash_elt): Likewise.
2627 * tree-ssa-pre.c (can_value_number_call): Likewise.
2628 (eliminate): Handle null functions.
2629 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2630 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2631 (find_func_aliases): Likewise.
2632 * value-prof.c (gimple_ic_transform): Likewise.
2633 (gimple_indirect_call_to_profile): Likewise.
2634 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2635 * lto-streamer-out.c (output_gimple_stmt): Likewise.
2636
2637 2011-04-19 Jan Hubicka <jh@suse.cz>
2638
2639 * ipa-inline-transform.c (save_inline_function_body): Add comments.
2640 * ipa-inline.c (inline_small_functions): Compute summaries first,
2641 populate heap later.
2642
2643 2011-04-19 Jan Hubicka <jh@suse.cz>
2644
2645 * cgraph.h (save_inline_function_body): Remove.
2646 * ipa-inline-transform.c: New file, broke out of...
2647 * ipa-inline.c: ... this one; Update toplevel comment.
2648 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
2649 make global.
2650 (update_noncloned_frequencies): Move to ipa-inline-transform.c
2651 (cgraph_mark_inline_edge): Rename to inline_call; move to
2652 ipa-inline-transform.c.
2653 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
2654 move to ipa-inline-transform.c
2655 (recursive_inlining, inline_small_functions, flatten_function,
2656 ipa_inline, inline_always_inline_functions,
2657 early_inline_small_functions): Update.
2658 (inline_transform): Move to ipa-inline-transform.c.
2659 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
2660 Declare.
2661 * Makefile.in (ipa-inline-transform.o): New file.
2662 * cgraphunit.c (save_inline_function_body): Move to
2663 ipa-inline-transform.c
2664
2665 2011-04-19 DJ Delorie <dj@redhat.com>
2666
2667 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2668 registers if we already know there aren't any.
2669 (m32c_emit_epilogue): Don't emit a barrier here.
2670 (m32c_emit_eh_epilogue): Likewise.
2671 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2672 operands at expand time.
2673 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2674 int" wchar type.
2675 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2676 duplicates. Provide aliases instead.
2677 * config/m32c/prologue.md (eh_return): Emit a barrier here.
2678 (eh_epilogue): Add a "(return)" here as a hint to other parts of
2679 the compiler.
2680
2681 2011-04-19 Anatoly Sokolov <aesok@post.ru>
2682
2683 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2684 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2685 (general_or_i64_p, sparc_register_move_cost): New function.
2686
2687 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2688
2689 * doc/install.texi (Configuration, --enable-threads): Remove mach.
2690 Add lynx, mipssde. Sort table.
2691
2692 2011-04-19 Xinliang David Li <davidxl@google.com>
2693
2694 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2695 not negative.
2696
2697 2011-04-19 Jakub Jelinek <jakub@redhat.com>
2698
2699 PR target/48678
2700 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2701 is a SUBREG with non-MODE_INT mode inside of it.
2702
2703 2011-04-19 Martin Jambor <mjambor@suse.cz>
2704
2705 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2706 also according to actual contants.
2707 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2708 (gimple_fold_call): Use it.
2709 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2710
2711 2011-04-19 Martin Jambor <mjambor@suse.cz>
2712
2713 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2714 non-pointer assignments.
2715
2716 2011-04-19 Martin Jambor <mjambor@suse.cz>
2717
2718 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2719 account anc_offset and otr_type from the indirect edge info.
2720 * ipa-prop.c (get_ancestor_addr_info): New function.
2721 (compute_complex_ancestor_jump_func): Assignment analysis moved to
2722 get_ancestor_addr_info, call it.
2723 (ipa_note_param_call): Do not initialize information about polymorphic
2724 calls, return the indirect call graph edge. Remove the last
2725 parameter, adjust all callers.
2726 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2727 parameters. Initialize polymorphic information in the indirect edge.
2728
2729 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2730
2731 PR lto/48148
2732 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2733 the types if they have different enumeration identifiers.
2734
2735 2011-04-19 Jan Hubicka <jh@suse.cz>
2736
2737 * cgraph.h (cgraph_optimize_for_size_p): Declare.
2738 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2739 * predict.c (cgraph_optimize_for_size_p): Break out from ...
2740 (optimize_function_for_size_p) ... here.
2741
2742 2011-04-19 Richard Guenther <rguenther@suse.de>
2743
2744 PR lto/48207
2745 * tree.c (free_lang_data): Do not reset the decl-assembler-name
2746 langhook.
2747
2748 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2749
2750 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2751 if DECL_NO_INLINE_WARNING_P is set on the function.
2752
2753 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
2754
2755 PR fortran/47976
2756 * reload1.c (inc_for_reload): Return void. All callers changed.
2757 (emit_input_reload_insns): Don't try to delete previous output
2758 reloads to a register, or record spill_reg_store for autoincs.
2759
2760 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
2761
2762 * gengtype.h: Updated copyright year.
2763 (struct input_file_st): Add inpisplugin field.
2764 (type_fileloc): New function.
2765 * gengtype.c
2766 (write_typed_struct_alloc_def): Add gcc_assert.
2767 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2768 (write_typed_alloc_defns): Don't output for plugin files.
2769 (input_file_by_name): Clear inpisplugin field.
2770 (main): Set inpisplugin field for plugin files.
2771
2772 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
2773
2774 * gengtype-state.c (string_eq): New.
2775 (read_state): Use string_eq instead of strcmp when creating the
2776 state_ident_tab.
2777
2778 2011-04-19 Wei Guozhi <carrot@google.com>
2779
2780 PR target/47855
2781 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2782 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2783 linkage.
2784 * config/arm/constraints.md (Uu): New constraint.
2785 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2786
2787 2011-04-19 Tristan Gingold <gingold@adacore.com>
2788
2789 * config.gcc (-*-*-*vms): Added.
2790 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2791 definitions moved.
2792 * config/vms/vms-ld.c: New file.
2793 * config/vms/vms-ar.c: New file.
2794 * config/vms/t-vmsnative: New file.
2795
2796 2011-04-18 Xinliang David Li <davidxl@google.com>
2797
2798 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2799
2800 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2801
2802 PR middle-end/48661
2803 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2804 if TREE_TYPE (v) is non-NULL.
2805
2806 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2807 gimple_get_virt_mehtod_for_binfo.
2808 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2809 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2810 callers.
2811 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2812
2813 2011-04-18 Michael Matz <matz@suse.de>
2814 Steve Ellcey <sje@cup.hp.com>
2815
2816 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2817 use its mode as source mode if it isn't VOIDmode.
2818
2819 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
2820
2821 * doc/passes.texi: Fill crossref nodes.
2822
2823 2011-04-18 Jim Meyering <meyering@redhat.com>
2824
2825 Fix doubled-word typos in comments and strings
2826 * config/alpha/vms-unwind.h: s/for for/for/
2827 * config/arm/unwind-arm.h: Likewise.
2828 * config/microblaze/microblaze.c: Likewise.
2829 * config/sh/constraints.md: s/in in/in/
2830 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2831
2832 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
2833
2834 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2835 (AVX_FLOAT_MODE_P): Ditto.
2836 (AVX128_VEC_FLOAT_MODE_P): Ditto.
2837 (AVX256_VEC_FLOAT_MODE_P): Ditto.
2838 (AVX_VEC_FLOAT_MODE_P): Ditto.
2839 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2840 (UNSPEC_MASKSTORE): Ditto.
2841 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2842 Merge from <sse>_movmsk<ssemodesuffix> and
2843 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
2844 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
2845 iterator.
2846 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2847 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2848 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2849
2850 2011-04-18 Jan Hubicka <jh@suse.cz>
2851
2852 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2853
2854 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2855 (want_inline_function_called_once_p): Break out the logic from
2856 ipa_inline.
2857 (edge_badness): Ensure that profile is not misupdated.
2858 (lookup_recursive_calls): Prioritize by call frequencies.
2859 (inline_small_functions): Move program size estimates here;
2860 actually process whole queue even when unit growth has been
2861 met. (to properly compute inline_failed reasons and for the
2862 case unit size decrease.) Revisit comments on recursive inlining.
2863 (ipa_inline): Remove unit summary code; first inline hot calls
2864 of functions called once, cold calls next.
2865 (order, nnodes): Remove unused variables.
2866 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2867 (GTFILES): Remove ipa-inline.c
2868 * sel-sched.c (fill_insns): Silence uninitialized var warning.
2869
2870 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2871
2872 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2873
2874 2011-04-18 Jie Zhang <jie@codesourcery.com>
2875 Richard Earnshaw <rearnsha@arm.com>
2876
2877 * arm.c (neon_builtin_type_bits): Remove.
2878 (typedef enum neon_builtin_mode): New.
2879 (T_MAX): Don't define.
2880 (typedef enum neon_builtin_datum): Remove bits, codes[],
2881 num_vars and base_fcode. Add mode, code and fcode.
2882 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2883 VAR10): Change accordingly.
2884 (neon_builtin_data[]): Change accordingly
2885 (arm_init_neon_builtins): Change accordingly.
2886 (neon_builtin_compare): Remove.
2887 (locate_neon_builtin_icode): Remove.
2888 (arm_expand_neon_builtin): Change accordingly.
2889
2890 * arm.h (enum arm_builtins): Move to ...
2891 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2892
2893 * arm.c (arm_builtin_decl): Declare.
2894 (TARGET_BUILTIN_DECL): Define.
2895 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2896 (arm_builtin_decls[]): New.
2897 (arm_init_neon_builtins): Store builtin declarations in
2898 arm_builtin_decls[].
2899 (arm_init_tls_builtins): Likewise.
2900 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
2901 (arm_builtin_decl): New.
2902
2903 2011-04-18 Richard Guenther <rguenther@suse.de>
2904
2905 * tree.c (upper_bound_in_type): Build properly canonicalized
2906 INTEGER_CSTs.
2907 (lower_bound_in_type): Likewise.
2908
2909 2011-04-18 Richard Guenther <rguenther@suse.de>
2910
2911 * gimple.h (gimple_call_addr_fndecl): New function.
2912 (gimple_call_fndecl): Use it.
2913 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2914 for direct calls.
2915 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2916 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2917
2918 2011-04-18 Richard Guenther <rguenther@suse.de>
2919
2920 PR middle-end/48650
2921 * tree.c (build_string): STRING_CST is now derived from tree_typed.
2922
2923 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2924
2925 PR lto/48492
2926 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2927 DECL_IN_CONSTANT_POOL without RTL.
2928
2929 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
2930 Ira Rosen <ira.rosen@linaro.org>
2931
2932 PR target/48252
2933 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2934 to match neon_vzip/vuzp/vtrn_internal.
2935 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2936 outputs explicitly dependent on both inputs.
2937 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2938
2939 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2940
2941 PR tree-optimization/48616
2942 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2943 whether the shift is by scalar or vector based on whether all SLP
2944 scalar stmts have the same rhs.
2945
2946 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2947
2948 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2949 memory operands.
2950
2951 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2952
2953 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2954 registers.
2955
2956 2011-04-17 Jan Hubicka <jh@suse.cz>
2957
2958 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
2959 * cgrpahunit.c (cgraph_finalize_function): Do not set
2960 finalized_by_frontend.
2961 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2962 finalized_by_frontend.
2963
2964 2011-04-17 Jan Hubicka <jh@suse.cz>
2965
2966 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2967 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2968 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
2969 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2970 method.
2971 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2972 gimple-fold.c
2973 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2974
2975 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2976
2977 PR lto/48538
2978 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2979 is non-null before accessing it.
2980 (input_cgraph): Remove trailing spaces.
2981
2982 2011-04-17 Revital Eres <revital.eres@linaro.org>
2983
2984 * params.def (sms-min-sc): New param flag.
2985 * modulo-sched.c (sms_schedule): Use it.
2986 * doc/invoke.texi (sms-min-sc): Document it.
2987
2988 2011-04-17 Jan Hubicka <jh@suse.cz>
2989
2990 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2991 present, also set gimple_call_set_cannot_inline.
2992 * ipa-inline.c: Update toplevel comment.
2993 (MAX_TIME): Remove.
2994 (cgraph_clone_inlined_nodes): Fix linebreaks.
2995 (cgraph_check_inline_limits): Restructure to ...
2996 (caller_growth_limits): ... this one; be more tolerant
2997 on growth in nested inline chains; add explanatory comment;
2998 fix stack accounting thinko introduced by previous patch.
2999 (cgraph_default_inline_p): Remove.
3000 (report_inline_failed_reason): New function.
3001 (can_inline_edge_p): New function.
3002 (can_early_inline_edge_p): New function.
3003 (leaf_node_p): Move upwards in file.
3004 (want_early_inline_function_p): New function.
3005 (want_inline_small_function_p): New function.
3006 (want_inline_self_recursive_call_p): New function.
3007 (cgraph_edge_badness): Rename to ...
3008 (edge_badness) ... this one; fix linebreaks.
3009 (update_edge_key): Update call of edge_baddness; add
3010 detailed dump about queue updates.
3011 (update_caller_keys): Use can_inline_edge_p and
3012 want_inline_small_function_p.
3013 (cgraph_decide_recursive_inlining): Rename to...
3014 (recursive_inlining): Use can_inline_edge_p and
3015 want_inline_self_recursive_call_p; simplify and remove no longer
3016 valid FIXME.
3017 (cgraph_set_inline_failed): Remove.
3018 (add_new_edges_to_heap): Use can_inline_edge_p and
3019 want_inline_small_function_p.
3020 (cgraph_decide_inlining_of_small_functions): Rename to ...
3021 (inline_small_functions): ... this one; cleanup; use
3022 can/want predicates; cleanup debug ouput; work edges till fibheap
3023 is exhausted and do not stop once unit growth is reached; remove
3024 later loop processing remaining edges.
3025 (cgraph_flatten): Rename to ...
3026 (flatten_function): ... this one; use can_inline_edge_p
3027 and can_early_inline_edge_p predicates.
3028 (cgraph_decide_inlining): Rename to ...
3029 (ipa_inline): ... this one; remove unreachable nodes before
3030 inlining functions called once; simplify the pass.
3031 (cgraph_perform_always_inlining): Rename to ...
3032 (inline_always_inline_functions): ... this one; use
3033 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
3034 (cgraph_decide_inlining_incrementally): Rename to ...
3035 (early_inline_small_functions): ... this one; simplify
3036 using new predicates; cleanup; make dumps prettier.
3037 (cgraph_early_inlining): Rename to ...
3038 (early_inliner): newer inline regular functions into always-inlines;
3039 fix updating of call stmt summaries.
3040 (pass_early_inline): Update for new names.
3041 (inline_transform): Fix formating.
3042 (gate_cgraph_decide_inlining): Rename to ...
3043 (pass_ipa_inline): ... this one.
3044 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3045 * ipa-inline-analysis.c (dump_inline_summary): Update.
3046 (compute_inline_parameters): Do not compute disregard_inline_limits;
3047 look for mismatching arguments.
3048 (estimate_growth): Fix handlig of non-trivial self recursion.
3049 (inline_read_summary): Do not read info->disregard_inline_limits.
3050 (inline_write_summary): Do not write info->disregard_inline_limits.
3051 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3052 and move all checks into can_inline_edge_p predicate; re-enable code
3053 comparing optimization levels.
3054 (expand_call_inline): Do not test inline_forbidden_into_p.
3055 * Makefile.in (ipa-inline.o): Update arguments.
3056
3057 2011-04-17 Revital Eres <revital.eres@linaro.org>
3058
3059 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3060
3061 2011-04-17 Revital Eres <revital.eres@linaro.org>
3062
3063 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3064
3065 2011-04-17 Michael Matz <matz@suse.de>
3066
3067 PR tree-optimization/48622
3068 PR lto/48645
3069 * ipa-inline-analysis.c (inline_read_summary): Read size/time
3070 in same order as they're written.
3071
3072 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3073
3074 * config/pa/predicates.md: Reorganize and simplify predicates.
3075 Eliminate duplicate code checks.
3076 (arith_operand): Rename to arith14_operand
3077 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3078 * config/pa/pa.md: Use renamed operands.
3079 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3080 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3081 arith11_operand, adddi3_operand, indexed_memory_operand,
3082 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3083 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3084 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3085 move_dest_operand, move_src_operand, prefetch_cc_operand,
3086 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3087 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3088 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3089 div_operand, int5_operand, movb_comparison_operator,
3090 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3091 arith_double_operand, ireg_operand, lhs_lshift_operand,
3092 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3093 integer_store_memory_operand): Likewise.
3094 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3095 (integer_store_memory_operand, read_only_operand,
3096 function_label_operand, borx_reg_operand,
3097 non_hard_reg_operand): Likewise.
3098 (eq_neq_comparison_operator): Delete unused operator.
3099 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3100 function_label_operand.
3101 (emit_move_sequence): Likewise.
3102
3103 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
3104
3105 * config/i386/sse.md (sseunpackmode): New mode attribute.
3106 (ssepackmode): Ditto.
3107 (vec_pack_trunc_<mode>): Macroize expander from
3108 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3109 (vec_unpacks_lo_<mode>): Macroize expander from
3110 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3111 (vec_unpacks_hi_<mode>): Macroize expander from
3112 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3113 (vec_unpacku_lo_<mode>): Macroize expander from
3114 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3115 (vec_unpacku_hi_<mode>): Macroize expander from
3116 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3117 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3118 ix86_expand_sse4_unpack.
3119 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3120
3121 2011-04-16 Jan Hubicka <jh@suse.cz>
3122
3123 * cgraphbuild.c: Include ipa-inline.h.
3124 (reset_inline_failed): Use initialize_inline_failed.
3125 * cgraph.c: Include ipa-inline.h.
3126 (cgraph_create_node_1): Do not initialize estimated_growth.
3127 (initialize_inline_failed): More to ipa-inline-analysis.c
3128 (dump_cgraph_node): Do not dump inline flags.
3129 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3130 and disregard_inline_limits flags.
3131 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3132 time, size, estimated_growth.
3133 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3134 Update.
3135 * cgraphunit.c (cgraph_decide_is_function_needed): Use
3136 DECL_DISREGARD_INLINE_LIMITS.
3137 (cgraph_analyze_function): Do not initialize
3138 node->local.disregard_inline_limits.
3139 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3140 inlinable, versionable and disregard_inline_limits.
3141 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3142 cgraph_check_inline_limits, cgraph_default_inline_p,
3143 cgraph_edge_badness, update_caller_keys, update_callee_keys,
3144 add_new_edges_to_heap): Update.
3145 (cgraph_decide_inlining_of_small_function): Update; set
3146 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
3147 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3148 cgraph_decide_inlining_incrementally): Update.
3149 * ipa-inline.h (inline_summary): Add inlinable, versionable,
3150 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3151 time, size and estimated_growth parameters.
3152 (estimate_edge_growth): Update.
3153 (initialize_inline_failed): Declare.
3154 * ipa-split.c: Include ipa-inline.h
3155 (execute_split_functions): Update.
3156 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3157 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3158 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3159 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3160 estimated_growth to INT_MIN.
3161 (inline_node_duplication_hook): Likewise.
3162 (dump_inline_summary): Dump new fields.
3163 (compute_inline_parameters): Update.
3164 (estimate_edge_time, estimate_time_after_inlining,
3165 estimate_size_after_inlining, estimate_growth, inline_read_summary,
3166 inline_write_summary):
3167 (initialize_inline_failed): Move here from cgraph.c.
3168 * tree-sra.c: Include ipa-inline.h.
3169 (ipa_sra_preliminary_function_checks): Update.
3170 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3171 ipa-inline.h.
3172
3173 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
3174
3175 * config/i386/sse.md (V16): New mode iterator.
3176 (VI1, VI8): Ditto.
3177 (AVXMODEQI, AVXMODEDI): Remove.
3178 (sse2, sse3): New mode attribute.
3179 (mov<mode>): Use V16 mode iterator.
3180 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3181 (push<mode>1): Use V16 mode iterator.
3182 (movmisalign<mode>): Ditto.
3183 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3184 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
3185 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3186 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
3187 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
3188 avx_movdqu<avxmodesuffix>.
3189 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
3190 *avx_movdqu<avxmodesuffix>.
3191 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
3192 avx_lddqu<avxmodesuffix>.
3193 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
3194 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
3195 avx_movnt<AVXMODEDI:mode>.
3196 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
3197 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
3198
3199 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
3200
3201 PR target/48629
3202 * haifa-sched.c (prune_ready_list, schedule_block): Use
3203 sched_pressure_p rather than flag_sched_pressure.
3204
3205 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
3206
3207 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3208 cgraph_get_node instead of cgraph_get_create_node.
3209
3210 2011-04-15 Jakub Jelinek <jakub@redhat.com>
3211
3212 * cfgexpand.c (expand_debug_expr): Use
3213 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3214
3215 2011-04-15 Michael Matz <matz@suse.de>
3216
3217 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
3218 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
3219 * function.c (gimplify_parameters): Ditto.
3220 * gimplify.c (gimplify_vla_decl): Ditto.
3221
3222 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
3223 (gimple_call_set_alloca_for_var): New inline function.
3224 (gimple_call_alloca_for_var_p): Ditto.
3225 * gimple.c (gimple_build_call_from_tree): Remember
3226 CALL_ALLOCA_FOR_VAR_P state.
3227 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
3228
3229 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3230 calls if they were for VLA objects.
3231
3232 2011-04-15 Martin Jambor <mjambor@suse.cz>
3233
3234 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3235 of ADR_EXPRs.
3236
3237 2011-04-15 Martin Jambor <mjambor@suse.cz>
3238
3239 PR middle-end/48601
3240 * tree-emutls.c (lower_emutls_function_body): Call
3241 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
3242 result is non-NULL.
3243
3244 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
3245
3246 * c-decl.c (detect_field_duplicates): Call
3247 objc_detect_field_duplicates instead of objc_get_interface_ivars.
3248
3249 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
3250
3251 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
3252 * gimple.c (gimple_asm_clobbers_memory_p): Define.
3253 * ipa-pure-const.c (check_stmt): Call it.
3254 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
3255
3256 2011-04-15 Richard Guenther <rguenther@suse.de>
3257
3258 PR tree-optimization/48290
3259 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
3260 Properly decide inhibiting propagation based on the valueized
3261 operand. Do loop-closed SSA form preserving here ...
3262 (init_copy_prop): ... not here.
3263
3264 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
3265
3266 PR target/48612
3267 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3268 (*ieee_smax<mode>3): Likewise.
3269
3270 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3271
3272 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3273 Replace match_operand with match_dup for the third operand in
3274 these expanders.
3275
3276 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3277
3278 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
3279 to track processing of conditionals. Update all callers.
3280 (try_combine, simplify_if_then_else): Update.
3281
3282 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3283
3284 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3285 -fsched-pressure.
3286
3287 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
3288
3289 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3290 instead of match_operand for operand 3.
3291
3292 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
3293
3294 * recog.h (insn_operand_data): Add an "allows_mem" field.
3295 * genoutput.c (output_operand_data): Initialize it.
3296 * optabs.c (maybe_legitimize_operand_same_code): New function.
3297 (maybe_legitimize_operand): Use it when matching the original
3298 op->value.
3299
3300 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
3301
3302 * gimplify.c: Fix issues in comments throughout.
3303 (voidify_wrapper_expr): Fix long line.
3304 (build_stack_save_restore): Likewise.
3305 (gimplify_loop_expr): Likewise.
3306 (gimplify_compound_lval): Likewise.
3307 (gimplify_init_ctor_eval): Likewise.
3308 (gimplify_modify_expr_rhs): Likewise.
3309 (omp_notice_threadprivate_variable): Likewise.
3310
3311 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
3312
3313 * cfgexpand.c (expand_call_stmt): Convert the function type to the
3314 original one if this is not a builtin function.
3315
3316 2011-04-14 Jakub Jelinek <jakub@redhat.com>
3317
3318 PR target/48605
3319 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
3320 offset it as needed based on top 2 bits in operands[3], change
3321 MEM mode to SFmode and mask those 2 bits away from operands[3].
3322
3323 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3324
3325 * c-parser.c (c_parser_objc_protocol_definition): Updated for
3326 change from objc_declare_protocols() to objc_declare_protocol().
3327
3328 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
3329
3330 * config/i386/sse.md (sse4_1): New mode attribute.
3331 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
3332 avx_blend<ssemodesuffix><avxmodesuffix> and
3333 sse4_1_blend<ssemodesuffix> using VF mode iterator.
3334 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
3335 avx_blendv<ssemodesuffix><avxmodesuffix> and
3336 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
3337 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
3338 avx_dp<ssemodesuffix><avxmodesuffix> and
3339 sse4_1_dp<ssemodesuffix> using VF mode iterator.
3340 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
3341 (sse4_1_packusdw): Merge with *avx_packusdw.
3342 (sse4_1_pblendvb): Merge with *avx_pblendvb.
3343 (sse4_1_pblendw): Merge with *avx_pblendw.
3344 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
3345 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
3346 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
3347 VF mode iterator.
3348 (sse4_1_round<ssescalarmodesuffix>): Merge with
3349 *avx_round<ssescalarmodesuffix>.
3350 (aesenc): Merge with *avx_aesenc.
3351 (aesenclast): Merge with *avx_aesenclast.
3352 (aesdec): Merge with *avx_aesdec.
3353 (aesdeclast): Merge with *avx_aesdeclast.
3354 (pclmulqdq): Merge with *pclmulqdq.
3355 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
3356 New predicate.
3357 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3358
3359 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
3360
3361 PR middle-end/48608
3362 * cfgexpand.c (get_decl_align_unit): Renamed to ...
3363 (align_local_variable): This. Update DECL_ALIGN.
3364 (add_stack_var): Updated.
3365 (expand_one_stack_var): Likewise.
3366
3367 2011-04-14 Richard Guenther <rguenther@suse.de>
3368
3369 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
3370 Remove.
3371 (dse_initialize_block_local_data, dse_leave_block,
3372 record_voperand_set, get_stmt_uid): Likewise.
3373 (dse_possible_dead_store_p): Allow any kind of killing stmt.
3374 (dse_optimize_stmt): Remove voperand set handling code.
3375 Simplify and improve to handle any kind of killing stmt.
3376 (dse_record_phi): Remove.
3377 (dse_enter_block): Simplify.
3378 (tree_ssa_dse): Likewise.
3379 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
3380
3381 2011-04-14 Jan Hubicka <jh@suse.cz>
3382
3383 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
3384 * cgraph.h (struct inline_summary): Move to ipa-inline.h
3385 (cgraph_local_info): Remove inline_summary.
3386 * ipa-cp.c: Include ipa-inline.h.
3387 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3388 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3389 accesor.
3390 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3391 (input_overwrite_node): Do not set inline summary.
3392 (input_node): Do not stream inline summary.
3393 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3394 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3395 growth; we do not have inline parameters computed for that anyway.
3396 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3397 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3398 (inline_summary_t): New type and VECtor.
3399 (debug_inline_summary, dump_inline_summaries): Declare.
3400 (inline_summary): Use VOCtor.
3401 (estimate_edge_growth): Kill hack computing call stmt size directly.
3402 * lto-section-in.c (lto_section_name): Add inline section.
3403 * ipa-inline-analysis.c: Include lto-streamer.h
3404 (node_removal_hook_holder, node_duplication_hook_holder): New holders
3405 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3406 (inline_summary_vec): Define.
3407 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3408 dump_inline_summaries): New functions.
3409 (estimate_function_body_sizes): Properly compute size/time of outgoing
3410 calls.
3411 (compute_inline_parameters): Alloc inline_summary; do not compute
3412 size/time of incomming calls.
3413 (estimate_edge_time): Avoid missing time summary hack.
3414 (inline_read_summary): Read inline summary info.
3415 (inline_write_summary): Write inline summary info.
3416 (inline_free_summary): Free all hooks and inline summary vector.
3417 * lto-streamer.h: Add LTO_section_inline_summary section.
3418 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
3419 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
3420
3421 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3422
3423 * tree-vectorizer.h (vect_strided_store_supported): Add a
3424 HOST_WIDE_INT argument.
3425 (vect_strided_load_supported): Likewise.
3426 (vect_permute_store_chain): Return void.
3427 (vect_transform_strided_load): Likewise.
3428 (vect_permute_load_chain): Delete.
3429 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
3430 count argument. Check that the count is a power of two.
3431 (vect_strided_load_supported): Likewise.
3432 (vect_permute_store_chain): Return void. Update after above changes.
3433 Assert that the access is supported.
3434 (vect_permute_load_chain): Likewise.
3435 (vect_transform_strided_load): Return void.
3436 * tree-vect-stmts.c (vectorizable_store): Update calls after
3437 above interface changes.
3438 (vectorizable_load): Likewise.
3439 (vect_analyze_stmt): Don't check for strided powers of two here.
3440
3441 2011-04-14 Richard Guenther <rguenther@suse.de>
3442
3443 PR tree-optimization/48590
3444 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3445 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3446 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
3447 BUILT_IN_STACK_SAVE.
3448 * tree-ssa-dce.c (propagate_necessity): Handle
3449 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3450
3451 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3452
3453 * c-parser.c (c_parser_objc_class_declaration): Updated call to
3454 objc_declare_class.
3455
3456 2011-04-14 Richard Guenther <rguenther@suse.de>
3457
3458 * tree.h (get_object_alignment_1): Declare.
3459 * builtins.c (get_object_alignment_1): Split out worker from ...
3460 (get_object_alignment): ... here.
3461 * fold-const.c (get_pointer_modulus_and_residue): Use
3462 get_object_alignment_1.
3463
3464 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3465
3466 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
3467 type parameter.
3468 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
3469 parameter. Generalise code to handle arrays as well as vectors.
3470 (vect_setup_realignment): Update accordingly.
3471 * tree-vect-stmts.c (vectorizable_store): Likewise.
3472 (vectorizable_load): Likewise.
3473
3474 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3475
3476 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
3477 within the per-copy loop.
3478
3479 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3480
3481 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
3482 in the dump file.
3483
3484 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3485
3486 * doc/options.texi (Negative): Explicitly mention that the
3487 Negative chain must be circular.
3488
3489 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
3490
3491 * function.h (block_chainon): Declare.
3492 * function.c (block_chainon): Define.
3493
3494 2011-04-14 Anatoly Sokolov <aesok@post.ru>
3495 Eric Weddington <eric.weddington@atmel.com>
3496 Georg-Johann Lay <avr@gjlay.de>
3497
3498 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
3499 New Includes
3500 (avr_init_builtins, avr_expand_builtin,
3501 avr_expand_delay_cycles, avr_expand_unop_builtin,
3502 avr_expand_binop_builtin ): New functions.
3503 (avr_builtin_id): New enum
3504 (struct avr_builtin_description): New struct
3505 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
3506 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3507
3508 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
3509 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
3510 UNSPECV_DELAY_CYCLES): new enumeration values
3511 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
3512 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
3513 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
3514 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
3515 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
3516 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
3517 "fmulsu"): New insns
3518
3519 * config/avr/avr-c.c: fix line endings
3520 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
3521 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
3522 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
3523 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
3524 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
3525
3526 * doc/extend.texi (AVR Built-in Functions): New node
3527 (Target Builtins): Add documentation of AVR
3528 built-in functions.
3529
3530 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
3531
3532 PR target/44643
3533 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
3534 alone. Error if non-const data has attribute progmem.
3535
3536 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3537
3538 * tree.h (struct tree_constructor): Include tree_typed instead of
3539 tree_common.
3540 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
3541 TS_TYPED instead of TS_COMMON.
3542
3543 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
3544
3545 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
3546 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
3547 (sse2_psadbw): Merge with *avx_psadbw.
3548 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
3549 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
3550 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
3551 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
3552 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
3553 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
3554 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
3555 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
3556 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
3557 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
3558 (ssse3_palignrti): Merge with *avx_palignrti.
3559
3560 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3561
3562 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
3563 * tree-ssanames.c (fini_ssanames): VEC_free it.
3564 (make_ssa_name_fn): Update for VECness of free_ssanames.
3565 (release_ssa_name, release_dead_ssa_names): Likewise.
3566 * tree.h (struct tree_ssa_name): Include tree_typed instead of
3567 tree_common.
3568 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
3569 TS_TYPED instead of TS_COMMON.
3570
3571 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3572
3573 * postreload-gcse.c (gcse_after_reload_main): Add calls to
3574 statistics_counter_event.
3575 * tree-ssa-copyrename.c (stats): Define.
3576 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
3577 statistics_counter_event.
3578 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
3579 (bswap_stats, widen_mul_stats): Define.
3580 (insert_reciprocals): Increment rdivs_inserted.
3581 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
3582 rfuncs_inserted. Add calls to statistics_counter_event.
3583 (execute_cse_sincos_1): Increment inserted.
3584 (execute_cse_sincos): Zeroize sincos_stats. Add call to
3585 statistics_counter_event.
3586 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
3587 of bswap_stats. Add calls to statistics_counter_event.
3588 (convert_mult_to_widen): Increment widen_mults_inserted.
3589 (convert_plusminus_to_widen): Increment maccs_inserted.
3590 (convert_mult_to_fma): Increment fmas_inserted.
3591 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
3592 calls to statistics_counter_event.
3593
3594 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
3595
3596 PR rtl-optimization/48455
3597 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
3598 `temp_costs->mem_cost'.
3599
3600 2011-04-13 Jan Hubicka <jh@suse.cz>
3601
3602 * ipa-inline.h: New file.
3603 * ipa-inline-analysis.c: New file. Broken out of ...
3604 * ipa-inline.c: ... this file; update toplevel comment;
3605 include ipa-inline.h
3606 (inline_summary): Move to ipa-inline.h
3607 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
3608 ipa-inline-analysis.c.
3609 (cgraph_estimate_time_after_inlining): Rename to
3610 estiamte_time_after_inlining; move to ipa-inline-analysis.c
3611 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3612 to estimate_edge_growth.
3613 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3614 rename to estimate_size_after_inlining.
3615 (cgraph_mark_inline_edge): Update for new naming convention.
3616 (cgraph_check_inline_limits): Likewise.
3617 (cgraph_edge_badness): Likewise.
3618 (cgraph_decide_recursive_inlining): Likewise.
3619 (cgraph_decide_inlining_of_small_functions): Likewise.
3620 (cgraph_decide_inlining_incrementally): Likewise.
3621 (cgraph_estimate_growth): Rename to estimate_growth; move to
3622 ipa-inline-analysis.c.
3623 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3624 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3625 (compute_inline_parameters): Likewise.
3626 (compute_inline_parameters_for_current): Likewise.
3627 (pass_inline_parameters): Likewise.
3628 (inline_indirect_intraprocedural_analysis): Likewise.
3629 (analyze_function): Rename to inline_analyze_function; likewise.
3630 (add_new_function): Move to ipa-inline-analysis.c.
3631 (inline_generate_summary): Likewise.
3632 (inline_read_summary): Likewise.
3633 (inline_write_summary): Likewise.
3634 * Makefile.in (ipa-inline-analysis.c): New file.
3635
3636 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3637
3638 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
3639 * configure: Regenerate.
3640
3641 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3642
3643 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
3644 instead of tree_common.
3645 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
3646 Likewise.
3647 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
3648 TS_TYPED rather than TS_COMMON.
3649 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
3650
3651 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
3652
3653 PR target/45263
3654 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
3655 r20 around calls of __tablejump_elpm__
3656
3657 2011-04-13 Jakub Jelinek <jakub@redhat.com>
3658
3659 PR middle-end/48591
3660 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
3661 NULL.
3662 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
3663
3664 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
3665
3666 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3667 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3668 (cfi_vec): New typedef.
3669 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3670 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3671 (cie_cfi_vec): New static variable.
3672 (cie_cfi_head): Delete.
3673 (add_cfi): Accept a cfi_vec * as first argument. All callers and
3674 declaration changed. Use vector rather than list operations.
3675 (new_cfi): Don't initialize the dw_cfi_next field.
3676 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3677 rather than list operations.
3678 (lookup_cfa): Use vector rather than list operations.
3679 (output_cfis): New argument upto. Accept a cfi_vec rather than
3680 a dw_cfi_ref list head as argument. All callers changed.
3681 Iterate over the vector using upto as a maximum index.
3682 (output_all_cfis): New static function.
3683 (output_fde): Use vector rather than list operations. Use the
3684 new upto argument for output_cfis rather than manipulating a
3685 list.
3686 (dwarf2out_begin_prologue): Change initializations to match
3687 new struct members.
3688 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3689 from the vector length rather than searching for the end of a list.
3690 Use output_all_cfis.
3691 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3692
3693 2011-04-13 Nick Clifton <nickc@redhat.com>
3694
3695 * config/rx/rx.md (movmemsi): Do not use this pattern when
3696 volatile pointers are involved.
3697
3698 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
3699
3700 * config/i386/sse.md (pinsrbits): Remove.
3701 (sse2_packsswb): Merge with *avx_packsswb.
3702 (sse2_packssdw): Merge with *avx_packssdw.
3703 (sse2_packuswb): Merge with *avx_packuswb.
3704 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3705 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3706 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3707 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3708 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3709 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3710 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3711 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3712 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3713 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3714 (sse2_loadld): Merge with *avx_loadld.
3715 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3716 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3717 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3718 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3719 (vec_concatv2di): Merge with *vec_concatv2di_avx.
3720
3721 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3722
3723 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3724 calling TREE_CHAIN.
3725 * print-tree.c (print_node): Likewise.
3726 * tree-inline.c (copy_tree_r): Likewise.
3727 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3728 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3729 instead of TS_COMMON.
3730 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3731 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3732 (copy_node_stat): Zero TREE_CHAIN only if necessary.
3733 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3734 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3735 ...and these...
3736 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3737 * tree.h: ...here.
3738 (TREE_CHAIN): Check for a TS_COMMON structure.
3739 (TREE_TYPE): Check for a TS_TYPED structure.
3740
3741 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
3742
3743 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3744 cgraph_get_create_node instead of cgraph_node.
3745
3746 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3747
3748 * c-parser.c (c_parser_initelt): Updated call to
3749 objc_build_message_expr.
3750 (c_parser_postfix_expression): Likewise.
3751
3752 2011-04-12 Kai Tietz <ktietz@redhat.com>
3753
3754 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3755 MASK_MS_BITFIELD_LAYOUT bit.
3756
3757 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3758
3759 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3760 assert it is always true.
3761 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3762 moves.
3763
3764 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3765
3766 * c-parser.c (c_lex_one_token): Rewritten conditional used when
3767 compiling Objective-C to be more efficient.
3768
3769 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
3770
3771 * opts-common.c (decode_cmdline_options_to_array): Remove variable
3772 argv_copied.
3773
3774 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3775
3776 * recog.h, genoutput.c, optabs.c: Revert last patch.
3777
3778 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3779
3780 PR target/48090
3781 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
3782
3783 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3784
3785 * recog.h (insn_operand_data): Add an "allows_mem" field.
3786 * genoutput.c (output_operand_data): Initialize it.
3787 * optabs.c (maybe_legitimize_operand_same_code): New function.
3788 (maybe_legitimize_operand): Use it when matching the original
3789 op->value.
3790
3791 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3792
3793 * genpreds.c (process_define_predicate): Move most processing
3794 to gensupport.c. Continue to validate the expression.
3795 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3796 (process_define_predicate): Move processing to gensupport.c.
3797 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3798 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3799 (compute_predicate_codes): Moved from genrecog.c. Add lineno
3800 argument.
3801 (valid_predicate_name_p): New function, split out from old
3802 genpreds.c:process_define_predicate.
3803 (process_define_predicate): New function, combining code from
3804 old genpreds.c and genrecog.c functions.
3805 (process_rtx): Call it for DEFINE_PREDICATE and
3806 DEFINE_SPECIAL_PREDICATE.
3807
3808 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3809
3810 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3811 size of a '%A' memory reference.
3812 (T_DREG, T_QREG): New neon_builtin_type_bits.
3813 (arm_init_neon_builtins): Assert that the load and store operands
3814 are neon_struct_operands.
3815 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3816 (NEON_ARG_MEMORY): New builtin_arg.
3817 (neon_dereference_pointer): New function.
3818 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3819 Handle NEON_ARG_MEMORY.
3820 (arm_expand_neon_builtin): Update after above interface changes.
3821 Use NEON_ARG_MEMORY for loads and stores.
3822 * config/arm/predicates.md (neon_struct_operand): New predicate.
3823 * config/arm/iterators.md (V_two_elem): Tweak formatting.
3824 (V_three_elem): Use BLKmode for accesses that have no associated mode.
3825 (V_four_elem): Tweak formatting.
3826 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3827 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3828 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3829 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3830 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3831 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3832 (neon_vst4<mode>): Replace pointer operand with a memory operand.
3833 Use %A in the output template.
3834 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3835 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3836 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3837 the width of the memory access. Remove post-increment.
3838 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3839
3840 2011-04-12 Nick Clifton <nickc@redhat.com>
3841
3842 * config/v850/v850.c (expand_prologue): Do not use the CALLT
3843 instruction for interrupt handlers if the target is the basic V850
3844 architecture.
3845 (expand_epilogue): Likewise.
3846
3847 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3848
3849 PR rtl-optimization/48549
3850 * combine.c (propagate_for_debug): Also stop after BB_END of
3851 this_basic_block. Process LAST and just stop processing after it.
3852 (combine_instructions): If last_combined_insn has been deleted,
3853 set last_combined_insn to its PREV_INSN.
3854
3855 2011-04-12 Richard Guenther <rguenther@suse.de>
3856
3857 PR tree-optimization/46076
3858 * gimple.h (struct gimple_statement_call): Add fntype field.
3859 (gimple_call_fntype): Adjust.
3860 (gimple_call_set_fntype): New function.
3861 * gimple.c (gimple_build_call_1): Set the call function type.
3862 * gimplify.c (gimplify_call_expr): Preserve the function
3863 type the frontend used for the call.
3864 (gimplify_modify_expr): Likewise.
3865 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3866 function type.
3867 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3868 function type.
3869 * tree-ssa.c (useless_type_conversion_p): Function pointer
3870 conversions are useless.
3871
3872 2011-04-12 Martin Jambor <mjambor@suse.cz>
3873
3874 * cgraph.h (cgraph_node): Remove function declaration.
3875 (cgraph_create_node): Declare.
3876 (cgraph_get_create_node): Likewise.
3877 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3878 Updated all callers.
3879 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3880 the decl does not already exist. Call cgraph_get_create_node instead
3881 of cgraph_node.
3882 (cgraph_get_create_node): New function.
3883 (cgraph_same_body_alias): Update comment.
3884 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3885 assert it does not return NULL.
3886 (cgraph_update_edges_for_call_stmt): Likewise.
3887 (cgraph_clone_edge): Likewise.
3888 (cgraph_create_virtual_clone): Likewise.
3889 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3890 instead of cgraph_node.
3891 (cgraph_add_new_function): Call cgraph_create_node or
3892 cgraph_get_create_node instead of cgraph_node.
3893 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3894 instead of cgraph_node.
3895 (record_eh_tables): Likewise.
3896 (mark_address): Likewise.
3897 (mark_load): Likewise.
3898 (build_cgraph_edges): Call cgraph_get_create_node instead
3899 of cgraph_node.
3900 (rebuild_cgraph_edges): Likewise.
3901 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3902 instead of cgraph_node.
3903 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3904 cgraph_node.
3905 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3906 cgraph_create_node instead of cgraph_node.
3907 * c-decl.c (finish_function): Call cgraph_get_create_node instead
3908 of cgraph_node.
3909 * lto-cgraph.c (input_node): Likewise.
3910 * lto-streamer-in.c (input_function): Likewise.
3911 * varasm.c (mark_decl_referenced): Likewise.
3912 (assemble_alias): Likewise.
3913
3914 2011-04-12 Martin Jambor <mjambor@suse.cz>
3915
3916 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3917 instead of cgraph_node and assert it does not return NULL.
3918 * lto-streamer-in.c (lto_read_body): Likewise.
3919 * omp-low.c (new_omp_context): Likewise.
3920 (create_task_copyfn): Likewise.
3921 * tree-emutls.c (lower_emutls_function_body): Likewise.
3922 * matrix-reorg.c (transform_allocation_sites): Likewise.
3923
3924 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3925
3926 PR c/48552
3927 * c-typeck.c (build_asm_expr): Error out on attempts to use
3928 void type outputs or inputs for constraints that allow reg or
3929 don't allow memory.
3930
3931 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
3932 Richard Earnshaw <rearnsha@arm.com>
3933
3934 PR target/48250
3935 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3936 to use sign-magnitude offsets. Reject unsupported unaligned
3937 cases. Add detailed description in comments.
3938 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3939 condition from TARGET_32BIT to TARGET_ARM.
3940
3941 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
3942
3943 * tree.h (struct typed_tree): New.
3944 (struct tree_common): Include it instead of tree_base.
3945 (TREE_TYPE): Update for new location of type field.
3946 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3947 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3948 (union tree_node): Add typed field.
3949 * treestruct.def (TS_TYPED): New.
3950 * lto-streamer.c (check_handled_ts_structures): Handle it.
3951 * tree.c (MARK_TS_TYPED): New macro.
3952 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3953
3954 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
3955
3956 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3957 (force_nonfallthru): Do not alter the loop nest if no basic block
3958 was created.
3959
3960 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
3961
3962 * config/i386/sse.md (VI): New mode iterator.
3963 (SSEMODEI): Remove.
3964 (AVX256MODEI): Ditto.
3965 (AVXMODEF4P): Ditto.
3966 (avxvecpsmode): Ditto.
3967 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
3968 (sse2_andnot<mode>3): New expander.
3969 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3970 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
3971 (<any_logic:code><mode>3): Use VI mode iterator.
3972 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3973 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
3974 (*andnottf3): Handle AVX three-operand constraints.
3975 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3976
3977 2011-04-11 Joseph Myers <joseph@codesourcery.com>
3978 Robert Millan <rmh@gnu.org>
3979
3980 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3981 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3982 GNU_USER_DYNAMIC_LINKER64): Define.
3983 (REG_NAME): Don't undefine.
3984 (MD_UNWIND_SUPPORT): Undefine.
3985 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3986 (REG_NAME): Don't undefine.
3987 (MD_UNWIND_SUPPORT): Undefine.
3988 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
3989
3990 2011-04-11 Joseph Myers <joseph@codesourcery.com>
3991
3992 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3993 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3994
3995 2011-04-11 Xinliang David Li <davidxl@google.com>
3996
3997 * value-profile.c (check_ic_target): New function.
3998 (gimple_ic_transform): Sanity check indirect call target.
3999 * gimple-low.c (gimple_check_call_args): Interface change.
4000 (gimple_check_call_matching_types): New function.
4001 * tree-inline.c (tree_can_inline_p): Call new function.
4002
4003 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
4004
4005 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
4006 tree-pretty-print.h & realmpfr.h.
4007
4008 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
4009
4010 PR middle-end/48464
4011 * ira.c (setup_pressure_classes): Fix typo in loop condition.
4012 (setup_allocno_and_important_classes): Ditto.
4013
4014 2011-04-11 Joseph Myers <joseph@codesourcery.com>
4015
4016 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
4017 GNU_USER_DYNAMIC_LINKER.
4018 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
4019 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4020 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
4021 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4022 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4023 GNU_USER_TARGET_OS_CPP_BUILTINS.
4024 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
4025 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4026 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4027 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4028 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
4029 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4030 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4031 GNU_USER_TARGET_OS_CPP_BUILTINS.
4032 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4033 GNU_USER_DYNAMIC_LINKER.
4034 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4035 GNU_USER_TARGET_OS_CPP_BUILTINS.
4036 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
4037 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4038 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
4039 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4040 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
4041 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
4042 GNU_USER_DYNAMIC_LINKER64): Remove.
4043 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
4044 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4045 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4046 GNU_USER_DYNAMIC_LINKER.
4047 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4048 GNU_USER_TARGET_OS_CPP_BUILTINS.
4049 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4050 GNU_USER_TARGET_OS_CPP_BUILTINS.
4051 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
4052 to GNU_USER_TARGET_OS_CPP_BUILTINS.
4053 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4054 GNU_USER_TARGET_OS_CPP_BUILTINS.
4055 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
4056 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
4057 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4058 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
4059 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4060 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4061 GNU_USER_DYNAMIC_LINKER.
4062 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4063 GNU_USER_TARGET_OS_CPP_BUILTINS.
4064 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
4065 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4066 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4067 GNU_USER_DYNAMIC_LINKER.
4068 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4069 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4070 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
4071 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4072 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4073 GNU_USER_DYNAMIC_LINKER.
4074 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
4075 GNU_USER_DYNAMIC_LINKERN32.
4076 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
4077 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
4078 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
4079 GNU_USER_DYNAMIC_LINKER32.
4080 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
4081 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4082 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4083 GNU_USER_DYNAMIC_LINKER.
4084 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4085 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4086 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
4087 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4088 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4089 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
4090 GNU_USER_DYNAMIC_LINKER32.
4091 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4092 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
4093 GNU_USER_DYNAMIC_LINKER.
4094 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
4095 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4096 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4097 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
4098 GNU_USER_DYNAMIC_LINKER64.
4099 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
4100 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4101 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4102 GNU_USER_DYNAMIC_LINKER.
4103 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
4104 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4105 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4106 GNU_USER_DYNAMIC_LINKER.
4107 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
4108 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4109 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4110 GNU_USER_DYNAMIC_LINKER32.
4111 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4112 GNU_USER_DYNAMIC_LINKER64.
4113 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4114 GNU_USER_DYNAMIC_LINKER64.
4115 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
4116 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4117 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
4118 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4119 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4120
4121 2011-04-11 Joseph Myers <joseph@codesourcery.com>
4122
4123 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
4124 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
4125 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
4126 GNU_USER_DYNAMIC_LINKER.
4127 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4128 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
4129 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
4130 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
4131 GNU_USER_DYNAMIC_LINKER64.
4132 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4133 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
4134 GNU_USER_LINK_EMULATION.
4135 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
4136 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
4137 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
4138 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
4139 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
4140 CPP_SPEC, CC1_SPEC): Remove.
4141 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
4142 (GNU_USER_DYNAMIC_LINKER): Define.
4143 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
4144 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
4145 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
4146 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
4147 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
4148 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
4149 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4150 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
4151 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
4152 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
4153 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
4154 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
4155 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
4156 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
4157 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
4158 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4159 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4160 GNU_USER_DYNAMIC_LINKER.
4161 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4162 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4163 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4164 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4165 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4166 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4167 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
4168 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
4169 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
4170 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
4171
4172 2011-04-11 Kai Tietz <ktietz@redhat.com>
4173
4174 PR target/9601
4175 PR target/11772
4176 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
4177 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
4178 comment.
4179 (ix86_is_msabi_thiscall): Removed.
4180 (ix86_is_type_thiscall): Likewise.
4181 (ix86_get_callcvt): New function.
4182 (ix86_comp_type_attributes): Simplify check.
4183 (ix86_function_regparm): Use ix86_get_callcvt for calling
4184 convention attribute checks.
4185 (ix86_return_pops_args): Likewise.
4186 (ix86_static_chain): Likewise.
4187 (x86_this_parameter): Likewise.
4188 (x86_output_mi_thunk): Likewise.
4189 (ix86_function_type_abi): Optimize check for types without attributes.
4190 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
4191 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
4192 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
4193 by flag-values.
4194 (IX86_BASE_CALLCVT): Helper macro.
4195 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4196 Use ix86_get_callcvt for calling convention attribute checks and avoid
4197 symbol-decoration for stdcall in TARGET_RTD case.
4198 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4199 Likewise.
4200 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
4201 for declaration.
4202
4203 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
4204
4205 * config/i386/sse.md (VI_128): New mode iterator.
4206 (VI12_128): Rename from SSEMODE12.
4207 (VI14_128): Rename from SSEMODE14.
4208 (VI124_128): New mode iterator.
4209 (VI24_128): Rename from SSEMODE248.
4210 (VI248_128): Rename from SSEMODE248.
4211 (SSEMODE124C8): Remove.
4212 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4213 (*sse2_<plusminus_insn><mode>3): Merge with
4214 *avx_<plusminus_insn><mode>3.
4215 (*mulv8hi3): Merge with *avx_mulv8hi3.
4216 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
4217 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
4218 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
4219 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
4220 (ashr<mode>3): Merge with *avx_ashr<mode>3.
4221 (lshr<mode>3): Merge with *avx_lshr<mode>3.
4222 (ashl<mode>3): Merge with *avx_ashl<mode>3.
4223 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
4224 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
4225 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4226 (*<smaxmin:code>v8hi3): Ditto.
4227 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
4228 (*<smaxmin:code>v16qi3): Ditto.
4229 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
4230 (*sse2_eq<mode>3): Ditto.
4231 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
4232 (*sse2_gt<mode>3): Ditto.
4233 (vcondv2di): Split out of vcond<mode>.
4234 (vconduv2di): Split out of vcondu<mode>.
4235
4236 2011-04-11 Richard Guenther <rguenther@suse.de>
4237
4238 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
4239 before calling tree_low_cst.
4240
4241 2011-04-11 Richard Guenther <rguenther@suse.de>
4242
4243 * stor-layout.c (layout_type): Compute all array index size operations
4244 in the original type.
4245 (initialize_sizetypes): Add comment.
4246 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
4247
4248 2011-04-11 Joseph Myers <joseph@codesourcery.com>
4249
4250 * common.opt (Tbss=, Tdata=, Ttext=): New options.
4251
4252 2011-04-11 Martin Jambor <mjambor@suse.cz>
4253
4254 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
4255 of cgraph_node, handle NULL return value.
4256 (cgraph_global_info): Likewise.
4257 (cgraph_rtl_info): Likewise.
4258 * tree-inline.c (estimate_num_insns): Likewise.
4259 * gimplify.c (unshare_body): Likewise.
4260 (unvisit_body): Likewise.
4261 (gimplify_body): Likewise.
4262 * predict.c (optimize_function_for_size_p): Likewise.
4263 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
4264 (call_may_clobber_ref_p_1): Likewise.
4265 * varasm.c (function_section_1): Likewise.
4266 (assemble_start_function): Likewise.
4267
4268 2011-04-11 Martin Jambor <mjambor@suse.cz>
4269
4270 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
4271 of cgraph_node.
4272 * final.c (rest_of_clean_state): Likewise.
4273 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
4274 * passes.c (pass_init_dump_file): Likewise.
4275 (execute_all_ipa_transforms): Likewise.
4276 (function_called_by_processed_nodes_p): Likewise.
4277 * predict.c (maybe_hot_frequency_p): Likewise.
4278 (probably_never_executed_bb_p): Likewise.
4279 (compute_function_frequency): Likewise.
4280 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
4281 (unnest_nesting_tree_1): Likewise.
4282 (lower_nested_functions): Likewise.
4283 * tree-optimize.c (execute_fixup_cfg): Likewise.
4284 (tree_rest_of_compilation): Likewise.
4285 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
4286 * tree-sra.c (ipa_early_sra): Likewise.
4287 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
4288 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
4289 * ipa.c (record_cdtor_fn): Likewise.
4290 * ipa-inline.c (cgraph_early_inlining): Likewise.
4291 (compute_inline_parameters_for_current): Likewise.
4292 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4293 * ipa-pure-const.c (local_pure_const): Likewise.
4294 * ipa-split.c (split_function): Likewise.
4295 (execute_split_functions): Likewise.
4296 * cgraphbuild.c (build_cgraph_edges): Likewise.
4297 (rebuild_cgraph_edges): Likewise.
4298 (cgraph_rebuild_references): Likewise.
4299 (remove_cgraph_callee_edges): Likewise.
4300 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
4301 (verify_cgraph_node): Likewise.
4302 (cgraph_analyze_functions): Likewise.
4303 (cgraph_preserve_function_body_p): Likewise.
4304 (save_inline_function_body): Likewise.
4305 (save_inline_function_body): Likewise.
4306 * tree-inline.c (copy_bb): Likewise.
4307 (optimize_inline_calls): Likewise.
4308
4309 2011-04-11 Martin Jambor <mjambor@suse.cz>
4310
4311 PR tree-optimization/48195
4312 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
4313 ipa_check_create_edge_args.
4314 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
4315 ipa_check_create_edge_args.
4316 * ipa-inline.c (inline_generate_summary): Do not call
4317 ipa_check_create_node_params and ipa_check_create_edge_args.
4318 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
4319 ipa_check_create_edge_args.
4320
4321 2011-04-09 Anatoly Sokolov <aesok@post.ru>
4322
4323 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
4324 instead of loop.
4325 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
4326 * function.c (record_hard_reg_sets): Likewise.
4327 * ira.c (compute_regs_asm_clobbered): Likewise.
4328 * sched-deps.c (sched_analyze_1): Likewise.
4329 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
4330
4331 2011-04-09 Xinliang David Li <davidxl@google.com>
4332
4333 PR tree-optimization/PR48484
4334 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
4335 has_valid_pred lazily
4336
4337 2011-04-09 Duncan Sands <baldrick@free.fr>
4338
4339 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
4340
4341 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
4342
4343 * combine.c (combine_validate_cost): Adjust comments. Set registered
4344 cost of I0 to zero at the end, if any.
4345
4346 2011-04-08 Xinliang David Li <davidxl@google.com>
4347
4348 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
4349 to insane profile data.
4350
4351 2011-04-08 Xinliang David Li <davidxl@google.com>
4352
4353 * ipa-cp.c (ipcp_update_profiling): Correct
4354 negative scale factor due to insane profile data.
4355
4356 2011-04-08 Xinliang David Li <davidxl@google.com>
4357
4358 * final.c (dump_basic_block_info): New function.
4359 (final): Dump basic block.
4360 (final_scan_insn): Remove old dump.
4361
4362 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
4363
4364 PR target/47829
4365 * config.gcc (i386-*-freebsd): Disable unwind table generation for
4366 crtbegin/crtend.
4367
4368 2011-04-08 Michael Matz <matz@suse.de>
4369
4370 PR middle-end/48389
4371 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
4372 functions.
4373 (rebuild_jump_labels): Call rebuild_jump_labels_1.
4374 * rtl.h (rebuild_jump_labels_chain): Declare.
4375 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
4376 insns inserted on edges.
4377
4378 2011-04-08 Joseph Myers <joseph@codesourcery.com>
4379
4380 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
4381 * config/arm/arm-arches.def: New.
4382 * config/arm/arm-opts.h: New.
4383 * config/arm/genopt.sh: New.
4384 * config/arm/arm-tables.opt: New (generated).
4385 * config/arm/arm.c (arm_handle_option, arm_target_help,
4386 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
4387 (all_architectures): Get most table contents from arm-arches.def.
4388 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
4389 arm_selected_tune here.
4390 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
4391 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
4392 (march=, mcpu=, mtune=): Use Enum and Var.
4393 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
4394 (arm.o): Update dependencies.
4395
4396 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
4397
4398 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
4399 of header_file.
4400 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
4401 (write_typed_alloc_defns): Likewise.
4402 (main): Calls write_typed_alloc_defns with output_header.
4403
4404 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
4405
4406 PR inline-asm/48435
4407 * ira-color.c (setup_profitable_hard_regs): Add comments.
4408 Don't take prohibited hard regs into account.
4409 (setup_conflict_profitable_regs): Rename to
4410 get_conflict_profitable_regs.
4411 (check_hard_reg_p): Check prohibited hard regs.
4412
4413 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
4414
4415 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
4416 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
4417 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
4418
4419 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4420
4421 PR target/48366
4422 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
4423 move from floating point to shift amount register.
4424 (emit_move_sequence): Remove secondary reload support for floating
4425 point to shift amount amount register copies.
4426 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
4427 amount register copies.
4428 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
4429 register, return false if mode isn't a scalar integer mode.
4430 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
4431
4432 2011-04-08 Richard Guenther <rguenther@suse.de>
4433
4434 * gimple.c (gimple_call_flags): Remove kludge.
4435
4436 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4437
4438 * sel-sched.c (sel_region_init): Move call to
4439 sel_setup_region_sched_flags after setup_current_loop_nest.
4440
4441 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
4442
4443 PR rtl-optimization/48272
4444 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
4445 init_insn_reg_pressure_info. Adjust a caller.
4446 * sched-int.h (init_insn_reg_pressure_info): Declare.
4447 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
4448 when sched-pressure is enabled.
4449
4450 2011-04-08 Richard Guenther <rguenther@suse.de>
4451
4452 * gimple.c (gimple_set_modified): Do not queue calls to
4453 MODIFIED_NORETURN_CALLS here ...
4454 * tree-ssa-operands.c (update_stmt_operands): ... but here.
4455
4456 2011-04-08 Richard Guenther <rguenther@suse.de>
4457
4458 PR lto/48467
4459 * toplev.c (lang_dependent_init): Do not open asm_out_file
4460 in WPA mode, nor perform debug machinery initialization.
4461 (finalize): Do not unlink asm_out_file in WPA mode.
4462
4463 2011-04-08 Richard Guenther <rguenther@suse.de>
4464
4465 * gimple.h (gimple_call_fntype): New function.
4466 (gimple_call_return_type): Use it.
4467 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
4468 * gimple-low.c (gimple_check_call_args): Likewise.
4469 * gimple.c (gimple_call_flags): Likewise.
4470 (gimple_call_arg_flags): Likewise.
4471 (gimple_call_return_flags): Likewise.
4472 * tree-cfg.c (verify_gimple_call): Likewise.
4473 (do_warn_unused_result): Likewise.
4474 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
4475 * value-prof.c (gimple_ic_transform): Fix fndecl check.
4476
4477 2011-04-08 Dmitry Melnik <dm@ispras.ru>
4478
4479 PR rtl-optimization/48235
4480 * sel-sched.c (code_motion_process_successors): Recompute the last
4481 insn in basic block if control flow changed.
4482 (code_motion_path_driver): Ditto. Recompute the first insn as well.
4483 Update condition for ilist_remove.
4484
4485 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4486
4487 PR rtl-optimization/48302
4488 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
4489 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
4490 it to record added preheader blocks.
4491 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
4492 on to sel_add_loop_preheaders.
4493 (sel_region_init): Move call to setup_current_loop_nest after
4494 sel_init_bbs.
4495
4496 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4497
4498 PR target/48273
4499 * cfgloop.h (loop_has_exit_edges): New helper.
4500 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
4501 non-clonable.
4502 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
4503 that have no exit edges.
4504
4505 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4506
4507 PR rtl-optimization/48442
4508 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
4509 all callers. Adjust assert.
4510
4511 2011-04-08 Jakub Jelinek <jakub@redhat.com>
4512
4513 PR tree-optimization/48377
4514 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
4515 is_packed to true even for types with smaller TYPE_ALIGN than
4516 TYPE_SIZE.
4517
4518 2011-04-08 Richard Guenther <rguenther@suse.de>
4519
4520 PR bootstrap/48513
4521 * doc/tm.texi: Re-generate.
4522
4523 2011-04-08 Wei Guozhi <carrot@google.com>
4524
4525 PR target/47855
4526 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
4527 * config/arm/arm.c (arm_attr_length_push_multi): New function.
4528 * config/arm/arm.md (*push_multi): Change the length computation to
4529 call a C function.
4530
4531 2011-04-08 Anatoly Sokolov <aesok@post.ru>
4532
4533 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
4534 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
4535 * doc/tm.texi: Regenerate.
4536 * system.h (ASM_OUTPUT_BSS): Poison.
4537 * varasm.c (asm_output_bss): Remove function.
4538 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
4539
4540 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
4541 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
4542 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
4543 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4544 Likewise.
4545 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4546 Likewise.
4547 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4548 Likewise.
4549 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4550
4551 2011-04-07 Joseph Myers <joseph@codesourcery.com>
4552
4553 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
4554 EnumValue lines.
4555
4556 2011-04-07 Joseph Myers <joseph@codesourcery.com>
4557
4558 * config/m68k/m68k.c (m68k_handle_option): Don't handle
4559 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
4560 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
4561 OPT_mcpu32.
4562 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4563 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
4564 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
4565 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
4566 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
4567 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
4568 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4569 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
4570 options. Don't map other m68k options manually. Don't handle
4571 old-style options as canonical.
4572 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4573 * doc/install.texi (m68k-*-*): Document binutils version requirement.
4574
4575 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
4576
4577 * basic-block.h (force_nonfallthru): Move to...
4578 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
4579 (force_nonfallthru): ...here.
4580 * cfghooks.c (force_nonfallthru): New function.
4581 * cfgrtl.c (force_nonfallthru): Rename into...
4582 (rtl_force_nonfallthru): ...this.
4583 (commit_one_edge_insertion): Do not set AUX field.
4584 (commit_edge_insertions): Do not discover new basic blocks.
4585 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
4586 (cfg_layout_rtl_cfg_hooks): Likewise.
4587 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
4588 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
4589 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
4590
4591 2011-04-07 Anatoly Sokolov <aesok@post.ru>
4592
4593 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4594 Remove macros.
4595
4596 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
4597
4598 * config/i386/sse.md: Update copyright year.
4599 (avxcvtvecmode): Remove.
4600 (sse_movhlps): Merge with *avx_movhlps.
4601 (sse_movlhps): Merge with *avx_movlhps.
4602 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
4603 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
4604 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
4605 (sse_loadhps): Merge with *avx_loadhps.
4606 (sse_storelps): Merge with *avx_storelps.
4607 (sse_loadlps): Merge with *avx_loadlps.
4608 (sse_movss): Merge with *avx_movss.
4609 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
4610 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
4611 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
4612 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
4613 (vec_set<mode>_0): Ditto.
4614 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
4615 (sse4_1_insertps): Merge with *avx_insertps.
4616 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
4617 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
4618 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
4619 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
4620 (sse2_storehpd): Merge with *avx_storehpd.
4621 (sse2_loadhpd): Merge with *avx_loadhpd.
4622 (sse2_loadlpd): Merge with *avx_loadlpd.
4623 (sse2_movsd): Merge with *avx_movsd.
4624 (*vec_concatv2df): Merge with *vec_concatv2df.
4625
4626 2011-04-07 Jakub Jelinek <jakub@redhat.com>
4627
4628 PR debug/48343
4629 * combine.c (combine_instructions): Add last_combined_insn,
4630 update it if insn is after it, pass it to all try_combine calls.
4631 (try_combine): Add last_combined_insn parameter, pass it instead of
4632 i3 to propagate_for_debug.
4633
4634 2011-04-07 Nick Clifton <nickc@redhat.com>
4635
4636 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
4637 to handle MDR <-> data register transfers.
4638 (movhi_internal): Likewise.
4639
4640 2011-04-07 Alan Modra <amodra@gmail.com>
4641
4642 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
4643 previous stack info.
4644
4645 2011-04-07 Tom de Vries <tom@codesourcery.com>
4646
4647 PR target/43920
4648 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
4649 flow_find_cross_jump. Swap variables to implement backward replacement.
4650 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
4651
4652 2011-04-07 Tom de Vries <tom@codesourcery.com>
4653
4654 PR target/43920
4655 * cfgcleanup.c (walk_to_nondebug_insn): New function.
4656 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
4657 and bb2.
4658 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
4659 src1 or src2. Redirect edges to the last basic block. Update
4660 frequency and count on multiple basic blocks in case of fallthru.
4661
4662 2011-04-07 Tom de Vries <tom@codesourcery.com>
4663
4664 PR target/43920
4665 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
4666 function.
4667 (old_insns_match_p): Change return type. Replace return false/true
4668 with return dir_none/dir_both. Use can_replace_by.
4669 (flow_find_cross_jump): Add dir_p parameter. Init replacement
4670 direction from dir_p. Register replacement direction in dir, last_dir
4671 and afterlast_dir. Handle new return type of old_insns_match_p using
4672 merge_dir. Return replacement direction in dir_p.
4673 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
4674 return type of old_insns_match_p.
4675 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
4676 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
4677 flow_find_cross_jump.
4678 * basic-block.h (enum replace_direction): New type.
4679 (flow_find_cross_jump): Add parameter to declaration.
4680
4681 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
4682
4683 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
4684 (AVXMODEDCVTPS2DQ): Ditto.
4685 (VEC_FLOAT_MODE): Ditto.
4686 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
4687 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4688 (<any_logic:code><mode>3): Use VF mode iterator.
4689 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
4690 Use VF mode iterator.
4691 (copysign<mode>3): Use VF mode iterator.
4692 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
4693 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4694 (*<any_logic:code><MODEF:mode>3): Merge with
4695 *avx_<any_logic:code><MODEF:mode>3.
4696 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
4697 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
4698 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
4699 (avx_cvtdq2ps<avxmodesuffix>): Remove.
4700 (sse2_cvtdq2ps): Use %v modifier.
4701 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
4702 (avx_cvtps2dq<avxmodesuffix>): Remove.
4703 (sse2_cvtps2dq): Use %v modifier.
4704 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
4705 (avx_cvttps2dq<avxmodesuffix>): Remove.
4706 (sse2_cvttps2dq): Use %v modifier.
4707 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
4708 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
4709 (sse2_cvtsd2siq): Fix insn template.
4710 (sse2_cvtsd2siq_2): Ditto.
4711 (sse2_cvttsd2siq): Ditto.
4712 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
4713 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
4714
4715 2011-04-06 Joseph Myers <joseph@codesourcery.com>
4716
4717 * gcov-io.c: Use GCC Runtime Library Exception.
4718
4719 2011-04-06 Jakub Jelinek <jakub@redhat.com>
4720
4721 PR debug/48466
4722 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
4723 as base_reg whatever register reg has been eliminated to, instead
4724 of hardcoding STACK_POINTER_REGNUM.
4725
4726 2011-04-06 Joseph Myers <joseph@codesourcery.com>
4727
4728 * doc/tm.texi.in: Document C target hooks as separate from general
4729 target hooks.
4730 * doc/tm.texi: Regenerate.
4731 * genhooks.c (struct hook_desc): Add docname field.
4732 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
4733 docname field.
4734 (hook_array): Include c-target.def.
4735 (emit_documentation): Use docname field in output.
4736 (emit_init_macros): Take docname argument. Only emit definitions
4737 for hooks matching docname.
4738 (main): Expect additional arguments in all cases. Pass argument
4739 to emit_init_macros.
4740 * target.def: Move initial macro definitions and comments to
4741 target-hooks-macros.h.
4742 (gcc_targetcm): Move to c-family/c-target.def.
4743 * target.h (targetcm): Move declaration to c-family/c-target.h.
4744 * targhooks.c (default_handle_c_option): Move to
4745 c-family/c-opts.c.
4746 * targhooks.h (default_handle_c_option): Move declaration to
4747 c-family/c-common.h.
4748 * target-hooks-macros.h: New file.
4749 * config.gcc (target_has_targetcm): Define and use to add to
4750 c_target_objs and cxx_target_objs.
4751 * config/default-c.c: New file.
4752 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
4753 of target.h and target-def.h.
4754 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
4755 (darwin_objc_construct_string, darwin_cfstring_ref_p,
4756 darwin_check_cfstring_format_arg): Make static.
4757 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4758 TARGET_STRING_OBJECT_REF_TYPE_P,
4759 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
4760 * config/darwin-protos.h (darwin_objc_construct_string,
4761 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
4762 declare.
4763 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4764 TARGET_STRING_OBJECT_REF_TYPE_P,
4765 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
4766 * config/t-darwin (darwin-c.o): Update dependencies.
4767 * system.h (TARGET_HAS_TARGETCM): Poison.
4768 * Makefile.in (TARGET_H): Update.
4769 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
4770 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
4771 (default-c.o): New target.
4772 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
4773 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
4774 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
4775 c-target.def.
4776 (build/genhooks.o): Update dependencies.
4777
4778 2011-04-06 Richard Guenther <rguenther@suse.de>
4779
4780 * ipa-inline.c (enum inlining_mode): Remove.
4781 (cgraph_flatten): Use some other token.
4782 (cgraph_edge_early_inlinable_p): New function, split out from ...
4783 (cgraph_perform_always_inlining): New function, split out from ...
4784 (cgraph_decide_inlining_incrementally): ... here.
4785 (cgraph_mark_inline_edge): Adjust.
4786 (cgraph_early_inlining): Re-structure.
4787 (pass_early_inline): Require SSA form.
4788
4789 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
4790 Julian Brown <julian@codesourcery.com>
4791 Mark Shinwell <shinwell@codesourcery.com>
4792
4793 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
4794 LO_REGS only for Thumb-1.
4795 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
4796 be used in short instructions when optimising for size on Thumb-2.
4797
4798 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4799
4800 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
4801 associated with user returns to be preserved.
4802
4803 2011-04-06 Tristan Gingold <gingold@adacore.com>
4804
4805 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
4806 symbol_queue_size, DBXOUT_DECR_NESTING,
4807 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
4808 if XCOFF_DEBUGGING_INFO.
4809
4810 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
4811
4812 * config/i386/i386.md (attribute isa): New.
4813 (attribute enabled): New.
4814 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
4815 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
4816 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
4817 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
4818 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
4819 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4820 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
4821 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
4822
4823 * config/i386/sse.md (VF): New mode iterator.
4824 (VF1): Ditto.
4825 (VF2): Ditto.
4826 (VF_128): Ditto.
4827 (SSEMODEF4): Remove.
4828 (attribute sse): Handle V8SF and V4DF modes.
4829 (<absneg:code><mode>2): Use VF mode iterator.
4830 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
4831 mode iterator.
4832 (<plusminus_insn><mode>3): Use VF mode iterator.
4833 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4834 Use VF mode iterator.
4835 (<sse>_vm<plusminus_insn><mode>3): Merge with
4836 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
4837 (mul<mode>3): Use VF mode iterator.
4838 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
4839 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
4840 mode iterator.
4841 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
4842 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
4843 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
4844 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
4845 mode iterator.
4846 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
4847 Use VF1 mode iterator.
4848 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
4849 (sqrt<VF2:mode>2): New expander.
4850 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
4851 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
4852 and sqrtv2df2. Use VF mode iterator.
4853 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
4854 mode iterator.
4855 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
4856 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
4857 Use VF1 mode iterator.
4858 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
4859 (<smaxmin:code><mode>3): Use VF mode iterator.
4860 (*<smaxmin:code><mode>3_finite): Merge with
4861 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
4862 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4863 (<sse>_vm<smaxmin:code><mode>2): Merge with
4864 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
4865 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
4866 mode iterator.
4867 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
4868 mode iterator.
4869 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
4870 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
4871 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
4872 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
4873 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
4874 VF mode iterator.
4875 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
4876 Use VF_128 mode iterator.
4877 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
4878 mode iterator.
4879 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
4880 VF_128 mode iterator.
4881 (vcond<mode>): Use VF mode iterator.
4882 * config/i386/predicates.md (sse_comparison_operator): Merge with
4883 avx_comparison_float_operator. Do not declare as special_predicate.
4884 * config/i386/i386.c (struct builtin_description): Update for renamed
4885 compare patterns.
4886 (ix86_expand_args_builtin): Ditto.
4887 (ix86_expand_sse_compare_mask): Ditto.
4888
4889 2011-04-06 Richard Guenther <rguenther@suse.de>
4890
4891 * tree-inline.c (estimate_num_insns): For calls simply account
4892 for all passed arguments and a used return value.
4893
4894 2011-04-06 Richard Guenther <rguenther@suse.de>
4895
4896 PR tree-optimization/47663
4897 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
4898 call_stmt_time fields.
4899 (cgraph_edge_inlinable_p): Declare.
4900 (cgraph_edge_recursive_p): New inline function.
4901 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
4902 (cgraph_clone_edge): Copy it.
4903 * ipa-inline.c (cgraph_estimate_edge_time): New function.
4904 Account for call stmt time.
4905 (cgraph_estimate_time_after_inlining): Take edge argument.
4906 (cgraph_estimate_edge_growth): Account call stmt size.
4907 (cgraph_estimate_size_after_inlining): Take edge argument.
4908 (cgraph_mark_inline_edge): Adjust.
4909 (cgraph_check_inline_limits): Likewise.
4910 (cgraph_recursive_inlining_p): Remove.
4911 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
4912 (cgraph_decide_recursive_inlining): Take edge argument and
4913 adjust.
4914 (cgraph_decide_inlining_of_small_functions): Do not avoid
4915 diags for recursive inlining here.
4916 (cgraph_flatten): Adjust.
4917 (cgraph_decide_inlining_incrementally): Likewise.
4918 (estimate_function_body_sizes): Remove call cost handling.
4919 (compute_inline_parameters): Initialize caller edge call costs.
4920 (cgraph_estimate_edge_growth): New function.
4921 (cgraph_estimate_growth): Use it.
4922 (cgraph_edge_badness): Likewise.
4923 (cgraph_check_inline_limits): Take an edge argument.
4924 (cgraph_decide_inlining_of_small_functions): Adjust.
4925 (cgraph_decide_inlining): Likewise.
4926 * tree-inline.c (estimate_num_insns): Only account for call
4927 return value if it is used.
4928 (expand_call_inline): Avoid diagnostics on recursive inline
4929 functions here.
4930 * lto-cgraph.c (lto_output_edge): Output edge call costs.
4931 (input_edge): Input edge call costs.
4932
4933 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4934
4935 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4936
4937 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4938
4939 * doc/invoke.texi (Spec Files): Fix typo.
4940
4941 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4942
4943 * profile.c (branch_prob): Move declaration of local variable. Remove
4944 obsolete ??? comment. Expand the location explicitly instead of using
4945 the LOCATION_FILE and LOCATION_LINE macros.
4946
4947 2011-04-06 Wei Guozhi <carrot@google.com>
4948
4949 PR target/47855
4950 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4951 (arm_cond_branch): Likewise.
4952 (arm_cond_branch_reversed): Likewise.
4953 (arm_jump): Likewise.
4954 (push_multi): Likewise.
4955 * config/arm/constraints.md (Py): New constraint.
4956
4957 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4958
4959 PR bootstrap/48471
4960 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4961 Move these...
4962 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4963 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4964 #ifdef DBX_DEBUGGING_INFO.
4965
4966 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
4967
4968 PR bootstrap/48403
4969 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4970 if old and new states differ.
4971
4972 2011-04-05 Joseph Myers <joseph@codesourcery.com>
4973
4974 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4975 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4976 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4977 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4978 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4979 mcfv4e): Use Alias.
4980 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4981 ColdFire options to -mcpu= options.
4982
4983 2011-04-05 Jeff Law <law@redhat.com>
4984
4985 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4986 check if BB is a successor of LOOP->header and return
4987 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4988
4989 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4990
4991 * cprop.c (struct reg_use): Remove.
4992 (reg_use_table): Make an array of RTX.
4993 (find_used_regs, constprop_register, local_cprop_pass,
4994 bypass_block): Simplify users of reg_use_table.
4995 (cprop_insn): Likewise. Iterate if copy propagation succeeded
4996 on one of the uses found by find_used_regs.
4997
4998 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4999
5000 PR bootstrap/48469
5001 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
5002 declaration.
5003
5004 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5005
5006 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
5007 as an rtx.
5008 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
5009
5010 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
5011
5012 PR middle-end/48441
5013 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
5014
5015 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5016
5017 * combine.c: Include obstack.h.
5018 (struct insn_link): Define.
5019 (uid_log_links): Adjust type.
5020 (FOR_EACH_LOG_LINK): New macro.
5021 (insn_link_obstack): Declare.
5022 (alloc_insn_link): Define.
5023 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
5024 type of link variables.
5025 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
5026 (try_combine, record_promoted_values, distribute_notes): Likewise.
5027 (distribute_links): Likewise. Tweak prototype.
5028 (clear_log_links): Delete.
5029 (adjust_for_new_dest): Call alloc_insn_link.
5030 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
5031
5032 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5033
5034 * gcse.c (modify_mem_list): Convert to an array of VECs.
5035 (canon_modify_mem_list, compute_transp): Tweak formatting.
5036 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
5037 (load_killed_in_block_p): Likewise.
5038 (record_last_mem_set_info): Likewise.
5039 (clear_modify_mem_tables): Likewise.
5040
5041 2011-04-05 Tom de Vries <tom@codesourcery.com>
5042
5043 PR middle-end/48461
5044 * function.c (emit_use_return_register_into_block): Only define if
5045 HAVE_return.
5046
5047 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
5048
5049 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
5050
5051 2011-04-05 Joseph Myers <joseph@codesourcery.com>
5052
5053 * config/rx/rx-opts.h: New.
5054 * config/rx/rx.c (rx_cpu_type): Remove.
5055 (rx_handle_option): Don't assert that global structures are in
5056 use. Access variables via opts pointer. Defer most handling of
5057 OPT_mint_register_. Use error_at.
5058 (rx_option_override): Handle deferred OPT_mint_register_ here.
5059 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
5060 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
5061 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
5062 (rx_cpu_types): New Enum and EnumValue entries.
5063 (mint-register=): Use Defer and use Var accordingly.
5064
5065 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5066
5067 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
5068 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
5069 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
5070 Move these...
5071 (debug_free_queue, debug_nesting, symbol_queue_index):
5072 ...and these...
5073 * dbxout.c: ...to here. Make static.
5074
5075 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5076
5077 * gcse.c (modify_pair): Define. Define a VEC of it.
5078 (canon_modify_mem_list): Convert to an array of VECs.
5079 (free_insn_expr_list_list): Delete.
5080 (clear_modify_mem_tables): Call VEC_free instead.
5081 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
5082 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
5083 (canon_list_insert, compute_transp): Likewise.
5084
5085 2011-04-05 Tom de Vries <tom@codesourcery.com>
5086
5087 PR target/43920
5088 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
5089 for size.
5090
5091 2011-04-05 Tom de Vries <tom@codesourcery.com>
5092
5093 PR target/43920
5094 * function.c (emit_use_return_register_into_block): New function.
5095 (thread_prologue_and_epilogue_insns): Use
5096 emit_use_return_register_into_block.
5097
5098 2011-04-05 Tom de Vries <tom@codesourcery.com>
5099
5100 PR target/43920
5101 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
5102 insn.
5103
5104 2011-04-05 Tom de Vries <tom@codesourcery.com>
5105
5106 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
5107
5108 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
5109
5110 * config/arm/arm.md (define_constants for unspec): Replace with
5111 define_c_enum.
5112 (define_constants for unspecv): Replace with define_c_enum.
5113 * config/arm/neon.md (define_constants for unspec): Replace with
5114 define_c_enum.
5115
5116 2011-04-04 Richard Henderson <rth@redhat.com>
5117
5118 PR bootstrap/48400
5119 * dwarf2out.c (output_line_info): Always emit line info from
5120 at least one section.
5121 (dwarf2out_init): Create text_section_line_info here ...
5122 (set_cur_line_info_table): ... not here.
5123
5124 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
5125
5126 PR target/48380
5127 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
5128 not called.
5129
5130 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
5131
5132 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
5133
5134 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
5135 (expr_equiv_p): Remove.
5136 (insert_set_in_table): Look at <dest, src> pair instead of expr.
5137 (hash_scan_set): Update call to insert_set_in_table.
5138 (dump_hash_table): Dump <dest, src> pair.
5139 (lookup_set): Simplify. Lookup <dest, src> pair.
5140 (compute_transp): Remove, fold heavily simplified code into...
5141 (compute_local_properties): ...here. Expect COMP and TRANSP
5142 unconditionally.
5143 (find_avail_set): Take set directly from struct expr.
5144 (find_bypass-set): Likewise.
5145 (bypass_block): Likewise.
5146 (cprop_insn): Likewise. Remove redundant INSN_P test.
5147
5148 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
5149 checks on form of COND from find_implicit_sets to here.
5150 (find_implicit_sets): Cleanup control flow. Split critical edges
5151 if it exposes implicit sets. Allocate/resize implicit_sets as
5152 necessary.
5153 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
5154 changed something. Run df_analyze after find_implicit_sets if any
5155 edges were split. Do not allocate implicit_sets here.
5156
5157 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
5158 (gcse_obstack): Renamed to cprop_obstack.
5159 (GNEW, GNEWVEC, GNEWVAR): Remove.
5160 (gmalloc): Remove.
5161 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
5162 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
5163 (gcse_alloc): Likewise, and rename to cprop_alloc.
5164 (alloc_gcse_men, free_gcse_mem): Remove.
5165 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
5166 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
5167 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
5168
5169 * cprop.c (oprs_not_set_p): Remove.
5170 (mark_set, mark_clobber): Remove.
5171 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
5172 (reg_not_set_p): New function.
5173 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
5174 (cprop_insn): Likewise.
5175 (cprop_jump): Use FOR_EACH_EDGE.
5176
5177 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
5178
5179 PR bootstrap/48403
5180 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
5181 (rank_for_schedule): Use scheduled_insns vector instead of
5182 last_scheduled_insn.
5183 (ok_for_early_queue_removal): Likewise.
5184 (queue_to_ready): Search forward in nonscheduled_insns_begin if
5185 we have a dbg_cnt.
5186 (choose_ready): Likewise.
5187 (commit_schedule): Use VEC_iterate.
5188 (schedule_block): Initialize nonscheduled_insns_begin. If we have
5189 a dbg_cnt, use it and ensure the first insn is in the ready list.
5190 (haifa_sched_init): Allocate scheduled_insns.
5191 (sched_extend_ready_list): Don't allocate it; reserve space.
5192 (haifa_sched_finish): Free it.
5193
5194 2011-04-04 Joseph Myers <joseph@codesourcery.com>
5195
5196 * optc-gen.awk: Always remove type from Variable entry before
5197 recording in var_seen.
5198
5199 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
5200
5201 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
5202 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
5203 call to tidy_fallthru_edges.
5204
5205 2011-04-04 Joseph Myers <joseph@codesourcery.com>
5206
5207 * doc/options.texi (ToLower): Document.
5208 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
5209 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
5210 * opts.h (cl_option): Add cl_tolower field.
5211 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
5212 arguments with lowercase strings.
5213 * config/rx/rx.opt (mcpu=): Add ToLower.
5214 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
5215 argument.
5216
5217 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
5218
5219 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
5220
5221 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
5222
5223 * config/vax/vax.c: Include reload.h.
5224
5225 2011-04-04 Anatoly Sokolov <aesok@post.ru>
5226
5227 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
5228 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5229 (sparc_preferred_reload_class): New function.
5230
5231 2011-04-04 Jakub Jelinek <jakub@redhat.com>
5232
5233 PR debug/48401
5234 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5235 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
5236
5237 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
5238
5239 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
5240 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
5241
5242 2011-04-03 Anatoly Sokolov <aesok@post.ru>
5243
5244 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
5245 (ASM_OUTPUT_ALIGNED_BSS): Define.
5246
5247 2011-04-03 Michael Matz <matz@suse.de>
5248
5249 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
5250 and next_slot members.
5251 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
5252 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
5253 (lto_streamer_cache_append): Declare.
5254 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
5255 unsigned index, remove offset parameter, ensure that we append
5256 or update existing entries.
5257 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
5258 parameter, update next_slot for append.
5259 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
5260 parameter.
5261 (lto_streamer_cache_insert_at): Likewise.
5262 (lto_streamer_cache_append): New function.
5263 (lto_streamer_cache_lookup): Use unsigned index.
5264 (lto_streamer_cache_get): Likewise.
5265 (lto_record_common_node): Don't test tree_node_can_be_shared.
5266 (preload_common_node): Adjust call to lto_streamer_cache_insert.
5267 (lto_streamer_cache_delete): Don't free offsets member.
5268 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
5269 (lto_output_string_with_length): Use lto_output_data_stream.
5270 (lto_output_tree_header): Remove ix parameter, don't write it.
5271 (lto_output_builtin_tree): Likewise.
5272 (lto_write_tree): Adjust callers to above, don't track and write
5273 offset, write unsigned index.
5274 (output_unreferenced_globals): Don't emit all global vars.
5275 (write_global_references): Use unsigned indices.
5276 (lto_output_decl_state_refs): Likewise.
5277 (write_symbol): Likewise.
5278 * lto-streamer-in.c (lto_input_chain): Move earlier.
5279 (input_function): Use unsigned index.
5280 (input_alias_pairs): Don't read and then ignore all global vars.
5281 (lto_materialize_tree): Remove ix_p parameter, don't read index,
5282 don't pass it back, use lto_streamer_cache_append.
5283 (lto_register_var_decl_in_symtab): Use unsigned index.
5284 (lto_register_function_decl_in_symtab): Likewise.
5285 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
5286 index.
5287 (lto_get_builtin_tree): Don't read index, use
5288 lto_streamer_cache_append.
5289 (lto_read_tree): Adjust call to lto_materialize_tree.
5290
5291 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
5292 don't use function calls in arguments to MIN.
5293
5294 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
5295 twice.
5296
5297 * gimple.c (gimple_type_leader_entry): Mark deletable.
5298
5299 2011-04-03 Alan Modra <amodra@gmail.com>
5300
5301 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
5302
5303 2011-04-03 Michael Matz <matz@suse.de>
5304
5305 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
5306 an integer.
5307 * tree.h (tree_decl_non_common.vindex): Adjust comment.
5308
5309 2011-04-03 Michael Matz <matz@suse.de>
5310
5311 * cgraphbuild.c (record_reference): Canonicalize constructor values.
5312 * gimple-fold.c (canonicalize_constructor_val): Accept being called
5313 without function context.
5314 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
5315 current_function_decl and cfun.
5316
5317 2011-04-03 Michael Matz <matz@suse.de>
5318
5319 * tree.c (decl_init_priority_insert): Don't create entry for
5320 default priority.
5321 (decl_fini_priority_insert): Ditto.
5322 (fields_compatible_p, find_compatible_field): Remove.
5323 * tree.h (fields_compatible_p, find_compatible_field): Remove.
5324 * gimple.c (gimple_compare_field_offset): Adjust block comment.
5325
5326 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
5327
5328 * combine.c (try_combine): Remove useless local variable.
5329
5330 2011-04-03 Richard Guenther <rguenther@suse.de>
5331 Ira Rosen <ira.rosen@linaro.org>
5332
5333 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
5334 non-variable offsets and compare the remaining bases of the two
5335 accesses instead of looking for exact same data-ref.
5336
5337 2011-04-02 Kai Tietz <ktietz@redhat.com>
5338
5339 PR target/48416
5340 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
5341
5342 * i386.c (ix86_is_msabi_thiscall): New helper function.
5343 (ix86_is_type_thiscall): New helper function.
5344 (ix86_comp_type_attributes): Handle thiscall for method-functions
5345 special.
5346 (init_cumulative_args): Likewise.
5347 (find_drap_reg): Likewise.
5348 (ix86_static_chain): Likewise.
5349 (x86_this_parameter): Likewise.
5350 (x86_output_mi_thunk): Likewise.
5351
5352 2011-04-01 Olivier Hainque <hainque@adacore.com>
5353 Nicolas Setton <setton@adacore.com>
5354 Eric Botcazou <ebotcazou@adacore.com>
5355
5356 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
5357 (add_gnat_descriptive_type_attribute): New function.
5358 (gen_array_type_die): Call it.
5359 (gen_enumeration_type_die): Likewise.
5360 (gen_struct_or_union_type_die): Likewise.
5361 (modified_type_die): Likewise.
5362 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
5363 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
5364 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
5365
5366 2011-04-01 Jakub Jelinek <jakub@redhat.com>
5367
5368 PR bootstrap/48148
5369 * dwarf2out.c (resolve_addr): Don't call force_decl_die
5370 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
5371
5372 Revert:
5373 2011-03-17 Richard Guenther <rguenther@suse.de>
5374
5375 PR bootstrap/48148
5376 * lto-cgraph.c (input_overwrite_node): Clear the abstract
5377 origin for decls in other ltrans units.
5378 (input_varpool_node): Likewise.
5379
5380 2011-04-01 Jakub Jelinek <jakub@redhat.com>
5381
5382 PR middle-end/48335
5383 * expr.c (expand_assignment): Handle all possibilities
5384 if TO_RTX is CONCAT.
5385 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
5386 (store_split_bit_field): If SUBREG_REG (op0) or
5387 op0 itself has smaller mode than word, return it
5388 for offset 0 and const0_rtx for out-of-bounds stores.
5389 If word is const0_rtx, skip it.
5390
5391 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
5392
5393 * config/h8300/h8300.c (print_operand_address): Rename to...
5394 (h8300_print_operand_address): ...this. Make static. Adjust comments.
5395 Call h8300_print_operand and h8300_print_operand_address instead of
5396 print_operand and print_operand_address. Declare.
5397 (print_operand): Renake to...
5398 (h8300_print_operand): ...this. Make static. Adjust comments.
5399 Call h8300_print_operand instead of print_operand. Declare.
5400 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
5401 (h8300_register_move_cost): Likewise.
5402 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
5403 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
5404 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
5405 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
5406 * config/h8300/h8300-protos.h (print_operand): Delete.
5407 (print_operand_address): Delete.
5408
5409 2011-04-01 Richard Henderson <rth@redhat.com>
5410
5411 PR 48400
5412 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
5413 in strict mode before dwarf4. Re-order tests to early out
5414 before switching sections.
5415
5416 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
5417
5418 * config/h8300/constraints.md: New file.
5419 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
5420 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
5421 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
5422 * config/h8300/predicates.md (bit_operand): Likewise.
5423 (incdec_operand): Use satisfies_constraint_M and
5424 satisfies_constraint_O. Don't use C code block.
5425 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
5426 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
5427 (compute_mov_length): Use satisfies_constraint_G.
5428 (fix_bit_operand): Use satisfies_constraint_U.
5429 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
5430 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
5431 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
5432 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
5433 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
5434 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
5435 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5436 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
5437 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
5438 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
5439 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
5440 (EXTRA_MEMORY_CONSTRAINT): Delete.
5441
5442 2011-04-01 Andrew Pinski <pinskia@gmail.com>
5443 Michael Meissner <meissner@linux.vnet.ibm.com>
5444
5445 PR target/48262
5446 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
5447 operands, as per the specifications.
5448
5449 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
5450 (vec_extract_evenv4sf): Ditto.
5451 (vec_extract_evenv8hi): Ditto.
5452 (vec_extract_evenv16qi): Ditto.
5453 (vec_extract_oddv4si): Ditto.
5454
5455 2011-03-31 Mark Wielaard <mjw@redhat.com>
5456
5457 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
5458 high_pc attribute if the CU has no associated code. Only output
5459 DW_AT_entry_pc for CU if not generating strict dwarf and
5460 dwarf_version < 4.
5461
5462 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
5463
5464 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
5465 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
5466 out of ...
5467 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
5468 * final.c (final_start_function): Call the new function rather
5469 than using a NULL argument for dwarf2out_frame_debug.
5470
5471 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
5472 that contains the prologue.
5473
5474 * haifa-sched.c (queue_insn): New arg REASON. All callers
5475 changed. Print it in debugging output.
5476
5477 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
5478
5479 * sched-ebb.c (begin_schedule_ready): Remove second argument.
5480 Split most of the code into...
5481 (begin_move_insn): ... here. New function.
5482 (ebb_sched_info): Add a pointer to it.
5483 * haifa-sched.c (scheduled_insns): New static variable.
5484 (sched_extend_ready_list): Allocate it.
5485 (schedule_block): Use it to record the order of scheduled insns.
5486 Perform RTL changes to move insns only after all scheduling
5487 decisions have been made.
5488 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
5489 begin_move_insn field.
5490 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5491 * sched-int.h (struct haifa_sched_info): Remove second argument
5492 from begin_schedule_ready hook. Add new member begin_move_insn.
5493 * sched-rgn.c (begin_schedule_ready): Remove second argument.
5494 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
5495
5496 * haifa-sched.c (prune_ready_list): New function, broken out of
5497 schedule_block.
5498 (schedule_block): Use it.
5499
5500 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5501
5502 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
5503
5504 2011-04-01 Kai Tietz <ktietz@redhat.com>
5505
5506 * config.gcc (*-*-mingw*): Allow as option the
5507 posix threading model.
5508 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
5509 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
5510 definition.
5511 (CPP_SPEC): Add pthread/no-pthread handling.
5512 (LIB_SPEC): Likewise.
5513 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
5514 (LIB_SPEC): Likewise.
5515 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
5516 flag to pass -pthread option for shared libgcc build.
5517 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
5518 for shared libgcc build.
5519 * config/i386/t-mingw-pthread: New file.
5520 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
5521 New define to enable use of library pthread by default.
5522 * config/i386/mingw.opt (pthread): New driver option.
5523 (no-pthread): New driver option.
5524 * config/i386/cygming.opt: Make sure trailing empty line is retained.
5525 * config/i386/mingw-w64.opt: Likewise.
5526
5527 2011-04-01 Gary Funck <gary@intrepid.com>
5528
5529 * c-decl.c (grokdeclarator): Fix formatting.
5530
5531 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5532
5533 * expr.c (emit_block_move_via_movmem): Use n_generator_args
5534 instead of n_operands.
5535 (set_storage_via_setmem): Likewise.
5536 * optabs.c (maybe_gen_insn): Likewise.
5537 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
5538 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
5539 (mips_expand_builtin_direct): Likewise.
5540 * config/spu/spu.c (expand_builtin_args): Likewise.
5541
5542 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5543
5544 * recog.h (insn_data_d): Add n_generator_args.
5545 * genoutput.c (data): Likewise.
5546 (output_insn_data): Print it.
5547 (max_opno, num_dups): Delete.
5548 (scan_operands): Just fill in "d->operand[...]".
5549 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
5550
5551 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5552
5553 * gensupport.h (pattern_stats): New structure.
5554 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
5555 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
5556 (max_operand_1, max_operand_vec): Delete.
5557 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
5558
5559 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
5560
5561 * emit-rtl.c (emit_pattern_after_setloc): New function.
5562 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
5563 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
5564 (emit_pattern_after): New function.
5565 (emit_insn_after, emit_jump_insn_after): Call it.
5566 (emit_call_insn_after, emit_debug_insn_after): Likewise.
5567 (emit_pattern_before_setloc): New function.
5568 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
5569 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
5570 Likewise.
5571 (emit_pattern_before): New function.
5572 (emit_insn_before, emit_jump_insn_before): Call it.
5573 (emit_call_insn_before, emit_debug_insn_before): Likewise.
5574
5575 2011-03-31 Richard Henderson <rth@redhat.com>
5576
5577 * dwarf2out.c (dw_separate_line_info_ref): Remove.
5578 (dw_separate_line_info_entry): Remove.
5579 (enum dw_line_info_opcode): New.
5580 (dw_line_info_entry): Use it.
5581 (dw_line_info_table, dw_line_info_table_p): New.
5582 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
5583 (line_info_table, line_info_label_num): Remove.
5584 (line_info_table_in_use): Remove.
5585 (separate_line_info_table): Remove.
5586 (separate_line_info_table_allocated): Remove.
5587 (separate_line_info_table_in_use): Remove.
5588 (LINE_INFO_TABLE_INCREMENT): Remove.
5589 (line_info_label_num): New.
5590 (cur_line_info_table): New.
5591 (text_section_line_info, cold_text_section_line_info): New.
5592 (separate_line_info): New.
5593 (SEPARATE_LINE_CODE_LABEL): Remove.
5594 (print_dwarf_line_table): Remove.
5595 (debug_dwarf): Don't dump it.
5596 (output_one_line_info_table): New.
5597 (output_line_info): Use it.
5598 (new_line_info_table): New.
5599 (set_cur_line_info_table): New.
5600 (dwarf2out_switch_text_section): Use it.
5601 (dwarf2out_begin_function): Likewise.
5602 (push_dw_line_info_entry): New.
5603 (dwarf2out_source_line): Rewrite for new line info tables.
5604 (dwarf2out_init): Remove dead initailizations.
5605
5606 2011-03-31 Joseph Myers <joseph@codesourcery.com>
5607
5608 * opts.h (cl_option): Add comments to fields. Add bit-fields for
5609 various flags.
5610 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
5611 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
5612 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
5613 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
5614 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
5615 * opt-functions.awk (flag_init, switch_bit_fields): New.
5616 (switch_flags): Don't handle flags moved to bit-fields. Don't
5617 generate CL_MISSING_OK or CL_SAVE.
5618 * optc-gen.awk: Update to generate bit-field output as well as
5619 flags field.
5620 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
5621 bit-field instead of CL_REJECT_DRIVER flag.
5622 * opts-common.c (generate_canonical_option,
5623 decode_cmdline_option): Use bit-fields instead of CL_* flags.
5624 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
5625 instead of CL_REJECT_NEGATIVE flag.
5626 * toplev.c (print_switch_values): Use cl_report bit-field instead
5627 of CL_REPORT flag.
5628
5629 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5630
5631 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
5632 a zero minimum index only if it is redundant.
5633
5634 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
5635
5636 PR rtl-optimization/48381
5637 * ira-color.c (assign_hard_reg): Use hard reg set intersection
5638 instead of ira_class_hard_reg_index for calculating conflicting
5639 hard registers.
5640
5641 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
5642
5643 * cprop.c: Clean up hash table building.
5644 (reg_avail_info): Remove.
5645 (oprs_available_p): Remove.
5646 (record_last_reg_set_info): Remove.
5647 (record_last_set_info): Remove.
5648 (reg_available_p): New function.
5649 (gcse_constant_p): Do not treat unfolded conditions as constants.
5650 (make_set_regs_unavailable): New function.
5651 (hash_scan_set): Simplify with new reg_available_p.
5652 (compute_hash_table_work): Traverse insns stream only once.
5653 Do not compute reg_avail_info. Traverse insns in reverse order.
5654 Record implicit sets after recording explicit sets from the block.
5655
5656 2011-03-31 Michael Matz <matz@suse.de>
5657
5658 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
5659
5660 2011-03-31 Anatoly Sokolov <aesok@post.ru>
5661
5662 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
5663 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
5664 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5665 (h8300_mode_dependent_address_p): New function.
5666 (h8300_get_index): Make static.
5667
5668 2011-03-31 Jeff Law <law@redhat.com>
5669
5670 * reload1.c (elimination_effects): Fix typo in recent change.
5671
5672 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
5673 typo potentially leading to null pointer dereference.
5674
5675 * caller-save.c (new_saved_hard_reg): Eliminate return value.
5676 (setup_save_areas): Corresponding changes to avoid useless
5677 assignments.
5678
5679 * jump.c (reversed_comparison_code_parts): Avoid successive return
5680 statements when REVERSE_CONDITION is defined.
5681
5682 * expr.c (expand_assignment): Avoid useless assignments.
5683 (expand_expr_real_1): Likewise.
5684 (expand_expr_real_2): Avoid useless statements.
5685
5686 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
5687
5688 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5689
5690 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
5691 statements.
5692
5693 * stmt.c (expand_expr_stmt): Avoid useless assignment.
5694
5695 2011-03-31 Joseph Myers <joseph@codesourcery.com>
5696
5697 PR target/47109
5698 * doc/tm.texi.in (TARGET_VERSION): Remove.
5699 * doc/tm.texi: Regenerate.
5700 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
5701 * collect2.c (main): Don't use TARGET_VERSION.
5702 * mips-tdump.c (main): Don't use TARGET_VERSION.
5703 * mips-tfile.c (main): Don't use TARGET_VERSION.
5704 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
5705 * config/rs6000/vxworksae.h: Remove.
5706 * config/alpha/alpha.h (TARGET_VERSION): Remove.
5707 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
5708 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
5709 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
5710 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5711 * config/arm/arm.h (TARGET_VERSION): Remove.
5712 * config/arm/coff.h (TARGET_VERSION): Remove.
5713 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
5714 * config/arm/elf.h (TARGET_VERSION): Remove.
5715 * config/arm/freebsd.h (TARGET_VERSION): Remove.
5716 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
5717 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
5718 * config/arm/pe.h (TARGET_VERSION): Remove.
5719 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
5720 * config/arm/semi.h (TARGET_VERSION): Remove.
5721 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
5722 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
5723 * config/arm/vxworks.h (TARGET_VERSION): Remove.
5724 * config/avr/avr.h (TARGET_VERSION): Remove.
5725 * config/bfin/bfin.h (TARGET_VERSION): Remove.
5726 * config/fr30/fr30.h (TARGET_VERSION): Remove.
5727 * config/frv/frv.h (TARGET_VERSION): Remove.
5728 * config/h8300/h8300.h (TARGET_VERSION): Remove.
5729 * config/i386/cygwin.h (TARGET_VERSION): Remove.
5730 * config/i386/darwin.h (TARGET_VERSION): Remove.
5731 * config/i386/darwin64.h (TARGET_VERSION): Remove.
5732 * config/i386/djgpp.h (TARGET_VERSION): Remove.
5733 * config/i386/freebsd.h (TARGET_VERSION): Remove.
5734 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
5735 * config/i386/gnu.h (TARGET_VERSION): Remove.
5736 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
5737 * config/i386/i386elf.h (TARGET_VERSION): Remove.
5738 * config/i386/linux.h (TARGET_VERSION): Remove.
5739 * config/i386/linux64.h (TARGET_VERSION): Remove.
5740 * config/i386/lynx.h (TARGET_VERSION): Remove.
5741 * config/i386/mingw32.h (TARGET_VERSION): Remove.
5742 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
5743 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
5744 * config/i386/netware.h (TARGET_VERSION): Remove.
5745 * config/i386/nto.h (TARGET_VERSION): Remove.
5746 * config/i386/openbsd.h (TARGET_VERSION): Remove.
5747 * config/i386/vxworks.h (TARGET_VERSION): Remove.
5748 * config/ia64/elf.h (TARGET_VERSION): Remove.
5749 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
5750 * config/ia64/hpux.h (TARGET_VERSION): Remove.
5751 * config/ia64/linux.h (TARGET_VERSION): Remove.
5752 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5753 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
5754 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5755 * config/lm32/lm32.h (TARGET_VERSION): Remove.
5756 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
5757 * config/m32c/m32c.h (TARGET_VERSION): Remove.
5758 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
5759 * config/m32r/m32r.h (TARGET_VERSION): Remove.
5760 * config/m68k/linux.h (TARGET_VERSION): Remove.
5761 * config/m68k/m68k.h (TARGET_VERSION): Remove.
5762 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
5763 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
5764 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
5765 * config/mep/mep.h (TARGET_VERSION): Remove.
5766 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
5767 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5768 * config/mips/iris6.h (MACHINE_TYPE): Remove.
5769 * config/mips/linux.h (TARGET_VERSION): Remove.
5770 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
5771 * config/mips/vxworks.h (TARGET_VERSION): Remove.
5772 * config/mmix/mmix.h (TARGET_VERSION): Remove.
5773 * config/mn10300/linux.h (TARGET_VERSION): Remove.
5774 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
5775 * config/pa/pa.h (TARGET_VERSION): Remove.
5776 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
5777 * config/picochip/picochip.h (TARGET_VERSION): Remove.
5778 * config/rs6000/aix.h (TARGET_VERSION): Remove.
5779 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
5780 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
5781 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
5782 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
5783 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
5784 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
5785 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
5786 * config/rs6000/linux.h (TARGET_VERSION): Remove.
5787 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
5788 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
5789 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
5790 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
5791 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
5792 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
5793 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
5794 * config/s390/linux.h (TARGET_VERSION): Remove.
5795 * config/s390/s390.h (TARGET_VERSION): Remove.
5796 * config/s390/tpf.h (TARGET_VERSION): Remove.
5797 * config/score/score.h (TARGET_VERSION): Remove.
5798 * config/sh/linux.h (TARGET_VERSION): Remove.
5799 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
5800 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
5801 * config/sh/sh.h (TARGET_VERSION): Remove.
5802 * config/sh/sh64.h (TARGET_VERSION): Remove.
5803 * config/sh/superh.h (TARGET_VERSION): Remove.
5804 * config/sh/vxworks.h (TARGET_VERSION): Remove.
5805 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
5806 * config/sparc/linux.h (TARGET_VERSION): Remove.
5807 * config/sparc/linux64.h (TARGET_VERSION): Remove.
5808 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
5809 TARGET_NAME32, TARGET_NAME): Remove.
5810 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
5811 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
5812 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
5813 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
5814 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
5815 * config/spu/spu.h (TARGET_VERSION): Remove.
5816 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
5817 * config/v850/v850.h (TARGET_VERSION): Remove.
5818 * config/vax/linux.h (TARGET_VERSION): Remove.
5819 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
5820 * config/xtensa/elf.h (TARGET_VERSION): Remove.
5821 * config/xtensa/linux.h (TARGET_VERSION): Remove.
5822
5823 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5824
5825 PR target/48142
5826 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
5827 frame-related from frame-unrelated adjustments to the stack pointer.
5828
5829 2011-03-31 Jakub Jelinek <jakub@redhat.com>
5830
5831 * common.opt (fdebug-types-section): Move earlier.
5832 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
5833
5834 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
5835
5836 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
5837 var.
5838
5839 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
5840
5841 * tree.h (CASE_CHAIN): Define.
5842 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
5843 (gimple_redirect_edge_and_branch): Likewise.
5844
5845 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5846
5847 PR middle-end/48367
5848 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
5849 calculation.
5850
5851 2011-03-30 Jeff Law <law@redhat.com>
5852
5853 * PR bootstrap/48371
5854 * reload1.c (reload): Fix botch in last change.
5855
5856 * reload.h (struct reload): Fix typo introduced in last change.
5857
5858 2011-03-30 Joseph Myers <joseph@codesourcery.com>
5859
5860 * config/arm/arm.opt (mhard-float, msoft-float): Mark
5861 Undocumented. Remove help text.
5862 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
5863 -mhard-float.
5864
5865 2011-03-30 Joseph Myers <joseph@codesourcery.com>
5866
5867 * doc/options.texi (NegativeAlias): Document.
5868 (Alias): Mention NegativeAlias.
5869 * opt-functions.awk: Handle NegativeAlias.
5870 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
5871 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
5872 * opts.h (CL_NEGATIVE_ALIAS): Define.
5873 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
5874 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
5875 OPT_mspe_.
5876 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
5877 Alias entries.
5878 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5879 mno-spe and mno-isel instead of mspe=no and -misel=no.
5880
5881 2011-03-29 Mark Wielaard <mjw@redhat.com>
5882
5883 * common.opt (fdebug-types-section): New flag.
5884 * doc/invoke.texi: Document new -fno-debug-types-section flag.
5885 * dwarf2out.c (use_debug_types): New define.
5886 (struct die_struct): Mark die_id with GTY desc use_debug_types.
5887 (print_die): Guard output of type unit signatures using
5888 use_debug_types.
5889 (build_abbrev_table): Replace assert of dwarf_version >= 4
5890 with assert on use_debug_types.
5891 (size_of_die): Likewise.
5892 (unmark_dies): Likewise.
5893 (value_format): Decide AT_ref_external form on use_debug_types.
5894 (output_die): Replace dwarf_version version check guard with
5895 use_debug_types where appropriate.
5896 (modified_type_die): Likewise.
5897 (gen_reference_type_die): Likewise.
5898 (dwarf2out_start_source_file): Likewise.
5899 (dwarf2out_end_source_file): Likewise.
5900 (prune_unused_types_walk_attribs): Likewise.
5901 (dwarf2out_finish): Likewise.
5902
5903 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5904
5905 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
5906
5907 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5908
5909 PR rtl-optimization/48332
5910 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
5911 mode of input operand N and modeN to its actual mode.
5912
5913 2011-03-30 Jeff Law <law@redhat.com>
5914
5915 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
5916 define accessor macro.
5917 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
5918 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
5919 (reg_equiv_init): Likewise.
5920 (reg_equivs_size): New variable.
5921 (reg_equiv_init_size): Remove.
5922 (allocate_initial_values): Move prototype to here from....
5923 * integrate.h (allocate_initial_values): Remove prototype.
5924 * integrate.c: Include reload.h.
5925 (allocate_initial_values): Corresponding changes.
5926 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
5927 (fix_reg_equiv_init, no_equiv): Corresponding changes.
5928 (update_equiv_regs): Corresponding changes.
5929 (ira): Corresponding changes.
5930 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5931 (push_secondary_reload): Corresponding changes.
5932 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5933 (make_memloc, find_reloads_address): Corresponding changes.
5934 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5935 (find_reloads_address_1): Corresponding changes.
5936 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5937 (refers_to_regno_for_reload_p): Corresponding changes.
5938 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5939 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5940 * reload1.c: Include ggc.h.
5941 (grow_reg_equivs): New function.
5942 (replace_pseudos_in, reload): Corresponding changes.
5943 (calculate_needs_all_insns, alter_regs): Corresponding changes.
5944 (eliminate_regs_1, elimination_effects): Corresponding changes.
5945 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5946 (delete_output_reload): Likewise.
5947 * caller-save.c (mark_referenced_regs): Corresponding changes.
5948 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5949 * frv/predicates.md (frv_load_operand): Corresponding changes.
5950 * microblaze/microblaze.c (double_memory_operand): Corresponding
5951 changes.
5952 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5953 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
5954 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
5955 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5956 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5957 changes.
5958 * pa/pa.c (emit_move_sequence): Corresponding changes.
5959 * vax/vax.c (nonindexed_address_p): Corresponding changes.
5960
5961 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5962
5963 PR target/47551
5964 * config/arm/arm.c (coproc_secondary_reload_class): Handle
5965 structure modes. Don't check neon_vector_mem_operand for
5966 vector or structure modes.
5967
5968 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5969 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5970
5971 PR target/43590
5972 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5973 operand 1 and reshuffle the operands to match.
5974 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5975
5976 2011-03-30 Christian Schüler <cschueler@gmx.de>
5977
5978 PR driver/48208
5979 * config/c.opt (F): Added 'Driver' to -F option.
5980
5981 PR driver/48260
5982 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5983 handler function.
5984 * config/darwin.opt: Added '-arch' option.
5985
5986 2011-03-30 Nick Clifton <nickc@redhat.com>
5987
5988 * config/rx/rx.md: Add peepholes and patterns to combine
5989 extending loads and simple arithmetic instructions.
5990 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
5991 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5992 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
5993 modes to use pre-decrement and post-increment addressing.
5994 (rx_is_restricted_memory_address): Add range checking of REG+INT
5995 addresses.
5996 (rx_print_operand): Add support for %Q. Fix handling of %Q.
5997 (rx_memory_move_cost): Adjust cost of stores.
5998 (rx_adjust_insn_length): New function.
5999
6000 2011-03-30 Jakub Jelinek <jakub@redhat.com>
6001
6002 PR c/48305
6003 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6004 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
6005 matching arg00/arg01 types.
6006
6007 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
6008
6009 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
6010 last_location to UNKNOWN_LOCATION.
6011
6012 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
6013
6014 PR target/48349
6015 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
6016 FLOAT_SSE_REGS.
6017
6018 2011-03-30 Joseph Myers <joseph@codesourcery.com>
6019 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6020
6021 PR bootstrap/48337
6022 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
6023 Init(PROCESSOR_V7).
6024 (sparc_cpu): Likewise.
6025 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
6026 PROCESSOR_V7.
6027
6028 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6029
6030 PR target/48336
6031 PR middle-end/48342
6032 PR rtl-optimization/48345
6033 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
6034 hard regs for given mode from profitable regs when doing secondary
6035 allocation.
6036
6037 2011-03-29 Jeff Law <law@redhat.com>
6038
6039 PR bootstrap/48327
6040 * tree-ssa-threadupdate.c (struct redirection_data): Remove
6041 do_not_duplicate field.
6042 (lookup_redirection_data): Corresponding changes.
6043 (create_duplicates): Always create a template block.
6044 (redirect_edges): Remove code which reused the original block
6045 when it was going to become unreachable code.
6046 (thread_block): Don't set do_not_duplicate field.
6047
6048 2011-03-29 Joseph Myers <joseph@codesourcery.com>
6049
6050 * lto-opts.c (register_user_option_p, lto_register_user_option):
6051 Make type argument unsigned.
6052 * lto-streamer.h (lto_register_user_option): Make type argument
6053 unsigned.
6054 * opth-gen.awk: Make CL_* macros unsigned.
6055 * opts-common.c (find_opt): Make lang_mask argument unsigned.
6056 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6057 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
6058 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
6059 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
6060 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
6061 (find_opt): Make lang_mask argument unsigned.
6062
6063 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6064
6065 PR rtl-optimization/48331
6066 PR rtl-optimization/48334
6067 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
6068 for any used algorithm.
6069
6070 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6071
6072 * ira-conflicts.c (build_object_conflicts): Add unused attribute
6073 to parent_max.
6074
6075 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
6076
6077 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
6078 (alpha_option_override): Don't set alpha_sr_alias_set.
6079 (emit_frame_store_1): Use gen_frame_mem rather than calling
6080 set_mem_alias_set.
6081 (alpha_expand_epilogue): Ditto.
6082
6083 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
6084
6085 PR tree-optimization/48290
6086 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
6087 vectorization, check that relevant phis in the basic block after
6088 the inner loop are really inner loop's exit phis.
6089
6090 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
6091
6092 PR debug/48190
6093 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
6094 (cached_dw_loc_list_def): New structure.
6095 (cached_dw_loc_list): New typedef.
6096 (cached_dw_loc_list_table): New variable.
6097 (cached_dw_loc_list_table_hash): New function.
6098 (cached_dw_loc_list_table_eq): Likewise.
6099 (add_location_or_const_value_attribute): Take a bool cache_p.
6100 Cache the list when the parameter is true.
6101 (gen_formal_parameter_die): Update caller.
6102 (gen_variable_die): Likewise.
6103 (dwarf2out_finish): Likewise.
6104 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
6105 while generating debug info for the decl.
6106 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
6107 (dwarf2out_init): Initialize cached_dw_loc_list_table.
6108 (resolve_addr): Cache the result of resolving a chain of
6109 location lists.
6110
6111 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
6112
6113 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
6114 conflict object hard regset nodes have intersecting hard reg sets.
6115
6116 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
6117 after regstat_init_n_sets_and_refs.
6118
6119 * ira.c: Add more comments at the top.
6120 (setup_stack_reg_pressure_class, setup_pressure_classes):
6121 Add comments how we compute the register pressure classes.
6122 (setup_allocno_and_important_classes): Add more comments.
6123 (setup_class_translate_array, reorder_important_classes)
6124 (setup_reg_class_relations): Add comments.
6125
6126 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
6127 start of the file.
6128
6129 * ira-color.c: Add 2011 to the Copyright line.
6130 (assign_hard_reg): Add more comments.
6131 (improve_allocation): Ditto.
6132
6133 * ira-costs.c: Add 2011 to the Copyright line.
6134 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
6135 comments.
6136 (setup_regno_cost_classes_by_mode): Ditto.
6137
6138 Initial patches from ira-improv branch:
6139
6140 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
6141
6142 * ira-build.c (ira_create_object): Remove initialization of
6143 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
6144 (ira_create_allocno): Remove initialization of
6145 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
6146 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
6147 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6148 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
6149 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
6150 Initialize ALLOCNO_ADD_DATA.
6151 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
6152 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
6153 ALLOCNO_REG.
6154 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
6155 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
6156
6157 * ira.c (ira_reallocate): Remove.
6158 (setup_pressure_classes): Call
6159 ira_init_register_move_cost_if_necessary. Use
6160 ira_register_move_cost instead of ira_get_register_move_cost.
6161 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
6162 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
6163
6164 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
6165 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6166 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
6167 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
6168 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
6169 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
6170 Fix formatting.
6171 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
6172 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6173 (struct allocno_color_data): New.
6174 (allocno_color_data_t): New typedef.
6175 (allocno_color_data): New definition.
6176 (ALLOCNO_COLOR_DATA): New macro.
6177 (struct object_color_data): New.
6178 (object_color_data_t): New typedef.
6179 (object_color_data): New definition.
6180 (OBJECT_COLOR_DATA): New macro.
6181 (update_copy_costs, calculate_allocno_spill_cost): Call
6182 ira_init_register_move_cost_if_necessary. Use
6183 ira_register_move_cost instead of ira_get_register_move_cost.
6184 (move_spill_restore, update_curr_costs): Ditto.
6185 (allocno_spill_priority): Make it inline.
6186 (color_pass): Allocate and free allocno_color_dat and object_color_data.
6187 (struct coalesce_data, coalesce_data_t): New.
6188 (allocno_coalesce_data): New definition.
6189 (ALLOCNO_COALESCE_DATA): New macro.
6190 (merge_allocnos, coalesced_allocno_conflict_p): Use
6191 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
6192 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
6193 (coalesce_allocnos): Ditto.
6194 (setup_coalesced_allocno_costs_and_nums): Ditto.
6195 (collect_spilled_coalesced_allocnos): Ditto.
6196 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
6197 (setup_slot_coalesced_allocno_live_ranges): Ditto.
6198 (coalesce_spill_slots): Ditto.
6199 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
6200 free allocno_coalesce_data.
6201
6202 * ira-conflicts.c: Fix formatting.
6203 (process_regs_for_copy): Call
6204 ira_init_register_move_cost_if_necessary. Use
6205 ira_register_move_cost instead of ira_get_register_move_cost.
6206 (build_object_conflicts): Optimize.
6207
6208 * ira-costs.c (record_reg_classes): Optimize. Call
6209 ira_init_register_move_cost_if_necessary. Use
6210 ira_register_move_cost, ira_may_move_in_cost, and
6211 ira_may_move_out_cost instead of ira_get_register_move_cost and
6212 ira_get_may_move_cost.
6213 (record_address_regs): Ditto.
6214 (scan_one_insn): Optimize.
6215 (find_costs_and_classes): Optimize.
6216 (process_bb_node_for_hard_reg_moves): Call
6217 ira_init_register_move_cost_if_necessary. Use
6218 ira_register_move_cost instead of ira_get_register_move_cost.
6219
6220 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
6221 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
6222 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
6223 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
6224 definitions.
6225 (ira_initiate_emit_data, ira_finish_emit_data)
6226 (create_new_allocno): New functions.
6227 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
6228 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
6229 Use ira_register_move_cost instead of ira_get_register_move_cost.
6230
6231 * ira-int.h: Fix some comments.
6232 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
6233 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6234 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
6235 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
6236 add_data.
6237 (struct ira_allocno): Make mode and aclass a bitfield. Move other
6238 bitfield after mode. Make hard_regno a short int. Make
6239 hard_regno short. Remove first_coalesced_allocno and
6240 next_coalesced_allocno. Move mem_optimized_dest_p,
6241 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
6242 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
6243 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
6244 temp, colorable_p. Add new member add_data.
6245 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
6246 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
6247 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
6248 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
6249 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
6250 (ALLOCNO_ADD_DATA): New macro.
6251 (ira_emit_data_t): New typedef.
6252 (struct ira_emit_data): New. Move mem_optimized_dest_p,
6253 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
6254 from struct ira_allocno.
6255 (ALLOCNO_EMIT_DATA): New macro.
6256 (ira_allocno_emit_data, allocno_emit_reg): New.
6257 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
6258 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
6259 (OBJECT_ADD_DATA): New macro.
6260 (ira_reallocate): Remove.
6261 (ira_initiate_emit_data, ira_finish_emit_data): New.
6262 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
6263 (ira_init_register_move_cost_if_necessary): New.
6264 (ira_object_conflict_iter_next): Merge into
6265 ira_object_conflict_iter_cond.
6266 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
6267
6268 * ira-live.c (process_single_reg_class_operands): Call
6269 ira_init_register_move_cost_if_necessary. Use
6270 ira_register_move_cost instead of ira_get_register_move_cost.
6271
6272 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
6273
6274 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
6275
6276 * ira-costs.c: Fix formatting.
6277 (cost_classes, cost_classes_num): Remove.
6278 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
6279 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
6280 (cost_classes_del, cost_classes_htab): New.
6281 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
6282 (initiate_regno_cost_classes, setup_cost_classes): New.
6283 (setup_regno_cost_classes_by_aclass): New.
6284 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
6285 (record_reg_classes): Use regno_cost_classes instead of
6286 cost_classes. Move checking opposite operand up.
6287 (record_address_regs): Use regno_cost_classes
6288 instead of cost_classes.
6289 (scan_one_insn): Ditto. Use always general register.
6290 (print_allocno_costs): Use regno_cost_classes instead of
6291 cost_classes.
6292 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
6293 (find_costs_and_classes): Set up cost classes for each registers.
6294 Use also their mode for this. Use regno_cost_classes instead of
6295 cost_classes.
6296 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
6297 cost_classes.
6298 (free_ira_costs, ira_init_costs): Don't use cost_classes.
6299 (ira_costs, ira_set_pseudo_classes): Call
6300 initiate_regno_cost_classes and finish_regno_cost_classes.
6301
6302 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
6303
6304 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
6305
6306 * target.def (ira_cover_classes): Remove.
6307
6308 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
6309
6310 * doc/tm.texi.in: Ditto.
6311
6312 * ira-conflicts.c: Remove mentioning cover classes from the file.
6313 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
6314 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
6315
6316 * targhooks.c (default_ira_cover_classes): Remove.
6317
6318 * targhooks.h (default_ira_cover_classes): Ditto.
6319
6320 * haifa-sched.c: Remove mentioning cover classes from the file.
6321 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
6322 ira_pressure_classes and ira_pressure_classes_num instead of
6323 ira_reg_class_cover_size and ira_reg_class_cover. Use
6324 sched_regno_pressure_class instead of sched_regno_cover_class.
6325 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
6326 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6327
6328 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
6329 classes from the file.
6330 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
6331 (struct object_hard_regs, struct object_hard_regs_node): New.
6332 (struct ira_object): New members profitable_hard_regs,
6333 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
6334 (struct ira_allocno): Rename cover_class to aclass. Rename
6335 cover_class_cost and updated_cover_class_cost to class_cost and
6336 updated_class_cost. Remove splay_removed_p and
6337 left_conflict_size. Add new members colorable_p.
6338 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
6339 (ALLOCNO_COLORABLE_P): New macro.
6340 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
6341 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
6342 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
6343 (OBJECT_...): Rename parameter C to O.
6344 (OBJECT_PROFITABLE_HARD_REGS): New macro.
6345 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
6346 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
6347 (struct target_ira_int): New members x_ira_max_memory_move_cost,
6348 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
6349 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
6350 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
6351 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
6352 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
6353 x_ira_reg_class_subunion.
6354 (ira_max_memory_move_cost, ira_max_register_move_cost)
6355 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
6356 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
6357 (ira_important_class_nums, ira_reg_class_superunion): New macros.
6358 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
6359 (ira_reg_class_union): Rename to ira_reg_class_subunion.
6360 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6361 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6362 (ira_tune_allocno_costs_and_cover_classes): Rename to
6363 ira_tune_allocno_costs.
6364 (ira_debug_hard_regs_forest): New.
6365 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
6366 (ira_object_conflict_iter_next): Fix comments.
6367 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
6368 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
6369 cover_class to aclass.
6370 (ira_allocate_and_accumulate_costs): Ditto.
6371 (ira_allocate_and_set_or_copy_costs): Ditto.
6372
6373 * opts.c (decode_options): Remove ira_cover_class check.
6374
6375 * ira-color.c: Remove mentioning cover classes from the file. Use
6376 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
6377 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
6378 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
6379 (splay-tree.h): Remove include.
6380 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
6381 before copy_freq_compare_func.
6382 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
6383 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
6384 New definitions.
6385 (hard_regs_roots, hard_regs_node_vec): Ditto.
6386 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
6387 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
6388 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
6389 (create_new_object_hard_regs_node): Ditto.
6390 (add_new_object_hard_regs_node_to_forest): Ditto.
6391 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
6392 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
6393 Ditto.
6394 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
6395 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
6396 (remove_unused_object_hard_regs_nodes): Ditto.
6397 (enumerate_object_hard_regs_nodes): Ditto.
6398 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
6399 (object_hard_regs_subnode_t): Ditto.
6400 (struct object_hard_regs_subnode): Ditto.
6401 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
6402 (setup_object_hard_regs_subnode_index): Ditto.
6403 (get_object_hard_regs_subnodes_num): Ditto.
6404 (form_object_hard_regs_nodes_forest): Ditto.
6405 (finish_object_hard_regs_nodes_tree): Ditto.
6406 (finish_object_hard_regs_nodes_forest): Ditto.
6407 (allocnos_have_intersected_live_ranges_p): Rename to
6408 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
6409 (pseudos_have_intersected_live_ranges_p): Rename to
6410 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
6411 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
6412 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
6413 (update_copy_costs): Remove assert. Skip cost update if the hard
6414 reg does not belong the class.
6415 (assign_hard_reg): Process only profitable hard regs.
6416 (uncolorable_allocnos_num): Make it scalar.
6417 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6418 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
6419 and ira_reg_class_max_nregs.
6420 (bucket_allocno_compare_func): Check frequency first.
6421 (sort_bucket): Add compare function as a parameter.
6422 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
6423 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
6424 (push_allocno_to_stack): Rewrite for checking new allocno
6425 colorability.
6426 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
6427 (push_only_colorable): Pass new parameter to sort_bucket.
6428 (push_allocno_to_spill): Remove.
6429 (allocno_spill_priority_compare): Make it inline and rewrite.
6430 (splay_tree_allocate, splay_tree_free): Remove.
6431 (allocno_spill_sort_compare): New function.
6432 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
6433 build and use splay tree. Choose first allocno in uncolorable
6434 allocno bucket to spill. Remove setting spill cost.
6435 (all_conflicting_hard_regs): Remove.
6436 (setup_allocno_available_regs_num): Check only profitable hard
6437 regs. Print info about hard regs nodes.
6438 (setup_allocno_left_conflicts_size): Remove.
6439 (put_allocno_into_bucket): Don't call
6440 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
6441 (improve_allocation): New.
6442 (color_allocnos): Call setup_profitable_hard_regs,
6443 form_object_hard_regs_nodes_forest, improve_allocation,
6444 finish_object_hard_regs_nodes_forest. Setup spill cost.
6445 (print_loop_title): Use pressure classes.
6446 (color_allocnso): Ditto.
6447 (do_coloring): Remove allocation and freeing splay_tree_node_pool
6448 and allocnos_for_spilling.
6449 (ira_sort_regnos_for_alter_reg): Don't setup members
6450 {first,next}_coalesced_allocno.
6451 (color): Remove allocating and freeing removed_splay_allocno_vec.
6452 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
6453 prohibited_class_mode_regs.
6454
6455 * ira-lives.c: Remove mentioning cover classes from the file. Fix
6456 formatting.
6457 (update_allocno_pressure_excess_length): Use pressure classes.
6458 (inc_register_pressure, dec_register_pressure): Check for pressure
6459 class.
6460 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
6461 pressure class. Use ira_reg_class_nregs instead of
6462 ira_reg_class_max_nregs.
6463 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
6464 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
6465 (single_reg_class): Use ira_reg_class_nregs instead of
6466 ira_reg_class_max_nregs.
6467 (process_bb_node_lives): Use pressure classes.
6468
6469 * ira-emit.c: Remove mentioning cover classes from the file. Use
6470 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
6471 (change_loop): Use pressure classes.
6472 (modify_move_list): Call ira_set_allocno_class instead of
6473 ira_set_allocno_cover_class.
6474
6475 * ira-build.c: Remove mentioning cover classes from the file. Use
6476 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
6477 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
6478 ALLOCNO_UPDATED_CLASS_COST instead of
6479 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
6480 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
6481 (ira_create_allocno): Remove initialization of
6482 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
6483 ALLOCNO_COLORABLE_P.
6484 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6485 Update conflict regs for the objects.
6486 (create_cap_allocno): Remove assert. Don't propagate
6487 ALLOCNO_AVAILABLE_REGS_NUM.
6488 (ira_free_allocno_costs): New function.
6489 (finish_allocno): Change a part of code into call of
6490 ira_free_allocno_costs.
6491 (low_pressure_loop_node_p): Use pressure classes.
6492 (object_range_compare_func): Don't compare classes.
6493 (setup_min_max_conflict_allocno_ids): Ditto.
6494
6495 * loop-invariant.c: Remove mentioning cover classes from the file.
6496 Use ira_pressure_classes and ira_pressure_classes_num instead of
6497 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
6498 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
6499 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6500 Use reg_allocno_class instead of reg_cover_class.
6501 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
6502 STACK_REG_COVER_CLASS.
6503 (get_regno_cover_class): Rename to get_regno_pressure_class.
6504 (move_loop_invariants): Initialize and finalize regstat.
6505
6506 * ira.c: Remove mentioning cover classes from the file. Add
6507 comments about coloring without cover classes. Use ALLOCNO_CLASS
6508 instead of ALLOCNO_COVER_CLASS. Fix formatting.
6509 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
6510 setup_class_subset_and_memory_move_costs.
6511 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
6512 (setup_cover_and_important_classes): Rename to
6513 setup_allocno_and_important_classes.
6514 (setup_class_translate_array): New.
6515 (setup_class_translate): Call it for allocno and pressure classes.
6516 (cover_class_order): Rename to allocno_class_order.
6517 (comp_reg_classes_func): Use ira_allocno_class_translate instead
6518 of ira_class_translate.
6519 (reorder_important_classes): Set up ira_important_class_nums.
6520 (setup_reg_class_relations): Set up ira_reg_class_superunion.
6521 (print_class_cover): Rename to print_classes. Add parameter.
6522 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6523 Print pressure classes too.
6524 (find_reg_class_closure): Rename to find_reg_classes. Don't call
6525 setup_reg_subclasses.
6526 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6527 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6528 (setup_prohibited_class_mode_regs): Use
6529 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
6530 (clarify_prohibited_class_mode_regs): New function.
6531 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
6532 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
6533 (ira_init_once): Initialize them.
6534 (free_register_move_costs): Process them.
6535 (ira_init): Move calls of find_reg_classes and
6536 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
6537 Call clarify_prohibited_class_mode_regs.
6538 (ira_no_alloc_reg): Remove.
6539 (too_high_register_pressure_p): Use pressure classes.
6540
6541 * sched-deps.c: Remove mentioning cover classes from the file.
6542 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
6543 ira_pressure_classes and ira_pressure_classes_num instead of
6544 ira_reg_class_cover_size and ira_reg_class_cover.
6545 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
6546 sched_regno_pressure_class instead of sched_regno_cover_class.
6547 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
6548 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6549
6550 * ira.h: Add 2010 to Copyright.
6551 (ira_no_alloc_reg): Remove external.
6552 (struct target_ira): Rename x_ira_hard_regno_cover_class,
6553 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
6554 x_ira_class_translate to x_ira_hard_regno_allocno_class,
6555 x_ira_allocno_classes_num, x_ira_allocno_classes, and
6556 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
6557 x_ira_pressure_classes, x_ira_pressure_class_translate, and
6558 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
6559 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
6560 x_ira_no_alloc_regs.
6561 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6562 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
6563 ira_allocno_classes_num and ira_allocno_classes.
6564 (ira_class_translate): Rename to ira_allocno_class_translate.
6565 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
6566 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
6567 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6568 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
6569 (ira_no_alloc_regs): New.
6570
6571 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
6572 classes from the file. Use ALLOCNO_CLASS instead of
6573 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
6574 ALLOCNO_COVER_CLASS_COST.
6575 (regno_cover_class): Rename to regno_aclass.
6576 (record_reg_classes): Use ira_reg_class_subunion instead of
6577 ira_reg_class_union.
6578 (record_address_regs): Check overflow.
6579 (scan_one_insn): Ditto.
6580 (print_allocno_costs): Print total mem cost fore regional allocation.
6581 (print_pseudo_costs): Use REG_N_REFS.
6582 (find_costs_and_classes): Use classes intersected with them on the
6583 1st pass. Check overflow. Use ira_reg_class_subunion instead of
6584 ira_reg_class_union. Use ira_allocno_class_translate and
6585 regno_aclass instead of ira_class_translate and regno_cover_class.
6586 Modify code for finding regno_aclass. Setup preferred classes for
6587 the next pass.
6588 (setup_allocno_cover_class_and_costs): Rename to
6589 setup_allocno_class_and_costs. Use regno_aclass instead of
6590 regno_cover_class. Use ira_set_allocno_class instead of
6591 ira_set_allocno_cover_class.
6592 (init_costs, finish_costs): Use regno_aclass instead of
6593 regno_cover_class.
6594 (ira_costs): Use setup_allocno_class_and_costs instead of
6595 setup_allocno_cover_class_and_costs.
6596 (ira_tune_allocno_costs_and_cover_classes): Rename to
6597 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
6598 by processing objects. Use ira_reg_class_max_nregs instead of
6599 ira_reg_class_nregs.
6600
6601 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
6602
6603 * sched-int.h: Remove mentioning cover classes from the file.
6604 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
6605
6606 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
6607 classes from the file.
6608 (struct reg_pref): Rename coverclass into allocnoclass.
6609 (reg_cover_class): Rename to reg_allocno_class.
6610
6611 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
6612
6613 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
6614
6615 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6616
6617 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
6618
6619 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
6620
6621 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
6622
6623 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
6624
6625 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
6626
6627 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
6628
6629 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
6630
6631 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
6632 (i386_ira_cover_classes): Ditto.
6633
6634 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6635
6636 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
6637
6638 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
6639
6640 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
6641
6642 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
6643
6644 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
6645
6646 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
6647 (mips_ira_cover_classes): Ditto.
6648
6649 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
6650
6651 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
6652
6653 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
6654
6655 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
6656
6657 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
6658
6659 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
6660 (IRA_COVER_CLASSES_VSX): Ditto.
6661
6662 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
6663 (rs6000_ira_cover_classes): Ditto.
6664
6665 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
6666
6667 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
6668
6669 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
6670
6671 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
6672
6673 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
6674
6675 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
6676
6677 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
6678
6679 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
6680
6681 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
6682
6683 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
6684
6685 2011-03-29 Jakub Jelinek <jakub@redhat.com>
6686
6687 PR debug/48253
6688 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
6689 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
6690 dw_fde_unlikely_section_end_label, cold_in_std_section,
6691 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
6692 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
6693 fields.
6694 (output_fde): Use dw_fde_second_{begin,end} if second is
6695 true, otherwise dw_fde_{begin,end}.
6696 (output_call_frame_info): Test dw_fde_second_begin != NULL
6697 instead of dw_fde_switched_sections.
6698 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
6699 fields, initialize new fields. Initialize in_std_section
6700 unconditionally from the first partition.
6701 (dwarf2out_end_epilogue): Don't override dw_fde_end when
6702 dw_fde_second_begin is non-NULL.
6703 (dwarf2out_switch_text_section): Stop initializing removed
6704 dw_fde_struct fields, initialize new fields, initialize
6705 also dw_fde_end here. Set dw_fde_switch_cfi even when
6706 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
6707 (struct var_loc_list_def): Add last_before_switch field.
6708 (arange_table, arange_table_allocated, arange_table_in_use,
6709 ARANGE_TABLE_INCREMENT, add_arange): Removed.
6710 (size_of_aranges): Count !in_std_section and !second_in_std_section
6711 hunks in fdes, instead of looking at arange_table_in_use.
6712 (output_aranges): Add aranges_length argument, don't call
6713 size_of_aranges here. Instead of using aranges_table*
6714 emit ranges for fdes when !in_std_section resp.
6715 !second_in_std_section.
6716 (dw_loc_list): Break ranges crossing section switch.
6717 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
6718 use dw_fde_second_end instead of dw_fde_end as end of last range.
6719 (gen_subprogram_die): Don't call add_arange. Use
6720 dw_fde_{begin,end} for first partition and if switched
6721 section dw_fde_second_{begin,end} for the second.
6722 (var_location_switch_text_section_1,
6723 var_location_switch_text_section): New functions.
6724 (dwarf2out_begin_function): Initialize cold_text_section even
6725 when function_section () isn't text_section.
6726 (prune_unused_types): Don't walk arange_table.
6727 (dwarf2out_finish): Don't needlessly test
6728 flag_reorder_blocks_and_partition when testing cold_text_section_used.
6729 If info_section_emitted, call size_of_aranges and if it indicates
6730 non-empty .debug_aranges, call output_aranges with the computed
6731 size. Stop using removed dw_fde_struct fields, use
6732 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
6733 for second.
6734
6735 PR debug/48203
6736 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
6737 create ENTRY_VALUE if incoming or address of incoming's MEM
6738 is a hard REG.
6739 * dwarf2out.c (mem_loc_descriptor): Don't emit
6740 DW_OP_GNU_entry_value of DW_OP_fbreg.
6741 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
6742 on ENTRY_VALUE is able to find the canonical parameter VALUE.
6743 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
6744 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
6745 ENTRY_VALUE_EXPs.
6746 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
6747 is a REG_P or MEM_P with REG_P address, compute hash directly
6748 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
6749 (preserve_only_constants): Don't clear VALUES forwaring
6750 ENTRY_VALUE to some other VALUE.
6751
6752 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
6753
6754 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
6755 instead of GEN_INT.
6756
6757 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6758
6759 * cfgexpand.c (expand_gimple_cond): Always set the source location and
6760 block before expanding the statement.
6761 (expand_gimple_stmt_1): Likewise. Set them here...
6762 (expand_gimple_stmt): ...and not here. Tidy.
6763 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
6764 unknown.
6765
6766 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6767
6768 * Makefile.in: New rule for cprop.o.
6769 * gcse.c: Move constant/copy propagation to cprop.c.
6770 (compute_local_properties): Only handle expression tables.
6771 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
6772 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
6773 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
6774 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
6775 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
6776 compute_cprop_data, find_used_regs, try_replace_reg,
6777 find_avail_set, cprop_jump, constprop_register, cprop_insn,
6778 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
6779 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
6780 find_bypass_set, reg_killed_on_edge, bypass_block,
6781 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
6782 execute_rtl_cprop, pass_rtl_cprop): Move to...
6783 * cprop.c: ...here. New file, constant/copy propagation for RTL
6784 moved from gcse.c to here with minor cleanups in duplicated code.
6785
6786 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
6787
6788 * config/i386/i386.c (flag_opts): Fix a typo in
6789 -mavx256-split-unaligned-store.
6790
6791 2011-03-28 Anatoly Sokolov <aesok@post.ru>
6792
6793 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6794 LIBCALL_VALUE): Remove macros.
6795 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6796 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6797 (h8300_function_value, h8300_libcall_value,
6798 h8300_function_value_regno_p): New functions.
6799
6800 2011-03-28 Anatoly Sokolov <aesok@post.ru>
6801
6802 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
6803
6804 2011-03-28 Jeff Law <law@redhat.com>
6805
6806 * tree-ssa-threadupdate.c (redirect_edges): Call
6807 create_edge_and_update_destination_phis as needed.
6808 (create_edge_and_update_destination_phis): Accept new BB argument.
6809 All callers updated.
6810 (thread_block): Do not update the profile when threading around
6811 intermediate blocks.
6812 (thread_single_edge): Likewise.
6813 (determine_bb_domination_status): If BB is not a successor of the
6814 loop header, return NONDOMINATING.
6815 (register_jump_thread): Note when we register a jump thread around
6816 an intermediate block.
6817 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
6818 (thread_across_edge): Use it.
6819
6820 2011-03-28 Tristan Gingold <gingold@adacore.com>
6821
6822 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
6823 when for_return is 2.
6824
6825 2011-03-28 Jeff Law <law@redhat.com>
6826
6827 * var-tracking.c (canonicalize_values_mark): Delete unused
6828 lhs assignment.
6829 (canonicalize_values_star, set_variable_part): Likewise.
6830 (clobber_variable_part, delete_variable_part): Likewise.
6831
6832 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6833
6834 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
6835
6836 2011-03-28 Martin Jambor <mjambor@suse.cz>
6837
6838 * tree-inline.c (expand_call_inline): Do not check that destination
6839 node is analyzed.
6840 (optimize_inline_calls): Assert that destination node is analyzed.
6841 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
6842 not call tree_lowering_passes.
6843 * cgraph.h (cgraph_analyze_function): Declare.
6844 * cgraphunit.c (cgraph_analyze_function): Make public.
6845
6846 2011-03-28 Joseph Myers <joseph@codesourcery.com>
6847
6848 * config/sparc/sparc-opts.h: New.
6849 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
6850 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
6851 (sparc_option_override): Store processor_type enumeration rather
6852 than string in cpu_default. Remove name and enumeration from
6853 cpu_table. Directly default -mcpu then default -mtune from -mcpu
6854 without using sparc_select. Use target_flags_explicit instead of
6855 fpu_option_set.
6856 * config/sparc/sparc.h (enum processor_type): Move to
6857 sparc-opts.h.
6858 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
6859 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
6860 HeaderInclude entry.
6861 (mcpu=, mtune=): Use Var and Enum.
6862 (sparc_processor_type): New Enum and EnumValue entries.
6863
6864 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6865 Iain Sandoe <iains@gcc.gnu.org>
6866
6867 PR target/48245
6868 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
6869
6870 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6871
6872 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
6873 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
6874 Insert new statements at it in lieu of STMT.
6875 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
6876 * tree-vect-stmts.c (vectorizable_store): Likewise.
6877 (vectorizable_load): Likewise.
6878
6879 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
6880
6881 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
6882 (divtf3): Ditto.
6883 (multf3): Ditto.
6884 (subtf3): Ditto.
6885
6886 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6887
6888 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
6889 unaligned 256bit load/store.
6890 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
6891 (*avx_movdqu<avxmodesuffix>): Likewise.
6892
6893 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6894
6895 PR target/48288
6896 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
6897 * config/pa/pa.md (iordi3): Use new predicate in expander.
6898 (iorsi3): Likewise.
6899
6900 2011-03-27 Anatoly Sokolov <aesok@post.ru>
6901
6902 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
6903 FUNCTION_VALUE_REGNO_P): Remove macros.
6904 * config/mips/mips-protos.h (mips_function_value): Remove.
6905 * config/mips/mips.c (mips_function_value): Rename to...
6906 (mips_function_value_1): ... this. Make static. Handle receiving
6907 the function type in 'fn_decl_or_type' argument.
6908 (mips_function_value, mips_libcall_value,
6909 mips_function_value_regno_p): New function.
6910 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6911 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6912
6913 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6914
6915 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
6916 and -mavx256-split-unaligned-store.
6917 (ix86_option_override_internal): Split 32-byte AVX unaligned
6918 load/store by default.
6919 (ix86_avx256_split_vector_move_misalign): New.
6920 (ix86_expand_vector_move_misalign): Use it.
6921
6922 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
6923 -mavx256-split-unaligned-store.
6924
6925 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
6926 256bit load/store. Generate unaligned store on misaligned memory
6927 operand.
6928 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
6929 256bit load/store.
6930 (*avx_movdqu<avxmodesuffix>): Likewise.
6931
6932 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6933 -mavx256-split-unaligned-store.
6934
6935 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6936
6937 PR target/38598
6938 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6939 Update commentary.
6940
6941 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6942
6943 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6944 opno arguments with an expand_operand. Use create_input_operand.
6945 (mips_prepare_builtin_target): Delete.
6946 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6947 functions.
6948 (mips_expand_builtin_direct): Use create_output_operand and
6949 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
6950 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
6951 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6952
6953 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
6954
6955 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6956 function.
6957 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6958
6959 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6960
6961 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6962 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
6963 basic blocks and call commit_edge_insertions directly.
6964 (fixup_abnormal_edges): Move from here to...
6965 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
6966 on the edges and return whether some have actually been inserted.
6967 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6968 compensation code.
6969
6970 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
6971
6972 PR rtl-optimization/48144
6973 * sel-sched-ir.c (merge_history_vect): Factor out from ...
6974 (merge_expr_data): ... here.
6975 (av_set_intersect): Rename to av_set_code_motion_filter.
6976 Update all callers. Call merge_history_vect when an expression
6977 is found in both sets.
6978 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6979
6980 2011-03-26 Alan Modra <amodra@gmail.com>
6981
6982 * config/rs6000/predicates.md (word_offset_memref_op): Handle
6983 cmodel medium addresses.
6984 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6985 64-bit gpr loads and stores.
6986 (rs6000_secondary_reload_ppc64): New function.
6987 * config/rs6000/rs6000-protos.h: Declare it.
6988 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6989
6990 2011-03-26 Alan Modra <amodra@gmail.com>
6991
6992 PR target/47487
6993 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6994 GNU Go in traceback table.
6995
6996 2011-03-25 Richard Henderson <rth@redhat.com>
6997
6998 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6999 if there are exactly 6 operands.
7000 (set_storage_via_setmem): Similarly.
7001
7002 2011-03-25 Kai Tietz <ktietz@redhat.com>
7003
7004 * collect2.c (write_c_file_stat): Handle backslash
7005 as right-hand directory separator.
7006 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
7007 checking just for slash.
7008 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
7009 instead of checking for trailing slash.
7010 * gcc.c (record_temp_file): Use filename_cmp instead
7011 of strcmp.
7012 (do_spec_1): Likewise.
7013 (replace_outfile_spec_function): Likewise.
7014 (is_directory): Use filename_ncmp instead of strncmp.
7015 (print_multilib_info): Likewise.
7016 * gcov.c (find_source): Use filename_cmp instead
7017 instead of strcmp.
7018 (make_gcov_file_name): Fix order of slash/backslash
7019 checks.
7020 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
7021 (add_standard_paths): Likewise.
7022 * mips-tfile.c (saber_stop): Handle backslash.
7023 * prefix.c (update_path): Use filename_ncmp instead of
7024 strncmp.
7025 * profile.c (output_location): Use filename_cmp instead
7026 of strcmp.
7027 * read-md.c (handle_toplevel_file): Handle backslash.
7028 * tlink.c (frob_extension): Likewise.
7029 * tree-cfg.c (same_line_p): Use filename_cmp instead of
7030 strcmp.
7031 * tree-dump.c (dequeue_and_dump): Handle backslash.
7032 * tree.c (get_file_function_name): Likewise.
7033 * gengtype.c (read_input_list): Likewise.
7034 (get_file_realbasename): Likewise.
7035 (get_output_file_with_visibility): Use filename_cmp
7036 instead of strcmp.
7037
7038 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
7039
7040 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
7041 case to VFPv1.
7042
7043 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7044
7045 * fold-const.c (expr_location_or): New function.
7046 (fold_truth_not_expr): Call it.
7047
7048 2011-03-25 Jeff Law <law@redhat.com>
7049
7050 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
7051 va_end.
7052 * c-family/c-common.c (def_fn_type): Likewise.
7053 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
7054 * emit-rtl.c (gen_rtvec): Likewise.
7055 * lto/lto-lang.c (def_fn_type): Likewise.
7056
7057 2011-03-25 Richard Guenther <rguenther@suse.de>
7058
7059 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
7060 also generate copies.
7061 (fini_copy_prop): Handle constant values properly.
7062
7063 2011-03-25 Jakub Jelinek <jakub@redhat.com>
7064
7065 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
7066 mode size instead of bitsize with DWARF2_ADDR_SIZE.
7067 (hash_loc_operands, compare_loc_operands): Handle
7068 DW_OP_GNU_entry_value.
7069
7070 2011-03-25 Kai Tietz <ktietz@redhat.com>
7071
7072 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
7073 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
7074 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
7075 comment and use macro TARGET_64BIT_MS_ABI instead.
7076 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
7077 and change default behavior for 32-bit MS_ABI.
7078 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
7079 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
7080 32-bit, too.
7081 (ix86_cfun_abi): Likewise.
7082 (ix86_maybe_switch_abi): Adjust comment.
7083 (init_cumulative_args): Check for bit-ness in MS_ABI case.
7084 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
7085 instead of checking for SYSV_ABI.
7086 (ix86_nsaved_sseregs): Likewise.
7087 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
7088 to 16 bytes.
7089 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
7090 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
7091 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
7092 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
7093 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
7094
7095 2011-03-25 Richard Guenther <rguenther@suse.de>
7096
7097 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
7098 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7099 (verify_gimple): Remove.
7100 * tree-cfg.c (verify_gimple_call): Merge verification
7101 from verify_stmts.
7102 (verify_gimple_phi): Merge verification from verify_stmts.
7103 (verify_gimple_label): New function.
7104 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
7105 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7106 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
7107 (verify_stmts): Rename to verify_gimple_in_cfg.
7108 (verify_gimple_in_cfg): New function.
7109 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
7110 * tree-ssa.c (verify_ssa): Likewise.
7111 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
7112
7113 2011-03-25 Richard Guenther <rguenther@suse.de>
7114
7115 * passes.c (init_optimization_passes): Add FRE pass after
7116 early SRA.
7117
7118 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
7119 Andrew Stubbs <ams@codesourcery.com>
7120
7121 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
7122 for Cortex-A8.
7123 (arm_movdi_vfp_cortexa8): New pattern.
7124 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
7125 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
7126 instructions when tuning for Cortex-A8. Set attribute "arch".
7127 * config/arm/arm.md: Move include arm-tune.md up a bit.
7128 (define_attr "arch"): Add "onlya8" and "nota8" values.
7129 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
7130
7131 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7132
7133 PR bootstrap/48282
7134 Revert:
7135 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7136
7137 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7138 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
7139 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7140 * passes.c (init_optimization_passes): Move
7141 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7142
7143 2011-03-25 Kai Tietz <ktietz@redhat.com>
7144
7145 * c-typeck.c (comptypes_internal): Replace target
7146 hook call of comp_type_attributes by version in tree.c file.
7147 * gimple.c (gimple_types_compatible_p_1): Likewise.
7148 * tree-ssa.c (useless_type_conversion_p): Likewise.
7149 * tree.c (build_type_attribute_qual_variant): Likewise.
7150 (attribute_value_equal): New static helper function.
7151 (comp_type_attributes): New function.
7152 (merge_attributes): Use attribute_value_equal for comparison.
7153 (attribute_list_contained): Likewise.
7154 * tree.h (comp_type_attributes): New prototype.
7155
7156 2011-03-25 Richard Guenther <rguenther@suse.de>
7157
7158 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
7159 of complex types at -O0.
7160 (verify_gimple_assign_binary): Likewise.
7161 (verify_gimple_assign_ternary): Likewise.
7162
7163 2011-03-24 Mark Wielaard <mjw@redhat.com>
7164
7165 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
7166 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
7167
7168 2011-03-24 Mark Wielaard <mjw@redhat.com>
7169
7170 PR debug/48041
7171 * dwarf2out.c (output_abbrev_section): Only write table when
7172 abbrev_die_table_in_use > 1.
7173
7174 2011-02-24 Richard Henderson <rth@redhat.com>
7175
7176 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
7177 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
7178 (alpha_expand_unaligned_load_words): Use extql.
7179 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
7180 (emit_insxl): Handle all modes for consistency.
7181
7182 2011-02-24 Richard Henderson <rth@redhat.com>
7183
7184 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
7185 (alpha_expand_unaligned_load): Likewise.
7186 (alpha_expand_unaligned_store): Likewise.
7187 (alpha_expand_unaligned_load_words): Likewise.
7188 (alpha_expand_unaligned_store_words): Likewise.
7189 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
7190 (alpha_split_lock_test_and_set_12): Likewise.
7191 (print_operand, alpha_fold_builtin_extxx): Likewise.
7192 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
7193 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
7194 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
7195 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
7196 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
7197 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
7198 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
7199 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
7200 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
7201 (extwl, extll, extql): Similarly.
7202 (inswh, inslh, insqh): Similarly.
7203 (mskbl, mskwl, mskll, mskql): Similarly.
7204 (mskwh, msklh, mskqh): Similarly.
7205
7206 2011-02-24 Richard Henderson <rth@redhat.com>
7207
7208 * config/alpha/alpha.md (attribute isa): Add er, ner.
7209 (attribute enabled): Handle them.
7210 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
7211
7212 2011-02-24 Richard Henderson <rth@redhat.com>
7213
7214 * config/alpha/alpha.md (attribute isa): Add vms.
7215 (attribute enabled): Handle it.
7216 (*movsf): Merge *movsf_{nofix,fix,nofp}.
7217 (*movdf): Merge *movdf_{nofix,fix,nofp}.
7218 (*movtf): Rename from *movtf_internal for consistency.
7219 (*movsi): Merge with *movsi_nt_vms.
7220 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
7221 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
7222 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
7223 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
7224
7225 2011-02-24 Richard Henderson <rth@redhat.com>
7226
7227 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
7228 (extendqisi2, extendhisi2): Likewise.
7229 (extendqidi2): Simplify BWX/non-BWX expansions.
7230 (extendhidi2): Similarly.
7231
7232 2011-02-24 Richard Henderson <rth@redhat.com>
7233
7234 * config/alpha/alpha.md (attribute isa): New.
7235 (attribute enabled): New.
7236 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
7237 (zero_extendqisi2, zero_extendqidi2): Similarly.
7238 (zero_extendhisi2, zero_extendhidi2): Similarly.
7239 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
7240
7241 2011-02-24 Richard Henderson <rth@redhat.com>
7242
7243 * config/alpha/predicates.md (input_operand): Revert last change;
7244 update comment to mention 32-bit VMS rather than Windows.
7245
7246 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7247
7248 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7249 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
7250 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7251 * passes.c (init_optimization_passes): Move
7252 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7253
7254 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7255
7256 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
7257
7258 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
7259
7260 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
7261 correctly.
7262
7263 2011-03-24 Jakub Jelinek <jakub@redhat.com>
7264
7265 PR debug/48204
7266 * simplify-rtx.c (simplify_const_unary_operation): Call
7267 real_convert when changing mode class with FLOAT_EXTEND.
7268
7269 2011-03-24 Nick Clifton <nickc@redhat.com>
7270
7271 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
7272 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
7273 * config/rx/rx.c (rx_option_override): Set align_jumps,
7274 align_loops and align_labels if not set by the user.
7275 (rx_align_for_label): New function.
7276 (rx_max_skip_for_label): New function.
7277 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
7278 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
7279 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
7280 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
7281 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
7282
7283 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7284
7285 PR rtl-optimization/48263
7286 * optabs.c (expand_binop_directly): Reinstate convert_modes code
7287 and original commutative_p handling. Use maybe_gen_insn.
7288
7289 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7290
7291 * reload.c (find_reloads_subreg_address): Add address_reloaded
7292 parameter and return true there if the full address has been
7293 reloaded.
7294 (find_reloads_toplev): Pass address_reloaded flag.
7295 (find_reloads_address_1): Don't use address_reloaded parameter.
7296
7297 2011-03-24 Jeff Law <law@redhat.com>
7298
7299 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
7300 unused variable "ann".
7301 (remove_unused_locals): Likewise.
7302
7303 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
7304 statement.
7305
7306 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
7307 after it is freed.
7308
7309 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7310
7311 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
7312 for invalid symbolic addresses.
7313 (s390_secondary_reload): Don't use s390_check_symref_alignment for
7314 larl operands.
7315
7316 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7317
7318 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
7319 the argument in calls to fold_truth_not_expr.
7320
7321 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7322
7323 * tree.c (record_node_allocation_statistics): New function.
7324 (make_node_stat, copy_node_stat, build_string): Call it.
7325 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
7326 (build1_stat, build_omp_clause): Likewise.
7327
7328 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7329
7330 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
7331 last commit.
7332
7333 2011-03-24 Richard Guenther <rguenther@suse.de>
7334
7335 PR tree-optimization/48271
7336 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
7337 blocks that still exist.
7338
7339 2011-03-24 Richard Guenther <rguenther@suse.de>
7340
7341 PR tree-optimization/48270
7342 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
7343 not free datarefs before ddrs.
7344
7345 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7346
7347 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
7348 from the address built for a reference with variable offset.
7349
7350 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
7351
7352 PR target/48237
7353 * config/i386/i386.md (*movdf_internal_rex64): Do not split
7354 alternatives that can be handled with movq or movabsq insn.
7355 (*movdf_internal): Disable for !TARGET_64BIT.
7356 (*movdf_internal_nointeger): Ditto.
7357 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
7358
7359 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7360
7361 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7362 (FUNCTION_ARG_ADVANCE): Likewise.
7363 * tm.texi.in: Change references to them to hook references.
7364 * tm.texi: Regenerate.
7365 * targhooks.c (default_function_arg): Eliminate check for target macro.
7366 (default_function_incoming_arg): Likewise.
7367 (default_function_arg_advance): Likewise.
7368 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
7369 (function_arg_advance): Likewise.
7370 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7371
7372 2011-03-24 Richard Guenther <rguenther@suse.de>
7373
7374 PR middle-end/48269
7375 * tree-object-size.c (addr_object_size): Do not double-account
7376 for MEM_REF offsets.
7377
7378 2011-03-24 Diego Novillo <dnovillo@google.com>
7379
7380 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
7381 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
7382 (lto_input_data_block): Move from lto-opts.c. Make extern.
7383 Update all users.
7384 (lto_input_string): Rename from input_string. Make extern.
7385 Update all users.
7386 * lto-streamer-out.c (lto_output_string_with_length): Rename from
7387 output_string_with_length.
7388 Output 0 to indicate a non-NULL string. Update all callers to
7389 not emit 0.
7390 (lto_output_string): Rename from output_string. Make extern.
7391 Update all users.
7392 (lto_output_decl_state_streams): Make extern.
7393 (lto_output_decl_state_refs): Make extern.
7394 * lto-streamer.h (lto_input_string): Declare.
7395 (lto_input_data_block): Declare.
7396 (lto_output_string): Declare.
7397 (lto_output_string_with_length): Declare.
7398 (lto_output_decl_state_streams): Declare.
7399 (lto_output_decl_state_refs): Declare.
7400
7401 2011-03-24 Richard Guenther <rguenther@suse.de>
7402
7403 PR tree-optimization/46562
7404 * tree.c (build_invariant_address): New function.
7405 * tree.h (build_invariant_address): Declare.
7406 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
7407 a renamed function moved ...
7408 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
7409 Take valueization callback parameter.
7410 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
7411 * gimple-fold.h: New file.
7412 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
7413 (ccp_fold, fold_const_aggregate_ref,
7414 fold_ctor_reference, fold_nonarray_ctor_reference,
7415 fold_array_ctor_reference, fold_string_cst_ctor_reference,
7416 get_base_constructor): Move ...
7417 * gimple-fold.c: ... here.
7418 (gimple_fold_stmt_to_constant_1): New function
7419 split out from ccp_fold. Take a valueization callback parameter.
7420 Valueize all operands.
7421 (gimple_fold_stmt_to_constant): New wrapper function.
7422 (fold_const_aggregate_ref_1): New function split out from
7423 fold_const_aggregate_ref. Take a valueization callback parameter.
7424 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
7425 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
7426 invariant POINTER_PLUS_EXPRs to invariant form.
7427 (vn_valueize): New function.
7428 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
7429 * tree-vrp.c (vrp_valueize): New function.
7430 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
7431 to fold statements to constants.
7432 * tree-ssa-pre.c (eliminate): Properly guard propagation of
7433 function declarations.
7434 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
7435 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
7436
7437 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7438
7439 * config/h8300/predicates.md (jump_address_operand): Fix register
7440 mode check.
7441
7442 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
7443
7444 * doc/invoke.texi (max-stores-to-sink): Document.
7445 * params.h (MAX_STORES_TO_SINK): Define.
7446 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
7447 if either vectorization or if-conversion is disabled.
7448 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
7449 tree-vect-data-refs.c vect_equal_offsets.
7450 (dr_equal_offsets_p): New function.
7451 (find_data_references_in_bb): Remove static.
7452 * tree-data-ref.h (find_data_references_in_bb): Declare.
7453 (dr_equal_offsets_p): Likewise.
7454 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
7455 (vect_drs_dependent_in_basic_block): Update calls to
7456 vect_equal_offsets.
7457 (vect_check_interleaving): Likewise.
7458 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
7459 (cond_if_else_store_replacement): Rename to...
7460 (cond_if_else_store_replacement_1): ... this. Change arguments and
7461 documentation.
7462 (cond_if_else_store_replacement): New function.
7463 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
7464 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
7465
7466 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
7467
7468 PR target/46934
7469 * config/arm/arm.md (casesi): Use the gen_int_mode() function
7470 to subtract lower bound instead of GEN_INT().
7471
7472 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
7473
7474 PR other/48179
7475 PR other/48221
7476 PR other/48234
7477 * doc/extend.texi (Alignment): Move section to match order in TOC.
7478 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
7479 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
7480
7481 2011-03-23 Jeff Law <law@redhat.com>
7482
7483 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
7484 before removing the edge.
7485
7486 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
7487 it may have been freed by redirect_branch_edge or
7488 redirect_edge_succ_nodup.
7489
7490 2011-03-23 Richard Guenther <rguenther@suse.de>
7491
7492 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
7493 (check_va_list_escapes): Likewise.
7494 (check_all_va_list_escapes): Likewise.
7495
7496 2011-03-23 Richard Guenther <rguenther@suse.de>
7497
7498 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
7499 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
7500 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
7501 (alias.o): Likewise.
7502 (ipa-type-escape.o): Remove.
7503 (ipa-struct-reorg.o): Likewise.
7504 (GTFILES): Remove ipa-struct-reorg.c.
7505 * alias.c: Do not include ipa-type-escape.h.
7506 * tree-ssa-alias.c: Likewise.
7507 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
7508 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
7509 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
7510 and ipa-type-escape passes.
7511 * tree-pass.h (pass_ipa_type_escape): Remove.
7512 (pass_ipa_struct_reorg): Likewise.
7513 * ipa-struct-reorg.h: Remove.
7514 * ipa-struct-reorg.c: Likewise.
7515 * ipa-type-escape.h: Likewise.
7516 * ipa-type-escape.c: Likewise.
7517 * doc/invoke.texi (-fipa-struct-reorg): Remove.
7518 (--param struct-reorg-cold-struct-ratio): Likewise.
7519 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7520 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7521 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
7522
7523 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7524
7525 * config/s390/2084.md: Enable all insn reservations also for z9_ec
7526 cpu attribute value.
7527 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
7528 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
7529 * config/s390/s390.c (processor_flags_table): New constant array.
7530 (s390_handle_arch_option): Remove.
7531 (s390_handle_option): Remove s390_handle_arch_option invocations
7532 and OPT_mwarn_framesize_ handling.
7533 (s390_option_override): Remove s390_handle_arch_option invocation.
7534 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
7535 warnings.
7536 * config/s390/s390.md (cpu attribute): Add z9_ec value.
7537 * config/s390/s390.opt (s390_tune, s390_arch)
7538 (march=): Replace s390_arch_option enum and values with
7539 processor_type. Set variable name to s390_arch. Set
7540 initialization value.
7541 (mtune=): Replace s390_arch_option with processor_type. Set
7542 variable name to s390_tune. Set initialization value.
7543
7544 2011-03-23 Julian Brown <julian@codesourcery.com>
7545
7546 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
7547 accesses which are not naturally aligned.
7548
7549 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7550
7551 PR target/47553
7552 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
7553
7554 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7555
7556 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
7557 parameter from "int" to "enum insn_code".
7558 (expand_operand_type): New enum.
7559 (expand_operand): New structure.
7560 (create_expand_operand): New function.
7561 (create_fixed_operand, create_output_operand): Likewise
7562 (create_input_operand, create_convert_operand_to): Likewise.
7563 (create_convert_operand_from, create_address_operand): Likewise.
7564 (create_integer_operand): Likewise.
7565 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
7566 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7567 (expand_insn, expand_jump_insn): Likewise.
7568 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
7569 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
7570 (expand_movstr, expand_builtin___clear_cache): Likewise.
7571 (expand_builtin_lock_release): Likewise.
7572 * explow.c (allocate_dynamic_stack_space): Likewise.
7573 (probe_stack_range): Likewise. Allow check_stack to FAIL,
7574 and use the default handling in that case.
7575 * expmed.c (check_predicate_volatile_ok): Delete.
7576 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
7577 (emit_cstore): Likewise.
7578 * expr.c (emit_block_move_via_movmem): Likewise.
7579 (set_storage_via_setmem, expand_assignment): Likewise.
7580 (emit_storent_insn, try_casesi): Likewise.
7581 (emit_single_push_insn): Likewise. Allow the expansion to fail.
7582 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
7583 (expand_vec_shift_expr, expand_binop_directly): Likewise.
7584 (expand_twoval_unop, expand_twoval_binop): Likewise.
7585 (expand_unop_direct, emit_indirect_jump): Likewise.
7586 (emit_conditional_move, vector_compare_rtx): Likewise.
7587 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
7588 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
7589 (expand_sync_lock_test_and_set): Likewise.
7590 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
7591 (emit_unop_insn): Likewise.
7592 (expand_copysign_absneg): Change icode to an insn_code.
7593 (create_convert_operand_from_type): New function.
7594 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
7595 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7596 (expand_insn, expand_jump_insn): Likewise.
7597 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
7598 than const_int_operand for operand 2.
7599
7600 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7601
7602 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
7603 if possible.
7604
7605 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7606
7607 * emit-rtl.c (emit_pattern_before_noloc): New function.
7608 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
7609 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
7610 (emit_pattern_after_noloc): New function.
7611 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
7612 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
7613
7614 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7615
7616 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
7617 (__ffsDI2): Likewise.
7618
7619 2011-03-22 Richard Henderson <rth@redhat.com>
7620
7621 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
7622 of !TARGET_ABI_OPEN_VMS.
7623 (alpha_trampoline_init, alpha_start_function): Likewise.
7624 (alpha_expand_epilogue, alpha_file_start): Likewise.
7625 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
7626 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
7627 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
7628 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
7629 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
7630
7631 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7632
7633 * config/s390/s390-opts.h: New.
7634 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
7635 s390_arch_flags, s390_warn_framesize, s390_stack_size,
7636 s390_stack_guard): Remove.
7637 (s390_handle_arch_option): Return void. Take enum
7638 s390_arch_option value instead of string and searching array.
7639 (s390_handle_option): Don't assert that global structures are in
7640 use. Access variables via opts pointer. Use error_at. Don't use
7641 sscanf for -mstack-guard= or -mstack-size=. Update call to
7642 s390_handle_arch_option.
7643 (s390_option_override): Update call to s390_handle_arch_option.
7644 (s390_emit_prologue): Use %d format for s390_stack_size in
7645 diagnostic. Use %wd for HOST_WIDE_INT.
7646 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
7647 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
7648 * config/s390/s390.opt (config/s390/s390-opts.h): New
7649 HeaderInclude entry.
7650 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
7651 s390_arch_flags, s390_warn_framesize): New Variable entries.
7652 (s390_arch_option): New Enum and EnumValue entries.
7653 (march=): Use Enum instead of Var.
7654 (mstack-guard=, mstack-size=): Use UInteger and Var.
7655 (mtune=): Use Enum.
7656
7657 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7658
7659 * config/score/score.c (score_handle_option): Don't assert that
7660 global structures are in use. Access target_flags via opts
7661 pointer. Use value of -march= option to determine target_flags
7662 settings.
7663 * config/score/score.opt (march=): Use Enum.
7664 (score_arch): New Enum and EnumValue entries.
7665
7666 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7667
7668 * config/mep/mep.c (option_mtiny_specified): Remove.
7669 (mep_option_override): Move register handling for -mivc2 from
7670 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
7671 instead of option_mtiny_specified.
7672 (mep_handle_option): Access target_flags via opts pointer. Don't
7673 assert that global structures are in use. Defer part of -mivc2
7674 handling and move it to mep_option_override.
7675 * config/mep/mep.opt (IVC2): New Mask entry.
7676 (mivc2): Use Var and Defer instead of Mask.
7677
7678 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7679
7680 * config/v850/v850-opts.h: New.
7681 * config/v850/v850.c (small_memory): Replace with
7682 small_memory_physical_max array. Make that array static const.
7683 (v850_handle_memory_option): Take integer value of argument. Take
7684 gcc_options pointer, option text and location. Return void.
7685 Update for changes to small memory structures.
7686 (v850_handle_option): Access target_flags via opts pointer. Don't
7687 assert that global structures are in use. Update calls to
7688 v850_handle_memory_option.
7689 (v850_encode_data_area): Update references to small memory settings.
7690 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
7691 (enum small_memory_type): Move to v850-opts.h.
7692 * config/v850/v850.opt (config/v850/v850-opts.h): New
7693 HeaderInclude entry.
7694 (small_memory_max): New Variable entry.
7695 (msda): Replace by pair of options msda= and msda-. Use UInteger.
7696 (mtda, mzda): Likewise.
7697
7698 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7699
7700 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
7701 pointer. Don't assert that global structures are in use.
7702
7703 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7704
7705 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
7706 via opts pointer. Don't assert that global structures are in use.
7707
7708 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7709
7710 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
7711 (munix=93): Use Var.
7712 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
7713 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
7714 * config/pa/pa-opts.h: New.
7715 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
7716 (pa_handle_option): Don't assert that global structures are in
7717 use. Access target_flags via opts pointer. Don't handle
7718 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
7719 OPT_munix_98 here.
7720 (pa_option_override): Handle deferred OPT_mfixed_range_.
7721
7722 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7723
7724 * config/mn10300/mn10300-opts.h: New.
7725 * config/mn10300/mn10300.c (mn10300_processor,
7726 mn10300_tune_string): Remove.
7727 (mn10300_handle_option): Don't assert that global structures are
7728 in use. Access mn10300_processor via opts pointer. Don't handle
7729 OPT_mtune_ here.
7730 * config/mn10300/mn10300.h (enum processor_type): Move to
7731 mn10300-opts.h.
7732 (mn10300_processor): Remove.
7733 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
7734 HeaderInclude entry.
7735 (mn10300_processor): New Variable entry.
7736 (mtune=): Use Var.
7737
7738 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7739
7740 * config/microblaze/microblaze.c: Don't include opts.h.
7741 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
7742 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
7743 (mno-clearbss): Use Var and Warn.
7744
7745 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7746
7747 * config/m32r/m32r-opts.h: New.
7748 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
7749 (m32r_handle_option): Don't assert that global structures are in
7750 use. Access target_flags and m32r_cache_flush_func via opts
7751 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
7752 OPT_mno_flush_trap here.
7753 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
7754 include of m32r-opts.h.
7755 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
7756 HeaderInclude entry.
7757 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
7758 (mmodel=): Use Enum and Var.
7759 (m32r_model): New Enum and EnumValue entries.
7760 (mno-flush-trap): Use Var.
7761 (msdata=): Use Enum and Var.
7762 (m32r_sdata): New Enum and EnumValue entries.
7763
7764 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7765
7766 * config/m32c/m32c.c: Don't include opts.h.
7767 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
7768 m32c_handle_option): Remove.
7769 (m32c_option_override): Check global_options_set.x_target_memregs
7770 instead of target_memregs_set.
7771 * config/m32c/m32c.h (target_memregs): Remove.
7772 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
7773 variable.
7774
7775 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7776
7777 * config/iq2000/iq2000-opts.h: New.
7778 * config/iq2000/iq2000.c: Don't include opts.h.
7779 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
7780 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
7781 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
7782 HeaderInclude entry.
7783 (iq2000_tune): New Variable entry.
7784 (march=): Add comment. Use Enum.
7785 (iq2000_arch): New Enum and EnumValue entries.
7786 (mcpu=): Use Enum and Var.
7787 (iq2000_tune): New Enum and EnumValue entries.
7788
7789 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7790
7791 * config/ia64/ia64-opts.h: New.
7792 * config/ia64/ia64.c (ia64_tune): Remove.
7793 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
7794 here. Use error_at.
7795 (ia64_option_override): Handle deferred OPT_mfixed_range_.
7796 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
7797 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
7798 HeaderInclude entry.
7799 (ia64_tune): New Variable entry.
7800 (mfixed-range=): Use Defer and Var.
7801 (mtune=): Use Enum and Var.
7802 (ia64_tune): New Enum and EnumValue entries.
7803
7804 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7805
7806 * config/frv/frv-opts.h: New.
7807 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
7808 frv-opts.h.
7809 (frv_cpu_type): Remove.
7810 * config/frv/frv.c: Don't include opts.h.
7811 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
7812 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
7813 (frv_cpu_type): New Variable entry.
7814 (frv_cpu): New Enum and EnumValue entries.
7815
7816 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7817
7818 * config/cris/cris.c (cris_handle_option): Access target_flags via
7819 opts pointer. Don't assert that global structures are in use.
7820 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
7821 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
7822
7823 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7824
7825 * config/bfin/bfin-opts.h: New.
7826 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
7827 bfin_si_revision, bfin_workarounds): Remove.
7828 (bfin_cpus): Make static const.
7829 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
7830 not bfin_lib_id_given.
7831 (bfin_handle_option): Don't set bfin_lib_id_given. Access
7832 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
7833 pointer. Use error_at. Don't assert that global structures are in use.
7834 * config/bfin/bfin.h: Include bfin-opts.h.
7835 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
7836 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
7837 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
7838 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
7839 entries.
7840
7841 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7842
7843 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
7844 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
7845 or -msoft-float here.
7846 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
7847 -msoft-float and -mhard-float.
7848 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
7849 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7850 msoft-float.
7851 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
7852 -msoft-float.
7853 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
7854 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
7855 not mhard-float.
7856 (LIBGCC_SPEC): Don't handle -msoft-float.
7857 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
7858 -mhard-float.
7859 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7860 msoft-float.
7861 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
7862 -mfloat-abi=*, not -msoft-float and -mhard-float.
7863 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
7864 -msoft-float.
7865 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
7866 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
7867 mhard-float and msoft-float.
7868 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
7869 mfloat-abi=soft in comments, not mhard-float and msoft-float.
7870 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7871 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
7872 mhard-float.
7873 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
7874 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
7875 msoft-float.
7876 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
7877 not mhard-float.
7878 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
7879 not msoft-float.
7880
7881 2011-03-22 Richard Henderson <rth@redhat.com>
7882
7883 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
7884 TARGET_ABI_WINDOWS_NT.
7885 (alpha_output_function_end_prologue): Likewise.
7886 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
7887 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7888 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
7889 (trap, *movsi_nt_vms): Likewise.
7890 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
7891 (*tablejump_osf_nt_internal): Remove.
7892 * config/alpha/predicates.md (input_operand): Only test Pmode.
7893
7894 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7895
7896 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
7897 via opts pointer. Use error_at. Don't assert that global
7898 structures are in use.
7899
7900 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7901
7902 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
7903 (ix86_handle_option): Access ix86_isa_flags and
7904 ix86_isa_flags_explicit via opts pointer. Don't assert that
7905 global structures are in use.
7906 (ix86_function_specific_save, ix86_function_specific_restore):
7907 Update ix86_isa_flags_explicit field name.
7908 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
7909 (ix86_isa_flags_explicit): Rename TargetSave entry to
7910 x_ix86_isa_flags_explicit.
7911
7912 2011-03-22 Richard Henderson <rth@redhat.com>
7913
7914 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
7915 (alpha_option_override, direct_return): Likewise.
7916 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
7917 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
7918 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
7919 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7920 (alpha_expand_epilogue, alpha_end_function): Likewise.
7921 (alpha_init_libfuncs): Likewise.
7922 (struct machine_function): Remove unicosmk members.
7923 (print_operand) ['t']: Remove.
7924 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
7925 unicosmk_output_module_name, unicosmk_output_common,
7926 current_section_align, unicosmk_output_text_section_asm_op,
7927 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
7928 unicosmk_section_type_flags, unicosmk_unique_section,
7929 unicosmk_asm_named_section, unicosmk_insert_attributes,
7930 unicosmk_output_align, unicosmk_defer_case_vector,
7931 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7932 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7933 unicosmk_output_ssib, unicosmk_add_call_info_word,
7934 unicosmk_extern_head, unicosmk_output_default_externs,
7935 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7936 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7937 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7938 * config/alpha/alpha-protos.h: Update.
7939 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7940 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7941 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7942 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7943 (*mulsi_se, mulvsi3): Likewise.
7944 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7945 (*divmodsi_internal, call, call_value, realign): Likewise.
7946 (moddi3, umoddi3): Likewise; remove duplicate expander.
7947 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7948 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7949 (*movdi_nofix): Remove r/U alternative.
7950 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7951 * config/alpha/constraints.md ("U"): Remove.
7952 * config/alpha/predicates.md (call_operand"): Don't test
7953 TARGET_ABI_UNICOSMK.
7954
7955 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7956
7957 * target.def (handle_option): Take gcc_options and
7958 cl_decoded_option pointers and location_t.
7959 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7960 * doc/tm.texi: Regenerate.
7961 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7962 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7963 * lto-opts.c (lto_reissue_options): Generate option structure for
7964 targetm.handle_option call.
7965 * opts.c (target_handle_option): Update call to
7966 targetm.handle_option. Remove assertions about values now passed
7967 down to hook.
7968 * targhooks.c (default_target_handle_option): New.
7969 * targhooks.h (default_target_handle_option): Declare.
7970 * config/alpha/alpha.c: Include opts.h.
7971 (alpha_handle_option): Update to new hook interface.
7972 * config/arm/arm.c: Include opts.h.
7973 (arm_handle_option): Update to new hook interface.
7974 * config/arm/t-arm (arm.o): Update dependencies.
7975 * config/bfin/bfin.c: Include opts.h.
7976 (bfin_handle_option): Update to new hook interface.
7977 * config/cris/cris.c: Include opts.h.
7978 (cris_handle_option): Update to new hook interface.
7979 * config/frv/frv.c: Include opts.h.
7980 (frv_handle_option): Update to new hook interface.
7981 * config/i386/i386.c: Include opts.h.
7982 (ix86_handle_option): Update to new hook interface.
7983 (ix86_valid_target_attribute_inner_p): Generate option structure
7984 for call to ix86_handle_option.
7985 * config/i386/t-i386 (i386.o): Update dependencies.
7986 * config/ia64/ia64.c: Include opts.h.
7987 (ia64_handle_option): Update to new hook interface.
7988 * config/ia64/t-ia64 (ia64.o): Update dependencies.
7989 * config/iq2000/iq2000.c: Include opts.h.
7990 (iq2000_handle_option): Update to new hook interface.
7991 * config/m32c/m32c.c: Include opts.h.
7992 (m32c_handle_option): Update to new hook interface.
7993 * config/m32r/m32r.c: Include opts.h.
7994 (m32r_handle_option): Update to new hook interface.
7995 * config/m68k/m68k.c: Include opts.h.
7996 (m68k_handle_option): Update to new hook interface.
7997 * config/mep/mep.c: Include opts.h.
7998 (mep_handle_option): Update to new hook interface.
7999 * config/microblaze/microblaze.c: Include opts.h.
8000 (microblaze_handle_option): Update to new hook interface.
8001 * config/mips/mips.c: Include opts.h.
8002 (mips_handle_option): Update to new hook interface.
8003 * config/mn10300/mn10300.c: Include opts.h.
8004 (mn10300_handle_option): Update to new hook interface.
8005 * config/pa/pa.c: Include opts.h.
8006 (pa_handle_option): Update to new hook interface.
8007 * config/pdp11/pdp11.c: Include opts.h.
8008 (pdp11_handle_option): Update to new hook interface.
8009 * config/rs6000/rs6000.c: Include opts.h.
8010 (rs6000_handle_option): Update to new hook interface.
8011 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
8012 * config/rx/rx.c: Include opts.h.
8013 (rx_handle_option): Update to new hook interface.
8014 * config/s390/s390.c: Include opts.h.
8015 (s390_handle_option): Update to new hook interface.
8016 * config/score/score.c: Include opts.h.
8017 (score_handle_option): Update to new hook interface.
8018 * config/sh/sh.c: Include opts.h.
8019 (sh_handle_option): Update to new hook interface.
8020 * config/sparc/sparc.c: Include opts.h.
8021 (sparc_handle_option): Update to new hook interface.
8022 * config/v850/v850.c: Include opts.h.
8023 (v850_handle_option): Update to new hook interface.
8024
8025 2011-03-22 Joseph Myers <joseph@codesourcery.com>
8026
8027 * gcc.c (driver_unknown_option_callback): Only permit and save
8028 unknown -Wno- options.
8029 (driver_wrong_lang_callback): Save options directly instead of via
8030 driver_unknown_option_callback.
8031
8032 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
8033
8034 * combine.c (simplify_set): Try harder to find the best CC mode when
8035 simplifying a nested COMPARE on the RHS.
8036
8037 2011-03-22 Joseph Myers <joseph@codesourcery.com>
8038
8039 * config/alpha/gnu.h: Remove.
8040 * config/arc: Remove directory.
8041 * config/arm/netbsd.h: Remove.
8042 * config/arm/t-pe: Remove.
8043 * config/crx: Remove directory.
8044 * config/i386/netbsd.h: Remove.
8045 * config/m68hc11: Remove directory.
8046 * config/m68k/uclinux-oldabi.h: Remove.
8047 * config/mcore/mcore-pe.h: Remove.
8048 * config/mcore/t-mcore-pe: Remove.
8049 * config/netbsd-aout.h: Remove.
8050 * config/rs6000/gnu.h: Remove.
8051 * config/sh/sh-symbian.h: Remove.
8052 * config/sh/symbian-base.c: Remove.
8053 * config/sh/symbian-c.c: Remove.
8054 * config/sh/symbian-cxx.c: Remove.
8055 * config/sh/symbian-post.h: Remove.
8056 * config/sh/symbian-pre.h: Remove.
8057 * config/sh/t-symbian: Remove.
8058 * config/svr3.h: Remove.
8059 * config/vax/netbsd.h: Remove.
8060 * config.build: Don't handle i[34567]86-*-pe.
8061 * config.gcc: Remove handling of deprecations for most deprecated
8062 targets.
8063 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
8064 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
8065 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
8066 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
8067 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
8068 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
8069 Remove cases.
8070 * config.host: Don't handle i[34567]86-*-pe.
8071 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
8072 (ASM_SPEC32): Don't handle -mcall-gnu.
8073 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
8074 -mcall-gnu.
8075 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
8076 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
8077 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8078 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
8079 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
8080 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
8081 conditional on SYMBIAN.
8082 * configure.ac: Don't handle powerpc*-*-gnu*.
8083 * configure: Regenerate.
8084 * doc/extend.texi (interrupt attribute): Don't mention CRX.
8085 * doc/install-old.texi (m6811, m6812): Don't mention.
8086 * doc/install.texi (arc-*-elf*): Don't document multilib option.
8087 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
8088 (m68k-uclinuxoldabi): Don't mention.
8089 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
8090 Remove.
8091 (-mcall-gnu): Remove.
8092 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
8093 families): Remove constraint documentation.
8094
8095 2011-03-22 Marius Strobl <marius@FreeBSD.org>
8096
8097 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
8098 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
8099 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
8100
8101 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8102
8103 PR target/48226
8104 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
8105 vector when peeking at the next token for vector, don't expand the
8106 keywords.
8107
8108 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
8109
8110 * config/avr/avr-protos.h (expand_epilogue): Change prototype
8111 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
8112 * config/avr/avr.c (init_cumulative_args)
8113 (avr_function_arg_advance): Use it.
8114 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
8115 sibcall epilogues.
8116 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
8117 (avr_function_ok_for_sibcall): ...this new function.
8118 (avr_lookup_function_attribute1): New static Function.
8119 (avr_naked_function_p, interrupt_function_p)
8120 (signal_function_p, avr_OS_task_function_p)
8121 (avr_OS_main_function_p): Use it.
8122 * config/avr/avr.md ("sibcall", "sibcall_value")
8123 ("sibcall_epilogue"): New expander.
8124 ("*call_insn", "*call_value_insn"): New insn.
8125 ("call_insn", "call_value_insn"): Remove
8126 ("call", "call_value", "epilogue"): Change expander to handle
8127 sibling calls.
8128
8129 2011-03-21 Nick Clifton <nickc@redhat.com>
8130
8131 * doc/invoke.texi (Overall Options): Move closing brace to end of
8132 options list.
8133 (Optimization Options): Add missing @gol.
8134 (Directory Options): Likewise.
8135 (i386 and x86-64 Options): Likewise.
8136 (RS6000 and PowerPC Options): Likewise.
8137 (i386 and x86-64 Windows Options): Likewise.
8138 (V850 Options): Add text missing from descriptions.
8139
8140 2011-03-22 Richard Henderson <rth@redhat.com>
8141
8142 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
8143 (avr_incoming_return_addr_rtx): New.
8144 (emit_push_byte): New.
8145 (expand_prologue): Use it. Remove incorrect dwarf annotation for
8146 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
8147 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
8148 (emit_pop_byte): New.
8149 (expand_epilogue): Use it. Pop frame pointer by bytes.
8150 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
8151 (INCOMING_RETURN_ADDR_RTX): New.
8152 (INCOMING_FRAME_SP_OFFSET): New.
8153 (ARG_POINTER_CFA_OFFSET): New.
8154 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
8155 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
8156 (pophi): Remove.
8157
8158 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
8159
8160 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8161
8162 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8163 (FUNCTION_ARG_ADVANCE): Likewise.
8164 * tm.texi.in: Change references to them to hook references.
8165 * tm.texi: Regenerate.
8166 * targhooks.c (default_function_arg): Eliminate check for target
8167 macro.
8168 (default_function_incoming_arg): Likewise.
8169 (default_function_arg_advance): Likewise.
8170 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8171 (function_arg_advance): Likewise.
8172 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8173
8174 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8175
8176 * tree.c (build_call_1): New function.
8177 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
8178
8179 2011-03-22 Richard Guenther <rguenther@suse.de>
8180
8181 PR tree-optimization/48228
8182 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
8183 for single-arg PHIs.
8184
8185 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
8186
8187 PR rtl-optimization/48143
8188 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
8189 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
8190 sse2_cvtps2pd): Likewise.
8191
8192 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8193
8194 * recog.c (canonicalize_change_group): Use validate_unshare_change.
8195
8196 2011-03-22 Richard Guenther <rguenther@suse.de>
8197
8198 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
8199 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
8200 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
8201 and REALIGN_LOAD_EXPR.
8202 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
8203 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
8204 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
8205 DOT_PROD_EXPR case ...
8206 (expand_expr_real_2): ... here.
8207 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
8208 and REALIGN_LOAD_EXPR.
8209 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
8210 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
8211 (vect_create_epilog_for_reduction): Likewise.
8212 (vectorizable_reduction): Likewise.
8213 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
8214 * tree-vect-stmts.c (vectorizable_load): Likewise.
8215
8216 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
8217
8218 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
8219
8220 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8221
8222 * config/s390/s390.c (s390_delegitimize_address): Fix offset
8223 handling for PLTOFF/GOTOFF.
8224
8225 2011-03-22 Nick Clifton <nickc@redhat.com>
8226
8227 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
8228 trailing backslash from the end of the macro definition.
8229
8230 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8231
8232 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
8233 and PLT unspecs.
8234
8235 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
8236
8237 * expr.h (prepare_operand): Move to...
8238 * optabs.h (prepare_operand): ...here and change the insn code
8239 parameter from "int" to "enum insn_code".
8240 (insn_operand_matches): Declare.
8241 * expr.c (init_expr_target): Use insn_operand_matches.
8242 (compress_float_constant): Likewise.
8243 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
8244 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
8245 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
8246 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
8247 Likewise.
8248 (gen_cond_trap): Likewise.
8249 (prepare_operand): Likewise. Change icode to an insn_code.
8250 (insn_operand_matches): New function.
8251 * reload.c (find_reloads_address_1): Use insn_operand_matches.
8252 * reload1.c (gen_reload): Likewise.
8253 * targhooks.c (default_secondary_reload): Likewise.
8254
8255 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
8256
8257 * config/alpha/alpha.md (unspec): New define_c_enum.
8258 (unspecv): Ditto.
8259
8260 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
8261
8262 PR debug/48214
8263 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
8264 between a call and its CALL_ARG_LOCATION note.
8265
8266 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
8267
8268 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
8269
8270 2011-03-21 Jakub Jelinek <jakub@redhat.com>
8271
8272 PR c/42544
8273 PR c/48197
8274 * c-common.c (shorten_compare): If primopN is first sign-extended
8275 to opN and then zero-extended to result type, set primopN to opN.
8276
8277 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
8278
8279 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
8280 for barrier handlers.
8281
8282 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8283
8284 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
8285 UNSPEC constants to be in the unspec enumeration, and redefine
8286 all UNSPECV constants to be in the unspecv enumeration, so that
8287 dumps print which unspec/unspec_volatile this is.
8288 * config/rs6000/vector.md (UNSPEC_*): Ditto.
8289 * config/rs6000/paired.md (UNSPEC_*): Ditto.
8290 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
8291 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
8292 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
8293
8294 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
8295 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
8296 UNSPECV_LWSYNC, since these are used as unspec_volatile.
8297 * config/rs6000/sync.md (isync, lwsync): Ditto.
8298
8299 2011-03-21 Richard Guenther <rguenther@suse.de>
8300
8301 * params.def (lto-min-partition): Fix typo.
8302
8303 2011-03-21 Richard Guenther <rguenther@suse.de>
8304
8305 PR c/47939
8306 * c-decl.c (grokdeclarator): Drop to the main variant only
8307 for array types. Drop flag_gen_aux_info check.
8308
8309 2011-03-21 Richard Guenther <rguenther@suse.de>
8310
8311 PR translation/47911
8312 * params.def (lto-partitions): Fix typo.
8313 (lto-min-partition): Fix wording.
8314
8315 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
8316
8317 * config/rs6000/t-freebsd: Remove duplication from file.
8318
8319 2011-03-21 Richard Guenther <rguenther@suse.de>
8320
8321 PR middle-end/47661
8322 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
8323
8324 2011-03-21 Richard Guenther <rguenther@suse.de>
8325
8326 PR lto/48210
8327 * params.def (lto-partitions): Require at least 1 partition.
8328
8329 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8330
8331 * gthr-solaris.h: Remove.
8332 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
8333 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
8334 (LIB_SPEC): Likewise.
8335 * config/sol2.opt (threads): Remove.
8336 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
8337 (sparc*-*-solaris2*): Likewise.
8338 * configure.ac (enable_threads): Enable solaris support.
8339 * configure: Regenerate.
8340 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
8341 * doc/install.texi (Configuration, --enable-threads=lib): Remove
8342 solaris.
8343
8344 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8345
8346 * config.gcc: Obsolete *-*-solaris2.8*.
8347 * doc/install.texi (Specific, *-*-solaris2*): Document it.
8348
8349 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8350
8351 PR bootstrap/48135
8352 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
8353 reference. Solaris 8 perl works.
8354
8355 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8356
8357 PR bootstrap/48135
8358 * doc/install.texi (Prerequisites): Move jar etc. up.
8359 Explain support library version requirements.
8360
8361 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8362
8363 PR bootstrap/48135
8364 * doc/install.texi (Prerequisites): Move Perl to build
8365 requirements. Always necessary on Solaris 2 with Sun ld.
8366
8367 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8368
8369 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
8370 binutils 2.21.
8371 (Specific, i?86-*-solaris2.[89]): Likewise.
8372 (Specific, i?86-*-solaris2.10): Likewise.
8373 (Specific, mips-sgi-irix6): Likewise.
8374 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
8375 Update for binutils 2.21.
8376
8377 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8378
8379 * configure.ac (gcc_cv_lto_plugin): Fix typo.
8380 Allow -fuse-linker-plugin for non-default plugin linker.
8381 * configure: Regenerate.
8382
8383 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
8384
8385 PR bootstrap/48167
8386 * gengtype.c (files_rules): Added rule for cp/parser.h.
8387
8388 2011-03-21 Jakub Jelinek <jakub@redhat.com>
8389
8390 PR target/48213
8391 * config/s390/s390.c (s390_delegitimize_address): Don't call
8392 lowpart_subreg if orig_x has BLKmode.
8393
8394 2011-03-21 Kai Tietz <ktietz@redhat.com>
8395
8396 PR target/12171
8397 * doc/plugins.texi: Adjust documentation for plugin register_callback.
8398 * tree.h (attribute_spec): Add new member affects_type_identity.
8399 * attribs.c (empty_attribute_table): Adjust attribute_spec
8400 initializers.
8401 * config/alpha/alpha.c: Likewise.
8402 * config/arc/arc.c: Likewise.
8403 * config/arm/arm.c: Likewise.
8404 * config/avr/avr.c: Likewise.
8405 * config/bfin/bfin.c: Likewise.
8406 * config/crx/crx.c: Likewise.
8407 * config/darwin.h: Likewise.
8408 * config/h8300/h8300.c: Likewise.
8409 * config/i386/cygming.h: Likewise.
8410 * config/i386/i386.c: Likewise.
8411 * config/ia64/ia64.c: Likewise.
8412 * config/m32c/m32c.c: Likewise.
8413 * config/m32r/m32r.c: Likewise.
8414 * config/m68hc11/m68hc11.c: Likewise.
8415 * config/m68k/m68k.c: Likewise.
8416 * config/mcore/mcore.c: Likewise.
8417 * config/mep/mep.c: Likewise.
8418 * config/microblaze/microblaze.c: Likewise.
8419 * config/mips/mips.c: Likewise.
8420 * config/rs6000/rs6000.c: Likewise.
8421 * config/rx/rx.c: Likewise.
8422 * config/sh/sh.c: Likewise.
8423 * config/sol2.h: Likewise.
8424 * config/sparc/sparc.c: Likewise.
8425 * config/spu/spu.c: Likewise.
8426 * config/stormy16/stormy16.c: Likewise.
8427 * config/v850/v850.c: Likewise.
8428
8429 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
8430
8431 * simplify-rtx.c (simplify_binary_operation_1): Handle
8432 (xor (and A B) C) case when B and C are both constants.
8433
8434 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
8435
8436 * tree-dfa.c (add_referenced_var): Fix typo in comment.
8437
8438 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
8439
8440 PR bootstrap/48168
8441 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
8442
8443 2011-03-20 Jakub Jelinek <jakub@redhat.com>
8444
8445 PR rtl-optimization/48156
8446 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
8447 assume df and df_lr are not NULL.
8448
8449 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8450
8451 PR debug/48023
8452 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
8453 between a call and its CALL_ARG_LOCATION note.
8454
8455 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
8456
8457 PR debug/48178
8458 * config/sh/sh.c (find_barrier): Don't emit a constant pool
8459 between a call and its corresponding CALL_ARG_LOCATION note.
8460
8461 2011-03-19 Anatoly Sokolov <aesok@post.ru>
8462
8463 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
8464 instead of loop. Use HARD_REGISTER_NUM_P predicate.
8465 * haifa-sched.c (setup_ref_regs): Ditto.
8466 * caller-save.c (add_used_regs_1): Ditto.
8467 * dse.c (look_for_hardregs): Ditto.
8468 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
8469 * sched-rgn.c (check_live_1): Ditto.
8470
8471 2011-03-18 Joseph Myers <joseph@codesourcery.com>
8472
8473 * c-decl.c (diagnose_mismatched_decls): Give an error for
8474 redefining a typedef with variably modified type.
8475
8476 2011-03-18 Joseph Myers <joseph@codesourcery.com>
8477
8478 * c-decl.c (grokfield): Don't allow typedefs for structures or
8479 unions with no tag by default.
8480 * doc/extend.texi (Unnamed Fields): Update.
8481
8482 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
8483
8484 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8485 Rewrite using indirect functions.
8486 (lwp_slwpcb): Ditto.
8487 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
8488 (avx_vinsertf128<mode>): Ditto.
8489
8490 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8491
8492 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
8493 unspecs.
8494
8495 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8496
8497 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
8498 splitting between a call and its corresponding CALL_ARG_LOCATION note.
8499
8500 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8501
8502 PR rtl-optimization/48170
8503 * gcse.c (hoist_code): Remove bogus asserts.
8504
8505 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
8506
8507 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
8508 computation for prologue/epilogue.
8509
8510 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8511
8512 * Makefile.in (check-consistency): Remove.
8513
8514 2011-03-18 Jakub Jelinek <jakub@redhat.com>
8515
8516 PR debug/48176
8517 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
8518 arange_table_in_use is 0, but either text_section_used or
8519 cold_text_section_used is true. Don't call it if
8520 !info_section_emitted.
8521
8522 2011-03-18 Anatoly Sokolov <aesok@post.ru>
8523
8524 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
8525 FUNCTION_VALUE_REGNO_P): Remove.
8526 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
8527 Remove.
8528 * config/avr/avr.c (avr_ret_register): Make static inline.
8529 (avr_function_value_regno_p): New function.
8530 (avr_libcall_value): Make static. Add 'func' argument.
8531 (avr_function_value): Make static. Rename 'func' argument to
8532 'fn_decl_or_type', forward it to avr_libcall_value. Call
8533 avr_ret_register function instead of RET_REGISTER macro.
8534 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8535
8536 2011-03-18 Jason Merrill <jason@redhat.com>
8537
8538 PR c++/23372
8539 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
8540
8541 2011-03-18 Richard Guenther <rguenther@suse.de>
8542
8543 * doc/install.texi (--enable-gold): Remove.
8544 (--with-plugin-ld): Document.
8545 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
8546
8547 2011-03-18 Andrew Pinski <pinskia@gmail.com>
8548
8549 PR middle-end/47790
8550 * expr.c (optimize_bitfield_assignment_op): Revamp to work
8551 again after expansion changes.
8552
8553 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
8554
8555 * combine.c (try_combine): Do simplification only call of
8556 subst() on i2 even when i1 is present. Update comments.
8557
8558 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
8559
8560 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
8561 and UNSPEC_PCREL_SYMOFF.
8562
8563 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8564
8565 * config/s390/s390.md: Use define_c_enum for the unspec constant
8566 definitions.
8567
8568 2011-03-18 Richard Henderson <rth@redhat.com>
8569 Jakub Jelinek <jakub@redhat.com>
8570
8571 PR bootstrap/48161
8572 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
8573 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
8574
8575 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8576
8577 PR middle-end/47725
8578 * combine.c (cant_combine_insn_p): Don't check zero/sign
8579 extended hard registers.
8580
8581 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8582
8583 PR middle-end/47725
8584 * combine.c (cant_combine_insn_p): Check zero/sign extended
8585 hard registers.
8586
8587 2011-03-17 Anatoly Sokolov <aesok@post.ru>
8588
8589 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8590 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
8591 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
8592 Change return type to bool.
8593 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8594
8595 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8596
8597 PR debug/48163
8598 * var-tracking.c (prepare_call_arguments): If CALL target
8599 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
8600 pc instead of looking it up using cselib_lookup and use
8601 Pmode for it if x has VOIDmode.
8602 * dwarf2out.c (gen_subprogram_die): If also both first and
8603 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
8604
8605 PR debug/48163
8606 * function.c (assign_parms): For data.passed_pointer parms
8607 use MEM of data.entry_parm instead of data.entry_parm itself
8608 as DECL_INCOMING_RTL.
8609 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
8610 also when passed and declared mode is the same, DECL_RTL
8611 is a MEM with pseudo as address and DECL_INCOMING_RTL is
8612 a MEM too.
8613
8614 2011-03-16 Jeff Law <law@redhat.com>
8615
8616 PR rtl-optimization/37273
8617 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8618 handle them like argument loads from stack slots. Do not double
8619 count memory for memory constants and argument loads from stack slots.
8620
8621 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8622
8623 PR debug/48160
8624 * var-tracking.c (prepare_call_arguments): Check SUBREG.
8625
8626 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8627
8628 PR target/48171
8629 * config/i386/i386.opt: Add Save to -mavx and -mfma.
8630
8631 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8632
8633 PR bootstrap/48153
8634 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
8635 if dwarf_strict.
8636 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
8637 Clear call_arg_locations and call_arg_loc_last always.
8638
8639 PR middle-end/48152
8640 * var-tracking.c (prepare_call_arguments): If argument needs to be
8641 passed by reference, adjust argtype and mode.
8642
8643 2011-03-17 Richard Guenther <rguenther@suse.de>
8644
8645 PR middle-end/48134
8646 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
8647 a value make sure to fold the statement.
8648
8649 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
8650
8651 PR target/43872
8652 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
8653 return condition with !cfun->calls_alloca.
8654
8655 2011-03-17 Richard Guenther <rguenther@suse.de>
8656
8657 PR bootstrap/48148
8658 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8659 origin for decls in other ltrans units.
8660 (input_varpool_node): Likewise.
8661
8662 2011-03-17 Richard Guenther <rguenther@suse.de>
8663
8664 PR middle-end/48165
8665 * tree-object-size.c (compute_object_offset): Properly return
8666 the offset operand of MEM_REFs as sizetype.
8667
8668 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8669
8670 PR rtl-optimization/48141
8671 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
8672 * dse.c: Include params.h.
8673 (active_local_stores_len): New variable.
8674 (add_wild_read, dse_step1): Clear it when setting active_local_stores
8675 to NULL.
8676 (record_store, check_mem_read_rtx): Decrease it when removing
8677 from the chain.
8678 (scan_insn): Likewise. Increase it when adding to chain, if it
8679 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
8680 set active_local_stores to NULL before the addition.
8681 * Makefile.in (dse.o): Depend on $(PARAMS_H).
8682
8683 PR rtl-optimization/48141
8684 * dse.c (record_store): If no positions are needed in an insn
8685 that cannot be deleted, at least unchain it from active_local_stores.
8686
8687 2011-03-16 Dodji Seketeli <dodji@redhat.com>
8688
8689 PR debug/47510
8690 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
8691 (lookup_type_die_strip_naming_typedef): ... here.
8692 (get_context_die): Use it.
8693 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
8694 the anonymous struct named by the naming typedef.
8695
8696 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
8697
8698 PR target/48154
8699 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
8700 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8701
8702 2011-03-16 Jeff Law <law@redhat.com>
8703
8704 * tree-vrp.c (identify_jump_threads): Slightly simplify type
8705 check for operands of conditional. Allow type to be a pointer.
8706
8707 2011-03-16 Richard Guenther <rguenther@suse.de>
8708
8709 PR tree-optimization/48149
8710 * fold-const.c (fold_binary_loc): Fold
8711 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
8712
8713 2011-03-16 Richard Guenther <rguenther@suse.de>
8714
8715 PR tree-optimization/26134
8716 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
8717 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
8718 (non_rewritable_mem_ref_base): Handle complex type component
8719 accesses, constrain offsets for vector and complex extracts
8720 more properly.
8721
8722 2011-03-16 Richard Guenther <rguenther@suse.de>
8723
8724 PR tree-optimization/48146
8725 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
8726 operands avoiding the need for renaming.
8727
8728 2011-03-16 Richard Guenther <rguenther@suse.de>
8729
8730 * gimple-fold.c (maybe_fold_reference): Open-code relevant
8731 constant folding. Move MEM_REF canonicalization first.
8732 Rely on fold_const_aggregate_ref for initializer folding.
8733 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
8734
8735 2011-03-16 Jakub Jelinek <jakub@redhat.com>
8736
8737 PR middle-end/48136
8738 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8739 arg0/arg1 or their arguments are always fold converted to matching
8740 types.
8741
8742 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
8743 to nargs.
8744
8745 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8746
8747 PR lto/46944
8748 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
8749 Handle in-tree gold.
8750 (ld_vers): Extract binutils version for gold.
8751 (gcc_cv_ld_hidden): Handle gold here.
8752 (gcc_cv_lto_plugin): Determine level of linker plugin support.
8753 * configure: Regenerate.
8754 * config.in: Regenerate.
8755 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
8756 -fuse-linker-plugin otherwise.
8757 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
8758 (LINK_COMMAND_SPEC): Use it.
8759 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
8760
8761 2011-03-16 Jakub Jelinek <jakub@redhat.com>
8762
8763 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
8764 * calls.c: Remove debug.h include.
8765 (emit_call_1): Don't call virtual_call_token debug hook.
8766 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
8767 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
8768 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
8769 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
8770 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
8771 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
8772 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
8773 dwarf2out_virtual_call): Remove.
8774 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
8775 copy_call_info and virtual_call hooks.
8776 (dwarf2out_init): Don't initialize vcall_insn_table,
8777 debug_dcall_section and debug_vcall_section.
8778 (prune_unused_types): Don't mark nodes from dcall_table.
8779 (dwarf2out_finish): Don't output dcall or vcall tables.
8780 * final.c (final_scan_insn): Don't call direct_call or
8781 virtual_call debug hooks.
8782 * debug.h (struct gcc_debug_hooks): Remove direct_call,
8783 virtual_call_token, copy_call_info and virtual_call hooks.
8784 (debug_nothing_uid): Remove prototype.
8785 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
8786 copy_call_info and virtual_call hooks.
8787 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8788 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
8789 * debug.c (do_nothing_debug_hooks): Likewise.
8790 (debug_nothing_uid): Remove.
8791 * doc/invoke.texi (-fenable-icf-debug): Remove.
8792 * common.opt (-fenable-icf-debug): Likewise.
8793
8794 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
8795 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
8796 call's MEM. Handle functions returning aggregate through a hidden
8797 first pointer. For virtual calls add clobbered pc to call arguments
8798 chain.
8799 * dwarf2out.c (gen_subprogram_die): Emit
8800 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
8801 can't be emitted.
8802
8803 PR debug/45882
8804 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
8805 * rtl.h (ENTRY_VALUE_EXP): Define.
8806 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
8807 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
8808 * print-rtl.c (print_rtx): Likewise.
8809 * gengtype.c (adjust_field_rtx_def): Likewise.
8810 * var-tracking.c (vt_add_function_parameter): Adjust
8811 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
8812 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
8813 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
8814 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
8815 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
8816
8817 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
8818 Call var_location debug hook even on CALL_INSNs.
8819 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
8820 * rtl.def (ENTRY_VALUE): New.
8821 * dwarf2out.c: Include cfglayout.h.
8822 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8823 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
8824 (struct call_arg_loc_node): New type.
8825 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
8826 tail_call_site_count): New variables.
8827 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
8828 DW_TAG_GNU_call_site_parameter.
8829 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
8830 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
8831 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
8832 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
8833 and DW_AT_GNU_all_source_call_sites.
8834 (mem_loc_descriptor): Handle ENTRY_VALUE.
8835 (add_src_coords_attributes): Don't add enything if
8836 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
8837 (dwarf2out_abstract_function): Save and clear call_arg_location,
8838 call_site_count and tail_call_site_count around dwarf2out_decl call.
8839 (gen_call_site_die): New function.
8840 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
8841 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
8842 (dwarf2out_function_decl): Clear call_arg_locations,
8843 call_arg_loc_last, set call_site_count and tail_call_site_count
8844 to -1 and free block_map.
8845 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
8846 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
8847 followed by any real instructions.
8848 (dwarf2out_begin_function): Set call_site_count and
8849 tail_call_site_count to 0.
8850 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
8851 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
8852 attempt to force a DIE for it and worst case remove the attribute.
8853 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
8854 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
8855 the decl itself.
8856 * var-tracking.c: Include tm_p.h.
8857 (vt_stack_adjustments): For calls call note_register_arguments.
8858 (argument_reg_set): New variable.
8859 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
8860 ensure the VALUE is resolved.
8861 (call_arguments): New variable.
8862 (prepare_call_arguments): New function.
8863 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
8864 (struct expand_loc_callback_data): Add ignore_cur_loc field.
8865 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
8866 always use the best expression.
8867 (vt_expand_loc): Add ignore_cur_loc argument.
8868 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
8869 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
8870 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
8871 note for all calls.
8872 (vt_add_function_parameter): Use cselib_lookup_from_insn.
8873 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
8874 argument. Don't call cselib_preserve_only_values and
8875 cselib_reset_table.
8876 (note_register_arguments): New function.
8877 (vt_initialize): Compute argument_reg_set. Call
8878 vt_add_function_parameters before processing basic blocks instead of
8879 afterwards. For calls call prepare_call_arguments before calling
8880 cselib_process_insn.
8881 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
8882 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
8883 (var-tracking.o): Depend on $(TM_P_H).
8884 * cfglayout.h (insn_scope): New prototype.
8885 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
8886 * cfglayout.c (insn_scope): No longer static.
8887 * insn-notes.def (CALL_ARG_LOCATION): New.
8888 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
8889 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
8890 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
8891 nothing for DECL_EXTERNAL BLOCK_VARS.
8892
8893 2011-03-16 Alan Modra <amodra@gmail.com>
8894
8895 PR target/45844
8896 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8897 create invalid offset address for vsx splat insn.
8898 * config/rs6000/predicates.md (splat_input_operand): New.
8899 * config/rs6000/vsx.md (vsx_splat_*): Use it.
8900
8901 2011-03-15 Xinliang David Li <davidxl@google.com>
8902
8903 PR c/47837
8904 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
8905 (normalize_preds): New function.
8906 (is_use_properly_guarded): Normalize def predicates.
8907
8908 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8909
8910 PR target/46788
8911 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
8912 in the output template.
8913
8914 2011-03-15 Richard Guenther <rguenther@suse.de>
8915
8916 PR middle-end/47650
8917 * tree-pretty-print.c (dump_function_declaration): Properly
8918 dump unprototyped and varargs function types.
8919
8920 2011-03-15 Richard Guenther <rguenther@suse.de>
8921
8922 PR tree-optimization/13954
8923 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
8924 and friends.
8925
8926 2011-03-15 Richard Guenther <rguenther@suse.de>
8927
8928 PR tree-optimization/48037
8929 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
8930 selects into BIT_FIELD_REFs.
8931 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8932 vector select.
8933
8934 2011-03-15 Jakub Jelinek <jakub@redhat.com>
8935
8936 PR tree-optimization/48129
8937 * builtins.c (fold_builtin_snprintf): Convert to type of
8938 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8939 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8940
8941 2011-03-15 Richard Guenther <rguenther@suse.de>
8942
8943 PR tree-optimization/41490
8944 * tree-ssa-dce.c (propagate_necessity): Handle returns without
8945 value but with VUSE.
8946 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8947 return statements.
8948 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8949 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8950 * tree-tailcall.c (find_tail_calls): Ignore returns.
8951
8952 2011-03-15 Richard Guenther <rguenther@suse.de>
8953
8954 PR middle-end/48031
8955 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8956 or variable-indexed array accesses when in gimple form.
8957
8958 2011-03-15 Richard Guenther <rguenther@suse.de>
8959
8960 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
8961
8962 2011-03-15 Alan Modra <amodra@gmail.com>
8963
8964 PR target/48032
8965 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8966 presume symbol_refs without a symbol_ref_decl are suitably
8967 aligned, nor other trees we may see here. Handle anchor symbols.
8968 (legitimate_constant_pool_address_p): Comment. Add mode param.
8969 Check cmodel=medium addresses. Adjust all calls.
8970 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8971 creating cmodel=medium optimized access to locals.
8972 * config/rs6000/constraints.md (R): Pass QImode to
8973 legitimate_constant_pool_address_p.
8974 * config/rs6000/predicates.md (input_operand): Pass mode to
8975 legitimate_constant_pool_address_p.
8976 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8977 Update prototype.
8978
8979 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8980
8981 PR target/48053
8982 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8983 64-bit constants being loaded into registers other than GPRs such
8984 as loading 0 into a VSX register.
8985
8986 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8987
8988 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
8989
8990 2011-03-14 Jakub Jelinek <jakub@redhat.com>
8991
8992 PR middle-end/47917
8993 * builtins.c (fold_builtin_snprintf): New function.
8994 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8995 (fold_builtin_4): Likewise.
8996
8997 PR middle-end/38878
8998 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8999 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
9000 and C - X == X also strip nops from +/-/p+ operand.
9001 When optimizing -X == C, fold C to arg0's type.
9002
9003 PR debug/47946
9004 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
9005 emit it as add_AT_int instead of add_AT_unsigned.
9006
9007 2011-03-14 Tom Tromey <tromey@redhat.com>
9008
9009 * unwind-dw2.c: Include sys/sdt.h if it exists.
9010 (_Unwind_DebugHook): Use STAP_PROBE2.
9011 * config.in, configure: Rebuild.
9012 * configure.ac: Check for sys/sdt.h.
9013
9014 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
9015
9016 * config/i386/i386.md (ROUND_FLOOR): New constant.
9017 (ROUND_CEIL): Ditto.
9018 (ROUND_TRUNC): Ditto.
9019 (ROUND_MXCSR): Ditto.
9020 (ROUND_NO_EXC): Ditto.
9021 (rint<mode>2): Use new defines instead of numerical constants.
9022 (floor<mode>2): Ditto.
9023 (ceil<mode>2): Ditto.
9024 (btrunc<mode>2): Ditto.
9025 * config/i386/i386-builtin-types.def: Define ROUND function type
9026 aliases.
9027 * config/i386/i386.c (enum ix86_builtins): Add
9028 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
9029 (struct builtin_description): Add
9030 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
9031 (ix86_expand_sse_round): New static function.
9032 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
9033 function types.
9034 (ix86_builtin_vectorized_function): Handle
9035 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9036
9037 2011-03-14 Tom Tromey <tromey@redhat.com>
9038
9039 * c-parser.c (c_parser_asm_string_literal): Clear
9040 warn_overlength_strings.
9041
9042 2011-03-14 Tom Tromey <tromey@redhat.com>
9043
9044 * c-parser.c (disable_extension_diagnostics): Save
9045 warn_overlength_strings.
9046 (restore_extension_diagnostics): Restore warn_overlength_strings.
9047
9048 2011-03-14 Jakub Jelinek <jakub@redhat.com>
9049
9050 * BASE-VER: Change to 4.7.0.
9051
9052 2011-03-14 Richard Guenther <rguenther@suse.de>
9053
9054 PR middle-end/48098
9055 * tree.c (build_vector_from_val): Adjust assert to requirements
9056 and reality.
9057
9058 2011-03-14 Jakub Jelinek <jakub@redhat.com>
9059
9060 PR bootstrap/48102
9061 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
9062
9063 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
9064
9065 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
9066 terms of target_flags_explicit. Adjust copyright year.
9067
9068 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
9069 * config/rs6000/t-freebsd: New file. Add override for
9070 LIB2FUNCS_EXTRA.
9071
9072 2011-03-13 Chris Demetriou <cgd@google.com>
9073
9074 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
9075 (-fno-diagnostics-show-option): this, to reflect current default.
9076 (-Werror=): Update text about -fno-diagnostics-show-option.
9077
9078 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
9079
9080 PR target/48053
9081 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9082 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
9083 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
9084 mode is not V2DImode or V2DFmode.
9085 (vspltis_constant): Do not handle V2DImode and V2DFmode.
9086 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
9087 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
9088 registers to 0.
9089 (movdi_internal64): Likewise.
9090
9091 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
9092
9093 PR tree-optimization/47127
9094 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
9095 parameter.
9096 (set_cloog_options): Same.
9097 (scop_to_clast): Same.
9098 (print_clast_stmt): Do not call cloog_state_malloc and
9099 cloog_state_free.
9100 (print_generated_program): Same.
9101 (gloog): Same.
9102 * graphite-clast-to-gimple.h (cloog_state): Declared.
9103 (scop_to_clast): Adjust declaration.
9104 * graphite.c (cloog_state): Defined here.
9105 (graphite_initialize): Call cloog_state_malloc.
9106 (graphite_finalize): Call cloog_state_free.
9107
9108 2011-03-11 Jason Merrill <jason@redhat.com>
9109
9110 * attribs.c (lookup_attribute_spec): Take const_tree.
9111 * tree.h: Adjust.
9112
9113 2011-03-11 Joseph Myers <joseph@codesourcery.com>
9114
9115 * config/sparc/sparc.c (sparc_option_override): Use
9116 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
9117
9118 2011-03-11 Richard Guenther <rguenther@suse.de>
9119
9120 PR tree-optimization/48067
9121 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
9122 multiplication result will be only used once on the target
9123 stmt.
9124
9125 2011-03-11 Richard Guenther <rguenther@suse.de>
9126
9127 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
9128
9129 2011-03-11 Richard Guenther <rguenther@suse.de>
9130
9131 PR lto/48073
9132 * tree.c (find_decls_types_r): Do not walk types only reachable
9133 from IDENTIFIER_NODEs.
9134
9135 2011-03-11 Jakub Jelinek <jakub@redhat.com>
9136
9137 PR middle-end/48044
9138 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
9139 all vnode->force_output nodes as needed.
9140
9141 2011-03-11 Jason Merrill <jason@redhat.com>
9142
9143 PR c++/48069
9144 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
9145 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
9146
9147 2011-03-11 Martin Jambor <mjambor@suse.cz>
9148
9149 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
9150 cgraph_node.
9151
9152 2011-03-11 Jakub Jelinek <jakub@redhat.com>
9153
9154 PR tree-optimization/48063
9155 * ipa-inline.c (cgraph_decide_inlining): Don't try to
9156 inline functions called once if !tree_can_inline_p (node->callers).
9157
9158 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9159
9160 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
9161 extra_objs.
9162 * config/score/score3.c: Delete.
9163 * config/score/score3.h: Delete.
9164 * config/score/mul-div.S: Delete.
9165 * config/score/sfp-machine.h: Add new file.
9166 * config/score/constraints.md: Add new file.
9167 * config/score/t-score-softfp: Add new file.
9168 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9169 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
9170 (score7_extra_constraint): Delete.
9171 (score7_option_override): Remove unused code.
9172 * config/score/score.c: Remove score3 and score5 define and code.
9173 * config/score/score.h: Remove score3 and score5 define and code.
9174 * config/score/score.md: Remove score3 template and unusual insn.
9175 * config/score/score.opt: Remove score3 and score5 options.
9176
9177 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9178
9179 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
9180 when _HPUX_SOURCE is defined.
9181 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
9182
9183 2011-03-10 Jason Merrill <jason@redhat.com>
9184
9185 PR c++/48029
9186 * stor-layout.c (layout_type): Don't set structural equality
9187 on arrays of incomplete type.
9188 * tree.c (type_hash_eq): Handle comparing them properly.
9189
9190 2011-03-10 Jakub Jelinek <jakub@redhat.com>
9191
9192 PR debug/48043
9193 * config/s390/s390.c (s390_delegitimize_address): Make sure the
9194 result mode matches original rtl mode.
9195
9196 2011-03-10 Nick Clifton <nickc@redhat.com>
9197
9198 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
9199 (andsi3, andsi3_flags): Fix timings for three operand alternative.
9200
9201 2011-03-09 Jakub Jelinek <jakub@redhat.com>
9202
9203 PR rtl-optimization/47866
9204 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
9205 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
9206 if target wasn't scalar.
9207 * function.c (assign_stack_temp_for_type): Assert that neither
9208 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
9209 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
9210 macro.
9211 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
9212
9213 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9214
9215 * config/s390/s390-protos.h (s390_label_align): New prototype.
9216 * config/s390/s390.c (s390_label_align): New function.
9217 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
9218
9219 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9220
9221 PR target/47755
9222 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
9223 V2DI/V2DF constants. Only all 0's or all 1's are easy.
9224 (output_vec_const_move): Ditto.
9225
9226 2011-03-08 Anatoly Sokolov <aesok@post.ru>
9227
9228 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
9229 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
9230 * config/mips/mips.c (mips_preferred_reload_class): Make static.
9231 Change 'rclass' argument and result type to reg_class_t.
9232 (TARGET_PREFERRED_RELOAD_CLASS): Define.
9233
9234 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
9235
9236 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9237 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
9238 (TARGET_MEMORY_MOVE_COST): Define.
9239 (avr_register_move_cost, avr_memory_move_cost): New Functions.
9240
9241 2011-03-08 Jakub Jelinek <jakub@redhat.com>
9242
9243 PR debug/47881
9244 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
9245 removed anything.
9246
9247 PR tree-optimization/48022
9248 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
9249 for EQ/NE_EXPR.
9250
9251 2011-03-07 Jakub Jelinek <jakub@redhat.com>
9252
9253 PR debug/47991
9254 * var-tracking.c (find_use_val): Return NULL for
9255 cui->sets && cui->store_p BLKmode MEMs.
9256
9257 2011-03-07 Anatoly Sokolov <aesok@post.ru>
9258
9259 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
9260 Remove.
9261 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
9262 xstormy16_print_operand_address): Remove.
9263 * config/stormy16/stormy16.c (xstormy16_print_operand,
9264 xstormy16_print_operand_address): Make static.
9265 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9266
9267 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
9268
9269 PR target/47862
9270 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9271 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
9272 before definition.
9273
9274 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
9275
9276 PR bootstrap/48000
9277 * cfgloopmanip.c (fix_bb_placements): Return immediately
9278 if FROM is BASE_LOOP's header.
9279
9280 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
9281
9282 * gimplify.c (gimplify_function_tree): Fix building calls
9283 to __builtin_return_address.
9284
9285 2011-03-07 Alan Modra <amodra@gmail.com>
9286
9287 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
9288 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
9289 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
9290 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
9291 return_mode args.
9292 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
9293 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
9294 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
9295 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
9296 * config/rs6000/rs6000.c
9297 (rs6000_elf_end_indicate_exec_stack): Rename to..
9298 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
9299 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
9300 (rs6000_file_start): ..here.
9301 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
9302 file scope variables.
9303 (call_ABI_of_interest): New function.
9304 (init_cumulative_args): Set above vars when function return value
9305 is a float, vector, or small struct.
9306 (rs6000_function_arg_advance_1): Likewise for function args.
9307 (rs6000_va_start): Set rs6000_passes_float if variable arg function
9308 references float args.
9309
9310 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
9311
9312 * doc/cfg.texi: Remove "See" before @ref.
9313 * doc/invoke.texi: Likewise.
9314
9315 2011-03-05 Jason Merrill <jason@redhat.com>
9316
9317 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
9318
9319 2011-03-05 Anthony Green <green@moxielogic.com>
9320
9321 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
9322
9323 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
9324
9325 PR rtl-optimization/47899
9326 * cfgloopmanip.c (fix_bb_placements): Fix first argument
9327 to flow_loop_nested_p when moving the loop upward.
9328
9329 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
9330
9331 PR target/47719
9332 * arm.md (movhi_insn_arch4): Accept any immediate constant.
9333
9334 2011-03-05 Jakub Jelinek <jakub@redhat.com>
9335
9336 PR tree-optimization/47967
9337 * ipa-cp.c (build_const_val): Return NULL instead of creating
9338 VIEW_CONVERT_EXPR for mismatching sizes.
9339 (ipcp_create_replace_map): Return NULL if build_const_val failed.
9340 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
9341 give up on versioning.
9342
9343 2011-03-05 Alan Modra <amodra@gmail.com>
9344
9345 PR target/47986
9346 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9347 full cmodel medium/large lo_sum + high addresses.
9348
9349 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9350
9351 * config/s390/s390.c (s390_decompose_address): Reject non-literal
9352 pool references in UNSPEC_LTREL_OFFSET.
9353
9354 2011-03-04 Jan Hubicka <jh@suse.cz>
9355
9356 PR lto/47497
9357 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
9358 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
9359 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
9360 Add node pointers.
9361 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
9362 cgraph_add_thunk): Add node pointers.
9363 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
9364 associated to right node.
9365 (input_node): Update use of cgraph_same_body_alias
9366 and cgraph_add_thunk.
9367
9368 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
9369
9370 * config/i386/i386.opt (mprefer-avx128): New flag.
9371 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
9372 modes when the flag -mprefer-avx128 is on.
9373
9374 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
9375
9376 * dwarf2out.c (compare_loc_operands): Fix address handling.
9377
9378 2011-03-04 Alan Modra <amodra@gmail.com>
9379
9380 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
9381
9382 2011-03-04 Richard Guenther <rguenther@suse.de>
9383
9384 PR middle-end/47968
9385 * expmed.c (extract_bit_field_1): Prefer vector modes that
9386 vec_extract patterns can handle.
9387
9388 2011-03-04 Richard Guenther <rguenther@suse.de>
9389
9390 PR middle-end/47975
9391 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
9392
9393 2011-03-04 Richard Henderson <rth@redhat.com>
9394
9395 * explow.c (emit_stack_save): Remove 'after' parameter.
9396 (emit_stack_restore): Likewise.
9397 * expr.h: Update to match.
9398 * builtins.c, calls.c, stmt.c: Likewise.
9399 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
9400 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
9401 * function.c (expand_function_end): Insert the emit_stack_save
9402 sequence before parm_birth_insn instead of after.
9403
9404 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
9405
9406 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
9407 (ssse3_pmaddubsw128): Ditto.
9408 (ssse3_pmaddubsw): Ditto.
9409
9410 2011-03-03 Steve Ellcey <sje@cup.hp.com>
9411
9412 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
9413
9414 2011-03-03 Jakub Jelinek <jakub@redhat.com>
9415
9416 PR c/47963
9417 * gimplify.c (omp_add_variable): Only call omp_notice_variable
9418 on TYPE_SIZE_UNIT if it is a DECL.
9419
9420 PR debug/47283
9421 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
9422 first operand is not is_gimple_mem_ref_addr, try to fold it.
9423 If the operand still isn't is_gimple_mem_ref_addr, clear
9424 MEM_EXPR on op0.
9425
9426 2011-03-03 Richard Guenther <rguenther@suse.de>
9427
9428 PR middle-end/47283
9429 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
9430 match comment.
9431 (refs_may_alias_p_1): For release branches return true if
9432 we are confused by our input.
9433
9434 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9435
9436 * config/s390/s390.c (s390_function_value): Rename to ...
9437 (s390_function_and_libcall_value): ... this.
9438 (s390_function_value): New function.
9439 (s390_libcall_value): New function.
9440 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
9441 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
9442 target macro definitions.
9443 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
9444
9445 2011-03-02 Joseph Myers <joseph@codesourcery.com>
9446
9447 * config/i386/freebsd64.h (CC1_SPEC): Define.
9448 * config/i386/linux64.h (CC1_SPEC): Define.
9449 * config/i386/x86-64.h (CC1_SPEC): Don't define.
9450
9451 2011-03-02 Anatoly Sokolov <aesok@post.ru>
9452
9453 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9454 Remove.
9455 * config/stormy16/stormy16.c: Include reload.h.
9456 (xstormy16_memory_move_cost): New function.
9457 (TARGET_MEMORY_MOVE_COST): Define.
9458
9459 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
9460
9461 PR rtl-optimization/47925
9462 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
9463 with side effects. Remove the more-specific check for volatile asms.
9464
9465 2011-03-02 Alan Modra <amodra@gmail.com>
9466
9467 PR target/47935
9468 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
9469 toc relative addresses for valid offsets.
9470
9471 2011-03-01 Richard Guenther <rguenther@suse.de>
9472
9473 PR tree-optimization/47890
9474 * tree-vect-loop.c (get_initial_def_for_induction): Set
9475 related stmt properly.
9476
9477 2011-03-01 Richard Guenther <rguenther@suse.de>
9478
9479 PR lto/47924
9480 * lto-streamer.c (lto_record_common_node): Also register
9481 the canonical type.
9482
9483 2011-03-01 Richard Guenther <rguenther@suse.de>
9484
9485 PR lto/46911
9486 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9487 Do not stream DECL_ABSTRACT_ORIGIN.
9488 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9489 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9490 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9491 Do not stream DECL_ABSTRACT_ORIGIN.
9492 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9493 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9494
9495 2011-02-28 Anatoly Sokolov <aesok@post.ru>
9496
9497 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
9498 FUNCTION_VALUE_REGNO_P): Remove.
9499 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
9500 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
9501 Add 'outgoing' argument.
9502 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
9503 function.
9504 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9505 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9506
9507 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
9508
9509 PR debug/28047
9510 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
9511 (lookup_filename): Likewise.
9512 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
9513
9514 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
9515 Jakub Jelinek <jakub@redhat.com>
9516
9517 PR middle-end/47893
9518 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
9519 (assign_stack_local_1): Change last argument type to int.
9520 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
9521 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
9522 don't record padding space into frame_space_list nor use those areas.
9523 (assign_stack_local): Adjust caller.
9524 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
9525 of assign_stack_local, pass 0 as last argument.
9526 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
9527 callers.
9528
9529 2011-02-28 Jakub Jelinek <jakub@redhat.com>
9530
9531 PR debug/47283
9532 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
9533 Use target address_mode and pointer_mode hooks instead of hardcoded
9534 Pmode and ptr_mode. Handle some simple cases of extending if
9535 POINTERS_EXTEND_UNSIGNED < 0.
9536 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
9537 Call convert_debug_memory_address.
9538 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
9539 convert_debug_memory_address.
9540
9541 PR middle-end/46790
9542 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
9543 * configure: Regenerated.
9544 * config.in: Regenerated.
9545 * varasm.c (default_function_section): Return NULL
9546 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
9547
9548 2011-02-28 Martin Jambor <mjambor@suse.cz>
9549
9550 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
9551 the description to match the printed values.
9552
9553 2011-02-28 Richard Guenther <rguenther@suse.de>
9554
9555 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
9556 of the copied scope tree.
9557
9558 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9559
9560 * doc/extend.texi (Function Attributes): Avoid deeply (and
9561 wrongly) nested tables.
9562
9563 2011-02-27 Jakub Jelinek <jakub@redhat.com>
9564
9565 PR middle-end/47903
9566 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
9567 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
9568 r isn't op0 nor op1.
9569
9570 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
9571
9572 * config/avr/avr.md: Remove magic comment for emacs.
9573
9574 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
9575
9576 PR target/45261
9577 * config/avr/avr.c (avr_option_override): Use error on bad options.
9578 (avr_help): New function.
9579 (TARGET_HELP): Define.
9580
9581 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
9582
9583 PR target/42240
9584 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
9585 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
9586
9587 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
9588
9589 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
9590 (ARM Options): Ditto.
9591 (i386 and x86-64 Options): Ditto.
9592 (RX Options): Ditto.
9593 (SPARC Options): Ditto.
9594
9595 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
9596
9597 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
9598 FreeBSD 6 and later. Generally use cpu generic.
9599
9600 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
9601
9602 * doc/cpp.texi: Update copyright years.
9603
9604 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
9605
9606 PR target/46898
9607 * config/lm32/lm32.md (ashrsi3): Added needed variable.
9608
9609 2011-02-25 Jon Beniston <jon@beniston.com>
9610
9611 PR target/46898
9612 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
9613 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
9614 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
9615 (lm32_block_move_inline): Add type cast to remove warning.
9616 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
9617 (gen_int_relational): Move declarations to start of function.
9618
9619 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
9620
9621 PR tree-optimization/45470
9622 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9623 can throw internally only.
9624 * tree-vect-stmts.c (vectorizable_call): Likewise.
9625
9626 2011-02-24 Anatoly Sokolov <aesok@post.ru>
9627
9628 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
9629 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9630 * config/stormy16/stormy16-protos.h
9631 (xstormy16_preferred_reload_class): Remove.
9632 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
9633 static. Change 'rclass' argument and return type to reg_class_t.
9634 (TARGET_PREFERRED_RELOAD_CLASS,
9635 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9636
9637 2011-02-24 Richard Guenther <rguenther@suse.de>
9638
9639 * lto-streamer-in.c (input_bb): Do not find referenced vars
9640 in debug statements.
9641
9642 2011-02-23 Jason Merrill <jason@redhat.com>
9643
9644 * common.opt (fabi-version): Document v5 and v6.
9645
9646 2011-02-23 Richard Guenther <rguenther@suse.de>
9647
9648 PR tree-optimization/47849
9649 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
9650
9651 2011-02-23 Jie Zhang <jie@codesourcery.com>
9652
9653 * opts-common.c (decode_cmdline_option): Print empty string
9654 argument as "" in decoded->orig_option_with_args_text.
9655 * gcc.c (execute): Print empty string argument as ""
9656 in the verbose output.
9657 (do_spec_1): Keep empty string argument.
9658
9659 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
9660
9661 * config.gcc: Declare score-* and crx-* obsolete.
9662
9663 2011-02-23 Jie Zhang <jie@codesourcery.com>
9664
9665 PR rtl-optimization/47763
9666 * web.c (web_main): Ignore naked clobber when replacing register.
9667
9668 2011-02-22 Anatoly Sokolov <aesok@post.ru>
9669
9670 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9671 Remove.
9672
9673 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
9674
9675 PR doc/47848
9676 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
9677
9678 2011-02-22 Mike Stump <mikestump@comcast.net>
9679
9680 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
9681 assembler.
9682 * configure: Regenerate.
9683
9684 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
9685
9686 PR rtl-optimization/46002
9687 * ira-color.c (update_copy_costs): Change class intersection
9688 test to reg_class_contents[] test of 'hard_regno'.
9689
9690 2011-02-21 Joseph Myers <joseph@codesourcery.com>
9691
9692 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
9693 than Driver option.
9694 * config/hpux11.opt (mt): Likewise.
9695 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
9696 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
9697 * config/vax/elf.opt (mno-asm-pic): Likewise.
9698 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
9699
9700 2011-02-21 Mike Stump <mikestump@comcast.net>
9701
9702 PR target/47822
9703 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
9704 tree so we can get save the type.
9705 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
9706 for CFString instead of trying to use past the end of the builtins.
9707 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
9708 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
9709 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
9710 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
9711 Rename to darwin_builtin_cfstring.
9712 (darwin_init_cfstring_builtins): Return the built type.
9713
9714 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
9715
9716 PR target/47840
9717 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
9718 (_mm256_insert_epi64): Use _mm_insert_epi64.
9719
9720 2011-02-21 Anatoly Sokolov <aesok@post.ru>
9721
9722 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9723 * config/stormy16/stormy16-protos.h
9724 (xstormy16_mode_dependent_address_p): Remove.
9725 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
9726 Make static. Change return type to bool. Change argument type to
9727 const_rtx. Remove dead code.
9728 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9729
9730 2011-02-21 Richard Guenther <rguenther@suse.de>
9731
9732 PR lto/47820
9733 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9734 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9735 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
9736 TUs context.
9737 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9738 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9739
9740 2011-02-20 Richard Guenther <rguenther@suse.de>
9741
9742 PR lto/47822
9743 * tree.c (free_lang_data_in_decl): Clean builtins from
9744 the TU decl BLOCK_VARS.
9745
9746 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
9747
9748 PR debug/47620
9749 PR debug/47630
9750 * haifa-sched.c (fix_tick_ready): Skip tick computation
9751 for debug insns.
9752
9753 2011-02-19 Richard Guenther <rguenther@suse.de>
9754
9755 PR lto/47647
9756 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9757 Remove lazy BLOCK_VARS streaming.
9758 (lto_input_ts_block_tree_pointers): Likewise.
9759 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9760
9761 2011-02-19 Joseph Myers <joseph@codesourcery.com>
9762
9763 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
9764
9765 2011-02-19 Joseph Myers <joseph@codesourcery.com>
9766
9767 * config/i386/biarch32.h, config/i386/mach.h,
9768 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
9769
9770 2011-02-19 Jakub Jelinek <jakub@redhat.com>
9771
9772 PR target/47800
9773 * config/i386/i386.md (peephole2 for shift and plus): Use
9774 operands[1] original mode in the first insn.
9775
9776 2011-02-18 Mike Stump <mikestump@comcast.net>
9777
9778 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
9779
9780 2011-02-18 Jan Hubicka <jh@suse.cz>
9781
9782 PR middle-end/47788
9783 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
9784 to zero when the function is not inlinable at all.
9785
9786 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9787
9788 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
9789 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9790 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
9791 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
9792 * config/pa/t-pa64: Likewise.
9793 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9794
9795 2011-02-18 Jakub Jelinek <jakub@redhat.com>
9796
9797 PR driver/47787
9798 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
9799
9800 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9801
9802 PR target/47792
9803 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
9804
9805 2011-02-18 Anatoly Sokolov <aesok@post.ru>
9806
9807 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9808 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
9809 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
9810 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9811 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
9812 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
9813 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
9814 m32r_load_postinc_p, m32r_store_preinc_predec_p,
9815 m32r_legitimate_address_p): New functions.
9816 * config/m32r/constraints.md (constraint "S"): Don't use
9817 STORE_PREINC_PREDEC_P.
9818 (constraint "U"): Don't use LOAD_POSTINC_P.
9819
9820 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
9821
9822 PR rtl-optimization/46178
9823 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
9824 compute ira_hard_regno_cover_class[].
9825
9826 2011-02-18 Richard Guenther <rguenther@suse.de>
9827
9828 PR lto/47798
9829 * lto-streamer.h (lto_global_var_decls): Declare.
9830 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
9831 statics for global var processing.
9832
9833 2011-02-18 Richard Guenther <rguenther@suse.de>
9834
9835 PR tree-optimization/47737
9836 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
9837 edge dominance check.
9838
9839 2011-02-18 Jakub Jelinek <jakub@redhat.com>
9840
9841 PR debug/47780
9842 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
9843 avoid invalid rtx sharing.
9844
9845 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
9846
9847 * doc/cpp.texi (Obsolete Features): Add background on the
9848 origin of assertions.
9849
9850 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
9851
9852 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
9853 objc_abi == 2.
9854 * config/darwin.c (output_objc_section_asm_op): Added support for
9855 ABI v1 and v2.
9856 (is_objc_metadata): New.
9857 (darwin_objc2_section): New.
9858 (darwin_objc1_section): New.
9859 (machopic_select_section): Added support for ABI v1 and v2.
9860 (darwin_emit_objc_zeroed): New.
9861 (darwin_output_aligned_bss): Detect objc metadata and treat it
9862 appropriately.
9863 (darwin_asm_output_aligned_decl_common): Same.
9864 (darwin_asm_output_aligned_decl_local): Same.
9865 * config/darwin-sections.def: Updated for ABI v1 and v2.
9866 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
9867 compiling Objective-C code for the NeXT runtime, default to using
9868 ABI version 0 for 32-bit, and version 2 for 64-bit.
9869
9870 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9871
9872 * common.opt (optimize_fast): New Variable.
9873 * opts.c (default_options_optimization): Use opts->x_optimize_fast
9874 instead of local variable ofast.
9875
9876 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
9877
9878 * doc/invoke.texi (fobjc-abi-version): Documented.
9879 (fobjc-nilcheck): Documented.
9880 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
9881 version.
9882
9883 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9884
9885 PR driver/47390
9886 * common.opt (export-dynamic): New Driver option.
9887 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
9888
9889 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9890
9891 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
9892
9893 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
9894 Jan Hubicka <jh@suse.cz>
9895
9896 PR debug/47106
9897 PR debug/47402
9898 * cfgexpand.c (account_used_vars_for_block): Remove.
9899 (estimated_stack_frame_size): Use referenced vars.
9900 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
9901 that were referenced in the original function. Test src_fn
9902 rather than cfun. Drop redundant get_var_ann.
9903 (setup_one_parameter): Drop redundant get_var_ann.
9904 (declare_return_variable): Likewise.
9905 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
9906 (copy_arguments_for_versioning): Drop redundant get_var_ann.
9907 * ipa-inline.c (compute_inline_parameters): Do not compute
9908 disregard_inline_limits here.
9909 (compute_inlinable_for_current, pass_inlinable): New.
9910 (pass_inline_parameters): Require PROP_referenced_vars.
9911 * cgraphunit.c (cgraph_process_new_functions): Don't run
9912 compute_inline_parameters explicitly unless function is in SSA form.
9913 (cgraph_analyze_function): Set .disregard_inline_limits.
9914 * tree-sra.c (convert_callers): Compute inliner parameters
9915 only for functions already in SSA form.
9916
9917 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9918
9919 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
9920 -mlittle-endian-data.
9921
9922 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9923
9924 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
9925 -mno-fpu, not -fpu and -no-fpu.
9926 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
9927 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
9928
9929 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
9930
9931 PR target/43653
9932 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9933 input reload with PLUS RTX.
9934
9935 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9936
9937 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9938 of InverseVar(MDMX).
9939
9940 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9941
9942 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9943 --m4-340.
9944
9945 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9946
9947 * config/mn10300/mn10300.opt (mno-crt0): New.
9948
9949 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9950
9951 * config/m68k/uclinux.opt (static-libc): New Driver option.
9952
9953 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9954
9955 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9956
9957 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9958
9959 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9960 %{muser-extend-enabled}.
9961
9962 2011-02-16 Richard Guenther <rguenther@suse.de>
9963
9964 PR tree-optimization/47738
9965 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9966 the TODO from tree_predictive_commoning.
9967
9968 2011-02-15 Jeff Law <law@redhat.com>
9969
9970 Revert
9971 2011-01-25 Jeff Law <law@redhat.com>
9972
9973 PR rtl-optimization/37273
9974 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9975 handle them like argument loads from stack slots. Do not double
9976 count memory for memory constants and argument loads from stack slots.
9977
9978 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9979
9980 PR middle-end/47725
9981 * combine.c (cant_combine_insn_p): Revert the last change.
9982
9983 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9984
9985 PR target/47755
9986 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9987 mode for vector constants. Remove code that checks for TImode.
9988
9989 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9990
9991 PR debug/47106
9992 PR debug/47402
9993 * cgraph.h (compute_inline_parameters): Return void.
9994 * ipa-inline.c (compute_inline_parameters): Adjust.
9995
9996 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9997
9998 PR debug/47106
9999 PR debug/47402
10000 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
10001 rather than decl.
10002 * cfgexpand.c (estimated_stack_frame_size): Likewise.
10003 * ipa-inline.c (compute_inline_parameters): Adjust.
10004
10005 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
10006
10007 PR debug/47106
10008 PR debug/47402
10009 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
10010 Adjust all users. Pass FN to...
10011 * tree-flow-inline.h (first_referenced_var): ... this. Add
10012 fn argument.
10013 * ipa-struct-reorg.c: Adjust.
10014 * tree-dfa.c: Adjust.
10015 * tree-into-ssa.c: Adjust.
10016 * tree-sra.c: Adjust.
10017 * tree-ssa-alias.c: Adjust.
10018 * tree-ssa-live.c: Adjust.
10019 * tree-ssa.c: Adjust.
10020 * tree-ssanames.c: Adjust.
10021 * tree-tailcall.c: Adjust.
10022
10023 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
10024
10025 PR debug/47106
10026 PR debug/47402
10027 * tree-flow.h (referenced_var_lookup): Add fn parameter.
10028 Adjust all callers.
10029 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
10030 * tree-flow-inline.h: Adjust.
10031 * gimple-pretty-print.c: Adjust.
10032 * tree-into-ssa.c: Adjust.
10033 * tree-ssa.c: Adjust.
10034 * cfgexpand.c: Adjust.
10035
10036 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10037
10038 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
10039 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10040 (EXTRA_CONSTRAINT): Delete.
10041 * config/iq2000/constraints.md: New file.
10042 * config/iq2000/iq2000.md: Include it.
10043 (define_insn ""): Delete.
10044 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
10045 unsupported constraint letters from patterns.
10046 (call_value, call_value_internal1): Likewise.
10047 (call_value_multiple_internal1): Likewise.
10048
10049 2011-02-15 Nick Clifton <nickc@redhat.com>
10050
10051 * config/mn10300/mn10300.c: Include tm-constrs.h.
10052 (struct liw_data): New data structure describing an LIW candidate
10053 instruction.
10054 (extract_bundle): Use struct liw_data. Allow small integer
10055 operands for some instructions.
10056 (check_liw_constraints): Use struct liw_data. Remove swapped
10057 parameter. Add comments describing the checks. Fix bug when
10058 assigning the source of liw1 to the source of liw2.
10059 (liw_candidate): Delete. Code moved into extract_bundle.
10060 (mn10300_bundle_liw): Use struct liw_data. Check constraints
10061 before swapping.
10062 * config/mn10300/predicates.md (liw_operand): New predicate.
10063 Allows registers and small integer constants.
10064 * config/mn10300/constraints.md (O): New constraint. Accetps
10065 integers in the range -8 to +7 inclusive.
10066 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
10067 for moving a small integer into a register. Give this alternative
10068 LIW attributes.
10069 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
10070 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
10071 using the J,K,L and M constraints,
10072 (liw): Remove SI mode on second operands to allow for HI and QI
10073 mode values.
10074 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
10075 instruction.
10076
10077 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
10078
10079 PR middle-end/47725
10080 * combine.c (cant_combine_insn_p): Check zero/sign extended
10081 hard registers.
10082
10083 2011-02-15 Richard Guenther <rguenther@suse.de>
10084
10085 PR tree-optimization/47743
10086 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
10087 for a non-type-compatible VN lookup bail out.
10088
10089 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10090
10091 * config/fr30/constraints.md: New file.
10092 * config/fr30/fr30.md: Include it.
10093 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
10094 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10095 (EXTRA_CONSTRAINT): Delete.
10096
10097 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10098
10099 * config/frv/constraints.md: New file.
10100 * config/frv/predicates.md: Include it.
10101 * config/frv/frv.c (reg_class_from_letter): Delete.
10102 (frv_option_override): Don't initialize it.
10103 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
10104 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
10105 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
10106 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10107 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
10108 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10109 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
10110 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
10111 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
10112 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
10113 (REG_CLASS_FROM_CONSTRAINT): Delete.
10114
10115 2011-02-15 Jakub Jelinek <jakub@redhat.com>
10116
10117 PR middle-end/47581
10118 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
10119 if frame size is 0 in a leaf function.
10120
10121 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10122
10123 PR pch/14940
10124 * config/alpha/host-osf.c: New file.
10125 * config/alpha/x-osf: New file.
10126 * config.host (alpha*-dec-osf*): Use it.
10127
10128 2011-02-14 Anatoly Sokolov <aesok@post.ru>
10129
10130 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10131 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
10132 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
10133 (rx_mode_dependent_address_p): ...this. Make static. Change argument
10134 type to const_rtx.
10135 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10136
10137 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10138
10139 * config/stormy16/constraints.md: New file.
10140 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
10141 Use satisfies_constraint_Q and satisfies_constraint_R.
10142 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
10143 Delete.
10144 (xstormy16_legitiamte_address_p): Declare.
10145 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
10146 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10147 (EXTRA_CONSTRAINT): Delete.
10148 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10149 Un-staticize.
10150 (xstormy16_extra_constraint_p): Delete.
10151
10152 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
10153
10154 PR tree-optimization/46494
10155 * loop-unroll.c (split_edge_and_insert): Adjust comment.
10156 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
10157 (pass_rtl_loop_done): Add TODO_verify_flow.
10158 * fwprop.c (pass_rtl_fwprop): Likewise.
10159 * modulo-sched.c (pass_sms): Likewise.
10160 * tree-ssa-dom.c (pass_dominator): Likewise.
10161 * tree-ssa-loop-ch.c (pass_ch): Likewise.
10162 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
10163 (pass_tree_loop_done): Likewise.
10164 * tree-ssa-pre.c (execute_pre): Likewise.
10165 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10166 * tree-ssa-sink.c (pass_sink_code): Likewise.
10167 * tree-vrp.c (pass_vrp): Likewise.
10168
10169 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10170
10171 * config/v850/constraints.md: New file.
10172 * config/v850/v850.md: Include it.
10173 * config/v850/predicates.md (reg_or_0_operand): Use
10174 satisfies_constraint_G.
10175 (special_symbolref_operand): Use satisfies_constraint_K.
10176 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
10177 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10178 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
10179 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10180 (EXTRA_CONSTRAINT): Delete.
10181 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
10182 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
10183 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
10184
10185 2011-02-14 Anatoly Sokolov <aesok@post.ru>
10186
10187 PR target/47696
10188 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
10189 description.
10190
10191 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10192
10193 * config/mcore/constraints.md: New file.
10194 * config/mcore/mcore.md: Include it.
10195 * config/mcore/mcore.c (reg_class_from_letter): Delete.
10196 * config/mcore/mcore.h (reg_class_from_letter): Delete.
10197 (REG_CLASS_FROM_LETTER): Delete.
10198 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
10199 insn_const_int_ok_for_constraint.
10200 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
10201 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
10202 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10203 (EXTRA_CONSTRAINT): Delete.
10204
10205 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10206
10207 PR ada/41929
10208 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
10209 (IS_SIGHANDLER): Define.
10210 (sparc64_is_sighandler): New function, split off from
10211 sparc64_fallback_frame_state.
10212 (sparc_is_sighandler): New function, split off from
10213 sparc_fallback_frame_state.
10214 (sparc64_fallback_frame_state): Merge with ...
10215 (sparc_fallback_frame_state): ... this into ...
10216 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
10217 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
10218 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
10219 stack instead of hardcoded offsets.
10220
10221 2011-02-14 Andriy Gapon <avg@freebsd.org>
10222
10223 PR target/45808
10224 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
10225
10226 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10227
10228 * configure: Regenerate.
10229
10230 2011-02-12 Joseph Myers <joseph@codesourcery.com>
10231
10232 PR driver/45731
10233 * gcc.c (asm_options): Correct spec matching --target-help.
10234
10235 2011-02-12 Martin Jambor <mjambor@suse.cz>
10236
10237 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
10238 to gimple call error.
10239
10240 2011-02-12 Mike Stump <mikestump@comcast.net>
10241
10242 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
10243 comments in backslash regions.
10244
10245 2011-02-12 Mike Stump <mikestump@comcast.net>
10246 Jakub Jelinek <jakub@redhat.com>
10247 Iain Sandoe <iains@gcc.gnu.org>
10248
10249 PR target/47324
10250 * dwarf2out.c (output_cfa_loc): When required, apply the
10251 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
10252 (output_loc_sequence): Likewise.
10253 (output_loc_operands_raw): Likewise.
10254 (output_loc_sequence_raw): Likewise.
10255 (output_cfa_loc): Likewise.
10256 (output_loc_list): Suppress register number adjustment when
10257 calling output_loc_sequence()
10258 (output_die): Likewise.
10259
10260 2011-02-12 Anatoly Sokolov <aesok@post.ru>
10261
10262 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10263 Remove macros.
10264 * config/xtensa/xtensa.c (xtensa_register_move_cost,
10265 xtensa_memory_move_cost): New functions.
10266 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
10267
10268 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
10269
10270 PR lto/47225
10271 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
10272 in the current directory.
10273 * configure: Rebuilt.
10274
10275 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
10276
10277 * config/darwin.c (darwin_override_options): Add a hunk missed
10278 from the commit of r168571. Trim comment line lengths and
10279 correct indents of the preceding block.
10280
10281 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
10282
10283 * gcc.c (driver_handle_option): Concatenate the argument to -F with
10284 the switch.
10285
10286 2011-02-11 Joseph Myers <joseph@codesourcery.com>
10287
10288 * common.opt (nostartfiles): New Driver option.
10289
10290 2011-02-11 Xinliang David Li <davidxl@google.com>
10291
10292 PR tree-optimization/47707
10293 * tree-chrec.c (convert_affine_scev): Keep type precision.
10294
10295 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
10296
10297 PR tree-optimization/47420
10298 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
10299
10300 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
10301
10302 PR rtl-optimization/47614
10303 * rtl.h (check_for_inc_dec): Declare.
10304 * dse.c (check_for_inc_dec): Externalize...
10305 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
10306 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
10307
10308 2011-02-11 Joseph Myers <joseph@codesourcery.com>
10309
10310 PR driver/47678
10311 * gcc.c (main): Do not compile inputs if there were errors in
10312 option handling.
10313 * opts-common.c (read_cmdline_option): Check for wrong language
10314 after other error checks.
10315
10316 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
10317
10318 * cgraph.c: Fix comment typos.
10319 * cgraph.h: Likewise.
10320 * cgraphunit.c: Likewise.
10321 * ipa-cp.c: Likewise.
10322 * ipa-inline.c: Likewise.
10323 * ipa-prop.c: Likewise.
10324 * ipa-pure-const.c: Likewise.
10325 * ipa-ref.c: Likewise.
10326 * ipa-reference.c: Likewise.
10327
10328 2011-02-11 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR debug/47684
10331 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
10332
10333 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10334
10335 PR testsuite/47400
10336 * doc/sourcebuild.texi (Require Support): Document
10337 dg-require-ascii-locale.
10338
10339 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
10340
10341 * doc/lto.texi (Write summary): Fix missing parentheses.
10342
10343 2011-02-10 DJ Delorie <dj@redhat.com>
10344
10345 * config/m32c/m32c.c (m32c_option_override): Disable
10346 -fcombine-stack-adjustments until flag value tracking and compare
10347 optimization can be rewritten.
10348
10349 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
10350
10351 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
10352 PROCESSOR_POWER7.
10353 (PROCESSOR_DEFAULT64): Likewise.
10354
10355 2011-02-10 Richard Henderson <rth@redhat.com>
10356
10357 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
10358 change from 2011-02-03.
10359 * config/rx/rx.c (flags_from_code): Likewise.
10360 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
10361 is valid, n/pz otherwise.
10362 (rx_select_cc_mode): Return CCmode if Y is not zero.
10363
10364 2011-02-10 Richard Guenther <rguenther@suse.de>
10365
10366 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
10367
10368 2011-02-10 Richard Guenther <rguenther@suse.de>
10369
10370 PR tree-optimization/47677
10371 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
10372
10373 2011-02-10 Jakub Jelinek <jakub@redhat.com>
10374
10375 PR target/47665
10376 * combine.c (make_compound_operation): Only change shifts into
10377 multiplication for SCALAR_INT_MODE_P.
10378
10379 2011-02-10 Jie Zhang <jie@codesourcery.com>
10380
10381 PR testsuite/47622
10382 Revert
10383 2011-02-05 Jie Zhang <jie@codesourcery.com>
10384 PR debug/42631
10385 * web.c (entry_register): Don't clobber the number of the
10386 first uninitialized reference in used[].
10387
10388 2011-02-09 Richard Guenther <rguenther@suse.de>
10389
10390 PR tree-optimization/47664
10391 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
10392 all edges again.
10393
10394 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
10395
10396 PR target/46481
10397 PR target/47032
10398 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
10399 PROCESSOR_POWER7.
10400 (PROCESSOR_DEFAULT64): Same.
10401 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
10402
10403 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10404
10405 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
10406
10407 2011-02-09 Martin Jambor <mjambor@suse.cz>
10408
10409 PR middle-end/45505
10410 * tree-sra.c (struct access): New flags grp_scalar_read and
10411 grp_scalar_write. Changed description of assignment read and write
10412 flags.
10413 (dump_access): Dump new flags, reorder all of them.
10414 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
10415 to detect multiple scalar reads.
10416 (analyze_access_subtree): Use the new scalar read write flags instead
10417 of the old flags. Adjusted comments.
10418
10419 2011-02-08 DJ Delorie <dj@redhat.com>
10420
10421 PR target/47548
10422 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
10423 patterns.
10424
10425 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10426
10427 * config/m68k/uclinux.opt: New.
10428 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
10429
10430 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10431
10432 * config/cris/elf.opt (sim): New Driver option.
10433
10434 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10435
10436 * config/xtensa/elf.opt: New.
10437 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
10438
10439 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10440
10441 * config/vax/elf.opt: New.
10442 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
10443
10444 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10445
10446 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
10447
10448 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10449
10450 * config/gnu-user.opt: New.
10451 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
10452 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
10453 *-*-uclinux*): Use gnu-user.opt.
10454
10455 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
10456
10457 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
10458 * config/i386/gnu.h (CPP_SPEC): Likewise.
10459
10460 2011-02-08 Ian Lance Taylor <iant@google.com>
10461
10462 * common.opt (fcx-limited-range): Add SetByCombined flag.
10463 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
10464 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
10465 (fassociative-math, freciprocal-math): Likewise.
10466 (funsafe-math-optimizations): Likewise.
10467 * opth-gen.awk: Handle SetByCombined.
10468 * optc-gen.awk: Likewise.
10469 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
10470 (set_unsafe_math_optimizations_flags): Likewise.
10471 * doc/options.texi (Option properties): Document SetByCombined.
10472
10473 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10474
10475 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
10476 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
10477 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
10478 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
10479 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
10480
10481 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
10482
10483 PR tree-optimization/46834
10484 PR tree-optimization/46994
10485 PR tree-optimization/46995
10486 * graphite-sese-to-poly.c (used_outside_reduction): New.
10487 (detect_commutative_reduction): Call used_outside_reduction.
10488 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
10489 translate_scalar_reduction_to_array only when at least one
10490 loop-phi/close-phi tuple has been detected.
10491
10492 2011-02-08 Richard Guenther <rguenther@suse.de>
10493
10494 PR middle-end/47639
10495 * tree-vect-generic.c (expand_vector_operations_1): Update
10496 stmts here ...
10497 (expand_vector_operations): ... not here. Cleanup EH info
10498 and the CFG if required.
10499
10500 2011-02-08 Richard Guenther <rguenther@suse.de>
10501
10502 PR tree-optimization/47641
10503 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
10504 require type compatibility.
10505
10506 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10507
10508 * gimple-low.c (lower_function_body): Don't remove the location of
10509 the return statement here.
10510 (lower_gimple_return): Do it here instead but only if the return
10511 statement is actually used twice.
10512
10513 2011-02-08 Richard Guenther <rguenther@suse.de>
10514
10515 PR tree-optimization/47632
10516 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
10517 unused up_to_stmt parameter, return whether cfg-cleanup is
10518 necessary, remove EH info properly.
10519 (forward_propagate_into_gimple_cond): Adjust caller.
10520 (forward_propagate_into_cond): Likewise.
10521 (forward_propagate_comparison): Likewise.
10522 (tree_ssa_forward_propagate_single_use_vars): Make
10523 forward_propagate_comparison case similar to the two others.
10524
10525 2011-02-08 Nick Clifton <nickc@redhat.com>
10526
10527 * config/mn10300/mn10300.opt (mliw): New command line option.
10528 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
10529 (liw_bundling): New automaton.
10530 (liw): New attribute.
10531 (liw_op): New attribute.
10532 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
10533 (movsi_internal): Add LIW attributes.
10534 (andsi3): Likewise.
10535 (iorsi3): Likewise.
10536 (xorsi3): Likewise.
10537 (addsi3): Separate register and immediate alternatives.
10538 Add LIW attributes.
10539 (subsi3): Likewise.
10540 (cmpsi): Likewise.
10541 (aslsi3): Likewise.
10542 (lshrsi3): Likewise.
10543 (ashrsi3): Likewise.
10544 (liw): New pattern.
10545 * config/mn10300/mn10300.c (liw_op_names): New
10546 (mn10300_print_operand): Handle 'W' operand descriptor.
10547 (extract_bundle): New function.
10548 (check_liw_constraints): New function.
10549 (liw_candidate): New function.
10550 (mn10300_bundle_liw): New function.
10551 (mn10300_reorg): New function.
10552 (TARGET_MACHINE_DEPENDENT_REORG): Define.
10553 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
10554 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
10555 __LIW__ or __NO_LIW__.
10556 * doc/invoke.texi: Describe the -mliw command line option.
10557
10558 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10559
10560 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
10561 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10562 pthread_mutex_unlock): Remove.
10563 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
10564 * config/pa/t-pa64: Likewise.
10565 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
10566 shared libc if not linking against libpthread.
10567 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10568
10569 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
10570
10571 PR target/47558
10572 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
10573 on 10.6 and later to ensure that we always use the unwinder from
10574 the system. Only add -no_compact_unwind when tarteting darwin
10575 10.6 or later.
10576
10577 2011-02-07 Steve Ellcey <sje@cup.hp.com>
10578
10579 PR target/46997
10580 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
10581 (vec_interleave_lowv2sf): Ditto.
10582 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
10583 (vec_extract_oddv2sf): Ditto.
10584
10585 2011-02-07 Mike Stump <mikestump@comcast.net>
10586
10587 PR target/42333
10588 Add __ieee_divdc3 entry point.
10589 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
10590 entry point.
10591 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
10592 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
10593 * config/darwin.c (darwin_rename_builtins): Add.
10594 * config/darwin-protos.h (darwin_rename_builtins): Add.
10595
10596 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10597
10598 PR target/47636
10599 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
10600 for the condition.
10601
10602 2011-02-07 Mike Stump <mikestump@comcast.net>
10603
10604 * config/darwin.opt (mmacosx-version-min): Update default OS version.
10605
10606 2011-02-07 Denis Chertykov <chertykov@gmail.com>
10607
10608 PR target/47534
10609 * config/avr/libgcc.S (exit): Move .endfunc
10610
10611 2011-02-07 Richard Guenther <rguenther@suse.de>
10612
10613 PR tree-optimization/47615
10614 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
10615 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
10616 (run_scc_vn): Initialize it.
10617 (visit_reference_op_load): Use it.
10618 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
10619
10620 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10621
10622 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
10623 DImode trapping arithmetic libfuncs.
10624
10625 2011-02-07 Richard Guenther <rguenther@suse.de>
10626
10627 PR tree-optimization/47621
10628 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
10629 two duplicates ...
10630 (execute_update_addresses_taken): ... here. Make it more
10631 conservative in what we accept.
10632
10633 2011-02-06 Joseph Myers <joseph@codesourcery.com>
10634
10635 * config/sparc/freebsd.h (ASM_SPEC): Define.
10636 * config/sparc/vxworks.h (ASM_SPEC): Define.
10637
10638 2011-02-06 Joseph Myers <joseph@codesourcery.com>
10639
10640 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10641
10642 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
10643
10644 * doc/invoke.texi: Remove reference to compiler internals from
10645 user documentation.
10646
10647 * reg-notes.def: Remove REG_VALUE_PROFILE.
10648 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
10649
10650 2011-02-05 Jakub Jelinek <jakub@redhat.com>
10651
10652 PR middle-end/47610
10653 * varasm.c (default_section_type_flags): If decl is NULL,
10654 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
10655
10656 2011-02-05 Jie Zhang <jie@codesourcery.com>
10657
10658 PR debug/42631
10659 * web.c (entry_register): Don't clobber the number of the
10660 first uninitialized reference in used[].
10661
10662 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
10663
10664 PR tree-optimization/46194
10665 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
10666 (build_classic_dist_vector_1): Do not represent classic distance
10667 vectors when the access functions are variating in different loops.
10668
10669 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10670
10671 * config/mips/iris6.opt: New.
10672 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
10673
10674 2011-02-04 Richard Henderson <rth@redhat.com>
10675 Steve Ellcey <sje@cup.hp.com>
10676
10677 PR target/46997
10678 * config/ia64/predicates.md (mux1_brcst_element): New.
10679 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
10680 * config/ia64/ia64.c (ia64_unpack_assemble): New.
10681 (ia64_unpack_sign): New.
10682 (ia64_expand_unpack): Rewrite using new routines.
10683 (ia64_expand_widen_sum): Ditto.
10684 (ia64_expand_dot_prod_v8qi): Ditto.
10685 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
10686 routines, add endian check.
10687 (pmpy2_even): Rename from pmpy2_r, add endian check.
10688 (pmpy2_odd): Rename from pmpy2_l, add endian check.
10689 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
10690 (vec_widen_smult_hi_v4hi): Ditto.
10691 (vec_widen_umult_lo_v4hi): Ditto.
10692 (vec_widen_umult_hi_v4hi): Ditto.
10693 (mulv2si3): Change endian checks.
10694 (sdot_prodv4hi): Rewrite with new calls.
10695 (udot_prodv4hi): New.
10696 (vec_pack_ssat_v4hi): Add endian check.
10697 (vec_pack_usat_v4hi): Ditto.
10698 (vec_pack_ssat_v2si): Ditto.
10699 (max1_even): Rename from max1_r, add endian check.
10700 (max1_odd): Rename from max1_l, add endian check.
10701 (*mux1_rev): Format change.
10702 (*mux1_mix): Ditto.
10703 (*mux1_shuf): Ditto.
10704 (*mux1_alt): Ditto.
10705 (*mux1_brcst_v8qi): Use new predicate.
10706 (vec_extract_evenv8qi): Remove endian check.
10707 (vec_extract_oddv8qi): Ditto.
10708 (vec_interleave_lowv4hi): Format change.
10709 (vec_interleave_highv4hi): Ditto.
10710 (mix2_even): Rename from mix2_r, add endian check.
10711 (mix2_odd): Rename from mux2_l, add endian check.
10712 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
10713 (vec_extract_evenodd_helper): Format change.
10714 (vec_extract_evenv4hi): Remove endian check.
10715 (vec_extract_oddv4hi): Remove endian check.
10716 (vec_interleave_lowv2si): Format change.
10717 (vec_interleave_highv2si): Format change.
10718 (vec_initv2si): Remove endian check.
10719 (vecinit_v2si): Add endian check.
10720 (reduc_splus_v2sf): Add endian check.
10721 (reduc_smax_v2sf): Ditto.
10722 (reduc_smin_v2sf): Ditto.
10723 (vec_initv2sf): Remove endian check.
10724 (fpack): Add endian check.
10725 (fswap): Add endian check.
10726 (vec_interleave_highv2sf): Add endian check.
10727 (vec_interleave_lowv2sf): Add endian check.
10728 (fmix_lr): Add endian check.
10729 (vec_setv2sf): Format change.
10730 (*vec_extractv2sf_0_be): Use shift to extract operand.
10731 (*vec_extractv2sf_1_be): New.
10732 (vec_pack_trunc_v4hi): Add endian check.
10733 (vec_pack_trunc_v2si): Format change.
10734
10735 2011-02-04 Jakub Jelinek <jakub@redhat.com>
10736
10737 PR inline-asm/23200
10738 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
10739 do bb, locus and block comparison and disallow loads if it is not set.
10740 (stmt_is_replaceable_p): New function.
10741 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
10742 callers.
10743 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
10744 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
10745 SSA_NAME_DEF_STMT.
10746 * tree-flow.h (stmt_is_replaceable_p): New prototype.
10747
10748 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10749
10750 * config/rs6000/xilinx.opt: New.
10751 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
10752
10753 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10754
10755 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
10756
10757 2011-02-03 Anatoly Sokolov <aesok@post.ru>
10758
10759 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
10760 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10761 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
10762 secondary_reload_info, xtensa_secondary_reload): Remove.
10763 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
10764 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10765 (xtensa_preferred_reload_class): Make static. Change return and
10766 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
10767 Use CONST_DOUBLE_P predicate.
10768 (xtensa_preferred_output_reload_class): New function.
10769 (xtensa_secondary_reload): Make static.
10770
10771 2011-02-03 Joseph Myers <joseph@codesourcery.com>
10772
10773 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
10774 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
10775 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
10776
10777 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10778
10779 PR middle-end/31490
10780 * output.h (SECTION_RELRO): Define.
10781 (SECTION_MACH_DEP): Adjust.
10782 (get_variable_section): New prototype.
10783 * varpool.c (varpool_finalize_named_section_flags): New function.
10784 (varpool_assemble_pending_decls): Call it.
10785 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
10786 * cgraphunit.c (cgraph_output_in_order): Call
10787 varpool_finalize_named_section_flags.
10788 * varasm.c (get_section): Allow section flags conflicts between
10789 relro and read-only sections if the section hasn't been declared yet.
10790 Set SECTION_OVERRIDE after diagnosing section type conflict.
10791 (get_variable_section): No longer static.
10792 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
10793 readonly sections that need relocations.
10794 (decl_readonly_section_1): New function.
10795 (decl_readonly_section): Use it.
10796
10797 Revert:
10798 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
10799 Steve Ellcey <sje@cup.hp.com>
10800
10801 PR middle-end/31490
10802 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
10803 if section attribute used.
10804
10805 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10806
10807 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
10808 * config/darwin.c (SECTION_NO_ANCHOR): Define.
10809 (darwin_init_sections): Remove assertion.
10810
10811 2011-02-03 Nick Clifton <nickc@redhat.com>
10812
10813 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
10814 lt and ge.
10815 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
10816 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
10817 instead of "n" and "pz".
10818 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
10819 CC_FLAG_S.
10820
10821 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10822
10823 PR target/47312
10824 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
10825 fma, expand FMA_EXPR as fma{,f,l} call.
10826
10827 PR lto/47274
10828 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
10829 copy them into a unsigned char variable and pass address of it to
10830 lto_output_data_stream.
10831
10832 PR target/47564
10833 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
10834 around backend_init_target and lang_dependent_init_target calls.
10835 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
10836 (verify_cgraph_node): Don't call set_cfun here. Use
10837 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
10838 Set error_found for incorrectly represented calls to thunks.
10839
10840 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
10841
10842 PR debug/43092
10843 PR rtl-optimization/43494
10844 * rtl.h (for_each_inc_dec_fn): New type.
10845 (for_each_inc_dec): Declare.
10846 * rtlanal.c (struct for_each_inc_dec_ops): New type.
10847 (for_each_inc_dec_find_inc_dec): New fn.
10848 (for_each_inc_dec_find_mem): New fn.
10849 (for_each_inc_dec): New fn.
10850 * dse.c (struct insn_size): Remove.
10851 (replace_inc_dec, replace_inc_dec_mem): Remove.
10852 (emit_inc_dec_insn_before): New fn.
10853 (check_for_inc_dec): Use it, along with for_each_inc_dec.
10854 (canon_address): Pass mem modes to cselib_lookup.
10855 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
10856 (cselib_lookup_from_insn): Likewise.
10857 (cselib_subst_to_values): Likewise.
10858 * cselib.c (find_slot_memmode): New var.
10859 (cselib_find_slot): New fn. Use it instead of
10860 htab_find_slot_with_hash everywhere.
10861 (entry_and_rtx_equal_p): Use find_slot_memmode.
10862 (autoinc_split): New fn.
10863 (rtx_equal_for_cselib_p): Rename and implement in terms of...
10864 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
10865 Deal with autoinc. Special-case recursion into MEMs.
10866 (cselib_hash_rtx): Likewise.
10867 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
10868 address and MEM modes.
10869 (cselib_subst_to_values): Add memmode, pass it on.
10870 Deal with autoinc.
10871 (cselib_lookup): Add memmode argument, pass it on.
10872 (cselib_lookup_from_insn): Add memmode.
10873 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
10874 (struct cselib_record_autoinc_data): New.
10875 (cselib_record_autoinc_cb): New fn.
10876 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
10877 mode to cselib_lookup. Reset autoinced REGs here instead of...
10878 (cselib_process_insn): ... here.
10879 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
10880 to cselib_lookup.
10881 (add_uses): Likewise, also to cselib_subst_to_values.
10882 (add_stores): Likewise.
10883 * sched-deps.c (add_insn_mem_dependence): Pass mode to
10884 cselib_subst_to_values.
10885 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
10886 * gcse.c (do_local_cprop): Adjusted.
10887 * postreload.c (reload_cse_simplify_set): Adjusted.
10888 (reload_cse_simplify_operands): Adjusted.
10889 * sel-sched-dump (debug_mem_addr_value): Pass mode.
10890
10891 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
10892
10893 PR tree-optimization/45122
10894 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
10895 unsafe assumptions when there's more than one loop exit.
10896
10897 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10898
10899 PR target/47272
10900 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10901 Document using vector double with the load/store builtins, and
10902 that the load/store builtins always use Altivec instructions.
10903
10904 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
10905 to use altivec memory instructions, even on VSX.
10906 (vector_altivec_store_<mode>): Ditto.
10907
10908 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
10909 function.
10910
10911 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10912 V2DF, V2DI support to load/store overloaded builtins.
10913
10914 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
10915 altivec load/store builtins for V2DF/V2DI types.
10916
10917 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10918 set avoid indexed addresses on power6 if -maltivec.
10919 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
10920 vector_altivec_load/vector_altivec_store builtins.
10921 (altivec_expand_st_builtin): Ditto.
10922 (altivec_expand_builtin): Add VSX memory builtins.
10923 (rs6000_init_builtins): Add V2DI types to internal types.
10924 (altivec_init_builtins): Add support for V2DF/V2DI altivec
10925 load/store builtins.
10926 (rs6000_address_for_altivec): Insure memory address is appropriate
10927 for Altivec.
10928
10929 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
10930 vec_vsx_ld and vec_vsx_st.
10931 (vsx_store_<mode>): Ditto.
10932
10933 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10934 variables to hold long long types for VSX vector memory builtins.
10935 (RS6000_BTI_unsigned_long_long): Ditto.
10936 (long_long_integer_type_internal_node): Ditti.
10937 (long_long_unsigned_type_internal_node): Ditti.
10938
10939 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10940 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10941 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10942
10943 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10944 short cuts.
10945 (vec_vsx_st): Ditto.
10946
10947 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10948
10949 * config/pa/pa-hpux10.opt: New.
10950 * config/hpux11.opt (pthread): New Driver option.
10951 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10952 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10953
10954 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10955
10956 * config/ia64/vms.opt: New.
10957 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10958
10959 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10960
10961 PR target/47580
10962 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10963 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10964 generator functions.
10965 (vsx_floatuns<VSi><mode>2): Ditto.
10966 (vsx_fix_trunc<mode><VSi>2): Ditto.
10967 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10968
10969 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10970
10971 * config/i386/djgpp.opt (posix): New Driver option.
10972
10973 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10974
10975 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10976 Move to the unsupported targets list.
10977
10978 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
10979
10980 PR rtl-optimization/47525
10981 * df-scan.c: Update copyright years.
10982 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10983 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10984
10985 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10986
10987 * config/i386/sysv4.h (TARGET_VERSION): Remove.
10988 (SUBTARGET_RETURN_IN_MEMORY): Remove.
10989 (ASM_OUTPUT_ASCII): Remove.
10990 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10991
10992 2011-02-02 Jeff Law <law@redhat.com>
10993
10994 PR middle-end/47543
10995 * reload.c (find_reloads_address): Handle reg+d address where both
10996 components are invalid by reloading the entire address.
10997
10998 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10999 Richard Guenther <rguenther@suse.de>
11000
11001 PR tree-optimization/40979
11002 PR bootstrap/47044
11003 * passes.c (init_optimization_passes): After LIM call copy_prop
11004 and DCE to clean up.
11005 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
11006
11007 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
11008
11009 PR tree-optimization/47576
11010 PR tree-optimization/47555
11011 * doc/invoke.texi (scev-max-expr-complexity): Documented.
11012 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11013 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
11014 * tree-scalar-evolution.c (follow_ssa_edge): Use
11015 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
11016
11017 2011-02-02 Richard Guenther <rguenther@suse.de>
11018
11019 PR tree-optimization/47566
11020 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
11021
11022 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
11023
11024 PR debug/47106
11025 PR debug/47402
11026 * tree-inline.c (declare_return_variable): Remove unused caller
11027 variable.
11028
11029 PR debug/47106
11030 PR debug/47402
11031 * tree-flow-inline.h (clear_is_used, is_used_p): New.
11032 * cfgexpand.c (account_used_vars_for_block): Use them.
11033 * tree-nrv.c (tree_nrv): Likewise.
11034 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
11035 (dump_scope_block): Likewise.
11036 (remove_unused_locals): Likewise.
11037
11038 PR debug/47106
11039 PR debug/47402
11040 * tree-inline.c (declare_return_variable): Add result decl to
11041 local decls only once.
11042 * gimple-low.c (record_vars_into): Mark newly-created variables
11043 as referenced.
11044
11045 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
11046
11047 PR debug/47498
11048 PR debug/47501
11049 PR debug/45136
11050 PR debug/45130
11051 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11052 debug insns.
11053 (no_real_insns_p, schedule_block, set_priorities): Drop special
11054 treatment of boundary debug insns.
11055 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11056 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
11057 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11058 (BOUNDARY_DEBUG_INSN_P): Likewise.
11059 (SCHEDULE_DEBUG_INSN_P): Likewise.
11060 * sched-rgn.c (init_ready_list): Drop special treatment of
11061 boundary debug insns.
11062 * final.c (rest_of_clean_state): Clear notes' BB.
11063
11064 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11065
11066 * config/openbsd.opt (assert=): New Driver option.
11067
11068 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11069
11070 * config/i386/nto.opt: New.
11071 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
11072
11073 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11074
11075 * config/i386/netware.opt: New.
11076 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
11077
11078 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11079
11080 * config/interix.opt (posix): New Driver option.
11081
11082 2011-02-01 DJ Delorie <dj@redhat.com>
11083
11084 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
11085
11086 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
11087 class for A0/A1.
11088
11089 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
11090
11091 PR tree-optimization/47561
11092 * toplev.c (process_options): Print the Graphite flags. Add
11093 flag_loop_flatten to the list of options requiring Graphite.
11094
11095 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11096
11097 * config/i386/cygming.opt (posix): New Driver option.
11098
11099 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11100
11101 * config/arm/vxworks.opt: New.
11102 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
11103
11104 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11105
11106 * config/alpha/elf.opt: New.
11107 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
11108 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
11109
11110 2011-02-01 Richard Guenther <rguenther@suse.de>
11111
11112 PR tree-optimization/47559
11113 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
11114 store-motion on references that can throw.
11115
11116 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
11117
11118 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
11119 * tree-pass.h (TDF_CSELIB): New macro.
11120 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
11121 cselib_lookup): Check for it rather than for TDF_DETAILS.
11122
11123 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
11124
11125 PR driver/47547
11126 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
11127 is HOST_BIT_BUCKET.
11128
11129 * opts.c (finish_options): Don't add x_aux_base_name if it is
11130 HOST_BIT_BUCKET.
11131
11132 2011-02-01 Richard Guenther <rguenther@suse.de>
11133
11134 PR tree-optimization/47555
11135 Revert
11136 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
11137
11138 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11139
11140 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
11141
11142 PR gcc/46692
11143 * config/lm32/t-lm32: Add multilib for all CPU options.
11144
11145 2011-02-01 Richard Guenther <rguenther@suse.de>
11146
11147 PR tree-optimization/47541
11148 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11149 sure to have a field at offset zero.
11150
11151 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11152
11153 * config/arc/arc.opt (EB, EL): New Driver options.
11154
11155 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11156
11157 * config/alpha/osf5.opt: New.
11158 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
11159
11160 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11161
11162 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
11163
11164 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
11165
11166 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
11167 -floop-interchange.
11168 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
11169 is an alias of -floop-interchange and that it requires the
11170 Graphite infrastructure.
11171 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
11172 flag_loop_interchange based on the value of flag_tree_loop_linear.
11173
11174 2011-01-31 Jakub Jelinek <jakub@redhat.com>
11175 Richard Guenther <rguenther@suse.de>
11176
11177 PR tree-optimization/47538
11178 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
11179 type instead of r1type, except for comparisons. For right
11180 shifts and comparisons punt if there are mismatches in
11181 sizetype vs. non-sizetype types.
11182
11183 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11184
11185 * doc/sourcebuild.texi (Effective-Target Keywords): Document
11186 avx_runtime.
11187
11188 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11189
11190 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
11191 version number.
11192 * configure: Regenerate.
11193
11194 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11195
11196 * configure.ac (gcc_cv_ld_static_option): Define.
11197 (gcc_cv_ld_dynamic_option): Define.
11198 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
11199 instead.
11200 (HAVE_LD_STATIC_DYNAMIC): Update message.
11201 (LD_STATIC_OPTION): Define.
11202 (LD_DYNAMIC_OPTION): Define.
11203 * configure: Regenerate.
11204 * config.in: Regenerate.
11205 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
11206 HAVE_LD_STATIC_DYNAMIC]: Use them.
11207
11208 2011-01-31 Nick Clifton <nickc@redhat.com>
11209
11210 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
11211 registers inside interrupt handlers if the handler is not a leaf
11212 function.
11213
11214 2011-01-31 Nick Clifton <nickc@redhat.com>
11215
11216 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
11217 reg_renumber returning an INVALID_REGNUM.
11218
11219 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
11220
11221 PR libgcj/44341
11222 * doc/install.texi: Document host options discarded when cross
11223 configuring target libraries.
11224
11225 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
11226
11227 Reverted:
11228 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
11229 PR debug/45136
11230 PR debug/45130
11231 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11232 debug insns.
11233 (no_real_insns_p, schedule_block, set_priorities): Drop special
11234 treatment of boundary debug insns.
11235 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11236 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11237 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11238 (BOUNDARY_DEBUG_INSN_P): Likewise.
11239 (SCHEDULE_DEBUG_INSN_P): Likewise.
11240 * sched-rgn.c (init_ready_list): Drop special treatment of
11241 boundary debug insns.
11242 * final.c (rest_of_clean-state): Clear notes' BB.
11243
11244 2011-01-31 Alan Modra <amodra@gmail.com>
11245
11246 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
11247 toc relative expressions as we do in print_operand_address.
11248
11249 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
11250
11251 * doc/extend.texi: Follow spelling conventions.
11252 * doc/invoke.texi: Fix a typo.
11253
11254 2011-01-30 Joseph Myers <joseph@codesourcery.com>
11255
11256 * config/hpux11.opt: New.
11257 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
11258 ia64*-*-hpux*): Use hpux11.opt.
11259
11260 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
11261
11262 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
11263 to tmake_file.
11264
11265 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11266
11267 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
11268 support sites.
11269
11270 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11271
11272 * doc/install.texi (Binaries): Remove outdated reference for
11273 Motorola 68HC11/68HC12 downloads.
11274
11275 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11276
11277 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
11278 Drepper's paper.
11279
11280 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
11281
11282 PR bootstrap/47147
11283 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
11284 used by NetBSD.
11285
11286 2011-01-28 Ahmad Sharif <asharif@google.com>
11287
11288 * value-prof.c (check_counter): Corrected error message.
11289
11290 2011-01-29 Jie Zhang <jie@codesourcery.com>
11291
11292 * config/arm/arm.c (arm_legitimize_reload_address): New.
11293 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11294 arm_legitimize_reload_address.
11295 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
11296
11297 2011-01-28 Ian Lance Taylor <iant@google.com>
11298
11299 * godump.c (go_define): Ignore macros whose definitions include
11300 two adjacent operands.
11301
11302 2011-01-28 Jakub Jelinek <jakub@redhat.com>
11303
11304 PR target/42894
11305 * varasm.c (force_const_mem): Store copy of x in desc->constant
11306 instead of x itself.
11307 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
11308 itself into REG_EQUAL note.
11309
11310 2011-01-28 Joseph Myers <joseph@codesourcery.com>
11311
11312 * config/freebsd.opt (posix, rdynamic): New Driver options.
11313
11314 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11315
11316 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
11317 -Bstatic/-Bdynamic.
11318 * configure: Regenerate.
11319
11320 2011-01-27 Joseph Myers <joseph@codesourcery.com>
11321
11322 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
11323 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
11324
11325 2011-01-27 Anatoly Sokolov <aesok@post.ru>
11326
11327 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
11328 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
11329 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11330 (s390_preferred_reload_class): Make static. Change return and
11331 'rclass' argument type to reg_class_t.
11332
11333 2011-01-27 Jan Hubicka <jh@suse.cz>
11334
11335 PR middle-end/46949
11336 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
11337 (process_function_and_variable_attributes): Check defined weakrefs.
11338
11339 2011-01-27 Martin Jambor <mjambor@suse.cz>
11340
11341 PR tree-optimization/47228
11342 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
11343 build_ref_for_offset.
11344
11345 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11346
11347 * config/spu/spu-elf.h (ASM_SPEC): Remove.
11348
11349 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
11350
11351 PR rtl-optimization/46856
11352 * postreload.c (reload_combine_recognize_const_pattern): Do not
11353 separate cc0 setter and user on cc0 targets.
11354
11355 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
11356
11357 PR c/43082
11358 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
11359 passed a VOID_TYPE expression, immediately emit an error and
11360 return error_mark_node.
11361
11362 2011-01-26 Jeff Law <law@redhat.com>
11363
11364 PR rtl-optimization/47464
11365 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
11366 rather than may_trap_p as needed.
11367
11368 2011-01-26 DJ Delorie <dj@redhat.com>
11369
11370 PR rtl-optimization/46878
11371 * combine.c (insn_a_feeds_b): Check for the implicit cc0
11372 setter/user dependency as well.
11373
11374 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
11375
11376 PR rtl-optimization/44469
11377 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
11378 after removing trivially dead basic blocks.
11379
11380 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11381
11382 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
11383 * config/frv/frv.h (LINK_SPEC): Likewise.
11384 * config/i386/netware.h (LINK_SPEC): Likewise.
11385 * config/m68k/linux.h (ASM_SPEC): Likewise.
11386 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11387 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11388 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11389 * config/sparc/linux.h (ASM_SPEC): Likewise.
11390 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11391 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11392
11393 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11394
11395 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
11396 * config/frv/frv.h (ASM_SPEC): Likewise.
11397 * config/m68k/linux.h (ASM_SPEC): Likewise.
11398 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11399 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
11400 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11401 * config/sparc/linux.h (ASM_SPEC): Likewise.
11402 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11403 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11404
11405 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11406
11407 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
11408 * config/frv/frv.h (LINK_SPEC): Likewise.
11409 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11410
11411 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11412
11413 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
11414 * config/frv/frv.h (ASM_SPEC): Likewise.
11415 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
11416 * config/m68k/linux.h (ASM_SPEC): Likewise.
11417 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11418 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
11419 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11420 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
11421 * config/sparc/linux.h (ASM_SPEC): Likewise.
11422 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11423 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11424 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
11425
11426 2011-01-26 Steve Ellcey <sje@cup.hp.com>
11427
11428 PR target/46997
11429 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
11430 (*mux2): Ditto.
11431 (vec_extract_evenodd_help): Ditto.
11432 (vec_extract_evenv4hi): Ditto.
11433 (vec_extract_oddv4hi): Ditto.
11434 (vec_interleave_lowv2si): Ditto.
11435 (vec_interleave_highv2si): Ditto.
11436 (vec_extract_evenv2si): Ditto.
11437 (vec_extract_oddv2si: Ditto.
11438 (vec_pack_trunc_v2si): Ditto.
11439
11440 2011-01-22 Jan Hubicka <jh@suse.cz>
11441
11442 PR target/47237
11443 * cgraph.h (cgraph_local_info): New field can_change_signature.
11444 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
11445 signature can change.
11446 (ipcp_estimate_growth): Call sequence simplify only if calle signature
11447 can change.
11448 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
11449 (cgraph_function_versioning): We can not change signature of functions
11450 that don't allow that.
11451 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
11452 (lto_input_node): Likewise.
11453 * ipa-inline.c (compute_inline_parameters): Compute
11454 local.can_change_signature.
11455 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
11456 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
11457 functions that can not change signature.
11458 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
11459 init_cumulative_args): Do not use local calling conventions
11460 for functions that can not change signature.
11461
11462 2011-01-22 Jan Hubicka <jh@suse.cz>
11463
11464 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
11465
11466 2011-01-26 Richard Guenther <rguenther@suse.de>
11467
11468 PR tree-optimization/47190
11469 * cgraphunit.c (process_common_attributes): New function.
11470 (process_function_and_variable_attributes): Use it.
11471
11472 2011-01-26 Richard Guenther <rguenther@suse.de>
11473
11474 PR lto/47423
11475 * cgraphbuild.c (record_eh_tables): Record reference to personality
11476 function.
11477
11478 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
11479
11480 PR debug/45454
11481 * sel-sched.c (moveup_expr): Don't let debug insns prevent
11482 non-debug insns from moving up.
11483
11484 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11485
11486 PR target/40125
11487 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
11488 t-dlldir{,-x} fragment for build and add it to tmake_file.
11489 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11490 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
11491 * config/i386/t-dlldir: New file.
11492 (SHLIB_DLLDIR): Define.
11493 * config/i386/t-dlldir-x: New file.
11494 (SHLIB_DLLDIR): Define.
11495 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
11496 (SHLIB_INSTALL): Use it.
11497
11498 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
11499
11500 PR target/47246
11501 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
11502 lower bound of the allowed Thumb-2 coprocessor load/store
11503 index range to -256. Add explaining comment.
11504
11505 2011-01-25 Ian Lance Taylor <iant@google.com>
11506
11507 * godump.c (go_define): Improve lexing of macro expansion to only
11508 accept expressions which match Go spec.
11509
11510 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11511
11512 PR c++/43601
11513 * tree.c (handle_dll_attribute): Handle it.
11514 * doc/extend.texi (@item dllexport): Mention it.
11515 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
11516
11517 2011-01-25 Ian Lance Taylor <iant@google.com>
11518
11519 PR tree-optimization/26854
11520 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
11521 (decl_jump_unsafe): Move higher in file, with no other change.
11522 (bind): Set has_jump_unsafe_decl if appropriate.
11523 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
11524 (check_earlier_gotos): Likewise.
11525 (c_check_switch_jump_warnings): Likewise.
11526
11527 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
11528
11529 * doc/invoke.texi (Warning Options): Add missing hyphen.
11530 (-fprofile-dir): Minor grammatical fixes.
11531 (-fbranch-probabilities): Likewise.
11532
11533 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
11534
11535 PR debug/45136
11536 PR debug/45130
11537 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11538 debug insns.
11539 (no_real_insns_p, schedule_block, set_priorities): Drop special
11540 treatment of boundary debug insns.
11541 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11542 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11543 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11544 (BOUNDARY_DEBUG_INSN_P): Likewise.
11545 (SCHEDULE_DEBUG_INSN_P): Likewise.
11546 * sched-rgn.c (init_ready_list): Drop special treatment of
11547 boundary debug insns.
11548 * final.c (rest_of_clean-state): Clear notes' BB.
11549
11550 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11551
11552 * Makefile.in (LAMBDA_H): Removed.
11553 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
11554 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
11555 lambda-trans.o, and tree-loop-linear.o.
11556 (lto-symtab.o): Remove dependence on LAMBDA_H.
11557 (tree-loop-linear.o): Remove rule.
11558 (lambda-mat.o): Same.
11559 (lambda-trans.o): Same.
11560 (lambda-code.o): Same.
11561 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
11562 (tree-vect-slp.o): Same.
11563 * hwint.h (gcd): Moved here.
11564 (least_common_multiple): Same.
11565 * lambda-code.c: Removed.
11566 * lambda-mat.c: Removed.
11567 * lambda-trans.c: Removed.
11568 * lambda.h: Removed.
11569 * tree-loop-linear.c: Removed.
11570 * lto-symtab.c: Do not include lambda.h.
11571 * omega.c (gcd): Removed.
11572 * passes.c (init_optimization_passes): Remove pass_linear_transform.
11573 * tree-data-ref.c (print_lambda_vector): Moved here.
11574 (lambda_vector_copy): Same.
11575 (lambda_matrix_copy): Same.
11576 (lambda_matrix_id): Same.
11577 (lambda_vector_first_nz): Same.
11578 (lambda_matrix_row_add): Same.
11579 (lambda_matrix_row_exchange): Same.
11580 (lambda_vector_mult_const): Same.
11581 (lambda_vector_negate): Same.
11582 (lambda_matrix_row_negate): Same.
11583 (lambda_vector_equal): Same.
11584 (lambda_matrix_right_hermite): Same.
11585 * tree-data-ref.h: Do not include lambda.h.
11586 (lambda_vector): Moved here.
11587 (lambda_matrix): Same.
11588 (dependence_level): Same.
11589 (lambda_transform_legal_p): Removed declaration.
11590 (lambda_collect_parameters): Same.
11591 (lambda_compute_access_matrices): Same.
11592 (lambda_vector_gcd): Same.
11593 (lambda_vector_new): Same.
11594 (lambda_vector_clear): Same.
11595 (lambda_vector_lexico_pos): Same.
11596 (lambda_vector_zerop): Same.
11597 (lambda_matrix_new): Same.
11598 * tree-flow.h (least_common_multiple): Removed declaration.
11599 * tree-parloops.c (lambda_trans_matrix): Moved here.
11600 (LTM_MATRIX): Same.
11601 (LTM_ROWSIZE): Same.
11602 (LTM_COLSIZE): Same.
11603 (LTM_DENOMINATOR): Same.
11604 (lambda_trans_matrix_new): Same.
11605 (lambda_matrix_vector_mult): Same.
11606 (lambda_transform_legal_p): Same.
11607 * tree-pass.h (pass_linear_transform): Removed declaration.
11608 * tree-ssa-loop.c (tree_linear_transform): Removed.
11609 (gate_tree_linear_transform): Removed.
11610 (pass_linear_transform): Removed.
11611 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
11612 flag_loop_interchange.
11613
11614 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11615
11616 PR tree-optimization/47265
11617 PR tree-optimization/47443
11618 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
11619 if name still has some uses.
11620
11621 2011-01-25 Martin Jambor <mjambor@suse.cz>
11622
11623 PR tree-optimization/47382
11624 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
11625 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
11626
11627 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
11628
11629 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
11630 sjlj_except_unwind_info.
11631
11632 2011-01-25 Richard Guenther <rguenther@suse.de>
11633
11634 PR tree-optimization/47426
11635 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
11636 visible functions results escape.
11637
11638 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11639
11640 PR target/45701
11641 * config/arm/arm.c (any_sibcall_uses_r3): New function.
11642 (arm_get_frame_offsets): Use it.
11643
11644 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11645 Jakub Jelinek <jakub@redhat.com>
11646
11647 PR tree-optimization/47271
11648 * tree-if-conv.c (bb_postdominates_preds): New.
11649 (if_convertible_bb_p): Call bb_postdominates_preds.
11650 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
11651 (predicate_scalar_phi): Call bb_postdominates_preds.
11652
11653 2011-01-25 Nick Clifton <nickc@redhat.com>
11654
11655 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
11656 * config/rx/rx.c (rx_function_value): Likewise.
11657 (rx_promote_function_mode): Likewise.
11658 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
11659 in order to make it legitimate.
11660 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
11661 make sure that the first operand is the same as the result register.
11662 (addsi3_unspec): Delete.
11663 (subdi3): Do not accept immediate operands.
11664 (subdi3_internal): Likewise.
11665
11666 2011-01-25 Jeff Law <law@redhat.com>
11667
11668 PR rtl-optimization/37273
11669 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11670 handle them like argument loads from stack slots. Do not double
11671 count memory for memory constants and argument loads from stack slots.
11672
11673 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11674
11675 PR tree-optimization/47427
11676 PR tree-optimization/47428
11677 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11678 coalesce if the new root var would be TREE_READONLY.
11679
11680 2011-01-25 Richard Guenther <rguenther@suse.de>
11681
11682 PR middle-end/47414
11683 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
11684 correct type for TBAA.
11685
11686 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11687
11688 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
11689 (close_phi_written_to_memory): Call for_each_index with
11690 dr_indices_valid_in_loop.
11691
11692 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11693
11694 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
11695 when it is initialized.
11696
11697 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11698
11699 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
11700 call to graphite_find_data_references_in_stmt.
11701 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
11702 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
11703 call to graphite_find_data_references_in_stmt.
11704 (analyze_drs_in_stmts): Same.
11705 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
11706 in which the scalar analysis of indices is performed.
11707 (create_data_ref): Same. Update call to dr_analyze_indices.
11708 (find_data_references_in_stmt): Update call to create_data_ref.
11709 (graphite_find_data_references_in_stmt): Same.
11710 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
11711 declaration.
11712 (create_data_ref): Same.
11713 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
11714 call to create_data_ref.
11715
11716 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11717
11718 * graphite-sese-to-poly.c (build_poly_scop): Move
11719 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
11720
11721 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11722
11723 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
11724 VAR_DECL, PARM_DECL, and RESULT_DECL.
11725
11726 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11727
11728 * graphite-dependences.c (reduction_dr_1): Allow several reductions
11729 in a reduction PBB.
11730 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
11731 that have already been marked as PBB_IS_REDUCTION.
11732
11733 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11734
11735 * graphite-scop-detection.c (same_close_phi_node): New.
11736 (remove_duplicate_close_phi): New.
11737 (make_close_phi_nodes_unique): New.
11738 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
11739
11740 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11741
11742 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
11743 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
11744 of both data references to be the same.
11745
11746 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11747
11748 * graphite-dependences.c (build_lexicographical_constraint): Remove
11749 the gdim parameter.
11750 (build_lexicographical_constraint): Adjust call to
11751 ppl_powerset_is_empty.
11752 (dependence_polyhedron): Same.
11753 (graphite_legal_transform_dr): Same.
11754 (graphite_carried_dependence_level_k): Same.
11755 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
11756 parameter.
11757 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
11758
11759 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11760
11761 * graphite-sese-to-poly.c
11762 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
11763 (close_phi_written_to_memory): New.
11764 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
11765 and unshare_expr.
11766
11767 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11768
11769 * doc/install.texi: Update the expected version number of PPL to 0.11.
11770 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
11771 #if PPL_VERSION_MINOR < 11.
11772
11773 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11774
11775 * graphite-dependences.c: Include graphite-cloog-util.h.
11776 (new_poly_ddr): Inlined into dependence_polyhedron.
11777 (free_poly_ddr): Moved close by new_poly_ddr.
11778 (dependence_polyhedron_1): Renamed dependence_polyhedron.
11779 Early return NULL when ppl_powerset_is_empty returns true.
11780 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
11781 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
11782 (graphite_legal_transform_dr): Call new_poly_ddr.
11783 (graphite_carried_dependence_level_k): Same.
11784 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
11785 (dot_transformed_deps_stmt_1): Removed.
11786 (dot_deps_stmt_1): Call dot_deps_stmt_2.
11787 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
11788 (dot_deps_1): Call dot_deps_2.
11789 * Makefile.in (graphite-dependences.o): Add missing dependence on
11790 graphite-cloog-util.h.
11791
11792 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11793
11794 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
11795 (build_lexicographical_constraint): Same.
11796 (dependence_polyhedron_1): Same.
11797 (graphite_legal_transform_dr): Same.
11798 (graphite_carried_dependence_level_k): Same.
11799 * graphite-ppl.c (ppl_powerset_is_empty): New.
11800 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
11801 * tree-data-ref.c (dump_data_reference): Print the basic block index.
11802
11803 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11804
11805 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
11806 the "a followed by b" relation and document it.
11807
11808 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11809
11810 * graphite-dependences.c (build_lexicographical_constraint): Stop the
11811 iteration when the bag of constraints is empty.
11812
11813 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11814
11815 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
11816
11817 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11818
11819 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
11820 nest and two loop depths as parameters.
11821 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
11822 lst_perfect_nestify.
11823
11824 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11825
11826 * graphite-dependences.c (print_pddr): Call
11827 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
11828
11829 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11830
11831 * graphite-ppl.c (debug_gmp_value): New.
11832 * graphite-ppl.h (debug_gmp_value): Declared.
11833
11834 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
11835
11836 * doc/install.texi: Document availability of cloog-0.16.
11837
11838 2011-01-25 Vladimir Kargov <kargov@gmail.com>
11839
11840 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
11841 invalid postdominance info.
11842
11843 2011-01-24 Jan Hubicka <jh@suse.cz>
11844
11845 PR c/21659
11846 * doc/extend.texi (weak pragma): Drop claim that it must
11847 appear before definition.
11848 * varasm.c (merge_weak, declare_weak): Only sanity check
11849 that DECL is not output at a time it is declared weak.
11850
11851 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
11852
11853 * machmode.def: Fixed comments.
11854
11855 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
11856
11857 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
11858
11859 2011-01-24 Paul Koning <ni1d@arrl.net>
11860
11861 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
11862 WORDS_BIG_ENDIAN.
11863
11864 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
11865
11866 PR target/46519
11867 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
11868 (block_info): Add scanned and prev.
11869 (move_or_delete_vzeroupper_2): Return if the basic block
11870 has been scanned and the upper 128bit state is unchanged
11871 from the last scan.
11872 (move_or_delete_vzeroupper_1): Return true if the exit
11873 state is changed.
11874 (move_or_delete_vzeroupper): Visit basic blocks using the
11875 work-list based algorithm based on vt_find_locations in
11876 var-tracking.c.
11877
11878 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
11879
11880 2011-01-24 Nick Clifton <nickc@redhat.com>
11881
11882 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
11883 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
11884 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
11885 then define __v850e1__.
11886 * doc/invoke.texi: Document -mv850es.
11887
11888 2011-01-24 Richard Henderson <rth@redhat.com>
11889
11890 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
11891 compound unordered comparisons.
11892 * config/rx/rx.c (rx_split_fp_compare): Remove.
11893 * config/rx/rx-protos.h: Update.
11894 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
11895 (cbranchsf4): Don't call rx_split_fp_compare.
11896 (*cbranchsf4): Use rx_split_cbranch.
11897 (*cmpsf): Don't accept "i" constraint.
11898 (*conditional_branch): Only valid after reload.
11899 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
11900
11901 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11902
11903 PR target/47385
11904 * config/rs6000/altivec.md (vector constant splitters): Add
11905 support for creating vector single precision constants if -mvsx is
11906 used and we would create the constant using Altivec primitives.
11907
11908 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
11909 Richard Sandiford <rdsandiford@googlemail.com>
11910
11911 PR rtl-optimization/47166
11912 * reload1.c (emit_reload_insns): Disable the spill_reg_store
11913 mechanism for PRE_MODIFY and POST_MODIFY.
11914 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
11915 reloadreg.
11916
11917 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
11918
11919 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
11920
11921 2011-01-22 Jan Hubicka <jh@suse.cz>
11922
11923 PR lto/47333
11924 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
11925
11926 2011-01-22 Jan Hubicka <jh@suse.cz>
11927
11928 PR tree-optimization/43884
11929 PR lto/44334
11930 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
11931 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11932
11933 2011-01-22 Anatoly Sokolov <aesok@post.ru>
11934
11935 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11936 * config/s390/s390.c (s390_register_move_cost,
11937 s390_memory_move_cost): New.
11938 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11939
11940 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11941
11942 PR middle-end/47401
11943 * except.c (sjlj_assign_call_site_values): Move setting the
11944 crtl->uses_eh_lsda flag to ...
11945 (sjlj_mark_call_sites): ... here.
11946 (sjlj_emit_function_enter): Support NULL dispatch label.
11947 (sjlj_build_landing_pads): In a function with no landing pads
11948 that still has must-not-throw regions, generate code to register
11949 a personality function with empty LSDA.
11950
11951 2011-01-21 Richard Henderson <rth@redhat.com>
11952
11953 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11954
11955 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11956
11957 * compare-elim.c: New file.
11958 * Makefile.in (OBJS-common): Add it.
11959 (compare-elim.o): New.
11960 * common.opt (fcompare-elim): New.
11961 * opts.c (default_options_table): Add OPT_fcompare_elim.
11962 * tree-pass.h (pass_compare_elim_after_reload): New.
11963 * passes.c (init_optimization_passes): Add it.
11964 * recog.h: Protect against re-inclusion.
11965 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11966 * doc/invoke.texi (-fcompare-elim): Document it.
11967 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11968 * doc/tm.texi: Rebuild.
11969
11970 2011-01-22 Nick Clifton <nickc@redhat.com>
11971
11972 * config/rx/rx.md (cstoresf4): Pass comparison operator to
11973 rx_split_fp_compare.
11974
11975 2011-01-22 Nick Clifton <nickc@redhat.com>
11976
11977 * config/rx/rx.md (UNSPEC_CONST): New.
11978 (deallocate_and_return): Wrap the amount popped off the stack in
11979 an UNSPEC_CONST in order to stop it being rejected by
11980 -mmax-constant-size.
11981 (pop_and_return): Add a "(return)" rtx.
11982 (call): Drop the immediate operand.
11983 (call_internal): Likewise.
11984 (call_value): Likewise.
11985 (call_value_internal): Likewise.
11986 (sibcall_internal): Likewise.
11987 (sibcall_value_internal): Likewise.
11988 (sibcall): Likewise. Generate an explicit call using
11989 sibcall_internal.
11990 (sibcall_value): Likewise.
11991 (mov<>): FAIL if a constant operand is not legitimate.
11992 (addsi3_unpsec): New pattern.
11993
11994 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
11995 (ok_for_max_constant): New function.
11996 (gen_safe_add): New function.
11997 (rx_expand_prologue): Use gen_safe_add.
11998 (rx_expand_epilogue): Likewise.
11999 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
12000 UNSPEC CONSTs.
12001
12002 2011-01-21 Jeff Law <law@redhat.com>
12003
12004 PR tree-optimization/47053
12005 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
12006 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
12007 statements are deleted.
12008 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
12009 is nonempty, then purge dead edges and cleanup the CFG.
12010
12011 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
12012
12013 PR debug/47402
12014 Temporarily revert:
12015 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
12016 PR debug/47106
12017 * tree-dfa.c (create_var_ann): Mark variable as used.
12018
12019 2011-01-21 Jakub Jelinek <jakub@redhat.com>
12020
12021 PR middle-end/45566
12022 * except.c (convert_to_eh_region_ranges): Emit queued no-region
12023 notes from other section in hot/cold partitioning even if
12024 last_action is -3. Increment call_site_base.
12025
12026 PR rtl-optimization/47366
12027 * fwprop.c (forward_propagate_into): Return bool. If
12028 any changes are made, -fnon-call-exceptions is used and
12029 REG_EH_REGION note is present, call purge_dead_edges
12030 and return true if it purged anything.
12031 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
12032 any EH edges were purged.
12033
12034 2011-01-21 Jeff Law <law@redhat.com>
12035
12036 PR rtl-optimization/41619
12037 * caller-save.c (setup_save_areas): Break out code to determine
12038 which hard regs are live across calls by examining the reload chains
12039 so that it is always used.
12040 Eliminate code which checked REG_N_CALLS_CROSSED.
12041
12042 2011-01-21 Jakub Jelinek <jakub@redhat.com>
12043
12044 PR tree-optimization/47355
12045 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
12046 NOP has non-debug uses beyond PHIs in new_bb.
12047
12048 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
12049
12050 PR debug/47106
12051 * cfgexpand.c (account_used_vars_for_block): Only account vars
12052 that are annotated as used.
12053 (estimated_stack_frame_size): Don't set TREE_USED.
12054 * tree-dfa.c (create_var_ann): Mark variable as used.
12055
12056 2011-01-21 Richard Guenther <rguenther@suse.de>
12057
12058 PR middle-end/47395
12059 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
12060
12061 2011-01-21 Richard Guenther <rguenther@suse.de>
12062
12063 PR tree-optimization/47365
12064 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
12065 (vn_reference_lookup_pieces): Adjust.
12066 (vn_reference_lookup): Likewise.
12067 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
12068 (vn_reference_lookup_3): Only look through kills if in
12069 VN_WALKREWRITE mode.
12070 (vn_reference_lookup_pieces): Adjust.
12071 (vn_reference_lookup): Likewise.
12072 (visit_reference_op_load): Likewise.
12073 (visit_reference_op_store): Likewise.
12074 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
12075 (compute_avail): Likewise.
12076 (eliminate): Likewise.
12077
12078 2011-01-21 Jakub Jelinek <jakub@redhat.com>
12079
12080 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
12081 DECL_IGNORED_P non-reg vars if they are used.
12082
12083 PR tree-optimization/47391
12084 * varpool.c (const_value_known_p): Return false if
12085 decl is volatile.
12086
12087 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
12088
12089 PR bootstrap/47215
12090 * config/i386/i386.c (ix86_local_alignment): Handle
12091 case for va_list_type_node is nil.
12092 (ix86_canonical_va_list_type): Likewise.
12093
12094 2011-01-21 Alan Modra <amodra@gmail.com>
12095
12096 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
12097 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
12098
12099 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12100
12101 * config/arm/arm.md (define_attr type): Rename f_load
12102 and f_store to f_fpa_load and f_fpa_store. Update.
12103 (write_conflict): Deal with rename fallout.
12104 (*push_fp_multi): Likewise.
12105 * config/arm/fpa.md (f_load): Use f_fpa_load.
12106 (f_store): Use f_fpa_store.
12107 (*movsf_fpa): Likewise.
12108 (*movdf_fpa): Likewise.
12109 (*movxf_fpa): Likewise.
12110 (*thumb2_movsf_fpa): Likewise.
12111 (*thumb2_movdf_fpa): Likewise.
12112 (*thumb2_movxf_fpa): Likewise.
12113 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
12114 f_loadd and f_stored.
12115 (*thumb2_movdi_vfp): Likewise.
12116 (*thumb2_movsf_vfp): Fix attribute to f_loads.
12117 (*thumb2_movsi_vfp): Likewise.
12118 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
12119 Use f_loads instead of f_load.
12120 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
12121
12122 2011-01-20 Anatoly Sokolov <aesok@post.ru>
12123
12124 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12125 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
12126 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12127 (xtensa_mode_dependent_address_p): New function.
12128 (constantpool_address_p): Make static. Change return type to bool.
12129 Change argument type to const_rtx. Use CONST_INT_P predicate.
12130
12131 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
12132
12133 PR debug/46583
12134 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
12135
12136 2011-01-20 Jakub Jelinek <jakub@redhat.com>
12137
12138 PR debug/47283
12139 * cfgexpand.c (expand_debug_expr): Instead of generating
12140 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
12141 etc. handling.
12142
12143 2011-01-20 Richard Guenther <rguenther@suse.de>
12144
12145 PR middle-end/47370
12146 * tree-inline.c (remap_gimple_op_r): Recurse manually for
12147 the pointer operand of MEM_REFs.
12148
12149 2011-01-20 Jakub Jelinek <jakub@redhat.com>
12150
12151 PR tree-optimization/46130
12152 * ipa-split.c (consider_split): If return_bb contains non-virtual
12153 PHIs other than for retval or if split_function would not adjust it,
12154 refuse to split.
12155
12156 2011-01-20 Richard Guenther <rguenther@suse.de>
12157
12158 PR tree-optimization/47167
12159 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12160 Revert previous change, only avoid enumeral type changes.
12161
12162 2011-01-19 Mike Stump <mikestump@comcast.net>
12163
12164 * doc/tm.texi.in (BRANCH_COST): Englishify.
12165 * doc/tm.texi (BRANCH_COST): Likewise.
12166
12167 2011-01-19 Dodji Seketeli <dodji@redhat.com>
12168
12169 PR c++/47291
12170 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
12171 (gen_scheduled_generic_parms_dies): New functions.
12172 (gen_struct_or_union_type_die): Schedule template parameters DIEs
12173 generation for the end of CU compilation.
12174 (dwarf2out_finish): Generate template parameters DIEs here.
12175
12176 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12177
12178 PR debug/46240
12179 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
12180 debug bind stmt on merge edges.
12181
12182 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12183
12184 PR debug/47079
12185 PR debug/46724
12186 * function.c (instantiate_expr): Instantiate incoming rtl of
12187 implicit arguments, and recurse on VALUE_EXPRs.
12188 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
12189 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
12190
12191 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12192
12193 * c-parser.c (c_parser_for_statement): Initialize
12194 collection_expression.
12195
12196 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12197
12198 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
12199
12200 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12201
12202 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
12203 (LINK_SHLIB_SPEC): Don't use %(link_path).
12204 (SUBTARGET_EXTRA_SPECS): Remove link_path.
12205
12206 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12207
12208 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
12209 (NO_SHARED_LIB_SUPPORT): Remove.
12210 (LINK_SHLIB_SPEC): Remove one conditional definition.
12211
12212 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12213
12214 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
12215 %{call_shared}.
12216 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
12217 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
12218 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
12219 %{call_shared} and conditionals on these options not being passed.
12220 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
12221 %{call_shared}.
12222
12223 2011-01-19 Jakub Jelinek <jakub@redhat.com>
12224
12225 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
12226 simplify.
12227
12228 * ipa-split.c: Spelling fixes.
12229
12230 2011-01-19 Richard Henderson <rth@redhat.com>
12231
12232 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
12233 (*mulsi3): Likewise.
12234
12235 * longlong.h [__mn10300__] (count_leading_zeros): New.
12236 [__mn10300__] (umul_ppmm, smul_ppmm): New.
12237 [__mn10300__] (add_ssaaaa, subddmmss): New.
12238 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
12239 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
12240
12241 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12242
12243 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
12244
12245 2011-01-19 Richard Henderson <rth@redhat.com>
12246
12247 * config/mn10300/mn10300.md (addsi3_flags): New.
12248 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
12249 (subsi3_flags, subc_internal, subdi3): New.
12250 (subdi3_internal, *subdi3_degenerate): New.
12251 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
12252
12253 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
12254 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
12255 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
12256 * config/mn10300/mn10300-protos.h: Update.
12257 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
12258 (return_ret): Likewise. Rename from return_internal_regs.
12259 (return_internal): Remove.
12260
12261 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
12262 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
12263 (mn10300_legitimate_constant_p): Likewise.
12264 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
12265 (mn10300_frame_size): New.
12266 (mn10300_expand_prologue): Use it.
12267 (mn10300_expand_epilogue): Likewise.
12268 (mn10300_initial_offset): Likewise.
12269 * config/mn10300/mn10300-protos.h: Update.
12270 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
12271 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
12272 (prologue, epilogue, return_internal): Tidy output code.
12273 (mn10300_store_multiple_operation, return): Likewise.
12274 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
12275 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
12276 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
12277 (load_pic, am33_load_pic): New.
12278 (mn10300_load_pic0, mn10300_load_pic1): New.
12279
12280 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
12281 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
12282 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
12283 (cc_flags_for_mode, cc_flags_for_code): New.
12284 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
12285 overflow flag is not valid. Validate that the flags we need
12286 for the comparison are valid.
12287 (mn10300_output_cmp): Remove.
12288 (mn10300_output_add): New.
12289 (mn10300_select_cc_mode): Use cc_flags_for_code.
12290 (mn10300_split_cbranch): New.
12291 (mn10300_match_ccmode): New.
12292 (mn10300_split_and_operand_count): New.
12293 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
12294 to the function.
12295 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
12296 (addsi3): ... here. Use mn10300_output_add.
12297 (*addsi3_flags): New.
12298 (*am33_subsi3, *mn10300_subsi3): Merge...
12299 (subsi3): ... here. Use attribute isa.
12300 (*subsi3_flags): New.
12301 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
12302 when possible.
12303 (*am33_andsi3, *mn10300_andsi3): Merge...
12304 (andsi3): ... here.
12305 (*andsi3_flags): New.
12306 (andsi3 splitters): New.
12307 (*am33_iorsi3, *mn10300_iorsi3): Merge...
12308 (iorsi3): ... here.
12309 (*iorsi3_flags): New.
12310 (*am33_xorsi3, *mn10300_xorsi3): Merge...
12311 (xorsi3): ... here.
12312 (*xorsi3_flags): New.
12313 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
12314 (one_cmplsi2): ... here.
12315 (*one_cmplsi2_flags): New.
12316 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
12317 instead of "dax" in constraints. Use mn10300_split_cbranch.
12318 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
12319 use matching constraints to eliminate a self-comparison.
12320 (*integer_conditional_branch): Rename from integer_conditional_branch.
12321 Use int_mode_flags to match CC_REG.
12322 (*cbranchsi4_btst, *btstsi): New.
12323 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
12324 mn10300_split_cbranch.
12325 (*am33_cmpsf): Rename from am33_cmpsf.
12326 (*float_conditional_branch): Rename from float_conditional_branch.
12327 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
12328 (zero_extendqisi2): ... here.
12329 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
12330 (zero_extendhisi2): ... here.
12331 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
12332 (extendqisi2): ... here.
12333 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
12334 (extendhisi2): ... here.
12335 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
12336 (ashlsi3): ... here.
12337 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
12338 (lshrsi3): ... here.
12339 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
12340 (ashrsi3): ... here.
12341 (consecutive add peephole): Remove.
12342 * config/mn10300/predicates.md (label_ref_operand): New.
12343 (int_mode_flags): New.
12344 (CCZN_comparison_operator): New.
12345
12346 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
12347 (throughput_42_latency_43): New reservation.
12348 (mulsidi3, umulsidi3): New expanders.
12349 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
12350 the MDR register to allocation; separately allocate the low and
12351 high parts of the DImode result.
12352 (umulsidi3_internal): Similarly.
12353 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
12354 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
12355 (udivsi3, umodsi3): Remove.
12356 (udivmodsi4, divmodsi4): New expanders.
12357 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
12358 (*divmodsi4): Simiarly.
12359 (ext_internal): New.
12360
12361 * config/mn10300/constraints.md ("z"): New constraint.
12362 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
12363 (FIXED_REGISTERS): Don't fix MDR.
12364 (CALL_USED_REGSITERS): Reformat nicely.
12365 (REG_ALLOC_ORDER): Add MDR.
12366 (enum regclass): Add MDR_REGS.
12367 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
12368 (IRA_COVER_CLASSES): Add MDR_REGS.
12369 (REGNO_REG_CLASS): Handle MDR_REG.
12370 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
12371 (mn10300_register_move_cost): Likewise.
12372 * config/mn10300/mn10300.md (MDR_REG): New.
12373 (*movsi_internal): Handle moves to/from MDR_REGS.
12374
12375 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
12376 POST_MODIFY.
12377 (mn10300_secondary_reload): Tidy combination reload classes.
12378 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
12379 addresses for AM33. Allow symbolic offsets for reg+imm.
12380 (mn10300_regno_in_class_p): New.
12381 (mn10300_legitimize_reload_address): New.
12382 * config/mn10300/mn10300.h (enum reg_class): Remove
12383 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
12384 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
12385 SP_OR_GENERAL_REGS.
12386 (REG_CLASS_NAMES): Update to match.
12387 (REG_CLASS_CONTENTS): Likewise.
12388 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
12389 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
12390 (REGNO_IN_RANGE_P): Remove.
12391 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
12392 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
12393 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
12394 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
12395 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
12396 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
12397 (REGNO_GENERAL_P): New.
12398 (HAVE_POST_MODIFY_DISP): New.
12399 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
12400 (LEGITIMIZE_RELOAD_ADDRESS): New.
12401 * config/mn10300/mn10300-protos.h: Update.
12402
12403 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
12404 DATA_REGS for AM33 stack-pointer destination.
12405 (mn10300_preferred_output_reload_class): Likewise.
12406 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
12407 into a form appropriate for ...
12408 (TARGET_SECONDARY_RELOAD): New.
12409 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
12410 * config/mn10300/mn10300-protos.h: Update.
12411 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
12412 reload_insi; use the "A" constraint for the scratch; handle AM33
12413 moves of sp to non-address registers.
12414
12415 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
12416 (*movqi_internal): ... here.
12417 (*am33_movhi, *mn10300_movhi): Merge into...
12418 (*movhi_internal): ... here.
12419 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
12420 as the source/destination of moves from/to SP.
12421 (movsf): Only allow for AM33-2.
12422 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
12423 any integer constant constraint. Only allow for AM33-2. Tidy
12424 all of the alternative outputs.
12425 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
12426 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
12427 for MN103.
12428 (udivsi3, umodsi3): New patterns for MN103 only.
12429
12430 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
12431
12432 * doc/tm.texi.in: Spell out that a lack of register class unions
12433 can lead to ICEs.
12434 * doc/tm.texi: Regenerate.
12435
12436 2011-01-19 Jakub Jelinek <jakub@redhat.com>
12437
12438 PR rtl-optimization/47337
12439 * dce.c (check_argument_store): New function.
12440 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
12441
12442 PR tree-optimization/47290
12443 * tree-eh.c (infinite_empty_loop_p): New function.
12444 (cleanup_empty_eh): Use it.
12445
12446 2011-01-18 Steve Ellcey <sje@cup.hp.com>
12447
12448 PR target/46997
12449 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
12450 (a64_expand_widen_sum): Ditto.
12451 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
12452 (vec_extract_evenodd_help): Ditto.
12453 (vec_extract_evenv4hi): Ditto.
12454 (vec_extract_oddv4hi): Ditto.
12455 (vec_extract_evenv2si): Ditto.
12456 (vec_extract_oddv2si): Ditto.
12457 (vec_extract_evenv2sf): Ditto.
12458 (vec_extract_oddv2sf): Ditto.
12459 (vec_pack_trunc_v4hi: Ditto.
12460 (vec_pack_trunc_v2si): Ditto.
12461 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
12462 (vec_interleave_highv8qi): Ditto.
12463 (mix1_r): Ditto.
12464 (vec_extract_oddv8qi): Ditto.
12465 (vec_interleave_lowv4hi): Ditto.
12466 (vec_interleave_highv4hi): Ditto.
12467 (vec_interleave_lowv2si): Ditto.
12468 (vec_interleave_highv2si): Ditto.
12469
12470 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12471
12472 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
12473 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
12474 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
12475 (pa_c_mode_for_suffix): New.
12476 (TARGET_EXPAND_BUILTIN): Define.
12477 (TARGET_C_MODE_FOR_SUFFIX): Define.
12478 (pa_builtins): Define.
12479 (pa_init_builtins): Register __float128 type and init new support
12480 builtins.
12481 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
12482 * config/pa/quadlib.c (_U_Qfcopysign): New.
12483
12484 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
12485
12486 PR middle-end/46894
12487 * explow.c (allocate_dynamic_stack_space): Do not assume more than
12488 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
12489 are defined.
12490
12491 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12492
12493 PR tree-optimization/47179
12494 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
12495 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
12496
12497 2011-01-18 Richard Guenther <rguenther@suse.de>
12498
12499 PR rtl-optimization/47216
12500 * emit-rtl.c: Include tree-flow.h.
12501 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
12502 of replicating it with different semantics.
12503 * Makefile.in (emit-rtl.o): Adjust.
12504
12505 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12506
12507 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
12508 (cortex_a9_dp): Handle neon types correctly.
12509
12510 2011-01-18 Jakub Jelinek <jakub@redhat.com>
12511
12512 PR rtl-optimization/47299
12513 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
12514 subtarget. Use normal multiplication if both operands are constants.
12515 * expmed.c (expand_widening_mult): Don't try to optimize constant
12516 multiplication if op0 has VOIDmode. Convert op1 constant to mode
12517 before using it.
12518
12519 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12520
12521 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
12522 spacing after 'e.g.', typos, comma, hyphenation.
12523
12524 2011-01-17 Richard Henderson <rth@redhat.com>
12525
12526 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
12527 (rx_restricted_mem_operand): New.
12528 (rx_shift_operand): Use register_operand.
12529 (rx_source_operand, rx_compare_operand): Likewise.
12530 * config/rx/rx.md (addsi3_flags): New expander.
12531 (adddi3): Rewrite as expander.
12532 (adc_internal, *adc_flags, adddi3_internal): New patterns.
12533 (subsi3_flags): New expander.
12534 (subdi3): Rewrite as expander.
12535 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
12536
12537 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
12538 (rx_init_builtins): Remove sat builtin.
12539 (rx_expand_builtin): Likewise.
12540 * config/rx/rx.md (ssaddsi3): New.
12541 (*sat): Rename from sat. Represent the CC_REG input.
12542
12543 * config/rx/predicates.md (rshift_operator): New.
12544 * config/rx/rx.c (rx_expand_insv): Remove.
12545 * config/rx/rx-protos.h: Update.
12546 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
12547 operand to the canonical position.
12548 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
12549 (*bitclr, *bitclr_in_memory): Similarly.
12550 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
12551 (insv): Retain the zero_extract in the expansion.
12552
12553 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
12554 (bswaphi2, bitinvert, revw): Likewise.
12555
12556 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
12557 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
12558 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
12559 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
12560 (bitset, bitset_in_memory): Likewise.
12561 (bitinvert, bitinvert_in_memory): Likewise.
12562 (bitclr, bitclr_in_memory): Likewise.
12563 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
12564 (rx_strend, rx_cmpstrn): Likewise.
12565 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
12566 (bitop peep2 patterns): Remove.
12567
12568 * config/rx/rx.c (rx_match_ccmode): New.
12569 * config/rx/rx-protos.h: Update.
12570 * config/rx/rx.md (abssi2): Clobber, don't set flags.
12571 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
12572 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
12573 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
12574 (fix_truncsfsi2, floatsisf2): Likewise.
12575 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
12576 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
12577 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
12578 (*subsi3_flags, *xorsi3_flags): New.
12579
12580 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
12581
12582 * config/rx/rx.c (rx_print_operand): Remove workaround for
12583 unsplit comparison operations.
12584
12585 * config/rx/rx.md (movsicc): Split after reload.
12586 (*movsicc): Merge *movsieq and *movsine via match_operator.
12587 (*stcc): New pattern.
12588
12589 * config/rx/rx.c (rx_float_compare_mode): Remove.
12590 * config/rx/rx.h (rx_float_compare_mode): Remove.
12591 * config/rx/rx.md (cstoresi4): Split after reload.
12592 (*sccc): New pattern.
12593
12594 * config/rx/predicates.md (label_ref_operand): New.
12595 (rx_z_comparison_operator): New.
12596 (rx_zs_comparison_operator): New.
12597 (rx_fp_comparison_operator): New.
12598 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
12599 Validate that the flags are set properly for the comparison.
12600 (rx_gen_cond_branch_template): Remove.
12601 (rx_cc_modes_compatible): Remove.
12602 (mode_from_flags): New.
12603 (flags_from_code): Rename from flags_needed_for_conditional.
12604 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
12605 (rx_select_cc_mode): Likewise.
12606 (rx_split_fp_compare): New.
12607 (rx_split_cbranch): New.
12608 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
12609 (*cbranchsi4): Use match_operator and rx_split_cbranch.
12610 (*cbranchsf4): Similarly.
12611 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
12612 match_operator and rx_split_cbranch.
12613 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
12614 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
12615 (*cmpsi): Rename from cmpsi.
12616 (*tstsi): Rename from tstsi.
12617 (*cmpsf): Rename from cmpsf; use CC_Fmode.
12618 (*conditional_branch): Rename from conditional_branch.
12619 (*reveresed_conditional_branch): Remove.
12620 (b<code>): Remove expander.
12621 * config/rx/rx-protos.h: Update.
12622
12623 * config/rx/rx.c (rx_compare_redundant): Remove.
12624 * config/rx/rx.md (cmpsi): Don't use it.
12625 * config/rx/rx-protos.h: Update.
12626
12627 * config/rx/rx-modes.def (CC_F): New mode.
12628 * config/rx/rx.c (rx_select_cc_mode): New.
12629 * config/rx/rx.h (SELECT_CC_MODE): Use it.
12630 * config/rx/rx-protos.h: Update.
12631
12632 2011-01-17 Richard Henderson <rth@redhat.com>
12633
12634 * except.c (dump_eh_tree): Fix stray ; after for statement.
12635
12636 2011-01-17 Richard Guenther <rguenther@suse.de>
12637
12638 PR tree-optimization/47313
12639 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
12640 handling before copying the body. Properly deal with
12641 by-reference result in SSA form.
12642
12643 2011-01-17 Ian Lance Taylor <iant@google.com>
12644
12645 PR target/47219
12646 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
12647 (struct_value_alias_set): Don't define.
12648 (sparc_option_override): Don't set sparc_sr_alias_set and
12649 struct_value_alias_set.
12650 (save_or_restore_regs): Use gen_frame_mem rather than calling
12651 set_mem_alias_set.
12652 (sparc_struct_value_rtx): Likewise.
12653
12654 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
12655
12656 PR target/47318
12657 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
12658 (_mm_maskstore_pd): Likewise.
12659 (_mm_maskload_ps): Likewise.
12660 (_mm_maskstore_ps): Likewise.
12661 (_mm256_maskload_pd): Change mask to __m256i.
12662 (_mm256_maskstore_pd): Likewise.
12663 (_mm256_maskload_ps): Likewise.
12664 (_mm256_maskstore_ps): Likewise.
12665
12666 * config/i386/i386-builtin-types.def: Updated.
12667 (ix86_expand_special_args_builtin): Likewise.
12668
12669 * config/i386/i386.c (bdesc_special_args): Update
12670 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
12671 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
12672 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
12673 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
12674
12675 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
12676 Use <avxpermvecmode> on mask register.
12677 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
12678
12679 2011-01-17 Olivier Hainque <hainque@adacore.com>
12680 Michael Haubenwallner <michael.haubenwallner@salomon.at>
12681 Eric Botcazou <ebotcazou@adacore.com>
12682
12683 PR target/46655
12684 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
12685 if <= USHRT_MAX in 32-bit mode.
12686
12687 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12688
12689 * doc/install.texi (Configuration, Specific): Wrap long
12690 lines in examples. Allow line wrapping in long options
12691 and URLs where beneficial for PDF output.
12692
12693 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
12694
12695 * config/mips/mips.c (mips_classify_symbol): Don't return
12696 SYMBOL_PC_RELATIVE for nonlocal labels.
12697
12698 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
12699
12700 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
12701
12702 2011-01-15 Jan Hubicka <jh@suse.cz>
12703
12704 PR tree-optimization/47276
12705 * ipa.c (function_and_variable_visibility): Do not try to mark alias
12706 declarations as needed.
12707
12708 2011-01-15 Martin Jambor <mjambor@suse.cz>
12709
12710 * common.opt (fdevirtualize): New flag.
12711 * doc/invoke.texi (Option Summary): Document it.
12712 * opts.c (default_options_table): Add devirtualize flag.
12713 * ipa-prop.c (detect_type_change): Return immediately if
12714 devirtualize flag is not set.
12715 (detect_type_change_ssa): Likewise.
12716 (compute_known_type_jump_func): Likewise.
12717 (ipa_analyze_virtual_call_uses): Likewise.
12718
12719 2011-01-14 Martin Jambor <mjambor@suse.cz>
12720
12721 PR tree-optimization/45934
12722 PR tree-optimization/46302
12723 * ipa-prop.c (type_change_info): New type.
12724 (stmt_may_be_vtbl_ptr_store): New function.
12725 (check_stmt_for_type_change): Likewise.
12726 (detect_type_change): Likewise.
12727 (detect_type_change_ssa): Likewise.
12728 (compute_complex_assign_jump_func): Check for dynamic type change.
12729 (compute_complex_ancestor_jump_func): Likewise.
12730 (compute_known_type_jump_func): Likewise.
12731 (compute_scalar_jump_functions): Likewise.
12732 (ipa_analyze_virtual_call_uses): Likewise.
12733 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
12734
12735 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12736
12737 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
12738 * config/i386/i386.opt (msse5): New Alias.
12739
12740 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12741
12742 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12743 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12744 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12745 * config/sparc/sparc.h (CC1_SPEC): Likewise.
12746
12747 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12748
12749 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
12750 -mcpu options.
12751 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12752 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12753 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
12754 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
12755 Likewise.
12756 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
12757
12758 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12759
12760 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
12761
12762 2011-01-14 Mike Stump <mikestump@comcast.net>
12763
12764 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
12765 * config/fr30/fr30.md: Likweise
12766 (movsi_push): Likewise.
12767 (movsi_pop): Likewise.
12768 (enter_func): Likewise.
12769 * config/moxie/moxie.md (movsi_push): Likewise.
12770 (movsi_pop): Likewise.
12771
12772 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12773
12774 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
12775 %{no_archive} %{exact_version}.
12776 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
12777 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
12778 %{no_archive} %{exact_version}.
12779 * config/mips/openbsd.h (LINK_SPEC): Likewise.
12780 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
12781 * config/mips/vxworks.h: Likewise.
12782
12783 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12784
12785 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
12786
12787 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12788
12789 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
12790 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
12791
12792 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12793
12794 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
12795 -nodefaultlib.
12796
12797 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12798
12799 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
12800 for mcpu not cpu.
12801 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
12802 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
12803 not cpu.
12804 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
12805 Don't handle -shlib.
12806
12807 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12808
12809 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
12810 (CC1_SPEC): Don't handle -profile.
12811
12812 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12813
12814 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
12815 * config/mips/mips.h (CC1_SPEC): Likewise.
12816
12817 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12818
12819 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
12820 * config/mips/mips.h (CC1_SPEC): Likewise.
12821
12822 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12823
12824 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
12825 * config/m32r/linux.h (LINK_SPEC): Likewise.
12826 * config/mips/linux.h (LINK_SPEC): Likewise.
12827 * config/mips/linux64.h (LINK_SPEC): Likewise.
12828 * config/sparc/linux.h (LINK_SPEC): Likewise.
12829 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12830 LINK_SPEC): Likewise.
12831 * config/xtensa/linux.h (LINK_SPEC): Likewise.
12832
12833 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12834
12835 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
12836 %{version:-v}.
12837 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
12838
12839 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12840
12841 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
12842 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12843
12844 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12845
12846 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
12847
12848 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12849
12850 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
12851 supports -Bstatic/-Bdynamic.
12852 * configure: Regenerate.
12853
12854 2011-01-14 Jan Hubicka <jh@suse.cz>
12855 Jack Howarth <howarth@bromo.med.uc.edu>
12856
12857 PR target/46037
12858 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
12859 when checking debug_info_level. Test write_symbols instead of
12860 debug_hooks->var_location when setting flag_var_tracking_uninit.
12861
12862 2011-01-14 Richard Guenther <rguenther@suse.de>
12863
12864 PR tree-optimization/47179
12865 * target.def (ref_may_alias_errno): New target hook.
12866 * targhooks.h (default_ref_may_alias_errno): Declare.
12867 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
12868 (default_ref_may_alias_errno): New function.
12869 * target.h (struct ao_ref_s): Declare.
12870 * tree-ssa-alias.c: Include target.h.
12871 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
12872 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
12873 (targhooks.o): Likewise.
12874 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
12875 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
12876
12877 2011-01-14 Richard Guenther <rguenther@suse.de>
12878
12879 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
12880
12881 2011-01-14 Richard Guenther <rguenther@suse.de>
12882
12883 PR tree-optimization/47280
12884 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
12885 return CFG changes.
12886 (tree_ssa_forward_propagate_single_use_vars): Deal with
12887 CFG changes from associate_plusminus.
12888
12889 2011-01-14 Richard Guenther <rguenther@suse.de>
12890
12891 PR middle-end/47281
12892 Revert
12893 2011-01-11 Richard Guenther <rguenther@suse.de>
12894
12895 PR tree-optimization/46076
12896 * tree-ssa.c (useless_type_conversion_p): Conversions from
12897 unprototyped to empty argument list function types are useless.
12898
12899 2011-01-14 Richard Guenther <rguenther@suse.de>
12900
12901 PR tree-optimization/47286
12902 * tree-ssa-structalias.c (new_var_info): Register variables are global.
12903
12904 2011-01-14 Martin Jambor <mjambor@suse.cz>
12905
12906 PR middle-end/46823
12907 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
12908
12909 2011-01-13 Anatoly Sokolov <aesok@post.ru>
12910
12911 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
12912 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12913 * config/xtensa/xtensa.c (xtensa_libcall_value,
12914 xtensa_function_value_regno_p): New functions.
12915 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12916
12917 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
12918
12919 PR c++/47213
12920 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
12921 PE specific hook.
12922 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
12923 New function prototype.
12924 * config/i386/winnt.c (i386_pe_assemble_visibility):
12925 Warn only if attribute was specified by user.
12926
12927 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12928
12929 PR target/47251
12930 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12931 floating point.
12932 (floatunsdidf2_fcfidu): Ditto.
12933
12934 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12935
12936 * config/s390/s390.c (print_operand_address): Replace 'error' with
12937 'output_operand_lossage'.
12938 (print_operand): Likewise.
12939
12940 2011-01-13 Jeff Law <law@redhat.com>
12941
12942 PR rtl-optimization/39077
12943 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12944 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12945 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12946 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12947 * gcse.c (prune_insertions_deletions): New function.
12948 (compute_pre_data): Use it.
12949
12950 2011-01-13 Dodji Seketeli <dodji@redhat.com>
12951
12952 PR debug/PR46973
12953 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12954 static function.
12955 (prune_unused_types_mark): Use it.
12956
12957 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
12958
12959 PR rtl-optimization/45352
12960 * sel-sched.c: Update copyright years.
12961 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
12962 in the advancing loop when we have issued issue_rate insns.
12963
12964 2011-01-12 Richard Henderson <rth@redhat.com>
12965
12966 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12967 (TARGET_MD_ASM_CLOBBERS): New.
12968
12969 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12970 (TARGET_DELEGITIMIZE_ADDRESS): New.
12971
12972 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12973 (clzsi2, *bsch): New patterns.
12974
12975 * config/mn10300/mn10300.md (INT): New mode iterator.
12976 (*mov<INT>_clr): New pattern, and peep2 to generate it.
12977
12978 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12979 flag_split_wide_types.
12980
12981 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12982 (mn10300_trampoline_init): Rewrite without a template, an immediate
12983 load and a direct branch.
12984 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12985
12986 2011-01-12 Anatoly Sokolov <aesok@post.ru>
12987
12988 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12989 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12990 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12991 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12992
12993 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
12994
12995 PR debug/47209
12996 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12997 of type.
12998
12999 2011-01-12 Jan Hubicka <jh@suse.cz>
13000
13001 PR driver/47244
13002 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
13003 (PLUGIN_COND_CLOSE): New macro.
13004 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
13005
13006 2011-01-12 Richard Guenther <rguenther@suse.de>
13007
13008 PR lto/47259
13009 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
13010 register variables in a MEM_REF.
13011
13012 2011-01-12 Joseph Myers <joseph@codesourcery.com>
13013
13014 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
13015 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
13016 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
13017 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13018 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13019 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
13020 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
13021 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
13022 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
13023 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
13024 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
13025 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
13026 * config/gnu-user.h: New. Copied from linux.h.
13027 (LINUX_TARGET_STARTFILE_SPEC): Rename to
13028 GNU_USER_TARGET_STARTFILE_SPEC.
13029 (LINUX_TARGET_ENDFILE_SPEC): Rename to
13030 GNU_USER_TARGET_ENDFILE_SPEC.
13031 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
13032 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
13033 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
13034 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
13035 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
13036 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13037 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
13038 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
13039 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
13040 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
13041 * config/arm/linux-eabi.h (CC1_SPEC): Use
13042 GNU_USER_TARGET_CC1_SPEC.
13043 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
13044 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
13045 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
13046 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
13047 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
13048 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
13049 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
13050 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
13051
13052 2011-01-12 Richard Guenther <rguenther@suse.de>
13053
13054 PR other/46946
13055 * doc/invoke.texi (ffast-math): Document it is turned on
13056 with -Ofast.
13057
13058 2011-01-12 Jan Hubicka <jh@suse.cz>
13059
13060 PR tree-optimization/47233
13061 * opts.c (common_handle_option): Disable ipa-reference with profile
13062 feedback.
13063
13064 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
13065
13066 * c-parser.c (c_parser_objc_at_property_declaration): Improved
13067 error message.
13068
13069 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
13070
13071 * c-parser.c (c_lex_one_token): Updated and reindented some
13072 comments. No changes in code.
13073
13074 2011-01-11 Ian Lance Taylor <iant@google.com>
13075
13076 * godump.c (go_output_var): Don't output the variable if there is
13077 already a type with the same name.
13078
13079 2011-01-11 Ian Lance Taylor <iant@google.com>
13080
13081 * godump.c (go_format_type): Don't generate float80.
13082
13083 2011-01-11 Richard Henderson <rth@redhat.com>
13084
13085 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
13086 declaration. Rewrite for both speed and size.
13087 (mn10300_address_cost_1): Remove.
13088 (mn10300_register_move_cost): New.
13089 (mn10300_memory_move_cost): New.
13090 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
13091 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
13092 extensions, shifts, BSWAP, CLZ.
13093 (mn10300_wide_const_load_uses_clr): Remove.
13094 (TARGET_REGISTER_MOVE_COST): New.
13095 (TARGET_MEMORY_MOVE_COST): New.
13096 * config/mn10300/mn10300-protos.h: Update.
13097 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
13098
13099 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
13100 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
13101 * config/mn10300/mn10300-protos.h: Update.
13102 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
13103 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
13104 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
13105 (*test_int_bitfield, *test_byte_bitfield): Remove.
13106 (*bit_test, *subreg_bit_test): Remove.
13107 * config/mn10300/predicates.md (const_8bit_operand): Remove.
13108
13109 * config/mn10300/constraints.md ("c"): Rename from "A".
13110 ("A", "D"): New constraint letters.
13111 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
13112 (fmssf4, fnmasf4, fnmssf4): Likewise.
13113
13114 * config/mn10300/mn10300.md (isa): New attribute.
13115 (enabled): New attribute.
13116
13117 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
13118 (abssf2, negsf2): Define only for hardware fp.
13119 (sqrtsf2): Reformat.
13120 (addsf3, subsf3, mulsf3): Merge expander and insn.
13121
13122 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
13123 (DEBUGGER_AUTO_OFFSET): Remove.
13124 (DEBUGGER_ARG_OFFSET): Remove.
13125
13126 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
13127 Emit register stores with the same offsets as the hardware.
13128 (mn10300_store_multiple_operation): Don't check that the register
13129 save offsets are monotonic.
13130 * config/mn10300/mn10300-protos.h: Update.
13131
13132 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
13133
13134 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
13135 in terms of the value on the stack, not the MDR register.
13136
13137 2011-01-11 Jan Hubicka <jh@suse.cz>
13138
13139 PR lto/45721
13140 PR lto/45375
13141 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
13142 (symbol_alias_set_destroy, symbol_alias_set_contains,
13143 propagate_aliases_backward): Declare.
13144 * lto-streamer-out.c (struct sets): New sturcture.
13145 (trivally_defined_alias): New function.
13146 (output_alias_pair_p): Rewrite.
13147 (output_unreferenced_globals): Fix output of alias pairs.
13148 (produce_symtab): Likewise.
13149 * ipa.c (function_and_variable_visibility): Set weak alias destination
13150 as needed in lto.
13151 * varasm.c (symbol_alias_set_t): Remove.
13152 (symbol_alias_set_destroy): Export.
13153 (propagate_aliases_forward, propagate_aliases_backward): New functions
13154 based on ...
13155 (compute_visible_aliases): ... this one; remove.
13156 (trivially_visible_alias): New
13157 (trivially_defined_alias): New.
13158 (remove_unreachable_alias_pairs): Rewrite.
13159 (finish_aliases_1): Reorganize code checking if alias is defined.
13160 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
13161 in LTO mode.
13162
13163 2011-01-11 Richard Guenther <rguenther@suse.de>
13164
13165 PR tree-optimization/46076
13166 * tree-ssa.c (useless_type_conversion_p): Conversions from
13167 unprototyped to empty argument list function types are useless.
13168
13169 2011-01-11 Richard Guenther <rguenther@suse.de>
13170
13171 PR middle-end/45235
13172 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
13173 volatile MEMs as MEM_READONLY_P.
13174
13175 2011-01-11 Richard Guenther <rguenther@suse.de>
13176
13177 PR tree-optimization/47239
13178 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
13179
13180 2011-01-11 Jeff Law <law@redhat.com>
13181
13182 PR tree-optimization/47086
13183 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
13184 IVs from statements that might throw.
13185
13186 2011-01-10 Jan Hubicka <jh@suse.cz>
13187
13188 PR lto/45375
13189 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
13190
13191 2011-01-10 Jan Hubicka <jh@suse.cz>
13192
13193 PR lto/45375
13194 * profile.c (read_profile_edge_counts): Ignore profile inconistency
13195 when correcting profile.
13196
13197 2011-01-10 Jan Hubicka <jh@suse.cz>
13198
13199 PR lto/46083
13200 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
13201 DECL_FINI_PRIORITY.
13202 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
13203 Restore DECL_FINI_PRIORITY.
13204
13205 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13206
13207 * doc/gimple.texi: Fix quoting of multi-word return values in
13208 @deftypefn statements. Ensure presence of return value. Wrap
13209 overlong @deftypefn lines.
13210 (is_gimple_operand, is_gimple_min_invariant_address): Remove
13211 descriptions of removed functions.
13212 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
13213 of multi-word return value in @deftypefn statement.
13214
13215 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13216
13217 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
13218 (Conditional Expressions, Logical Operators)
13219 (Statement and operand traversals): Do not indent smallexample
13220 code. Fix duplicate function argument in example.
13221
13222 2011-01-10 Jeff Law <law@redhat.com>
13223
13224 PR tree-optimization/47141
13225 * ipa-split.c (split_function): Handle case where we are
13226 returning a value and the return block has a virtual operand phi.
13227
13228 2011-01-10 Jan Hubicka <jh@suse.cz>
13229
13230 PR tree-optimization/47234
13231 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
13232 (pass_feedback_split_functions): Declare.
13233 * passes.c (init_optimization_passes): Add ipa-split as subpass of
13234 tree-profile.
13235 * ipa-split.c (gate_split_functions): Update comments; disable
13236 split-functions for profile_arc_flag and branch_probabilities.
13237 (gate_feedback_split_functions): New function.
13238 (execute_feedback_split_functions): New function.
13239 (pass_feedback_split_functions): New global var.
13240
13241 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
13242
13243 PR lto/46760
13244 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
13245 calling gimple_call_set_cannot_inline.
13246
13247 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
13248
13249 * config/darwin-sections.def: Remove unused section.
13250
13251 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
13252
13253 PR c++/47218
13254 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
13255
13256 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
13257
13258 PR objc/47232
13259 * c-parser.c (c_parser_declaration_or_fndef): Improved
13260 error message.
13261
13262 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
13263
13264 * config/i386/winnt.c (i386_pe_start_function): Make sure
13265 to switch back to function's section.
13266
13267 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
13268
13269 PR gcc/46902
13270 PR testsuite/46912
13271 * plugin.c: Move include of dlfcn.h from here...
13272 * system.h: ... to here.
13273
13274 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13275
13276 * doc/cpp.texi (C++ Named Operators): Fix markup for header
13277 file name.
13278 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
13279 two extra empty pages in PDF output.
13280
13281 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
13282
13283 PR objc/47078
13284 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
13285 for error recovery purposes behave as if it was not specified so
13286 that the default type is usd.
13287
13288 2011-01-07 Jan Hubicka <jh@suse.cz>
13289
13290 PR tree-optmization/46469
13291 * ipa.c (function_and_variable_visibility): Clear needed flags on
13292 nodes with external decls; handle weakrefs merging correctly.
13293
13294 2011-01-07 Joseph Myers <joseph@codesourcery.com>
13295
13296 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
13297 not false.
13298
13299 2011-01-07 Jan Hubicka <jh@suse.cz>
13300
13301 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
13302 and no longer claim that gold is required for linker plugin.
13303 * configure: Regenerate.
13304 * gcc.c (PLUGIN_COND): New macro.
13305 (LINK_COMMAND_SPEC): Use it.
13306 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
13307 * config.in (HAVE_LTO_PLUGIN): New.
13308 * configure.ac (--with-lto-plugin): New parameter; autodetect
13309 HAVE_LTO_PLUGIN.
13310
13311 2011-01-07 Jan Hubicka <jh@suse.cz>
13312
13313 PR tree-optimization/46367
13314 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
13315 when we can update original.
13316 (cgraph_mark_inline_edge): Sanity check.
13317 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
13318
13319 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13320
13321 * config/spu/spu.h (ASM_COMMENT_START): Define.
13322
13323 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
13324
13325 PR driver/42445
13326 * gcc.c (%>S): New.
13327 (SWITCH_KEEP_FOR_GCC): Likewise.
13328 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
13329 (do_spec_1): Handle "%>".
13330
13331 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
13332
13333 2011-01-07 Jakub Jelinek <jakub@redhat.com>
13334
13335 PR target/47201
13336 * config/i386/i386.c (ix86_delegitimize_address): If
13337 simplify_gen_subreg fails, return orig_x.
13338
13339 PR bootstrap/47187
13340 * value-prof.c (gimple_stringop_fixed_value): Handle
13341 lhs of the call properly.
13342
13343 2011-01-07 Jan Hubicka <jh@suse.cz>
13344
13345 PR lto/45375
13346 * lto-opt.c (lto_reissue_options): Set flag_shlib.
13347
13348 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
13349
13350 * target.def (function_switched_text_sections): New hook.
13351 * doc/tm.texi: Regenerated.
13352 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13353 * final.c (default_function_switched_text_sections): New.
13354 (final_scan_insn): Call function_switched_text_sections when a
13355 mid-function section change occurs.
13356 * output.h (default_function_switched_text_sections): Declare.
13357 * config/darwin-protos.h (darwin_function_switched_text_sections):
13358 Likewise.
13359 * config/darwin.c (darwin_function_switched_text_sections): New.
13360 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13361
13362 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
13363
13364 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
13365 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
13366 the secondary code fragment when outputting for DWARF == 2.
13367
13368 2011-01-07 Anatoly Sokolov <aesok@post.ru>
13369
13370 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13371 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
13372 Remove.
13373 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
13374 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13375
13376 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
13377
13378 PR debug/46704
13379 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
13380 when it is not empty.
13381
13382 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
13383
13384 Bobcat Enablement
13385 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
13386 (case ${target}): Add btver1.
13387 * config/i386/driver-i386.c (host_detect_local_cpu): Let
13388 -march=native recognize btver1 processors.
13389 * config/i386/i386-c.c (ix86_target_macros_internal): Add
13390 btver1 def_and_undef
13391 * config/i386/i386.c (struct processor_costs btver1_cost): New
13392 btver1 cost table.
13393 (m_BTVER1): New definition.
13394 (m_AMD_MULTIPLE): Includes m_BTVER1.
13395 (initial_ix86_tune_features): Add btver1 tune.
13396 (processor_target_table): Add btver1 entry.
13397 (static const char *const cpu_names): Add btver1 entry.
13398 (software_prefetching_beneficial_p): Add btver1.
13399 (ix86_option_override_internal): Add btver1 instruction sets.
13400 (ix86_issue_rate): Add btver1.
13401 (ix86_adjust_cost): Add btver1.
13402 * config/i386/i386.h (TARGET_BTVER1): New definition.
13403 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
13404 (enum processor_type): Add PROCESSOR_BTVER1.
13405 * config/i386/i386.md (define_attr "cpu"): Add btver1.
13406
13407 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13408
13409 PR target/43309
13410 * config/i386/i386.c (legitimize_tls_address)
13411 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
13412 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
13413 (tls_initial_exec_64_sun): New pattern.
13414
13415 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13416
13417 * doc/invoke.texi (Overall Options): Improve wording and markup
13418 of the description of -wrapper.
13419
13420 2011-01-06 Joseph Myers <joseph@codesourcery.com>
13421
13422 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
13423 rdynamic, threads): New Driver options.
13424
13425 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13426
13427 PR target/38118
13428 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
13429 if coming from .tdata.
13430 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13431
13432 2011-01-06 Jan Hubicka <jh@suse.cz>
13433
13434 PR lto/47188
13435 * collect2.c (main): Do not enable LTOmode when plugin is active.
13436
13437 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13438
13439 PR other/45915
13440 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
13441 --version output if supported.
13442 * configure: Regenerate.
13443
13444 2011-01-06 Joseph Myers <joseph@codesourcery.com>
13445
13446 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
13447 Driver options.
13448
13449 2011-01-06 Jakub Jelinek <jakub@redhat.com>
13450
13451 PR c/47150
13452 * c-convert.c (convert): When converting a complex expression
13453 other than COMPLEX_EXPR to a different complex type, ensure
13454 c_save_expr is called instead of save_expr, unless in_late_binary_op.
13455 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
13456 when converting COMPLEX_TYPE.
13457
13458 2011-01-06 Ira Rosen <irar@il.ibm.com>
13459
13460 PR tree-optimization/47139
13461 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
13462 only the last reduction value is used outside the loop. Update
13463 documentation.
13464
13465 2011-01-05 Joseph Myers <joseph@codesourcery.com>
13466
13467 * config/rtems.opt: New.
13468 * config.gcc (*-*-rtems*): Use rtems.opt.
13469
13470 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
13471
13472 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
13473 processors do not support 3DNow instructions.
13474
13475 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13476
13477 * config/spu/spu.c (spu_option_override): Set parameter
13478 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
13479
13480 2011-01-05 Jan Hubicka <jh@suse.cz>
13481
13482 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
13483 at the command line.
13484
13485 2011-01-05 Martin Jambor <mjambor@suse.cz>
13486
13487 PR lto/47162
13488 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
13489 deltas on streamed outgoing edges.
13490 (output_node_opt_summary): Output info for outgoing edges only when
13491 the node is in new parameter set.
13492 (output_cgraph_opt_summary): New parameter set, passed to the two
13493 aforementioned functions. Update its forward declaration and its
13494 callee too.
13495
13496 2011-01-05 Tom Tromey <tromey@redhat.com>
13497
13498 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
13499 operator to c_finish_omp_atomic.
13500 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
13501 (build_unary_op): Update.
13502 (build_modify_expr): Update.
13503 (build_asm_expr): Update.
13504
13505 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13506
13507 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
13508 newly inserted insns.
13509 (pad_bb): Likewise.
13510 (spu_emit_branch_hint): Likewise.
13511 (insert_hbrp_for_ilb_runout): Likewise.
13512 (spu_machine_dependent_reorg): Call df_finish_pass after
13513 schedule_insns returns.
13514
13515 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13516
13517 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
13518
13519 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
13520
13521 PR tree-optimization/47005
13522 * tree-sra.c (struct access): Add 'non_addressable' bit.
13523 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
13524 (decide_one_param_reduction): Return 0 if the parameter is passed by
13525 reference and one of the accesses in the group is non_addressable.
13526
13527 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13528
13529 PR tree-optimization/47056
13530 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
13531 (mark_load): Likewise. Handle FUNCTION_DECL specially.
13532 (mark_store): Likewise. Pass STMT to ipa_record_reference.
13533
13534 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13535
13536 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
13537 initializer. Skip view conversions from aggregate types.
13538
13539 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
13540
13541 PR bootstrap/47055
13542 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
13543
13544 2011-01-04 Philipp Thomas <pth@suse.de>
13545
13546 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
13547 obvious typo.
13548
13549 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13550
13551 * function.c (thread_prologue_and_epilogue_insns): Do not crash
13552 on empty epilogue sequences.
13553
13554 2011-01-04 Joseph Myers <joseph@codesourcery.com>
13555
13556 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
13557 non-static): New Driver options.
13558
13559 2011-01-04 Jie Zhang <jie@codesourcery.com>
13560
13561 PR driver/47137
13562 * gcc.c (default_compilers[]): Set combinable field to 0
13563 for all assembly languages.
13564
13565 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
13566
13567 * config/mips/loongson3a.md: New file.
13568 * config/mips/mips.md: Include loongson3a.md.
13569 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
13570 TUNE_LOONGSON_3A.
13571
13572 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
13573
13574 PR middle-end/47017
13575 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
13576 instead of convert_memory_address_addr_space on the base expression.
13577
13578 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13579
13580 * config/spu/spu.c (spu_option_override): Update error text
13581 for bad -march= / -mtune= values.
13582
13583 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13584
13585 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
13586 if branch-hint optimization will be performed.
13587
13588 2011-01-03 Jakub Jelinek <jakub@redhat.com>
13589
13590 PR tree-optimization/47148
13591 * ipa-split.c (split_function): Convert arguments to
13592 DECL_ARG_TYPE if possible.
13593
13594 PR tree-optimization/47155
13595 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
13596 when computing uns.
13597
13598 PR rtl-optimization/47157
13599 * combine.c (try_combine): If undobuf.other_insn becomes
13600 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
13601 and set *new_direct_jump_p too.
13602
13603 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
13604
13605 PR tree-optimization/47021
13606 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
13607
13608 2011-01-03 Jakub Jelinek <jakub@redhat.com>
13609
13610 * gcc.c (process_command): Update copyright notice dates.
13611 * gcov.c (print_version): Likewise.
13612 * gcov-dump.c (print_version): Likewise.
13613 * mips-tfile.c (main): Likewise.
13614 * mips-tdump.c (main): Likewise.
13615
13616 2011-01-03 Martin Jambor <mjambor@suse.cz>
13617
13618 PR tree-optimization/46801
13619 * tree-sra.c (type_internals_preclude_sra_p): Check whether
13620 aggregate fields start at byte boundary instead of the bit-field flag.
13621
13622 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
13623
13624 PR driver/47137
13625 * gcc.c (main): Revert revision 168407.
13626
13627 2011-01-03 Martin Jambor <mjambor@suse.cz>
13628
13629 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
13630
13631 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13632
13633 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
13634 vector optab to expand vector/scalar shift, update gimple to vector.
13635
13636 2011-01-03 Martin Jambor <mjambor@suse.cz>
13637
13638 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
13639 a thunk.
13640
13641 2011-01-03 Martin Jambor <mjambor@suse.cz>
13642
13643 PR tree-optimization/46984
13644 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
13645 HOST_WIDE_INT.
13646 (cgraph_create_indirect_edge): Fixed line length.
13647 (cgraph_indirect_call_info): Declare.
13648 (cgraph_make_edge_direct) Update declaration.
13649 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
13650 (cgraph_create_indirect_edge): Use it.
13651 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
13652 callees.
13653 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
13654 the new thunk_delta representation.
13655 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
13656 HOST_WIDE_INT.
13657 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
13658 (ipa_read_indirect_edge_info): Likewise.
13659 * lto-cgraph.c (output_edge_opt_summary): New function.
13660 (output_node_opt_summary): Call it on all outgoing edges.
13661 (input_edge_opt_summary): New function.
13662 (input_node_opt_summary): Call it on all outgoing edges.
13663
13664 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
13665
13666 PR driver/47137
13667 * gcc.c (main): Don't check have_o when settting combine_inputs.
13668
13669 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
13670
13671 * regrename.c: Add general comment describing the pass.
13672 (struct du_head): Remove 'length' field.
13673 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
13674 (regrename_optimize): Do not sort chains. Rework comments, add others.
13675 Force renaming to the preferred class (if any) in the first pass and do
13676 not consider registers that belong to it in the second pass.
13677 (create_new_chain): Do not set 'length' field.
13678 (scan_rtx_reg): Likewise.
13679
13680 2011-01-02 Jakub Jelinek <jakub@redhat.com>
13681
13682 PR tree-optimization/47140
13683 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
13684 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
13685 to bit_value_binop.
13686
13687 PR rtl-optimization/47028
13688 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
13689 parm_birth_insn instead of at the beginning of first bb.
13690
13691 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
13692
13693 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
13694 Remove the word "see" before "@pxref".
13695 * doc/rtl.texi: Remove the word "see" before "@pxref".
13696
13697 2011-01-01 Jan Hubicka <jh@suse.cz>
13698
13699 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
13700 memory.
13701
13702 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
13703
13704 PR target/38662
13705 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
13706
13707 \f
13708 Copyright (C) 2011 Free Software Foundation, Inc.
13709
13710 Copying and distribution of this file, with or without modification,
13711 are permitted in any medium without royalty provided the copyright
13712 notice and this notice are preserved.