* ipa-inline.c (update_callee_keys): Don't reset node growth cache.
[gcc.git] / gcc / ChangeLog
1 2011-05-06 Jan Hubicka <jh@suse.cz>
2
3 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
4
5 2011-05-06 Jan Hubicka <jh@suse.cz>
6
7 * cgraph.c (cgraph_add_thunk): Create real function node instead
8 of alias node; finalize it and mark needed/reachale; arrange visibility
9 to be right and add it into the corresponding same comdat group list.
10 (dump_cgraph_node): Dump thunks.
11 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
12 cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
13 cgraph_next_function_with_gimple_body): New functions.
14 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
15 New macros.
16 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
17 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
18 * cgraphunit.c (cgraph_finalize_function): Only look into possible
19 devirtualization when optimizing.
20 (verify_cgraph_node): Verify thunks.
21 (cgraph_analyze_function): Analyze thunks.
22 (cgraph_mark_functions_to_output): Output thunks only in combination
23 with function they are assigned to.
24 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
25 alias into normal node.
26 (assemble_thunks): New functoin.
27 (cgraph_expand_function): Use it.
28 * lto-cgraph.c (lto_output_node): Stream thunks.
29 (input_overwrite_node): Stream in thunks.
30 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
31 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
32 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
33 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
34 (inline_analyze_function): Do not care about thunk jump functions.
35 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
36 * ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
37 * passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
38 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
39 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
40 (function_called_by_processed_nodes_p): Likewise.
41
42 2011-05-06 Joseph Myers <joseph@codesourcery.com>
43
44 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
45 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
46 entries.
47 (mabi=): Replace with separate entries for mabi=altivec,
48 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
49 mabi=ieeelongdouble and mabi=ibmlongdouble.
50 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
51 check for -mabi=spe without SPE ABI support here.
52 (rs6000_handle_option): Replace OPT_mabi_ handling with
53 OPT_mabi_altivec and OPT_mabi_spe handling.
54
55 2011-05-06 Cary Coutant <ccoutant@google.com>
56
57 * dwarf2out.c (contains_subprogram_definition): New function.
58 (should_move_die_to_comdat): Call it.
59
60 2011-05-06 Jeff Law <law@redhat.com>
61
62 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
63 remove_ctrl_stmt_and_useless_edges.
64 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
65 (fixup_template_block, thread_single_edge): Likewise.
66 (mark_threaded_blocks): Use THREAD_TARGET.
67
68 2011-05-06 Alan Modra <amodra@gmail.com>
69
70 PR target/48900
71 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
72 const0_rtx as the arg to the dummy __tls_get_addr libcall.
73
74 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
75
76 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
77 constraint modifier to "r".
78
79 2011-05-06 Joseph Myers <joseph@codesourcery.com>
80
81 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
82 fall through for OPT_mcmodel_.
83
84 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
85
86 * config/s390/s390.c (s390_asm_trampoline_template): Comment
87 instruction sizes.
88 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
89
90 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
91
92 PR target/47930
93 * config/arm/arm.opt (marm): Document it.
94 (mthumb): Reject negative variant.
95
96 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
97
98 PR target/48898
99 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
100 Fix typo in "ccvt" variable name.
101
102 2011-05-06 Tristan Gingold <gingold@adacore.com>
103
104 PR target/48895
105 * config/vms/vms-ar.c (main): Remove cwd variable.
106
107 2011-05-06 Jakub Jelinek <jakub@redhat.com>
108
109 PR debug/48902
110 * var-tracking.c (prepare_call_arguments): Move else before #endif.
111
112 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
113
114 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
115 * gimplify.c (gimplify_switch_expr): Likewise.
116 * omp-low.c (expand_omp_sections): Likewise.
117 * tree-eh.c (lower_try_finally_switch): Likewise.
118 (lower_eh_dispatch): Likewise.
119 * tree.h (build_case_label): Declare.
120 * tree.c (build_case_label): Define.
121
122 2011-05-05 Jason Merrill <jason@redhat.com>
123
124 PR c++/40975
125 * tree-inline.c (copy_tree_r): Use copy_statement_list.
126 (copy_statement_list): Don't recurse.
127 * stor-layout.c (copy_self_referential_tree_r): Don't allow
128 STATEMENT_LIST.
129
130 2011-05-05 Joseph Myers <joseph@codesourcery.com>
131
132 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
133 through from -mfpu= handling.
134 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
135
136 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
137
138 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
139 POST_MODIFY.
140
141 2011-05-05 Steve Ellcey <sje@cup.hp.com>
142
143 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
144 for 11.31.
145 (hppa[12]*-*-hpux11*): Ditto.
146 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
147 * config/ia64/hpux-unix2003.h: New.
148 * config/pa/pa-hpux1131.opt: New.
149 * config/pa/pa-hpux1131.h: New.
150 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
151 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
152 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
153
154 2011-05-05 Jakub Jelinek <jakub@redhat.com>
155
156 PR debug/48853
157 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
158 instead of mode as 3rd argument to recursive call.
159 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
160 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
161 VOIDmode.
162 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
163 don't give up if mode is Pmode and mem_mode is not VOIDmode.
164 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
165 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
166
167 2011-05-05 Julian Brown <julian@codesourcery.com>
168
169 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
170 parenthesis in D-register case.
171
172 2011-05-05 Joseph Myers <joseph@codesourcery.com>
173
174 * opt-functions.awk (var_type_struct): Handle Enum options.
175 * optc-gen.awk: Don't check range of variables of character type.
176 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
177 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
178 rs6000_sdata_name, rs6000_explicit_options): Remove.
179 (rs6000_option_override_internal): Check for -malign-power here.
180 Use global_options_set instead of rs6000_explicit_options.
181 (rs6000_parse_fpu_option): Remove.
182 (rs6000_handle_option): Access variables via opts and opts_set
183 pointers. Use error_at and warning_at. Add fall-through
184 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
185 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
186 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
187 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
188 here. Don't use rs6000_parse_fpu_option.
189 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
190 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
191 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
192 (mrecip=): Use Var.
193 (mspe): Use Var and Save.
194 (mtraceback=): Use Enum and Var.
195 (rs6000_traceback_type): New Enum and EnumValue entries.
196 (mfloat-gprs=): Use Enum, Var and Save.
197 (rs6000_float_gprs): New Enum and EnumValue entries.
198 (mlong-double-): use Var and Save.
199 (msched-costly-dep=, minsert-sched-nops=): Use Var.
200 (malign-): Use Enum and Var.
201 (rs6000_alignment_flags): New Enum and EnumValue entries.
202 (mfpu=): Use Enum.
203 (fpu_type_t): New Enum and EnumValue entries.
204 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
205 global_options_set instead of rs6000_explicit_options.
206 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
207 global_options_set instead of rs6000_explicit_options.
208 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
209 global_options_set instead of rs6000_explicit_options.
210 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
211 global_options_set instead of rs6000_explicit_options.
212 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
213 global_options_set instead of rs6000_explicit_options.
214 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
215 global_options_set instead of rs6000_explicit_options.
216 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
217 definition.
218 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
219 global_options_set instead of rs6000_explicit_options.
220 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
221 (rs6000_cmodel): New Enum and EnumValue entries.
222 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
223 global_options_set instead of rs6000_explicit_options.
224 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
225 (mtls-size=): Use Enum and Var.
226 (rs6000_tls_size): New Enum and EnumValue entries.
227
228 2011-05-05 Michael Matz <matz@suse.de>
229
230 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
231 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
232 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
233 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
234 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
235 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
236 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
237 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
238 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
239 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
240 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
241 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
242 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
243 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
244 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
245 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
246
247 2011-05-05 Richard Guenther <rguenther@suse.de>
248
249 * expmed.c (expand_variable_shift): Rename to ...
250 (expand_shift_1): ... this. Take an expanded shift amount.
251 For rotates recurse directly not building trees for the shift amount.
252 (expand_variable_shift): Wrap around expand_shift_1.
253 (expand_shift): Adjust.
254
255 2011-05-05 Jakub Jelinek <jakub@redhat.com>
256
257 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
258
259 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
260
261 * tree.h (get_pending_sizes): Remove prototype.
262 (put_pending_size): Likewise.
263 (put_pending_sizes): Likewise.
264 * stor-layout.c (pending_sizes): Delete.
265 (get_pending_sizes): Likewise.
266 (put_pending_size): Likewise.
267 (put_pending_sizes): Likewise.
268 (variable_size): Do not call put_pending_size and tidy up.
269 * function.h (struct function): Remove dont_save_pending_sizes_p.
270 * lto-streamer-in.c (input_function): Do not stream it.
271 * lto-streamer-out.c (output_function): Likewise.
272 * tree-inline.c (initialize_cfun): Do not copy it.
273 * c-decl.c (store_parm_decls): Do not set it.
274 * omp-low.c (create_task_copyfn): Likewise.
275 * tree-optimize.c (tree_rest_of_compilation): Likewise.
276
277 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
278
279 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
280 conditions.
281 (*movdf_internal): Ditto.
282 (*movdf_internal_nointeger): Ditto.
283 (*movsf_internal): Ditto.
284
285 2011-05-05 Joseph Myers <joseph@codesourcery.com>
286
287 * c-decl.c (finish_decl): Don't call get_pending_sizes.
288 (grokparm): Add parameter expr. Pass it to grokdeclarator.
289 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
290 (c_variable_size): Remove.
291 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
292 call put_pending_sizes.
293 (get_parm_info): Add parameter expr. Use it to set
294 arg_info->pending_sizes.
295 (store_parm_decls): Use arg_info->pending_sizes instead or calling
296 get_pending_sizes.
297 * c-parser.c (c_parser_parms_declarator): Update call to
298 c_parser_parms_list_declarator.
299 (c_parser_parms_list_declarator): Take parameter expr. Update
300 call to push_parm_decl. Update recursive call. Don't call
301 get_pending_sizes. Update calls to get_parm_info.
302 (c_parser_objc_method_definition): Update calls to
303 c_parser_objc_method_decl and objc_start_method_definition.
304 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
305 (c_parser_objc_method_decl): Add parameter expr. Update call to
306 grokparm.
307 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
308 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
309 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
310
311 2011-05-05 Michael Hope <michael.hope@linaro.org>
312
313 PR pch/45979
314 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
315 __ARM_EABI__ hosts.
316
317 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
318
319 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
320 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
321 (spu_output_mi_thunk): New function.
322
323 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
324
325 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
326 targetm.asm_out.print_operand.
327 * config/sol2.c: Include target.h.
328
329 2011-05-04 Jan Hubicka <jh@suse.cz>
330
331 * ipa-inline.c (reset_edge_caches): New function.
332 (update_caller_keys): Add check_inlinablity_for; do not
333 reset edge caches; remove now unnecesary loop.
334 (update_callee_keys): Add comments; reset node_growth_cache of callee.
335 (update_all_callee_keys): Likewise.
336 (inline_small_functions): Sanity check cache; update code
337 recomputing it.
338
339 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
340
341 PR rtl-optimization/47612
342 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
343 as the last insn of the sequence to be moved.
344
345 2011-05-04 Tobias Burnus <burnus@net-b.de>
346
347 PR fortran/48864
348 * doc/invoke.texi (Ofast): Document that it
349 enables Fortran's -fno-protect-parens.
350
351 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
352
353 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
354
355 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
356
357 * stor-layout.c (variable_size): Do not issue errors.
358
359 2011-05-04 Richard Guenther <rguenther@suse.de>
360
361 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
362 for array-ref indices.
363 (tree_coverage_counter_addr): Likewise.
364 (build_fn_info_type): Use size_int for index types.
365 (build_gcov_info): Likewise.
366
367 2011-05-04 Richard Guenther <rguenther@suse.de>
368
369 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
370 to build_int_cst.
371 * c-typeck.c (really_start_incremental_init): Use bitsize_int
372 for constructor indices.
373 (push_init_level): Likewise.
374
375 2011-05-04 Richard Guenther <rguenther@suse.de>
376
377 * explow.c (promote_mode): Move variable declarations before code.
378
379 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
380
381 * tree.h (build_function_type_array): Declare.
382 (build_varargs_function_type_array): Declare.
383 (build_function_type_vec, build_varargs_function_type_vec): Define.
384 * tree.c (build_function_type_array_1): New function.
385 (build_function_type_array): New function.
386 (build_varargs_function_type_array): New function.
387
388 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
389
390 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
391 before setting STMT_VINFO_TYPE.
392
393 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
394
395 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
396 instead of spu_pass_by_reference.
397
398 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
399
400 * calls.c (emit_library_call_value_1): Invoke
401 promote_function_mode hook on libcall arguments.
402 * explow.c (promote_function_mode, promote_mode): Handle TYPE
403 argument being NULL.
404 * targhooks.c (default_promote_function_mode): Lisewise.
405 * config/s390/s390.c (s390_promote_function_mode): Likewise.
406 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
407
408 * doc/tm.texi: Document that TYPE argument might be NULL.
409
410 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
411
412 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
413
414 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
415
416 From Bernd Schmidt
417 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
418
419 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
420
421 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
422 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
423 Move ...
424 * mips-tfile.c: ... here.
425 Don't include coretypes.h, tm.h, filenames.h.
426 (saber_stop): Remove definition and all calls.
427 [__SABER__]: Remove.
428 (__LINE__): Remove default.
429 (Size_t, Ptrdiff_t): Remove definitions.
430 Replace by size_t, ptrdiff_t.
431 [!MIPS_DEBUGGING_INFO]: Remove.
432 (SHASH_SIZE, THASH_SIZE): Remove defaults.
433 (progname): Add const.
434 (STATIC): Remove.
435 Replace all uses by static.
436 (ALIGN_SYMTABLE_OFFSET): Remove default.
437 * mips-tdump.c: Don't include coretypes.h, tm.h.
438 Remove !MIPS_IS_STAB guard.
439 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
440 $(TM_H), filenames.h dependencies.
441 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
442
443 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
444
445 From Jie Zhang
446 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
447 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
448
449 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
450
451 From Bernd Schmidt
452 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
453 account and save/restore RETS.
454 (PROFILE_BEFORE_PROLOGUE): Define.
455 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
456 the push insn to use predecrement.
457
458 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
459
460 From Jie Zhang
461 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
462
463 2011-05-04 Nick Clifton <nickc@redhat.com>
464
465 * config/mn10300/mn10300.c: Include cfgloop.h.
466 (DUMP): New macro.
467 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
468 Lcc or a FLcc insn into the instruction stream.
469 (mn10300_block_contains_call): New function. Returns true if the
470 given basic block contains a CALL insn.
471 (mn10300_loop_contains_call_insn): New function. Returns true if
472 the given loop contains a CALL insn.
473 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
474 to use the SETLB and Lcc or FLcc insns.
475 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
476 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
477 * config/mn10300/mn10300.opt (msetlb): New option. Used to
478 disable the SETLB optimization.
479 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
480 __SETLB__ or __NO_SETLB__.
481 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
482 (movsf_internal): Handle MDR register.
483 (cmpsi): Make visible.
484 (setlb): New pattern.
485 (Lcc): New pattern.
486 (FLcc): New pattern.
487
488 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
489
490 PR target/48860
491 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
492 for reg<->xmm moves.
493 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
494 (vec_concatv2di_rex64_sse): Ditto.
495 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
496 (*vec_extractv2di_1_rex64): Ditto.
497
498 Revert:
499 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
500
501 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
502 reg<->xmm moves.
503 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
504
505 2011-05-04 Richard Guenther <rguenther@suse.de>
506
507 * tree.h (int_const_binop): Remove notrunc argument.
508 * fold-const.c (int_const_binop): Remove notrunc argument. Always
509 create integer constants that are properly truncated.
510 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
511 (const_binop): Remove zero notrunc argument to int_const_binop.
512 (size_binop_loc): Likewise.
513 (fold_div_compare): Likewise.
514 (maybe_canonicalize_comparison_1): Likewise.
515 (fold_comparison): Likewise.
516 (fold_binary_loc): Likewise.
517 (multiple_of_p): Likewise.
518 * expr.c (store_constructor): Likewise.
519 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
520 (maybe_fold_stmt_addition): Likewise.
521 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
522 * stor-layout.c (layout_type): Likewise.
523 * tree-data-ref.c (tree_fold_divides_p): Likewise.
524 * tree-sra.c (build_ref_for_offset): Likewise.
525 (build_user_friendly_ref_for_offset): Likewise.
526 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
527 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
528 * tree-ssa-loop-niter.c (inverse): Likewise.
529 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
530 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
531 * tree-switch-conversion.c (check_range): Likewise.
532 (build_constructors): Likewise.
533 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
534 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
535 (extract_range_from_assert): Likewise.
536 (vrp_int_const_binop): Likewise.
537 (extract_range_from_binary_expr): Likewise.
538 (extract_range_from_unary_expr): Likewise.
539 (check_array_ref): Likewise.
540 (find_case_label_range): Likewise.
541 (simplify_div_or_mod_using_ranges): Likewise.
542 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
543 comparing case labels for merging.
544
545 2011-05-03 Mark Wielaard <mjw@redhat.com>
546
547 * dwarf2out.c (debug_str_hash_forced): Removed.
548 (gen_label_for_indirect_string): Removed.
549 (get_debug_string_label): Removed.
550 (AT_string_form): Generate label directly.
551 (output_indirect_string): Test indirect_string_node for
552 DW_FORM_strp instead of checking label and refcount.
553 (prune_indirect_string): Removed.
554 (prune_unused_types): Don't check debug_str_hash_forced or
555 call prune_indirect_string.
556
557 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
558
559 PR other/48093
560 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
561
562 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
563
564 PR debug/47994
565 PR debug/47919
566 * combine.c (try_combine): Skip debug insns at m_split tests.
567
568 2011-04-26 Mark Wielaard <mjw@redhat.com>
569
570 PR42288
571 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
572 when info_section_emitted.
573
574 2011-05-03 Joseph Myers <joseph@codesourcery.com>
575
576 * config/mips/mips-opts.h: New.
577 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
578 to mips-opts.h.
579 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
580 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
581 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
582 via opts pointer.
583 * config/mips/mips.h (enum mips_code_readable_setting): Move to
584 mips-opts.h.
585 (mips_abi, mips_code_readable): Don't declare.
586 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
587 (mabi=): Use Enum and Var.
588 (mips_abi): New Enum and EnumValue entries.
589 (mcode-readable=): Use Enum and Var.
590 (mips_code_readable_setting): New Enum and EnumValue entries.
591 (mr10k-cache-barrier=): Use Enum and Var.
592 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
593
594 2011-05-03 Jan Hubicka <jh@suse.cz>
595
596 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
597 replace hash by pointer map.
598 (cgraph_node_set_element_def, cgraph_node_set_element,
599 const_cgraph_node_set_element, varpool_node_set_element_def,
600 varpool_node_set_element, const_varpool_node_set_element): Remove.
601 (free_cgraph_node_set, free_varpool_node_set): New function.
602 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
603 * tree-emutls.c: Free varpool node set.
604 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
605 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
606 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
607 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
608 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
609 Move here from ipa.c; implement using pointer_map
610 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
611 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
612 debug_cgraph_node_set, varpool_node_set_new,
613 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
614 dump_varpool_node_set, debug_varpool_node_set):
615 Move to ipa-uitls.c.
616 * passes.c (ipa_write_summaries): Update.
617
618 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
619
620 From Mike Frysinger:
621 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
622 bf542/bf544/bf547/bf548/bf549.
623
624 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
625
626 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
627
628 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
629
630 From Bernd Schmidt:
631 * config/bfin/bfin.md (MOVCC): New mode_macro.
632 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
633 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
634 comments from generated assembly.
635
636 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
637
638 From Bernd Schmidt
639 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
640 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
641 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
642 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
643 * config/bfin/lib1funcs.asm (___muldi3): New function.
644
645 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
646
647 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
648 build_function_type_list instead of build_function_type.
649 Rearrange initialization of `args' to do so.
650
651 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
652
653 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
654 instead of build_function_type.
655
656 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
657
658 * config/rs6000/rs6000.c (spe_init_builtins): Call
659 build_function_type_list instead of build_function_type.
660 (paired_init_builtins, altivec_init_builtins): Likewise.
661 (builtin_function_type): Likewise.
662
663 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
664
665 * config/sh/sh.c (sh_media_init_builtins): Call
666 build_function_type_list instead of build_function_type.
667
668 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
669
670 * config/sparc/sparc.c (sparc_file_end): Call
671 build_function_type_list instead of build_function_type.
672
673 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
674
675 * config/alpha/alpha.c (alpha_init_builtins): Call
676 build_function_type_list instead of build_function_type.
677
678 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
679
680 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
681 build_function_type_list instead of build_function_type.
682
683 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
684
685 * config/iq2000/i2000.c (iq2000_init_builtins): Call
686 build_function_type_list instead of build_function_type.
687 Delete `endlink' variable.
688
689 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
690
691 * config/avr/avr.c (avr_init_builtins): Call
692 build_function_type_list instead of build_function_type.
693
694 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
695
696 * config/picochip/picochip.c (picochip_init_builtins): Call
697 build_function_type_list instead of build_function_type.
698 Delete `endlink' variable.
699
700 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
701
702 * config/bfin/bfin.c (bfin_init_builtins): Call
703 build_function_type_list instead of build_function_type.
704
705 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
706
707 From Bernd Schmidt
708 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
709 that's not CONST_INT. Seemingly redundant check is due to PR39768.
710
711 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
712
713 From Jie Zhang:
714 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
715 libbffastfp overrides libgcc when -mfast-fp.
716
717 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
718
719 Originally from Bernd Schmidt
720 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
721 * config/bfin/bfin.c (override_options): Test it and error if
722 TARGET_FDPIC.
723
724 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
725
726 Originally From Bernd Schmidt
727 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
728 FD-PIC.
729
730 2011-05-03 Jeff Law <law@redhat.com>
731
732 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
733 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
734 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
735 than accessing AUX field directly. Free the AUX field before
736 clearing it.
737 (thread_block, thread_through_loop_header): Likewise.
738 (thread_single_edge, mark_threaded_blocks): Likewise.
739 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
740 (register_jump_thread): Do not attempt to thread to a NULL edge.
741
742 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
743
744 * function.c (init_function_start): Call decide_function_section.
745 * varasm.c (decide_function_section): New function.
746 (assemble_start_function): When not using
747 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
748 or first_function_block_is_cold.
749 * rtl.h (decide_function_section): Declare.
750
751 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
752 Jakub Jelinek <jakub@redhat.com>
753
754 PR target/48774
755 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
756 only succeed if req_mode is the same as set_mode.
757
758 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
759
760 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
761 * genemit.c (gen_exp): Handle RETURN.
762 * emit-rtl.c (verify_rtx_sharing): Likewise.
763 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
764 * rtl.c (copy_rtx): RETURN is shared.
765 * rtl.h (enum global_rtl_index): Add GR_RETURN.
766 (ret_rtx): New.
767 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
768 * config/s390/s390.c (s390_emit_epilogue): Likewise.
769 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
770 * config/cris/cris.c (cris_expand_return): Likewise.
771 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
772 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
773 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
774 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
775 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
776 Likewise.
777 * config/v850/v850.c (expand_epilogue): Likewise.
778 * config/bfin/bfin.c (bfin_expand_call): Likewise.
779 * config/arm/arm.md (epilogue): Likewise.
780 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
781 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
782 variable to ret_reg.
783
784 2011-05-03 Richard Guenther <rguenther@suse.de>
785
786 PR lto/48846
787 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
788 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
789 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
790
791 2011-05-03 Richard Guenther <rguenther@suse.de>
792
793 * c-decl.c (grokdeclarator): Instead of looking at
794 TREE_OVERFLOW check if the constant fits in the index type.
795
796 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
797
798 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
799 (vec_store_lanes<mode><mode>): Likewise.
800
801 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
802
803 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
804 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
805 convert_optab_index values.
806 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
807 * genopinit.c (optabs): Initialize the new optabs.
808 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
809 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
810 (expand_STORE_LANES): New functions.
811 * tree.h (build_array_type_nelts): Declare.
812 * tree.c (build_array_type_nelts): New function.
813 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
814 (vect_model_load_cost): Likewise.
815 (vect_store_lanes_supported, vect_load_lanes_supported)
816 (vect_record_strided_load_vectors): Declare.
817 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
818 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
819 (vect_transform_strided_load): Split out statement recording into...
820 (vect_record_strided_load_vectors): ...this new function.
821 * tree-vect-stmts.c (create_vector_array, read_vector_array)
822 (write_vector_array, create_array_ref): New functions.
823 (vect_model_store_cost): Add store_lanes_p argument.
824 (vect_model_load_cost): Add load_lanes_p argument.
825 (vectorizable_store): Try to use store-lanes functions for
826 interleaved stores.
827 (vectorizable_load): Likewise load-lanes and loads.
828 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
829 to vect_model_store_cost.
830 (vect_build_slp_tree): Likewise vect_model_load_cost.
831
832 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
833
834 * hooks.h (hook_bool_mode_uhwi_false): Declare.
835 * hooks.c (hook_bool_mode_uhwi_false): New function.
836 * target.def (array_mode_supported_p): New hook.
837 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
838 * doc/tm.texi: Regenerate.
839 * stor-layout.c (mode_for_array): New function.
840 (layout_type): Use it.
841 * config/arm/arm.c (arm_array_mode_supported_p): New function.
842 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
843
844 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
845
846 PR target/48723
847 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
848 for -fstack-check if the size to allocate is negative.
849
850 2011-05-02 Lawrence Crowl <crowl@google.com>
851
852 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
853 (timevar_cond_start): New for starting a timer only when it is not
854 already running.
855 (timevar_cond_stop): New for stopping a timer when it was not already
856 running.
857
858 * timevar.c (timevar_stop): Enable start/stop timers to start again.
859 (timevar_cond_start): New as above.
860 (timevar_cond_stop): New as above.
861
862 * timevar.def: Add start/stop timers for compiler phases,
863 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
864 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
865 and TV_PHASE_FINALIZE.
866 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
867 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
868 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
869 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
870 Make unused TV_OVERLOAD into a start/stop timer.
871
872 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
873 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
874 to indicate that they are start/stop timers.
875
876 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
877 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
878 Move initialization to do_compile.
879 (do_compile): Add initialization from above.
880 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
881
882 * c-decl.c (c_write_global_declarations): Add start/stop of
883 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
884
885 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
886 or TV_PARSE_INLINE, as appropriate.
887 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
888 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
889
890 2011-05-02 Jason Merrill <jason@redhat.com>
891
892 PR c++/40975
893 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
894
895 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
896
897 PR c/35445
898 * c-decl.c (finish_decl): Only create a composite if the types are
899 compatible.
900
901 2011-05-02 Joseph Myers <joseph@codesourcery.com>
902
903 * config/fr30/fr30-protos.h (Mmode): Don't define.
904 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
905 definition where used.
906 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
907 define. Expand definitions where used.
908 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
909 Expand definitions where used.
910 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
911 rx_function_arg, rx_function_arg_advance,
912 rx_function_arg_boundary): Expand definitions of those macros.
913 * config/v850/v850-protos.h (Mmode): Don't define. Expand
914 definition where used.
915
916 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
917
918 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
919 reg<->xmm moves.
920 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
921 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
922 with *movv2sf_internal_rex64_avx.
923 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
924 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
925 Use %v prefix in insn mnemonic to handle TARGET_AVX.
926 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
927 "vex" in "prefix" attribute calculation.
928 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
929
930 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
931
932 PR target/47951
933 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
934 inputs match the output.
935
936 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
937
938 PR target/47955
939 * config/m68k/m68k.c (m68k_expand_prologue): Set
940 current_function_static_stack_size.
941
942 2011-05-02 Jan Hubicka <jh@suse.cz>
943
944 * lto-streamer.c (lto_streamer_cache_insert_1,
945 lto_streamer_cache_lookup, lto_streamer_cache_create,
946 lto_streamer_cache_delete): Use pointer map instead of hashtable.
947 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
948
949 2011-05-02 Joseph Myers <joseph@codesourcery.com>
950
951 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
952 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
953 config/m68k/t-opts: New files.
954 * config/m68k/m68k-tables.opt: New file (generated).
955 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
956 extra_options and m68k/t-opts to tmake_file.
957 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
958 (all_isas): Initialize using m68k-isas.def.
959 (all_microarchs): Initialize using m68k-microarchs.def.
960 (m68k_find_selection): Remove.
961 (m68k_handle_option): Don't assert that global structures are in
962 use. Use error_at. Access variables via opts pointer. Don't
963 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
964 directly for -m68020-40 and -m68020-60.
965 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
966 m68k_tune_entry here.
967 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
968 to m68k-opts.h.
969 (m68k_library_id_string): Remove declaration.
970 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
971 (m68k_library_id_string): New Variable.
972 (march=, mcpu=, mtune=): Use Enum and Var.
973
974 2011-05-02 Richard Guenther <rguenther@suse.de>
975
976 * varasm.c (output_constructor_regular_field): Compute zero-based
977 index with double-ints. Make sure to ICE instead of producing
978 wrong code.
979 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
980 in asserts. Properly use a signed type.
981
982 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
983
984 * config/i386/sse.md (V): New mode iterator.
985 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
986 TARGET_SSE2.
987 (V_256): Rename from AVX256MODE.
988 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
989 condition to all users.
990 (VF1): Ditto.
991 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
992 condition to all users.
993 (VF_128): Make V4SF mode unconditional.
994 (VF_256): Rename from AVX256MODEF2P.
995 (VI4F_128): Rename from SSEMODE4S.
996 (VI8F_128): Rename from SSEMODE2D.
997 (VI4F_256): Rename from AVX256MODE8P.
998 (VI8F_256): Rename from AVX256MODE4P.
999 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1000 (ssescalarmodesuffix): Remove SF and DF modes.
1001 (SSEMODE124): Remove.
1002 (SSEMODE1248): Ditto.
1003 (SSEMODEF2P): Ditto.
1004 (AVXMODEF2P): Ditto.
1005 (AVXMODEFDP): Ditto.
1006 (AVXMODEFSP): Ditto.
1007 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1008 unconditional.
1009 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
1010 unconditional.
1011 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1012 xop_pcmov_<mode>256. Use V mode iterator.
1013
1014 Adjust RTX patterns globally for renamed mode attributes.
1015
1016 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1017
1018 * haifa-sched.c (sched_emit_insn): Emit insn before first
1019 non-scheduled insn. Inform back-end about new insn. Add
1020 new insn to scheduled_insns list.
1021
1022 2011-05-02 Richard Guenther <rguenther@suse.de>
1023
1024 PR tree-optimization/48822
1025 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1026 (process_scc): Indicate which iteration we start.
1027
1028 2011-05-02 Jan Hubicka <jh@suse.cz>
1029
1030 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1031 (lto_section_overrun): New.
1032 * lto-section-out.c (append_block): Rename to ...
1033 (lto_append_block): ... this one; export.
1034 (lto_output_1_stream): Move lto lto-streamer.h
1035 (lto_output_data_stream): Update.
1036 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1037 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1038 functions.
1039
1040 2011-05-02 Richard Guenther <rguenther@suse.de>
1041
1042 * tree.c (tree_code_counts): New global array.
1043 (record_node_allocation_statistics): Count individual tree codes.
1044 (dump_tree_statistics): Dump individual code stats.
1045
1046 2011-05-01 Jan Hubicka <jh@suse.cz>
1047
1048 * ipa-inline.c (caller_growth_limits): Fix thinko when
1049 looking for largest stack frame.
1050 * ipa-inline.h (dump_inline_summary): Declare.
1051 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1052 on stack usage.
1053 (dump_inline_summary): Export.
1054 (debug_inline_summary): Declare as DEBUG_FUNCTION.
1055
1056 2011-05-01 Anatoly Sokolov <aesok@post.ru>
1057
1058 * reginfo.c (memory_move_cost): Change rclass argument type form
1059 'enum reg_class' to reg_class_t.
1060 * reload.h (memory_move_cost): Update prototype.
1061 * postreload.c reload_cse_simplify_set): Change type dclass var to
1062 reg_class_t.
1063 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1064 Update prototype.
1065 (ira_allocate_and_set_costs): Change aclass argument type form
1066 'enum reg_class' to reg_class_t.
1067 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
1068 Change aclass argument type to reg_class_t.
1069 (update_conflict_hard_reg_costs): Change type aclass and pref vars
1070 to reg_class_t.
1071 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1072 memory_move_cost call.
1073
1074 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1075 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1076 Change type tmp var to reg_class_t.
1077
1078 2011-04-30 Jan Hubicka <jh@suse.cz>
1079
1080 * ipa-inline.c (can_inline_edge_p): Disregard limits when
1081 inlining into function with flatten attribute.
1082 (want_inline_small_function_p): Be more realistic about inlining
1083 cold calls where callee size grows.
1084
1085 2011-04-30 Jan Hubicka <jh@suse.cz>
1086
1087 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1088 flags.
1089
1090 2011-04-30 Anatoly Sokolov <aesok@post.ru>
1091
1092 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1093 PRINT_OPERAND_PUNCT_VALID_P): Remove.
1094 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1095 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1096 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1097 (print_operand): Rename to...
1098 (sparc_print_operand): ...this. Make static. Adjust
1099 sparc_print_operand function call.
1100 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1101 functions.
1102
1103 2011-04-30 Jan Hubicka <jh@suse.cz>
1104
1105 PR middle-end/48752
1106 * ipa-inline.c (early_inliner): Disable when doing late
1107 addition of function.
1108
1109 2011-04-30 Jakub Jelinek <jakub@redhat.com>
1110
1111 * dwarf2out.c (get_address_mode): New inline.
1112 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1113 if not dwarf_strict emit
1114 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1115 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1116 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
1117 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1118 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1119 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1120 mem_loc_descriptor callers.
1121 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1122 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1123 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1124 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1125 (base_types): New variable.
1126 (get_base_type_offset, calc_base_type_die_sizes,
1127 base_type_for_mode, mark_base_types, base_type_cmp,
1128 move_marked_base_types): New functions.
1129 (calc_die_sizes): Assert that die_offset is 0 or equal to
1130 next_die_offset.
1131 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1132 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
1133 callers. If not dwarf_strict, call mem_loc_descriptor even for
1134 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1135 (gen_subprogram_die): Don't give up on call site parameters
1136 with non-integral or large integral modes. Adjust
1137 mem_loc_descriptor callers.
1138 (prune_unused_types): Call prune_unused_types_mark on base_types
1139 vector entries.
1140 (resolve_addr): Call mark_base_types.
1141 (dwarf2out_finish): Call move_marked_base_types.
1142
1143 PR tree-optimization/48809
1144 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
1145 type.
1146 (gen_inbound_check): Don't compute index_expr - range_min in utype
1147 again, instead reuse SSA_NAME initialized in build_arrays.
1148 Remove two useless gsi_for_stmt calls.
1149
1150 2011-04-29 Jeff Law <law@redhat.com>
1151
1152 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1153
1154 2011-04-29 Martin Jambor <mjambor@suse.cz>
1155
1156 * cgraph.h (cgraph_postorder): Remove declaration.
1157 * ipa-utils.h (ipa_free_postorder_info): Declare.
1158 (ipa_reverse_postorder): Likewise.
1159 * cgraphunit.c: Include ipa-utils.h.
1160 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
1161 * ipa-inline.c: Include ipa-utils.h.
1162 (ipa_inline): Update call to ipa_reverse_postorder.
1163 * ipa-pure-const.c (propagate_pure_const): Update call to
1164 ipa_reduced_postorder and ipa_print_order. Call
1165 ipa_free_postorder_info to clean up.
1166 (propagate_nothrow): Likewise.
1167 * ipa-reference.c (propagate): Removed a useless call to
1168 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
1169 and ipa_print_order. Call ipa_free_postorder_info to clean up.
1170 * ipa.c: Include ipa-utils.h.
1171 (ipa_profile): Update call to ipa_reverse_postorder.
1172 (cgraph_postorder): Moved to...
1173 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
1174 (ipa_utils_print_order): Renamed to ipa_print_order.
1175 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
1176 comments.
1177 (ipa_free_postorder_info): New function.
1178 * passes.c: Include ipa-utils.h.
1179 (do_per_function_toporder): Update call to ipa_reverse_postorder.
1180 (ipa_write_summaries): Likewise.
1181 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
1182 (cgraphunit.o): Likewise.
1183 (ipa.o): Likewise.
1184 (ipa-inline.o): Likewise.
1185
1186 2011-04-29 Jan Hubicka <jh@suse.cz>
1187
1188 * gcc.dg/tree-ssa/inline-10.c: New testcase.
1189 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
1190 * ipa-inline.h (clause_t): Turn into unsigned int.
1191 * ipa-inline-analysis.c (add_clause): Do more simplification.
1192 (and_predicates): Shortcut more cases.
1193 (predicates_equal_p): Move forward; check that clauses are properly
1194 ordered.
1195 (or_predicates): Shortcut more cases.
1196 (edge_execution_predicate): Rewrite as...
1197 (set_cond_stmt_execution_predicate): ... this function; handle
1198 __builtin_constant_p.
1199 (set_switch_stmt_execution_predicate): New .
1200 (compute_bb_predicates): New.
1201 (will_be_nonconstant_predicate): Update TODO.
1202 (estimate_function_body_sizes): Use compute_bb_predicates
1203 and free them later, always try to estimate if stmt is constant.
1204 (estimate_time_after_inlining, estimate_size_after_inlining):
1205 Gracefully handle optimized out edges.
1206 (read_predicate): Fix off by one error.
1207
1208 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
1209
1210 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1211
1212 2011-04-27 Xinliang David Li <davidxl@google.com>
1213
1214 * tree-profile.c (init_ic_make_global_vars): Set
1215 tls attribute on ic vars.
1216 * coverage.c (coverage_end_function): Initialize
1217 function_list with zero.
1218
1219 2011-04-29 Richard Guenther <rguenther@suse.de>
1220
1221 * builtins.c (fold_builtin_classify_type): Use integer_type_node
1222 for the type of the result.
1223 (fold_builtin_isascii): Likewise.
1224 (fold_builtin_toascii): Use integer_type_node where appropriate.
1225 (fold_builtin_logb): Likewise.
1226 (fold_builtin_frexp): Likewise.
1227 (fold_builtin_strstr): Likewise.
1228 (fold_builtin_strpbrk): Likewise.
1229 (fold_builtin_fputs): Likewise.
1230 (fold_builtin_sprintf): Likewise.
1231 (fold_builtin_snprintf): Likewise.
1232 (fold_builtin_printf): Likewise.
1233 (do_mpfr_remquo): Use a proper type for the assigned constant.
1234 (do_mpfr_lgamma_r): Likewise.
1235 * dwarf2out.c (resolve_one_addr): Use size_int.
1236 * except.c (init_eh): Likewise.
1237 (assign_filter_values): Use integer_type_node for filter values.
1238 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
1239 indices.
1240 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
1241 for EH region numbers.
1242 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
1243 for the shift amount.
1244
1245 2011-04-29 Richard Guenther <rguenther@suse.de>
1246
1247 * expr.h (expand_shift): Rename to ...
1248 (expand_variable_shift): ... this.
1249 (expand_shift): Take a constant shift amount.
1250 * expmed.c (expand_shift): Rename to ...
1251 (expand_variable_shift): ... this.
1252 (expand_shift): New wrapper around expand_variable_shift.
1253 * expr.c (convert_move, emit_group_load_1, emit_group_store,
1254 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
1255 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
1256 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
1257 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
1258 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
1259 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
1260 emit_store_flag_1, emit_store_flag): Likewise.
1261 * builtins.c (expand_builtin_signbit): Likewise.
1262 * calls.c (load_register_parameters): Likewise.
1263 * function.c (assign_parm_setup_block): Likewise.
1264 * lower-subreg.c (resolve_shift_zext): Likewise.
1265 * optabs.c (widen_bswap, expand_abs_nojump,
1266 expand_one_cmpl_abs_nojump, expand_float): Likewise.
1267 * spu/spu.c (spu_expand_extv): Likewise.
1268 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1269
1270 2011-04-29 Richard Guenther <rguenther@suse.de>
1271
1272 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
1273 for the remapped region number.
1274 * predict.c (build_predict_expr): Use integer_type_node for the
1275 predict kind.
1276 * fold-const.c (fold_binary_loc): Use integer_type_node for
1277 the shift amount. Use a proper type for the PLUS_EXPR operand.
1278
1279 2011-04-29 Michael Matz <matz@suse.de>
1280
1281 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
1282 other trees that just builtins.
1283 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
1284
1285 2011-04-29 Richard Guenther <rguenther@suse.de>
1286
1287 * tree-nested.c (get_trampoline_type): Use size_int.
1288 (get_nl_goto_field): Likewise.
1289 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
1290 for all indexes.
1291 (lower_eh_constructs_2): Likewise.
1292 (lower_resx): Likewise.
1293 (lower_eh_dispatch): Likewise.
1294 * tree-mudflap.c (mf_build_string): Use size_int.
1295 (mudflap_register_call): Use integer_type_node for the flag.
1296 (mudflap_enqueue_constant): Use size_int.
1297 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
1298 instead of rebuilding it.
1299
1300 2011-04-29 Richard Guenther <rguenther@suse.de>
1301
1302 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
1303 Handle OBJ_TYPE_REF.
1304 (find_func_aliases_for_call): Use it more consistently.
1305
1306 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
1307
1308 * haifa-sched.c (last_nondebug_scheduled_insn): New.
1309 (rank_for_schedule): Use it.
1310 (schedule_block): Set it.
1311
1312 2011-04-28 David Li <davidxl@google.com>
1313
1314 * tree.c (crc32_string): Use crc32_byte.
1315 (crc32_byte): New function.
1316 * tree.h (crc32_byte): New function.
1317 * gcov.c (read_graph_file): Handle new cfg_cksum.
1318 (read_count_file): Ditto.
1319 * profile.c (instrument_values): Ditto.
1320 (get_exec_counts): Ditto.
1321 (read_profile_edge_counts): Ditto.
1322 (compute_branch_probabilities): Ditto.
1323 (compute_value_histograms): Ditto.
1324 (branch_prob): Ditto.
1325 (end_branch_prob): Ditto.
1326 * coverage.c (read_counts_file): Ditto.
1327 (get_coverage_counts): Ditto.
1328 (tree_coverage_counter_addr): Ditto.
1329 (coverage_checksum_string): Ditto.
1330 (coverage_begin_output): Ditto.
1331 (coverage_end_function): Ditto.
1332 (build_fn_info_type): Ditto.
1333 (build_fn_info_value): Ditto.
1334 * libgcov.c (gcov_exit): Ditto.
1335 * gcov-dump.c (tag_function): Ditto.
1336 (compute_checksum): Remove.
1337
1338 2011-04-29 Alan Modra <amodra@gmail.com>
1339
1340 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1341 unspec plus offset. Tidy macho code.
1342
1343 2011-04-29 Martin Jambor <mjambor@suse.cz>
1344
1345 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
1346 node instead of a decl. Update all callers.
1347 * cgraph.h: Update declaration.
1348
1349 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
1350
1351 PR tree-optimization/48765
1352 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1353 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1354 to indicate if loop aware SLP is being used. Scan the statements
1355 and update the vectorization factor according to the type of
1356 vectorization before statement analysis.
1357 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1358 pass it to vect_analyze_loop_operations.
1359 (vectorizable_reduction): Set number of copies to 1 in case of pure
1360 SLP statement.
1361 * tree-vect-stmts.c (vectorizable_conversion,
1362 vectorizable_assignment, vectorizable_shift,
1363 vectorizable_operation, vectorizable_type_demotion,
1364 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1365 Likewise.
1366 (vectorizable_condition): Move the check that it is not SLP
1367 vectorization before the number of copies check.
1368 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1369 to vectorize the loop using SLP.
1370
1371 2011-04-28 Jakub Jelinek <jakub@redhat.com>
1372
1373 PR middle-end/48597
1374 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1375 inline asm.
1376
1377 2011-04-28 Joseph Myers <joseph@codesourcery.com>
1378
1379 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
1380 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
1381 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1382 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1383 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
1384 linux*.h headers.
1385 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
1386 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1387 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1388 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1389 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1390 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
1391 REG_NAME.
1392 * config/i386/linux.h (REG_NAME): Don't define.
1393 * config/i386/linux64.h (REG_NAME): Don't define.
1394 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
1395 Undefine before defining.
1396
1397 2011-04-28 Jan Hubicka <jh@suse.cz>
1398
1399 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
1400 nonconstant_names array.
1401 (estimate_function_body_sizes): Build nonconstant_names array; handle
1402 BUILT_IN_CONSTANT_P.
1403
1404 2011-04-28 Richard Guenther <rguenther@suse.de>
1405
1406 PR bootstrap/48804
1407 Revert
1408 2011-04-28 Richard Guenther <rguenther@suse.de>
1409
1410 * tree-ssa-structalias.c (solve_constraints): Build succ graph
1411 as late as possible.
1412
1413 2011-04-28 Richard Guenther <rguenther@suse.de>
1414
1415 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
1416 (debug_constraint): Do it here.
1417 (dump_constraints): And here.
1418 (rewrite_constraints): And here.
1419 (dump_constraint_edge): Remove.
1420 (dump_constraint_graph): Rewrite to produce DOT output.
1421 (solve_constraints): Build succ graph as late as possible.
1422 Dump constraint graphs before and after solving.
1423
1424 2011-04-28 Richard Guenther <rguenther@suse.de>
1425
1426 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1427 New function split out from ...
1428 (find_func_aliases): ... here. Call it.
1429 (find_func_aliases_for_call): Likewise.
1430
1431 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
1432
1433 * internal-fn.h (internal_fn_name_array): Declare.
1434 (internal_fn_flags_array): Likewise.
1435
1436 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
1437
1438 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
1439 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
1440 Move from sse.md.
1441 (ssemodefsuffix): Remove.
1442 (ssevecmodesuffix): New mode attribute.
1443 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
1444 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1445 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1446 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1447 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
1448 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
1449 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
1450 ssemodesuffix mode attribute.
1451 (float splitters): Use ssevecmodesuffix mode attribute.
1452 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
1453 (sseinsmode): Rename from avxvecmode.
1454 (avxsizesuffix): Rename from avxmodesuffix.
1455 (sseintvecmode): Rename from avxpermvecmode.
1456 (ssedoublevecmode): Rename from ssedoublesizemode.
1457 (ssehalfvecmode): Rename from avxhalfvecmode.
1458 (ssescalarmode): Rename from avxscalarmode.
1459 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
1460 templates for ssemodesuffix mode attribute.
1461 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
1462 mode attribute.
1463
1464 Adjust RTX patterns globally for renamed mode attributes.
1465
1466 2011-04-27 Jan Hubcika <jh@suse.cz>
1467
1468 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
1469 * ipa-inline-analysis.c: Include alloc-pool.h.
1470 (edge_predicate_pool): New.
1471 (trye_predicate_p): New function
1472 (false_predicate_p): New function.
1473 (add_clause): Sanity check that false clauses are "optimized";
1474 never add clauses to predicate that is already known to be false.
1475 (and_predicate): Use flase_predicate_p.
1476 (evaulate_predicate): Rename to ...
1477 (evaluate_predicate): ... this one; update all callers; assert
1478 that false is not listed among possible truths.
1479 (dump_predicate): Use true_predicate_p.
1480 (account_size_time): Use false_predicate_p.
1481 (evaulate_conditions_for_edge): Rename to ...
1482 (evaluate_conditions_for_edge) ... this one.
1483 (edge_set_predicate): New function.
1484 (inline_edge_duplication_hook): Duplicate edge predicates.
1485 (inline_edge_removal_hook): Free edge predicates.
1486 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
1487 (dump_inline_summary): Update.
1488 (estimate_function_body_sizes): Set edge predicates.
1489 (estimate_calls_size_and_time): Handle predicates.
1490 (estimate_callee_size_and_time): Update.
1491 (remap_predicate): Add toplev_predicate; update comment.
1492 (remap_edge_predicates): New function.
1493 (inline_merge_summary): Compute toplev predicate; update.
1494 (read_predicate): New function.
1495 (read_inline_edge_summary): Use it.
1496 (inline_read_section): Likewise.
1497 (write_predicate): New function.
1498 (write_inline_edge_summary): Use it.
1499 (inline_write_summary): Likewise.
1500 (inline_free_summary): Free alloc pool and edge summary vec.
1501
1502 2011-04-27 Richard Guenther <rguenther@suse.de>
1503
1504 * tree-ssa-structalias.c (changed_count): Remove.
1505 (changed): Use a bitmap.
1506 (unify_nodes): Adjust.
1507 (do_sd_constraint): Likewise.
1508 (do_ds_constraint): Likewise.
1509 (do_complex_constraint): Likewise.
1510 (solve_graph): Likewise.
1511
1512 2011-04-27 Jan Hubicka <jh@suse.cz>
1513
1514 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1515
1516 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
1517
1518 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
1519 (avx_vperm2f128_*_operand): Ditto.
1520 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
1521 Use avx_vpermilp_parallel in insn condition.
1522 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
1523 Use avx_vperm2f128_parallel in insn condition.
1524
1525 2011-04-27 Richard Guenther <rguenther@suse.de>
1526
1527 * Makefile.in (tree-ssa-structalias.o): Remove
1528 gt-tree-ssa-structalias.h dependency.
1529 (GTFILES): Remove tree-ssa-structalias.c.
1530 * tree.c (allocate_decl_uid): New function.
1531 (make_node_stat): Use it.
1532 (copy_node_stat): Likewise.
1533 * tree.h (allocate_decl_uid): Declare.
1534 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
1535 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
1536 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
1537 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
1538 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
1539 (struct heapvar_map): Likewise.
1540 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
1541 heapvar_insert): Likewise.
1542 (make_heapvar_for): Rename to ...
1543 (make_heapvar): ... this. Simplify.
1544 (fake_var_decl_obstack): New global var.
1545 (build_fake_var_decl): New function.
1546 (make_constraint_from_heapvar): Adjust.
1547 (handle_lhs_call): Likewise.
1548 (create_function_info_for): Likewise.
1549 (intra_create_variable_infos): Likewise.
1550 (init_alias_vars): Allocate fake_var_decl_obstack.
1551 (init_alias_heapvars, delete_alias_heapvars): Remove.
1552 (compute_points_to_sets): Do not call init_alias_heapvars.
1553 (ipa_pta_execute): Likewise.
1554 (delete_points_to_sets): Free fake_var_decl_obstack.
1555
1556 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1557
1558 * config/spu/divmovti4.c (union qword_UTItype): New data type.
1559 (si_from_UTItype, si_to_UTItype): New functions.
1560 (__udivmodti4): Use them to implement type-punning.
1561 * config/spu/multi3.c (union qword_TItype): New data type.
1562 (si_from_TItype, si_to_TItype): New functions.
1563 (__multi3): Use them to implement type-punning.
1564
1565 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1566
1567 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1568
1569 2011-04-27 Jan Hubicka <jh@suse.cz>
1570
1571 * ipa-prop.c (function_insertion_hook_holder): New holder.
1572 (ipa_add_new_function): New function.
1573 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1574 Register/deregister holder.
1575
1576 2011-04-27 Richard Guenther <rguenther@suse.de>
1577
1578 PR tree-optimization/48772
1579 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
1580
1581 2011-04-27 Richard Guenther <rguenther@suse.de>
1582
1583 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1584 TARGET_MEM_REF handling.
1585
1586 2011-04-27 Nick Clifton <nickc@redhat.com>
1587
1588 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1589 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1590 (REG_CLASS_NAMES): Likewise.
1591 (REG_CLASS_CONTENTS): Likewise.
1592 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1593 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1594 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
1595 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
1596 (EVEN_REGS): New macro. Alias for QUAD_REGS.
1597 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
1598 duplicate register classes.
1599 (frv_class_likely_spilled_p): Likewise.
1600 (frv_register_move_cost): Likewise.
1601
1602 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1603 end of the regno_reg_class array.
1604
1605 2011-04-27 Jakub Jelinek <jakub@redhat.com>
1606
1607 PR c/48742
1608 * c-typeck.c (build_binary_op): Don't wrap arguments if
1609 int_operands is true.
1610
1611 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
1612
1613 PR target/48767
1614 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1615 targetm.calls.must_pass_in_stack for void type.
1616
1617 2011-04-26 Jan Hubicka <jh@suse.cz>
1618
1619 * cgraphbuild.c (build_cgraph_edges): Update call
1620 of cgraph_create_edge and cgraph_create_indirect_edge.
1621 * cgraph.c (cgraph_create_edge_including_clones,
1622 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
1623 cgraph_update_edges_for_call_stmt_node): Do not take nest
1624 argument; do not initialize call_stmt_size/time.
1625 (dump_cgraph_node): Do not dump nest.
1626 (cgraph_clone_edge): Do not take loop_nest argument;
1627 do not propagate it; do not clone call_stmt_size/time.
1628 (cgraph_clone_node): Likewise.
1629 (cgraph_create_virtual_clone): Update.
1630 * cgraph.h (struct cgraph_edge): Remove
1631 call_stmt_size/call_stmt_time/loop_nest.
1632 (cgraph_create_edge, cgraph_create_indirect_edge,
1633 cgraph_create_edge_including_clones, cgraph_clone_node): Update
1634 prototype.
1635 * tree-emutls.c (gen_emutls_addr): Update.
1636 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1637 loop_nest; handle indirect calls, too.
1638 (clone_inlined_nodes): Do not care about updating inline summaries.
1639 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1640 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1641 stream call_stmt_size/call_stmt_time/loop_nest.
1642 * ipa-inline.c (edge_badness): Update.
1643 (ipa_inline): dump summaries after inlining.
1644 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
1645 New.
1646 (inline_edge_summary): New function.
1647 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1648 (inline_edge_removal_hook): Handle edge summaries.
1649 (inline_edge_duplication_hook): New hook.
1650 (inline_summary_alloc): Alloc hooks.
1651 (initialize_growth_caches): Do not register removal hooks.
1652 (free_growth_caches); Do not free removal hook.
1653 (dump_inline_edge_summary): New function.
1654 (dump_inline_summary): Use it.
1655 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1656 (inline_update_callee_summaries): New function.
1657 (inline_merge_summary): Use it.
1658 (do_estimate_edge_time, do_estimate_edge_growth): Update.
1659 (read_inline_edge_summary): New function.
1660 (inline_read_section): Use it.
1661 (write_inline_edge_summary): New function.
1662 (inline_write_summary): Use it.
1663 (inline_free_summary): Free edge new holders.
1664 * tree-inline.c (copy_bb): Update.
1665
1666 2011-04-26 Jason Merrill <jason@redhat.com>
1667
1668 * tree-eh.c (lower_try_finally_switch): Create the label along with
1669 the CASE_LABEL_EXPR.
1670
1671 2011-04-26 David S. Miller <davem@davemloft.net>
1672 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1673
1674 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1675 * configure: Regenerate.
1676
1677 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1678
1679 PR target/48258
1680 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1681 reduction.
1682 (VEC_reduc): New code iterator and splitters for vector reduction.
1683 (VEC_reduc_name): Ditto.
1684 (VEC_reduc_rtx): Ditto.
1685 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1686 (reduc_<VEC_reduc_name>_v4sf): Ditto.
1687
1688 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1689 support for extracting SF on VSX.
1690
1691 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1692 generating xscvspdp.
1693 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1694 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1695 double add, minimum, maximum vector reduction.
1696 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1697 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1698 optimize double vector reduction.
1699 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1700
1701 2011-04-26 Joseph Myers <joseph@codesourcery.com>
1702
1703 * config/fr30/fr30.h (inhibit_libc): Don't define.
1704 * config/m32r/m32r-protos.h: Correct comment.
1705 * config/v850/v850.h (GHS_default_section_names,
1706 GHS_current_section_names): Use tree, not union tree_node *.
1707
1708 2011-04-26 Xinliang David Li <davidxl@google.com>
1709
1710 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
1711 * c-family/c-opts.c (c_common_handle_option): Set
1712 warn_maybe_uninitialized.
1713 * opts.c (common_handle_option): Ditto.
1714 * common.opt: New option.
1715 * tree-ssa.c (warn_uninit): Add one more parameter.
1716 (warn_uninitialized_var): Pass warning code.
1717 * tree-flow.h: Interface change.
1718
1719
1720 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1721
1722 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
1723 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1724 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1725
1726 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1727
1728 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1729 * config/mips/mips.opt (mmips-tfile): Remove.
1730
1731 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1732 mips-tdump reference to ...
1733 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
1734 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1735 reference by Tru64 UNIX.
1736
1737 2011-04-26 Jakub Jelinek <jakub@redhat.com>
1738
1739 PR debug/48768
1740 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1741 is error_mark_node, set value to NULL.
1742
1743 PR tree-optimization/48734
1744 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1745 if return value from maybe_fold_*_comparsions isn't something
1746 the code is prepared to handle.
1747
1748 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
1749
1750 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1751 mode check.
1752 (ext_QIreg_nomode_operands): Remove.
1753 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1754 (*andsi_1): Ditto.
1755 (*andhi_1): Ditto.
1756
1757 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
1758
1759 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1760
1761 2011-04-26 Richard Guenther <rguenther@suse.de>
1762
1763 * c-typeck.c (build_unary_op): Do not expand array-refs via
1764 pointer arithmetic. Only adjust qualifiers for function types.
1765
1766 2011-04-26 Richard Guenther <rguenther@suse.de>
1767
1768 PR middle-end/48694
1769 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1770 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
1771 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
1772 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
1773
1774 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
1775
1776 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
1777 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
1778 * doc/extend.texi: Document __underlying_type.
1779
1780 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
1781
1782 * config/rs6000/titan.md (automata_option "progress"): Remove.
1783
1784 2011-04-25 Jeff Law <law@redhat.com>
1785
1786 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1787
1788 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1789
1790 * system.h (ENUM_BITFIELD): Remove.
1791
1792 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
1793 Eric Botcazou <ebotcazou@adacore.com>
1794
1795 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1796 for STORE_FLAG_VALUE==-1 case.
1797
1798 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
1799
1800 PR target/43804
1801 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1802 LEGITIMATE_PIC_OPERAND_P.
1803
1804 2011-04-24 Jan Hubicka <jh@suse.cz>
1805
1806 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1807 WPA hack.
1808 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1809 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1810 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
1811 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1812 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1813 Sanity check predicate length.
1814 (remap_predicate): Likewise; sanity check jump functions.
1815 (inline_read_section, inline_write_summary): Sanity check
1816 predicate length.
1817
1818 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1819
1820 PR other/48748
1821 * doc/extend.texi (Type Traits): Document __is_standard_layout,
1822 __is_literal_type, and __is_trivial; update throughout about
1823 possibly cv-qualified void types.
1824
1825 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
1826
1827 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1828 testsuite and make it version agnostic.
1829
1830 2011-04-22 Jan Hubicka <jh@suse.cz>
1831
1832 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1833
1834 2011-04-23 Jakub Jelinek <jakub@redhat.com>
1835
1836 PR c/48685
1837 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1838 to VOID_TYPE even around MODIFY_EXPR.
1839
1840 2011-04-22 Mike Stump <mikestump@comcast.net>
1841
1842 * gensupport.c (read_md_rtx): Fix typo in comment.
1843 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1844 comment.
1845
1846 2011-04-22 Jan Hubicka <jh@suse.cz>
1847
1848 * gengtype.c (open_base_files): Add ipa-inline.h include.
1849 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1850 ipa-prop.c; update all uses.
1851 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
1852 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1853 merge summary of inlined function into former caller.
1854 * ipa-inline.c (max_benefit): Remove.
1855 (edge_badness): Compensate for removal of benefits.
1856 (update_caller_keys): Use
1857 reset_node_growth_cache/reset_edge_growth_cache.
1858 (update_callee_keys): Likewise.
1859 (update_all_callee_keys): Likewise.
1860 (inline_small_functions): Do not collect max_benefit; do not reset
1861 estimated_growth; call free_growth_caches and initialize_growth_caches.
1862 * ipa-inline.h (struct condition, type clause_t, struct predicate,
1863 struct size_time_entry): New structures.
1864 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
1865 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1866 and estimated_growth.
1867 (edge_growth_cache_entry): New structure.
1868 (node_growth_cache, edge_growth_cache): New global vars.
1869 (estimate_growth): Turn into inline.
1870 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1871 initialize_growth_caches, free_growth_caches): Declare.
1872 (estimate_edge_growth): Rewrite.
1873 (estimate_edge_time): Implement as inline cache lookup.
1874 (reset_node_growth_cache, reset_edge_growth_cache): New inline
1875 functions.
1876 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1877 (NUM_CONDITIONS): New constant.
1878 (predicate_conditions): New enum.
1879 (IS_NOT_CONSTANT): New constant.
1880 (edge_removal_hook_holder): New var.
1881 (node_growth_cache, edge_growth_cache): New global vars.
1882 (true_predicate, single_cond_predicate, false_predicate,
1883 not_inlined_predicate, add_condition, add_clause, and_predicates,
1884 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1885 dump_clause, dump_predicate, account_size_time,
1886 evaulate_conditions_for_edge): New functions.
1887 (inline_summary_alloc): Move to heap.
1888 (inline_node_removal_hook): Clear condition and entry vectors.
1889 (inline_edge_removal_hook): New function.
1890 (initialize_growth_caches, free_growth_caches): New function.
1891 (dump_inline_summary): Update.
1892 (edge_execution_predicate): New function.
1893 (will_be_nonconstant_predicate): New function.
1894 (estimate_function_body_sizes): Compute BB and constantness predicates.
1895 (compute_inline_parameters): Do not clear estimated_growth.
1896 (estimate_edge_size_and_time): New function.
1897 (estimate_calls_size_and_time): New function.
1898 (estimate_callee_size_and_time): New function.
1899 (remap_predicate): New function.
1900 (inline_merge_summary): New function.
1901 (do_estimate_edge_time): New function based on...
1902 (estimate_edge_time): ... this one.
1903 (do_estimate_edge_growth): New function.
1904 (do_estimate_growth): New function based on....
1905 (estimate_growth): ... this one.
1906 (inline_analyze_function): Analyze after deciding on jump functions.
1907 (inline_read_section): New function.
1908 (inline_read_summary): Use it.
1909 (inline_write_summary): Write all the new data.
1910 * ipa-prop.c (ipa_get_param_decl_index): Export.
1911 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
1912 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1913 Declare.
1914 (ipa_get_lattice): Move here from ipa-cp.c
1915 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1916 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1917 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1918 cgraph_edge_inlinable_p): Remove.
1919 * cgraphunit.c: Include ipainline.h
1920 (cgraph_process_new_functions): Update call of
1921 compute_inline_parameters.
1922
1923 2011-04-22 Richard Guenther <rguenther@suse.de>
1924
1925 * tree.c (build_int_cst): Properly create canonicalized integer
1926 constants.
1927 (build_int_cst_type): Remove scary comments.
1928
1929 2011-04-22 Xinliang David Li <davidxl@google.com>
1930
1931 * toplev.c (process_options): Enable -Werror=coverage-mismatch
1932 by default when -Wno-error is not specified.
1933 * opts-global.c (decode_options): Remove call to
1934 control_warning_options.
1935
1936 2011-04-22 Jakub Jelinek <jakub@redhat.com>
1937
1938 PR tree-optimization/48717
1939 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1940 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1941
1942 2011-04-22 Joseph Myers <joseph@codesourcery.com>
1943
1944 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1945 definition where used.
1946
1947 2011-04-22 Jakub Jelinek <jakub@redhat.com>
1948
1949 PR c/48716
1950 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1951 TREE_STATIC variables declared inside of some OpenMP construct.
1952
1953 2011-04-22 Martin Jambor <mjambor@suse.cz>
1954
1955 PR middle-end/48585
1956 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
1957
1958 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
1959
1960 PR c/36750
1961 * c-typeck.c (pop_init_level): Do not warn about initializing
1962 with ` = {0}'.
1963
1964 2011-04-22 Alan Modra <amodra@gmail.com>
1965
1966 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
1967 when returning call_cookie.
1968 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
1969 pointers, to functions with no more vector args than the current
1970 function, and some non-local calls for ABI_V4.
1971 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
1972 sibcall_nonlocal_aix64): Combine to ..
1973 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
1974 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
1975 (sibcall_value_nonlocal_aix<mode>): ..likewise.
1976 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
1977 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
1978 operand.
1979 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
1980 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
1981 sibcall_value_symbolic_64): Delete.
1982
1983 2011-04-21 Xinliang David Li <davidxl@google.com>
1984
1985 * cgraph.h: Remove pid.
1986 * cgraph.c: Remove pid.
1987 * value-prof.c (init_node_map): New function.
1988 (del_node_map): New function.
1989 (find_func_by_funcdef_no): New function.
1990 (gimple_ic_transform): Call new function.
1991 * cgraphunit.c (cgraph_finalize_function): Remove pid.
1992 * function.c (get_last_funcdef_no): New function.
1993 * function.h (get_last_funcdef_no): New function.
1994 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1995 to libgcov function.
1996 (tree-profiling): Call node map init and delete function.
1997
1998 2011-04-21 Ian Lance Taylor <iant@google.com>
1999
2000 * godump.c (go_format_type): Use exported Go name for anonymous
2001 field name.
2002
2003 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2004
2005 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2006 Call builtin_function_type_list instead of builtin_function_type.
2007 (UNARY, BINARY, TRINARY, QUAD): Likewise.
2008
2009 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2010
2011 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2012 build_function_type_list instead of build_function_type.
2013 Delete variable `endlink'.
2014
2015 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2016
2017 * config/s390/s390.c (s390_init_builtins): Call
2018 build_function_type_list instead of build_function_type.
2019
2020 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2021
2022 * config/ia64/ia64.c (ia64_init_builtins): Call
2023 build_function_type_list instead of builtin_function_type.
2024
2025 2011-04-21 Easwaran Raman <eraman@google.com>
2026
2027 * cfgexpand.c (stack_var): Remove OFFSET...
2028 (add_stack_var): ...and its reference here...
2029 (expand_stack_vars): ...and here.
2030 (stack_var_cmp): Sort by descending order of size.
2031 (partition_stack_vars): Change heuristic.
2032 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2033 (dump_stack_var_partition): Add newline after each partition.
2034
2035 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
2036 Jeff Law <law@redhat.com>
2037
2038 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2039 * gengtype.c (matching_file_name_substitute): Likewise.
2040
2041 2011-04-21 Richard Guenther <rguenther@suse.de>
2042
2043 PR lto/48703
2044 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2045
2046 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
2047
2048 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2049
2050 2011-04-21 Richard Guenther <rguenther@suse.de>
2051
2052 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2053 file name.
2054
2055 2011-04-21 Richard Guenther <rguenther@suse.de>
2056
2057 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2058 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2059 Use DECL_P, not SSA_VAR_P.
2060 (ptr_derefs_may_alias_p): Likewise.
2061 (ptr_deref_may_alias_ref_p_1): Likewise.
2062 (decl_refs_may_alias_p): Likewise.
2063 (refs_may_alias_p_1): Likewise.
2064 (ref_maybe_used_by_call_p_1): Likewise.
2065 (call_may_clobber_ref_p_1): Likewise.
2066 (indirect_ref_may_alias_decl_p): Assume indirect refrences
2067 are either MEM_REF or TARGET_MEM_REF.
2068 (indirect_refs_may_alias_p): Likewise.
2069 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2070 for MEM_EXPR of indirect calls.
2071
2072 2011-04-21 Tristan Gingold <gingold@adacore.com>
2073
2074 * vmsdbgout.c (write_srccorr): Compute file length from the string.
2075 (dst_file_info_struct): Remove flen field.
2076 (lookup_filename): Remove code that set flen field.
2077
2078 2011-04-21 Tristan Gingold <gingold@adacore.com>
2079
2080 * config/ia64/ia64.c (ia64_start_function): Add a guard.
2081
2082 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
2083
2084 PR target/48708
2085 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2086 vec_extract and vec_concat for non-SSE4_1 targets.
2087
2088 2011-04-21 Richard Guenther <rguenther@suse.de>
2089
2090 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2091 return statements.
2092
2093 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2094
2095 * config/i386/cygming.h (union tree_node, TREE): Don't define or
2096 undefine.
2097 (FILE): Don't undefine.
2098
2099 2011-04-21 Joseph Myers <joseph@codesourcery.com>
2100
2101 * config/alpha/alpha.c (struct machine_function): Use rtx, not
2102 struct rtx_def *.
2103 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2104 struct rtx_def *.
2105 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2106 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
2107 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2108 rtx_def *.
2109 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
2110 definitions where used.
2111 * config/microblaze/microblaze.h (struct microblaze_args): Use
2112 rtx, not struct rtx_def *.
2113 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2114 rtx_def *.
2115 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2116 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
2117 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2118 not struct rtx_def *.
2119 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2120 struct rtx_def *.
2121 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2122 rtx_def *.
2123 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2124
2125 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2126
2127 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2128 operand_equal_p to compare DR_BASE_ADDRESSes.
2129 (vect_check_interleaving): Likewise.
2130
2131 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2132
2133 PR target/46329
2134 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2135 for all Neon struct constants.
2136
2137 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2138
2139 * target.def (legitimate_constant_p): New hook.
2140 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2141 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2142 * doc/tm.texi: Regenerate.
2143 * hooks.h (hook_bool_mode_rtx_true): Declare.
2144 * hooks.c (hook_bool_mode_rtx_true): Define.
2145 * system.h (LEGITIMATE_CONSTANT_P): Poison.
2146 * calls.c (precompute_register_parameters): Replace uses of
2147 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
2148 (emit_library_call_value_1): Likewise.
2149 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
2150 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
2151 * ira-costs.c (scan_one_insn): Likewise.
2152 * recog.c (general_operand, immediate_operand): Likewise.
2153 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
2154 * reload1.c (init_eliminable_invariants): Likewise.
2155
2156 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2157 mode argument.
2158 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2159 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2160 argument.
2161 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2162 * config/alpha/predicates.md (input_operand): Update call to
2163 alpha_legitimate_constant_p.
2164
2165 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
2166 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
2167 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
2168 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2169 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
2170 (arm_legitimate_constant_p): New functions.
2171 (arm_cannot_force_const_mem): Make static.
2172
2173 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
2174
2175 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
2176 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
2177 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
2178 instead of bfin_legitimate_constant_p.
2179 (bfin_legitimate_constant_p): Make static. Add a mode argument.
2180 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2181
2182 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2183
2184 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
2185
2186 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
2187 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
2188 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2189 (frv_legitimate_constant_p): Make static. Add a mode argument.
2190
2191 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
2192 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
2193 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
2194
2195 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
2196 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
2197 * config/i386/i386.c (legitimate_constant_p): Rename to...
2198 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
2199 argument.
2200 (ix86_cannot_force_const_mem): Update accordingly.
2201 (ix86_legitimate_address_p): Likewise.
2202 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2203 * config/i386/i386.md: Update commentary.
2204
2205 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
2206 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
2207 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2208 (ia64_legitimate_constant_p): Make static. Add a mode argument.
2209
2210 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
2211
2212 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
2213 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
2214 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2215 (lm32_legitimate_constant_p): Make static. Add a mode argument.
2216
2217 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
2218 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
2219 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
2220
2221 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
2222 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2223 (m32r_legitimate_constant_p): New function.
2224
2225 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
2226 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
2227 LEGITIMATE_CONSTANT_P.
2228 (LEGITIMATE_CONSTANT_P): Delete.
2229 * config/m68k/m68k.c (m68k_expand_prologue): Call
2230 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
2231 (m68k_legitimate_constant_p): New function.
2232 * config/m68k/m68k.md: Update comments.
2233
2234 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
2235 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2236 (mcore_legitimate_constant_p): New function.
2237
2238 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
2239 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
2240 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
2241 Add a mode argument.
2242 (mep_legitimate_address): Update accordingly.
2243 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2244
2245 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
2246 Delete.
2247 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
2248 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
2249 static. Check OP's mode for VOIDmode.
2250 (microblaze_legitimate_constant_p): New function.
2251 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2252
2253 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
2254 * config/mips/mips.c (mips_legitimate_constant_p): New function.
2255 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
2256 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2257 * config/mips/predicates.md: Update comments.
2258
2259 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
2260 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
2261 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2262 (mmix_legitimate_constant_p): Make static, return a bool, and take
2263 a mode argument.
2264 (mmix_print_operand_address): Update accordingly.
2265
2266 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
2267 Delete.
2268 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2269 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
2270 static. Add a mode argument.
2271 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2272
2273 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
2274
2275 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
2276 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2277 (pa_legitimate_constant_p): New function.
2278
2279 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
2280
2281 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
2282 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2283 (pdp11_legitimate_constant_p): New function.
2284
2285 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
2286 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2287 (rs6000_legitimate_constant_p): New function.
2288
2289 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
2290 (rx_legitimate_constant_p): ...this.
2291 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
2292 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
2293 (rx_legitimate_constant_p): ...this.
2294 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2295 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
2296
2297 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
2298 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
2299 * config/s390/s390.c (legitimate_constant_p): Rename to...
2300 (s390_legitimate_constant_p): ...this. Make static, return a bool,
2301 and add a mode argument.
2302 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2303
2304 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
2305
2306 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
2307 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2308 (sh_legitimate_constant_p): New function.
2309
2310 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
2311 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
2312 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2313 (legitimate_constant_p): Rename to...
2314 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
2315 argument.
2316 (constant_address_p): Update accordingly.
2317
2318 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
2319 argument and return a bool.
2320 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
2321 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2322 (spu_legitimate_constant_p): Add a mode argument and return a bool.
2323 (spu_rtx_costs): Update accordingly.
2324 * config/spu/predicates.md (vec_imm_operand): Likewise.
2325
2326 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
2327
2328 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
2329 * config/v850/v850.c (v850_legitimate_constant_p): New function.
2330 (TARGET_LEGITIMATE_CONSTANT_P): Define.
2331
2332 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
2333 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
2334 * config/vax/vax.c (legitimate_constant_p): Likewise.
2335
2336 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
2337 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2338 (xtensa_legitimate_constant_p): New function.
2339
2340 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2341
2342 * target.def (cannot_force_const_mem): Add a mode argument.
2343 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
2344 * doc/tm.texi: Regenerate.
2345 * hooks.h (hook_bool_mode_rtx_false): Declare.
2346 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
2347 (hook_bool_mode_const_rtx_true): Likewise.
2348 (hook_bool_mode_rtx_false): New function.
2349 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2350 to be non-VOID. Update call to cannot_force_const_mem.
2351 (find_reloads): Update accordingly.
2352 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2353 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2354 argument.
2355 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2356 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2357 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2358 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2359 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2360 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2361 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2362 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2363 (m68k_cannot_force_const_mem): ...this new function.
2364 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2365 argument.
2366 (mips_const_insns, mips_legitimize_const_move): Update calls.
2367 (mips_secondary_reload_class): Likewise.
2368 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2369 (pa_cannot_force_const_mem): ...this new function.
2370 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
2371 (rs6000_cannot_force_const_mem): ...this new function.
2372 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2373 argument.
2374 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2375 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2376 to...
2377 (xtensa_cannot_force_const_mem): ...this new function.
2378
2379 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2380
2381 * config/mips/mips.c (mips16_build_function_stub): Call
2382 build_function_type_list instead of build_function_type.
2383 (mips16_build_call_stub): Likewise.
2384
2385 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2386
2387 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2388 instead of build_function_type.
2389
2390 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2391
2392 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2393 instead of build_function_type.
2394
2395 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
2396
2397 PR target/48678
2398 * config/i386/i386.md (insv): Change operand 0 constraint to
2399 "register_operand". Change operand 1 and 2 constraint to
2400 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
2401 * config/i386/sse.md (sse4_1_pinsrb): Export.
2402 (sse2_pinsrw): Ditto.
2403 (sse4_1_pinsrd): Ditto.
2404 (sse4_1_pinsrq): Ditto.
2405 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
2406 * config/i386/i386.c (ix86_expand_pinsr): New.
2407
2408 2011-04-20 Easwaran Raman <eraman@google.com>
2409
2410 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2411 containing union type only with -fstrict-aliasing.
2412
2413 2011-04-20 Jim Meyering <meyering@redhat.com>
2414
2415 Remove useless if-before-free tests.
2416 * calls.c (expand_call, save_area): Likewise.
2417 * cfgcleanup.c (try_forward_edges): Likewise.
2418 * collect2.c (collect_execute): Likewise.
2419 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
2420 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2421 * coverage.c (coverage_checksum_string): Likewise.
2422 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
2423 * cselib.c (cselib_init): Likewise.
2424 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
2425 (df_set_clean_cfg): Likewise.
2426 * function.c (free_after_compilation): Likewise.
2427 * gcc.c (do_spec_1, main): Likewise.
2428 * gcov.c (create_file_names): Likewise.
2429 * gensupport.c (identify_predicable_attribute): Likewise.
2430 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
2431 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
2432 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
2433 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
2434 * ipa-pure-const.c (local_pure_const): Likewise.
2435 * ipa-reference.c (propagate): Likewise.
2436 * ira-costs.c (free_ira_costs): Likewise.
2437 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
2438 * matrix-reorg.c (mat_free): Likewise.
2439 * prefix.c (get_key_value): Likewise.
2440 * profile.c (compute_value_histograms): Likewise.
2441 * reload1.c (free_reg_equiv): Likewise.
2442 * sched-deps.c (free_deps): Likewise.
2443 * sel-sched-ir.c (fence_clear): Likewise.
2444 * sese.c (set_rename, if_region_set_false_region): Likewise.
2445 * tree-data-ref.c (free_rdg): Likewise.
2446 * tree-eh.c (lower_try_finally): Likewise.
2447 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
2448 * tree-ssa-live.c (delete_var_map): Likewise.
2449 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
2450 * tree-ssa-pre.c (phi_trans_add): Likewise.
2451
2452 2011-04-20 Jakub Jelinek <jakub@redhat.com>
2453
2454 PR tree-optimization/48611
2455 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
2456 beyond ERT_MUST_NOT_THROW region.
2457
2458 2011-04-20 Catherine Moore <clm@codesourcery.com>
2459
2460 * config/mips/mips.opt (mfix-24k): New.
2461 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
2462 * config/mips/mips.md (length): Increase by 4 for stores if
2463 fixing 24K errata.
2464 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
2465 all noreorder if fixing 24K errata.
2466 * doc/invoke.texi: Document mfix-24k.
2467
2468 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
2469
2470 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2471 quad-word modes, reduce to 9-bit index range when above 1016 limit.
2472
2473 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2474
2475 * config/arm/arm.c (arm_gen_constant): Move movw support ....
2476 (const_ok_for_op): ... to here.
2477
2478 2011-04-20 Kai Tietz <ktietz@redhat.com>
2479
2480 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2481 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2482
2483 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2484
2485 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2486
2487 2011-04-20 Richard Guenther <rguenther@suse.de>
2488
2489 PR tree-optimization/47892
2490 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2491 are if-convertible.
2492
2493 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
2494
2495 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2496
2497 2011-04-20 Tristan Gingold <gingold@adacore.com>
2498
2499 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2500
2501 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
2502
2503 PR target/18145
2504
2505 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
2506 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2507 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2508 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2509 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
2510
2511 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
2512 New prototype.
2513
2514 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
2515 (avr_asm_named_section, avr_asm_output_aligned_common,
2516 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
2517 New functions to update...
2518 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
2519 (avr_asm_init_sections): Overwrite section callbacks for
2520 data_section, bss_section.
2521 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
2522 from here to...
2523 (avr_file_end): ...here.
2524
2525 2011-04-20 Richard Guenther <rguenther@suse.de>
2526
2527 PR middle-end/48695
2528 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2529 objects and types here. Adjust for their offset before comparing.
2530
2531 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2532
2533 * tree-vect-stmts.c (vectorizable_store): Only chain one related
2534 statement per copy.
2535
2536 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2537
2538 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
2539 (GIMPLE_H): Include $(INTERNAL_FN_H).
2540 (OBJS-common): Add internal-fn.o.
2541 (internal-fn.o): New rule.
2542 * internal-fn.def: New file.
2543 * internal-fn.h: Likewise.
2544 * internal-fn.c: Likewise.
2545 * gimple.h: Include internal-fn.h.
2546 (GF_CALL_INTERNAL): New gf_mask.
2547 (gimple_statement_call): Put fntype into a union with a new
2548 internal_fn field.
2549 (gimple_build_call_internal): Declare.
2550 (gimple_build_call_internal_vec): Likewise.
2551 (gimple_call_same_target_p): Likewise.
2552 (gimple_call_internal_p): New function.
2553 (gimple_call_internal_fn): Likewise.
2554 (gimple_call_fntype): Return null for internal calls.
2555 (gimple_call_set_fntype): Assert that the function is not internal.
2556 (gimple_call_set_fn): Likewise.
2557 (gimple_call_set_fndecl): Likewise.
2558 (gimple_call_set_internal_fn): New function.
2559 (gimple_call_addr_fndecl): Handle null functions.
2560 (gimple_call_return_type): Likewise null types.
2561 * gimple.c (gimple_build_call_internal_1): New function.
2562 (gimple_build_call_internal): Likewise.
2563 (gimple_build_call_internal_vec): Likewise.
2564 (gimple_call_same_target_p): Likewise.
2565 (gimple_call_flags): Handle calls to internal functions.
2566 (gimple_call_fnspec): New function.
2567 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
2568 (gimple_has_side_effects): Handle null functions.
2569 (gimple_rhs_has_side_effects): Likewise.
2570 (gimple_call_copy_skip_args): Handle calls to internal functions.
2571 * cfgexpand.c (expand_call_stmt): Likewise.
2572 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2573 * gimple-fold.c (gimple_fold_call): Handle null functions.
2574 (gimple_fold_stmt_to_constant_1): Don't fold
2575 calls to internal functions.
2576 * gimple-low.c (gimple_check_call_args): Handle calls to internal
2577 functions.
2578 * gimple-pretty-print.c (dump_gimple_call): Likewise.
2579 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2580 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2581 (do_warn_unused_result): Likewise.
2582 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2583 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2584 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2585 the target of a call.
2586 (initialize_hash_element): Update accordingly.
2587 (hashable_expr_equal_p): Use gimple_call_same_target_p.
2588 (iterative_hash_hashable_expr): Handle calls to internal functions.
2589 (print_expr_hash_elt): Likewise.
2590 * tree-ssa-pre.c (can_value_number_call): Likewise.
2591 (eliminate): Handle null functions.
2592 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2593 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2594 (find_func_aliases): Likewise.
2595 * value-prof.c (gimple_ic_transform): Likewise.
2596 (gimple_indirect_call_to_profile): Likewise.
2597 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2598 * lto-streamer-out.c (output_gimple_stmt): Likewise.
2599
2600 2011-04-19 Jan Hubicka <jh@suse.cz>
2601
2602 * ipa-inline-transform.c (save_inline_function_body): Add comments.
2603 * ipa-inline.c (inline_small_functions): Compute summaries first,
2604 populate heap later.
2605
2606 2011-04-19 Jan Hubicka <jh@suse.cz>
2607
2608 * cgraph.h (save_inline_function_body): Remove.
2609 * ipa-inline-transform.c: New file, broke out of...
2610 * ipa-inline.c: ... this one; Update toplevel comment.
2611 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
2612 make global.
2613 (update_noncloned_frequencies): Move to ipa-inline-transform.c
2614 (cgraph_mark_inline_edge): Rename to inline_call; move to
2615 ipa-inline-transform.c.
2616 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
2617 move to ipa-inline-transform.c
2618 (recursive_inlining, inline_small_functions, flatten_function,
2619 ipa_inline, inline_always_inline_functions,
2620 early_inline_small_functions): Update.
2621 (inline_transform): Move to ipa-inline-transform.c.
2622 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
2623 Declare.
2624 * Makefile.in (ipa-inline-transform.o): New file.
2625 * cgraphunit.c (save_inline_function_body): Move to
2626 ipa-inline-transform.c
2627
2628 2011-04-19 DJ Delorie <dj@redhat.com>
2629
2630 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2631 registers if we already know there aren't any.
2632 (m32c_emit_epilogue): Don't emit a barrier here.
2633 (m32c_emit_eh_epilogue): Likewise.
2634 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2635 operands at expand time.
2636 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2637 int" wchar type.
2638 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2639 duplicates. Provide aliases instead.
2640 * config/m32c/prologue.md (eh_return): Emit a barrier here.
2641 (eh_epilogue): Add a "(return)" here as a hint to other parts of
2642 the compiler.
2643
2644 2011-04-19 Anatoly Sokolov <aesok@post.ru>
2645
2646 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2647 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2648 (general_or_i64_p, sparc_register_move_cost): New function.
2649
2650 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2651
2652 * doc/install.texi (Configuration, --enable-threads): Remove mach.
2653 Add lynx, mipssde. Sort table.
2654
2655 2011-04-19 Xinliang David Li <davidxl@google.com>
2656
2657 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2658 not negative.
2659
2660 2011-04-19 Jakub Jelinek <jakub@redhat.com>
2661
2662 PR target/48678
2663 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2664 is a SUBREG with non-MODE_INT mode inside of it.
2665
2666 2011-04-19 Martin Jambor <mjambor@suse.cz>
2667
2668 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2669 also according to actual contants.
2670 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2671 (gimple_fold_call): Use it.
2672 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2673
2674 2011-04-19 Martin Jambor <mjambor@suse.cz>
2675
2676 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2677 non-pointer assignments.
2678
2679 2011-04-19 Martin Jambor <mjambor@suse.cz>
2680
2681 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2682 account anc_offset and otr_type from the indirect edge info.
2683 * ipa-prop.c (get_ancestor_addr_info): New function.
2684 (compute_complex_ancestor_jump_func): Assignment analysis moved to
2685 get_ancestor_addr_info, call it.
2686 (ipa_note_param_call): Do not initialize information about polymorphic
2687 calls, return the indirect call graph edge. Remove the last
2688 parameter, adjust all callers.
2689 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2690 parameters. Initialize polymorphic information in the indirect edge.
2691
2692 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2693
2694 PR lto/48148
2695 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2696 the types if they have different enumeration identifiers.
2697
2698 2011-04-19 Jan Hubicka <jh@suse.cz>
2699
2700 * cgraph.h (cgraph_optimize_for_size_p): Declare.
2701 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2702 * predict.c (cgraph_optimize_for_size_p): Break out from ...
2703 (optimize_function_for_size_p) ... here.
2704
2705 2011-04-19 Richard Guenther <rguenther@suse.de>
2706
2707 PR lto/48207
2708 * tree.c (free_lang_data): Do not reset the decl-assembler-name
2709 langhook.
2710
2711 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2712
2713 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2714 if DECL_NO_INLINE_WARNING_P is set on the function.
2715
2716 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
2717
2718 PR fortran/47976
2719 * reload1.c (inc_for_reload): Return void. All callers changed.
2720 (emit_input_reload_insns): Don't try to delete previous output
2721 reloads to a register, or record spill_reg_store for autoincs.
2722
2723 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
2724
2725 * gengtype.h: Updated copyright year.
2726 (struct input_file_st): Add inpisplugin field.
2727 (type_fileloc): New function.
2728 * gengtype.c
2729 (write_typed_struct_alloc_def): Add gcc_assert.
2730 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2731 (write_typed_alloc_defns): Don't output for plugin files.
2732 (input_file_by_name): Clear inpisplugin field.
2733 (main): Set inpisplugin field for plugin files.
2734
2735 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
2736
2737 * gengtype-state.c (string_eq): New.
2738 (read_state): Use string_eq instead of strcmp when creating the
2739 state_ident_tab.
2740
2741 2011-04-19 Wei Guozhi <carrot@google.com>
2742
2743 PR target/47855
2744 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2745 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2746 linkage.
2747 * config/arm/constraints.md (Uu): New constraint.
2748 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2749
2750 2011-04-19 Tristan Gingold <gingold@adacore.com>
2751
2752 * config.gcc (-*-*-*vms): Added.
2753 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2754 definitions moved.
2755 * config/vms/vms-ld.c: New file.
2756 * config/vms/vms-ar.c: New file.
2757 * config/vms/t-vmsnative: New file.
2758
2759 2011-04-18 Xinliang David Li <davidxl@google.com>
2760
2761 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2762
2763 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2764
2765 PR middle-end/48661
2766 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2767 if TREE_TYPE (v) is non-NULL.
2768
2769 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2770 gimple_get_virt_mehtod_for_binfo.
2771 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2772 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2773 callers.
2774 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2775
2776 2011-04-18 Michael Matz <matz@suse.de>
2777 Steve Ellcey <sje@cup.hp.com>
2778
2779 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2780 use its mode as source mode if it isn't VOIDmode.
2781
2782 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
2783
2784 * doc/passes.texi: Fill crossref nodes.
2785
2786 2011-04-18 Jim Meyering <meyering@redhat.com>
2787
2788 Fix doubled-word typos in comments and strings
2789 * config/alpha/vms-unwind.h: s/for for/for/
2790 * config/arm/unwind-arm.h: Likewise.
2791 * config/microblaze/microblaze.c: Likewise.
2792 * config/sh/constraints.md: s/in in/in/
2793 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2794
2795 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
2796
2797 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2798 (AVX_FLOAT_MODE_P): Ditto.
2799 (AVX128_VEC_FLOAT_MODE_P): Ditto.
2800 (AVX256_VEC_FLOAT_MODE_P): Ditto.
2801 (AVX_VEC_FLOAT_MODE_P): Ditto.
2802 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2803 (UNSPEC_MASKSTORE): Ditto.
2804 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2805 Merge from <sse>_movmsk<ssemodesuffix> and
2806 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
2807 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
2808 iterator.
2809 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2810 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2811 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2812
2813 2011-04-18 Jan Hubicka <jh@suse.cz>
2814
2815 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2816
2817 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2818 (want_inline_function_called_once_p): Break out the logic from
2819 ipa_inline.
2820 (edge_badness): Ensure that profile is not misupdated.
2821 (lookup_recursive_calls): Prioritize by call frequencies.
2822 (inline_small_functions): Move program size estimates here;
2823 actually process whole queue even when unit growth has been
2824 met. (to properly compute inline_failed reasons and for the
2825 case unit size decrease.) Revisit comments on recursive inlining.
2826 (ipa_inline): Remove unit summary code; first inline hot calls
2827 of functions called once, cold calls next.
2828 (order, nnodes): Remove unused variables.
2829 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2830 (GTFILES): Remove ipa-inline.c
2831 * sel-sched.c (fill_insns): Silence uninitialized var warning.
2832
2833 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2834
2835 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2836
2837 2011-04-18 Jie Zhang <jie@codesourcery.com>
2838 Richard Earnshaw <rearnsha@arm.com>
2839
2840 * arm.c (neon_builtin_type_bits): Remove.
2841 (typedef enum neon_builtin_mode): New.
2842 (T_MAX): Don't define.
2843 (typedef enum neon_builtin_datum): Remove bits, codes[],
2844 num_vars and base_fcode. Add mode, code and fcode.
2845 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2846 VAR10): Change accordingly.
2847 (neon_builtin_data[]): Change accordingly
2848 (arm_init_neon_builtins): Change accordingly.
2849 (neon_builtin_compare): Remove.
2850 (locate_neon_builtin_icode): Remove.
2851 (arm_expand_neon_builtin): Change accordingly.
2852
2853 * arm.h (enum arm_builtins): Move to ...
2854 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2855
2856 * arm.c (arm_builtin_decl): Declare.
2857 (TARGET_BUILTIN_DECL): Define.
2858 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2859 (arm_builtin_decls[]): New.
2860 (arm_init_neon_builtins): Store builtin declarations in
2861 arm_builtin_decls[].
2862 (arm_init_tls_builtins): Likewise.
2863 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
2864 (arm_builtin_decl): New.
2865
2866 2011-04-18 Richard Guenther <rguenther@suse.de>
2867
2868 * tree.c (upper_bound_in_type): Build properly canonicalized
2869 INTEGER_CSTs.
2870 (lower_bound_in_type): Likewise.
2871
2872 2011-04-18 Richard Guenther <rguenther@suse.de>
2873
2874 * gimple.h (gimple_call_addr_fndecl): New function.
2875 (gimple_call_fndecl): Use it.
2876 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2877 for direct calls.
2878 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2879 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2880
2881 2011-04-18 Richard Guenther <rguenther@suse.de>
2882
2883 PR middle-end/48650
2884 * tree.c (build_string): STRING_CST is now derived from tree_typed.
2885
2886 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2887
2888 PR lto/48492
2889 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2890 DECL_IN_CONSTANT_POOL without RTL.
2891
2892 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
2893 Ira Rosen <ira.rosen@linaro.org>
2894
2895 PR target/48252
2896 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2897 to match neon_vzip/vuzp/vtrn_internal.
2898 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2899 outputs explicitly dependent on both inputs.
2900 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2901
2902 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2903
2904 PR tree-optimization/48616
2905 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2906 whether the shift is by scalar or vector based on whether all SLP
2907 scalar stmts have the same rhs.
2908
2909 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2910
2911 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2912 memory operands.
2913
2914 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2915
2916 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2917 registers.
2918
2919 2011-04-17 Jan Hubicka <jh@suse.cz>
2920
2921 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
2922 * cgrpahunit.c (cgraph_finalize_function): Do not set
2923 finalized_by_frontend.
2924 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2925 finalized_by_frontend.
2926
2927 2011-04-17 Jan Hubicka <jh@suse.cz>
2928
2929 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2930 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2931 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
2932 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2933 method.
2934 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2935 gimple-fold.c
2936 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2937
2938 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2939
2940 PR lto/48538
2941 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2942 is non-null before accessing it.
2943 (input_cgraph): Remove trailing spaces.
2944
2945 2011-04-17 Revital Eres <revital.eres@linaro.org>
2946
2947 * params.def (sms-min-sc): New param flag.
2948 * modulo-sched.c (sms_schedule): Use it.
2949 * doc/invoke.texi (sms-min-sc): Document it.
2950
2951 2011-04-17 Jan Hubicka <jh@suse.cz>
2952
2953 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2954 present, also set gimple_call_set_cannot_inline.
2955 * ipa-inline.c: Update toplevel comment.
2956 (MAX_TIME): Remove.
2957 (cgraph_clone_inlined_nodes): Fix linebreaks.
2958 (cgraph_check_inline_limits): Restructure to ...
2959 (caller_growth_limits): ... this one; be more tolerant
2960 on growth in nested inline chains; add explanatory comment;
2961 fix stack accounting thinko introduced by previous patch.
2962 (cgraph_default_inline_p): Remove.
2963 (report_inline_failed_reason): New function.
2964 (can_inline_edge_p): New function.
2965 (can_early_inline_edge_p): New function.
2966 (leaf_node_p): Move upwards in file.
2967 (want_early_inline_function_p): New function.
2968 (want_inline_small_function_p): New function.
2969 (want_inline_self_recursive_call_p): New function.
2970 (cgraph_edge_badness): Rename to ...
2971 (edge_badness) ... this one; fix linebreaks.
2972 (update_edge_key): Update call of edge_baddness; add
2973 detailed dump about queue updates.
2974 (update_caller_keys): Use can_inline_edge_p and
2975 want_inline_small_function_p.
2976 (cgraph_decide_recursive_inlining): Rename to...
2977 (recursive_inlining): Use can_inline_edge_p and
2978 want_inline_self_recursive_call_p; simplify and remove no longer
2979 valid FIXME.
2980 (cgraph_set_inline_failed): Remove.
2981 (add_new_edges_to_heap): Use can_inline_edge_p and
2982 want_inline_small_function_p.
2983 (cgraph_decide_inlining_of_small_functions): Rename to ...
2984 (inline_small_functions): ... this one; cleanup; use
2985 can/want predicates; cleanup debug ouput; work edges till fibheap
2986 is exhausted and do not stop once unit growth is reached; remove
2987 later loop processing remaining edges.
2988 (cgraph_flatten): Rename to ...
2989 (flatten_function): ... this one; use can_inline_edge_p
2990 and can_early_inline_edge_p predicates.
2991 (cgraph_decide_inlining): Rename to ...
2992 (ipa_inline): ... this one; remove unreachable nodes before
2993 inlining functions called once; simplify the pass.
2994 (cgraph_perform_always_inlining): Rename to ...
2995 (inline_always_inline_functions): ... this one; use
2996 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
2997 (cgraph_decide_inlining_incrementally): Rename to ...
2998 (early_inline_small_functions): ... this one; simplify
2999 using new predicates; cleanup; make dumps prettier.
3000 (cgraph_early_inlining): Rename to ...
3001 (early_inliner): newer inline regular functions into always-inlines;
3002 fix updating of call stmt summaries.
3003 (pass_early_inline): Update for new names.
3004 (inline_transform): Fix formating.
3005 (gate_cgraph_decide_inlining): Rename to ...
3006 (pass_ipa_inline): ... this one.
3007 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3008 * ipa-inline-analysis.c (dump_inline_summary): Update.
3009 (compute_inline_parameters): Do not compute disregard_inline_limits;
3010 look for mismatching arguments.
3011 (estimate_growth): Fix handlig of non-trivial self recursion.
3012 (inline_read_summary): Do not read info->disregard_inline_limits.
3013 (inline_write_summary): Do not write info->disregard_inline_limits.
3014 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3015 and move all checks into can_inline_edge_p predicate; re-enable code
3016 comparing optimization levels.
3017 (expand_call_inline): Do not test inline_forbidden_into_p.
3018 * Makefile.in (ipa-inline.o): Update arguments.
3019
3020 2011-04-17 Revital Eres <revital.eres@linaro.org>
3021
3022 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3023
3024 2011-04-17 Revital Eres <revital.eres@linaro.org>
3025
3026 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3027
3028 2011-04-17 Michael Matz <matz@suse.de>
3029
3030 PR tree-optimization/48622
3031 PR lto/48645
3032 * ipa-inline-analysis.c (inline_read_summary): Read size/time
3033 in same order as they're written.
3034
3035 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3036
3037 * config/pa/predicates.md: Reorganize and simplify predicates.
3038 Eliminate duplicate code checks.
3039 (arith_operand): Rename to arith14_operand
3040 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3041 * config/pa/pa.md: Use renamed operands.
3042 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3043 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3044 arith11_operand, adddi3_operand, indexed_memory_operand,
3045 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3046 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3047 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3048 move_dest_operand, move_src_operand, prefetch_cc_operand,
3049 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3050 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3051 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3052 div_operand, int5_operand, movb_comparison_operator,
3053 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3054 arith_double_operand, ireg_operand, lhs_lshift_operand,
3055 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3056 integer_store_memory_operand): Likewise.
3057 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3058 (integer_store_memory_operand, read_only_operand,
3059 function_label_operand, borx_reg_operand,
3060 non_hard_reg_operand): Likewise.
3061 (eq_neq_comparison_operator): Delete unused operator.
3062 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3063 function_label_operand.
3064 (emit_move_sequence): Likewise.
3065
3066 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
3067
3068 * config/i386/sse.md (sseunpackmode): New mode attribute.
3069 (ssepackmode): Ditto.
3070 (vec_pack_trunc_<mode>): Macroize expander from
3071 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3072 (vec_unpacks_lo_<mode>): Macroize expander from
3073 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3074 (vec_unpacks_hi_<mode>): Macroize expander from
3075 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3076 (vec_unpacku_lo_<mode>): Macroize expander from
3077 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3078 (vec_unpacku_hi_<mode>): Macroize expander from
3079 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3080 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3081 ix86_expand_sse4_unpack.
3082 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3083
3084 2011-04-16 Jan Hubicka <jh@suse.cz>
3085
3086 * cgraphbuild.c: Include ipa-inline.h.
3087 (reset_inline_failed): Use initialize_inline_failed.
3088 * cgraph.c: Include ipa-inline.h.
3089 (cgraph_create_node_1): Do not initialize estimated_growth.
3090 (initialize_inline_failed): More to ipa-inline-analysis.c
3091 (dump_cgraph_node): Do not dump inline flags.
3092 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3093 and disregard_inline_limits flags.
3094 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3095 time, size, estimated_growth.
3096 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3097 Update.
3098 * cgraphunit.c (cgraph_decide_is_function_needed): Use
3099 DECL_DISREGARD_INLINE_LIMITS.
3100 (cgraph_analyze_function): Do not initialize
3101 node->local.disregard_inline_limits.
3102 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3103 inlinable, versionable and disregard_inline_limits.
3104 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3105 cgraph_check_inline_limits, cgraph_default_inline_p,
3106 cgraph_edge_badness, update_caller_keys, update_callee_keys,
3107 add_new_edges_to_heap): Update.
3108 (cgraph_decide_inlining_of_small_function): Update; set
3109 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
3110 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3111 cgraph_decide_inlining_incrementally): Update.
3112 * ipa-inline.h (inline_summary): Add inlinable, versionable,
3113 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3114 time, size and estimated_growth parameters.
3115 (estimate_edge_growth): Update.
3116 (initialize_inline_failed): Declare.
3117 * ipa-split.c: Include ipa-inline.h
3118 (execute_split_functions): Update.
3119 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3120 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3121 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3122 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3123 estimated_growth to INT_MIN.
3124 (inline_node_duplication_hook): Likewise.
3125 (dump_inline_summary): Dump new fields.
3126 (compute_inline_parameters): Update.
3127 (estimate_edge_time, estimate_time_after_inlining,
3128 estimate_size_after_inlining, estimate_growth, inline_read_summary,
3129 inline_write_summary):
3130 (initialize_inline_failed): Move here from cgraph.c.
3131 * tree-sra.c: Include ipa-inline.h.
3132 (ipa_sra_preliminary_function_checks): Update.
3133 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3134 ipa-inline.h.
3135
3136 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
3137
3138 * config/i386/sse.md (V16): New mode iterator.
3139 (VI1, VI8): Ditto.
3140 (AVXMODEQI, AVXMODEDI): Remove.
3141 (sse2, sse3): New mode attribute.
3142 (mov<mode>): Use V16 mode iterator.
3143 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3144 (push<mode>1): Use V16 mode iterator.
3145 (movmisalign<mode>): Ditto.
3146 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3147 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
3148 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3149 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
3150 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
3151 avx_movdqu<avxmodesuffix>.
3152 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
3153 *avx_movdqu<avxmodesuffix>.
3154 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
3155 avx_lddqu<avxmodesuffix>.
3156 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
3157 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
3158 avx_movnt<AVXMODEDI:mode>.
3159 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
3160 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
3161
3162 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
3163
3164 PR target/48629
3165 * haifa-sched.c (prune_ready_list, schedule_block): Use
3166 sched_pressure_p rather than flag_sched_pressure.
3167
3168 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
3169
3170 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3171 cgraph_get_node instead of cgraph_get_create_node.
3172
3173 2011-04-15 Jakub Jelinek <jakub@redhat.com>
3174
3175 * cfgexpand.c (expand_debug_expr): Use
3176 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3177
3178 2011-04-15 Michael Matz <matz@suse.de>
3179
3180 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
3181 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
3182 * function.c (gimplify_parameters): Ditto.
3183 * gimplify.c (gimplify_vla_decl): Ditto.
3184
3185 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
3186 (gimple_call_set_alloca_for_var): New inline function.
3187 (gimple_call_alloca_for_var_p): Ditto.
3188 * gimple.c (gimple_build_call_from_tree): Remember
3189 CALL_ALLOCA_FOR_VAR_P state.
3190 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
3191
3192 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3193 calls if they were for VLA objects.
3194
3195 2011-04-15 Martin Jambor <mjambor@suse.cz>
3196
3197 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3198 of ADR_EXPRs.
3199
3200 2011-04-15 Martin Jambor <mjambor@suse.cz>
3201
3202 PR middle-end/48601
3203 * tree-emutls.c (lower_emutls_function_body): Call
3204 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
3205 result is non-NULL.
3206
3207 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
3208
3209 * c-decl.c (detect_field_duplicates): Call
3210 objc_detect_field_duplicates instead of objc_get_interface_ivars.
3211
3212 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
3213
3214 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
3215 * gimple.c (gimple_asm_clobbers_memory_p): Define.
3216 * ipa-pure-const.c (check_stmt): Call it.
3217 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
3218
3219 2011-04-15 Richard Guenther <rguenther@suse.de>
3220
3221 PR tree-optimization/48290
3222 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
3223 Properly decide inhibiting propagation based on the valueized
3224 operand. Do loop-closed SSA form preserving here ...
3225 (init_copy_prop): ... not here.
3226
3227 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
3228
3229 PR target/48612
3230 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3231 (*ieee_smax<mode>3): Likewise.
3232
3233 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3234
3235 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3236 Replace match_operand with match_dup for the third operand in
3237 these expanders.
3238
3239 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3240
3241 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
3242 to track processing of conditionals. Update all callers.
3243 (try_combine, simplify_if_then_else): Update.
3244
3245 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3246
3247 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3248 -fsched-pressure.
3249
3250 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
3251
3252 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3253 instead of match_operand for operand 3.
3254
3255 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
3256
3257 * recog.h (insn_operand_data): Add an "allows_mem" field.
3258 * genoutput.c (output_operand_data): Initialize it.
3259 * optabs.c (maybe_legitimize_operand_same_code): New function.
3260 (maybe_legitimize_operand): Use it when matching the original
3261 op->value.
3262
3263 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
3264
3265 * gimplify.c: Fix issues in comments throughout.
3266 (voidify_wrapper_expr): Fix long line.
3267 (build_stack_save_restore): Likewise.
3268 (gimplify_loop_expr): Likewise.
3269 (gimplify_compound_lval): Likewise.
3270 (gimplify_init_ctor_eval): Likewise.
3271 (gimplify_modify_expr_rhs): Likewise.
3272 (omp_notice_threadprivate_variable): Likewise.
3273
3274 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
3275
3276 * cfgexpand.c (expand_call_stmt): Convert the function type to the
3277 original one if this is not a builtin function.
3278
3279 2011-04-14 Jakub Jelinek <jakub@redhat.com>
3280
3281 PR target/48605
3282 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
3283 offset it as needed based on top 2 bits in operands[3], change
3284 MEM mode to SFmode and mask those 2 bits away from operands[3].
3285
3286 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3287
3288 * c-parser.c (c_parser_objc_protocol_definition): Updated for
3289 change from objc_declare_protocols() to objc_declare_protocol().
3290
3291 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
3292
3293 * config/i386/sse.md (sse4_1): New mode attribute.
3294 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
3295 avx_blend<ssemodesuffix><avxmodesuffix> and
3296 sse4_1_blend<ssemodesuffix> using VF mode iterator.
3297 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
3298 avx_blendv<ssemodesuffix><avxmodesuffix> and
3299 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
3300 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
3301 avx_dp<ssemodesuffix><avxmodesuffix> and
3302 sse4_1_dp<ssemodesuffix> using VF mode iterator.
3303 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
3304 (sse4_1_packusdw): Merge with *avx_packusdw.
3305 (sse4_1_pblendvb): Merge with *avx_pblendvb.
3306 (sse4_1_pblendw): Merge with *avx_pblendw.
3307 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
3308 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
3309 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
3310 VF mode iterator.
3311 (sse4_1_round<ssescalarmodesuffix>): Merge with
3312 *avx_round<ssescalarmodesuffix>.
3313 (aesenc): Merge with *avx_aesenc.
3314 (aesenclast): Merge with *avx_aesenclast.
3315 (aesdec): Merge with *avx_aesdec.
3316 (aesdeclast): Merge with *avx_aesdeclast.
3317 (pclmulqdq): Merge with *pclmulqdq.
3318 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
3319 New predicate.
3320 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3321
3322 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
3323
3324 PR middle-end/48608
3325 * cfgexpand.c (get_decl_align_unit): Renamed to ...
3326 (align_local_variable): This. Update DECL_ALIGN.
3327 (add_stack_var): Updated.
3328 (expand_one_stack_var): Likewise.
3329
3330 2011-04-14 Richard Guenther <rguenther@suse.de>
3331
3332 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
3333 Remove.
3334 (dse_initialize_block_local_data, dse_leave_block,
3335 record_voperand_set, get_stmt_uid): Likewise.
3336 (dse_possible_dead_store_p): Allow any kind of killing stmt.
3337 (dse_optimize_stmt): Remove voperand set handling code.
3338 Simplify and improve to handle any kind of killing stmt.
3339 (dse_record_phi): Remove.
3340 (dse_enter_block): Simplify.
3341 (tree_ssa_dse): Likewise.
3342 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
3343
3344 2011-04-14 Jan Hubicka <jh@suse.cz>
3345
3346 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
3347 * cgraph.h (struct inline_summary): Move to ipa-inline.h
3348 (cgraph_local_info): Remove inline_summary.
3349 * ipa-cp.c: Include ipa-inline.h.
3350 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3351 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3352 accesor.
3353 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3354 (input_overwrite_node): Do not set inline summary.
3355 (input_node): Do not stream inline summary.
3356 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3357 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3358 growth; we do not have inline parameters computed for that anyway.
3359 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3360 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3361 (inline_summary_t): New type and VECtor.
3362 (debug_inline_summary, dump_inline_summaries): Declare.
3363 (inline_summary): Use VOCtor.
3364 (estimate_edge_growth): Kill hack computing call stmt size directly.
3365 * lto-section-in.c (lto_section_name): Add inline section.
3366 * ipa-inline-analysis.c: Include lto-streamer.h
3367 (node_removal_hook_holder, node_duplication_hook_holder): New holders
3368 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3369 (inline_summary_vec): Define.
3370 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3371 dump_inline_summaries): New functions.
3372 (estimate_function_body_sizes): Properly compute size/time of outgoing
3373 calls.
3374 (compute_inline_parameters): Alloc inline_summary; do not compute
3375 size/time of incomming calls.
3376 (estimate_edge_time): Avoid missing time summary hack.
3377 (inline_read_summary): Read inline summary info.
3378 (inline_write_summary): Write inline summary info.
3379 (inline_free_summary): Free all hooks and inline summary vector.
3380 * lto-streamer.h: Add LTO_section_inline_summary section.
3381 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
3382 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
3383
3384 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3385
3386 * tree-vectorizer.h (vect_strided_store_supported): Add a
3387 HOST_WIDE_INT argument.
3388 (vect_strided_load_supported): Likewise.
3389 (vect_permute_store_chain): Return void.
3390 (vect_transform_strided_load): Likewise.
3391 (vect_permute_load_chain): Delete.
3392 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
3393 count argument. Check that the count is a power of two.
3394 (vect_strided_load_supported): Likewise.
3395 (vect_permute_store_chain): Return void. Update after above changes.
3396 Assert that the access is supported.
3397 (vect_permute_load_chain): Likewise.
3398 (vect_transform_strided_load): Return void.
3399 * tree-vect-stmts.c (vectorizable_store): Update calls after
3400 above interface changes.
3401 (vectorizable_load): Likewise.
3402 (vect_analyze_stmt): Don't check for strided powers of two here.
3403
3404 2011-04-14 Richard Guenther <rguenther@suse.de>
3405
3406 PR tree-optimization/48590
3407 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3408 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3409 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
3410 BUILT_IN_STACK_SAVE.
3411 * tree-ssa-dce.c (propagate_necessity): Handle
3412 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3413
3414 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3415
3416 * c-parser.c (c_parser_objc_class_declaration): Updated call to
3417 objc_declare_class.
3418
3419 2011-04-14 Richard Guenther <rguenther@suse.de>
3420
3421 * tree.h (get_object_alignment_1): Declare.
3422 * builtins.c (get_object_alignment_1): Split out worker from ...
3423 (get_object_alignment): ... here.
3424 * fold-const.c (get_pointer_modulus_and_residue): Use
3425 get_object_alignment_1.
3426
3427 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3428
3429 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
3430 type parameter.
3431 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
3432 parameter. Generalise code to handle arrays as well as vectors.
3433 (vect_setup_realignment): Update accordingly.
3434 * tree-vect-stmts.c (vectorizable_store): Likewise.
3435 (vectorizable_load): Likewise.
3436
3437 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3438
3439 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
3440 within the per-copy loop.
3441
3442 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3443
3444 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
3445 in the dump file.
3446
3447 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3448
3449 * doc/options.texi (Negative): Explicitly mention that the
3450 Negative chain must be circular.
3451
3452 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
3453
3454 * function.h (block_chainon): Declare.
3455 * function.c (block_chainon): Define.
3456
3457 2011-04-14 Anatoly Sokolov <aesok@post.ru>
3458 Eric Weddington <eric.weddington@atmel.com>
3459 Georg-Johann Lay <avr@gjlay.de>
3460
3461 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
3462 New Includes
3463 (avr_init_builtins, avr_expand_builtin,
3464 avr_expand_delay_cycles, avr_expand_unop_builtin,
3465 avr_expand_binop_builtin ): New functions.
3466 (avr_builtin_id): New enum
3467 (struct avr_builtin_description): New struct
3468 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
3469 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3470
3471 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
3472 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
3473 UNSPECV_DELAY_CYCLES): new enumeration values
3474 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
3475 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
3476 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
3477 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
3478 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
3479 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
3480 "fmulsu"): New insns
3481
3482 * config/avr/avr-c.c: fix line endings
3483 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
3484 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
3485 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
3486 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
3487 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
3488
3489 * doc/extend.texi (AVR Built-in Functions): New node
3490 (Target Builtins): Add documentation of AVR
3491 built-in functions.
3492
3493 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
3494
3495 PR target/44643
3496 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
3497 alone. Error if non-const data has attribute progmem.
3498
3499 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3500
3501 * tree.h (struct tree_constructor): Include tree_typed instead of
3502 tree_common.
3503 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
3504 TS_TYPED instead of TS_COMMON.
3505
3506 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
3507
3508 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
3509 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
3510 (sse2_psadbw): Merge with *avx_psadbw.
3511 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
3512 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
3513 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
3514 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
3515 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
3516 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
3517 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
3518 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
3519 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
3520 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
3521 (ssse3_palignrti): Merge with *avx_palignrti.
3522
3523 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3524
3525 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
3526 * tree-ssanames.c (fini_ssanames): VEC_free it.
3527 (make_ssa_name_fn): Update for VECness of free_ssanames.
3528 (release_ssa_name, release_dead_ssa_names): Likewise.
3529 * tree.h (struct tree_ssa_name): Include tree_typed instead of
3530 tree_common.
3531 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
3532 TS_TYPED instead of TS_COMMON.
3533
3534 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3535
3536 * postreload-gcse.c (gcse_after_reload_main): Add calls to
3537 statistics_counter_event.
3538 * tree-ssa-copyrename.c (stats): Define.
3539 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
3540 statistics_counter_event.
3541 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
3542 (bswap_stats, widen_mul_stats): Define.
3543 (insert_reciprocals): Increment rdivs_inserted.
3544 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
3545 rfuncs_inserted. Add calls to statistics_counter_event.
3546 (execute_cse_sincos_1): Increment inserted.
3547 (execute_cse_sincos): Zeroize sincos_stats. Add call to
3548 statistics_counter_event.
3549 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
3550 of bswap_stats. Add calls to statistics_counter_event.
3551 (convert_mult_to_widen): Increment widen_mults_inserted.
3552 (convert_plusminus_to_widen): Increment maccs_inserted.
3553 (convert_mult_to_fma): Increment fmas_inserted.
3554 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
3555 calls to statistics_counter_event.
3556
3557 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
3558
3559 PR rtl-optimization/48455
3560 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
3561 `temp_costs->mem_cost'.
3562
3563 2011-04-13 Jan Hubicka <jh@suse.cz>
3564
3565 * ipa-inline.h: New file.
3566 * ipa-inline-analysis.c: New file. Broken out of ...
3567 * ipa-inline.c: ... this file; update toplevel comment;
3568 include ipa-inline.h
3569 (inline_summary): Move to ipa-inline.h
3570 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
3571 ipa-inline-analysis.c.
3572 (cgraph_estimate_time_after_inlining): Rename to
3573 estiamte_time_after_inlining; move to ipa-inline-analysis.c
3574 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3575 to estimate_edge_growth.
3576 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3577 rename to estimate_size_after_inlining.
3578 (cgraph_mark_inline_edge): Update for new naming convention.
3579 (cgraph_check_inline_limits): Likewise.
3580 (cgraph_edge_badness): Likewise.
3581 (cgraph_decide_recursive_inlining): Likewise.
3582 (cgraph_decide_inlining_of_small_functions): Likewise.
3583 (cgraph_decide_inlining_incrementally): Likewise.
3584 (cgraph_estimate_growth): Rename to estimate_growth; move to
3585 ipa-inline-analysis.c.
3586 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3587 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3588 (compute_inline_parameters): Likewise.
3589 (compute_inline_parameters_for_current): Likewise.
3590 (pass_inline_parameters): Likewise.
3591 (inline_indirect_intraprocedural_analysis): Likewise.
3592 (analyze_function): Rename to inline_analyze_function; likewise.
3593 (add_new_function): Move to ipa-inline-analysis.c.
3594 (inline_generate_summary): Likewise.
3595 (inline_read_summary): Likewise.
3596 (inline_write_summary): Likewise.
3597 * Makefile.in (ipa-inline-analysis.c): New file.
3598
3599 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3600
3601 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
3602 * configure: Regenerate.
3603
3604 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3605
3606 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
3607 instead of tree_common.
3608 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
3609 Likewise.
3610 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
3611 TS_TYPED rather than TS_COMMON.
3612 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
3613
3614 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
3615
3616 PR target/45263
3617 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
3618 r20 around calls of __tablejump_elpm__
3619
3620 2011-04-13 Jakub Jelinek <jakub@redhat.com>
3621
3622 PR middle-end/48591
3623 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
3624 NULL.
3625 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
3626
3627 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
3628
3629 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3630 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3631 (cfi_vec): New typedef.
3632 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3633 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3634 (cie_cfi_vec): New static variable.
3635 (cie_cfi_head): Delete.
3636 (add_cfi): Accept a cfi_vec * as first argument. All callers and
3637 declaration changed. Use vector rather than list operations.
3638 (new_cfi): Don't initialize the dw_cfi_next field.
3639 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3640 rather than list operations.
3641 (lookup_cfa): Use vector rather than list operations.
3642 (output_cfis): New argument upto. Accept a cfi_vec rather than
3643 a dw_cfi_ref list head as argument. All callers changed.
3644 Iterate over the vector using upto as a maximum index.
3645 (output_all_cfis): New static function.
3646 (output_fde): Use vector rather than list operations. Use the
3647 new upto argument for output_cfis rather than manipulating a
3648 list.
3649 (dwarf2out_begin_prologue): Change initializations to match
3650 new struct members.
3651 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3652 from the vector length rather than searching for the end of a list.
3653 Use output_all_cfis.
3654 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3655
3656 2011-04-13 Nick Clifton <nickc@redhat.com>
3657
3658 * config/rx/rx.md (movmemsi): Do not use this pattern when
3659 volatile pointers are involved.
3660
3661 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
3662
3663 * config/i386/sse.md (pinsrbits): Remove.
3664 (sse2_packsswb): Merge with *avx_packsswb.
3665 (sse2_packssdw): Merge with *avx_packssdw.
3666 (sse2_packuswb): Merge with *avx_packuswb.
3667 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3668 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3669 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3670 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3671 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3672 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3673 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3674 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3675 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3676 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3677 (sse2_loadld): Merge with *avx_loadld.
3678 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3679 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3680 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3681 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3682 (vec_concatv2di): Merge with *vec_concatv2di_avx.
3683
3684 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3685
3686 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3687 calling TREE_CHAIN.
3688 * print-tree.c (print_node): Likewise.
3689 * tree-inline.c (copy_tree_r): Likewise.
3690 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3691 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3692 instead of TS_COMMON.
3693 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3694 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3695 (copy_node_stat): Zero TREE_CHAIN only if necessary.
3696 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3697 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3698 ...and these...
3699 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3700 * tree.h: ...here.
3701 (TREE_CHAIN): Check for a TS_COMMON structure.
3702 (TREE_TYPE): Check for a TS_TYPED structure.
3703
3704 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
3705
3706 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3707 cgraph_get_create_node instead of cgraph_node.
3708
3709 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3710
3711 * c-parser.c (c_parser_initelt): Updated call to
3712 objc_build_message_expr.
3713 (c_parser_postfix_expression): Likewise.
3714
3715 2011-04-12 Kai Tietz <ktietz@redhat.com>
3716
3717 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3718 MASK_MS_BITFIELD_LAYOUT bit.
3719
3720 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3721
3722 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3723 assert it is always true.
3724 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3725 moves.
3726
3727 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3728
3729 * c-parser.c (c_lex_one_token): Rewritten conditional used when
3730 compiling Objective-C to be more efficient.
3731
3732 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
3733
3734 * opts-common.c (decode_cmdline_options_to_array): Remove variable
3735 argv_copied.
3736
3737 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3738
3739 * recog.h, genoutput.c, optabs.c: Revert last patch.
3740
3741 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3742
3743 PR target/48090
3744 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
3745
3746 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3747
3748 * recog.h (insn_operand_data): Add an "allows_mem" field.
3749 * genoutput.c (output_operand_data): Initialize it.
3750 * optabs.c (maybe_legitimize_operand_same_code): New function.
3751 (maybe_legitimize_operand): Use it when matching the original
3752 op->value.
3753
3754 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3755
3756 * genpreds.c (process_define_predicate): Move most processing
3757 to gensupport.c. Continue to validate the expression.
3758 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3759 (process_define_predicate): Move processing to gensupport.c.
3760 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3761 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3762 (compute_predicate_codes): Moved from genrecog.c. Add lineno
3763 argument.
3764 (valid_predicate_name_p): New function, split out from old
3765 genpreds.c:process_define_predicate.
3766 (process_define_predicate): New function, combining code from
3767 old genpreds.c and genrecog.c functions.
3768 (process_rtx): Call it for DEFINE_PREDICATE and
3769 DEFINE_SPECIAL_PREDICATE.
3770
3771 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3772
3773 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3774 size of a '%A' memory reference.
3775 (T_DREG, T_QREG): New neon_builtin_type_bits.
3776 (arm_init_neon_builtins): Assert that the load and store operands
3777 are neon_struct_operands.
3778 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3779 (NEON_ARG_MEMORY): New builtin_arg.
3780 (neon_dereference_pointer): New function.
3781 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3782 Handle NEON_ARG_MEMORY.
3783 (arm_expand_neon_builtin): Update after above interface changes.
3784 Use NEON_ARG_MEMORY for loads and stores.
3785 * config/arm/predicates.md (neon_struct_operand): New predicate.
3786 * config/arm/iterators.md (V_two_elem): Tweak formatting.
3787 (V_three_elem): Use BLKmode for accesses that have no associated mode.
3788 (V_four_elem): Tweak formatting.
3789 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3790 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3791 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3792 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3793 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3794 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3795 (neon_vst4<mode>): Replace pointer operand with a memory operand.
3796 Use %A in the output template.
3797 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3798 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3799 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3800 the width of the memory access. Remove post-increment.
3801 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3802
3803 2011-04-12 Nick Clifton <nickc@redhat.com>
3804
3805 * config/v850/v850.c (expand_prologue): Do not use the CALLT
3806 instruction for interrupt handlers if the target is the basic V850
3807 architecture.
3808 (expand_epilogue): Likewise.
3809
3810 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3811
3812 PR rtl-optimization/48549
3813 * combine.c (propagate_for_debug): Also stop after BB_END of
3814 this_basic_block. Process LAST and just stop processing after it.
3815 (combine_instructions): If last_combined_insn has been deleted,
3816 set last_combined_insn to its PREV_INSN.
3817
3818 2011-04-12 Richard Guenther <rguenther@suse.de>
3819
3820 PR tree-optimization/46076
3821 * gimple.h (struct gimple_statement_call): Add fntype field.
3822 (gimple_call_fntype): Adjust.
3823 (gimple_call_set_fntype): New function.
3824 * gimple.c (gimple_build_call_1): Set the call function type.
3825 * gimplify.c (gimplify_call_expr): Preserve the function
3826 type the frontend used for the call.
3827 (gimplify_modify_expr): Likewise.
3828 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3829 function type.
3830 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3831 function type.
3832 * tree-ssa.c (useless_type_conversion_p): Function pointer
3833 conversions are useless.
3834
3835 2011-04-12 Martin Jambor <mjambor@suse.cz>
3836
3837 * cgraph.h (cgraph_node): Remove function declaration.
3838 (cgraph_create_node): Declare.
3839 (cgraph_get_create_node): Likewise.
3840 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3841 Updated all callers.
3842 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3843 the decl does not already exist. Call cgraph_get_create_node instead
3844 of cgraph_node.
3845 (cgraph_get_create_node): New function.
3846 (cgraph_same_body_alias): Update comment.
3847 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3848 assert it does not return NULL.
3849 (cgraph_update_edges_for_call_stmt): Likewise.
3850 (cgraph_clone_edge): Likewise.
3851 (cgraph_create_virtual_clone): Likewise.
3852 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3853 instead of cgraph_node.
3854 (cgraph_add_new_function): Call cgraph_create_node or
3855 cgraph_get_create_node instead of cgraph_node.
3856 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3857 instead of cgraph_node.
3858 (record_eh_tables): Likewise.
3859 (mark_address): Likewise.
3860 (mark_load): Likewise.
3861 (build_cgraph_edges): Call cgraph_get_create_node instead
3862 of cgraph_node.
3863 (rebuild_cgraph_edges): Likewise.
3864 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3865 instead of cgraph_node.
3866 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3867 cgraph_node.
3868 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3869 cgraph_create_node instead of cgraph_node.
3870 * c-decl.c (finish_function): Call cgraph_get_create_node instead
3871 of cgraph_node.
3872 * lto-cgraph.c (input_node): Likewise.
3873 * lto-streamer-in.c (input_function): Likewise.
3874 * varasm.c (mark_decl_referenced): Likewise.
3875 (assemble_alias): Likewise.
3876
3877 2011-04-12 Martin Jambor <mjambor@suse.cz>
3878
3879 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3880 instead of cgraph_node and assert it does not return NULL.
3881 * lto-streamer-in.c (lto_read_body): Likewise.
3882 * omp-low.c (new_omp_context): Likewise.
3883 (create_task_copyfn): Likewise.
3884 * tree-emutls.c (lower_emutls_function_body): Likewise.
3885 * matrix-reorg.c (transform_allocation_sites): Likewise.
3886
3887 2011-04-12 Jakub Jelinek <jakub@redhat.com>
3888
3889 PR c/48552
3890 * c-typeck.c (build_asm_expr): Error out on attempts to use
3891 void type outputs or inputs for constraints that allow reg or
3892 don't allow memory.
3893
3894 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
3895 Richard Earnshaw <rearnsha@arm.com>
3896
3897 PR target/48250
3898 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3899 to use sign-magnitude offsets. Reject unsupported unaligned
3900 cases. Add detailed description in comments.
3901 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3902 condition from TARGET_32BIT to TARGET_ARM.
3903
3904 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
3905
3906 * tree.h (struct typed_tree): New.
3907 (struct tree_common): Include it instead of tree_base.
3908 (TREE_TYPE): Update for new location of type field.
3909 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3910 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3911 (union tree_node): Add typed field.
3912 * treestruct.def (TS_TYPED): New.
3913 * lto-streamer.c (check_handled_ts_structures): Handle it.
3914 * tree.c (MARK_TS_TYPED): New macro.
3915 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3916
3917 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
3918
3919 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3920 (force_nonfallthru): Do not alter the loop nest if no basic block
3921 was created.
3922
3923 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
3924
3925 * config/i386/sse.md (VI): New mode iterator.
3926 (SSEMODEI): Remove.
3927 (AVX256MODEI): Ditto.
3928 (AVXMODEF4P): Ditto.
3929 (avxvecpsmode): Ditto.
3930 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
3931 (sse2_andnot<mode>3): New expander.
3932 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3933 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
3934 (<any_logic:code><mode>3): Use VI mode iterator.
3935 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3936 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
3937 (*andnottf3): Handle AVX three-operand constraints.
3938 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3939
3940 2011-04-11 Joseph Myers <joseph@codesourcery.com>
3941 Robert Millan <rmh@gnu.org>
3942
3943 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3944 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3945 GNU_USER_DYNAMIC_LINKER64): Define.
3946 (REG_NAME): Don't undefine.
3947 (MD_UNWIND_SUPPORT): Undefine.
3948 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3949 (REG_NAME): Don't undefine.
3950 (MD_UNWIND_SUPPORT): Undefine.
3951 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
3952
3953 2011-04-11 Joseph Myers <joseph@codesourcery.com>
3954
3955 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3956 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3957
3958 2011-04-11 Xinliang David Li <davidxl@google.com>
3959
3960 * value-profile.c (check_ic_target): New function.
3961 (gimple_ic_transform): Sanity check indirect call target.
3962 * gimple-low.c (gimple_check_call_args): Interface change.
3963 (gimple_check_call_matching_types): New function.
3964 * tree-inline.c (tree_can_inline_p): Call new function.
3965
3966 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
3967
3968 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
3969 tree-pretty-print.h & realmpfr.h.
3970
3971 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
3972
3973 PR middle-end/48464
3974 * ira.c (setup_pressure_classes): Fix typo in loop condition.
3975 (setup_allocno_and_important_classes): Ditto.
3976
3977 2011-04-11 Joseph Myers <joseph@codesourcery.com>
3978
3979 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
3980 GNU_USER_DYNAMIC_LINKER.
3981 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
3982 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3983 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
3984 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3985 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3986 GNU_USER_TARGET_OS_CPP_BUILTINS.
3987 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
3988 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3989 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3990 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3991 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
3992 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3993 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3994 GNU_USER_TARGET_OS_CPP_BUILTINS.
3995 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3996 GNU_USER_DYNAMIC_LINKER.
3997 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3998 GNU_USER_TARGET_OS_CPP_BUILTINS.
3999 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
4000 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4001 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
4002 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4003 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
4004 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
4005 GNU_USER_DYNAMIC_LINKER64): Remove.
4006 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
4007 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4008 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4009 GNU_USER_DYNAMIC_LINKER.
4010 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4011 GNU_USER_TARGET_OS_CPP_BUILTINS.
4012 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4013 GNU_USER_TARGET_OS_CPP_BUILTINS.
4014 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
4015 to GNU_USER_TARGET_OS_CPP_BUILTINS.
4016 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4017 GNU_USER_TARGET_OS_CPP_BUILTINS.
4018 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
4019 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
4020 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4021 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
4022 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4023 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4024 GNU_USER_DYNAMIC_LINKER.
4025 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4026 GNU_USER_TARGET_OS_CPP_BUILTINS.
4027 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
4028 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4029 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4030 GNU_USER_DYNAMIC_LINKER.
4031 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4032 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4033 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
4034 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4035 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4036 GNU_USER_DYNAMIC_LINKER.
4037 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
4038 GNU_USER_DYNAMIC_LINKERN32.
4039 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
4040 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
4041 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
4042 GNU_USER_DYNAMIC_LINKER32.
4043 * config/mn10300/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/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4048 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4049 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
4050 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4051 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4052 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
4053 GNU_USER_DYNAMIC_LINKER32.
4054 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4055 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
4056 GNU_USER_DYNAMIC_LINKER.
4057 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
4058 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4059 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4060 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
4061 GNU_USER_DYNAMIC_LINKER64.
4062 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
4063 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4064 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4065 GNU_USER_DYNAMIC_LINKER.
4066 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
4067 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4068 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4069 GNU_USER_DYNAMIC_LINKER.
4070 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
4071 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4072 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4073 GNU_USER_DYNAMIC_LINKER32.
4074 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4075 GNU_USER_DYNAMIC_LINKER64.
4076 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4077 GNU_USER_DYNAMIC_LINKER64.
4078 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
4079 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4080 * config/xtensa/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 GNU_USER_DYNAMIC_LINKER.
4083
4084 2011-04-11 Joseph Myers <joseph@codesourcery.com>
4085
4086 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
4087 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
4088 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
4089 GNU_USER_DYNAMIC_LINKER.
4090 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4091 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
4092 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
4093 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
4094 GNU_USER_DYNAMIC_LINKER64.
4095 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4096 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
4097 GNU_USER_LINK_EMULATION.
4098 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
4099 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
4100 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
4101 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
4102 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
4103 CPP_SPEC, CC1_SPEC): Remove.
4104 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
4105 (GNU_USER_DYNAMIC_LINKER): Define.
4106 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
4107 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
4108 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
4109 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
4110 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
4111 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
4112 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4113 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
4114 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
4115 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
4116 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
4117 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
4118 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
4119 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
4120 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
4121 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4122 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4123 GNU_USER_DYNAMIC_LINKER.
4124 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4125 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4126 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4127 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4128 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4129 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4130 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
4131 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
4132 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
4133 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
4134
4135 2011-04-11 Kai Tietz <ktietz@redhat.com>
4136
4137 PR target/9601
4138 PR target/11772
4139 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
4140 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
4141 comment.
4142 (ix86_is_msabi_thiscall): Removed.
4143 (ix86_is_type_thiscall): Likewise.
4144 (ix86_get_callcvt): New function.
4145 (ix86_comp_type_attributes): Simplify check.
4146 (ix86_function_regparm): Use ix86_get_callcvt for calling
4147 convention attribute checks.
4148 (ix86_return_pops_args): Likewise.
4149 (ix86_static_chain): Likewise.
4150 (x86_this_parameter): Likewise.
4151 (x86_output_mi_thunk): Likewise.
4152 (ix86_function_type_abi): Optimize check for types without attributes.
4153 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
4154 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
4155 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
4156 by flag-values.
4157 (IX86_BASE_CALLCVT): Helper macro.
4158 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4159 Use ix86_get_callcvt for calling convention attribute checks and avoid
4160 symbol-decoration for stdcall in TARGET_RTD case.
4161 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4162 Likewise.
4163 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
4164 for declaration.
4165
4166 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
4167
4168 * config/i386/sse.md (VI_128): New mode iterator.
4169 (VI12_128): Rename from SSEMODE12.
4170 (VI14_128): Rename from SSEMODE14.
4171 (VI124_128): New mode iterator.
4172 (VI24_128): Rename from SSEMODE248.
4173 (VI248_128): Rename from SSEMODE248.
4174 (SSEMODE124C8): Remove.
4175 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4176 (*sse2_<plusminus_insn><mode>3): Merge with
4177 *avx_<plusminus_insn><mode>3.
4178 (*mulv8hi3): Merge with *avx_mulv8hi3.
4179 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
4180 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
4181 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
4182 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
4183 (ashr<mode>3): Merge with *avx_ashr<mode>3.
4184 (lshr<mode>3): Merge with *avx_lshr<mode>3.
4185 (ashl<mode>3): Merge with *avx_ashl<mode>3.
4186 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
4187 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
4188 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4189 (*<smaxmin:code>v8hi3): Ditto.
4190 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
4191 (*<smaxmin:code>v16qi3): Ditto.
4192 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
4193 (*sse2_eq<mode>3): Ditto.
4194 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
4195 (*sse2_gt<mode>3): Ditto.
4196 (vcondv2di): Split out of vcond<mode>.
4197 (vconduv2di): Split out of vcondu<mode>.
4198
4199 2011-04-11 Richard Guenther <rguenther@suse.de>
4200
4201 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
4202 before calling tree_low_cst.
4203
4204 2011-04-11 Richard Guenther <rguenther@suse.de>
4205
4206 * stor-layout.c (layout_type): Compute all array index size operations
4207 in the original type.
4208 (initialize_sizetypes): Add comment.
4209 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
4210
4211 2011-04-11 Joseph Myers <joseph@codesourcery.com>
4212
4213 * common.opt (Tbss=, Tdata=, Ttext=): New options.
4214
4215 2011-04-11 Martin Jambor <mjambor@suse.cz>
4216
4217 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
4218 of cgraph_node, handle NULL return value.
4219 (cgraph_global_info): Likewise.
4220 (cgraph_rtl_info): Likewise.
4221 * tree-inline.c (estimate_num_insns): Likewise.
4222 * gimplify.c (unshare_body): Likewise.
4223 (unvisit_body): Likewise.
4224 (gimplify_body): Likewise.
4225 * predict.c (optimize_function_for_size_p): Likewise.
4226 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
4227 (call_may_clobber_ref_p_1): Likewise.
4228 * varasm.c (function_section_1): Likewise.
4229 (assemble_start_function): Likewise.
4230
4231 2011-04-11 Martin Jambor <mjambor@suse.cz>
4232
4233 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
4234 of cgraph_node.
4235 * final.c (rest_of_clean_state): Likewise.
4236 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
4237 * passes.c (pass_init_dump_file): Likewise.
4238 (execute_all_ipa_transforms): Likewise.
4239 (function_called_by_processed_nodes_p): Likewise.
4240 * predict.c (maybe_hot_frequency_p): Likewise.
4241 (probably_never_executed_bb_p): Likewise.
4242 (compute_function_frequency): Likewise.
4243 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
4244 (unnest_nesting_tree_1): Likewise.
4245 (lower_nested_functions): Likewise.
4246 * tree-optimize.c (execute_fixup_cfg): Likewise.
4247 (tree_rest_of_compilation): Likewise.
4248 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
4249 * tree-sra.c (ipa_early_sra): Likewise.
4250 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
4251 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
4252 * ipa.c (record_cdtor_fn): Likewise.
4253 * ipa-inline.c (cgraph_early_inlining): Likewise.
4254 (compute_inline_parameters_for_current): Likewise.
4255 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4256 * ipa-pure-const.c (local_pure_const): Likewise.
4257 * ipa-split.c (split_function): Likewise.
4258 (execute_split_functions): Likewise.
4259 * cgraphbuild.c (build_cgraph_edges): Likewise.
4260 (rebuild_cgraph_edges): Likewise.
4261 (cgraph_rebuild_references): Likewise.
4262 (remove_cgraph_callee_edges): Likewise.
4263 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
4264 (verify_cgraph_node): Likewise.
4265 (cgraph_analyze_functions): Likewise.
4266 (cgraph_preserve_function_body_p): Likewise.
4267 (save_inline_function_body): Likewise.
4268 (save_inline_function_body): Likewise.
4269 * tree-inline.c (copy_bb): Likewise.
4270 (optimize_inline_calls): Likewise.
4271
4272 2011-04-11 Martin Jambor <mjambor@suse.cz>
4273
4274 PR tree-optimization/48195
4275 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
4276 ipa_check_create_edge_args.
4277 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
4278 ipa_check_create_edge_args.
4279 * ipa-inline.c (inline_generate_summary): Do not call
4280 ipa_check_create_node_params and ipa_check_create_edge_args.
4281 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
4282 ipa_check_create_edge_args.
4283
4284 2011-04-09 Anatoly Sokolov <aesok@post.ru>
4285
4286 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
4287 instead of loop.
4288 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
4289 * function.c (record_hard_reg_sets): Likewise.
4290 * ira.c (compute_regs_asm_clobbered): Likewise.
4291 * sched-deps.c (sched_analyze_1): Likewise.
4292 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
4293
4294 2011-04-09 Xinliang David Li <davidxl@google.com>
4295
4296 PR tree-optimization/PR48484
4297 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
4298 has_valid_pred lazily
4299
4300 2011-04-09 Duncan Sands <baldrick@free.fr>
4301
4302 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
4303
4304 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
4305
4306 * combine.c (combine_validate_cost): Adjust comments. Set registered
4307 cost of I0 to zero at the end, if any.
4308
4309 2011-04-08 Xinliang David Li <davidxl@google.com>
4310
4311 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
4312 to insane profile data.
4313
4314 2011-04-08 Xinliang David Li <davidxl@google.com>
4315
4316 * ipa-cp.c (ipcp_update_profiling): Correct
4317 negative scale factor due to insane profile data.
4318
4319 2011-04-08 Xinliang David Li <davidxl@google.com>
4320
4321 * final.c (dump_basic_block_info): New function.
4322 (final): Dump basic block.
4323 (final_scan_insn): Remove old dump.
4324
4325 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
4326
4327 PR target/47829
4328 * config.gcc (i386-*-freebsd): Disable unwind table generation for
4329 crtbegin/crtend.
4330
4331 2011-04-08 Michael Matz <matz@suse.de>
4332
4333 PR middle-end/48389
4334 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
4335 functions.
4336 (rebuild_jump_labels): Call rebuild_jump_labels_1.
4337 * rtl.h (rebuild_jump_labels_chain): Declare.
4338 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
4339 insns inserted on edges.
4340
4341 2011-04-08 Joseph Myers <joseph@codesourcery.com>
4342
4343 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
4344 * config/arm/arm-arches.def: New.
4345 * config/arm/arm-opts.h: New.
4346 * config/arm/genopt.sh: New.
4347 * config/arm/arm-tables.opt: New (generated).
4348 * config/arm/arm.c (arm_handle_option, arm_target_help,
4349 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
4350 (all_architectures): Get most table contents from arm-arches.def.
4351 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
4352 arm_selected_tune here.
4353 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
4354 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
4355 (march=, mcpu=, mtune=): Use Enum and Var.
4356 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
4357 (arm.o): Update dependencies.
4358
4359 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
4360
4361 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
4362 of header_file.
4363 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
4364 (write_typed_alloc_defns): Likewise.
4365 (main): Calls write_typed_alloc_defns with output_header.
4366
4367 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
4368
4369 PR inline-asm/48435
4370 * ira-color.c (setup_profitable_hard_regs): Add comments.
4371 Don't take prohibited hard regs into account.
4372 (setup_conflict_profitable_regs): Rename to
4373 get_conflict_profitable_regs.
4374 (check_hard_reg_p): Check prohibited hard regs.
4375
4376 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
4377
4378 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
4379 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
4380 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
4381
4382 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4383
4384 PR target/48366
4385 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
4386 move from floating point to shift amount register.
4387 (emit_move_sequence): Remove secondary reload support for floating
4388 point to shift amount amount register copies.
4389 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
4390 amount register copies.
4391 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
4392 register, return false if mode isn't a scalar integer mode.
4393 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
4394
4395 2011-04-08 Richard Guenther <rguenther@suse.de>
4396
4397 * gimple.c (gimple_call_flags): Remove kludge.
4398
4399 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4400
4401 * sel-sched.c (sel_region_init): Move call to
4402 sel_setup_region_sched_flags after setup_current_loop_nest.
4403
4404 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
4405
4406 PR rtl-optimization/48272
4407 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
4408 init_insn_reg_pressure_info. Adjust a caller.
4409 * sched-int.h (init_insn_reg_pressure_info): Declare.
4410 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
4411 when sched-pressure is enabled.
4412
4413 2011-04-08 Richard Guenther <rguenther@suse.de>
4414
4415 * gimple.c (gimple_set_modified): Do not queue calls to
4416 MODIFIED_NORETURN_CALLS here ...
4417 * tree-ssa-operands.c (update_stmt_operands): ... but here.
4418
4419 2011-04-08 Richard Guenther <rguenther@suse.de>
4420
4421 PR lto/48467
4422 * toplev.c (lang_dependent_init): Do not open asm_out_file
4423 in WPA mode, nor perform debug machinery initialization.
4424 (finalize): Do not unlink asm_out_file in WPA mode.
4425
4426 2011-04-08 Richard Guenther <rguenther@suse.de>
4427
4428 * gimple.h (gimple_call_fntype): New function.
4429 (gimple_call_return_type): Use it.
4430 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
4431 * gimple-low.c (gimple_check_call_args): Likewise.
4432 * gimple.c (gimple_call_flags): Likewise.
4433 (gimple_call_arg_flags): Likewise.
4434 (gimple_call_return_flags): Likewise.
4435 * tree-cfg.c (verify_gimple_call): Likewise.
4436 (do_warn_unused_result): Likewise.
4437 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
4438 * value-prof.c (gimple_ic_transform): Fix fndecl check.
4439
4440 2011-04-08 Dmitry Melnik <dm@ispras.ru>
4441
4442 PR rtl-optimization/48235
4443 * sel-sched.c (code_motion_process_successors): Recompute the last
4444 insn in basic block if control flow changed.
4445 (code_motion_path_driver): Ditto. Recompute the first insn as well.
4446 Update condition for ilist_remove.
4447
4448 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4449
4450 PR rtl-optimization/48302
4451 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
4452 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
4453 it to record added preheader blocks.
4454 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
4455 on to sel_add_loop_preheaders.
4456 (sel_region_init): Move call to setup_current_loop_nest after
4457 sel_init_bbs.
4458
4459 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4460
4461 PR target/48273
4462 * cfgloop.h (loop_has_exit_edges): New helper.
4463 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
4464 non-clonable.
4465 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
4466 that have no exit edges.
4467
4468 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
4469
4470 PR rtl-optimization/48442
4471 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
4472 all callers. Adjust assert.
4473
4474 2011-04-08 Jakub Jelinek <jakub@redhat.com>
4475
4476 PR tree-optimization/48377
4477 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
4478 is_packed to true even for types with smaller TYPE_ALIGN than
4479 TYPE_SIZE.
4480
4481 2011-04-08 Richard Guenther <rguenther@suse.de>
4482
4483 PR bootstrap/48513
4484 * doc/tm.texi: Re-generate.
4485
4486 2011-04-08 Wei Guozhi <carrot@google.com>
4487
4488 PR target/47855
4489 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
4490 * config/arm/arm.c (arm_attr_length_push_multi): New function.
4491 * config/arm/arm.md (*push_multi): Change the length computation to
4492 call a C function.
4493
4494 2011-04-08 Anatoly Sokolov <aesok@post.ru>
4495
4496 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
4497 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
4498 * doc/tm.texi: Regenerate.
4499 * system.h (ASM_OUTPUT_BSS): Poison.
4500 * varasm.c (asm_output_bss): Remove function.
4501 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
4502
4503 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
4504 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
4505 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
4506 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4507 Likewise.
4508 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4509 Likewise.
4510 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4511 Likewise.
4512 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4513
4514 2011-04-07 Joseph Myers <joseph@codesourcery.com>
4515
4516 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
4517 EnumValue lines.
4518
4519 2011-04-07 Joseph Myers <joseph@codesourcery.com>
4520
4521 * config/m68k/m68k.c (m68k_handle_option): Don't handle
4522 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
4523 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
4524 OPT_mcpu32.
4525 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4526 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
4527 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
4528 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
4529 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
4530 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
4531 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4532 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
4533 options. Don't map other m68k options manually. Don't handle
4534 old-style options as canonical.
4535 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4536 * doc/install.texi (m68k-*-*): Document binutils version requirement.
4537
4538 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
4539
4540 * basic-block.h (force_nonfallthru): Move to...
4541 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
4542 (force_nonfallthru): ...here.
4543 * cfghooks.c (force_nonfallthru): New function.
4544 * cfgrtl.c (force_nonfallthru): Rename into...
4545 (rtl_force_nonfallthru): ...this.
4546 (commit_one_edge_insertion): Do not set AUX field.
4547 (commit_edge_insertions): Do not discover new basic blocks.
4548 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
4549 (cfg_layout_rtl_cfg_hooks): Likewise.
4550 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
4551 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
4552 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
4553
4554 2011-04-07 Anatoly Sokolov <aesok@post.ru>
4555
4556 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4557 Remove macros.
4558
4559 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
4560
4561 * config/i386/sse.md: Update copyright year.
4562 (avxcvtvecmode): Remove.
4563 (sse_movhlps): Merge with *avx_movhlps.
4564 (sse_movlhps): Merge with *avx_movlhps.
4565 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
4566 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
4567 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
4568 (sse_loadhps): Merge with *avx_loadhps.
4569 (sse_storelps): Merge with *avx_storelps.
4570 (sse_loadlps): Merge with *avx_loadlps.
4571 (sse_movss): Merge with *avx_movss.
4572 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
4573 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
4574 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
4575 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
4576 (vec_set<mode>_0): Ditto.
4577 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
4578 (sse4_1_insertps): Merge with *avx_insertps.
4579 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
4580 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
4581 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
4582 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
4583 (sse2_storehpd): Merge with *avx_storehpd.
4584 (sse2_loadhpd): Merge with *avx_loadhpd.
4585 (sse2_loadlpd): Merge with *avx_loadlpd.
4586 (sse2_movsd): Merge with *avx_movsd.
4587 (*vec_concatv2df): Merge with *vec_concatv2df.
4588
4589 2011-04-07 Jakub Jelinek <jakub@redhat.com>
4590
4591 PR debug/48343
4592 * combine.c (combine_instructions): Add last_combined_insn,
4593 update it if insn is after it, pass it to all try_combine calls.
4594 (try_combine): Add last_combined_insn parameter, pass it instead of
4595 i3 to propagate_for_debug.
4596
4597 2011-04-07 Nick Clifton <nickc@redhat.com>
4598
4599 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
4600 to handle MDR <-> data register transfers.
4601 (movhi_internal): Likewise.
4602
4603 2011-04-07 Alan Modra <amodra@gmail.com>
4604
4605 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
4606 previous stack info.
4607
4608 2011-04-07 Tom de Vries <tom@codesourcery.com>
4609
4610 PR target/43920
4611 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
4612 flow_find_cross_jump. Swap variables to implement backward replacement.
4613 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
4614
4615 2011-04-07 Tom de Vries <tom@codesourcery.com>
4616
4617 PR target/43920
4618 * cfgcleanup.c (walk_to_nondebug_insn): New function.
4619 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
4620 and bb2.
4621 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
4622 src1 or src2. Redirect edges to the last basic block. Update
4623 frequency and count on multiple basic blocks in case of fallthru.
4624
4625 2011-04-07 Tom de Vries <tom@codesourcery.com>
4626
4627 PR target/43920
4628 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
4629 function.
4630 (old_insns_match_p): Change return type. Replace return false/true
4631 with return dir_none/dir_both. Use can_replace_by.
4632 (flow_find_cross_jump): Add dir_p parameter. Init replacement
4633 direction from dir_p. Register replacement direction in dir, last_dir
4634 and afterlast_dir. Handle new return type of old_insns_match_p using
4635 merge_dir. Return replacement direction in dir_p.
4636 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
4637 return type of old_insns_match_p.
4638 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
4639 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
4640 flow_find_cross_jump.
4641 * basic-block.h (enum replace_direction): New type.
4642 (flow_find_cross_jump): Add parameter to declaration.
4643
4644 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
4645
4646 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
4647 (AVXMODEDCVTPS2DQ): Ditto.
4648 (VEC_FLOAT_MODE): Ditto.
4649 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
4650 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4651 (<any_logic:code><mode>3): Use VF mode iterator.
4652 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
4653 Use VF mode iterator.
4654 (copysign<mode>3): Use VF mode iterator.
4655 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
4656 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4657 (*<any_logic:code><MODEF:mode>3): Merge with
4658 *avx_<any_logic:code><MODEF:mode>3.
4659 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
4660 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
4661 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
4662 (avx_cvtdq2ps<avxmodesuffix>): Remove.
4663 (sse2_cvtdq2ps): Use %v modifier.
4664 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
4665 (avx_cvtps2dq<avxmodesuffix>): Remove.
4666 (sse2_cvtps2dq): Use %v modifier.
4667 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
4668 (avx_cvttps2dq<avxmodesuffix>): Remove.
4669 (sse2_cvttps2dq): Use %v modifier.
4670 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
4671 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
4672 (sse2_cvtsd2siq): Fix insn template.
4673 (sse2_cvtsd2siq_2): Ditto.
4674 (sse2_cvttsd2siq): Ditto.
4675 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
4676 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
4677
4678 2011-04-06 Joseph Myers <joseph@codesourcery.com>
4679
4680 * gcov-io.c: Use GCC Runtime Library Exception.
4681
4682 2011-04-06 Jakub Jelinek <jakub@redhat.com>
4683
4684 PR debug/48466
4685 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
4686 as base_reg whatever register reg has been eliminated to, instead
4687 of hardcoding STACK_POINTER_REGNUM.
4688
4689 2011-04-06 Joseph Myers <joseph@codesourcery.com>
4690
4691 * doc/tm.texi.in: Document C target hooks as separate from general
4692 target hooks.
4693 * doc/tm.texi: Regenerate.
4694 * genhooks.c (struct hook_desc): Add docname field.
4695 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
4696 docname field.
4697 (hook_array): Include c-target.def.
4698 (emit_documentation): Use docname field in output.
4699 (emit_init_macros): Take docname argument. Only emit definitions
4700 for hooks matching docname.
4701 (main): Expect additional arguments in all cases. Pass argument
4702 to emit_init_macros.
4703 * target.def: Move initial macro definitions and comments to
4704 target-hooks-macros.h.
4705 (gcc_targetcm): Move to c-family/c-target.def.
4706 * target.h (targetcm): Move declaration to c-family/c-target.h.
4707 * targhooks.c (default_handle_c_option): Move to
4708 c-family/c-opts.c.
4709 * targhooks.h (default_handle_c_option): Move declaration to
4710 c-family/c-common.h.
4711 * target-hooks-macros.h: New file.
4712 * config.gcc (target_has_targetcm): Define and use to add to
4713 c_target_objs and cxx_target_objs.
4714 * config/default-c.c: New file.
4715 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
4716 of target.h and target-def.h.
4717 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
4718 (darwin_objc_construct_string, darwin_cfstring_ref_p,
4719 darwin_check_cfstring_format_arg): Make static.
4720 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4721 TARGET_STRING_OBJECT_REF_TYPE_P,
4722 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
4723 * config/darwin-protos.h (darwin_objc_construct_string,
4724 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
4725 declare.
4726 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4727 TARGET_STRING_OBJECT_REF_TYPE_P,
4728 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
4729 * config/t-darwin (darwin-c.o): Update dependencies.
4730 * system.h (TARGET_HAS_TARGETCM): Poison.
4731 * Makefile.in (TARGET_H): Update.
4732 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
4733 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
4734 (default-c.o): New target.
4735 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
4736 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
4737 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
4738 c-target.def.
4739 (build/genhooks.o): Update dependencies.
4740
4741 2011-04-06 Richard Guenther <rguenther@suse.de>
4742
4743 * ipa-inline.c (enum inlining_mode): Remove.
4744 (cgraph_flatten): Use some other token.
4745 (cgraph_edge_early_inlinable_p): New function, split out from ...
4746 (cgraph_perform_always_inlining): New function, split out from ...
4747 (cgraph_decide_inlining_incrementally): ... here.
4748 (cgraph_mark_inline_edge): Adjust.
4749 (cgraph_early_inlining): Re-structure.
4750 (pass_early_inline): Require SSA form.
4751
4752 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
4753 Julian Brown <julian@codesourcery.com>
4754 Mark Shinwell <shinwell@codesourcery.com>
4755
4756 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
4757 LO_REGS only for Thumb-1.
4758 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
4759 be used in short instructions when optimising for size on Thumb-2.
4760
4761 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4762
4763 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
4764 associated with user returns to be preserved.
4765
4766 2011-04-06 Tristan Gingold <gingold@adacore.com>
4767
4768 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
4769 symbol_queue_size, DBXOUT_DECR_NESTING,
4770 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
4771 if XCOFF_DEBUGGING_INFO.
4772
4773 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
4774
4775 * config/i386/i386.md (attribute isa): New.
4776 (attribute enabled): New.
4777 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
4778 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
4779 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
4780 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
4781 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
4782 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4783 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
4784 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
4785
4786 * config/i386/sse.md (VF): New mode iterator.
4787 (VF1): Ditto.
4788 (VF2): Ditto.
4789 (VF_128): Ditto.
4790 (SSEMODEF4): Remove.
4791 (attribute sse): Handle V8SF and V4DF modes.
4792 (<absneg:code><mode>2): Use VF mode iterator.
4793 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
4794 mode iterator.
4795 (<plusminus_insn><mode>3): Use VF mode iterator.
4796 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4797 Use VF mode iterator.
4798 (<sse>_vm<plusminus_insn><mode>3): Merge with
4799 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
4800 (mul<mode>3): Use VF mode iterator.
4801 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
4802 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
4803 mode iterator.
4804 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
4805 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
4806 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
4807 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
4808 mode iterator.
4809 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
4810 Use VF1 mode iterator.
4811 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
4812 (sqrt<VF2:mode>2): New expander.
4813 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
4814 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
4815 and sqrtv2df2. Use VF mode iterator.
4816 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
4817 mode iterator.
4818 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
4819 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
4820 Use VF1 mode iterator.
4821 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
4822 (<smaxmin:code><mode>3): Use VF mode iterator.
4823 (*<smaxmin:code><mode>3_finite): Merge with
4824 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
4825 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4826 (<sse>_vm<smaxmin:code><mode>2): Merge with
4827 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
4828 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
4829 mode iterator.
4830 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
4831 mode iterator.
4832 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
4833 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
4834 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
4835 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
4836 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
4837 VF mode iterator.
4838 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
4839 Use VF_128 mode iterator.
4840 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
4841 mode iterator.
4842 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
4843 VF_128 mode iterator.
4844 (vcond<mode>): Use VF mode iterator.
4845 * config/i386/predicates.md (sse_comparison_operator): Merge with
4846 avx_comparison_float_operator. Do not declare as special_predicate.
4847 * config/i386/i386.c (struct builtin_description): Update for renamed
4848 compare patterns.
4849 (ix86_expand_args_builtin): Ditto.
4850 (ix86_expand_sse_compare_mask): Ditto.
4851
4852 2011-04-06 Richard Guenther <rguenther@suse.de>
4853
4854 * tree-inline.c (estimate_num_insns): For calls simply account
4855 for all passed arguments and a used return value.
4856
4857 2011-04-06 Richard Guenther <rguenther@suse.de>
4858
4859 PR tree-optimization/47663
4860 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
4861 call_stmt_time fields.
4862 (cgraph_edge_inlinable_p): Declare.
4863 (cgraph_edge_recursive_p): New inline function.
4864 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
4865 (cgraph_clone_edge): Copy it.
4866 * ipa-inline.c (cgraph_estimate_edge_time): New function.
4867 Account for call stmt time.
4868 (cgraph_estimate_time_after_inlining): Take edge argument.
4869 (cgraph_estimate_edge_growth): Account call stmt size.
4870 (cgraph_estimate_size_after_inlining): Take edge argument.
4871 (cgraph_mark_inline_edge): Adjust.
4872 (cgraph_check_inline_limits): Likewise.
4873 (cgraph_recursive_inlining_p): Remove.
4874 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
4875 (cgraph_decide_recursive_inlining): Take edge argument and
4876 adjust.
4877 (cgraph_decide_inlining_of_small_functions): Do not avoid
4878 diags for recursive inlining here.
4879 (cgraph_flatten): Adjust.
4880 (cgraph_decide_inlining_incrementally): Likewise.
4881 (estimate_function_body_sizes): Remove call cost handling.
4882 (compute_inline_parameters): Initialize caller edge call costs.
4883 (cgraph_estimate_edge_growth): New function.
4884 (cgraph_estimate_growth): Use it.
4885 (cgraph_edge_badness): Likewise.
4886 (cgraph_check_inline_limits): Take an edge argument.
4887 (cgraph_decide_inlining_of_small_functions): Adjust.
4888 (cgraph_decide_inlining): Likewise.
4889 * tree-inline.c (estimate_num_insns): Only account for call
4890 return value if it is used.
4891 (expand_call_inline): Avoid diagnostics on recursive inline
4892 functions here.
4893 * lto-cgraph.c (lto_output_edge): Output edge call costs.
4894 (input_edge): Input edge call costs.
4895
4896 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4897
4898 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4899
4900 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4901
4902 * doc/invoke.texi (Spec Files): Fix typo.
4903
4904 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4905
4906 * profile.c (branch_prob): Move declaration of local variable. Remove
4907 obsolete ??? comment. Expand the location explicitly instead of using
4908 the LOCATION_FILE and LOCATION_LINE macros.
4909
4910 2011-04-06 Wei Guozhi <carrot@google.com>
4911
4912 PR target/47855
4913 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4914 (arm_cond_branch): Likewise.
4915 (arm_cond_branch_reversed): Likewise.
4916 (arm_jump): Likewise.
4917 (push_multi): Likewise.
4918 * config/arm/constraints.md (Py): New constraint.
4919
4920 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4921
4922 PR bootstrap/48471
4923 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4924 Move these...
4925 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4926 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4927 #ifdef DBX_DEBUGGING_INFO.
4928
4929 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
4930
4931 PR bootstrap/48403
4932 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4933 if old and new states differ.
4934
4935 2011-04-05 Joseph Myers <joseph@codesourcery.com>
4936
4937 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4938 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4939 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4940 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4941 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4942 mcfv4e): Use Alias.
4943 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4944 ColdFire options to -mcpu= options.
4945
4946 2011-04-05 Jeff Law <law@redhat.com>
4947
4948 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4949 check if BB is a successor of LOOP->header and return
4950 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4951
4952 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4953
4954 * cprop.c (struct reg_use): Remove.
4955 (reg_use_table): Make an array of RTX.
4956 (find_used_regs, constprop_register, local_cprop_pass,
4957 bypass_block): Simplify users of reg_use_table.
4958 (cprop_insn): Likewise. Iterate if copy propagation succeeded
4959 on one of the uses found by find_used_regs.
4960
4961 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4962
4963 PR bootstrap/48469
4964 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
4965 declaration.
4966
4967 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4968
4969 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
4970 as an rtx.
4971 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
4972
4973 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4974
4975 PR middle-end/48441
4976 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
4977
4978 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4979
4980 * combine.c: Include obstack.h.
4981 (struct insn_link): Define.
4982 (uid_log_links): Adjust type.
4983 (FOR_EACH_LOG_LINK): New macro.
4984 (insn_link_obstack): Declare.
4985 (alloc_insn_link): Define.
4986 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
4987 type of link variables.
4988 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
4989 (try_combine, record_promoted_values, distribute_notes): Likewise.
4990 (distribute_links): Likewise. Tweak prototype.
4991 (clear_log_links): Delete.
4992 (adjust_for_new_dest): Call alloc_insn_link.
4993 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
4994
4995 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4996
4997 * gcse.c (modify_mem_list): Convert to an array of VECs.
4998 (canon_modify_mem_list, compute_transp): Tweak formatting.
4999 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
5000 (load_killed_in_block_p): Likewise.
5001 (record_last_mem_set_info): Likewise.
5002 (clear_modify_mem_tables): Likewise.
5003
5004 2011-04-05 Tom de Vries <tom@codesourcery.com>
5005
5006 PR middle-end/48461
5007 * function.c (emit_use_return_register_into_block): Only define if
5008 HAVE_return.
5009
5010 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
5011
5012 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
5013
5014 2011-04-05 Joseph Myers <joseph@codesourcery.com>
5015
5016 * config/rx/rx-opts.h: New.
5017 * config/rx/rx.c (rx_cpu_type): Remove.
5018 (rx_handle_option): Don't assert that global structures are in
5019 use. Access variables via opts pointer. Defer most handling of
5020 OPT_mint_register_. Use error_at.
5021 (rx_option_override): Handle deferred OPT_mint_register_ here.
5022 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
5023 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
5024 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
5025 (rx_cpu_types): New Enum and EnumValue entries.
5026 (mint-register=): Use Defer and use Var accordingly.
5027
5028 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5029
5030 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
5031 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
5032 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
5033 Move these...
5034 (debug_free_queue, debug_nesting, symbol_queue_index):
5035 ...and these...
5036 * dbxout.c: ...to here. Make static.
5037
5038 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5039
5040 * gcse.c (modify_pair): Define. Define a VEC of it.
5041 (canon_modify_mem_list): Convert to an array of VECs.
5042 (free_insn_expr_list_list): Delete.
5043 (clear_modify_mem_tables): Call VEC_free instead.
5044 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
5045 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
5046 (canon_list_insert, compute_transp): Likewise.
5047
5048 2011-04-05 Tom de Vries <tom@codesourcery.com>
5049
5050 PR target/43920
5051 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
5052 for size.
5053
5054 2011-04-05 Tom de Vries <tom@codesourcery.com>
5055
5056 PR target/43920
5057 * function.c (emit_use_return_register_into_block): New function.
5058 (thread_prologue_and_epilogue_insns): Use
5059 emit_use_return_register_into_block.
5060
5061 2011-04-05 Tom de Vries <tom@codesourcery.com>
5062
5063 PR target/43920
5064 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
5065 insn.
5066
5067 2011-04-05 Tom de Vries <tom@codesourcery.com>
5068
5069 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
5070
5071 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
5072
5073 * config/arm/arm.md (define_constants for unspec): Replace with
5074 define_c_enum.
5075 (define_constants for unspecv): Replace with define_c_enum.
5076 * config/arm/neon.md (define_constants for unspec): Replace with
5077 define_c_enum.
5078
5079 2011-04-04 Richard Henderson <rth@redhat.com>
5080
5081 PR bootstrap/48400
5082 * dwarf2out.c (output_line_info): Always emit line info from
5083 at least one section.
5084 (dwarf2out_init): Create text_section_line_info here ...
5085 (set_cur_line_info_table): ... not here.
5086
5087 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
5088
5089 PR target/48380
5090 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
5091 not called.
5092
5093 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
5094
5095 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
5096
5097 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
5098 (expr_equiv_p): Remove.
5099 (insert_set_in_table): Look at <dest, src> pair instead of expr.
5100 (hash_scan_set): Update call to insert_set_in_table.
5101 (dump_hash_table): Dump <dest, src> pair.
5102 (lookup_set): Simplify. Lookup <dest, src> pair.
5103 (compute_transp): Remove, fold heavily simplified code into...
5104 (compute_local_properties): ...here. Expect COMP and TRANSP
5105 unconditionally.
5106 (find_avail_set): Take set directly from struct expr.
5107 (find_bypass-set): Likewise.
5108 (bypass_block): Likewise.
5109 (cprop_insn): Likewise. Remove redundant INSN_P test.
5110
5111 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
5112 checks on form of COND from find_implicit_sets to here.
5113 (find_implicit_sets): Cleanup control flow. Split critical edges
5114 if it exposes implicit sets. Allocate/resize implicit_sets as
5115 necessary.
5116 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
5117 changed something. Run df_analyze after find_implicit_sets if any
5118 edges were split. Do not allocate implicit_sets here.
5119
5120 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
5121 (gcse_obstack): Renamed to cprop_obstack.
5122 (GNEW, GNEWVEC, GNEWVAR): Remove.
5123 (gmalloc): Remove.
5124 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
5125 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
5126 (gcse_alloc): Likewise, and rename to cprop_alloc.
5127 (alloc_gcse_men, free_gcse_mem): Remove.
5128 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
5129 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
5130 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
5131
5132 * cprop.c (oprs_not_set_p): Remove.
5133 (mark_set, mark_clobber): Remove.
5134 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
5135 (reg_not_set_p): New function.
5136 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
5137 (cprop_insn): Likewise.
5138 (cprop_jump): Use FOR_EACH_EDGE.
5139
5140 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
5141
5142 PR bootstrap/48403
5143 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
5144 (rank_for_schedule): Use scheduled_insns vector instead of
5145 last_scheduled_insn.
5146 (ok_for_early_queue_removal): Likewise.
5147 (queue_to_ready): Search forward in nonscheduled_insns_begin if
5148 we have a dbg_cnt.
5149 (choose_ready): Likewise.
5150 (commit_schedule): Use VEC_iterate.
5151 (schedule_block): Initialize nonscheduled_insns_begin. If we have
5152 a dbg_cnt, use it and ensure the first insn is in the ready list.
5153 (haifa_sched_init): Allocate scheduled_insns.
5154 (sched_extend_ready_list): Don't allocate it; reserve space.
5155 (haifa_sched_finish): Free it.
5156
5157 2011-04-04 Joseph Myers <joseph@codesourcery.com>
5158
5159 * optc-gen.awk: Always remove type from Variable entry before
5160 recording in var_seen.
5161
5162 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
5163
5164 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
5165 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
5166 call to tidy_fallthru_edges.
5167
5168 2011-04-04 Joseph Myers <joseph@codesourcery.com>
5169
5170 * doc/options.texi (ToLower): Document.
5171 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
5172 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
5173 * opts.h (cl_option): Add cl_tolower field.
5174 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
5175 arguments with lowercase strings.
5176 * config/rx/rx.opt (mcpu=): Add ToLower.
5177 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
5178 argument.
5179
5180 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
5181
5182 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
5183
5184 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
5185
5186 * config/vax/vax.c: Include reload.h.
5187
5188 2011-04-04 Anatoly Sokolov <aesok@post.ru>
5189
5190 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
5191 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5192 (sparc_preferred_reload_class): New function.
5193
5194 2011-04-04 Jakub Jelinek <jakub@redhat.com>
5195
5196 PR debug/48401
5197 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5198 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
5199
5200 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
5201
5202 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
5203 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
5204
5205 2011-04-03 Anatoly Sokolov <aesok@post.ru>
5206
5207 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
5208 (ASM_OUTPUT_ALIGNED_BSS): Define.
5209
5210 2011-04-03 Michael Matz <matz@suse.de>
5211
5212 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
5213 and next_slot members.
5214 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
5215 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
5216 (lto_streamer_cache_append): Declare.
5217 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
5218 unsigned index, remove offset parameter, ensure that we append
5219 or update existing entries.
5220 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
5221 parameter, update next_slot for append.
5222 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
5223 parameter.
5224 (lto_streamer_cache_insert_at): Likewise.
5225 (lto_streamer_cache_append): New function.
5226 (lto_streamer_cache_lookup): Use unsigned index.
5227 (lto_streamer_cache_get): Likewise.
5228 (lto_record_common_node): Don't test tree_node_can_be_shared.
5229 (preload_common_node): Adjust call to lto_streamer_cache_insert.
5230 (lto_streamer_cache_delete): Don't free offsets member.
5231 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
5232 (lto_output_string_with_length): Use lto_output_data_stream.
5233 (lto_output_tree_header): Remove ix parameter, don't write it.
5234 (lto_output_builtin_tree): Likewise.
5235 (lto_write_tree): Adjust callers to above, don't track and write
5236 offset, write unsigned index.
5237 (output_unreferenced_globals): Don't emit all global vars.
5238 (write_global_references): Use unsigned indices.
5239 (lto_output_decl_state_refs): Likewise.
5240 (write_symbol): Likewise.
5241 * lto-streamer-in.c (lto_input_chain): Move earlier.
5242 (input_function): Use unsigned index.
5243 (input_alias_pairs): Don't read and then ignore all global vars.
5244 (lto_materialize_tree): Remove ix_p parameter, don't read index,
5245 don't pass it back, use lto_streamer_cache_append.
5246 (lto_register_var_decl_in_symtab): Use unsigned index.
5247 (lto_register_function_decl_in_symtab): Likewise.
5248 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
5249 index.
5250 (lto_get_builtin_tree): Don't read index, use
5251 lto_streamer_cache_append.
5252 (lto_read_tree): Adjust call to lto_materialize_tree.
5253
5254 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
5255 don't use function calls in arguments to MIN.
5256
5257 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
5258 twice.
5259
5260 * gimple.c (gimple_type_leader_entry): Mark deletable.
5261
5262 2011-04-03 Alan Modra <amodra@gmail.com>
5263
5264 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
5265
5266 2011-04-03 Michael Matz <matz@suse.de>
5267
5268 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
5269 an integer.
5270 * tree.h (tree_decl_non_common.vindex): Adjust comment.
5271
5272 2011-04-03 Michael Matz <matz@suse.de>
5273
5274 * cgraphbuild.c (record_reference): Canonicalize constructor values.
5275 * gimple-fold.c (canonicalize_constructor_val): Accept being called
5276 without function context.
5277 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
5278 current_function_decl and cfun.
5279
5280 2011-04-03 Michael Matz <matz@suse.de>
5281
5282 * tree.c (decl_init_priority_insert): Don't create entry for
5283 default priority.
5284 (decl_fini_priority_insert): Ditto.
5285 (fields_compatible_p, find_compatible_field): Remove.
5286 * tree.h (fields_compatible_p, find_compatible_field): Remove.
5287 * gimple.c (gimple_compare_field_offset): Adjust block comment.
5288
5289 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
5290
5291 * combine.c (try_combine): Remove useless local variable.
5292
5293 2011-04-03 Richard Guenther <rguenther@suse.de>
5294 Ira Rosen <ira.rosen@linaro.org>
5295
5296 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
5297 non-variable offsets and compare the remaining bases of the two
5298 accesses instead of looking for exact same data-ref.
5299
5300 2011-04-02 Kai Tietz <ktietz@redhat.com>
5301
5302 PR target/48416
5303 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
5304
5305 * i386.c (ix86_is_msabi_thiscall): New helper function.
5306 (ix86_is_type_thiscall): New helper function.
5307 (ix86_comp_type_attributes): Handle thiscall for method-functions
5308 special.
5309 (init_cumulative_args): Likewise.
5310 (find_drap_reg): Likewise.
5311 (ix86_static_chain): Likewise.
5312 (x86_this_parameter): Likewise.
5313 (x86_output_mi_thunk): Likewise.
5314
5315 2011-04-01 Olivier Hainque <hainque@adacore.com>
5316 Nicolas Setton <setton@adacore.com>
5317 Eric Botcazou <ebotcazou@adacore.com>
5318
5319 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
5320 (add_gnat_descriptive_type_attribute): New function.
5321 (gen_array_type_die): Call it.
5322 (gen_enumeration_type_die): Likewise.
5323 (gen_struct_or_union_type_die): Likewise.
5324 (modified_type_die): Likewise.
5325 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
5326 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
5327 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
5328
5329 2011-04-01 Jakub Jelinek <jakub@redhat.com>
5330
5331 PR bootstrap/48148
5332 * dwarf2out.c (resolve_addr): Don't call force_decl_die
5333 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
5334
5335 Revert:
5336 2011-03-17 Richard Guenther <rguenther@suse.de>
5337
5338 PR bootstrap/48148
5339 * lto-cgraph.c (input_overwrite_node): Clear the abstract
5340 origin for decls in other ltrans units.
5341 (input_varpool_node): Likewise.
5342
5343 2011-04-01 Jakub Jelinek <jakub@redhat.com>
5344
5345 PR middle-end/48335
5346 * expr.c (expand_assignment): Handle all possibilities
5347 if TO_RTX is CONCAT.
5348 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
5349 (store_split_bit_field): If SUBREG_REG (op0) or
5350 op0 itself has smaller mode than word, return it
5351 for offset 0 and const0_rtx for out-of-bounds stores.
5352 If word is const0_rtx, skip it.
5353
5354 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
5355
5356 * config/h8300/h8300.c (print_operand_address): Rename to...
5357 (h8300_print_operand_address): ...this. Make static. Adjust comments.
5358 Call h8300_print_operand and h8300_print_operand_address instead of
5359 print_operand and print_operand_address. Declare.
5360 (print_operand): Renake to...
5361 (h8300_print_operand): ...this. Make static. Adjust comments.
5362 Call h8300_print_operand instead of print_operand. Declare.
5363 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
5364 (h8300_register_move_cost): Likewise.
5365 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
5366 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
5367 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
5368 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
5369 * config/h8300/h8300-protos.h (print_operand): Delete.
5370 (print_operand_address): Delete.
5371
5372 2011-04-01 Richard Henderson <rth@redhat.com>
5373
5374 PR 48400
5375 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
5376 in strict mode before dwarf4. Re-order tests to early out
5377 before switching sections.
5378
5379 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
5380
5381 * config/h8300/constraints.md: New file.
5382 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
5383 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
5384 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
5385 * config/h8300/predicates.md (bit_operand): Likewise.
5386 (incdec_operand): Use satisfies_constraint_M and
5387 satisfies_constraint_O. Don't use C code block.
5388 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
5389 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
5390 (compute_mov_length): Use satisfies_constraint_G.
5391 (fix_bit_operand): Use satisfies_constraint_U.
5392 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
5393 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
5394 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
5395 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
5396 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
5397 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
5398 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5399 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
5400 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
5401 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
5402 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
5403 (EXTRA_MEMORY_CONSTRAINT): Delete.
5404
5405 2011-04-01 Andrew Pinski <pinskia@gmail.com>
5406 Michael Meissner <meissner@linux.vnet.ibm.com>
5407
5408 PR target/48262
5409 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
5410 operands, as per the specifications.
5411
5412 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
5413 (vec_extract_evenv4sf): Ditto.
5414 (vec_extract_evenv8hi): Ditto.
5415 (vec_extract_evenv16qi): Ditto.
5416 (vec_extract_oddv4si): Ditto.
5417
5418 2011-03-31 Mark Wielaard <mjw@redhat.com>
5419
5420 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
5421 high_pc attribute if the CU has no associated code. Only output
5422 DW_AT_entry_pc for CU if not generating strict dwarf and
5423 dwarf_version < 4.
5424
5425 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
5426
5427 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
5428 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
5429 out of ...
5430 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
5431 * final.c (final_start_function): Call the new function rather
5432 than using a NULL argument for dwarf2out_frame_debug.
5433
5434 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
5435 that contains the prologue.
5436
5437 * haifa-sched.c (queue_insn): New arg REASON. All callers
5438 changed. Print it in debugging output.
5439
5440 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
5441
5442 * sched-ebb.c (begin_schedule_ready): Remove second argument.
5443 Split most of the code into...
5444 (begin_move_insn): ... here. New function.
5445 (ebb_sched_info): Add a pointer to it.
5446 * haifa-sched.c (scheduled_insns): New static variable.
5447 (sched_extend_ready_list): Allocate it.
5448 (schedule_block): Use it to record the order of scheduled insns.
5449 Perform RTL changes to move insns only after all scheduling
5450 decisions have been made.
5451 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
5452 begin_move_insn field.
5453 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5454 * sched-int.h (struct haifa_sched_info): Remove second argument
5455 from begin_schedule_ready hook. Add new member begin_move_insn.
5456 * sched-rgn.c (begin_schedule_ready): Remove second argument.
5457 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
5458
5459 * haifa-sched.c (prune_ready_list): New function, broken out of
5460 schedule_block.
5461 (schedule_block): Use it.
5462
5463 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5464
5465 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
5466
5467 2011-04-01 Kai Tietz <ktietz@redhat.com>
5468
5469 * config.gcc (*-*-mingw*): Allow as option the
5470 posix threading model.
5471 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
5472 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
5473 definition.
5474 (CPP_SPEC): Add pthread/no-pthread handling.
5475 (LIB_SPEC): Likewise.
5476 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
5477 (LIB_SPEC): Likewise.
5478 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
5479 flag to pass -pthread option for shared libgcc build.
5480 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
5481 for shared libgcc build.
5482 * config/i386/t-mingw-pthread: New file.
5483 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
5484 New define to enable use of library pthread by default.
5485 * config/i386/mingw.opt (pthread): New driver option.
5486 (no-pthread): New driver option.
5487 * config/i386/cygming.opt: Make sure trailing empty line is retained.
5488 * config/i386/mingw-w64.opt: Likewise.
5489
5490 2011-04-01 Gary Funck <gary@intrepid.com>
5491
5492 * c-decl.c (grokdeclarator): Fix formatting.
5493
5494 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5495
5496 * expr.c (emit_block_move_via_movmem): Use n_generator_args
5497 instead of n_operands.
5498 (set_storage_via_setmem): Likewise.
5499 * optabs.c (maybe_gen_insn): Likewise.
5500 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
5501 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
5502 (mips_expand_builtin_direct): Likewise.
5503 * config/spu/spu.c (expand_builtin_args): Likewise.
5504
5505 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5506
5507 * recog.h (insn_data_d): Add n_generator_args.
5508 * genoutput.c (data): Likewise.
5509 (output_insn_data): Print it.
5510 (max_opno, num_dups): Delete.
5511 (scan_operands): Just fill in "d->operand[...]".
5512 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
5513
5514 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5515
5516 * gensupport.h (pattern_stats): New structure.
5517 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
5518 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
5519 (max_operand_1, max_operand_vec): Delete.
5520 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
5521
5522 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
5523
5524 * emit-rtl.c (emit_pattern_after_setloc): New function.
5525 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
5526 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
5527 (emit_pattern_after): New function.
5528 (emit_insn_after, emit_jump_insn_after): Call it.
5529 (emit_call_insn_after, emit_debug_insn_after): Likewise.
5530 (emit_pattern_before_setloc): New function.
5531 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
5532 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
5533 Likewise.
5534 (emit_pattern_before): New function.
5535 (emit_insn_before, emit_jump_insn_before): Call it.
5536 (emit_call_insn_before, emit_debug_insn_before): Likewise.
5537
5538 2011-03-31 Richard Henderson <rth@redhat.com>
5539
5540 * dwarf2out.c (dw_separate_line_info_ref): Remove.
5541 (dw_separate_line_info_entry): Remove.
5542 (enum dw_line_info_opcode): New.
5543 (dw_line_info_entry): Use it.
5544 (dw_line_info_table, dw_line_info_table_p): New.
5545 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
5546 (line_info_table, line_info_label_num): Remove.
5547 (line_info_table_in_use): Remove.
5548 (separate_line_info_table): Remove.
5549 (separate_line_info_table_allocated): Remove.
5550 (separate_line_info_table_in_use): Remove.
5551 (LINE_INFO_TABLE_INCREMENT): Remove.
5552 (line_info_label_num): New.
5553 (cur_line_info_table): New.
5554 (text_section_line_info, cold_text_section_line_info): New.
5555 (separate_line_info): New.
5556 (SEPARATE_LINE_CODE_LABEL): Remove.
5557 (print_dwarf_line_table): Remove.
5558 (debug_dwarf): Don't dump it.
5559 (output_one_line_info_table): New.
5560 (output_line_info): Use it.
5561 (new_line_info_table): New.
5562 (set_cur_line_info_table): New.
5563 (dwarf2out_switch_text_section): Use it.
5564 (dwarf2out_begin_function): Likewise.
5565 (push_dw_line_info_entry): New.
5566 (dwarf2out_source_line): Rewrite for new line info tables.
5567 (dwarf2out_init): Remove dead initailizations.
5568
5569 2011-03-31 Joseph Myers <joseph@codesourcery.com>
5570
5571 * opts.h (cl_option): Add comments to fields. Add bit-fields for
5572 various flags.
5573 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
5574 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
5575 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
5576 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
5577 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
5578 * opt-functions.awk (flag_init, switch_bit_fields): New.
5579 (switch_flags): Don't handle flags moved to bit-fields. Don't
5580 generate CL_MISSING_OK or CL_SAVE.
5581 * optc-gen.awk: Update to generate bit-field output as well as
5582 flags field.
5583 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
5584 bit-field instead of CL_REJECT_DRIVER flag.
5585 * opts-common.c (generate_canonical_option,
5586 decode_cmdline_option): Use bit-fields instead of CL_* flags.
5587 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
5588 instead of CL_REJECT_NEGATIVE flag.
5589 * toplev.c (print_switch_values): Use cl_report bit-field instead
5590 of CL_REPORT flag.
5591
5592 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5593
5594 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
5595 a zero minimum index only if it is redundant.
5596
5597 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
5598
5599 PR rtl-optimization/48381
5600 * ira-color.c (assign_hard_reg): Use hard reg set intersection
5601 instead of ira_class_hard_reg_index for calculating conflicting
5602 hard registers.
5603
5604 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
5605
5606 * cprop.c: Clean up hash table building.
5607 (reg_avail_info): Remove.
5608 (oprs_available_p): Remove.
5609 (record_last_reg_set_info): Remove.
5610 (record_last_set_info): Remove.
5611 (reg_available_p): New function.
5612 (gcse_constant_p): Do not treat unfolded conditions as constants.
5613 (make_set_regs_unavailable): New function.
5614 (hash_scan_set): Simplify with new reg_available_p.
5615 (compute_hash_table_work): Traverse insns stream only once.
5616 Do not compute reg_avail_info. Traverse insns in reverse order.
5617 Record implicit sets after recording explicit sets from the block.
5618
5619 2011-03-31 Michael Matz <matz@suse.de>
5620
5621 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
5622
5623 2011-03-31 Anatoly Sokolov <aesok@post.ru>
5624
5625 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
5626 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
5627 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5628 (h8300_mode_dependent_address_p): New function.
5629 (h8300_get_index): Make static.
5630
5631 2011-03-31 Jeff Law <law@redhat.com>
5632
5633 * reload1.c (elimination_effects): Fix typo in recent change.
5634
5635 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
5636 typo potentially leading to null pointer dereference.
5637
5638 * caller-save.c (new_saved_hard_reg): Eliminate return value.
5639 (setup_save_areas): Corresponding changes to avoid useless
5640 assignments.
5641
5642 * jump.c (reversed_comparison_code_parts): Avoid successive return
5643 statements when REVERSE_CONDITION is defined.
5644
5645 * expr.c (expand_assignment): Avoid useless assignments.
5646 (expand_expr_real_1): Likewise.
5647 (expand_expr_real_2): Avoid useless statements.
5648
5649 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
5650
5651 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5652
5653 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
5654 statements.
5655
5656 * stmt.c (expand_expr_stmt): Avoid useless assignment.
5657
5658 2011-03-31 Joseph Myers <joseph@codesourcery.com>
5659
5660 PR target/47109
5661 * doc/tm.texi.in (TARGET_VERSION): Remove.
5662 * doc/tm.texi: Regenerate.
5663 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
5664 * collect2.c (main): Don't use TARGET_VERSION.
5665 * mips-tdump.c (main): Don't use TARGET_VERSION.
5666 * mips-tfile.c (main): Don't use TARGET_VERSION.
5667 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
5668 * config/rs6000/vxworksae.h: Remove.
5669 * config/alpha/alpha.h (TARGET_VERSION): Remove.
5670 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
5671 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
5672 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
5673 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5674 * config/arm/arm.h (TARGET_VERSION): Remove.
5675 * config/arm/coff.h (TARGET_VERSION): Remove.
5676 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
5677 * config/arm/elf.h (TARGET_VERSION): Remove.
5678 * config/arm/freebsd.h (TARGET_VERSION): Remove.
5679 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
5680 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
5681 * config/arm/pe.h (TARGET_VERSION): Remove.
5682 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
5683 * config/arm/semi.h (TARGET_VERSION): Remove.
5684 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
5685 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
5686 * config/arm/vxworks.h (TARGET_VERSION): Remove.
5687 * config/avr/avr.h (TARGET_VERSION): Remove.
5688 * config/bfin/bfin.h (TARGET_VERSION): Remove.
5689 * config/fr30/fr30.h (TARGET_VERSION): Remove.
5690 * config/frv/frv.h (TARGET_VERSION): Remove.
5691 * config/h8300/h8300.h (TARGET_VERSION): Remove.
5692 * config/i386/cygwin.h (TARGET_VERSION): Remove.
5693 * config/i386/darwin.h (TARGET_VERSION): Remove.
5694 * config/i386/darwin64.h (TARGET_VERSION): Remove.
5695 * config/i386/djgpp.h (TARGET_VERSION): Remove.
5696 * config/i386/freebsd.h (TARGET_VERSION): Remove.
5697 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
5698 * config/i386/gnu.h (TARGET_VERSION): Remove.
5699 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
5700 * config/i386/i386elf.h (TARGET_VERSION): Remove.
5701 * config/i386/linux.h (TARGET_VERSION): Remove.
5702 * config/i386/linux64.h (TARGET_VERSION): Remove.
5703 * config/i386/lynx.h (TARGET_VERSION): Remove.
5704 * config/i386/mingw32.h (TARGET_VERSION): Remove.
5705 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
5706 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
5707 * config/i386/netware.h (TARGET_VERSION): Remove.
5708 * config/i386/nto.h (TARGET_VERSION): Remove.
5709 * config/i386/openbsd.h (TARGET_VERSION): Remove.
5710 * config/i386/vxworks.h (TARGET_VERSION): Remove.
5711 * config/ia64/elf.h (TARGET_VERSION): Remove.
5712 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
5713 * config/ia64/hpux.h (TARGET_VERSION): Remove.
5714 * config/ia64/linux.h (TARGET_VERSION): Remove.
5715 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5716 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
5717 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5718 * config/lm32/lm32.h (TARGET_VERSION): Remove.
5719 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
5720 * config/m32c/m32c.h (TARGET_VERSION): Remove.
5721 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
5722 * config/m32r/m32r.h (TARGET_VERSION): Remove.
5723 * config/m68k/linux.h (TARGET_VERSION): Remove.
5724 * config/m68k/m68k.h (TARGET_VERSION): Remove.
5725 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
5726 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
5727 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
5728 * config/mep/mep.h (TARGET_VERSION): Remove.
5729 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
5730 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5731 * config/mips/iris6.h (MACHINE_TYPE): Remove.
5732 * config/mips/linux.h (TARGET_VERSION): Remove.
5733 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
5734 * config/mips/vxworks.h (TARGET_VERSION): Remove.
5735 * config/mmix/mmix.h (TARGET_VERSION): Remove.
5736 * config/mn10300/linux.h (TARGET_VERSION): Remove.
5737 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
5738 * config/pa/pa.h (TARGET_VERSION): Remove.
5739 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
5740 * config/picochip/picochip.h (TARGET_VERSION): Remove.
5741 * config/rs6000/aix.h (TARGET_VERSION): Remove.
5742 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
5743 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
5744 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
5745 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
5746 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
5747 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
5748 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
5749 * config/rs6000/linux.h (TARGET_VERSION): Remove.
5750 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
5751 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
5752 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
5753 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
5754 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
5755 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
5756 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
5757 * config/s390/linux.h (TARGET_VERSION): Remove.
5758 * config/s390/s390.h (TARGET_VERSION): Remove.
5759 * config/s390/tpf.h (TARGET_VERSION): Remove.
5760 * config/score/score.h (TARGET_VERSION): Remove.
5761 * config/sh/linux.h (TARGET_VERSION): Remove.
5762 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
5763 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
5764 * config/sh/sh.h (TARGET_VERSION): Remove.
5765 * config/sh/sh64.h (TARGET_VERSION): Remove.
5766 * config/sh/superh.h (TARGET_VERSION): Remove.
5767 * config/sh/vxworks.h (TARGET_VERSION): Remove.
5768 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
5769 * config/sparc/linux.h (TARGET_VERSION): Remove.
5770 * config/sparc/linux64.h (TARGET_VERSION): Remove.
5771 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
5772 TARGET_NAME32, TARGET_NAME): Remove.
5773 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
5774 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
5775 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
5776 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
5777 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
5778 * config/spu/spu.h (TARGET_VERSION): Remove.
5779 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
5780 * config/v850/v850.h (TARGET_VERSION): Remove.
5781 * config/vax/linux.h (TARGET_VERSION): Remove.
5782 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
5783 * config/xtensa/elf.h (TARGET_VERSION): Remove.
5784 * config/xtensa/linux.h (TARGET_VERSION): Remove.
5785
5786 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5787
5788 PR target/48142
5789 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
5790 frame-related from frame-unrelated adjustments to the stack pointer.
5791
5792 2011-03-31 Jakub Jelinek <jakub@redhat.com>
5793
5794 * common.opt (fdebug-types-section): Move earlier.
5795 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
5796
5797 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
5798
5799 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
5800 var.
5801
5802 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
5803
5804 * tree.h (CASE_CHAIN): Define.
5805 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
5806 (gimple_redirect_edge_and_branch): Likewise.
5807
5808 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5809
5810 PR middle-end/48367
5811 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
5812 calculation.
5813
5814 2011-03-30 Jeff Law <law@redhat.com>
5815
5816 * PR bootstrap/48371
5817 * reload1.c (reload): Fix botch in last change.
5818
5819 * reload.h (struct reload): Fix typo introduced in last change.
5820
5821 2011-03-30 Joseph Myers <joseph@codesourcery.com>
5822
5823 * config/arm/arm.opt (mhard-float, msoft-float): Mark
5824 Undocumented. Remove help text.
5825 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
5826 -mhard-float.
5827
5828 2011-03-30 Joseph Myers <joseph@codesourcery.com>
5829
5830 * doc/options.texi (NegativeAlias): Document.
5831 (Alias): Mention NegativeAlias.
5832 * opt-functions.awk: Handle NegativeAlias.
5833 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
5834 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
5835 * opts.h (CL_NEGATIVE_ALIAS): Define.
5836 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
5837 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
5838 OPT_mspe_.
5839 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
5840 Alias entries.
5841 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5842 mno-spe and mno-isel instead of mspe=no and -misel=no.
5843
5844 2011-03-29 Mark Wielaard <mjw@redhat.com>
5845
5846 * common.opt (fdebug-types-section): New flag.
5847 * doc/invoke.texi: Document new -fno-debug-types-section flag.
5848 * dwarf2out.c (use_debug_types): New define.
5849 (struct die_struct): Mark die_id with GTY desc use_debug_types.
5850 (print_die): Guard output of type unit signatures using
5851 use_debug_types.
5852 (build_abbrev_table): Replace assert of dwarf_version >= 4
5853 with assert on use_debug_types.
5854 (size_of_die): Likewise.
5855 (unmark_dies): Likewise.
5856 (value_format): Decide AT_ref_external form on use_debug_types.
5857 (output_die): Replace dwarf_version version check guard with
5858 use_debug_types where appropriate.
5859 (modified_type_die): Likewise.
5860 (gen_reference_type_die): Likewise.
5861 (dwarf2out_start_source_file): Likewise.
5862 (dwarf2out_end_source_file): Likewise.
5863 (prune_unused_types_walk_attribs): Likewise.
5864 (dwarf2out_finish): Likewise.
5865
5866 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5867
5868 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
5869
5870 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5871
5872 PR rtl-optimization/48332
5873 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
5874 mode of input operand N and modeN to its actual mode.
5875
5876 2011-03-30 Jeff Law <law@redhat.com>
5877
5878 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
5879 define accessor macro.
5880 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
5881 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
5882 (reg_equiv_init): Likewise.
5883 (reg_equivs_size): New variable.
5884 (reg_equiv_init_size): Remove.
5885 (allocate_initial_values): Move prototype to here from....
5886 * integrate.h (allocate_initial_values): Remove prototype.
5887 * integrate.c: Include reload.h.
5888 (allocate_initial_values): Corresponding changes.
5889 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
5890 (fix_reg_equiv_init, no_equiv): Corresponding changes.
5891 (update_equiv_regs): Corresponding changes.
5892 (ira): Corresponding changes.
5893 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5894 (push_secondary_reload): Corresponding changes.
5895 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5896 (make_memloc, find_reloads_address): Corresponding changes.
5897 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5898 (find_reloads_address_1): Corresponding changes.
5899 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5900 (refers_to_regno_for_reload_p): Corresponding changes.
5901 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5902 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5903 * reload1.c: Include ggc.h.
5904 (grow_reg_equivs): New function.
5905 (replace_pseudos_in, reload): Corresponding changes.
5906 (calculate_needs_all_insns, alter_regs): Corresponding changes.
5907 (eliminate_regs_1, elimination_effects): Corresponding changes.
5908 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5909 (delete_output_reload): Likewise.
5910 * caller-save.c (mark_referenced_regs): Corresponding changes.
5911 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5912 * frv/predicates.md (frv_load_operand): Corresponding changes.
5913 * microblaze/microblaze.c (double_memory_operand): Corresponding
5914 changes.
5915 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5916 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
5917 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
5918 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5919 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5920 changes.
5921 * pa/pa.c (emit_move_sequence): Corresponding changes.
5922 * vax/vax.c (nonindexed_address_p): Corresponding changes.
5923
5924 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5925
5926 PR target/47551
5927 * config/arm/arm.c (coproc_secondary_reload_class): Handle
5928 structure modes. Don't check neon_vector_mem_operand for
5929 vector or structure modes.
5930
5931 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5932 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5933
5934 PR target/43590
5935 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5936 operand 1 and reshuffle the operands to match.
5937 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5938
5939 2011-03-30 Christian Schüler <cschueler@gmx.de>
5940
5941 PR driver/48208
5942 * config/c.opt (F): Added 'Driver' to -F option.
5943
5944 PR driver/48260
5945 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5946 handler function.
5947 * config/darwin.opt: Added '-arch' option.
5948
5949 2011-03-30 Nick Clifton <nickc@redhat.com>
5950
5951 * config/rx/rx.md: Add peepholes and patterns to combine
5952 extending loads and simple arithmetic instructions.
5953 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
5954 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5955 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
5956 modes to use pre-decrement and post-increment addressing.
5957 (rx_is_restricted_memory_address): Add range checking of REG+INT
5958 addresses.
5959 (rx_print_operand): Add support for %Q. Fix handling of %Q.
5960 (rx_memory_move_cost): Adjust cost of stores.
5961 (rx_adjust_insn_length): New function.
5962
5963 2011-03-30 Jakub Jelinek <jakub@redhat.com>
5964
5965 PR c/48305
5966 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5967 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
5968 matching arg00/arg01 types.
5969
5970 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
5971
5972 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
5973 last_location to UNKNOWN_LOCATION.
5974
5975 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
5976
5977 PR target/48349
5978 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
5979 FLOAT_SSE_REGS.
5980
5981 2011-03-30 Joseph Myers <joseph@codesourcery.com>
5982 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5983
5984 PR bootstrap/48337
5985 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
5986 Init(PROCESSOR_V7).
5987 (sparc_cpu): Likewise.
5988 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
5989 PROCESSOR_V7.
5990
5991 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5992
5993 PR target/48336
5994 PR middle-end/48342
5995 PR rtl-optimization/48345
5996 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
5997 hard regs for given mode from profitable regs when doing secondary
5998 allocation.
5999
6000 2011-03-29 Jeff Law <law@redhat.com>
6001
6002 PR bootstrap/48327
6003 * tree-ssa-threadupdate.c (struct redirection_data): Remove
6004 do_not_duplicate field.
6005 (lookup_redirection_data): Corresponding changes.
6006 (create_duplicates): Always create a template block.
6007 (redirect_edges): Remove code which reused the original block
6008 when it was going to become unreachable code.
6009 (thread_block): Don't set do_not_duplicate field.
6010
6011 2011-03-29 Joseph Myers <joseph@codesourcery.com>
6012
6013 * lto-opts.c (register_user_option_p, lto_register_user_option):
6014 Make type argument unsigned.
6015 * lto-streamer.h (lto_register_user_option): Make type argument
6016 unsigned.
6017 * opth-gen.awk: Make CL_* macros unsigned.
6018 * opts-common.c (find_opt): Make lang_mask argument unsigned.
6019 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6020 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
6021 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
6022 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
6023 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
6024 (find_opt): Make lang_mask argument unsigned.
6025
6026 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6027
6028 PR rtl-optimization/48331
6029 PR rtl-optimization/48334
6030 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
6031 for any used algorithm.
6032
6033 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6034
6035 * ira-conflicts.c (build_object_conflicts): Add unused attribute
6036 to parent_max.
6037
6038 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
6039
6040 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
6041 (alpha_option_override): Don't set alpha_sr_alias_set.
6042 (emit_frame_store_1): Use gen_frame_mem rather than calling
6043 set_mem_alias_set.
6044 (alpha_expand_epilogue): Ditto.
6045
6046 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
6047
6048 PR tree-optimization/48290
6049 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
6050 vectorization, check that relevant phis in the basic block after
6051 the inner loop are really inner loop's exit phis.
6052
6053 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
6054
6055 PR debug/48190
6056 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
6057 (cached_dw_loc_list_def): New structure.
6058 (cached_dw_loc_list): New typedef.
6059 (cached_dw_loc_list_table): New variable.
6060 (cached_dw_loc_list_table_hash): New function.
6061 (cached_dw_loc_list_table_eq): Likewise.
6062 (add_location_or_const_value_attribute): Take a bool cache_p.
6063 Cache the list when the parameter is true.
6064 (gen_formal_parameter_die): Update caller.
6065 (gen_variable_die): Likewise.
6066 (dwarf2out_finish): Likewise.
6067 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
6068 while generating debug info for the decl.
6069 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
6070 (dwarf2out_init): Initialize cached_dw_loc_list_table.
6071 (resolve_addr): Cache the result of resolving a chain of
6072 location lists.
6073
6074 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
6075
6076 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
6077 conflict object hard regset nodes have intersecting hard reg sets.
6078
6079 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
6080 after regstat_init_n_sets_and_refs.
6081
6082 * ira.c: Add more comments at the top.
6083 (setup_stack_reg_pressure_class, setup_pressure_classes):
6084 Add comments how we compute the register pressure classes.
6085 (setup_allocno_and_important_classes): Add more comments.
6086 (setup_class_translate_array, reorder_important_classes)
6087 (setup_reg_class_relations): Add comments.
6088
6089 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
6090 start of the file.
6091
6092 * ira-color.c: Add 2011 to the Copyright line.
6093 (assign_hard_reg): Add more comments.
6094 (improve_allocation): Ditto.
6095
6096 * ira-costs.c: Add 2011 to the Copyright line.
6097 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
6098 comments.
6099 (setup_regno_cost_classes_by_mode): Ditto.
6100
6101 Initial patches from ira-improv branch:
6102
6103 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
6104
6105 * ira-build.c (ira_create_object): Remove initialization of
6106 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
6107 (ira_create_allocno): Remove initialization of
6108 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
6109 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
6110 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6111 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
6112 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
6113 Initialize ALLOCNO_ADD_DATA.
6114 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
6115 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
6116 ALLOCNO_REG.
6117 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
6118 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
6119
6120 * ira.c (ira_reallocate): Remove.
6121 (setup_pressure_classes): Call
6122 ira_init_register_move_cost_if_necessary. Use
6123 ira_register_move_cost instead of ira_get_register_move_cost.
6124 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
6125 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
6126
6127 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
6128 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6129 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
6130 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
6131 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
6132 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
6133 Fix formatting.
6134 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
6135 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6136 (struct allocno_color_data): New.
6137 (allocno_color_data_t): New typedef.
6138 (allocno_color_data): New definition.
6139 (ALLOCNO_COLOR_DATA): New macro.
6140 (struct object_color_data): New.
6141 (object_color_data_t): New typedef.
6142 (object_color_data): New definition.
6143 (OBJECT_COLOR_DATA): New macro.
6144 (update_copy_costs, calculate_allocno_spill_cost): Call
6145 ira_init_register_move_cost_if_necessary. Use
6146 ira_register_move_cost instead of ira_get_register_move_cost.
6147 (move_spill_restore, update_curr_costs): Ditto.
6148 (allocno_spill_priority): Make it inline.
6149 (color_pass): Allocate and free allocno_color_dat and object_color_data.
6150 (struct coalesce_data, coalesce_data_t): New.
6151 (allocno_coalesce_data): New definition.
6152 (ALLOCNO_COALESCE_DATA): New macro.
6153 (merge_allocnos, coalesced_allocno_conflict_p): Use
6154 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
6155 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
6156 (coalesce_allocnos): Ditto.
6157 (setup_coalesced_allocno_costs_and_nums): Ditto.
6158 (collect_spilled_coalesced_allocnos): Ditto.
6159 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
6160 (setup_slot_coalesced_allocno_live_ranges): Ditto.
6161 (coalesce_spill_slots): Ditto.
6162 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
6163 free allocno_coalesce_data.
6164
6165 * ira-conflicts.c: Fix formatting.
6166 (process_regs_for_copy): Call
6167 ira_init_register_move_cost_if_necessary. Use
6168 ira_register_move_cost instead of ira_get_register_move_cost.
6169 (build_object_conflicts): Optimize.
6170
6171 * ira-costs.c (record_reg_classes): Optimize. Call
6172 ira_init_register_move_cost_if_necessary. Use
6173 ira_register_move_cost, ira_may_move_in_cost, and
6174 ira_may_move_out_cost instead of ira_get_register_move_cost and
6175 ira_get_may_move_cost.
6176 (record_address_regs): Ditto.
6177 (scan_one_insn): Optimize.
6178 (find_costs_and_classes): Optimize.
6179 (process_bb_node_for_hard_reg_moves): Call
6180 ira_init_register_move_cost_if_necessary. Use
6181 ira_register_move_cost instead of ira_get_register_move_cost.
6182
6183 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
6184 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
6185 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
6186 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
6187 definitions.
6188 (ira_initiate_emit_data, ira_finish_emit_data)
6189 (create_new_allocno): New functions.
6190 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
6191 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
6192 Use ira_register_move_cost instead of ira_get_register_move_cost.
6193
6194 * ira-int.h: Fix some comments.
6195 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
6196 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6197 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
6198 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
6199 add_data.
6200 (struct ira_allocno): Make mode and aclass a bitfield. Move other
6201 bitfield after mode. Make hard_regno a short int. Make
6202 hard_regno short. Remove first_coalesced_allocno and
6203 next_coalesced_allocno. Move mem_optimized_dest_p,
6204 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
6205 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
6206 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
6207 temp, colorable_p. Add new member add_data.
6208 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
6209 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
6210 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
6211 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
6212 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
6213 (ALLOCNO_ADD_DATA): New macro.
6214 (ira_emit_data_t): New typedef.
6215 (struct ira_emit_data): New. Move mem_optimized_dest_p,
6216 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
6217 from struct ira_allocno.
6218 (ALLOCNO_EMIT_DATA): New macro.
6219 (ira_allocno_emit_data, allocno_emit_reg): New.
6220 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
6221 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
6222 (OBJECT_ADD_DATA): New macro.
6223 (ira_reallocate): Remove.
6224 (ira_initiate_emit_data, ira_finish_emit_data): New.
6225 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
6226 (ira_init_register_move_cost_if_necessary): New.
6227 (ira_object_conflict_iter_next): Merge into
6228 ira_object_conflict_iter_cond.
6229 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
6230
6231 * ira-live.c (process_single_reg_class_operands): Call
6232 ira_init_register_move_cost_if_necessary. Use
6233 ira_register_move_cost instead of ira_get_register_move_cost.
6234
6235 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
6236
6237 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
6238
6239 * ira-costs.c: Fix formatting.
6240 (cost_classes, cost_classes_num): Remove.
6241 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
6242 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
6243 (cost_classes_del, cost_classes_htab): New.
6244 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
6245 (initiate_regno_cost_classes, setup_cost_classes): New.
6246 (setup_regno_cost_classes_by_aclass): New.
6247 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
6248 (record_reg_classes): Use regno_cost_classes instead of
6249 cost_classes. Move checking opposite operand up.
6250 (record_address_regs): Use regno_cost_classes
6251 instead of cost_classes.
6252 (scan_one_insn): Ditto. Use always general register.
6253 (print_allocno_costs): Use regno_cost_classes instead of
6254 cost_classes.
6255 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
6256 (find_costs_and_classes): Set up cost classes for each registers.
6257 Use also their mode for this. Use regno_cost_classes instead of
6258 cost_classes.
6259 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
6260 cost_classes.
6261 (free_ira_costs, ira_init_costs): Don't use cost_classes.
6262 (ira_costs, ira_set_pseudo_classes): Call
6263 initiate_regno_cost_classes and finish_regno_cost_classes.
6264
6265 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
6266
6267 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
6268
6269 * target.def (ira_cover_classes): Remove.
6270
6271 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
6272
6273 * doc/tm.texi.in: Ditto.
6274
6275 * ira-conflicts.c: Remove mentioning cover classes from the file.
6276 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
6277 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
6278
6279 * targhooks.c (default_ira_cover_classes): Remove.
6280
6281 * targhooks.h (default_ira_cover_classes): Ditto.
6282
6283 * haifa-sched.c: Remove mentioning cover classes from the file.
6284 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
6285 ira_pressure_classes and ira_pressure_classes_num instead of
6286 ira_reg_class_cover_size and ira_reg_class_cover. Use
6287 sched_regno_pressure_class instead of sched_regno_cover_class.
6288 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
6289 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6290
6291 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
6292 classes from the file.
6293 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
6294 (struct object_hard_regs, struct object_hard_regs_node): New.
6295 (struct ira_object): New members profitable_hard_regs,
6296 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
6297 (struct ira_allocno): Rename cover_class to aclass. Rename
6298 cover_class_cost and updated_cover_class_cost to class_cost and
6299 updated_class_cost. Remove splay_removed_p and
6300 left_conflict_size. Add new members colorable_p.
6301 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
6302 (ALLOCNO_COLORABLE_P): New macro.
6303 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
6304 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
6305 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
6306 (OBJECT_...): Rename parameter C to O.
6307 (OBJECT_PROFITABLE_HARD_REGS): New macro.
6308 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
6309 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
6310 (struct target_ira_int): New members x_ira_max_memory_move_cost,
6311 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
6312 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
6313 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
6314 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
6315 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
6316 x_ira_reg_class_subunion.
6317 (ira_max_memory_move_cost, ira_max_register_move_cost)
6318 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
6319 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
6320 (ira_important_class_nums, ira_reg_class_superunion): New macros.
6321 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
6322 (ira_reg_class_union): Rename to ira_reg_class_subunion.
6323 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6324 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6325 (ira_tune_allocno_costs_and_cover_classes): Rename to
6326 ira_tune_allocno_costs.
6327 (ira_debug_hard_regs_forest): New.
6328 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
6329 (ira_object_conflict_iter_next): Fix comments.
6330 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
6331 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
6332 cover_class to aclass.
6333 (ira_allocate_and_accumulate_costs): Ditto.
6334 (ira_allocate_and_set_or_copy_costs): Ditto.
6335
6336 * opts.c (decode_options): Remove ira_cover_class check.
6337
6338 * ira-color.c: Remove mentioning cover classes from the file. Use
6339 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
6340 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
6341 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
6342 (splay-tree.h): Remove include.
6343 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
6344 before copy_freq_compare_func.
6345 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
6346 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
6347 New definitions.
6348 (hard_regs_roots, hard_regs_node_vec): Ditto.
6349 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
6350 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
6351 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
6352 (create_new_object_hard_regs_node): Ditto.
6353 (add_new_object_hard_regs_node_to_forest): Ditto.
6354 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
6355 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
6356 Ditto.
6357 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
6358 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
6359 (remove_unused_object_hard_regs_nodes): Ditto.
6360 (enumerate_object_hard_regs_nodes): Ditto.
6361 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
6362 (object_hard_regs_subnode_t): Ditto.
6363 (struct object_hard_regs_subnode): Ditto.
6364 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
6365 (setup_object_hard_regs_subnode_index): Ditto.
6366 (get_object_hard_regs_subnodes_num): Ditto.
6367 (form_object_hard_regs_nodes_forest): Ditto.
6368 (finish_object_hard_regs_nodes_tree): Ditto.
6369 (finish_object_hard_regs_nodes_forest): Ditto.
6370 (allocnos_have_intersected_live_ranges_p): Rename to
6371 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
6372 (pseudos_have_intersected_live_ranges_p): Rename to
6373 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
6374 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
6375 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
6376 (update_copy_costs): Remove assert. Skip cost update if the hard
6377 reg does not belong the class.
6378 (assign_hard_reg): Process only profitable hard regs.
6379 (uncolorable_allocnos_num): Make it scalar.
6380 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6381 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
6382 and ira_reg_class_max_nregs.
6383 (bucket_allocno_compare_func): Check frequency first.
6384 (sort_bucket): Add compare function as a parameter.
6385 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
6386 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
6387 (push_allocno_to_stack): Rewrite for checking new allocno
6388 colorability.
6389 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
6390 (push_only_colorable): Pass new parameter to sort_bucket.
6391 (push_allocno_to_spill): Remove.
6392 (allocno_spill_priority_compare): Make it inline and rewrite.
6393 (splay_tree_allocate, splay_tree_free): Remove.
6394 (allocno_spill_sort_compare): New function.
6395 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
6396 build and use splay tree. Choose first allocno in uncolorable
6397 allocno bucket to spill. Remove setting spill cost.
6398 (all_conflicting_hard_regs): Remove.
6399 (setup_allocno_available_regs_num): Check only profitable hard
6400 regs. Print info about hard regs nodes.
6401 (setup_allocno_left_conflicts_size): Remove.
6402 (put_allocno_into_bucket): Don't call
6403 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
6404 (improve_allocation): New.
6405 (color_allocnos): Call setup_profitable_hard_regs,
6406 form_object_hard_regs_nodes_forest, improve_allocation,
6407 finish_object_hard_regs_nodes_forest. Setup spill cost.
6408 (print_loop_title): Use pressure classes.
6409 (color_allocnso): Ditto.
6410 (do_coloring): Remove allocation and freeing splay_tree_node_pool
6411 and allocnos_for_spilling.
6412 (ira_sort_regnos_for_alter_reg): Don't setup members
6413 {first,next}_coalesced_allocno.
6414 (color): Remove allocating and freeing removed_splay_allocno_vec.
6415 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
6416 prohibited_class_mode_regs.
6417
6418 * ira-lives.c: Remove mentioning cover classes from the file. Fix
6419 formatting.
6420 (update_allocno_pressure_excess_length): Use pressure classes.
6421 (inc_register_pressure, dec_register_pressure): Check for pressure
6422 class.
6423 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
6424 pressure class. Use ira_reg_class_nregs instead of
6425 ira_reg_class_max_nregs.
6426 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
6427 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
6428 (single_reg_class): Use ira_reg_class_nregs instead of
6429 ira_reg_class_max_nregs.
6430 (process_bb_node_lives): Use pressure classes.
6431
6432 * ira-emit.c: Remove mentioning cover classes from the file. Use
6433 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
6434 (change_loop): Use pressure classes.
6435 (modify_move_list): Call ira_set_allocno_class instead of
6436 ira_set_allocno_cover_class.
6437
6438 * ira-build.c: Remove mentioning cover classes from the file. Use
6439 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
6440 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
6441 ALLOCNO_UPDATED_CLASS_COST instead of
6442 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
6443 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
6444 (ira_create_allocno): Remove initialization of
6445 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
6446 ALLOCNO_COLORABLE_P.
6447 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6448 Update conflict regs for the objects.
6449 (create_cap_allocno): Remove assert. Don't propagate
6450 ALLOCNO_AVAILABLE_REGS_NUM.
6451 (ira_free_allocno_costs): New function.
6452 (finish_allocno): Change a part of code into call of
6453 ira_free_allocno_costs.
6454 (low_pressure_loop_node_p): Use pressure classes.
6455 (object_range_compare_func): Don't compare classes.
6456 (setup_min_max_conflict_allocno_ids): Ditto.
6457
6458 * loop-invariant.c: Remove mentioning cover classes from the file.
6459 Use ira_pressure_classes and ira_pressure_classes_num instead of
6460 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
6461 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
6462 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6463 Use reg_allocno_class instead of reg_cover_class.
6464 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
6465 STACK_REG_COVER_CLASS.
6466 (get_regno_cover_class): Rename to get_regno_pressure_class.
6467 (move_loop_invariants): Initialize and finalize regstat.
6468
6469 * ira.c: Remove mentioning cover classes from the file. Add
6470 comments about coloring without cover classes. Use ALLOCNO_CLASS
6471 instead of ALLOCNO_COVER_CLASS. Fix formatting.
6472 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
6473 setup_class_subset_and_memory_move_costs.
6474 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
6475 (setup_cover_and_important_classes): Rename to
6476 setup_allocno_and_important_classes.
6477 (setup_class_translate_array): New.
6478 (setup_class_translate): Call it for allocno and pressure classes.
6479 (cover_class_order): Rename to allocno_class_order.
6480 (comp_reg_classes_func): Use ira_allocno_class_translate instead
6481 of ira_class_translate.
6482 (reorder_important_classes): Set up ira_important_class_nums.
6483 (setup_reg_class_relations): Set up ira_reg_class_superunion.
6484 (print_class_cover): Rename to print_classes. Add parameter.
6485 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6486 Print pressure classes too.
6487 (find_reg_class_closure): Rename to find_reg_classes. Don't call
6488 setup_reg_subclasses.
6489 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6490 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6491 (setup_prohibited_class_mode_regs): Use
6492 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
6493 (clarify_prohibited_class_mode_regs): New function.
6494 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
6495 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
6496 (ira_init_once): Initialize them.
6497 (free_register_move_costs): Process them.
6498 (ira_init): Move calls of find_reg_classes and
6499 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
6500 Call clarify_prohibited_class_mode_regs.
6501 (ira_no_alloc_reg): Remove.
6502 (too_high_register_pressure_p): Use pressure classes.
6503
6504 * sched-deps.c: Remove mentioning cover classes from the file.
6505 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
6506 ira_pressure_classes and ira_pressure_classes_num instead of
6507 ira_reg_class_cover_size and ira_reg_class_cover.
6508 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
6509 sched_regno_pressure_class instead of sched_regno_cover_class.
6510 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
6511 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6512
6513 * ira.h: Add 2010 to Copyright.
6514 (ira_no_alloc_reg): Remove external.
6515 (struct target_ira): Rename x_ira_hard_regno_cover_class,
6516 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
6517 x_ira_class_translate to x_ira_hard_regno_allocno_class,
6518 x_ira_allocno_classes_num, x_ira_allocno_classes, and
6519 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
6520 x_ira_pressure_classes, x_ira_pressure_class_translate, and
6521 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
6522 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
6523 x_ira_no_alloc_regs.
6524 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
6525 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
6526 ira_allocno_classes_num and ira_allocno_classes.
6527 (ira_class_translate): Rename to ira_allocno_class_translate.
6528 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
6529 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
6530 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6531 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
6532 (ira_no_alloc_regs): New.
6533
6534 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
6535 classes from the file. Use ALLOCNO_CLASS instead of
6536 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
6537 ALLOCNO_COVER_CLASS_COST.
6538 (regno_cover_class): Rename to regno_aclass.
6539 (record_reg_classes): Use ira_reg_class_subunion instead of
6540 ira_reg_class_union.
6541 (record_address_regs): Check overflow.
6542 (scan_one_insn): Ditto.
6543 (print_allocno_costs): Print total mem cost fore regional allocation.
6544 (print_pseudo_costs): Use REG_N_REFS.
6545 (find_costs_and_classes): Use classes intersected with them on the
6546 1st pass. Check overflow. Use ira_reg_class_subunion instead of
6547 ira_reg_class_union. Use ira_allocno_class_translate and
6548 regno_aclass instead of ira_class_translate and regno_cover_class.
6549 Modify code for finding regno_aclass. Setup preferred classes for
6550 the next pass.
6551 (setup_allocno_cover_class_and_costs): Rename to
6552 setup_allocno_class_and_costs. Use regno_aclass instead of
6553 regno_cover_class. Use ira_set_allocno_class instead of
6554 ira_set_allocno_cover_class.
6555 (init_costs, finish_costs): Use regno_aclass instead of
6556 regno_cover_class.
6557 (ira_costs): Use setup_allocno_class_and_costs instead of
6558 setup_allocno_cover_class_and_costs.
6559 (ira_tune_allocno_costs_and_cover_classes): Rename to
6560 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
6561 by processing objects. Use ira_reg_class_max_nregs instead of
6562 ira_reg_class_nregs.
6563
6564 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
6565
6566 * sched-int.h: Remove mentioning cover classes from the file.
6567 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
6568
6569 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
6570 classes from the file.
6571 (struct reg_pref): Rename coverclass into allocnoclass.
6572 (reg_cover_class): Rename to reg_allocno_class.
6573
6574 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
6575
6576 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
6577
6578 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6579
6580 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
6581
6582 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
6583
6584 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
6585
6586 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
6587
6588 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
6589
6590 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
6591
6592 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
6593
6594 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
6595 (i386_ira_cover_classes): Ditto.
6596
6597 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6598
6599 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
6600
6601 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
6602
6603 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
6604
6605 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
6606
6607 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
6608
6609 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
6610 (mips_ira_cover_classes): Ditto.
6611
6612 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
6613
6614 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
6615
6616 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
6617
6618 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
6619
6620 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
6621
6622 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
6623 (IRA_COVER_CLASSES_VSX): Ditto.
6624
6625 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
6626 (rs6000_ira_cover_classes): Ditto.
6627
6628 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
6629
6630 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
6631
6632 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
6633
6634 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
6635
6636 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
6637
6638 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
6639
6640 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
6641
6642 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
6643
6644 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
6645
6646 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
6647
6648 2011-03-29 Jakub Jelinek <jakub@redhat.com>
6649
6650 PR debug/48253
6651 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
6652 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
6653 dw_fde_unlikely_section_end_label, cold_in_std_section,
6654 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
6655 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
6656 fields.
6657 (output_fde): Use dw_fde_second_{begin,end} if second is
6658 true, otherwise dw_fde_{begin,end}.
6659 (output_call_frame_info): Test dw_fde_second_begin != NULL
6660 instead of dw_fde_switched_sections.
6661 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
6662 fields, initialize new fields. Initialize in_std_section
6663 unconditionally from the first partition.
6664 (dwarf2out_end_epilogue): Don't override dw_fde_end when
6665 dw_fde_second_begin is non-NULL.
6666 (dwarf2out_switch_text_section): Stop initializing removed
6667 dw_fde_struct fields, initialize new fields, initialize
6668 also dw_fde_end here. Set dw_fde_switch_cfi even when
6669 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
6670 (struct var_loc_list_def): Add last_before_switch field.
6671 (arange_table, arange_table_allocated, arange_table_in_use,
6672 ARANGE_TABLE_INCREMENT, add_arange): Removed.
6673 (size_of_aranges): Count !in_std_section and !second_in_std_section
6674 hunks in fdes, instead of looking at arange_table_in_use.
6675 (output_aranges): Add aranges_length argument, don't call
6676 size_of_aranges here. Instead of using aranges_table*
6677 emit ranges for fdes when !in_std_section resp.
6678 !second_in_std_section.
6679 (dw_loc_list): Break ranges crossing section switch.
6680 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
6681 use dw_fde_second_end instead of dw_fde_end as end of last range.
6682 (gen_subprogram_die): Don't call add_arange. Use
6683 dw_fde_{begin,end} for first partition and if switched
6684 section dw_fde_second_{begin,end} for the second.
6685 (var_location_switch_text_section_1,
6686 var_location_switch_text_section): New functions.
6687 (dwarf2out_begin_function): Initialize cold_text_section even
6688 when function_section () isn't text_section.
6689 (prune_unused_types): Don't walk arange_table.
6690 (dwarf2out_finish): Don't needlessly test
6691 flag_reorder_blocks_and_partition when testing cold_text_section_used.
6692 If info_section_emitted, call size_of_aranges and if it indicates
6693 non-empty .debug_aranges, call output_aranges with the computed
6694 size. Stop using removed dw_fde_struct fields, use
6695 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
6696 for second.
6697
6698 PR debug/48203
6699 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
6700 create ENTRY_VALUE if incoming or address of incoming's MEM
6701 is a hard REG.
6702 * dwarf2out.c (mem_loc_descriptor): Don't emit
6703 DW_OP_GNU_entry_value of DW_OP_fbreg.
6704 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
6705 on ENTRY_VALUE is able to find the canonical parameter VALUE.
6706 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
6707 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
6708 ENTRY_VALUE_EXPs.
6709 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
6710 is a REG_P or MEM_P with REG_P address, compute hash directly
6711 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
6712 (preserve_only_constants): Don't clear VALUES forwaring
6713 ENTRY_VALUE to some other VALUE.
6714
6715 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
6716
6717 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
6718 instead of GEN_INT.
6719
6720 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6721
6722 * cfgexpand.c (expand_gimple_cond): Always set the source location and
6723 block before expanding the statement.
6724 (expand_gimple_stmt_1): Likewise. Set them here...
6725 (expand_gimple_stmt): ...and not here. Tidy.
6726 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
6727 unknown.
6728
6729 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6730
6731 * Makefile.in: New rule for cprop.o.
6732 * gcse.c: Move constant/copy propagation to cprop.c.
6733 (compute_local_properties): Only handle expression tables.
6734 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
6735 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
6736 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
6737 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
6738 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
6739 compute_cprop_data, find_used_regs, try_replace_reg,
6740 find_avail_set, cprop_jump, constprop_register, cprop_insn,
6741 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
6742 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
6743 find_bypass_set, reg_killed_on_edge, bypass_block,
6744 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
6745 execute_rtl_cprop, pass_rtl_cprop): Move to...
6746 * cprop.c: ...here. New file, constant/copy propagation for RTL
6747 moved from gcse.c to here with minor cleanups in duplicated code.
6748
6749 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
6750
6751 * config/i386/i386.c (flag_opts): Fix a typo in
6752 -mavx256-split-unaligned-store.
6753
6754 2011-03-28 Anatoly Sokolov <aesok@post.ru>
6755
6756 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6757 LIBCALL_VALUE): Remove macros.
6758 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6759 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6760 (h8300_function_value, h8300_libcall_value,
6761 h8300_function_value_regno_p): New functions.
6762
6763 2011-03-28 Anatoly Sokolov <aesok@post.ru>
6764
6765 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
6766
6767 2011-03-28 Jeff Law <law@redhat.com>
6768
6769 * tree-ssa-threadupdate.c (redirect_edges): Call
6770 create_edge_and_update_destination_phis as needed.
6771 (create_edge_and_update_destination_phis): Accept new BB argument.
6772 All callers updated.
6773 (thread_block): Do not update the profile when threading around
6774 intermediate blocks.
6775 (thread_single_edge): Likewise.
6776 (determine_bb_domination_status): If BB is not a successor of the
6777 loop header, return NONDOMINATING.
6778 (register_jump_thread): Note when we register a jump thread around
6779 an intermediate block.
6780 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
6781 (thread_across_edge): Use it.
6782
6783 2011-03-28 Tristan Gingold <gingold@adacore.com>
6784
6785 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
6786 when for_return is 2.
6787
6788 2011-03-28 Jeff Law <law@redhat.com>
6789
6790 * var-tracking.c (canonicalize_values_mark): Delete unused
6791 lhs assignment.
6792 (canonicalize_values_star, set_variable_part): Likewise.
6793 (clobber_variable_part, delete_variable_part): Likewise.
6794
6795 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6796
6797 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
6798
6799 2011-03-28 Martin Jambor <mjambor@suse.cz>
6800
6801 * tree-inline.c (expand_call_inline): Do not check that destination
6802 node is analyzed.
6803 (optimize_inline_calls): Assert that destination node is analyzed.
6804 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
6805 not call tree_lowering_passes.
6806 * cgraph.h (cgraph_analyze_function): Declare.
6807 * cgraphunit.c (cgraph_analyze_function): Make public.
6808
6809 2011-03-28 Joseph Myers <joseph@codesourcery.com>
6810
6811 * config/sparc/sparc-opts.h: New.
6812 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
6813 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
6814 (sparc_option_override): Store processor_type enumeration rather
6815 than string in cpu_default. Remove name and enumeration from
6816 cpu_table. Directly default -mcpu then default -mtune from -mcpu
6817 without using sparc_select. Use target_flags_explicit instead of
6818 fpu_option_set.
6819 * config/sparc/sparc.h (enum processor_type): Move to
6820 sparc-opts.h.
6821 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
6822 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
6823 HeaderInclude entry.
6824 (mcpu=, mtune=): Use Var and Enum.
6825 (sparc_processor_type): New Enum and EnumValue entries.
6826
6827 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6828 Iain Sandoe <iains@gcc.gnu.org>
6829
6830 PR target/48245
6831 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
6832
6833 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6834
6835 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
6836 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
6837 Insert new statements at it in lieu of STMT.
6838 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
6839 * tree-vect-stmts.c (vectorizable_store): Likewise.
6840 (vectorizable_load): Likewise.
6841
6842 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
6843
6844 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
6845 (divtf3): Ditto.
6846 (multf3): Ditto.
6847 (subtf3): Ditto.
6848
6849 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6850
6851 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
6852 unaligned 256bit load/store.
6853 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
6854 (*avx_movdqu<avxmodesuffix>): Likewise.
6855
6856 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6857
6858 PR target/48288
6859 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
6860 * config/pa/pa.md (iordi3): Use new predicate in expander.
6861 (iorsi3): Likewise.
6862
6863 2011-03-27 Anatoly Sokolov <aesok@post.ru>
6864
6865 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
6866 FUNCTION_VALUE_REGNO_P): Remove macros.
6867 * config/mips/mips-protos.h (mips_function_value): Remove.
6868 * config/mips/mips.c (mips_function_value): Rename to...
6869 (mips_function_value_1): ... this. Make static. Handle receiving
6870 the function type in 'fn_decl_or_type' argument.
6871 (mips_function_value, mips_libcall_value,
6872 mips_function_value_regno_p): New function.
6873 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6874 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6875
6876 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6877
6878 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
6879 and -mavx256-split-unaligned-store.
6880 (ix86_option_override_internal): Split 32-byte AVX unaligned
6881 load/store by default.
6882 (ix86_avx256_split_vector_move_misalign): New.
6883 (ix86_expand_vector_move_misalign): Use it.
6884
6885 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
6886 -mavx256-split-unaligned-store.
6887
6888 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
6889 256bit load/store. Generate unaligned store on misaligned memory
6890 operand.
6891 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
6892 256bit load/store.
6893 (*avx_movdqu<avxmodesuffix>): Likewise.
6894
6895 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6896 -mavx256-split-unaligned-store.
6897
6898 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6899
6900 PR target/38598
6901 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6902 Update commentary.
6903
6904 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6905
6906 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6907 opno arguments with an expand_operand. Use create_input_operand.
6908 (mips_prepare_builtin_target): Delete.
6909 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6910 functions.
6911 (mips_expand_builtin_direct): Use create_output_operand and
6912 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
6913 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
6914 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6915
6916 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
6917
6918 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6919 function.
6920 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6921
6922 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6923
6924 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6925 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
6926 basic blocks and call commit_edge_insertions directly.
6927 (fixup_abnormal_edges): Move from here to...
6928 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
6929 on the edges and return whether some have actually been inserted.
6930 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6931 compensation code.
6932
6933 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
6934
6935 PR rtl-optimization/48144
6936 * sel-sched-ir.c (merge_history_vect): Factor out from ...
6937 (merge_expr_data): ... here.
6938 (av_set_intersect): Rename to av_set_code_motion_filter.
6939 Update all callers. Call merge_history_vect when an expression
6940 is found in both sets.
6941 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6942
6943 2011-03-26 Alan Modra <amodra@gmail.com>
6944
6945 * config/rs6000/predicates.md (word_offset_memref_op): Handle
6946 cmodel medium addresses.
6947 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6948 64-bit gpr loads and stores.
6949 (rs6000_secondary_reload_ppc64): New function.
6950 * config/rs6000/rs6000-protos.h: Declare it.
6951 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6952
6953 2011-03-26 Alan Modra <amodra@gmail.com>
6954
6955 PR target/47487
6956 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6957 GNU Go in traceback table.
6958
6959 2011-03-25 Richard Henderson <rth@redhat.com>
6960
6961 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6962 if there are exactly 6 operands.
6963 (set_storage_via_setmem): Similarly.
6964
6965 2011-03-25 Kai Tietz <ktietz@redhat.com>
6966
6967 * collect2.c (write_c_file_stat): Handle backslash
6968 as right-hand directory separator.
6969 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
6970 checking just for slash.
6971 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
6972 instead of checking for trailing slash.
6973 * gcc.c (record_temp_file): Use filename_cmp instead
6974 of strcmp.
6975 (do_spec_1): Likewise.
6976 (replace_outfile_spec_function): Likewise.
6977 (is_directory): Use filename_ncmp instead of strncmp.
6978 (print_multilib_info): Likewise.
6979 * gcov.c (find_source): Use filename_cmp instead
6980 instead of strcmp.
6981 (make_gcov_file_name): Fix order of slash/backslash
6982 checks.
6983 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
6984 (add_standard_paths): Likewise.
6985 * mips-tfile.c (saber_stop): Handle backslash.
6986 * prefix.c (update_path): Use filename_ncmp instead of
6987 strncmp.
6988 * profile.c (output_location): Use filename_cmp instead
6989 of strcmp.
6990 * read-md.c (handle_toplevel_file): Handle backslash.
6991 * tlink.c (frob_extension): Likewise.
6992 * tree-cfg.c (same_line_p): Use filename_cmp instead of
6993 strcmp.
6994 * tree-dump.c (dequeue_and_dump): Handle backslash.
6995 * tree.c (get_file_function_name): Likewise.
6996 * gengtype.c (read_input_list): Likewise.
6997 (get_file_realbasename): Likewise.
6998 (get_output_file_with_visibility): Use filename_cmp
6999 instead of strcmp.
7000
7001 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
7002
7003 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
7004 case to VFPv1.
7005
7006 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7007
7008 * fold-const.c (expr_location_or): New function.
7009 (fold_truth_not_expr): Call it.
7010
7011 2011-03-25 Jeff Law <law@redhat.com>
7012
7013 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
7014 va_end.
7015 * c-family/c-common.c (def_fn_type): Likewise.
7016 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
7017 * emit-rtl.c (gen_rtvec): Likewise.
7018 * lto/lto-lang.c (def_fn_type): Likewise.
7019
7020 2011-03-25 Richard Guenther <rguenther@suse.de>
7021
7022 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
7023 also generate copies.
7024 (fini_copy_prop): Handle constant values properly.
7025
7026 2011-03-25 Jakub Jelinek <jakub@redhat.com>
7027
7028 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
7029 mode size instead of bitsize with DWARF2_ADDR_SIZE.
7030 (hash_loc_operands, compare_loc_operands): Handle
7031 DW_OP_GNU_entry_value.
7032
7033 2011-03-25 Kai Tietz <ktietz@redhat.com>
7034
7035 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
7036 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
7037 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
7038 comment and use macro TARGET_64BIT_MS_ABI instead.
7039 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
7040 and change default behavior for 32-bit MS_ABI.
7041 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
7042 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
7043 32-bit, too.
7044 (ix86_cfun_abi): Likewise.
7045 (ix86_maybe_switch_abi): Adjust comment.
7046 (init_cumulative_args): Check for bit-ness in MS_ABI case.
7047 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
7048 instead of checking for SYSV_ABI.
7049 (ix86_nsaved_sseregs): Likewise.
7050 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
7051 to 16 bytes.
7052 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
7053 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
7054 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
7055 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
7056 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
7057
7058 2011-03-25 Richard Guenther <rguenther@suse.de>
7059
7060 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
7061 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7062 (verify_gimple): Remove.
7063 * tree-cfg.c (verify_gimple_call): Merge verification
7064 from verify_stmts.
7065 (verify_gimple_phi): Merge verification from verify_stmts.
7066 (verify_gimple_label): New function.
7067 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
7068 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7069 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
7070 (verify_stmts): Rename to verify_gimple_in_cfg.
7071 (verify_gimple_in_cfg): New function.
7072 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
7073 * tree-ssa.c (verify_ssa): Likewise.
7074 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
7075
7076 2011-03-25 Richard Guenther <rguenther@suse.de>
7077
7078 * passes.c (init_optimization_passes): Add FRE pass after
7079 early SRA.
7080
7081 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
7082 Andrew Stubbs <ams@codesourcery.com>
7083
7084 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
7085 for Cortex-A8.
7086 (arm_movdi_vfp_cortexa8): New pattern.
7087 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
7088 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
7089 instructions when tuning for Cortex-A8. Set attribute "arch".
7090 * config/arm/arm.md: Move include arm-tune.md up a bit.
7091 (define_attr "arch"): Add "onlya8" and "nota8" values.
7092 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
7093
7094 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7095
7096 PR bootstrap/48282
7097 Revert:
7098 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7099
7100 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7101 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
7102 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7103 * passes.c (init_optimization_passes): Move
7104 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7105
7106 2011-03-25 Kai Tietz <ktietz@redhat.com>
7107
7108 * c-typeck.c (comptypes_internal): Replace target
7109 hook call of comp_type_attributes by version in tree.c file.
7110 * gimple.c (gimple_types_compatible_p_1): Likewise.
7111 * tree-ssa.c (useless_type_conversion_p): Likewise.
7112 * tree.c (build_type_attribute_qual_variant): Likewise.
7113 (attribute_value_equal): New static helper function.
7114 (comp_type_attributes): New function.
7115 (merge_attributes): Use attribute_value_equal for comparison.
7116 (attribute_list_contained): Likewise.
7117 * tree.h (comp_type_attributes): New prototype.
7118
7119 2011-03-25 Richard Guenther <rguenther@suse.de>
7120
7121 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
7122 of complex types at -O0.
7123 (verify_gimple_assign_binary): Likewise.
7124 (verify_gimple_assign_ternary): Likewise.
7125
7126 2011-03-24 Mark Wielaard <mjw@redhat.com>
7127
7128 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
7129 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
7130
7131 2011-03-24 Mark Wielaard <mjw@redhat.com>
7132
7133 PR debug/48041
7134 * dwarf2out.c (output_abbrev_section): Only write table when
7135 abbrev_die_table_in_use > 1.
7136
7137 2011-02-24 Richard Henderson <rth@redhat.com>
7138
7139 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
7140 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
7141 (alpha_expand_unaligned_load_words): Use extql.
7142 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
7143 (emit_insxl): Handle all modes for consistency.
7144
7145 2011-02-24 Richard Henderson <rth@redhat.com>
7146
7147 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
7148 (alpha_expand_unaligned_load): Likewise.
7149 (alpha_expand_unaligned_store): Likewise.
7150 (alpha_expand_unaligned_load_words): Likewise.
7151 (alpha_expand_unaligned_store_words): Likewise.
7152 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
7153 (alpha_split_lock_test_and_set_12): Likewise.
7154 (print_operand, alpha_fold_builtin_extxx): Likewise.
7155 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
7156 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
7157 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
7158 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
7159 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
7160 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
7161 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
7162 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
7163 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
7164 (extwl, extll, extql): Similarly.
7165 (inswh, inslh, insqh): Similarly.
7166 (mskbl, mskwl, mskll, mskql): Similarly.
7167 (mskwh, msklh, mskqh): Similarly.
7168
7169 2011-02-24 Richard Henderson <rth@redhat.com>
7170
7171 * config/alpha/alpha.md (attribute isa): Add er, ner.
7172 (attribute enabled): Handle them.
7173 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
7174
7175 2011-02-24 Richard Henderson <rth@redhat.com>
7176
7177 * config/alpha/alpha.md (attribute isa): Add vms.
7178 (attribute enabled): Handle it.
7179 (*movsf): Merge *movsf_{nofix,fix,nofp}.
7180 (*movdf): Merge *movdf_{nofix,fix,nofp}.
7181 (*movtf): Rename from *movtf_internal for consistency.
7182 (*movsi): Merge with *movsi_nt_vms.
7183 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
7184 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
7185 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
7186 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
7187
7188 2011-02-24 Richard Henderson <rth@redhat.com>
7189
7190 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
7191 (extendqisi2, extendhisi2): Likewise.
7192 (extendqidi2): Simplify BWX/non-BWX expansions.
7193 (extendhidi2): Similarly.
7194
7195 2011-02-24 Richard Henderson <rth@redhat.com>
7196
7197 * config/alpha/alpha.md (attribute isa): New.
7198 (attribute enabled): New.
7199 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
7200 (zero_extendqisi2, zero_extendqidi2): Similarly.
7201 (zero_extendhisi2, zero_extendhidi2): Similarly.
7202 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
7203
7204 2011-02-24 Richard Henderson <rth@redhat.com>
7205
7206 * config/alpha/predicates.md (input_operand): Revert last change;
7207 update comment to mention 32-bit VMS rather than Windows.
7208
7209 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7210
7211 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7212 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
7213 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7214 * passes.c (init_optimization_passes): Move
7215 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7216
7217 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7218
7219 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
7220
7221 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
7222
7223 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
7224 correctly.
7225
7226 2011-03-24 Jakub Jelinek <jakub@redhat.com>
7227
7228 PR debug/48204
7229 * simplify-rtx.c (simplify_const_unary_operation): Call
7230 real_convert when changing mode class with FLOAT_EXTEND.
7231
7232 2011-03-24 Nick Clifton <nickc@redhat.com>
7233
7234 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
7235 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
7236 * config/rx/rx.c (rx_option_override): Set align_jumps,
7237 align_loops and align_labels if not set by the user.
7238 (rx_align_for_label): New function.
7239 (rx_max_skip_for_label): New function.
7240 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
7241 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
7242 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
7243 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
7244 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
7245
7246 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7247
7248 PR rtl-optimization/48263
7249 * optabs.c (expand_binop_directly): Reinstate convert_modes code
7250 and original commutative_p handling. Use maybe_gen_insn.
7251
7252 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7253
7254 * reload.c (find_reloads_subreg_address): Add address_reloaded
7255 parameter and return true there if the full address has been
7256 reloaded.
7257 (find_reloads_toplev): Pass address_reloaded flag.
7258 (find_reloads_address_1): Don't use address_reloaded parameter.
7259
7260 2011-03-24 Jeff Law <law@redhat.com>
7261
7262 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
7263 unused variable "ann".
7264 (remove_unused_locals): Likewise.
7265
7266 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
7267 statement.
7268
7269 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
7270 after it is freed.
7271
7272 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7273
7274 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
7275 for invalid symbolic addresses.
7276 (s390_secondary_reload): Don't use s390_check_symref_alignment for
7277 larl operands.
7278
7279 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7280
7281 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
7282 the argument in calls to fold_truth_not_expr.
7283
7284 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7285
7286 * tree.c (record_node_allocation_statistics): New function.
7287 (make_node_stat, copy_node_stat, build_string): Call it.
7288 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
7289 (build1_stat, build_omp_clause): Likewise.
7290
7291 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7292
7293 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
7294 last commit.
7295
7296 2011-03-24 Richard Guenther <rguenther@suse.de>
7297
7298 PR tree-optimization/48271
7299 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
7300 blocks that still exist.
7301
7302 2011-03-24 Richard Guenther <rguenther@suse.de>
7303
7304 PR tree-optimization/48270
7305 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
7306 not free datarefs before ddrs.
7307
7308 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7309
7310 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
7311 from the address built for a reference with variable offset.
7312
7313 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
7314
7315 PR target/48237
7316 * config/i386/i386.md (*movdf_internal_rex64): Do not split
7317 alternatives that can be handled with movq or movabsq insn.
7318 (*movdf_internal): Disable for !TARGET_64BIT.
7319 (*movdf_internal_nointeger): Ditto.
7320 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
7321
7322 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7323
7324 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7325 (FUNCTION_ARG_ADVANCE): Likewise.
7326 * tm.texi.in: Change references to them to hook references.
7327 * tm.texi: Regenerate.
7328 * targhooks.c (default_function_arg): Eliminate check for target macro.
7329 (default_function_incoming_arg): Likewise.
7330 (default_function_arg_advance): Likewise.
7331 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
7332 (function_arg_advance): Likewise.
7333 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7334
7335 2011-03-24 Richard Guenther <rguenther@suse.de>
7336
7337 PR middle-end/48269
7338 * tree-object-size.c (addr_object_size): Do not double-account
7339 for MEM_REF offsets.
7340
7341 2011-03-24 Diego Novillo <dnovillo@google.com>
7342
7343 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
7344 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
7345 (lto_input_data_block): Move from lto-opts.c. Make extern.
7346 Update all users.
7347 (lto_input_string): Rename from input_string. Make extern.
7348 Update all users.
7349 * lto-streamer-out.c (lto_output_string_with_length): Rename from
7350 output_string_with_length.
7351 Output 0 to indicate a non-NULL string. Update all callers to
7352 not emit 0.
7353 (lto_output_string): Rename from output_string. Make extern.
7354 Update all users.
7355 (lto_output_decl_state_streams): Make extern.
7356 (lto_output_decl_state_refs): Make extern.
7357 * lto-streamer.h (lto_input_string): Declare.
7358 (lto_input_data_block): Declare.
7359 (lto_output_string): Declare.
7360 (lto_output_string_with_length): Declare.
7361 (lto_output_decl_state_streams): Declare.
7362 (lto_output_decl_state_refs): Declare.
7363
7364 2011-03-24 Richard Guenther <rguenther@suse.de>
7365
7366 PR tree-optimization/46562
7367 * tree.c (build_invariant_address): New function.
7368 * tree.h (build_invariant_address): Declare.
7369 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
7370 a renamed function moved ...
7371 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
7372 Take valueization callback parameter.
7373 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
7374 * gimple-fold.h: New file.
7375 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
7376 (ccp_fold, fold_const_aggregate_ref,
7377 fold_ctor_reference, fold_nonarray_ctor_reference,
7378 fold_array_ctor_reference, fold_string_cst_ctor_reference,
7379 get_base_constructor): Move ...
7380 * gimple-fold.c: ... here.
7381 (gimple_fold_stmt_to_constant_1): New function
7382 split out from ccp_fold. Take a valueization callback parameter.
7383 Valueize all operands.
7384 (gimple_fold_stmt_to_constant): New wrapper function.
7385 (fold_const_aggregate_ref_1): New function split out from
7386 fold_const_aggregate_ref. Take a valueization callback parameter.
7387 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
7388 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
7389 invariant POINTER_PLUS_EXPRs to invariant form.
7390 (vn_valueize): New function.
7391 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
7392 * tree-vrp.c (vrp_valueize): New function.
7393 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
7394 to fold statements to constants.
7395 * tree-ssa-pre.c (eliminate): Properly guard propagation of
7396 function declarations.
7397 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
7398 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
7399
7400 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7401
7402 * config/h8300/predicates.md (jump_address_operand): Fix register
7403 mode check.
7404
7405 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
7406
7407 * doc/invoke.texi (max-stores-to-sink): Document.
7408 * params.h (MAX_STORES_TO_SINK): Define.
7409 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
7410 if either vectorization or if-conversion is disabled.
7411 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
7412 tree-vect-data-refs.c vect_equal_offsets.
7413 (dr_equal_offsets_p): New function.
7414 (find_data_references_in_bb): Remove static.
7415 * tree-data-ref.h (find_data_references_in_bb): Declare.
7416 (dr_equal_offsets_p): Likewise.
7417 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
7418 (vect_drs_dependent_in_basic_block): Update calls to
7419 vect_equal_offsets.
7420 (vect_check_interleaving): Likewise.
7421 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
7422 (cond_if_else_store_replacement): Rename to...
7423 (cond_if_else_store_replacement_1): ... this. Change arguments and
7424 documentation.
7425 (cond_if_else_store_replacement): New function.
7426 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
7427 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
7428
7429 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
7430
7431 PR target/46934
7432 * config/arm/arm.md (casesi): Use the gen_int_mode() function
7433 to subtract lower bound instead of GEN_INT().
7434
7435 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
7436
7437 PR other/48179
7438 PR other/48221
7439 PR other/48234
7440 * doc/extend.texi (Alignment): Move section to match order in TOC.
7441 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
7442 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
7443
7444 2011-03-23 Jeff Law <law@redhat.com>
7445
7446 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
7447 before removing the edge.
7448
7449 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
7450 it may have been freed by redirect_branch_edge or
7451 redirect_edge_succ_nodup.
7452
7453 2011-03-23 Richard Guenther <rguenther@suse.de>
7454
7455 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
7456 (check_va_list_escapes): Likewise.
7457 (check_all_va_list_escapes): Likewise.
7458
7459 2011-03-23 Richard Guenther <rguenther@suse.de>
7460
7461 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
7462 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
7463 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
7464 (alias.o): Likewise.
7465 (ipa-type-escape.o): Remove.
7466 (ipa-struct-reorg.o): Likewise.
7467 (GTFILES): Remove ipa-struct-reorg.c.
7468 * alias.c: Do not include ipa-type-escape.h.
7469 * tree-ssa-alias.c: Likewise.
7470 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
7471 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
7472 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
7473 and ipa-type-escape passes.
7474 * tree-pass.h (pass_ipa_type_escape): Remove.
7475 (pass_ipa_struct_reorg): Likewise.
7476 * ipa-struct-reorg.h: Remove.
7477 * ipa-struct-reorg.c: Likewise.
7478 * ipa-type-escape.h: Likewise.
7479 * ipa-type-escape.c: Likewise.
7480 * doc/invoke.texi (-fipa-struct-reorg): Remove.
7481 (--param struct-reorg-cold-struct-ratio): Likewise.
7482 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7483 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7484 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
7485
7486 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7487
7488 * config/s390/2084.md: Enable all insn reservations also for z9_ec
7489 cpu attribute value.
7490 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
7491 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
7492 * config/s390/s390.c (processor_flags_table): New constant array.
7493 (s390_handle_arch_option): Remove.
7494 (s390_handle_option): Remove s390_handle_arch_option invocations
7495 and OPT_mwarn_framesize_ handling.
7496 (s390_option_override): Remove s390_handle_arch_option invocation.
7497 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
7498 warnings.
7499 * config/s390/s390.md (cpu attribute): Add z9_ec value.
7500 * config/s390/s390.opt (s390_tune, s390_arch)
7501 (march=): Replace s390_arch_option enum and values with
7502 processor_type. Set variable name to s390_arch. Set
7503 initialization value.
7504 (mtune=): Replace s390_arch_option with processor_type. Set
7505 variable name to s390_tune. Set initialization value.
7506
7507 2011-03-23 Julian Brown <julian@codesourcery.com>
7508
7509 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
7510 accesses which are not naturally aligned.
7511
7512 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7513
7514 PR target/47553
7515 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
7516
7517 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7518
7519 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
7520 parameter from "int" to "enum insn_code".
7521 (expand_operand_type): New enum.
7522 (expand_operand): New structure.
7523 (create_expand_operand): New function.
7524 (create_fixed_operand, create_output_operand): Likewise
7525 (create_input_operand, create_convert_operand_to): Likewise.
7526 (create_convert_operand_from, create_address_operand): Likewise.
7527 (create_integer_operand): Likewise.
7528 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
7529 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7530 (expand_insn, expand_jump_insn): Likewise.
7531 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
7532 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
7533 (expand_movstr, expand_builtin___clear_cache): Likewise.
7534 (expand_builtin_lock_release): Likewise.
7535 * explow.c (allocate_dynamic_stack_space): Likewise.
7536 (probe_stack_range): Likewise. Allow check_stack to FAIL,
7537 and use the default handling in that case.
7538 * expmed.c (check_predicate_volatile_ok): Delete.
7539 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
7540 (emit_cstore): Likewise.
7541 * expr.c (emit_block_move_via_movmem): Likewise.
7542 (set_storage_via_setmem, expand_assignment): Likewise.
7543 (emit_storent_insn, try_casesi): Likewise.
7544 (emit_single_push_insn): Likewise. Allow the expansion to fail.
7545 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
7546 (expand_vec_shift_expr, expand_binop_directly): Likewise.
7547 (expand_twoval_unop, expand_twoval_binop): Likewise.
7548 (expand_unop_direct, emit_indirect_jump): Likewise.
7549 (emit_conditional_move, vector_compare_rtx): Likewise.
7550 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
7551 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
7552 (expand_sync_lock_test_and_set): Likewise.
7553 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
7554 (emit_unop_insn): Likewise.
7555 (expand_copysign_absneg): Change icode to an insn_code.
7556 (create_convert_operand_from_type): New function.
7557 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
7558 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7559 (expand_insn, expand_jump_insn): Likewise.
7560 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
7561 than const_int_operand for operand 2.
7562
7563 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7564
7565 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
7566 if possible.
7567
7568 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7569
7570 * emit-rtl.c (emit_pattern_before_noloc): New function.
7571 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
7572 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
7573 (emit_pattern_after_noloc): New function.
7574 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
7575 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
7576
7577 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7578
7579 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
7580 (__ffsDI2): Likewise.
7581
7582 2011-03-22 Richard Henderson <rth@redhat.com>
7583
7584 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
7585 of !TARGET_ABI_OPEN_VMS.
7586 (alpha_trampoline_init, alpha_start_function): Likewise.
7587 (alpha_expand_epilogue, alpha_file_start): Likewise.
7588 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
7589 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
7590 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
7591 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
7592 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
7593
7594 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7595
7596 * config/s390/s390-opts.h: New.
7597 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
7598 s390_arch_flags, s390_warn_framesize, s390_stack_size,
7599 s390_stack_guard): Remove.
7600 (s390_handle_arch_option): Return void. Take enum
7601 s390_arch_option value instead of string and searching array.
7602 (s390_handle_option): Don't assert that global structures are in
7603 use. Access variables via opts pointer. Use error_at. Don't use
7604 sscanf for -mstack-guard= or -mstack-size=. Update call to
7605 s390_handle_arch_option.
7606 (s390_option_override): Update call to s390_handle_arch_option.
7607 (s390_emit_prologue): Use %d format for s390_stack_size in
7608 diagnostic. Use %wd for HOST_WIDE_INT.
7609 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
7610 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
7611 * config/s390/s390.opt (config/s390/s390-opts.h): New
7612 HeaderInclude entry.
7613 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
7614 s390_arch_flags, s390_warn_framesize): New Variable entries.
7615 (s390_arch_option): New Enum and EnumValue entries.
7616 (march=): Use Enum instead of Var.
7617 (mstack-guard=, mstack-size=): Use UInteger and Var.
7618 (mtune=): Use Enum.
7619
7620 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7621
7622 * config/score/score.c (score_handle_option): Don't assert that
7623 global structures are in use. Access target_flags via opts
7624 pointer. Use value of -march= option to determine target_flags
7625 settings.
7626 * config/score/score.opt (march=): Use Enum.
7627 (score_arch): New Enum and EnumValue entries.
7628
7629 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7630
7631 * config/mep/mep.c (option_mtiny_specified): Remove.
7632 (mep_option_override): Move register handling for -mivc2 from
7633 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
7634 instead of option_mtiny_specified.
7635 (mep_handle_option): Access target_flags via opts pointer. Don't
7636 assert that global structures are in use. Defer part of -mivc2
7637 handling and move it to mep_option_override.
7638 * config/mep/mep.opt (IVC2): New Mask entry.
7639 (mivc2): Use Var and Defer instead of Mask.
7640
7641 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7642
7643 * config/v850/v850-opts.h: New.
7644 * config/v850/v850.c (small_memory): Replace with
7645 small_memory_physical_max array. Make that array static const.
7646 (v850_handle_memory_option): Take integer value of argument. Take
7647 gcc_options pointer, option text and location. Return void.
7648 Update for changes to small memory structures.
7649 (v850_handle_option): Access target_flags via opts pointer. Don't
7650 assert that global structures are in use. Update calls to
7651 v850_handle_memory_option.
7652 (v850_encode_data_area): Update references to small memory settings.
7653 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
7654 (enum small_memory_type): Move to v850-opts.h.
7655 * config/v850/v850.opt (config/v850/v850-opts.h): New
7656 HeaderInclude entry.
7657 (small_memory_max): New Variable entry.
7658 (msda): Replace by pair of options msda= and msda-. Use UInteger.
7659 (mtda, mzda): Likewise.
7660
7661 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7662
7663 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
7664 pointer. Don't assert that global structures are in use.
7665
7666 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7667
7668 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
7669 via opts pointer. Don't assert that global structures are in use.
7670
7671 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7672
7673 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
7674 (munix=93): Use Var.
7675 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
7676 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
7677 * config/pa/pa-opts.h: New.
7678 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
7679 (pa_handle_option): Don't assert that global structures are in
7680 use. Access target_flags via opts pointer. Don't handle
7681 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
7682 OPT_munix_98 here.
7683 (pa_option_override): Handle deferred OPT_mfixed_range_.
7684
7685 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7686
7687 * config/mn10300/mn10300-opts.h: New.
7688 * config/mn10300/mn10300.c (mn10300_processor,
7689 mn10300_tune_string): Remove.
7690 (mn10300_handle_option): Don't assert that global structures are
7691 in use. Access mn10300_processor via opts pointer. Don't handle
7692 OPT_mtune_ here.
7693 * config/mn10300/mn10300.h (enum processor_type): Move to
7694 mn10300-opts.h.
7695 (mn10300_processor): Remove.
7696 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
7697 HeaderInclude entry.
7698 (mn10300_processor): New Variable entry.
7699 (mtune=): Use Var.
7700
7701 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7702
7703 * config/microblaze/microblaze.c: Don't include opts.h.
7704 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
7705 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
7706 (mno-clearbss): Use Var and Warn.
7707
7708 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7709
7710 * config/m32r/m32r-opts.h: New.
7711 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
7712 (m32r_handle_option): Don't assert that global structures are in
7713 use. Access target_flags and m32r_cache_flush_func via opts
7714 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
7715 OPT_mno_flush_trap here.
7716 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
7717 include of m32r-opts.h.
7718 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
7719 HeaderInclude entry.
7720 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
7721 (mmodel=): Use Enum and Var.
7722 (m32r_model): New Enum and EnumValue entries.
7723 (mno-flush-trap): Use Var.
7724 (msdata=): Use Enum and Var.
7725 (m32r_sdata): New Enum and EnumValue entries.
7726
7727 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7728
7729 * config/m32c/m32c.c: Don't include opts.h.
7730 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
7731 m32c_handle_option): Remove.
7732 (m32c_option_override): Check global_options_set.x_target_memregs
7733 instead of target_memregs_set.
7734 * config/m32c/m32c.h (target_memregs): Remove.
7735 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
7736 variable.
7737
7738 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7739
7740 * config/iq2000/iq2000-opts.h: New.
7741 * config/iq2000/iq2000.c: Don't include opts.h.
7742 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
7743 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
7744 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
7745 HeaderInclude entry.
7746 (iq2000_tune): New Variable entry.
7747 (march=): Add comment. Use Enum.
7748 (iq2000_arch): New Enum and EnumValue entries.
7749 (mcpu=): Use Enum and Var.
7750 (iq2000_tune): New Enum and EnumValue entries.
7751
7752 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7753
7754 * config/ia64/ia64-opts.h: New.
7755 * config/ia64/ia64.c (ia64_tune): Remove.
7756 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
7757 here. Use error_at.
7758 (ia64_option_override): Handle deferred OPT_mfixed_range_.
7759 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
7760 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
7761 HeaderInclude entry.
7762 (ia64_tune): New Variable entry.
7763 (mfixed-range=): Use Defer and Var.
7764 (mtune=): Use Enum and Var.
7765 (ia64_tune): New Enum and EnumValue entries.
7766
7767 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7768
7769 * config/frv/frv-opts.h: New.
7770 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
7771 frv-opts.h.
7772 (frv_cpu_type): Remove.
7773 * config/frv/frv.c: Don't include opts.h.
7774 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
7775 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
7776 (frv_cpu_type): New Variable entry.
7777 (frv_cpu): New Enum and EnumValue entries.
7778
7779 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7780
7781 * config/cris/cris.c (cris_handle_option): Access target_flags via
7782 opts pointer. Don't assert that global structures are in use.
7783 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
7784 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
7785
7786 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7787
7788 * config/bfin/bfin-opts.h: New.
7789 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
7790 bfin_si_revision, bfin_workarounds): Remove.
7791 (bfin_cpus): Make static const.
7792 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
7793 not bfin_lib_id_given.
7794 (bfin_handle_option): Don't set bfin_lib_id_given. Access
7795 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
7796 pointer. Use error_at. Don't assert that global structures are in use.
7797 * config/bfin/bfin.h: Include bfin-opts.h.
7798 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
7799 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
7800 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
7801 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
7802 entries.
7803
7804 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7805
7806 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
7807 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
7808 or -msoft-float here.
7809 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
7810 -msoft-float and -mhard-float.
7811 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
7812 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7813 msoft-float.
7814 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
7815 -msoft-float.
7816 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
7817 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
7818 not mhard-float.
7819 (LIBGCC_SPEC): Don't handle -msoft-float.
7820 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
7821 -mhard-float.
7822 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7823 msoft-float.
7824 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
7825 -mfloat-abi=*, not -msoft-float and -mhard-float.
7826 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
7827 -msoft-float.
7828 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
7829 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
7830 mhard-float and msoft-float.
7831 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
7832 mfloat-abi=soft in comments, not mhard-float and msoft-float.
7833 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7834 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
7835 mhard-float.
7836 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
7837 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
7838 msoft-float.
7839 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
7840 not mhard-float.
7841 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
7842 not msoft-float.
7843
7844 2011-03-22 Richard Henderson <rth@redhat.com>
7845
7846 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
7847 TARGET_ABI_WINDOWS_NT.
7848 (alpha_output_function_end_prologue): Likewise.
7849 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
7850 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7851 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
7852 (trap, *movsi_nt_vms): Likewise.
7853 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
7854 (*tablejump_osf_nt_internal): Remove.
7855 * config/alpha/predicates.md (input_operand): Only test Pmode.
7856
7857 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7858
7859 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
7860 via opts pointer. Use error_at. Don't assert that global
7861 structures are in use.
7862
7863 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7864
7865 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
7866 (ix86_handle_option): Access ix86_isa_flags and
7867 ix86_isa_flags_explicit via opts pointer. Don't assert that
7868 global structures are in use.
7869 (ix86_function_specific_save, ix86_function_specific_restore):
7870 Update ix86_isa_flags_explicit field name.
7871 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
7872 (ix86_isa_flags_explicit): Rename TargetSave entry to
7873 x_ix86_isa_flags_explicit.
7874
7875 2011-03-22 Richard Henderson <rth@redhat.com>
7876
7877 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
7878 (alpha_option_override, direct_return): Likewise.
7879 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
7880 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
7881 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
7882 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7883 (alpha_expand_epilogue, alpha_end_function): Likewise.
7884 (alpha_init_libfuncs): Likewise.
7885 (struct machine_function): Remove unicosmk members.
7886 (print_operand) ['t']: Remove.
7887 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
7888 unicosmk_output_module_name, unicosmk_output_common,
7889 current_section_align, unicosmk_output_text_section_asm_op,
7890 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
7891 unicosmk_section_type_flags, unicosmk_unique_section,
7892 unicosmk_asm_named_section, unicosmk_insert_attributes,
7893 unicosmk_output_align, unicosmk_defer_case_vector,
7894 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7895 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7896 unicosmk_output_ssib, unicosmk_add_call_info_word,
7897 unicosmk_extern_head, unicosmk_output_default_externs,
7898 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7899 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7900 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7901 * config/alpha/alpha-protos.h: Update.
7902 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7903 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7904 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7905 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7906 (*mulsi_se, mulvsi3): Likewise.
7907 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7908 (*divmodsi_internal, call, call_value, realign): Likewise.
7909 (moddi3, umoddi3): Likewise; remove duplicate expander.
7910 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7911 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7912 (*movdi_nofix): Remove r/U alternative.
7913 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7914 * config/alpha/constraints.md ("U"): Remove.
7915 * config/alpha/predicates.md (call_operand"): Don't test
7916 TARGET_ABI_UNICOSMK.
7917
7918 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7919
7920 * target.def (handle_option): Take gcc_options and
7921 cl_decoded_option pointers and location_t.
7922 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7923 * doc/tm.texi: Regenerate.
7924 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7925 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7926 * lto-opts.c (lto_reissue_options): Generate option structure for
7927 targetm.handle_option call.
7928 * opts.c (target_handle_option): Update call to
7929 targetm.handle_option. Remove assertions about values now passed
7930 down to hook.
7931 * targhooks.c (default_target_handle_option): New.
7932 * targhooks.h (default_target_handle_option): Declare.
7933 * config/alpha/alpha.c: Include opts.h.
7934 (alpha_handle_option): Update to new hook interface.
7935 * config/arm/arm.c: Include opts.h.
7936 (arm_handle_option): Update to new hook interface.
7937 * config/arm/t-arm (arm.o): Update dependencies.
7938 * config/bfin/bfin.c: Include opts.h.
7939 (bfin_handle_option): Update to new hook interface.
7940 * config/cris/cris.c: Include opts.h.
7941 (cris_handle_option): Update to new hook interface.
7942 * config/frv/frv.c: Include opts.h.
7943 (frv_handle_option): Update to new hook interface.
7944 * config/i386/i386.c: Include opts.h.
7945 (ix86_handle_option): Update to new hook interface.
7946 (ix86_valid_target_attribute_inner_p): Generate option structure
7947 for call to ix86_handle_option.
7948 * config/i386/t-i386 (i386.o): Update dependencies.
7949 * config/ia64/ia64.c: Include opts.h.
7950 (ia64_handle_option): Update to new hook interface.
7951 * config/ia64/t-ia64 (ia64.o): Update dependencies.
7952 * config/iq2000/iq2000.c: Include opts.h.
7953 (iq2000_handle_option): Update to new hook interface.
7954 * config/m32c/m32c.c: Include opts.h.
7955 (m32c_handle_option): Update to new hook interface.
7956 * config/m32r/m32r.c: Include opts.h.
7957 (m32r_handle_option): Update to new hook interface.
7958 * config/m68k/m68k.c: Include opts.h.
7959 (m68k_handle_option): Update to new hook interface.
7960 * config/mep/mep.c: Include opts.h.
7961 (mep_handle_option): Update to new hook interface.
7962 * config/microblaze/microblaze.c: Include opts.h.
7963 (microblaze_handle_option): Update to new hook interface.
7964 * config/mips/mips.c: Include opts.h.
7965 (mips_handle_option): Update to new hook interface.
7966 * config/mn10300/mn10300.c: Include opts.h.
7967 (mn10300_handle_option): Update to new hook interface.
7968 * config/pa/pa.c: Include opts.h.
7969 (pa_handle_option): Update to new hook interface.
7970 * config/pdp11/pdp11.c: Include opts.h.
7971 (pdp11_handle_option): Update to new hook interface.
7972 * config/rs6000/rs6000.c: Include opts.h.
7973 (rs6000_handle_option): Update to new hook interface.
7974 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7975 * config/rx/rx.c: Include opts.h.
7976 (rx_handle_option): Update to new hook interface.
7977 * config/s390/s390.c: Include opts.h.
7978 (s390_handle_option): Update to new hook interface.
7979 * config/score/score.c: Include opts.h.
7980 (score_handle_option): Update to new hook interface.
7981 * config/sh/sh.c: Include opts.h.
7982 (sh_handle_option): Update to new hook interface.
7983 * config/sparc/sparc.c: Include opts.h.
7984 (sparc_handle_option): Update to new hook interface.
7985 * config/v850/v850.c: Include opts.h.
7986 (v850_handle_option): Update to new hook interface.
7987
7988 2011-03-22 Joseph Myers <joseph@codesourcery.com>
7989
7990 * gcc.c (driver_unknown_option_callback): Only permit and save
7991 unknown -Wno- options.
7992 (driver_wrong_lang_callback): Save options directly instead of via
7993 driver_unknown_option_callback.
7994
7995 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7996
7997 * combine.c (simplify_set): Try harder to find the best CC mode when
7998 simplifying a nested COMPARE on the RHS.
7999
8000 2011-03-22 Joseph Myers <joseph@codesourcery.com>
8001
8002 * config/alpha/gnu.h: Remove.
8003 * config/arc: Remove directory.
8004 * config/arm/netbsd.h: Remove.
8005 * config/arm/t-pe: Remove.
8006 * config/crx: Remove directory.
8007 * config/i386/netbsd.h: Remove.
8008 * config/m68hc11: Remove directory.
8009 * config/m68k/uclinux-oldabi.h: Remove.
8010 * config/mcore/mcore-pe.h: Remove.
8011 * config/mcore/t-mcore-pe: Remove.
8012 * config/netbsd-aout.h: Remove.
8013 * config/rs6000/gnu.h: Remove.
8014 * config/sh/sh-symbian.h: Remove.
8015 * config/sh/symbian-base.c: Remove.
8016 * config/sh/symbian-c.c: Remove.
8017 * config/sh/symbian-cxx.c: Remove.
8018 * config/sh/symbian-post.h: Remove.
8019 * config/sh/symbian-pre.h: Remove.
8020 * config/sh/t-symbian: Remove.
8021 * config/svr3.h: Remove.
8022 * config/vax/netbsd.h: Remove.
8023 * config.build: Don't handle i[34567]86-*-pe.
8024 * config.gcc: Remove handling of deprecations for most deprecated
8025 targets.
8026 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
8027 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
8028 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
8029 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
8030 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
8031 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
8032 Remove cases.
8033 * config.host: Don't handle i[34567]86-*-pe.
8034 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
8035 (ASM_SPEC32): Don't handle -mcall-gnu.
8036 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
8037 -mcall-gnu.
8038 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
8039 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
8040 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8041 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
8042 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
8043 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
8044 conditional on SYMBIAN.
8045 * configure.ac: Don't handle powerpc*-*-gnu*.
8046 * configure: Regenerate.
8047 * doc/extend.texi (interrupt attribute): Don't mention CRX.
8048 * doc/install-old.texi (m6811, m6812): Don't mention.
8049 * doc/install.texi (arc-*-elf*): Don't document multilib option.
8050 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
8051 (m68k-uclinuxoldabi): Don't mention.
8052 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
8053 Remove.
8054 (-mcall-gnu): Remove.
8055 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
8056 families): Remove constraint documentation.
8057
8058 2011-03-22 Marius Strobl <marius@FreeBSD.org>
8059
8060 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
8061 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
8062 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
8063
8064 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8065
8066 PR target/48226
8067 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
8068 vector when peeking at the next token for vector, don't expand the
8069 keywords.
8070
8071 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
8072
8073 * config/avr/avr-protos.h (expand_epilogue): Change prototype
8074 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
8075 * config/avr/avr.c (init_cumulative_args)
8076 (avr_function_arg_advance): Use it.
8077 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
8078 sibcall epilogues.
8079 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
8080 (avr_function_ok_for_sibcall): ...this new function.
8081 (avr_lookup_function_attribute1): New static Function.
8082 (avr_naked_function_p, interrupt_function_p)
8083 (signal_function_p, avr_OS_task_function_p)
8084 (avr_OS_main_function_p): Use it.
8085 * config/avr/avr.md ("sibcall", "sibcall_value")
8086 ("sibcall_epilogue"): New expander.
8087 ("*call_insn", "*call_value_insn"): New insn.
8088 ("call_insn", "call_value_insn"): Remove
8089 ("call", "call_value", "epilogue"): Change expander to handle
8090 sibling calls.
8091
8092 2011-03-21 Nick Clifton <nickc@redhat.com>
8093
8094 * doc/invoke.texi (Overall Options): Move closing brace to end of
8095 options list.
8096 (Optimization Options): Add missing @gol.
8097 (Directory Options): Likewise.
8098 (i386 and x86-64 Options): Likewise.
8099 (RS6000 and PowerPC Options): Likewise.
8100 (i386 and x86-64 Windows Options): Likewise.
8101 (V850 Options): Add text missing from descriptions.
8102
8103 2011-03-22 Richard Henderson <rth@redhat.com>
8104
8105 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
8106 (avr_incoming_return_addr_rtx): New.
8107 (emit_push_byte): New.
8108 (expand_prologue): Use it. Remove incorrect dwarf annotation for
8109 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
8110 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
8111 (emit_pop_byte): New.
8112 (expand_epilogue): Use it. Pop frame pointer by bytes.
8113 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
8114 (INCOMING_RETURN_ADDR_RTX): New.
8115 (INCOMING_FRAME_SP_OFFSET): New.
8116 (ARG_POINTER_CFA_OFFSET): New.
8117 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
8118 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
8119 (pophi): Remove.
8120
8121 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
8122
8123 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8124
8125 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8126 (FUNCTION_ARG_ADVANCE): Likewise.
8127 * tm.texi.in: Change references to them to hook references.
8128 * tm.texi: Regenerate.
8129 * targhooks.c (default_function_arg): Eliminate check for target
8130 macro.
8131 (default_function_incoming_arg): Likewise.
8132 (default_function_arg_advance): Likewise.
8133 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8134 (function_arg_advance): Likewise.
8135 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8136
8137 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8138
8139 * tree.c (build_call_1): New function.
8140 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
8141
8142 2011-03-22 Richard Guenther <rguenther@suse.de>
8143
8144 PR tree-optimization/48228
8145 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
8146 for single-arg PHIs.
8147
8148 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
8149
8150 PR rtl-optimization/48143
8151 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
8152 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
8153 sse2_cvtps2pd): Likewise.
8154
8155 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8156
8157 * recog.c (canonicalize_change_group): Use validate_unshare_change.
8158
8159 2011-03-22 Richard Guenther <rguenther@suse.de>
8160
8161 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
8162 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
8163 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
8164 and REALIGN_LOAD_EXPR.
8165 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
8166 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
8167 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
8168 DOT_PROD_EXPR case ...
8169 (expand_expr_real_2): ... here.
8170 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
8171 and REALIGN_LOAD_EXPR.
8172 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
8173 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
8174 (vect_create_epilog_for_reduction): Likewise.
8175 (vectorizable_reduction): Likewise.
8176 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
8177 * tree-vect-stmts.c (vectorizable_load): Likewise.
8178
8179 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
8180
8181 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
8182
8183 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8184
8185 * config/s390/s390.c (s390_delegitimize_address): Fix offset
8186 handling for PLTOFF/GOTOFF.
8187
8188 2011-03-22 Nick Clifton <nickc@redhat.com>
8189
8190 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
8191 trailing backslash from the end of the macro definition.
8192
8193 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8194
8195 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
8196 and PLT unspecs.
8197
8198 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
8199
8200 * expr.h (prepare_operand): Move to...
8201 * optabs.h (prepare_operand): ...here and change the insn code
8202 parameter from "int" to "enum insn_code".
8203 (insn_operand_matches): Declare.
8204 * expr.c (init_expr_target): Use insn_operand_matches.
8205 (compress_float_constant): Likewise.
8206 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
8207 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
8208 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
8209 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
8210 Likewise.
8211 (gen_cond_trap): Likewise.
8212 (prepare_operand): Likewise. Change icode to an insn_code.
8213 (insn_operand_matches): New function.
8214 * reload.c (find_reloads_address_1): Use insn_operand_matches.
8215 * reload1.c (gen_reload): Likewise.
8216 * targhooks.c (default_secondary_reload): Likewise.
8217
8218 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
8219
8220 * config/alpha/alpha.md (unspec): New define_c_enum.
8221 (unspecv): Ditto.
8222
8223 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
8224
8225 PR debug/48214
8226 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
8227 between a call and its CALL_ARG_LOCATION note.
8228
8229 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
8230
8231 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
8232
8233 2011-03-21 Jakub Jelinek <jakub@redhat.com>
8234
8235 PR c/42544
8236 PR c/48197
8237 * c-common.c (shorten_compare): If primopN is first sign-extended
8238 to opN and then zero-extended to result type, set primopN to opN.
8239
8240 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
8241
8242 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
8243 for barrier handlers.
8244
8245 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8246
8247 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
8248 UNSPEC constants to be in the unspec enumeration, and redefine
8249 all UNSPECV constants to be in the unspecv enumeration, so that
8250 dumps print which unspec/unspec_volatile this is.
8251 * config/rs6000/vector.md (UNSPEC_*): Ditto.
8252 * config/rs6000/paired.md (UNSPEC_*): Ditto.
8253 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
8254 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
8255 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
8256
8257 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
8258 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
8259 UNSPECV_LWSYNC, since these are used as unspec_volatile.
8260 * config/rs6000/sync.md (isync, lwsync): Ditto.
8261
8262 2011-03-21 Richard Guenther <rguenther@suse.de>
8263
8264 * params.def (lto-min-partition): Fix typo.
8265
8266 2011-03-21 Richard Guenther <rguenther@suse.de>
8267
8268 PR c/47939
8269 * c-decl.c (grokdeclarator): Drop to the main variant only
8270 for array types. Drop flag_gen_aux_info check.
8271
8272 2011-03-21 Richard Guenther <rguenther@suse.de>
8273
8274 PR translation/47911
8275 * params.def (lto-partitions): Fix typo.
8276 (lto-min-partition): Fix wording.
8277
8278 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
8279
8280 * config/rs6000/t-freebsd: Remove duplication from file.
8281
8282 2011-03-21 Richard Guenther <rguenther@suse.de>
8283
8284 PR middle-end/47661
8285 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
8286
8287 2011-03-21 Richard Guenther <rguenther@suse.de>
8288
8289 PR lto/48210
8290 * params.def (lto-partitions): Require at least 1 partition.
8291
8292 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8293
8294 * gthr-solaris.h: Remove.
8295 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
8296 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
8297 (LIB_SPEC): Likewise.
8298 * config/sol2.opt (threads): Remove.
8299 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
8300 (sparc*-*-solaris2*): Likewise.
8301 * configure.ac (enable_threads): Enable solaris support.
8302 * configure: Regenerate.
8303 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
8304 * doc/install.texi (Configuration, --enable-threads=lib): Remove
8305 solaris.
8306
8307 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8308
8309 * config.gcc: Obsolete *-*-solaris2.8*.
8310 * doc/install.texi (Specific, *-*-solaris2*): Document it.
8311
8312 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8313
8314 PR bootstrap/48135
8315 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
8316 reference. Solaris 8 perl works.
8317
8318 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8319
8320 PR bootstrap/48135
8321 * doc/install.texi (Prerequisites): Move jar etc. up.
8322 Explain support library version requirements.
8323
8324 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8325
8326 PR bootstrap/48135
8327 * doc/install.texi (Prerequisites): Move Perl to build
8328 requirements. Always necessary on Solaris 2 with Sun ld.
8329
8330 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8331
8332 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
8333 binutils 2.21.
8334 (Specific, i?86-*-solaris2.[89]): Likewise.
8335 (Specific, i?86-*-solaris2.10): Likewise.
8336 (Specific, mips-sgi-irix6): Likewise.
8337 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
8338 Update for binutils 2.21.
8339
8340 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8341
8342 * configure.ac (gcc_cv_lto_plugin): Fix typo.
8343 Allow -fuse-linker-plugin for non-default plugin linker.
8344 * configure: Regenerate.
8345
8346 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
8347
8348 PR bootstrap/48167
8349 * gengtype.c (files_rules): Added rule for cp/parser.h.
8350
8351 2011-03-21 Jakub Jelinek <jakub@redhat.com>
8352
8353 PR target/48213
8354 * config/s390/s390.c (s390_delegitimize_address): Don't call
8355 lowpart_subreg if orig_x has BLKmode.
8356
8357 2011-03-21 Kai Tietz <ktietz@redhat.com>
8358
8359 PR target/12171
8360 * doc/plugins.texi: Adjust documentation for plugin register_callback.
8361 * tree.h (attribute_spec): Add new member affects_type_identity.
8362 * attribs.c (empty_attribute_table): Adjust attribute_spec
8363 initializers.
8364 * config/alpha/alpha.c: Likewise.
8365 * config/arc/arc.c: Likewise.
8366 * config/arm/arm.c: Likewise.
8367 * config/avr/avr.c: Likewise.
8368 * config/bfin/bfin.c: Likewise.
8369 * config/crx/crx.c: Likewise.
8370 * config/darwin.h: Likewise.
8371 * config/h8300/h8300.c: Likewise.
8372 * config/i386/cygming.h: Likewise.
8373 * config/i386/i386.c: Likewise.
8374 * config/ia64/ia64.c: Likewise.
8375 * config/m32c/m32c.c: Likewise.
8376 * config/m32r/m32r.c: Likewise.
8377 * config/m68hc11/m68hc11.c: Likewise.
8378 * config/m68k/m68k.c: Likewise.
8379 * config/mcore/mcore.c: Likewise.
8380 * config/mep/mep.c: Likewise.
8381 * config/microblaze/microblaze.c: Likewise.
8382 * config/mips/mips.c: Likewise.
8383 * config/rs6000/rs6000.c: Likewise.
8384 * config/rx/rx.c: Likewise.
8385 * config/sh/sh.c: Likewise.
8386 * config/sol2.h: Likewise.
8387 * config/sparc/sparc.c: Likewise.
8388 * config/spu/spu.c: Likewise.
8389 * config/stormy16/stormy16.c: Likewise.
8390 * config/v850/v850.c: Likewise.
8391
8392 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
8393
8394 * simplify-rtx.c (simplify_binary_operation_1): Handle
8395 (xor (and A B) C) case when B and C are both constants.
8396
8397 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
8398
8399 * tree-dfa.c (add_referenced_var): Fix typo in comment.
8400
8401 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
8402
8403 PR bootstrap/48168
8404 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
8405
8406 2011-03-20 Jakub Jelinek <jakub@redhat.com>
8407
8408 PR rtl-optimization/48156
8409 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
8410 assume df and df_lr are not NULL.
8411
8412 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8413
8414 PR debug/48023
8415 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
8416 between a call and its CALL_ARG_LOCATION note.
8417
8418 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
8419
8420 PR debug/48178
8421 * config/sh/sh.c (find_barrier): Don't emit a constant pool
8422 between a call and its corresponding CALL_ARG_LOCATION note.
8423
8424 2011-03-19 Anatoly Sokolov <aesok@post.ru>
8425
8426 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
8427 instead of loop. Use HARD_REGISTER_NUM_P predicate.
8428 * haifa-sched.c (setup_ref_regs): Ditto.
8429 * caller-save.c (add_used_regs_1): Ditto.
8430 * dse.c (look_for_hardregs): Ditto.
8431 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
8432 * sched-rgn.c (check_live_1): Ditto.
8433
8434 2011-03-18 Joseph Myers <joseph@codesourcery.com>
8435
8436 * c-decl.c (diagnose_mismatched_decls): Give an error for
8437 redefining a typedef with variably modified type.
8438
8439 2011-03-18 Joseph Myers <joseph@codesourcery.com>
8440
8441 * c-decl.c (grokfield): Don't allow typedefs for structures or
8442 unions with no tag by default.
8443 * doc/extend.texi (Unnamed Fields): Update.
8444
8445 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
8446
8447 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8448 Rewrite using indirect functions.
8449 (lwp_slwpcb): Ditto.
8450 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
8451 (avx_vinsertf128<mode>): Ditto.
8452
8453 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8454
8455 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
8456 unspecs.
8457
8458 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8459
8460 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
8461 splitting between a call and its corresponding CALL_ARG_LOCATION note.
8462
8463 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8464
8465 PR rtl-optimization/48170
8466 * gcse.c (hoist_code): Remove bogus asserts.
8467
8468 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
8469
8470 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
8471 computation for prologue/epilogue.
8472
8473 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8474
8475 * Makefile.in (check-consistency): Remove.
8476
8477 2011-03-18 Jakub Jelinek <jakub@redhat.com>
8478
8479 PR debug/48176
8480 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
8481 arange_table_in_use is 0, but either text_section_used or
8482 cold_text_section_used is true. Don't call it if
8483 !info_section_emitted.
8484
8485 2011-03-18 Anatoly Sokolov <aesok@post.ru>
8486
8487 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
8488 FUNCTION_VALUE_REGNO_P): Remove.
8489 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
8490 Remove.
8491 * config/avr/avr.c (avr_ret_register): Make static inline.
8492 (avr_function_value_regno_p): New function.
8493 (avr_libcall_value): Make static. Add 'func' argument.
8494 (avr_function_value): Make static. Rename 'func' argument to
8495 'fn_decl_or_type', forward it to avr_libcall_value. Call
8496 avr_ret_register function instead of RET_REGISTER macro.
8497 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8498
8499 2011-03-18 Jason Merrill <jason@redhat.com>
8500
8501 PR c++/23372
8502 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
8503
8504 2011-03-18 Richard Guenther <rguenther@suse.de>
8505
8506 * doc/install.texi (--enable-gold): Remove.
8507 (--with-plugin-ld): Document.
8508 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
8509
8510 2011-03-18 Andrew Pinski <pinskia@gmail.com>
8511
8512 PR middle-end/47790
8513 * expr.c (optimize_bitfield_assignment_op): Revamp to work
8514 again after expansion changes.
8515
8516 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
8517
8518 * combine.c (try_combine): Do simplification only call of
8519 subst() on i2 even when i1 is present. Update comments.
8520
8521 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
8522
8523 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
8524 and UNSPEC_PCREL_SYMOFF.
8525
8526 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8527
8528 * config/s390/s390.md: Use define_c_enum for the unspec constant
8529 definitions.
8530
8531 2011-03-18 Richard Henderson <rth@redhat.com>
8532 Jakub Jelinek <jakub@redhat.com>
8533
8534 PR bootstrap/48161
8535 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
8536 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
8537
8538 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8539
8540 PR middle-end/47725
8541 * combine.c (cant_combine_insn_p): Don't check zero/sign
8542 extended hard registers.
8543
8544 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8545
8546 PR middle-end/47725
8547 * combine.c (cant_combine_insn_p): Check zero/sign extended
8548 hard registers.
8549
8550 2011-03-17 Anatoly Sokolov <aesok@post.ru>
8551
8552 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8553 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
8554 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
8555 Change return type to bool.
8556 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8557
8558 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8559
8560 PR debug/48163
8561 * var-tracking.c (prepare_call_arguments): If CALL target
8562 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
8563 pc instead of looking it up using cselib_lookup and use
8564 Pmode for it if x has VOIDmode.
8565 * dwarf2out.c (gen_subprogram_die): If also both first and
8566 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
8567
8568 PR debug/48163
8569 * function.c (assign_parms): For data.passed_pointer parms
8570 use MEM of data.entry_parm instead of data.entry_parm itself
8571 as DECL_INCOMING_RTL.
8572 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
8573 also when passed and declared mode is the same, DECL_RTL
8574 is a MEM with pseudo as address and DECL_INCOMING_RTL is
8575 a MEM too.
8576
8577 2011-03-16 Jeff Law <law@redhat.com>
8578
8579 PR rtl-optimization/37273
8580 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8581 handle them like argument loads from stack slots. Do not double
8582 count memory for memory constants and argument loads from stack slots.
8583
8584 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8585
8586 PR debug/48160
8587 * var-tracking.c (prepare_call_arguments): Check SUBREG.
8588
8589 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8590
8591 PR target/48171
8592 * config/i386/i386.opt: Add Save to -mavx and -mfma.
8593
8594 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8595
8596 PR bootstrap/48153
8597 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
8598 if dwarf_strict.
8599 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
8600 Clear call_arg_locations and call_arg_loc_last always.
8601
8602 PR middle-end/48152
8603 * var-tracking.c (prepare_call_arguments): If argument needs to be
8604 passed by reference, adjust argtype and mode.
8605
8606 2011-03-17 Richard Guenther <rguenther@suse.de>
8607
8608 PR middle-end/48134
8609 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
8610 a value make sure to fold the statement.
8611
8612 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
8613
8614 PR target/43872
8615 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
8616 return condition with !cfun->calls_alloca.
8617
8618 2011-03-17 Richard Guenther <rguenther@suse.de>
8619
8620 PR bootstrap/48148
8621 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8622 origin for decls in other ltrans units.
8623 (input_varpool_node): Likewise.
8624
8625 2011-03-17 Richard Guenther <rguenther@suse.de>
8626
8627 PR middle-end/48165
8628 * tree-object-size.c (compute_object_offset): Properly return
8629 the offset operand of MEM_REFs as sizetype.
8630
8631 2011-03-17 Jakub Jelinek <jakub@redhat.com>
8632
8633 PR rtl-optimization/48141
8634 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
8635 * dse.c: Include params.h.
8636 (active_local_stores_len): New variable.
8637 (add_wild_read, dse_step1): Clear it when setting active_local_stores
8638 to NULL.
8639 (record_store, check_mem_read_rtx): Decrease it when removing
8640 from the chain.
8641 (scan_insn): Likewise. Increase it when adding to chain, if it
8642 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
8643 set active_local_stores to NULL before the addition.
8644 * Makefile.in (dse.o): Depend on $(PARAMS_H).
8645
8646 PR rtl-optimization/48141
8647 * dse.c (record_store): If no positions are needed in an insn
8648 that cannot be deleted, at least unchain it from active_local_stores.
8649
8650 2011-03-16 Dodji Seketeli <dodji@redhat.com>
8651
8652 PR debug/47510
8653 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
8654 (lookup_type_die_strip_naming_typedef): ... here.
8655 (get_context_die): Use it.
8656 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
8657 the anonymous struct named by the naming typedef.
8658
8659 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
8660
8661 PR target/48154
8662 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
8663 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8664
8665 2011-03-16 Jeff Law <law@redhat.com>
8666
8667 * tree-vrp.c (identify_jump_threads): Slightly simplify type
8668 check for operands of conditional. Allow type to be a pointer.
8669
8670 2011-03-16 Richard Guenther <rguenther@suse.de>
8671
8672 PR tree-optimization/48149
8673 * fold-const.c (fold_binary_loc): Fold
8674 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
8675
8676 2011-03-16 Richard Guenther <rguenther@suse.de>
8677
8678 PR tree-optimization/26134
8679 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
8680 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
8681 (non_rewritable_mem_ref_base): Handle complex type component
8682 accesses, constrain offsets for vector and complex extracts
8683 more properly.
8684
8685 2011-03-16 Richard Guenther <rguenther@suse.de>
8686
8687 PR tree-optimization/48146
8688 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
8689 operands avoiding the need for renaming.
8690
8691 2011-03-16 Richard Guenther <rguenther@suse.de>
8692
8693 * gimple-fold.c (maybe_fold_reference): Open-code relevant
8694 constant folding. Move MEM_REF canonicalization first.
8695 Rely on fold_const_aggregate_ref for initializer folding.
8696 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
8697
8698 2011-03-16 Jakub Jelinek <jakub@redhat.com>
8699
8700 PR middle-end/48136
8701 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8702 arg0/arg1 or their arguments are always fold converted to matching
8703 types.
8704
8705 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
8706 to nargs.
8707
8708 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8709
8710 PR lto/46944
8711 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
8712 Handle in-tree gold.
8713 (ld_vers): Extract binutils version for gold.
8714 (gcc_cv_ld_hidden): Handle gold here.
8715 (gcc_cv_lto_plugin): Determine level of linker plugin support.
8716 * configure: Regenerate.
8717 * config.in: Regenerate.
8718 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
8719 -fuse-linker-plugin otherwise.
8720 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
8721 (LINK_COMMAND_SPEC): Use it.
8722 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
8723
8724 2011-03-16 Jakub Jelinek <jakub@redhat.com>
8725
8726 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
8727 * calls.c: Remove debug.h include.
8728 (emit_call_1): Don't call virtual_call_token debug hook.
8729 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
8730 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
8731 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
8732 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
8733 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
8734 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
8735 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
8736 dwarf2out_virtual_call): Remove.
8737 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
8738 copy_call_info and virtual_call hooks.
8739 (dwarf2out_init): Don't initialize vcall_insn_table,
8740 debug_dcall_section and debug_vcall_section.
8741 (prune_unused_types): Don't mark nodes from dcall_table.
8742 (dwarf2out_finish): Don't output dcall or vcall tables.
8743 * final.c (final_scan_insn): Don't call direct_call or
8744 virtual_call debug hooks.
8745 * debug.h (struct gcc_debug_hooks): Remove direct_call,
8746 virtual_call_token, copy_call_info and virtual_call hooks.
8747 (debug_nothing_uid): Remove prototype.
8748 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
8749 copy_call_info and virtual_call hooks.
8750 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8751 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
8752 * debug.c (do_nothing_debug_hooks): Likewise.
8753 (debug_nothing_uid): Remove.
8754 * doc/invoke.texi (-fenable-icf-debug): Remove.
8755 * common.opt (-fenable-icf-debug): Likewise.
8756
8757 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
8758 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
8759 call's MEM. Handle functions returning aggregate through a hidden
8760 first pointer. For virtual calls add clobbered pc to call arguments
8761 chain.
8762 * dwarf2out.c (gen_subprogram_die): Emit
8763 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
8764 can't be emitted.
8765
8766 PR debug/45882
8767 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
8768 * rtl.h (ENTRY_VALUE_EXP): Define.
8769 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
8770 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
8771 * print-rtl.c (print_rtx): Likewise.
8772 * gengtype.c (adjust_field_rtx_def): Likewise.
8773 * var-tracking.c (vt_add_function_parameter): Adjust
8774 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
8775 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
8776 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
8777 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
8778 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
8779
8780 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
8781 Call var_location debug hook even on CALL_INSNs.
8782 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
8783 * rtl.def (ENTRY_VALUE): New.
8784 * dwarf2out.c: Include cfglayout.h.
8785 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8786 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
8787 (struct call_arg_loc_node): New type.
8788 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
8789 tail_call_site_count): New variables.
8790 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
8791 DW_TAG_GNU_call_site_parameter.
8792 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
8793 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
8794 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
8795 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
8796 and DW_AT_GNU_all_source_call_sites.
8797 (mem_loc_descriptor): Handle ENTRY_VALUE.
8798 (add_src_coords_attributes): Don't add enything if
8799 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
8800 (dwarf2out_abstract_function): Save and clear call_arg_location,
8801 call_site_count and tail_call_site_count around dwarf2out_decl call.
8802 (gen_call_site_die): New function.
8803 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
8804 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
8805 (dwarf2out_function_decl): Clear call_arg_locations,
8806 call_arg_loc_last, set call_site_count and tail_call_site_count
8807 to -1 and free block_map.
8808 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
8809 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
8810 followed by any real instructions.
8811 (dwarf2out_begin_function): Set call_site_count and
8812 tail_call_site_count to 0.
8813 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
8814 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
8815 attempt to force a DIE for it and worst case remove the attribute.
8816 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
8817 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
8818 the decl itself.
8819 * var-tracking.c: Include tm_p.h.
8820 (vt_stack_adjustments): For calls call note_register_arguments.
8821 (argument_reg_set): New variable.
8822 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
8823 ensure the VALUE is resolved.
8824 (call_arguments): New variable.
8825 (prepare_call_arguments): New function.
8826 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
8827 (struct expand_loc_callback_data): Add ignore_cur_loc field.
8828 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
8829 always use the best expression.
8830 (vt_expand_loc): Add ignore_cur_loc argument.
8831 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
8832 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
8833 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
8834 note for all calls.
8835 (vt_add_function_parameter): Use cselib_lookup_from_insn.
8836 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
8837 argument. Don't call cselib_preserve_only_values and
8838 cselib_reset_table.
8839 (note_register_arguments): New function.
8840 (vt_initialize): Compute argument_reg_set. Call
8841 vt_add_function_parameters before processing basic blocks instead of
8842 afterwards. For calls call prepare_call_arguments before calling
8843 cselib_process_insn.
8844 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
8845 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
8846 (var-tracking.o): Depend on $(TM_P_H).
8847 * cfglayout.h (insn_scope): New prototype.
8848 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
8849 * cfglayout.c (insn_scope): No longer static.
8850 * insn-notes.def (CALL_ARG_LOCATION): New.
8851 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
8852 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
8853 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
8854 nothing for DECL_EXTERNAL BLOCK_VARS.
8855
8856 2011-03-16 Alan Modra <amodra@gmail.com>
8857
8858 PR target/45844
8859 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8860 create invalid offset address for vsx splat insn.
8861 * config/rs6000/predicates.md (splat_input_operand): New.
8862 * config/rs6000/vsx.md (vsx_splat_*): Use it.
8863
8864 2011-03-15 Xinliang David Li <davidxl@google.com>
8865
8866 PR c/47837
8867 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
8868 (normalize_preds): New function.
8869 (is_use_properly_guarded): Normalize def predicates.
8870
8871 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8872
8873 PR target/46788
8874 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
8875 in the output template.
8876
8877 2011-03-15 Richard Guenther <rguenther@suse.de>
8878
8879 PR middle-end/47650
8880 * tree-pretty-print.c (dump_function_declaration): Properly
8881 dump unprototyped and varargs function types.
8882
8883 2011-03-15 Richard Guenther <rguenther@suse.de>
8884
8885 PR tree-optimization/13954
8886 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
8887 and friends.
8888
8889 2011-03-15 Richard Guenther <rguenther@suse.de>
8890
8891 PR tree-optimization/48037
8892 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
8893 selects into BIT_FIELD_REFs.
8894 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8895 vector select.
8896
8897 2011-03-15 Jakub Jelinek <jakub@redhat.com>
8898
8899 PR tree-optimization/48129
8900 * builtins.c (fold_builtin_snprintf): Convert to type of
8901 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8902 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8903
8904 2011-03-15 Richard Guenther <rguenther@suse.de>
8905
8906 PR tree-optimization/41490
8907 * tree-ssa-dce.c (propagate_necessity): Handle returns without
8908 value but with VUSE.
8909 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8910 return statements.
8911 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8912 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8913 * tree-tailcall.c (find_tail_calls): Ignore returns.
8914
8915 2011-03-15 Richard Guenther <rguenther@suse.de>
8916
8917 PR middle-end/48031
8918 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8919 or variable-indexed array accesses when in gimple form.
8920
8921 2011-03-15 Richard Guenther <rguenther@suse.de>
8922
8923 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
8924
8925 2011-03-15 Alan Modra <amodra@gmail.com>
8926
8927 PR target/48032
8928 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8929 presume symbol_refs without a symbol_ref_decl are suitably
8930 aligned, nor other trees we may see here. Handle anchor symbols.
8931 (legitimate_constant_pool_address_p): Comment. Add mode param.
8932 Check cmodel=medium addresses. Adjust all calls.
8933 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8934 creating cmodel=medium optimized access to locals.
8935 * config/rs6000/constraints.md (R): Pass QImode to
8936 legitimate_constant_pool_address_p.
8937 * config/rs6000/predicates.md (input_operand): Pass mode to
8938 legitimate_constant_pool_address_p.
8939 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8940 Update prototype.
8941
8942 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8943
8944 PR target/48053
8945 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8946 64-bit constants being loaded into registers other than GPRs such
8947 as loading 0 into a VSX register.
8948
8949 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8950
8951 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
8952
8953 2011-03-14 Jakub Jelinek <jakub@redhat.com>
8954
8955 PR middle-end/47917
8956 * builtins.c (fold_builtin_snprintf): New function.
8957 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8958 (fold_builtin_4): Likewise.
8959
8960 PR middle-end/38878
8961 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8962 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
8963 and C - X == X also strip nops from +/-/p+ operand.
8964 When optimizing -X == C, fold C to arg0's type.
8965
8966 PR debug/47946
8967 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
8968 emit it as add_AT_int instead of add_AT_unsigned.
8969
8970 2011-03-14 Tom Tromey <tromey@redhat.com>
8971
8972 * unwind-dw2.c: Include sys/sdt.h if it exists.
8973 (_Unwind_DebugHook): Use STAP_PROBE2.
8974 * config.in, configure: Rebuild.
8975 * configure.ac: Check for sys/sdt.h.
8976
8977 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
8978
8979 * config/i386/i386.md (ROUND_FLOOR): New constant.
8980 (ROUND_CEIL): Ditto.
8981 (ROUND_TRUNC): Ditto.
8982 (ROUND_MXCSR): Ditto.
8983 (ROUND_NO_EXC): Ditto.
8984 (rint<mode>2): Use new defines instead of numerical constants.
8985 (floor<mode>2): Ditto.
8986 (ceil<mode>2): Ditto.
8987 (btrunc<mode>2): Ditto.
8988 * config/i386/i386-builtin-types.def: Define ROUND function type
8989 aliases.
8990 * config/i386/i386.c (enum ix86_builtins): Add
8991 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
8992 (struct builtin_description): Add
8993 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
8994 (ix86_expand_sse_round): New static function.
8995 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
8996 function types.
8997 (ix86_builtin_vectorized_function): Handle
8998 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8999
9000 2011-03-14 Tom Tromey <tromey@redhat.com>
9001
9002 * c-parser.c (c_parser_asm_string_literal): Clear
9003 warn_overlength_strings.
9004
9005 2011-03-14 Tom Tromey <tromey@redhat.com>
9006
9007 * c-parser.c (disable_extension_diagnostics): Save
9008 warn_overlength_strings.
9009 (restore_extension_diagnostics): Restore warn_overlength_strings.
9010
9011 2011-03-14 Jakub Jelinek <jakub@redhat.com>
9012
9013 * BASE-VER: Change to 4.7.0.
9014
9015 2011-03-14 Richard Guenther <rguenther@suse.de>
9016
9017 PR middle-end/48098
9018 * tree.c (build_vector_from_val): Adjust assert to requirements
9019 and reality.
9020
9021 2011-03-14 Jakub Jelinek <jakub@redhat.com>
9022
9023 PR bootstrap/48102
9024 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
9025
9026 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
9027
9028 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
9029 terms of target_flags_explicit. Adjust copyright year.
9030
9031 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
9032 * config/rs6000/t-freebsd: New file. Add override for
9033 LIB2FUNCS_EXTRA.
9034
9035 2011-03-13 Chris Demetriou <cgd@google.com>
9036
9037 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
9038 (-fno-diagnostics-show-option): this, to reflect current default.
9039 (-Werror=): Update text about -fno-diagnostics-show-option.
9040
9041 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
9042
9043 PR target/48053
9044 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9045 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
9046 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
9047 mode is not V2DImode or V2DFmode.
9048 (vspltis_constant): Do not handle V2DImode and V2DFmode.
9049 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
9050 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
9051 registers to 0.
9052 (movdi_internal64): Likewise.
9053
9054 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
9055
9056 PR tree-optimization/47127
9057 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
9058 parameter.
9059 (set_cloog_options): Same.
9060 (scop_to_clast): Same.
9061 (print_clast_stmt): Do not call cloog_state_malloc and
9062 cloog_state_free.
9063 (print_generated_program): Same.
9064 (gloog): Same.
9065 * graphite-clast-to-gimple.h (cloog_state): Declared.
9066 (scop_to_clast): Adjust declaration.
9067 * graphite.c (cloog_state): Defined here.
9068 (graphite_initialize): Call cloog_state_malloc.
9069 (graphite_finalize): Call cloog_state_free.
9070
9071 2011-03-11 Jason Merrill <jason@redhat.com>
9072
9073 * attribs.c (lookup_attribute_spec): Take const_tree.
9074 * tree.h: Adjust.
9075
9076 2011-03-11 Joseph Myers <joseph@codesourcery.com>
9077
9078 * config/sparc/sparc.c (sparc_option_override): Use
9079 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
9080
9081 2011-03-11 Richard Guenther <rguenther@suse.de>
9082
9083 PR tree-optimization/48067
9084 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
9085 multiplication result will be only used once on the target
9086 stmt.
9087
9088 2011-03-11 Richard Guenther <rguenther@suse.de>
9089
9090 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
9091
9092 2011-03-11 Richard Guenther <rguenther@suse.de>
9093
9094 PR lto/48073
9095 * tree.c (find_decls_types_r): Do not walk types only reachable
9096 from IDENTIFIER_NODEs.
9097
9098 2011-03-11 Jakub Jelinek <jakub@redhat.com>
9099
9100 PR middle-end/48044
9101 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
9102 all vnode->force_output nodes as needed.
9103
9104 2011-03-11 Jason Merrill <jason@redhat.com>
9105
9106 PR c++/48069
9107 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
9108 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
9109
9110 2011-03-11 Martin Jambor <mjambor@suse.cz>
9111
9112 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
9113 cgraph_node.
9114
9115 2011-03-11 Jakub Jelinek <jakub@redhat.com>
9116
9117 PR tree-optimization/48063
9118 * ipa-inline.c (cgraph_decide_inlining): Don't try to
9119 inline functions called once if !tree_can_inline_p (node->callers).
9120
9121 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9122
9123 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
9124 extra_objs.
9125 * config/score/score3.c: Delete.
9126 * config/score/score3.h: Delete.
9127 * config/score/mul-div.S: Delete.
9128 * config/score/sfp-machine.h: Add new file.
9129 * config/score/constraints.md: Add new file.
9130 * config/score/t-score-softfp: Add new file.
9131 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9132 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
9133 (score7_extra_constraint): Delete.
9134 (score7_option_override): Remove unused code.
9135 * config/score/score.c: Remove score3 and score5 define and code.
9136 * config/score/score.h: Remove score3 and score5 define and code.
9137 * config/score/score.md: Remove score3 template and unusual insn.
9138 * config/score/score.opt: Remove score3 and score5 options.
9139
9140 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9141
9142 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
9143 when _HPUX_SOURCE is defined.
9144 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
9145
9146 2011-03-10 Jason Merrill <jason@redhat.com>
9147
9148 PR c++/48029
9149 * stor-layout.c (layout_type): Don't set structural equality
9150 on arrays of incomplete type.
9151 * tree.c (type_hash_eq): Handle comparing them properly.
9152
9153 2011-03-10 Jakub Jelinek <jakub@redhat.com>
9154
9155 PR debug/48043
9156 * config/s390/s390.c (s390_delegitimize_address): Make sure the
9157 result mode matches original rtl mode.
9158
9159 2011-03-10 Nick Clifton <nickc@redhat.com>
9160
9161 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
9162 (andsi3, andsi3_flags): Fix timings for three operand alternative.
9163
9164 2011-03-09 Jakub Jelinek <jakub@redhat.com>
9165
9166 PR rtl-optimization/47866
9167 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
9168 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
9169 if target wasn't scalar.
9170 * function.c (assign_stack_temp_for_type): Assert that neither
9171 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
9172 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
9173 macro.
9174 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
9175
9176 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9177
9178 * config/s390/s390-protos.h (s390_label_align): New prototype.
9179 * config/s390/s390.c (s390_label_align): New function.
9180 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
9181
9182 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
9183
9184 PR target/47755
9185 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
9186 V2DI/V2DF constants. Only all 0's or all 1's are easy.
9187 (output_vec_const_move): Ditto.
9188
9189 2011-03-08 Anatoly Sokolov <aesok@post.ru>
9190
9191 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
9192 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
9193 * config/mips/mips.c (mips_preferred_reload_class): Make static.
9194 Change 'rclass' argument and result type to reg_class_t.
9195 (TARGET_PREFERRED_RELOAD_CLASS): Define.
9196
9197 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
9198
9199 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9200 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
9201 (TARGET_MEMORY_MOVE_COST): Define.
9202 (avr_register_move_cost, avr_memory_move_cost): New Functions.
9203
9204 2011-03-08 Jakub Jelinek <jakub@redhat.com>
9205
9206 PR debug/47881
9207 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
9208 removed anything.
9209
9210 PR tree-optimization/48022
9211 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
9212 for EQ/NE_EXPR.
9213
9214 2011-03-07 Jakub Jelinek <jakub@redhat.com>
9215
9216 PR debug/47991
9217 * var-tracking.c (find_use_val): Return NULL for
9218 cui->sets && cui->store_p BLKmode MEMs.
9219
9220 2011-03-07 Anatoly Sokolov <aesok@post.ru>
9221
9222 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
9223 Remove.
9224 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
9225 xstormy16_print_operand_address): Remove.
9226 * config/stormy16/stormy16.c (xstormy16_print_operand,
9227 xstormy16_print_operand_address): Make static.
9228 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9229
9230 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
9231
9232 PR target/47862
9233 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9234 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
9235 before definition.
9236
9237 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
9238
9239 PR bootstrap/48000
9240 * cfgloopmanip.c (fix_bb_placements): Return immediately
9241 if FROM is BASE_LOOP's header.
9242
9243 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
9244
9245 * gimplify.c (gimplify_function_tree): Fix building calls
9246 to __builtin_return_address.
9247
9248 2011-03-07 Alan Modra <amodra@gmail.com>
9249
9250 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
9251 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
9252 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
9253 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
9254 return_mode args.
9255 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
9256 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
9257 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
9258 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
9259 * config/rs6000/rs6000.c
9260 (rs6000_elf_end_indicate_exec_stack): Rename to..
9261 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
9262 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
9263 (rs6000_file_start): ..here.
9264 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
9265 file scope variables.
9266 (call_ABI_of_interest): New function.
9267 (init_cumulative_args): Set above vars when function return value
9268 is a float, vector, or small struct.
9269 (rs6000_function_arg_advance_1): Likewise for function args.
9270 (rs6000_va_start): Set rs6000_passes_float if variable arg function
9271 references float args.
9272
9273 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
9274
9275 * doc/cfg.texi: Remove "See" before @ref.
9276 * doc/invoke.texi: Likewise.
9277
9278 2011-03-05 Jason Merrill <jason@redhat.com>
9279
9280 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
9281
9282 2011-03-05 Anthony Green <green@moxielogic.com>
9283
9284 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
9285
9286 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
9287
9288 PR rtl-optimization/47899
9289 * cfgloopmanip.c (fix_bb_placements): Fix first argument
9290 to flow_loop_nested_p when moving the loop upward.
9291
9292 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
9293
9294 PR target/47719
9295 * arm.md (movhi_insn_arch4): Accept any immediate constant.
9296
9297 2011-03-05 Jakub Jelinek <jakub@redhat.com>
9298
9299 PR tree-optimization/47967
9300 * ipa-cp.c (build_const_val): Return NULL instead of creating
9301 VIEW_CONVERT_EXPR for mismatching sizes.
9302 (ipcp_create_replace_map): Return NULL if build_const_val failed.
9303 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
9304 give up on versioning.
9305
9306 2011-03-05 Alan Modra <amodra@gmail.com>
9307
9308 PR target/47986
9309 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9310 full cmodel medium/large lo_sum + high addresses.
9311
9312 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9313
9314 * config/s390/s390.c (s390_decompose_address): Reject non-literal
9315 pool references in UNSPEC_LTREL_OFFSET.
9316
9317 2011-03-04 Jan Hubicka <jh@suse.cz>
9318
9319 PR lto/47497
9320 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
9321 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
9322 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
9323 Add node pointers.
9324 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
9325 cgraph_add_thunk): Add node pointers.
9326 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
9327 associated to right node.
9328 (input_node): Update use of cgraph_same_body_alias
9329 and cgraph_add_thunk.
9330
9331 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
9332
9333 * config/i386/i386.opt (mprefer-avx128): New flag.
9334 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
9335 modes when the flag -mprefer-avx128 is on.
9336
9337 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
9338
9339 * dwarf2out.c (compare_loc_operands): Fix address handling.
9340
9341 2011-03-04 Alan Modra <amodra@gmail.com>
9342
9343 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
9344
9345 2011-03-04 Richard Guenther <rguenther@suse.de>
9346
9347 PR middle-end/47968
9348 * expmed.c (extract_bit_field_1): Prefer vector modes that
9349 vec_extract patterns can handle.
9350
9351 2011-03-04 Richard Guenther <rguenther@suse.de>
9352
9353 PR middle-end/47975
9354 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
9355
9356 2011-03-04 Richard Henderson <rth@redhat.com>
9357
9358 * explow.c (emit_stack_save): Remove 'after' parameter.
9359 (emit_stack_restore): Likewise.
9360 * expr.h: Update to match.
9361 * builtins.c, calls.c, stmt.c: Likewise.
9362 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
9363 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
9364 * function.c (expand_function_end): Insert the emit_stack_save
9365 sequence before parm_birth_insn instead of after.
9366
9367 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
9368
9369 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
9370 (ssse3_pmaddubsw128): Ditto.
9371 (ssse3_pmaddubsw): Ditto.
9372
9373 2011-03-03 Steve Ellcey <sje@cup.hp.com>
9374
9375 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
9376
9377 2011-03-03 Jakub Jelinek <jakub@redhat.com>
9378
9379 PR c/47963
9380 * gimplify.c (omp_add_variable): Only call omp_notice_variable
9381 on TYPE_SIZE_UNIT if it is a DECL.
9382
9383 PR debug/47283
9384 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
9385 first operand is not is_gimple_mem_ref_addr, try to fold it.
9386 If the operand still isn't is_gimple_mem_ref_addr, clear
9387 MEM_EXPR on op0.
9388
9389 2011-03-03 Richard Guenther <rguenther@suse.de>
9390
9391 PR middle-end/47283
9392 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
9393 match comment.
9394 (refs_may_alias_p_1): For release branches return true if
9395 we are confused by our input.
9396
9397 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9398
9399 * config/s390/s390.c (s390_function_value): Rename to ...
9400 (s390_function_and_libcall_value): ... this.
9401 (s390_function_value): New function.
9402 (s390_libcall_value): New function.
9403 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
9404 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
9405 target macro definitions.
9406 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
9407
9408 2011-03-02 Joseph Myers <joseph@codesourcery.com>
9409
9410 * config/i386/freebsd64.h (CC1_SPEC): Define.
9411 * config/i386/linux64.h (CC1_SPEC): Define.
9412 * config/i386/x86-64.h (CC1_SPEC): Don't define.
9413
9414 2011-03-02 Anatoly Sokolov <aesok@post.ru>
9415
9416 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9417 Remove.
9418 * config/stormy16/stormy16.c: Include reload.h.
9419 (xstormy16_memory_move_cost): New function.
9420 (TARGET_MEMORY_MOVE_COST): Define.
9421
9422 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
9423
9424 PR rtl-optimization/47925
9425 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
9426 with side effects. Remove the more-specific check for volatile asms.
9427
9428 2011-03-02 Alan Modra <amodra@gmail.com>
9429
9430 PR target/47935
9431 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
9432 toc relative addresses for valid offsets.
9433
9434 2011-03-01 Richard Guenther <rguenther@suse.de>
9435
9436 PR tree-optimization/47890
9437 * tree-vect-loop.c (get_initial_def_for_induction): Set
9438 related stmt properly.
9439
9440 2011-03-01 Richard Guenther <rguenther@suse.de>
9441
9442 PR lto/47924
9443 * lto-streamer.c (lto_record_common_node): Also register
9444 the canonical type.
9445
9446 2011-03-01 Richard Guenther <rguenther@suse.de>
9447
9448 PR lto/46911
9449 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9450 Do not stream DECL_ABSTRACT_ORIGIN.
9451 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9452 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9453 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9454 Do not stream DECL_ABSTRACT_ORIGIN.
9455 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9456 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9457
9458 2011-02-28 Anatoly Sokolov <aesok@post.ru>
9459
9460 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
9461 FUNCTION_VALUE_REGNO_P): Remove.
9462 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
9463 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
9464 Add 'outgoing' argument.
9465 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
9466 function.
9467 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9468 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9469
9470 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
9471
9472 PR debug/28047
9473 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
9474 (lookup_filename): Likewise.
9475 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
9476
9477 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
9478 Jakub Jelinek <jakub@redhat.com>
9479
9480 PR middle-end/47893
9481 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
9482 (assign_stack_local_1): Change last argument type to int.
9483 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
9484 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
9485 don't record padding space into frame_space_list nor use those areas.
9486 (assign_stack_local): Adjust caller.
9487 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
9488 of assign_stack_local, pass 0 as last argument.
9489 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
9490 callers.
9491
9492 2011-02-28 Jakub Jelinek <jakub@redhat.com>
9493
9494 PR debug/47283
9495 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
9496 Use target address_mode and pointer_mode hooks instead of hardcoded
9497 Pmode and ptr_mode. Handle some simple cases of extending if
9498 POINTERS_EXTEND_UNSIGNED < 0.
9499 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
9500 Call convert_debug_memory_address.
9501 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
9502 convert_debug_memory_address.
9503
9504 PR middle-end/46790
9505 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
9506 * configure: Regenerated.
9507 * config.in: Regenerated.
9508 * varasm.c (default_function_section): Return NULL
9509 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
9510
9511 2011-02-28 Martin Jambor <mjambor@suse.cz>
9512
9513 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
9514 the description to match the printed values.
9515
9516 2011-02-28 Richard Guenther <rguenther@suse.de>
9517
9518 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
9519 of the copied scope tree.
9520
9521 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9522
9523 * doc/extend.texi (Function Attributes): Avoid deeply (and
9524 wrongly) nested tables.
9525
9526 2011-02-27 Jakub Jelinek <jakub@redhat.com>
9527
9528 PR middle-end/47903
9529 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
9530 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
9531 r isn't op0 nor op1.
9532
9533 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
9534
9535 * config/avr/avr.md: Remove magic comment for emacs.
9536
9537 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
9538
9539 PR target/45261
9540 * config/avr/avr.c (avr_option_override): Use error on bad options.
9541 (avr_help): New function.
9542 (TARGET_HELP): Define.
9543
9544 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
9545
9546 PR target/42240
9547 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
9548 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
9549
9550 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
9551
9552 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
9553 (ARM Options): Ditto.
9554 (i386 and x86-64 Options): Ditto.
9555 (RX Options): Ditto.
9556 (SPARC Options): Ditto.
9557
9558 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
9559
9560 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
9561 FreeBSD 6 and later. Generally use cpu generic.
9562
9563 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
9564
9565 * doc/cpp.texi: Update copyright years.
9566
9567 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
9568
9569 PR target/46898
9570 * config/lm32/lm32.md (ashrsi3): Added needed variable.
9571
9572 2011-02-25 Jon Beniston <jon@beniston.com>
9573
9574 PR target/46898
9575 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
9576 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
9577 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
9578 (lm32_block_move_inline): Add type cast to remove warning.
9579 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
9580 (gen_int_relational): Move declarations to start of function.
9581
9582 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
9583
9584 PR tree-optimization/45470
9585 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9586 can throw internally only.
9587 * tree-vect-stmts.c (vectorizable_call): Likewise.
9588
9589 2011-02-24 Anatoly Sokolov <aesok@post.ru>
9590
9591 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
9592 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9593 * config/stormy16/stormy16-protos.h
9594 (xstormy16_preferred_reload_class): Remove.
9595 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
9596 static. Change 'rclass' argument and return type to reg_class_t.
9597 (TARGET_PREFERRED_RELOAD_CLASS,
9598 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9599
9600 2011-02-24 Richard Guenther <rguenther@suse.de>
9601
9602 * lto-streamer-in.c (input_bb): Do not find referenced vars
9603 in debug statements.
9604
9605 2011-02-23 Jason Merrill <jason@redhat.com>
9606
9607 * common.opt (fabi-version): Document v5 and v6.
9608
9609 2011-02-23 Richard Guenther <rguenther@suse.de>
9610
9611 PR tree-optimization/47849
9612 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
9613
9614 2011-02-23 Jie Zhang <jie@codesourcery.com>
9615
9616 * opts-common.c (decode_cmdline_option): Print empty string
9617 argument as "" in decoded->orig_option_with_args_text.
9618 * gcc.c (execute): Print empty string argument as ""
9619 in the verbose output.
9620 (do_spec_1): Keep empty string argument.
9621
9622 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
9623
9624 * config.gcc: Declare score-* and crx-* obsolete.
9625
9626 2011-02-23 Jie Zhang <jie@codesourcery.com>
9627
9628 PR rtl-optimization/47763
9629 * web.c (web_main): Ignore naked clobber when replacing register.
9630
9631 2011-02-22 Anatoly Sokolov <aesok@post.ru>
9632
9633 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9634 Remove.
9635
9636 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
9637
9638 PR doc/47848
9639 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
9640
9641 2011-02-22 Mike Stump <mikestump@comcast.net>
9642
9643 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
9644 assembler.
9645 * configure: Regenerate.
9646
9647 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
9648
9649 PR rtl-optimization/46002
9650 * ira-color.c (update_copy_costs): Change class intersection
9651 test to reg_class_contents[] test of 'hard_regno'.
9652
9653 2011-02-21 Joseph Myers <joseph@codesourcery.com>
9654
9655 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
9656 than Driver option.
9657 * config/hpux11.opt (mt): Likewise.
9658 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
9659 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
9660 * config/vax/elf.opt (mno-asm-pic): Likewise.
9661 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
9662
9663 2011-02-21 Mike Stump <mikestump@comcast.net>
9664
9665 PR target/47822
9666 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
9667 tree so we can get save the type.
9668 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
9669 for CFString instead of trying to use past the end of the builtins.
9670 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
9671 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
9672 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
9673 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
9674 Rename to darwin_builtin_cfstring.
9675 (darwin_init_cfstring_builtins): Return the built type.
9676
9677 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
9678
9679 PR target/47840
9680 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
9681 (_mm256_insert_epi64): Use _mm_insert_epi64.
9682
9683 2011-02-21 Anatoly Sokolov <aesok@post.ru>
9684
9685 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9686 * config/stormy16/stormy16-protos.h
9687 (xstormy16_mode_dependent_address_p): Remove.
9688 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
9689 Make static. Change return type to bool. Change argument type to
9690 const_rtx. Remove dead code.
9691 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9692
9693 2011-02-21 Richard Guenther <rguenther@suse.de>
9694
9695 PR lto/47820
9696 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9697 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9698 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
9699 TUs context.
9700 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9701 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9702
9703 2011-02-20 Richard Guenther <rguenther@suse.de>
9704
9705 PR lto/47822
9706 * tree.c (free_lang_data_in_decl): Clean builtins from
9707 the TU decl BLOCK_VARS.
9708
9709 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
9710
9711 PR debug/47620
9712 PR debug/47630
9713 * haifa-sched.c (fix_tick_ready): Skip tick computation
9714 for debug insns.
9715
9716 2011-02-19 Richard Guenther <rguenther@suse.de>
9717
9718 PR lto/47647
9719 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9720 Remove lazy BLOCK_VARS streaming.
9721 (lto_input_ts_block_tree_pointers): Likewise.
9722 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9723
9724 2011-02-19 Joseph Myers <joseph@codesourcery.com>
9725
9726 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
9727
9728 2011-02-19 Joseph Myers <joseph@codesourcery.com>
9729
9730 * config/i386/biarch32.h, config/i386/mach.h,
9731 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
9732
9733 2011-02-19 Jakub Jelinek <jakub@redhat.com>
9734
9735 PR target/47800
9736 * config/i386/i386.md (peephole2 for shift and plus): Use
9737 operands[1] original mode in the first insn.
9738
9739 2011-02-18 Mike Stump <mikestump@comcast.net>
9740
9741 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
9742
9743 2011-02-18 Jan Hubicka <jh@suse.cz>
9744
9745 PR middle-end/47788
9746 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
9747 to zero when the function is not inlinable at all.
9748
9749 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9750
9751 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
9752 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9753 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
9754 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
9755 * config/pa/t-pa64: Likewise.
9756 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9757
9758 2011-02-18 Jakub Jelinek <jakub@redhat.com>
9759
9760 PR driver/47787
9761 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
9762
9763 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9764
9765 PR target/47792
9766 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
9767
9768 2011-02-18 Anatoly Sokolov <aesok@post.ru>
9769
9770 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9771 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
9772 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
9773 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9774 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
9775 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
9776 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
9777 m32r_load_postinc_p, m32r_store_preinc_predec_p,
9778 m32r_legitimate_address_p): New functions.
9779 * config/m32r/constraints.md (constraint "S"): Don't use
9780 STORE_PREINC_PREDEC_P.
9781 (constraint "U"): Don't use LOAD_POSTINC_P.
9782
9783 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
9784
9785 PR rtl-optimization/46178
9786 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
9787 compute ira_hard_regno_cover_class[].
9788
9789 2011-02-18 Richard Guenther <rguenther@suse.de>
9790
9791 PR lto/47798
9792 * lto-streamer.h (lto_global_var_decls): Declare.
9793 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
9794 statics for global var processing.
9795
9796 2011-02-18 Richard Guenther <rguenther@suse.de>
9797
9798 PR tree-optimization/47737
9799 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
9800 edge dominance check.
9801
9802 2011-02-18 Jakub Jelinek <jakub@redhat.com>
9803
9804 PR debug/47780
9805 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
9806 avoid invalid rtx sharing.
9807
9808 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
9809
9810 * doc/cpp.texi (Obsolete Features): Add background on the
9811 origin of assertions.
9812
9813 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
9814
9815 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
9816 objc_abi == 2.
9817 * config/darwin.c (output_objc_section_asm_op): Added support for
9818 ABI v1 and v2.
9819 (is_objc_metadata): New.
9820 (darwin_objc2_section): New.
9821 (darwin_objc1_section): New.
9822 (machopic_select_section): Added support for ABI v1 and v2.
9823 (darwin_emit_objc_zeroed): New.
9824 (darwin_output_aligned_bss): Detect objc metadata and treat it
9825 appropriately.
9826 (darwin_asm_output_aligned_decl_common): Same.
9827 (darwin_asm_output_aligned_decl_local): Same.
9828 * config/darwin-sections.def: Updated for ABI v1 and v2.
9829 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
9830 compiling Objective-C code for the NeXT runtime, default to using
9831 ABI version 0 for 32-bit, and version 2 for 64-bit.
9832
9833 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9834
9835 * common.opt (optimize_fast): New Variable.
9836 * opts.c (default_options_optimization): Use opts->x_optimize_fast
9837 instead of local variable ofast.
9838
9839 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
9840
9841 * doc/invoke.texi (fobjc-abi-version): Documented.
9842 (fobjc-nilcheck): Documented.
9843 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
9844 version.
9845
9846 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9847
9848 PR driver/47390
9849 * common.opt (export-dynamic): New Driver option.
9850 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
9851
9852 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9853
9854 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
9855
9856 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
9857 Jan Hubicka <jh@suse.cz>
9858
9859 PR debug/47106
9860 PR debug/47402
9861 * cfgexpand.c (account_used_vars_for_block): Remove.
9862 (estimated_stack_frame_size): Use referenced vars.
9863 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
9864 that were referenced in the original function. Test src_fn
9865 rather than cfun. Drop redundant get_var_ann.
9866 (setup_one_parameter): Drop redundant get_var_ann.
9867 (declare_return_variable): Likewise.
9868 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
9869 (copy_arguments_for_versioning): Drop redundant get_var_ann.
9870 * ipa-inline.c (compute_inline_parameters): Do not compute
9871 disregard_inline_limits here.
9872 (compute_inlinable_for_current, pass_inlinable): New.
9873 (pass_inline_parameters): Require PROP_referenced_vars.
9874 * cgraphunit.c (cgraph_process_new_functions): Don't run
9875 compute_inline_parameters explicitly unless function is in SSA form.
9876 (cgraph_analyze_function): Set .disregard_inline_limits.
9877 * tree-sra.c (convert_callers): Compute inliner parameters
9878 only for functions already in SSA form.
9879
9880 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9881
9882 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
9883 -mlittle-endian-data.
9884
9885 2011-02-17 Joseph Myers <joseph@codesourcery.com>
9886
9887 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
9888 -mno-fpu, not -fpu and -no-fpu.
9889 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
9890 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
9891
9892 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
9893
9894 PR target/43653
9895 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9896 input reload with PLUS RTX.
9897
9898 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9899
9900 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9901 of InverseVar(MDMX).
9902
9903 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9904
9905 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9906 --m4-340.
9907
9908 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9909
9910 * config/mn10300/mn10300.opt (mno-crt0): New.
9911
9912 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9913
9914 * config/m68k/uclinux.opt (static-libc): New Driver option.
9915
9916 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9917
9918 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9919
9920 2011-02-16 Joseph Myers <joseph@codesourcery.com>
9921
9922 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9923 %{muser-extend-enabled}.
9924
9925 2011-02-16 Richard Guenther <rguenther@suse.de>
9926
9927 PR tree-optimization/47738
9928 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9929 the TODO from tree_predictive_commoning.
9930
9931 2011-02-15 Jeff Law <law@redhat.com>
9932
9933 Revert
9934 2011-01-25 Jeff Law <law@redhat.com>
9935
9936 PR rtl-optimization/37273
9937 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9938 handle them like argument loads from stack slots. Do not double
9939 count memory for memory constants and argument loads from stack slots.
9940
9941 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9942
9943 PR middle-end/47725
9944 * combine.c (cant_combine_insn_p): Revert the last change.
9945
9946 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9947
9948 PR target/47755
9949 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9950 mode for vector constants. Remove code that checks for TImode.
9951
9952 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9953
9954 PR debug/47106
9955 PR debug/47402
9956 * cgraph.h (compute_inline_parameters): Return void.
9957 * ipa-inline.c (compute_inline_parameters): Adjust.
9958
9959 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9960
9961 PR debug/47106
9962 PR debug/47402
9963 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
9964 rather than decl.
9965 * cfgexpand.c (estimated_stack_frame_size): Likewise.
9966 * ipa-inline.c (compute_inline_parameters): Adjust.
9967
9968 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9969
9970 PR debug/47106
9971 PR debug/47402
9972 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
9973 Adjust all users. Pass FN to...
9974 * tree-flow-inline.h (first_referenced_var): ... this. Add
9975 fn argument.
9976 * ipa-struct-reorg.c: Adjust.
9977 * tree-dfa.c: Adjust.
9978 * tree-into-ssa.c: Adjust.
9979 * tree-sra.c: Adjust.
9980 * tree-ssa-alias.c: Adjust.
9981 * tree-ssa-live.c: Adjust.
9982 * tree-ssa.c: Adjust.
9983 * tree-ssanames.c: Adjust.
9984 * tree-tailcall.c: Adjust.
9985
9986 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
9987
9988 PR debug/47106
9989 PR debug/47402
9990 * tree-flow.h (referenced_var_lookup): Add fn parameter.
9991 Adjust all callers.
9992 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
9993 * tree-flow-inline.h: Adjust.
9994 * gimple-pretty-print.c: Adjust.
9995 * tree-into-ssa.c: Adjust.
9996 * tree-ssa.c: Adjust.
9997 * cfgexpand.c: Adjust.
9998
9999 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10000
10001 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
10002 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10003 (EXTRA_CONSTRAINT): Delete.
10004 * config/iq2000/constraints.md: New file.
10005 * config/iq2000/iq2000.md: Include it.
10006 (define_insn ""): Delete.
10007 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
10008 unsupported constraint letters from patterns.
10009 (call_value, call_value_internal1): Likewise.
10010 (call_value_multiple_internal1): Likewise.
10011
10012 2011-02-15 Nick Clifton <nickc@redhat.com>
10013
10014 * config/mn10300/mn10300.c: Include tm-constrs.h.
10015 (struct liw_data): New data structure describing an LIW candidate
10016 instruction.
10017 (extract_bundle): Use struct liw_data. Allow small integer
10018 operands for some instructions.
10019 (check_liw_constraints): Use struct liw_data. Remove swapped
10020 parameter. Add comments describing the checks. Fix bug when
10021 assigning the source of liw1 to the source of liw2.
10022 (liw_candidate): Delete. Code moved into extract_bundle.
10023 (mn10300_bundle_liw): Use struct liw_data. Check constraints
10024 before swapping.
10025 * config/mn10300/predicates.md (liw_operand): New predicate.
10026 Allows registers and small integer constants.
10027 * config/mn10300/constraints.md (O): New constraint. Accetps
10028 integers in the range -8 to +7 inclusive.
10029 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
10030 for moving a small integer into a register. Give this alternative
10031 LIW attributes.
10032 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
10033 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
10034 using the J,K,L and M constraints,
10035 (liw): Remove SI mode on second operands to allow for HI and QI
10036 mode values.
10037 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
10038 instruction.
10039
10040 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
10041
10042 PR middle-end/47725
10043 * combine.c (cant_combine_insn_p): Check zero/sign extended
10044 hard registers.
10045
10046 2011-02-15 Richard Guenther <rguenther@suse.de>
10047
10048 PR tree-optimization/47743
10049 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
10050 for a non-type-compatible VN lookup bail out.
10051
10052 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10053
10054 * config/fr30/constraints.md: New file.
10055 * config/fr30/fr30.md: Include it.
10056 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
10057 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10058 (EXTRA_CONSTRAINT): Delete.
10059
10060 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10061
10062 * config/frv/constraints.md: New file.
10063 * config/frv/predicates.md: Include it.
10064 * config/frv/frv.c (reg_class_from_letter): Delete.
10065 (frv_option_override): Don't initialize it.
10066 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
10067 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
10068 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
10069 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10070 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
10071 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10072 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
10073 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
10074 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
10075 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
10076 (REG_CLASS_FROM_CONSTRAINT): Delete.
10077
10078 2011-02-15 Jakub Jelinek <jakub@redhat.com>
10079
10080 PR middle-end/47581
10081 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
10082 if frame size is 0 in a leaf function.
10083
10084 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10085
10086 PR pch/14940
10087 * config/alpha/host-osf.c: New file.
10088 * config/alpha/x-osf: New file.
10089 * config.host (alpha*-dec-osf*): Use it.
10090
10091 2011-02-14 Anatoly Sokolov <aesok@post.ru>
10092
10093 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10094 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
10095 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
10096 (rx_mode_dependent_address_p): ...this. Make static. Change argument
10097 type to const_rtx.
10098 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10099
10100 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10101
10102 * config/stormy16/constraints.md: New file.
10103 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
10104 Use satisfies_constraint_Q and satisfies_constraint_R.
10105 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
10106 Delete.
10107 (xstormy16_legitiamte_address_p): Declare.
10108 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
10109 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10110 (EXTRA_CONSTRAINT): Delete.
10111 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10112 Un-staticize.
10113 (xstormy16_extra_constraint_p): Delete.
10114
10115 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
10116
10117 PR tree-optimization/46494
10118 * loop-unroll.c (split_edge_and_insert): Adjust comment.
10119 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
10120 (pass_rtl_loop_done): Add TODO_verify_flow.
10121 * fwprop.c (pass_rtl_fwprop): Likewise.
10122 * modulo-sched.c (pass_sms): Likewise.
10123 * tree-ssa-dom.c (pass_dominator): Likewise.
10124 * tree-ssa-loop-ch.c (pass_ch): Likewise.
10125 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
10126 (pass_tree_loop_done): Likewise.
10127 * tree-ssa-pre.c (execute_pre): Likewise.
10128 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10129 * tree-ssa-sink.c (pass_sink_code): Likewise.
10130 * tree-vrp.c (pass_vrp): Likewise.
10131
10132 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10133
10134 * config/v850/constraints.md: New file.
10135 * config/v850/v850.md: Include it.
10136 * config/v850/predicates.md (reg_or_0_operand): Use
10137 satisfies_constraint_G.
10138 (special_symbolref_operand): Use satisfies_constraint_K.
10139 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
10140 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10141 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
10142 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10143 (EXTRA_CONSTRAINT): Delete.
10144 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
10145 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
10146 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
10147
10148 2011-02-14 Anatoly Sokolov <aesok@post.ru>
10149
10150 PR target/47696
10151 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
10152 description.
10153
10154 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10155
10156 * config/mcore/constraints.md: New file.
10157 * config/mcore/mcore.md: Include it.
10158 * config/mcore/mcore.c (reg_class_from_letter): Delete.
10159 * config/mcore/mcore.h (reg_class_from_letter): Delete.
10160 (REG_CLASS_FROM_LETTER): Delete.
10161 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
10162 insn_const_int_ok_for_constraint.
10163 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
10164 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
10165 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10166 (EXTRA_CONSTRAINT): Delete.
10167
10168 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10169
10170 PR ada/41929
10171 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
10172 (IS_SIGHANDLER): Define.
10173 (sparc64_is_sighandler): New function, split off from
10174 sparc64_fallback_frame_state.
10175 (sparc_is_sighandler): New function, split off from
10176 sparc_fallback_frame_state.
10177 (sparc64_fallback_frame_state): Merge with ...
10178 (sparc_fallback_frame_state): ... this into ...
10179 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
10180 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
10181 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
10182 stack instead of hardcoded offsets.
10183
10184 2011-02-14 Andriy Gapon <avg@freebsd.org>
10185
10186 PR target/45808
10187 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
10188
10189 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10190
10191 * configure: Regenerate.
10192
10193 2011-02-12 Joseph Myers <joseph@codesourcery.com>
10194
10195 PR driver/45731
10196 * gcc.c (asm_options): Correct spec matching --target-help.
10197
10198 2011-02-12 Martin Jambor <mjambor@suse.cz>
10199
10200 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
10201 to gimple call error.
10202
10203 2011-02-12 Mike Stump <mikestump@comcast.net>
10204
10205 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
10206 comments in backslash regions.
10207
10208 2011-02-12 Mike Stump <mikestump@comcast.net>
10209 Jakub Jelinek <jakub@redhat.com>
10210 Iain Sandoe <iains@gcc.gnu.org>
10211
10212 PR target/47324
10213 * dwarf2out.c (output_cfa_loc): When required, apply the
10214 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
10215 (output_loc_sequence): Likewise.
10216 (output_loc_operands_raw): Likewise.
10217 (output_loc_sequence_raw): Likewise.
10218 (output_cfa_loc): Likewise.
10219 (output_loc_list): Suppress register number adjustment when
10220 calling output_loc_sequence()
10221 (output_die): Likewise.
10222
10223 2011-02-12 Anatoly Sokolov <aesok@post.ru>
10224
10225 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10226 Remove macros.
10227 * config/xtensa/xtensa.c (xtensa_register_move_cost,
10228 xtensa_memory_move_cost): New functions.
10229 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
10230
10231 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
10232
10233 PR lto/47225
10234 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
10235 in the current directory.
10236 * configure: Rebuilt.
10237
10238 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
10239
10240 * config/darwin.c (darwin_override_options): Add a hunk missed
10241 from the commit of r168571. Trim comment line lengths and
10242 correct indents of the preceding block.
10243
10244 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
10245
10246 * gcc.c (driver_handle_option): Concatenate the argument to -F with
10247 the switch.
10248
10249 2011-02-11 Joseph Myers <joseph@codesourcery.com>
10250
10251 * common.opt (nostartfiles): New Driver option.
10252
10253 2011-02-11 Xinliang David Li <davidxl@google.com>
10254
10255 PR tree-optimization/47707
10256 * tree-chrec.c (convert_affine_scev): Keep type precision.
10257
10258 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
10259
10260 PR tree-optimization/47420
10261 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
10262
10263 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
10264
10265 PR rtl-optimization/47614
10266 * rtl.h (check_for_inc_dec): Declare.
10267 * dse.c (check_for_inc_dec): Externalize...
10268 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
10269 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
10270
10271 2011-02-11 Joseph Myers <joseph@codesourcery.com>
10272
10273 PR driver/47678
10274 * gcc.c (main): Do not compile inputs if there were errors in
10275 option handling.
10276 * opts-common.c (read_cmdline_option): Check for wrong language
10277 after other error checks.
10278
10279 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
10280
10281 * cgraph.c: Fix comment typos.
10282 * cgraph.h: Likewise.
10283 * cgraphunit.c: Likewise.
10284 * ipa-cp.c: Likewise.
10285 * ipa-inline.c: Likewise.
10286 * ipa-prop.c: Likewise.
10287 * ipa-pure-const.c: Likewise.
10288 * ipa-ref.c: Likewise.
10289 * ipa-reference.c: Likewise.
10290
10291 2011-02-11 Jakub Jelinek <jakub@redhat.com>
10292
10293 PR debug/47684
10294 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
10295
10296 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10297
10298 PR testsuite/47400
10299 * doc/sourcebuild.texi (Require Support): Document
10300 dg-require-ascii-locale.
10301
10302 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
10303
10304 * doc/lto.texi (Write summary): Fix missing parentheses.
10305
10306 2011-02-10 DJ Delorie <dj@redhat.com>
10307
10308 * config/m32c/m32c.c (m32c_option_override): Disable
10309 -fcombine-stack-adjustments until flag value tracking and compare
10310 optimization can be rewritten.
10311
10312 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
10313
10314 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
10315 PROCESSOR_POWER7.
10316 (PROCESSOR_DEFAULT64): Likewise.
10317
10318 2011-02-10 Richard Henderson <rth@redhat.com>
10319
10320 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
10321 change from 2011-02-03.
10322 * config/rx/rx.c (flags_from_code): Likewise.
10323 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
10324 is valid, n/pz otherwise.
10325 (rx_select_cc_mode): Return CCmode if Y is not zero.
10326
10327 2011-02-10 Richard Guenther <rguenther@suse.de>
10328
10329 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
10330
10331 2011-02-10 Richard Guenther <rguenther@suse.de>
10332
10333 PR tree-optimization/47677
10334 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
10335
10336 2011-02-10 Jakub Jelinek <jakub@redhat.com>
10337
10338 PR target/47665
10339 * combine.c (make_compound_operation): Only change shifts into
10340 multiplication for SCALAR_INT_MODE_P.
10341
10342 2011-02-10 Jie Zhang <jie@codesourcery.com>
10343
10344 PR testsuite/47622
10345 Revert
10346 2011-02-05 Jie Zhang <jie@codesourcery.com>
10347 PR debug/42631
10348 * web.c (entry_register): Don't clobber the number of the
10349 first uninitialized reference in used[].
10350
10351 2011-02-09 Richard Guenther <rguenther@suse.de>
10352
10353 PR tree-optimization/47664
10354 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
10355 all edges again.
10356
10357 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
10358
10359 PR target/46481
10360 PR target/47032
10361 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
10362 PROCESSOR_POWER7.
10363 (PROCESSOR_DEFAULT64): Same.
10364 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
10365
10366 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10367
10368 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
10369
10370 2011-02-09 Martin Jambor <mjambor@suse.cz>
10371
10372 PR middle-end/45505
10373 * tree-sra.c (struct access): New flags grp_scalar_read and
10374 grp_scalar_write. Changed description of assignment read and write
10375 flags.
10376 (dump_access): Dump new flags, reorder all of them.
10377 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
10378 to detect multiple scalar reads.
10379 (analyze_access_subtree): Use the new scalar read write flags instead
10380 of the old flags. Adjusted comments.
10381
10382 2011-02-08 DJ Delorie <dj@redhat.com>
10383
10384 PR target/47548
10385 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
10386 patterns.
10387
10388 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10389
10390 * config/m68k/uclinux.opt: New.
10391 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
10392
10393 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10394
10395 * config/cris/elf.opt (sim): New Driver option.
10396
10397 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10398
10399 * config/xtensa/elf.opt: New.
10400 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
10401
10402 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10403
10404 * config/vax/elf.opt: New.
10405 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
10406
10407 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10408
10409 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
10410
10411 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10412
10413 * config/gnu-user.opt: New.
10414 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
10415 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
10416 *-*-uclinux*): Use gnu-user.opt.
10417
10418 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
10419
10420 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
10421 * config/i386/gnu.h (CPP_SPEC): Likewise.
10422
10423 2011-02-08 Ian Lance Taylor <iant@google.com>
10424
10425 * common.opt (fcx-limited-range): Add SetByCombined flag.
10426 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
10427 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
10428 (fassociative-math, freciprocal-math): Likewise.
10429 (funsafe-math-optimizations): Likewise.
10430 * opth-gen.awk: Handle SetByCombined.
10431 * optc-gen.awk: Likewise.
10432 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
10433 (set_unsafe_math_optimizations_flags): Likewise.
10434 * doc/options.texi (Option properties): Document SetByCombined.
10435
10436 2011-02-08 Joseph Myers <joseph@codesourcery.com>
10437
10438 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
10439 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
10440 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
10441 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
10442 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
10443
10444 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
10445
10446 PR tree-optimization/46834
10447 PR tree-optimization/46994
10448 PR tree-optimization/46995
10449 * graphite-sese-to-poly.c (used_outside_reduction): New.
10450 (detect_commutative_reduction): Call used_outside_reduction.
10451 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
10452 translate_scalar_reduction_to_array only when at least one
10453 loop-phi/close-phi tuple has been detected.
10454
10455 2011-02-08 Richard Guenther <rguenther@suse.de>
10456
10457 PR middle-end/47639
10458 * tree-vect-generic.c (expand_vector_operations_1): Update
10459 stmts here ...
10460 (expand_vector_operations): ... not here. Cleanup EH info
10461 and the CFG if required.
10462
10463 2011-02-08 Richard Guenther <rguenther@suse.de>
10464
10465 PR tree-optimization/47641
10466 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
10467 require type compatibility.
10468
10469 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10470
10471 * gimple-low.c (lower_function_body): Don't remove the location of
10472 the return statement here.
10473 (lower_gimple_return): Do it here instead but only if the return
10474 statement is actually used twice.
10475
10476 2011-02-08 Richard Guenther <rguenther@suse.de>
10477
10478 PR tree-optimization/47632
10479 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
10480 unused up_to_stmt parameter, return whether cfg-cleanup is
10481 necessary, remove EH info properly.
10482 (forward_propagate_into_gimple_cond): Adjust caller.
10483 (forward_propagate_into_cond): Likewise.
10484 (forward_propagate_comparison): Likewise.
10485 (tree_ssa_forward_propagate_single_use_vars): Make
10486 forward_propagate_comparison case similar to the two others.
10487
10488 2011-02-08 Nick Clifton <nickc@redhat.com>
10489
10490 * config/mn10300/mn10300.opt (mliw): New command line option.
10491 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
10492 (liw_bundling): New automaton.
10493 (liw): New attribute.
10494 (liw_op): New attribute.
10495 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
10496 (movsi_internal): Add LIW attributes.
10497 (andsi3): Likewise.
10498 (iorsi3): Likewise.
10499 (xorsi3): Likewise.
10500 (addsi3): Separate register and immediate alternatives.
10501 Add LIW attributes.
10502 (subsi3): Likewise.
10503 (cmpsi): Likewise.
10504 (aslsi3): Likewise.
10505 (lshrsi3): Likewise.
10506 (ashrsi3): Likewise.
10507 (liw): New pattern.
10508 * config/mn10300/mn10300.c (liw_op_names): New
10509 (mn10300_print_operand): Handle 'W' operand descriptor.
10510 (extract_bundle): New function.
10511 (check_liw_constraints): New function.
10512 (liw_candidate): New function.
10513 (mn10300_bundle_liw): New function.
10514 (mn10300_reorg): New function.
10515 (TARGET_MACHINE_DEPENDENT_REORG): Define.
10516 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
10517 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
10518 __LIW__ or __NO_LIW__.
10519 * doc/invoke.texi: Describe the -mliw command line option.
10520
10521 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10522
10523 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
10524 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10525 pthread_mutex_unlock): Remove.
10526 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
10527 * config/pa/t-pa64: Likewise.
10528 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
10529 shared libc if not linking against libpthread.
10530 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10531
10532 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
10533
10534 PR target/47558
10535 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
10536 on 10.6 and later to ensure that we always use the unwinder from
10537 the system. Only add -no_compact_unwind when tarteting darwin
10538 10.6 or later.
10539
10540 2011-02-07 Steve Ellcey <sje@cup.hp.com>
10541
10542 PR target/46997
10543 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
10544 (vec_interleave_lowv2sf): Ditto.
10545 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
10546 (vec_extract_oddv2sf): Ditto.
10547
10548 2011-02-07 Mike Stump <mikestump@comcast.net>
10549
10550 PR target/42333
10551 Add __ieee_divdc3 entry point.
10552 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
10553 entry point.
10554 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
10555 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
10556 * config/darwin.c (darwin_rename_builtins): Add.
10557 * config/darwin-protos.h (darwin_rename_builtins): Add.
10558
10559 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10560
10561 PR target/47636
10562 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
10563 for the condition.
10564
10565 2011-02-07 Mike Stump <mikestump@comcast.net>
10566
10567 * config/darwin.opt (mmacosx-version-min): Update default OS version.
10568
10569 2011-02-07 Denis Chertykov <chertykov@gmail.com>
10570
10571 PR target/47534
10572 * config/avr/libgcc.S (exit): Move .endfunc
10573
10574 2011-02-07 Richard Guenther <rguenther@suse.de>
10575
10576 PR tree-optimization/47615
10577 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
10578 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
10579 (run_scc_vn): Initialize it.
10580 (visit_reference_op_load): Use it.
10581 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
10582
10583 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10584
10585 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
10586 DImode trapping arithmetic libfuncs.
10587
10588 2011-02-07 Richard Guenther <rguenther@suse.de>
10589
10590 PR tree-optimization/47621
10591 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
10592 two duplicates ...
10593 (execute_update_addresses_taken): ... here. Make it more
10594 conservative in what we accept.
10595
10596 2011-02-06 Joseph Myers <joseph@codesourcery.com>
10597
10598 * config/sparc/freebsd.h (ASM_SPEC): Define.
10599 * config/sparc/vxworks.h (ASM_SPEC): Define.
10600
10601 2011-02-06 Joseph Myers <joseph@codesourcery.com>
10602
10603 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10604
10605 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
10606
10607 * doc/invoke.texi: Remove reference to compiler internals from
10608 user documentation.
10609
10610 * reg-notes.def: Remove REG_VALUE_PROFILE.
10611 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
10612
10613 2011-02-05 Jakub Jelinek <jakub@redhat.com>
10614
10615 PR middle-end/47610
10616 * varasm.c (default_section_type_flags): If decl is NULL,
10617 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
10618
10619 2011-02-05 Jie Zhang <jie@codesourcery.com>
10620
10621 PR debug/42631
10622 * web.c (entry_register): Don't clobber the number of the
10623 first uninitialized reference in used[].
10624
10625 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
10626
10627 PR tree-optimization/46194
10628 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
10629 (build_classic_dist_vector_1): Do not represent classic distance
10630 vectors when the access functions are variating in different loops.
10631
10632 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10633
10634 * config/mips/iris6.opt: New.
10635 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
10636
10637 2011-02-04 Richard Henderson <rth@redhat.com>
10638 Steve Ellcey <sje@cup.hp.com>
10639
10640 PR target/46997
10641 * config/ia64/predicates.md (mux1_brcst_element): New.
10642 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
10643 * config/ia64/ia64.c (ia64_unpack_assemble): New.
10644 (ia64_unpack_sign): New.
10645 (ia64_expand_unpack): Rewrite using new routines.
10646 (ia64_expand_widen_sum): Ditto.
10647 (ia64_expand_dot_prod_v8qi): Ditto.
10648 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
10649 routines, add endian check.
10650 (pmpy2_even): Rename from pmpy2_r, add endian check.
10651 (pmpy2_odd): Rename from pmpy2_l, add endian check.
10652 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
10653 (vec_widen_smult_hi_v4hi): Ditto.
10654 (vec_widen_umult_lo_v4hi): Ditto.
10655 (vec_widen_umult_hi_v4hi): Ditto.
10656 (mulv2si3): Change endian checks.
10657 (sdot_prodv4hi): Rewrite with new calls.
10658 (udot_prodv4hi): New.
10659 (vec_pack_ssat_v4hi): Add endian check.
10660 (vec_pack_usat_v4hi): Ditto.
10661 (vec_pack_ssat_v2si): Ditto.
10662 (max1_even): Rename from max1_r, add endian check.
10663 (max1_odd): Rename from max1_l, add endian check.
10664 (*mux1_rev): Format change.
10665 (*mux1_mix): Ditto.
10666 (*mux1_shuf): Ditto.
10667 (*mux1_alt): Ditto.
10668 (*mux1_brcst_v8qi): Use new predicate.
10669 (vec_extract_evenv8qi): Remove endian check.
10670 (vec_extract_oddv8qi): Ditto.
10671 (vec_interleave_lowv4hi): Format change.
10672 (vec_interleave_highv4hi): Ditto.
10673 (mix2_even): Rename from mix2_r, add endian check.
10674 (mix2_odd): Rename from mux2_l, add endian check.
10675 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
10676 (vec_extract_evenodd_helper): Format change.
10677 (vec_extract_evenv4hi): Remove endian check.
10678 (vec_extract_oddv4hi): Remove endian check.
10679 (vec_interleave_lowv2si): Format change.
10680 (vec_interleave_highv2si): Format change.
10681 (vec_initv2si): Remove endian check.
10682 (vecinit_v2si): Add endian check.
10683 (reduc_splus_v2sf): Add endian check.
10684 (reduc_smax_v2sf): Ditto.
10685 (reduc_smin_v2sf): Ditto.
10686 (vec_initv2sf): Remove endian check.
10687 (fpack): Add endian check.
10688 (fswap): Add endian check.
10689 (vec_interleave_highv2sf): Add endian check.
10690 (vec_interleave_lowv2sf): Add endian check.
10691 (fmix_lr): Add endian check.
10692 (vec_setv2sf): Format change.
10693 (*vec_extractv2sf_0_be): Use shift to extract operand.
10694 (*vec_extractv2sf_1_be): New.
10695 (vec_pack_trunc_v4hi): Add endian check.
10696 (vec_pack_trunc_v2si): Format change.
10697
10698 2011-02-04 Jakub Jelinek <jakub@redhat.com>
10699
10700 PR inline-asm/23200
10701 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
10702 do bb, locus and block comparison and disallow loads if it is not set.
10703 (stmt_is_replaceable_p): New function.
10704 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
10705 callers.
10706 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
10707 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
10708 SSA_NAME_DEF_STMT.
10709 * tree-flow.h (stmt_is_replaceable_p): New prototype.
10710
10711 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10712
10713 * config/rs6000/xilinx.opt: New.
10714 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
10715
10716 2011-02-04 Joseph Myers <joseph@codesourcery.com>
10717
10718 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
10719
10720 2011-02-03 Anatoly Sokolov <aesok@post.ru>
10721
10722 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
10723 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10724 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
10725 secondary_reload_info, xtensa_secondary_reload): Remove.
10726 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
10727 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10728 (xtensa_preferred_reload_class): Make static. Change return and
10729 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
10730 Use CONST_DOUBLE_P predicate.
10731 (xtensa_preferred_output_reload_class): New function.
10732 (xtensa_secondary_reload): Make static.
10733
10734 2011-02-03 Joseph Myers <joseph@codesourcery.com>
10735
10736 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
10737 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
10738 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
10739
10740 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10741
10742 PR middle-end/31490
10743 * output.h (SECTION_RELRO): Define.
10744 (SECTION_MACH_DEP): Adjust.
10745 (get_variable_section): New prototype.
10746 * varpool.c (varpool_finalize_named_section_flags): New function.
10747 (varpool_assemble_pending_decls): Call it.
10748 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
10749 * cgraphunit.c (cgraph_output_in_order): Call
10750 varpool_finalize_named_section_flags.
10751 * varasm.c (get_section): Allow section flags conflicts between
10752 relro and read-only sections if the section hasn't been declared yet.
10753 Set SECTION_OVERRIDE after diagnosing section type conflict.
10754 (get_variable_section): No longer static.
10755 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
10756 readonly sections that need relocations.
10757 (decl_readonly_section_1): New function.
10758 (decl_readonly_section): Use it.
10759
10760 Revert:
10761 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
10762 Steve Ellcey <sje@cup.hp.com>
10763
10764 PR middle-end/31490
10765 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
10766 if section attribute used.
10767
10768 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10769
10770 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
10771 * config/darwin.c (SECTION_NO_ANCHOR): Define.
10772 (darwin_init_sections): Remove assertion.
10773
10774 2011-02-03 Nick Clifton <nickc@redhat.com>
10775
10776 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
10777 lt and ge.
10778 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
10779 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
10780 instead of "n" and "pz".
10781 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
10782 CC_FLAG_S.
10783
10784 2011-02-03 Jakub Jelinek <jakub@redhat.com>
10785
10786 PR target/47312
10787 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
10788 fma, expand FMA_EXPR as fma{,f,l} call.
10789
10790 PR lto/47274
10791 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
10792 copy them into a unsigned char variable and pass address of it to
10793 lto_output_data_stream.
10794
10795 PR target/47564
10796 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
10797 around backend_init_target and lang_dependent_init_target calls.
10798 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
10799 (verify_cgraph_node): Don't call set_cfun here. Use
10800 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
10801 Set error_found for incorrectly represented calls to thunks.
10802
10803 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
10804
10805 PR debug/43092
10806 PR rtl-optimization/43494
10807 * rtl.h (for_each_inc_dec_fn): New type.
10808 (for_each_inc_dec): Declare.
10809 * rtlanal.c (struct for_each_inc_dec_ops): New type.
10810 (for_each_inc_dec_find_inc_dec): New fn.
10811 (for_each_inc_dec_find_mem): New fn.
10812 (for_each_inc_dec): New fn.
10813 * dse.c (struct insn_size): Remove.
10814 (replace_inc_dec, replace_inc_dec_mem): Remove.
10815 (emit_inc_dec_insn_before): New fn.
10816 (check_for_inc_dec): Use it, along with for_each_inc_dec.
10817 (canon_address): Pass mem modes to cselib_lookup.
10818 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
10819 (cselib_lookup_from_insn): Likewise.
10820 (cselib_subst_to_values): Likewise.
10821 * cselib.c (find_slot_memmode): New var.
10822 (cselib_find_slot): New fn. Use it instead of
10823 htab_find_slot_with_hash everywhere.
10824 (entry_and_rtx_equal_p): Use find_slot_memmode.
10825 (autoinc_split): New fn.
10826 (rtx_equal_for_cselib_p): Rename and implement in terms of...
10827 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
10828 Deal with autoinc. Special-case recursion into MEMs.
10829 (cselib_hash_rtx): Likewise.
10830 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
10831 address and MEM modes.
10832 (cselib_subst_to_values): Add memmode, pass it on.
10833 Deal with autoinc.
10834 (cselib_lookup): Add memmode argument, pass it on.
10835 (cselib_lookup_from_insn): Add memmode.
10836 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
10837 (struct cselib_record_autoinc_data): New.
10838 (cselib_record_autoinc_cb): New fn.
10839 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
10840 mode to cselib_lookup. Reset autoinced REGs here instead of...
10841 (cselib_process_insn): ... here.
10842 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
10843 to cselib_lookup.
10844 (add_uses): Likewise, also to cselib_subst_to_values.
10845 (add_stores): Likewise.
10846 * sched-deps.c (add_insn_mem_dependence): Pass mode to
10847 cselib_subst_to_values.
10848 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
10849 * gcse.c (do_local_cprop): Adjusted.
10850 * postreload.c (reload_cse_simplify_set): Adjusted.
10851 (reload_cse_simplify_operands): Adjusted.
10852 * sel-sched-dump (debug_mem_addr_value): Pass mode.
10853
10854 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
10855
10856 PR tree-optimization/45122
10857 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
10858 unsafe assumptions when there's more than one loop exit.
10859
10860 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10861
10862 PR target/47272
10863 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10864 Document using vector double with the load/store builtins, and
10865 that the load/store builtins always use Altivec instructions.
10866
10867 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
10868 to use altivec memory instructions, even on VSX.
10869 (vector_altivec_store_<mode>): Ditto.
10870
10871 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
10872 function.
10873
10874 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10875 V2DF, V2DI support to load/store overloaded builtins.
10876
10877 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
10878 altivec load/store builtins for V2DF/V2DI types.
10879
10880 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10881 set avoid indexed addresses on power6 if -maltivec.
10882 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
10883 vector_altivec_load/vector_altivec_store builtins.
10884 (altivec_expand_st_builtin): Ditto.
10885 (altivec_expand_builtin): Add VSX memory builtins.
10886 (rs6000_init_builtins): Add V2DI types to internal types.
10887 (altivec_init_builtins): Add support for V2DF/V2DI altivec
10888 load/store builtins.
10889 (rs6000_address_for_altivec): Insure memory address is appropriate
10890 for Altivec.
10891
10892 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
10893 vec_vsx_ld and vec_vsx_st.
10894 (vsx_store_<mode>): Ditto.
10895
10896 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10897 variables to hold long long types for VSX vector memory builtins.
10898 (RS6000_BTI_unsigned_long_long): Ditto.
10899 (long_long_integer_type_internal_node): Ditti.
10900 (long_long_unsigned_type_internal_node): Ditti.
10901
10902 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10903 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10904 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10905
10906 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10907 short cuts.
10908 (vec_vsx_st): Ditto.
10909
10910 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10911
10912 * config/pa/pa-hpux10.opt: New.
10913 * config/hpux11.opt (pthread): New Driver option.
10914 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10915 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10916
10917 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10918
10919 * config/ia64/vms.opt: New.
10920 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10921
10922 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10923
10924 PR target/47580
10925 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10926 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10927 generator functions.
10928 (vsx_floatuns<VSi><mode>2): Ditto.
10929 (vsx_fix_trunc<mode><VSi>2): Ditto.
10930 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10931
10932 2011-02-02 Joseph Myers <joseph@codesourcery.com>
10933
10934 * config/i386/djgpp.opt (posix): New Driver option.
10935
10936 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10937
10938 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10939 Move to the unsupported targets list.
10940
10941 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
10942
10943 PR rtl-optimization/47525
10944 * df-scan.c: Update copyright years.
10945 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10946 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10947
10948 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10949
10950 * config/i386/sysv4.h (TARGET_VERSION): Remove.
10951 (SUBTARGET_RETURN_IN_MEMORY): Remove.
10952 (ASM_OUTPUT_ASCII): Remove.
10953 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10954
10955 2011-02-02 Jeff Law <law@redhat.com>
10956
10957 PR middle-end/47543
10958 * reload.c (find_reloads_address): Handle reg+d address where both
10959 components are invalid by reloading the entire address.
10960
10961 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10962 Richard Guenther <rguenther@suse.de>
10963
10964 PR tree-optimization/40979
10965 PR bootstrap/47044
10966 * passes.c (init_optimization_passes): After LIM call copy_prop
10967 and DCE to clean up.
10968 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
10969
10970 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10971
10972 PR tree-optimization/47576
10973 PR tree-optimization/47555
10974 * doc/invoke.texi (scev-max-expr-complexity): Documented.
10975 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10976 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
10977 * tree-scalar-evolution.c (follow_ssa_edge): Use
10978 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
10979
10980 2011-02-02 Richard Guenther <rguenther@suse.de>
10981
10982 PR tree-optimization/47566
10983 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
10984
10985 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
10986
10987 PR debug/47106
10988 PR debug/47402
10989 * tree-inline.c (declare_return_variable): Remove unused caller
10990 variable.
10991
10992 PR debug/47106
10993 PR debug/47402
10994 * tree-flow-inline.h (clear_is_used, is_used_p): New.
10995 * cfgexpand.c (account_used_vars_for_block): Use them.
10996 * tree-nrv.c (tree_nrv): Likewise.
10997 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
10998 (dump_scope_block): Likewise.
10999 (remove_unused_locals): Likewise.
11000
11001 PR debug/47106
11002 PR debug/47402
11003 * tree-inline.c (declare_return_variable): Add result decl to
11004 local decls only once.
11005 * gimple-low.c (record_vars_into): Mark newly-created variables
11006 as referenced.
11007
11008 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
11009
11010 PR debug/47498
11011 PR debug/47501
11012 PR debug/45136
11013 PR debug/45130
11014 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11015 debug insns.
11016 (no_real_insns_p, schedule_block, set_priorities): Drop special
11017 treatment of boundary debug insns.
11018 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11019 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
11020 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11021 (BOUNDARY_DEBUG_INSN_P): Likewise.
11022 (SCHEDULE_DEBUG_INSN_P): Likewise.
11023 * sched-rgn.c (init_ready_list): Drop special treatment of
11024 boundary debug insns.
11025 * final.c (rest_of_clean_state): Clear notes' BB.
11026
11027 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11028
11029 * config/openbsd.opt (assert=): New Driver option.
11030
11031 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11032
11033 * config/i386/nto.opt: New.
11034 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
11035
11036 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11037
11038 * config/i386/netware.opt: New.
11039 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
11040
11041 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11042
11043 * config/interix.opt (posix): New Driver option.
11044
11045 2011-02-01 DJ Delorie <dj@redhat.com>
11046
11047 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
11048
11049 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
11050 class for A0/A1.
11051
11052 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
11053
11054 PR tree-optimization/47561
11055 * toplev.c (process_options): Print the Graphite flags. Add
11056 flag_loop_flatten to the list of options requiring Graphite.
11057
11058 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11059
11060 * config/i386/cygming.opt (posix): New Driver option.
11061
11062 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11063
11064 * config/arm/vxworks.opt: New.
11065 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
11066
11067 2011-02-01 Joseph Myers <joseph@codesourcery.com>
11068
11069 * config/alpha/elf.opt: New.
11070 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
11071 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
11072
11073 2011-02-01 Richard Guenther <rguenther@suse.de>
11074
11075 PR tree-optimization/47559
11076 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
11077 store-motion on references that can throw.
11078
11079 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
11080
11081 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
11082 * tree-pass.h (TDF_CSELIB): New macro.
11083 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
11084 cselib_lookup): Check for it rather than for TDF_DETAILS.
11085
11086 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
11087
11088 PR driver/47547
11089 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
11090 is HOST_BIT_BUCKET.
11091
11092 * opts.c (finish_options): Don't add x_aux_base_name if it is
11093 HOST_BIT_BUCKET.
11094
11095 2011-02-01 Richard Guenther <rguenther@suse.de>
11096
11097 PR tree-optimization/47555
11098 Revert
11099 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
11100
11101 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11102
11103 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
11104
11105 PR gcc/46692
11106 * config/lm32/t-lm32: Add multilib for all CPU options.
11107
11108 2011-02-01 Richard Guenther <rguenther@suse.de>
11109
11110 PR tree-optimization/47541
11111 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11112 sure to have a field at offset zero.
11113
11114 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11115
11116 * config/arc/arc.opt (EB, EL): New Driver options.
11117
11118 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11119
11120 * config/alpha/osf5.opt: New.
11121 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
11122
11123 2011-01-31 Joseph Myers <joseph@codesourcery.com>
11124
11125 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
11126
11127 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
11128
11129 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
11130 -floop-interchange.
11131 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
11132 is an alias of -floop-interchange and that it requires the
11133 Graphite infrastructure.
11134 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
11135 flag_loop_interchange based on the value of flag_tree_loop_linear.
11136
11137 2011-01-31 Jakub Jelinek <jakub@redhat.com>
11138 Richard Guenther <rguenther@suse.de>
11139
11140 PR tree-optimization/47538
11141 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
11142 type instead of r1type, except for comparisons. For right
11143 shifts and comparisons punt if there are mismatches in
11144 sizetype vs. non-sizetype types.
11145
11146 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11147
11148 * doc/sourcebuild.texi (Effective-Target Keywords): Document
11149 avx_runtime.
11150
11151 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11152
11153 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
11154 version number.
11155 * configure: Regenerate.
11156
11157 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11158
11159 * configure.ac (gcc_cv_ld_static_option): Define.
11160 (gcc_cv_ld_dynamic_option): Define.
11161 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
11162 instead.
11163 (HAVE_LD_STATIC_DYNAMIC): Update message.
11164 (LD_STATIC_OPTION): Define.
11165 (LD_DYNAMIC_OPTION): Define.
11166 * configure: Regenerate.
11167 * config.in: Regenerate.
11168 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
11169 HAVE_LD_STATIC_DYNAMIC]: Use them.
11170
11171 2011-01-31 Nick Clifton <nickc@redhat.com>
11172
11173 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
11174 registers inside interrupt handlers if the handler is not a leaf
11175 function.
11176
11177 2011-01-31 Nick Clifton <nickc@redhat.com>
11178
11179 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
11180 reg_renumber returning an INVALID_REGNUM.
11181
11182 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
11183
11184 PR libgcj/44341
11185 * doc/install.texi: Document host options discarded when cross
11186 configuring target libraries.
11187
11188 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
11189
11190 Reverted:
11191 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
11192 PR debug/45136
11193 PR debug/45130
11194 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11195 debug insns.
11196 (no_real_insns_p, schedule_block, set_priorities): Drop special
11197 treatment of boundary debug insns.
11198 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11199 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11200 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11201 (BOUNDARY_DEBUG_INSN_P): Likewise.
11202 (SCHEDULE_DEBUG_INSN_P): Likewise.
11203 * sched-rgn.c (init_ready_list): Drop special treatment of
11204 boundary debug insns.
11205 * final.c (rest_of_clean-state): Clear notes' BB.
11206
11207 2011-01-31 Alan Modra <amodra@gmail.com>
11208
11209 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
11210 toc relative expressions as we do in print_operand_address.
11211
11212 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
11213
11214 * doc/extend.texi: Follow spelling conventions.
11215 * doc/invoke.texi: Fix a typo.
11216
11217 2011-01-30 Joseph Myers <joseph@codesourcery.com>
11218
11219 * config/hpux11.opt: New.
11220 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
11221 ia64*-*-hpux*): Use hpux11.opt.
11222
11223 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
11224
11225 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
11226 to tmake_file.
11227
11228 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11229
11230 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
11231 support sites.
11232
11233 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11234
11235 * doc/install.texi (Binaries): Remove outdated reference for
11236 Motorola 68HC11/68HC12 downloads.
11237
11238 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
11239
11240 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
11241 Drepper's paper.
11242
11243 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
11244
11245 PR bootstrap/47147
11246 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
11247 used by NetBSD.
11248
11249 2011-01-28 Ahmad Sharif <asharif@google.com>
11250
11251 * value-prof.c (check_counter): Corrected error message.
11252
11253 2011-01-29 Jie Zhang <jie@codesourcery.com>
11254
11255 * config/arm/arm.c (arm_legitimize_reload_address): New.
11256 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11257 arm_legitimize_reload_address.
11258 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
11259
11260 2011-01-28 Ian Lance Taylor <iant@google.com>
11261
11262 * godump.c (go_define): Ignore macros whose definitions include
11263 two adjacent operands.
11264
11265 2011-01-28 Jakub Jelinek <jakub@redhat.com>
11266
11267 PR target/42894
11268 * varasm.c (force_const_mem): Store copy of x in desc->constant
11269 instead of x itself.
11270 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
11271 itself into REG_EQUAL note.
11272
11273 2011-01-28 Joseph Myers <joseph@codesourcery.com>
11274
11275 * config/freebsd.opt (posix, rdynamic): New Driver options.
11276
11277 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11278
11279 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
11280 -Bstatic/-Bdynamic.
11281 * configure: Regenerate.
11282
11283 2011-01-27 Joseph Myers <joseph@codesourcery.com>
11284
11285 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
11286 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
11287
11288 2011-01-27 Anatoly Sokolov <aesok@post.ru>
11289
11290 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
11291 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
11292 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11293 (s390_preferred_reload_class): Make static. Change return and
11294 'rclass' argument type to reg_class_t.
11295
11296 2011-01-27 Jan Hubicka <jh@suse.cz>
11297
11298 PR middle-end/46949
11299 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
11300 (process_function_and_variable_attributes): Check defined weakrefs.
11301
11302 2011-01-27 Martin Jambor <mjambor@suse.cz>
11303
11304 PR tree-optimization/47228
11305 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
11306 build_ref_for_offset.
11307
11308 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11309
11310 * config/spu/spu-elf.h (ASM_SPEC): Remove.
11311
11312 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
11313
11314 PR rtl-optimization/46856
11315 * postreload.c (reload_combine_recognize_const_pattern): Do not
11316 separate cc0 setter and user on cc0 targets.
11317
11318 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
11319
11320 PR c/43082
11321 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
11322 passed a VOID_TYPE expression, immediately emit an error and
11323 return error_mark_node.
11324
11325 2011-01-26 Jeff Law <law@redhat.com>
11326
11327 PR rtl-optimization/47464
11328 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
11329 rather than may_trap_p as needed.
11330
11331 2011-01-26 DJ Delorie <dj@redhat.com>
11332
11333 PR rtl-optimization/46878
11334 * combine.c (insn_a_feeds_b): Check for the implicit cc0
11335 setter/user dependency as well.
11336
11337 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
11338
11339 PR rtl-optimization/44469
11340 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
11341 after removing trivially dead basic blocks.
11342
11343 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11344
11345 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
11346 * config/frv/frv.h (LINK_SPEC): Likewise.
11347 * config/i386/netware.h (LINK_SPEC): Likewise.
11348 * config/m68k/linux.h (ASM_SPEC): Likewise.
11349 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11350 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11351 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11352 * config/sparc/linux.h (ASM_SPEC): Likewise.
11353 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11354 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11355
11356 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11357
11358 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
11359 * config/frv/frv.h (ASM_SPEC): Likewise.
11360 * config/m68k/linux.h (ASM_SPEC): Likewise.
11361 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11362 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
11363 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11364 * config/sparc/linux.h (ASM_SPEC): Likewise.
11365 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11366 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11367
11368 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11369
11370 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
11371 * config/frv/frv.h (LINK_SPEC): Likewise.
11372 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11373
11374 2011-01-26 Joseph Myers <joseph@codesourcery.com>
11375
11376 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
11377 * config/frv/frv.h (ASM_SPEC): Likewise.
11378 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
11379 * config/m68k/linux.h (ASM_SPEC): Likewise.
11380 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11381 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
11382 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11383 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
11384 * config/sparc/linux.h (ASM_SPEC): Likewise.
11385 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11386 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11387 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
11388
11389 2011-01-26 Steve Ellcey <sje@cup.hp.com>
11390
11391 PR target/46997
11392 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
11393 (*mux2): Ditto.
11394 (vec_extract_evenodd_help): Ditto.
11395 (vec_extract_evenv4hi): Ditto.
11396 (vec_extract_oddv4hi): Ditto.
11397 (vec_interleave_lowv2si): Ditto.
11398 (vec_interleave_highv2si): Ditto.
11399 (vec_extract_evenv2si): Ditto.
11400 (vec_extract_oddv2si: Ditto.
11401 (vec_pack_trunc_v2si): Ditto.
11402
11403 2011-01-22 Jan Hubicka <jh@suse.cz>
11404
11405 PR target/47237
11406 * cgraph.h (cgraph_local_info): New field can_change_signature.
11407 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
11408 signature can change.
11409 (ipcp_estimate_growth): Call sequence simplify only if calle signature
11410 can change.
11411 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
11412 (cgraph_function_versioning): We can not change signature of functions
11413 that don't allow that.
11414 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
11415 (lto_input_node): Likewise.
11416 * ipa-inline.c (compute_inline_parameters): Compute
11417 local.can_change_signature.
11418 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
11419 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
11420 functions that can not change signature.
11421 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
11422 init_cumulative_args): Do not use local calling conventions
11423 for functions that can not change signature.
11424
11425 2011-01-22 Jan Hubicka <jh@suse.cz>
11426
11427 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
11428
11429 2011-01-26 Richard Guenther <rguenther@suse.de>
11430
11431 PR tree-optimization/47190
11432 * cgraphunit.c (process_common_attributes): New function.
11433 (process_function_and_variable_attributes): Use it.
11434
11435 2011-01-26 Richard Guenther <rguenther@suse.de>
11436
11437 PR lto/47423
11438 * cgraphbuild.c (record_eh_tables): Record reference to personality
11439 function.
11440
11441 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
11442
11443 PR debug/45454
11444 * sel-sched.c (moveup_expr): Don't let debug insns prevent
11445 non-debug insns from moving up.
11446
11447 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11448
11449 PR target/40125
11450 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
11451 t-dlldir{,-x} fragment for build and add it to tmake_file.
11452 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11453 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
11454 * config/i386/t-dlldir: New file.
11455 (SHLIB_DLLDIR): Define.
11456 * config/i386/t-dlldir-x: New file.
11457 (SHLIB_DLLDIR): Define.
11458 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
11459 (SHLIB_INSTALL): Use it.
11460
11461 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
11462
11463 PR target/47246
11464 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
11465 lower bound of the allowed Thumb-2 coprocessor load/store
11466 index range to -256. Add explaining comment.
11467
11468 2011-01-25 Ian Lance Taylor <iant@google.com>
11469
11470 * godump.c (go_define): Improve lexing of macro expansion to only
11471 accept expressions which match Go spec.
11472
11473 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11474
11475 PR c++/43601
11476 * tree.c (handle_dll_attribute): Handle it.
11477 * doc/extend.texi (@item dllexport): Mention it.
11478 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
11479
11480 2011-01-25 Ian Lance Taylor <iant@google.com>
11481
11482 PR tree-optimization/26854
11483 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
11484 (decl_jump_unsafe): Move higher in file, with no other change.
11485 (bind): Set has_jump_unsafe_decl if appropriate.
11486 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
11487 (check_earlier_gotos): Likewise.
11488 (c_check_switch_jump_warnings): Likewise.
11489
11490 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
11491
11492 * doc/invoke.texi (Warning Options): Add missing hyphen.
11493 (-fprofile-dir): Minor grammatical fixes.
11494 (-fbranch-probabilities): Likewise.
11495
11496 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
11497
11498 PR debug/45136
11499 PR debug/45130
11500 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11501 debug insns.
11502 (no_real_insns_p, schedule_block, set_priorities): Drop special
11503 treatment of boundary debug insns.
11504 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11505 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11506 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11507 (BOUNDARY_DEBUG_INSN_P): Likewise.
11508 (SCHEDULE_DEBUG_INSN_P): Likewise.
11509 * sched-rgn.c (init_ready_list): Drop special treatment of
11510 boundary debug insns.
11511 * final.c (rest_of_clean-state): Clear notes' BB.
11512
11513 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11514
11515 * Makefile.in (LAMBDA_H): Removed.
11516 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
11517 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
11518 lambda-trans.o, and tree-loop-linear.o.
11519 (lto-symtab.o): Remove dependence on LAMBDA_H.
11520 (tree-loop-linear.o): Remove rule.
11521 (lambda-mat.o): Same.
11522 (lambda-trans.o): Same.
11523 (lambda-code.o): Same.
11524 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
11525 (tree-vect-slp.o): Same.
11526 * hwint.h (gcd): Moved here.
11527 (least_common_multiple): Same.
11528 * lambda-code.c: Removed.
11529 * lambda-mat.c: Removed.
11530 * lambda-trans.c: Removed.
11531 * lambda.h: Removed.
11532 * tree-loop-linear.c: Removed.
11533 * lto-symtab.c: Do not include lambda.h.
11534 * omega.c (gcd): Removed.
11535 * passes.c (init_optimization_passes): Remove pass_linear_transform.
11536 * tree-data-ref.c (print_lambda_vector): Moved here.
11537 (lambda_vector_copy): Same.
11538 (lambda_matrix_copy): Same.
11539 (lambda_matrix_id): Same.
11540 (lambda_vector_first_nz): Same.
11541 (lambda_matrix_row_add): Same.
11542 (lambda_matrix_row_exchange): Same.
11543 (lambda_vector_mult_const): Same.
11544 (lambda_vector_negate): Same.
11545 (lambda_matrix_row_negate): Same.
11546 (lambda_vector_equal): Same.
11547 (lambda_matrix_right_hermite): Same.
11548 * tree-data-ref.h: Do not include lambda.h.
11549 (lambda_vector): Moved here.
11550 (lambda_matrix): Same.
11551 (dependence_level): Same.
11552 (lambda_transform_legal_p): Removed declaration.
11553 (lambda_collect_parameters): Same.
11554 (lambda_compute_access_matrices): Same.
11555 (lambda_vector_gcd): Same.
11556 (lambda_vector_new): Same.
11557 (lambda_vector_clear): Same.
11558 (lambda_vector_lexico_pos): Same.
11559 (lambda_vector_zerop): Same.
11560 (lambda_matrix_new): Same.
11561 * tree-flow.h (least_common_multiple): Removed declaration.
11562 * tree-parloops.c (lambda_trans_matrix): Moved here.
11563 (LTM_MATRIX): Same.
11564 (LTM_ROWSIZE): Same.
11565 (LTM_COLSIZE): Same.
11566 (LTM_DENOMINATOR): Same.
11567 (lambda_trans_matrix_new): Same.
11568 (lambda_matrix_vector_mult): Same.
11569 (lambda_transform_legal_p): Same.
11570 * tree-pass.h (pass_linear_transform): Removed declaration.
11571 * tree-ssa-loop.c (tree_linear_transform): Removed.
11572 (gate_tree_linear_transform): Removed.
11573 (pass_linear_transform): Removed.
11574 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
11575 flag_loop_interchange.
11576
11577 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11578
11579 PR tree-optimization/47265
11580 PR tree-optimization/47443
11581 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
11582 if name still has some uses.
11583
11584 2011-01-25 Martin Jambor <mjambor@suse.cz>
11585
11586 PR tree-optimization/47382
11587 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
11588 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
11589
11590 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
11591
11592 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
11593 sjlj_except_unwind_info.
11594
11595 2011-01-25 Richard Guenther <rguenther@suse.de>
11596
11597 PR tree-optimization/47426
11598 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
11599 visible functions results escape.
11600
11601 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11602
11603 PR target/45701
11604 * config/arm/arm.c (any_sibcall_uses_r3): New function.
11605 (arm_get_frame_offsets): Use it.
11606
11607 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11608 Jakub Jelinek <jakub@redhat.com>
11609
11610 PR tree-optimization/47271
11611 * tree-if-conv.c (bb_postdominates_preds): New.
11612 (if_convertible_bb_p): Call bb_postdominates_preds.
11613 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
11614 (predicate_scalar_phi): Call bb_postdominates_preds.
11615
11616 2011-01-25 Nick Clifton <nickc@redhat.com>
11617
11618 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
11619 * config/rx/rx.c (rx_function_value): Likewise.
11620 (rx_promote_function_mode): Likewise.
11621 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
11622 in order to make it legitimate.
11623 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
11624 make sure that the first operand is the same as the result register.
11625 (addsi3_unspec): Delete.
11626 (subdi3): Do not accept immediate operands.
11627 (subdi3_internal): Likewise.
11628
11629 2011-01-25 Jeff Law <law@redhat.com>
11630
11631 PR rtl-optimization/37273
11632 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11633 handle them like argument loads from stack slots. Do not double
11634 count memory for memory constants and argument loads from stack slots.
11635
11636 2011-01-25 Jakub Jelinek <jakub@redhat.com>
11637
11638 PR tree-optimization/47427
11639 PR tree-optimization/47428
11640 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11641 coalesce if the new root var would be TREE_READONLY.
11642
11643 2011-01-25 Richard Guenther <rguenther@suse.de>
11644
11645 PR middle-end/47414
11646 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
11647 correct type for TBAA.
11648
11649 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11650
11651 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
11652 (close_phi_written_to_memory): Call for_each_index with
11653 dr_indices_valid_in_loop.
11654
11655 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11656
11657 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
11658 when it is initialized.
11659
11660 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11661
11662 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
11663 call to graphite_find_data_references_in_stmt.
11664 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
11665 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
11666 call to graphite_find_data_references_in_stmt.
11667 (analyze_drs_in_stmts): Same.
11668 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
11669 in which the scalar analysis of indices is performed.
11670 (create_data_ref): Same. Update call to dr_analyze_indices.
11671 (find_data_references_in_stmt): Update call to create_data_ref.
11672 (graphite_find_data_references_in_stmt): Same.
11673 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
11674 declaration.
11675 (create_data_ref): Same.
11676 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
11677 call to create_data_ref.
11678
11679 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11680
11681 * graphite-sese-to-poly.c (build_poly_scop): Move
11682 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
11683
11684 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11685
11686 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
11687 VAR_DECL, PARM_DECL, and RESULT_DECL.
11688
11689 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11690
11691 * graphite-dependences.c (reduction_dr_1): Allow several reductions
11692 in a reduction PBB.
11693 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
11694 that have already been marked as PBB_IS_REDUCTION.
11695
11696 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11697
11698 * graphite-scop-detection.c (same_close_phi_node): New.
11699 (remove_duplicate_close_phi): New.
11700 (make_close_phi_nodes_unique): New.
11701 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
11702
11703 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11704
11705 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
11706 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
11707 of both data references to be the same.
11708
11709 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11710
11711 * graphite-dependences.c (build_lexicographical_constraint): Remove
11712 the gdim parameter.
11713 (build_lexicographical_constraint): Adjust call to
11714 ppl_powerset_is_empty.
11715 (dependence_polyhedron): Same.
11716 (graphite_legal_transform_dr): Same.
11717 (graphite_carried_dependence_level_k): Same.
11718 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
11719 parameter.
11720 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
11721
11722 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11723
11724 * graphite-sese-to-poly.c
11725 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
11726 (close_phi_written_to_memory): New.
11727 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
11728 and unshare_expr.
11729
11730 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11731
11732 * doc/install.texi: Update the expected version number of PPL to 0.11.
11733 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
11734 #if PPL_VERSION_MINOR < 11.
11735
11736 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11737
11738 * graphite-dependences.c: Include graphite-cloog-util.h.
11739 (new_poly_ddr): Inlined into dependence_polyhedron.
11740 (free_poly_ddr): Moved close by new_poly_ddr.
11741 (dependence_polyhedron_1): Renamed dependence_polyhedron.
11742 Early return NULL when ppl_powerset_is_empty returns true.
11743 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
11744 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
11745 (graphite_legal_transform_dr): Call new_poly_ddr.
11746 (graphite_carried_dependence_level_k): Same.
11747 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
11748 (dot_transformed_deps_stmt_1): Removed.
11749 (dot_deps_stmt_1): Call dot_deps_stmt_2.
11750 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
11751 (dot_deps_1): Call dot_deps_2.
11752 * Makefile.in (graphite-dependences.o): Add missing dependence on
11753 graphite-cloog-util.h.
11754
11755 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11756
11757 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
11758 (build_lexicographical_constraint): Same.
11759 (dependence_polyhedron_1): Same.
11760 (graphite_legal_transform_dr): Same.
11761 (graphite_carried_dependence_level_k): Same.
11762 * graphite-ppl.c (ppl_powerset_is_empty): New.
11763 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
11764 * tree-data-ref.c (dump_data_reference): Print the basic block index.
11765
11766 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11767
11768 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
11769 the "a followed by b" relation and document it.
11770
11771 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11772
11773 * graphite-dependences.c (build_lexicographical_constraint): Stop the
11774 iteration when the bag of constraints is empty.
11775
11776 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11777
11778 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
11779
11780 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11781
11782 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
11783 nest and two loop depths as parameters.
11784 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
11785 lst_perfect_nestify.
11786
11787 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11788
11789 * graphite-dependences.c (print_pddr): Call
11790 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
11791
11792 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11793
11794 * graphite-ppl.c (debug_gmp_value): New.
11795 * graphite-ppl.h (debug_gmp_value): Declared.
11796
11797 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
11798
11799 * doc/install.texi: Document availability of cloog-0.16.
11800
11801 2011-01-25 Vladimir Kargov <kargov@gmail.com>
11802
11803 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
11804 invalid postdominance info.
11805
11806 2011-01-24 Jan Hubicka <jh@suse.cz>
11807
11808 PR c/21659
11809 * doc/extend.texi (weak pragma): Drop claim that it must
11810 appear before definition.
11811 * varasm.c (merge_weak, declare_weak): Only sanity check
11812 that DECL is not output at a time it is declared weak.
11813
11814 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
11815
11816 * machmode.def: Fixed comments.
11817
11818 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
11819
11820 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
11821
11822 2011-01-24 Paul Koning <ni1d@arrl.net>
11823
11824 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
11825 WORDS_BIG_ENDIAN.
11826
11827 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
11828
11829 PR target/46519
11830 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
11831 (block_info): Add scanned and prev.
11832 (move_or_delete_vzeroupper_2): Return if the basic block
11833 has been scanned and the upper 128bit state is unchanged
11834 from the last scan.
11835 (move_or_delete_vzeroupper_1): Return true if the exit
11836 state is changed.
11837 (move_or_delete_vzeroupper): Visit basic blocks using the
11838 work-list based algorithm based on vt_find_locations in
11839 var-tracking.c.
11840
11841 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
11842
11843 2011-01-24 Nick Clifton <nickc@redhat.com>
11844
11845 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
11846 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
11847 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
11848 then define __v850e1__.
11849 * doc/invoke.texi: Document -mv850es.
11850
11851 2011-01-24 Richard Henderson <rth@redhat.com>
11852
11853 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
11854 compound unordered comparisons.
11855 * config/rx/rx.c (rx_split_fp_compare): Remove.
11856 * config/rx/rx-protos.h: Update.
11857 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
11858 (cbranchsf4): Don't call rx_split_fp_compare.
11859 (*cbranchsf4): Use rx_split_cbranch.
11860 (*cmpsf): Don't accept "i" constraint.
11861 (*conditional_branch): Only valid after reload.
11862 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
11863
11864 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11865
11866 PR target/47385
11867 * config/rs6000/altivec.md (vector constant splitters): Add
11868 support for creating vector single precision constants if -mvsx is
11869 used and we would create the constant using Altivec primitives.
11870
11871 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
11872 Richard Sandiford <rdsandiford@googlemail.com>
11873
11874 PR rtl-optimization/47166
11875 * reload1.c (emit_reload_insns): Disable the spill_reg_store
11876 mechanism for PRE_MODIFY and POST_MODIFY.
11877 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
11878 reloadreg.
11879
11880 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
11881
11882 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
11883
11884 2011-01-22 Jan Hubicka <jh@suse.cz>
11885
11886 PR lto/47333
11887 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
11888
11889 2011-01-22 Jan Hubicka <jh@suse.cz>
11890
11891 PR tree-optimization/43884
11892 PR lto/44334
11893 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
11894 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11895
11896 2011-01-22 Anatoly Sokolov <aesok@post.ru>
11897
11898 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11899 * config/s390/s390.c (s390_register_move_cost,
11900 s390_memory_move_cost): New.
11901 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11902
11903 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11904
11905 PR middle-end/47401
11906 * except.c (sjlj_assign_call_site_values): Move setting the
11907 crtl->uses_eh_lsda flag to ...
11908 (sjlj_mark_call_sites): ... here.
11909 (sjlj_emit_function_enter): Support NULL dispatch label.
11910 (sjlj_build_landing_pads): In a function with no landing pads
11911 that still has must-not-throw regions, generate code to register
11912 a personality function with empty LSDA.
11913
11914 2011-01-21 Richard Henderson <rth@redhat.com>
11915
11916 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11917
11918 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11919
11920 * compare-elim.c: New file.
11921 * Makefile.in (OBJS-common): Add it.
11922 (compare-elim.o): New.
11923 * common.opt (fcompare-elim): New.
11924 * opts.c (default_options_table): Add OPT_fcompare_elim.
11925 * tree-pass.h (pass_compare_elim_after_reload): New.
11926 * passes.c (init_optimization_passes): Add it.
11927 * recog.h: Protect against re-inclusion.
11928 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11929 * doc/invoke.texi (-fcompare-elim): Document it.
11930 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11931 * doc/tm.texi: Rebuild.
11932
11933 2011-01-22 Nick Clifton <nickc@redhat.com>
11934
11935 * config/rx/rx.md (cstoresf4): Pass comparison operator to
11936 rx_split_fp_compare.
11937
11938 2011-01-22 Nick Clifton <nickc@redhat.com>
11939
11940 * config/rx/rx.md (UNSPEC_CONST): New.
11941 (deallocate_and_return): Wrap the amount popped off the stack in
11942 an UNSPEC_CONST in order to stop it being rejected by
11943 -mmax-constant-size.
11944 (pop_and_return): Add a "(return)" rtx.
11945 (call): Drop the immediate operand.
11946 (call_internal): Likewise.
11947 (call_value): Likewise.
11948 (call_value_internal): Likewise.
11949 (sibcall_internal): Likewise.
11950 (sibcall_value_internal): Likewise.
11951 (sibcall): Likewise. Generate an explicit call using
11952 sibcall_internal.
11953 (sibcall_value): Likewise.
11954 (mov<>): FAIL if a constant operand is not legitimate.
11955 (addsi3_unpsec): New pattern.
11956
11957 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
11958 (ok_for_max_constant): New function.
11959 (gen_safe_add): New function.
11960 (rx_expand_prologue): Use gen_safe_add.
11961 (rx_expand_epilogue): Likewise.
11962 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
11963 UNSPEC CONSTs.
11964
11965 2011-01-21 Jeff Law <law@redhat.com>
11966
11967 PR tree-optimization/47053
11968 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
11969 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
11970 statements are deleted.
11971 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
11972 is nonempty, then purge dead edges and cleanup the CFG.
11973
11974 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
11975
11976 PR debug/47402
11977 Temporarily revert:
11978 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
11979 PR debug/47106
11980 * tree-dfa.c (create_var_ann): Mark variable as used.
11981
11982 2011-01-21 Jakub Jelinek <jakub@redhat.com>
11983
11984 PR middle-end/45566
11985 * except.c (convert_to_eh_region_ranges): Emit queued no-region
11986 notes from other section in hot/cold partitioning even if
11987 last_action is -3. Increment call_site_base.
11988
11989 PR rtl-optimization/47366
11990 * fwprop.c (forward_propagate_into): Return bool. If
11991 any changes are made, -fnon-call-exceptions is used and
11992 REG_EH_REGION note is present, call purge_dead_edges
11993 and return true if it purged anything.
11994 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
11995 any EH edges were purged.
11996
11997 2011-01-21 Jeff Law <law@redhat.com>
11998
11999 PR rtl-optimization/41619
12000 * caller-save.c (setup_save_areas): Break out code to determine
12001 which hard regs are live across calls by examining the reload chains
12002 so that it is always used.
12003 Eliminate code which checked REG_N_CALLS_CROSSED.
12004
12005 2011-01-21 Jakub Jelinek <jakub@redhat.com>
12006
12007 PR tree-optimization/47355
12008 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
12009 NOP has non-debug uses beyond PHIs in new_bb.
12010
12011 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
12012
12013 PR debug/47106
12014 * cfgexpand.c (account_used_vars_for_block): Only account vars
12015 that are annotated as used.
12016 (estimated_stack_frame_size): Don't set TREE_USED.
12017 * tree-dfa.c (create_var_ann): Mark variable as used.
12018
12019 2011-01-21 Richard Guenther <rguenther@suse.de>
12020
12021 PR middle-end/47395
12022 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
12023
12024 2011-01-21 Richard Guenther <rguenther@suse.de>
12025
12026 PR tree-optimization/47365
12027 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
12028 (vn_reference_lookup_pieces): Adjust.
12029 (vn_reference_lookup): Likewise.
12030 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
12031 (vn_reference_lookup_3): Only look through kills if in
12032 VN_WALKREWRITE mode.
12033 (vn_reference_lookup_pieces): Adjust.
12034 (vn_reference_lookup): Likewise.
12035 (visit_reference_op_load): Likewise.
12036 (visit_reference_op_store): Likewise.
12037 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
12038 (compute_avail): Likewise.
12039 (eliminate): Likewise.
12040
12041 2011-01-21 Jakub Jelinek <jakub@redhat.com>
12042
12043 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
12044 DECL_IGNORED_P non-reg vars if they are used.
12045
12046 PR tree-optimization/47391
12047 * varpool.c (const_value_known_p): Return false if
12048 decl is volatile.
12049
12050 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
12051
12052 PR bootstrap/47215
12053 * config/i386/i386.c (ix86_local_alignment): Handle
12054 case for va_list_type_node is nil.
12055 (ix86_canonical_va_list_type): Likewise.
12056
12057 2011-01-21 Alan Modra <amodra@gmail.com>
12058
12059 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
12060 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
12061
12062 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12063
12064 * config/arm/arm.md (define_attr type): Rename f_load
12065 and f_store to f_fpa_load and f_fpa_store. Update.
12066 (write_conflict): Deal with rename fallout.
12067 (*push_fp_multi): Likewise.
12068 * config/arm/fpa.md (f_load): Use f_fpa_load.
12069 (f_store): Use f_fpa_store.
12070 (*movsf_fpa): Likewise.
12071 (*movdf_fpa): Likewise.
12072 (*movxf_fpa): Likewise.
12073 (*thumb2_movsf_fpa): Likewise.
12074 (*thumb2_movdf_fpa): Likewise.
12075 (*thumb2_movxf_fpa): Likewise.
12076 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
12077 f_loadd and f_stored.
12078 (*thumb2_movdi_vfp): Likewise.
12079 (*thumb2_movsf_vfp): Fix attribute to f_loads.
12080 (*thumb2_movsi_vfp): Likewise.
12081 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
12082 Use f_loads instead of f_load.
12083 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
12084
12085 2011-01-20 Anatoly Sokolov <aesok@post.ru>
12086
12087 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12088 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
12089 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12090 (xtensa_mode_dependent_address_p): New function.
12091 (constantpool_address_p): Make static. Change return type to bool.
12092 Change argument type to const_rtx. Use CONST_INT_P predicate.
12093
12094 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
12095
12096 PR debug/46583
12097 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
12098
12099 2011-01-20 Jakub Jelinek <jakub@redhat.com>
12100
12101 PR debug/47283
12102 * cfgexpand.c (expand_debug_expr): Instead of generating
12103 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
12104 etc. handling.
12105
12106 2011-01-20 Richard Guenther <rguenther@suse.de>
12107
12108 PR middle-end/47370
12109 * tree-inline.c (remap_gimple_op_r): Recurse manually for
12110 the pointer operand of MEM_REFs.
12111
12112 2011-01-20 Jakub Jelinek <jakub@redhat.com>
12113
12114 PR tree-optimization/46130
12115 * ipa-split.c (consider_split): If return_bb contains non-virtual
12116 PHIs other than for retval or if split_function would not adjust it,
12117 refuse to split.
12118
12119 2011-01-20 Richard Guenther <rguenther@suse.de>
12120
12121 PR tree-optimization/47167
12122 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12123 Revert previous change, only avoid enumeral type changes.
12124
12125 2011-01-19 Mike Stump <mikestump@comcast.net>
12126
12127 * doc/tm.texi.in (BRANCH_COST): Englishify.
12128 * doc/tm.texi (BRANCH_COST): Likewise.
12129
12130 2011-01-19 Dodji Seketeli <dodji@redhat.com>
12131
12132 PR c++/47291
12133 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
12134 (gen_scheduled_generic_parms_dies): New functions.
12135 (gen_struct_or_union_type_die): Schedule template parameters DIEs
12136 generation for the end of CU compilation.
12137 (dwarf2out_finish): Generate template parameters DIEs here.
12138
12139 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12140
12141 PR debug/46240
12142 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
12143 debug bind stmt on merge edges.
12144
12145 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12146
12147 PR debug/47079
12148 PR debug/46724
12149 * function.c (instantiate_expr): Instantiate incoming rtl of
12150 implicit arguments, and recurse on VALUE_EXPRs.
12151 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
12152 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
12153
12154 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
12155
12156 * c-parser.c (c_parser_for_statement): Initialize
12157 collection_expression.
12158
12159 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12160
12161 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
12162
12163 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12164
12165 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
12166 (LINK_SHLIB_SPEC): Don't use %(link_path).
12167 (SUBTARGET_EXTRA_SPECS): Remove link_path.
12168
12169 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12170
12171 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
12172 (NO_SHARED_LIB_SUPPORT): Remove.
12173 (LINK_SHLIB_SPEC): Remove one conditional definition.
12174
12175 2011-01-19 Joseph Myers <joseph@codesourcery.com>
12176
12177 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
12178 %{call_shared}.
12179 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
12180 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
12181 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
12182 %{call_shared} and conditionals on these options not being passed.
12183 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
12184 %{call_shared}.
12185
12186 2011-01-19 Jakub Jelinek <jakub@redhat.com>
12187
12188 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
12189 simplify.
12190
12191 * ipa-split.c: Spelling fixes.
12192
12193 2011-01-19 Richard Henderson <rth@redhat.com>
12194
12195 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
12196 (*mulsi3): Likewise.
12197
12198 * longlong.h [__mn10300__] (count_leading_zeros): New.
12199 [__mn10300__] (umul_ppmm, smul_ppmm): New.
12200 [__mn10300__] (add_ssaaaa, subddmmss): New.
12201 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
12202 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
12203
12204 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12205
12206 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
12207
12208 2011-01-19 Richard Henderson <rth@redhat.com>
12209
12210 * config/mn10300/mn10300.md (addsi3_flags): New.
12211 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
12212 (subsi3_flags, subc_internal, subdi3): New.
12213 (subdi3_internal, *subdi3_degenerate): New.
12214 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
12215
12216 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
12217 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
12218 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
12219 * config/mn10300/mn10300-protos.h: Update.
12220 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
12221 (return_ret): Likewise. Rename from return_internal_regs.
12222 (return_internal): Remove.
12223
12224 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
12225 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
12226 (mn10300_legitimate_constant_p): Likewise.
12227 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
12228 (mn10300_frame_size): New.
12229 (mn10300_expand_prologue): Use it.
12230 (mn10300_expand_epilogue): Likewise.
12231 (mn10300_initial_offset): Likewise.
12232 * config/mn10300/mn10300-protos.h: Update.
12233 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
12234 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
12235 (prologue, epilogue, return_internal): Tidy output code.
12236 (mn10300_store_multiple_operation, return): Likewise.
12237 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
12238 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
12239 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
12240 (load_pic, am33_load_pic): New.
12241 (mn10300_load_pic0, mn10300_load_pic1): New.
12242
12243 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
12244 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
12245 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
12246 (cc_flags_for_mode, cc_flags_for_code): New.
12247 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
12248 overflow flag is not valid. Validate that the flags we need
12249 for the comparison are valid.
12250 (mn10300_output_cmp): Remove.
12251 (mn10300_output_add): New.
12252 (mn10300_select_cc_mode): Use cc_flags_for_code.
12253 (mn10300_split_cbranch): New.
12254 (mn10300_match_ccmode): New.
12255 (mn10300_split_and_operand_count): New.
12256 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
12257 to the function.
12258 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
12259 (addsi3): ... here. Use mn10300_output_add.
12260 (*addsi3_flags): New.
12261 (*am33_subsi3, *mn10300_subsi3): Merge...
12262 (subsi3): ... here. Use attribute isa.
12263 (*subsi3_flags): New.
12264 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
12265 when possible.
12266 (*am33_andsi3, *mn10300_andsi3): Merge...
12267 (andsi3): ... here.
12268 (*andsi3_flags): New.
12269 (andsi3 splitters): New.
12270 (*am33_iorsi3, *mn10300_iorsi3): Merge...
12271 (iorsi3): ... here.
12272 (*iorsi3_flags): New.
12273 (*am33_xorsi3, *mn10300_xorsi3): Merge...
12274 (xorsi3): ... here.
12275 (*xorsi3_flags): New.
12276 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
12277 (one_cmplsi2): ... here.
12278 (*one_cmplsi2_flags): New.
12279 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
12280 instead of "dax" in constraints. Use mn10300_split_cbranch.
12281 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
12282 use matching constraints to eliminate a self-comparison.
12283 (*integer_conditional_branch): Rename from integer_conditional_branch.
12284 Use int_mode_flags to match CC_REG.
12285 (*cbranchsi4_btst, *btstsi): New.
12286 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
12287 mn10300_split_cbranch.
12288 (*am33_cmpsf): Rename from am33_cmpsf.
12289 (*float_conditional_branch): Rename from float_conditional_branch.
12290 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
12291 (zero_extendqisi2): ... here.
12292 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
12293 (zero_extendhisi2): ... here.
12294 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
12295 (extendqisi2): ... here.
12296 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
12297 (extendhisi2): ... here.
12298 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
12299 (ashlsi3): ... here.
12300 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
12301 (lshrsi3): ... here.
12302 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
12303 (ashrsi3): ... here.
12304 (consecutive add peephole): Remove.
12305 * config/mn10300/predicates.md (label_ref_operand): New.
12306 (int_mode_flags): New.
12307 (CCZN_comparison_operator): New.
12308
12309 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
12310 (throughput_42_latency_43): New reservation.
12311 (mulsidi3, umulsidi3): New expanders.
12312 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
12313 the MDR register to allocation; separately allocate the low and
12314 high parts of the DImode result.
12315 (umulsidi3_internal): Similarly.
12316 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
12317 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
12318 (udivsi3, umodsi3): Remove.
12319 (udivmodsi4, divmodsi4): New expanders.
12320 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
12321 (*divmodsi4): Simiarly.
12322 (ext_internal): New.
12323
12324 * config/mn10300/constraints.md ("z"): New constraint.
12325 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
12326 (FIXED_REGISTERS): Don't fix MDR.
12327 (CALL_USED_REGSITERS): Reformat nicely.
12328 (REG_ALLOC_ORDER): Add MDR.
12329 (enum regclass): Add MDR_REGS.
12330 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
12331 (IRA_COVER_CLASSES): Add MDR_REGS.
12332 (REGNO_REG_CLASS): Handle MDR_REG.
12333 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
12334 (mn10300_register_move_cost): Likewise.
12335 * config/mn10300/mn10300.md (MDR_REG): New.
12336 (*movsi_internal): Handle moves to/from MDR_REGS.
12337
12338 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
12339 POST_MODIFY.
12340 (mn10300_secondary_reload): Tidy combination reload classes.
12341 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
12342 addresses for AM33. Allow symbolic offsets for reg+imm.
12343 (mn10300_regno_in_class_p): New.
12344 (mn10300_legitimize_reload_address): New.
12345 * config/mn10300/mn10300.h (enum reg_class): Remove
12346 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
12347 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
12348 SP_OR_GENERAL_REGS.
12349 (REG_CLASS_NAMES): Update to match.
12350 (REG_CLASS_CONTENTS): Likewise.
12351 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
12352 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
12353 (REGNO_IN_RANGE_P): Remove.
12354 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
12355 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
12356 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
12357 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
12358 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
12359 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
12360 (REGNO_GENERAL_P): New.
12361 (HAVE_POST_MODIFY_DISP): New.
12362 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
12363 (LEGITIMIZE_RELOAD_ADDRESS): New.
12364 * config/mn10300/mn10300-protos.h: Update.
12365
12366 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
12367 DATA_REGS for AM33 stack-pointer destination.
12368 (mn10300_preferred_output_reload_class): Likewise.
12369 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
12370 into a form appropriate for ...
12371 (TARGET_SECONDARY_RELOAD): New.
12372 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
12373 * config/mn10300/mn10300-protos.h: Update.
12374 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
12375 reload_insi; use the "A" constraint for the scratch; handle AM33
12376 moves of sp to non-address registers.
12377
12378 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
12379 (*movqi_internal): ... here.
12380 (*am33_movhi, *mn10300_movhi): Merge into...
12381 (*movhi_internal): ... here.
12382 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
12383 as the source/destination of moves from/to SP.
12384 (movsf): Only allow for AM33-2.
12385 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
12386 any integer constant constraint. Only allow for AM33-2. Tidy
12387 all of the alternative outputs.
12388 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
12389 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
12390 for MN103.
12391 (udivsi3, umodsi3): New patterns for MN103 only.
12392
12393 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
12394
12395 * doc/tm.texi.in: Spell out that a lack of register class unions
12396 can lead to ICEs.
12397 * doc/tm.texi: Regenerate.
12398
12399 2011-01-19 Jakub Jelinek <jakub@redhat.com>
12400
12401 PR rtl-optimization/47337
12402 * dce.c (check_argument_store): New function.
12403 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
12404
12405 PR tree-optimization/47290
12406 * tree-eh.c (infinite_empty_loop_p): New function.
12407 (cleanup_empty_eh): Use it.
12408
12409 2011-01-18 Steve Ellcey <sje@cup.hp.com>
12410
12411 PR target/46997
12412 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
12413 (a64_expand_widen_sum): Ditto.
12414 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
12415 (vec_extract_evenodd_help): Ditto.
12416 (vec_extract_evenv4hi): Ditto.
12417 (vec_extract_oddv4hi): Ditto.
12418 (vec_extract_evenv2si): Ditto.
12419 (vec_extract_oddv2si): Ditto.
12420 (vec_extract_evenv2sf): Ditto.
12421 (vec_extract_oddv2sf): Ditto.
12422 (vec_pack_trunc_v4hi: Ditto.
12423 (vec_pack_trunc_v2si): Ditto.
12424 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
12425 (vec_interleave_highv8qi): Ditto.
12426 (mix1_r): Ditto.
12427 (vec_extract_oddv8qi): Ditto.
12428 (vec_interleave_lowv4hi): Ditto.
12429 (vec_interleave_highv4hi): Ditto.
12430 (vec_interleave_lowv2si): Ditto.
12431 (vec_interleave_highv2si): Ditto.
12432
12433 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12434
12435 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
12436 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
12437 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
12438 (pa_c_mode_for_suffix): New.
12439 (TARGET_EXPAND_BUILTIN): Define.
12440 (TARGET_C_MODE_FOR_SUFFIX): Define.
12441 (pa_builtins): Define.
12442 (pa_init_builtins): Register __float128 type and init new support
12443 builtins.
12444 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
12445 * config/pa/quadlib.c (_U_Qfcopysign): New.
12446
12447 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
12448
12449 PR middle-end/46894
12450 * explow.c (allocate_dynamic_stack_space): Do not assume more than
12451 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
12452 are defined.
12453
12454 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12455
12456 PR tree-optimization/47179
12457 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
12458 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
12459
12460 2011-01-18 Richard Guenther <rguenther@suse.de>
12461
12462 PR rtl-optimization/47216
12463 * emit-rtl.c: Include tree-flow.h.
12464 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
12465 of replicating it with different semantics.
12466 * Makefile.in (emit-rtl.o): Adjust.
12467
12468 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12469
12470 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
12471 (cortex_a9_dp): Handle neon types correctly.
12472
12473 2011-01-18 Jakub Jelinek <jakub@redhat.com>
12474
12475 PR rtl-optimization/47299
12476 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
12477 subtarget. Use normal multiplication if both operands are constants.
12478 * expmed.c (expand_widening_mult): Don't try to optimize constant
12479 multiplication if op0 has VOIDmode. Convert op1 constant to mode
12480 before using it.
12481
12482 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12483
12484 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
12485 spacing after 'e.g.', typos, comma, hyphenation.
12486
12487 2011-01-17 Richard Henderson <rth@redhat.com>
12488
12489 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
12490 (rx_restricted_mem_operand): New.
12491 (rx_shift_operand): Use register_operand.
12492 (rx_source_operand, rx_compare_operand): Likewise.
12493 * config/rx/rx.md (addsi3_flags): New expander.
12494 (adddi3): Rewrite as expander.
12495 (adc_internal, *adc_flags, adddi3_internal): New patterns.
12496 (subsi3_flags): New expander.
12497 (subdi3): Rewrite as expander.
12498 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
12499
12500 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
12501 (rx_init_builtins): Remove sat builtin.
12502 (rx_expand_builtin): Likewise.
12503 * config/rx/rx.md (ssaddsi3): New.
12504 (*sat): Rename from sat. Represent the CC_REG input.
12505
12506 * config/rx/predicates.md (rshift_operator): New.
12507 * config/rx/rx.c (rx_expand_insv): Remove.
12508 * config/rx/rx-protos.h: Update.
12509 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
12510 operand to the canonical position.
12511 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
12512 (*bitclr, *bitclr_in_memory): Similarly.
12513 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
12514 (insv): Retain the zero_extract in the expansion.
12515
12516 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
12517 (bswaphi2, bitinvert, revw): Likewise.
12518
12519 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
12520 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
12521 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
12522 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
12523 (bitset, bitset_in_memory): Likewise.
12524 (bitinvert, bitinvert_in_memory): Likewise.
12525 (bitclr, bitclr_in_memory): Likewise.
12526 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
12527 (rx_strend, rx_cmpstrn): Likewise.
12528 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
12529 (bitop peep2 patterns): Remove.
12530
12531 * config/rx/rx.c (rx_match_ccmode): New.
12532 * config/rx/rx-protos.h: Update.
12533 * config/rx/rx.md (abssi2): Clobber, don't set flags.
12534 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
12535 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
12536 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
12537 (fix_truncsfsi2, floatsisf2): Likewise.
12538 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
12539 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
12540 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
12541 (*subsi3_flags, *xorsi3_flags): New.
12542
12543 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
12544
12545 * config/rx/rx.c (rx_print_operand): Remove workaround for
12546 unsplit comparison operations.
12547
12548 * config/rx/rx.md (movsicc): Split after reload.
12549 (*movsicc): Merge *movsieq and *movsine via match_operator.
12550 (*stcc): New pattern.
12551
12552 * config/rx/rx.c (rx_float_compare_mode): Remove.
12553 * config/rx/rx.h (rx_float_compare_mode): Remove.
12554 * config/rx/rx.md (cstoresi4): Split after reload.
12555 (*sccc): New pattern.
12556
12557 * config/rx/predicates.md (label_ref_operand): New.
12558 (rx_z_comparison_operator): New.
12559 (rx_zs_comparison_operator): New.
12560 (rx_fp_comparison_operator): New.
12561 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
12562 Validate that the flags are set properly for the comparison.
12563 (rx_gen_cond_branch_template): Remove.
12564 (rx_cc_modes_compatible): Remove.
12565 (mode_from_flags): New.
12566 (flags_from_code): Rename from flags_needed_for_conditional.
12567 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
12568 (rx_select_cc_mode): Likewise.
12569 (rx_split_fp_compare): New.
12570 (rx_split_cbranch): New.
12571 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
12572 (*cbranchsi4): Use match_operator and rx_split_cbranch.
12573 (*cbranchsf4): Similarly.
12574 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
12575 match_operator and rx_split_cbranch.
12576 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
12577 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
12578 (*cmpsi): Rename from cmpsi.
12579 (*tstsi): Rename from tstsi.
12580 (*cmpsf): Rename from cmpsf; use CC_Fmode.
12581 (*conditional_branch): Rename from conditional_branch.
12582 (*reveresed_conditional_branch): Remove.
12583 (b<code>): Remove expander.
12584 * config/rx/rx-protos.h: Update.
12585
12586 * config/rx/rx.c (rx_compare_redundant): Remove.
12587 * config/rx/rx.md (cmpsi): Don't use it.
12588 * config/rx/rx-protos.h: Update.
12589
12590 * config/rx/rx-modes.def (CC_F): New mode.
12591 * config/rx/rx.c (rx_select_cc_mode): New.
12592 * config/rx/rx.h (SELECT_CC_MODE): Use it.
12593 * config/rx/rx-protos.h: Update.
12594
12595 2011-01-17 Richard Henderson <rth@redhat.com>
12596
12597 * except.c (dump_eh_tree): Fix stray ; after for statement.
12598
12599 2011-01-17 Richard Guenther <rguenther@suse.de>
12600
12601 PR tree-optimization/47313
12602 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
12603 handling before copying the body. Properly deal with
12604 by-reference result in SSA form.
12605
12606 2011-01-17 Ian Lance Taylor <iant@google.com>
12607
12608 PR target/47219
12609 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
12610 (struct_value_alias_set): Don't define.
12611 (sparc_option_override): Don't set sparc_sr_alias_set and
12612 struct_value_alias_set.
12613 (save_or_restore_regs): Use gen_frame_mem rather than calling
12614 set_mem_alias_set.
12615 (sparc_struct_value_rtx): Likewise.
12616
12617 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
12618
12619 PR target/47318
12620 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
12621 (_mm_maskstore_pd): Likewise.
12622 (_mm_maskload_ps): Likewise.
12623 (_mm_maskstore_ps): Likewise.
12624 (_mm256_maskload_pd): Change mask to __m256i.
12625 (_mm256_maskstore_pd): Likewise.
12626 (_mm256_maskload_ps): Likewise.
12627 (_mm256_maskstore_ps): Likewise.
12628
12629 * config/i386/i386-builtin-types.def: Updated.
12630 (ix86_expand_special_args_builtin): Likewise.
12631
12632 * config/i386/i386.c (bdesc_special_args): Update
12633 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
12634 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
12635 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
12636 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
12637
12638 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
12639 Use <avxpermvecmode> on mask register.
12640 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
12641
12642 2011-01-17 Olivier Hainque <hainque@adacore.com>
12643 Michael Haubenwallner <michael.haubenwallner@salomon.at>
12644 Eric Botcazou <ebotcazou@adacore.com>
12645
12646 PR target/46655
12647 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
12648 if <= USHRT_MAX in 32-bit mode.
12649
12650 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12651
12652 * doc/install.texi (Configuration, Specific): Wrap long
12653 lines in examples. Allow line wrapping in long options
12654 and URLs where beneficial for PDF output.
12655
12656 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
12657
12658 * config/mips/mips.c (mips_classify_symbol): Don't return
12659 SYMBOL_PC_RELATIVE for nonlocal labels.
12660
12661 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
12662
12663 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
12664
12665 2011-01-15 Jan Hubicka <jh@suse.cz>
12666
12667 PR tree-optimization/47276
12668 * ipa.c (function_and_variable_visibility): Do not try to mark alias
12669 declarations as needed.
12670
12671 2011-01-15 Martin Jambor <mjambor@suse.cz>
12672
12673 * common.opt (fdevirtualize): New flag.
12674 * doc/invoke.texi (Option Summary): Document it.
12675 * opts.c (default_options_table): Add devirtualize flag.
12676 * ipa-prop.c (detect_type_change): Return immediately if
12677 devirtualize flag is not set.
12678 (detect_type_change_ssa): Likewise.
12679 (compute_known_type_jump_func): Likewise.
12680 (ipa_analyze_virtual_call_uses): Likewise.
12681
12682 2011-01-14 Martin Jambor <mjambor@suse.cz>
12683
12684 PR tree-optimization/45934
12685 PR tree-optimization/46302
12686 * ipa-prop.c (type_change_info): New type.
12687 (stmt_may_be_vtbl_ptr_store): New function.
12688 (check_stmt_for_type_change): Likewise.
12689 (detect_type_change): Likewise.
12690 (detect_type_change_ssa): Likewise.
12691 (compute_complex_assign_jump_func): Check for dynamic type change.
12692 (compute_complex_ancestor_jump_func): Likewise.
12693 (compute_known_type_jump_func): Likewise.
12694 (compute_scalar_jump_functions): Likewise.
12695 (ipa_analyze_virtual_call_uses): Likewise.
12696 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
12697
12698 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12699
12700 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
12701 * config/i386/i386.opt (msse5): New Alias.
12702
12703 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12704
12705 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12706 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12707 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12708 * config/sparc/sparc.h (CC1_SPEC): Likewise.
12709
12710 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12711
12712 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
12713 -mcpu options.
12714 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12715 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12716 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
12717 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
12718 Likewise.
12719 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
12720
12721 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12722
12723 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
12724
12725 2011-01-14 Mike Stump <mikestump@comcast.net>
12726
12727 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
12728 * config/fr30/fr30.md: Likweise
12729 (movsi_push): Likewise.
12730 (movsi_pop): Likewise.
12731 (enter_func): Likewise.
12732 * config/moxie/moxie.md (movsi_push): Likewise.
12733 (movsi_pop): Likewise.
12734
12735 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12736
12737 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
12738 %{no_archive} %{exact_version}.
12739 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
12740 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
12741 %{no_archive} %{exact_version}.
12742 * config/mips/openbsd.h (LINK_SPEC): Likewise.
12743 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
12744 * config/mips/vxworks.h: Likewise.
12745
12746 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12747
12748 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
12749
12750 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12751
12752 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
12753 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
12754
12755 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12756
12757 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
12758 -nodefaultlib.
12759
12760 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12761
12762 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
12763 for mcpu not cpu.
12764 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
12765 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
12766 not cpu.
12767 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
12768 Don't handle -shlib.
12769
12770 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12771
12772 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
12773 (CC1_SPEC): Don't handle -profile.
12774
12775 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12776
12777 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
12778 * config/mips/mips.h (CC1_SPEC): Likewise.
12779
12780 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12781
12782 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
12783 * config/mips/mips.h (CC1_SPEC): Likewise.
12784
12785 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12786
12787 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
12788 * config/m32r/linux.h (LINK_SPEC): Likewise.
12789 * config/mips/linux.h (LINK_SPEC): Likewise.
12790 * config/mips/linux64.h (LINK_SPEC): Likewise.
12791 * config/sparc/linux.h (LINK_SPEC): Likewise.
12792 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12793 LINK_SPEC): Likewise.
12794 * config/xtensa/linux.h (LINK_SPEC): Likewise.
12795
12796 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12797
12798 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
12799 %{version:-v}.
12800 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
12801
12802 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12803
12804 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
12805 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12806
12807 2011-01-14 Joseph Myers <joseph@codesourcery.com>
12808
12809 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
12810
12811 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12812
12813 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
12814 supports -Bstatic/-Bdynamic.
12815 * configure: Regenerate.
12816
12817 2011-01-14 Jan Hubicka <jh@suse.cz>
12818 Jack Howarth <howarth@bromo.med.uc.edu>
12819
12820 PR target/46037
12821 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
12822 when checking debug_info_level. Test write_symbols instead of
12823 debug_hooks->var_location when setting flag_var_tracking_uninit.
12824
12825 2011-01-14 Richard Guenther <rguenther@suse.de>
12826
12827 PR tree-optimization/47179
12828 * target.def (ref_may_alias_errno): New target hook.
12829 * targhooks.h (default_ref_may_alias_errno): Declare.
12830 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
12831 (default_ref_may_alias_errno): New function.
12832 * target.h (struct ao_ref_s): Declare.
12833 * tree-ssa-alias.c: Include target.h.
12834 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
12835 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
12836 (targhooks.o): Likewise.
12837 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
12838 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
12839
12840 2011-01-14 Richard Guenther <rguenther@suse.de>
12841
12842 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
12843
12844 2011-01-14 Richard Guenther <rguenther@suse.de>
12845
12846 PR tree-optimization/47280
12847 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
12848 return CFG changes.
12849 (tree_ssa_forward_propagate_single_use_vars): Deal with
12850 CFG changes from associate_plusminus.
12851
12852 2011-01-14 Richard Guenther <rguenther@suse.de>
12853
12854 PR middle-end/47281
12855 Revert
12856 2011-01-11 Richard Guenther <rguenther@suse.de>
12857
12858 PR tree-optimization/46076
12859 * tree-ssa.c (useless_type_conversion_p): Conversions from
12860 unprototyped to empty argument list function types are useless.
12861
12862 2011-01-14 Richard Guenther <rguenther@suse.de>
12863
12864 PR tree-optimization/47286
12865 * tree-ssa-structalias.c (new_var_info): Register variables are global.
12866
12867 2011-01-14 Martin Jambor <mjambor@suse.cz>
12868
12869 PR middle-end/46823
12870 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
12871
12872 2011-01-13 Anatoly Sokolov <aesok@post.ru>
12873
12874 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
12875 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12876 * config/xtensa/xtensa.c (xtensa_libcall_value,
12877 xtensa_function_value_regno_p): New functions.
12878 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12879
12880 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
12881
12882 PR c++/47213
12883 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
12884 PE specific hook.
12885 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
12886 New function prototype.
12887 * config/i386/winnt.c (i386_pe_assemble_visibility):
12888 Warn only if attribute was specified by user.
12889
12890 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12891
12892 PR target/47251
12893 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12894 floating point.
12895 (floatunsdidf2_fcfidu): Ditto.
12896
12897 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12898
12899 * config/s390/s390.c (print_operand_address): Replace 'error' with
12900 'output_operand_lossage'.
12901 (print_operand): Likewise.
12902
12903 2011-01-13 Jeff Law <law@redhat.com>
12904
12905 PR rtl-optimization/39077
12906 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12907 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12908 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12909 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12910 * gcse.c (prune_insertions_deletions): New function.
12911 (compute_pre_data): Use it.
12912
12913 2011-01-13 Dodji Seketeli <dodji@redhat.com>
12914
12915 PR debug/PR46973
12916 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12917 static function.
12918 (prune_unused_types_mark): Use it.
12919
12920 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
12921
12922 PR rtl-optimization/45352
12923 * sel-sched.c: Update copyright years.
12924 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
12925 in the advancing loop when we have issued issue_rate insns.
12926
12927 2011-01-12 Richard Henderson <rth@redhat.com>
12928
12929 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12930 (TARGET_MD_ASM_CLOBBERS): New.
12931
12932 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12933 (TARGET_DELEGITIMIZE_ADDRESS): New.
12934
12935 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12936 (clzsi2, *bsch): New patterns.
12937
12938 * config/mn10300/mn10300.md (INT): New mode iterator.
12939 (*mov<INT>_clr): New pattern, and peep2 to generate it.
12940
12941 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12942 flag_split_wide_types.
12943
12944 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12945 (mn10300_trampoline_init): Rewrite without a template, an immediate
12946 load and a direct branch.
12947 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12948
12949 2011-01-12 Anatoly Sokolov <aesok@post.ru>
12950
12951 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12952 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12953 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12954 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12955
12956 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
12957
12958 PR debug/47209
12959 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12960 of type.
12961
12962 2011-01-12 Jan Hubicka <jh@suse.cz>
12963
12964 PR driver/47244
12965 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
12966 (PLUGIN_COND_CLOSE): New macro.
12967 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
12968
12969 2011-01-12 Richard Guenther <rguenther@suse.de>
12970
12971 PR lto/47259
12972 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
12973 register variables in a MEM_REF.
12974
12975 2011-01-12 Joseph Myers <joseph@codesourcery.com>
12976
12977 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
12978 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
12979 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
12980 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12981 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12982 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
12983 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
12984 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
12985 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
12986 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
12987 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
12988 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
12989 * config/gnu-user.h: New. Copied from linux.h.
12990 (LINUX_TARGET_STARTFILE_SPEC): Rename to
12991 GNU_USER_TARGET_STARTFILE_SPEC.
12992 (LINUX_TARGET_ENDFILE_SPEC): Rename to
12993 GNU_USER_TARGET_ENDFILE_SPEC.
12994 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
12995 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
12996 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
12997 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
12998 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
12999 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13000 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
13001 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
13002 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
13003 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
13004 * config/arm/linux-eabi.h (CC1_SPEC): Use
13005 GNU_USER_TARGET_CC1_SPEC.
13006 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
13007 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
13008 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
13009 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
13010 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
13011 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
13012 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
13013 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
13014
13015 2011-01-12 Richard Guenther <rguenther@suse.de>
13016
13017 PR other/46946
13018 * doc/invoke.texi (ffast-math): Document it is turned on
13019 with -Ofast.
13020
13021 2011-01-12 Jan Hubicka <jh@suse.cz>
13022
13023 PR tree-optimization/47233
13024 * opts.c (common_handle_option): Disable ipa-reference with profile
13025 feedback.
13026
13027 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
13028
13029 * c-parser.c (c_parser_objc_at_property_declaration): Improved
13030 error message.
13031
13032 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
13033
13034 * c-parser.c (c_lex_one_token): Updated and reindented some
13035 comments. No changes in code.
13036
13037 2011-01-11 Ian Lance Taylor <iant@google.com>
13038
13039 * godump.c (go_output_var): Don't output the variable if there is
13040 already a type with the same name.
13041
13042 2011-01-11 Ian Lance Taylor <iant@google.com>
13043
13044 * godump.c (go_format_type): Don't generate float80.
13045
13046 2011-01-11 Richard Henderson <rth@redhat.com>
13047
13048 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
13049 declaration. Rewrite for both speed and size.
13050 (mn10300_address_cost_1): Remove.
13051 (mn10300_register_move_cost): New.
13052 (mn10300_memory_move_cost): New.
13053 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
13054 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
13055 extensions, shifts, BSWAP, CLZ.
13056 (mn10300_wide_const_load_uses_clr): Remove.
13057 (TARGET_REGISTER_MOVE_COST): New.
13058 (TARGET_MEMORY_MOVE_COST): New.
13059 * config/mn10300/mn10300-protos.h: Update.
13060 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
13061
13062 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
13063 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
13064 * config/mn10300/mn10300-protos.h: Update.
13065 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
13066 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
13067 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
13068 (*test_int_bitfield, *test_byte_bitfield): Remove.
13069 (*bit_test, *subreg_bit_test): Remove.
13070 * config/mn10300/predicates.md (const_8bit_operand): Remove.
13071
13072 * config/mn10300/constraints.md ("c"): Rename from "A".
13073 ("A", "D"): New constraint letters.
13074 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
13075 (fmssf4, fnmasf4, fnmssf4): Likewise.
13076
13077 * config/mn10300/mn10300.md (isa): New attribute.
13078 (enabled): New attribute.
13079
13080 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
13081 (abssf2, negsf2): Define only for hardware fp.
13082 (sqrtsf2): Reformat.
13083 (addsf3, subsf3, mulsf3): Merge expander and insn.
13084
13085 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
13086 (DEBUGGER_AUTO_OFFSET): Remove.
13087 (DEBUGGER_ARG_OFFSET): Remove.
13088
13089 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
13090 Emit register stores with the same offsets as the hardware.
13091 (mn10300_store_multiple_operation): Don't check that the register
13092 save offsets are monotonic.
13093 * config/mn10300/mn10300-protos.h: Update.
13094
13095 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
13096
13097 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
13098 in terms of the value on the stack, not the MDR register.
13099
13100 2011-01-11 Jan Hubicka <jh@suse.cz>
13101
13102 PR lto/45721
13103 PR lto/45375
13104 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
13105 (symbol_alias_set_destroy, symbol_alias_set_contains,
13106 propagate_aliases_backward): Declare.
13107 * lto-streamer-out.c (struct sets): New sturcture.
13108 (trivally_defined_alias): New function.
13109 (output_alias_pair_p): Rewrite.
13110 (output_unreferenced_globals): Fix output of alias pairs.
13111 (produce_symtab): Likewise.
13112 * ipa.c (function_and_variable_visibility): Set weak alias destination
13113 as needed in lto.
13114 * varasm.c (symbol_alias_set_t): Remove.
13115 (symbol_alias_set_destroy): Export.
13116 (propagate_aliases_forward, propagate_aliases_backward): New functions
13117 based on ...
13118 (compute_visible_aliases): ... this one; remove.
13119 (trivially_visible_alias): New
13120 (trivially_defined_alias): New.
13121 (remove_unreachable_alias_pairs): Rewrite.
13122 (finish_aliases_1): Reorganize code checking if alias is defined.
13123 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
13124 in LTO mode.
13125
13126 2011-01-11 Richard Guenther <rguenther@suse.de>
13127
13128 PR tree-optimization/46076
13129 * tree-ssa.c (useless_type_conversion_p): Conversions from
13130 unprototyped to empty argument list function types are useless.
13131
13132 2011-01-11 Richard Guenther <rguenther@suse.de>
13133
13134 PR middle-end/45235
13135 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
13136 volatile MEMs as MEM_READONLY_P.
13137
13138 2011-01-11 Richard Guenther <rguenther@suse.de>
13139
13140 PR tree-optimization/47239
13141 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
13142
13143 2011-01-11 Jeff Law <law@redhat.com>
13144
13145 PR tree-optimization/47086
13146 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
13147 IVs from statements that might throw.
13148
13149 2011-01-10 Jan Hubicka <jh@suse.cz>
13150
13151 PR lto/45375
13152 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
13153
13154 2011-01-10 Jan Hubicka <jh@suse.cz>
13155
13156 PR lto/45375
13157 * profile.c (read_profile_edge_counts): Ignore profile inconistency
13158 when correcting profile.
13159
13160 2011-01-10 Jan Hubicka <jh@suse.cz>
13161
13162 PR lto/46083
13163 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
13164 DECL_FINI_PRIORITY.
13165 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
13166 Restore DECL_FINI_PRIORITY.
13167
13168 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13169
13170 * doc/gimple.texi: Fix quoting of multi-word return values in
13171 @deftypefn statements. Ensure presence of return value. Wrap
13172 overlong @deftypefn lines.
13173 (is_gimple_operand, is_gimple_min_invariant_address): Remove
13174 descriptions of removed functions.
13175 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
13176 of multi-word return value in @deftypefn statement.
13177
13178 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13179
13180 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
13181 (Conditional Expressions, Logical Operators)
13182 (Statement and operand traversals): Do not indent smallexample
13183 code. Fix duplicate function argument in example.
13184
13185 2011-01-10 Jeff Law <law@redhat.com>
13186
13187 PR tree-optimization/47141
13188 * ipa-split.c (split_function): Handle case where we are
13189 returning a value and the return block has a virtual operand phi.
13190
13191 2011-01-10 Jan Hubicka <jh@suse.cz>
13192
13193 PR tree-optimization/47234
13194 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
13195 (pass_feedback_split_functions): Declare.
13196 * passes.c (init_optimization_passes): Add ipa-split as subpass of
13197 tree-profile.
13198 * ipa-split.c (gate_split_functions): Update comments; disable
13199 split-functions for profile_arc_flag and branch_probabilities.
13200 (gate_feedback_split_functions): New function.
13201 (execute_feedback_split_functions): New function.
13202 (pass_feedback_split_functions): New global var.
13203
13204 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
13205
13206 PR lto/46760
13207 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
13208 calling gimple_call_set_cannot_inline.
13209
13210 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
13211
13212 * config/darwin-sections.def: Remove unused section.
13213
13214 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
13215
13216 PR c++/47218
13217 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
13218
13219 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
13220
13221 PR objc/47232
13222 * c-parser.c (c_parser_declaration_or_fndef): Improved
13223 error message.
13224
13225 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
13226
13227 * config/i386/winnt.c (i386_pe_start_function): Make sure
13228 to switch back to function's section.
13229
13230 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
13231
13232 PR gcc/46902
13233 PR testsuite/46912
13234 * plugin.c: Move include of dlfcn.h from here...
13235 * system.h: ... to here.
13236
13237 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13238
13239 * doc/cpp.texi (C++ Named Operators): Fix markup for header
13240 file name.
13241 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
13242 two extra empty pages in PDF output.
13243
13244 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
13245
13246 PR objc/47078
13247 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
13248 for error recovery purposes behave as if it was not specified so
13249 that the default type is usd.
13250
13251 2011-01-07 Jan Hubicka <jh@suse.cz>
13252
13253 PR tree-optmization/46469
13254 * ipa.c (function_and_variable_visibility): Clear needed flags on
13255 nodes with external decls; handle weakrefs merging correctly.
13256
13257 2011-01-07 Joseph Myers <joseph@codesourcery.com>
13258
13259 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
13260 not false.
13261
13262 2011-01-07 Jan Hubicka <jh@suse.cz>
13263
13264 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
13265 and no longer claim that gold is required for linker plugin.
13266 * configure: Regenerate.
13267 * gcc.c (PLUGIN_COND): New macro.
13268 (LINK_COMMAND_SPEC): Use it.
13269 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
13270 * config.in (HAVE_LTO_PLUGIN): New.
13271 * configure.ac (--with-lto-plugin): New parameter; autodetect
13272 HAVE_LTO_PLUGIN.
13273
13274 2011-01-07 Jan Hubicka <jh@suse.cz>
13275
13276 PR tree-optimization/46367
13277 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
13278 when we can update original.
13279 (cgraph_mark_inline_edge): Sanity check.
13280 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
13281
13282 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13283
13284 * config/spu/spu.h (ASM_COMMENT_START): Define.
13285
13286 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
13287
13288 PR driver/42445
13289 * gcc.c (%>S): New.
13290 (SWITCH_KEEP_FOR_GCC): Likewise.
13291 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
13292 (do_spec_1): Handle "%>".
13293
13294 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
13295
13296 2011-01-07 Jakub Jelinek <jakub@redhat.com>
13297
13298 PR target/47201
13299 * config/i386/i386.c (ix86_delegitimize_address): If
13300 simplify_gen_subreg fails, return orig_x.
13301
13302 PR bootstrap/47187
13303 * value-prof.c (gimple_stringop_fixed_value): Handle
13304 lhs of the call properly.
13305
13306 2011-01-07 Jan Hubicka <jh@suse.cz>
13307
13308 PR lto/45375
13309 * lto-opt.c (lto_reissue_options): Set flag_shlib.
13310
13311 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
13312
13313 * target.def (function_switched_text_sections): New hook.
13314 * doc/tm.texi: Regenerated.
13315 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13316 * final.c (default_function_switched_text_sections): New.
13317 (final_scan_insn): Call function_switched_text_sections when a
13318 mid-function section change occurs.
13319 * output.h (default_function_switched_text_sections): Declare.
13320 * config/darwin-protos.h (darwin_function_switched_text_sections):
13321 Likewise.
13322 * config/darwin.c (darwin_function_switched_text_sections): New.
13323 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13324
13325 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
13326
13327 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
13328 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
13329 the secondary code fragment when outputting for DWARF == 2.
13330
13331 2011-01-07 Anatoly Sokolov <aesok@post.ru>
13332
13333 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13334 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
13335 Remove.
13336 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
13337 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13338
13339 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
13340
13341 PR debug/46704
13342 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
13343 when it is not empty.
13344
13345 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
13346
13347 Bobcat Enablement
13348 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
13349 (case ${target}): Add btver1.
13350 * config/i386/driver-i386.c (host_detect_local_cpu): Let
13351 -march=native recognize btver1 processors.
13352 * config/i386/i386-c.c (ix86_target_macros_internal): Add
13353 btver1 def_and_undef
13354 * config/i386/i386.c (struct processor_costs btver1_cost): New
13355 btver1 cost table.
13356 (m_BTVER1): New definition.
13357 (m_AMD_MULTIPLE): Includes m_BTVER1.
13358 (initial_ix86_tune_features): Add btver1 tune.
13359 (processor_target_table): Add btver1 entry.
13360 (static const char *const cpu_names): Add btver1 entry.
13361 (software_prefetching_beneficial_p): Add btver1.
13362 (ix86_option_override_internal): Add btver1 instruction sets.
13363 (ix86_issue_rate): Add btver1.
13364 (ix86_adjust_cost): Add btver1.
13365 * config/i386/i386.h (TARGET_BTVER1): New definition.
13366 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
13367 (enum processor_type): Add PROCESSOR_BTVER1.
13368 * config/i386/i386.md (define_attr "cpu"): Add btver1.
13369
13370 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13371
13372 PR target/43309
13373 * config/i386/i386.c (legitimize_tls_address)
13374 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
13375 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
13376 (tls_initial_exec_64_sun): New pattern.
13377
13378 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13379
13380 * doc/invoke.texi (Overall Options): Improve wording and markup
13381 of the description of -wrapper.
13382
13383 2011-01-06 Joseph Myers <joseph@codesourcery.com>
13384
13385 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
13386 rdynamic, threads): New Driver options.
13387
13388 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13389
13390 PR target/38118
13391 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
13392 if coming from .tdata.
13393 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13394
13395 2011-01-06 Jan Hubicka <jh@suse.cz>
13396
13397 PR lto/47188
13398 * collect2.c (main): Do not enable LTOmode when plugin is active.
13399
13400 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13401
13402 PR other/45915
13403 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
13404 --version output if supported.
13405 * configure: Regenerate.
13406
13407 2011-01-06 Joseph Myers <joseph@codesourcery.com>
13408
13409 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
13410 Driver options.
13411
13412 2011-01-06 Jakub Jelinek <jakub@redhat.com>
13413
13414 PR c/47150
13415 * c-convert.c (convert): When converting a complex expression
13416 other than COMPLEX_EXPR to a different complex type, ensure
13417 c_save_expr is called instead of save_expr, unless in_late_binary_op.
13418 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
13419 when converting COMPLEX_TYPE.
13420
13421 2011-01-06 Ira Rosen <irar@il.ibm.com>
13422
13423 PR tree-optimization/47139
13424 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
13425 only the last reduction value is used outside the loop. Update
13426 documentation.
13427
13428 2011-01-05 Joseph Myers <joseph@codesourcery.com>
13429
13430 * config/rtems.opt: New.
13431 * config.gcc (*-*-rtems*): Use rtems.opt.
13432
13433 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
13434
13435 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
13436 processors do not support 3DNow instructions.
13437
13438 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13439
13440 * config/spu/spu.c (spu_option_override): Set parameter
13441 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
13442
13443 2011-01-05 Jan Hubicka <jh@suse.cz>
13444
13445 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
13446 at the command line.
13447
13448 2011-01-05 Martin Jambor <mjambor@suse.cz>
13449
13450 PR lto/47162
13451 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
13452 deltas on streamed outgoing edges.
13453 (output_node_opt_summary): Output info for outgoing edges only when
13454 the node is in new parameter set.
13455 (output_cgraph_opt_summary): New parameter set, passed to the two
13456 aforementioned functions. Update its forward declaration and its
13457 callee too.
13458
13459 2011-01-05 Tom Tromey <tromey@redhat.com>
13460
13461 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
13462 operator to c_finish_omp_atomic.
13463 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
13464 (build_unary_op): Update.
13465 (build_modify_expr): Update.
13466 (build_asm_expr): Update.
13467
13468 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13469
13470 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
13471 newly inserted insns.
13472 (pad_bb): Likewise.
13473 (spu_emit_branch_hint): Likewise.
13474 (insert_hbrp_for_ilb_runout): Likewise.
13475 (spu_machine_dependent_reorg): Call df_finish_pass after
13476 schedule_insns returns.
13477
13478 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13479
13480 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
13481
13482 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
13483
13484 PR tree-optimization/47005
13485 * tree-sra.c (struct access): Add 'non_addressable' bit.
13486 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
13487 (decide_one_param_reduction): Return 0 if the parameter is passed by
13488 reference and one of the accesses in the group is non_addressable.
13489
13490 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13491
13492 PR tree-optimization/47056
13493 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
13494 (mark_load): Likewise. Handle FUNCTION_DECL specially.
13495 (mark_store): Likewise. Pass STMT to ipa_record_reference.
13496
13497 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13498
13499 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
13500 initializer. Skip view conversions from aggregate types.
13501
13502 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
13503
13504 PR bootstrap/47055
13505 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
13506
13507 2011-01-04 Philipp Thomas <pth@suse.de>
13508
13509 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
13510 obvious typo.
13511
13512 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13513
13514 * function.c (thread_prologue_and_epilogue_insns): Do not crash
13515 on empty epilogue sequences.
13516
13517 2011-01-04 Joseph Myers <joseph@codesourcery.com>
13518
13519 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
13520 non-static): New Driver options.
13521
13522 2011-01-04 Jie Zhang <jie@codesourcery.com>
13523
13524 PR driver/47137
13525 * gcc.c (default_compilers[]): Set combinable field to 0
13526 for all assembly languages.
13527
13528 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
13529
13530 * config/mips/loongson3a.md: New file.
13531 * config/mips/mips.md: Include loongson3a.md.
13532 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
13533 TUNE_LOONGSON_3A.
13534
13535 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
13536
13537 PR middle-end/47017
13538 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
13539 instead of convert_memory_address_addr_space on the base expression.
13540
13541 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13542
13543 * config/spu/spu.c (spu_option_override): Update error text
13544 for bad -march= / -mtune= values.
13545
13546 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13547
13548 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
13549 if branch-hint optimization will be performed.
13550
13551 2011-01-03 Jakub Jelinek <jakub@redhat.com>
13552
13553 PR tree-optimization/47148
13554 * ipa-split.c (split_function): Convert arguments to
13555 DECL_ARG_TYPE if possible.
13556
13557 PR tree-optimization/47155
13558 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
13559 when computing uns.
13560
13561 PR rtl-optimization/47157
13562 * combine.c (try_combine): If undobuf.other_insn becomes
13563 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
13564 and set *new_direct_jump_p too.
13565
13566 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
13567
13568 PR tree-optimization/47021
13569 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
13570
13571 2011-01-03 Jakub Jelinek <jakub@redhat.com>
13572
13573 * gcc.c (process_command): Update copyright notice dates.
13574 * gcov.c (print_version): Likewise.
13575 * gcov-dump.c (print_version): Likewise.
13576 * mips-tfile.c (main): Likewise.
13577 * mips-tdump.c (main): Likewise.
13578
13579 2011-01-03 Martin Jambor <mjambor@suse.cz>
13580
13581 PR tree-optimization/46801
13582 * tree-sra.c (type_internals_preclude_sra_p): Check whether
13583 aggregate fields start at byte boundary instead of the bit-field flag.
13584
13585 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
13586
13587 PR driver/47137
13588 * gcc.c (main): Revert revision 168407.
13589
13590 2011-01-03 Martin Jambor <mjambor@suse.cz>
13591
13592 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
13593
13594 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13595
13596 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
13597 vector optab to expand vector/scalar shift, update gimple to vector.
13598
13599 2011-01-03 Martin Jambor <mjambor@suse.cz>
13600
13601 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
13602 a thunk.
13603
13604 2011-01-03 Martin Jambor <mjambor@suse.cz>
13605
13606 PR tree-optimization/46984
13607 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
13608 HOST_WIDE_INT.
13609 (cgraph_create_indirect_edge): Fixed line length.
13610 (cgraph_indirect_call_info): Declare.
13611 (cgraph_make_edge_direct) Update declaration.
13612 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
13613 (cgraph_create_indirect_edge): Use it.
13614 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
13615 callees.
13616 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
13617 the new thunk_delta representation.
13618 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
13619 HOST_WIDE_INT.
13620 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
13621 (ipa_read_indirect_edge_info): Likewise.
13622 * lto-cgraph.c (output_edge_opt_summary): New function.
13623 (output_node_opt_summary): Call it on all outgoing edges.
13624 (input_edge_opt_summary): New function.
13625 (input_node_opt_summary): Call it on all outgoing edges.
13626
13627 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
13628
13629 PR driver/47137
13630 * gcc.c (main): Don't check have_o when settting combine_inputs.
13631
13632 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
13633
13634 * regrename.c: Add general comment describing the pass.
13635 (struct du_head): Remove 'length' field.
13636 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
13637 (regrename_optimize): Do not sort chains. Rework comments, add others.
13638 Force renaming to the preferred class (if any) in the first pass and do
13639 not consider registers that belong to it in the second pass.
13640 (create_new_chain): Do not set 'length' field.
13641 (scan_rtx_reg): Likewise.
13642
13643 2011-01-02 Jakub Jelinek <jakub@redhat.com>
13644
13645 PR tree-optimization/47140
13646 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
13647 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
13648 to bit_value_binop.
13649
13650 PR rtl-optimization/47028
13651 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
13652 parm_birth_insn instead of at the beginning of first bb.
13653
13654 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
13655
13656 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
13657 Remove the word "see" before "@pxref".
13658 * doc/rtl.texi: Remove the word "see" before "@pxref".
13659
13660 2011-01-01 Jan Hubicka <jh@suse.cz>
13661
13662 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
13663 memory.
13664
13665 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
13666
13667 PR target/38662
13668 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
13669
13670 \f
13671 Copyright (C) 2011 Free Software Foundation, Inc.
13672
13673 Copying and distribution of this file, with or without modification,
13674 are permitted in any medium without royalty provided the copyright
13675 notice and this notice are preserved.