format clean up
[gcc.git] / gcc / ChangeLog
1 2011-06-01 David Li <davidxl@google.com>
2
3 PR middle-end/49261
4 * tree-pretty-print.c (dump_function_header): Format cleanup.
5
6 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7
8 PR target/49238
9 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
10 needed when original operands are used for msw_skip comparison.
11
12 2011-06-01 Jakub Jelinek <jakub@redhat.com>
13
14 PR debug/49250
15 * var-tracking.c (add_uses, add_stores): Don't call
16 cselib_subst_to_values on ENTRY_VALUE.
17
18 2011-06-01 Diego Novillo <dnovillo@google.com>
19
20 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
21 output_record_start with LTO_null instead of output_zero.
22 (lto_output_ts_binfo_tree_pointers): Likewise.
23 (lto_output_tree): Likewise.
24 (output_eh_try_list): Likewise.
25 (output_eh_region): Likewise.
26 (output_eh_lp): Likewise.
27 (output_eh_regions): Likewise.
28 (output_bb): Likewise.
29 (output_function): Likewise.
30 (output_unreferenced_globals): Likewise.
31 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
32 instead of NUM_TREE_CODES.
33 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
34 (lto_output_int_in_range): Change << to >> when shifting VAL.
35
36 2011-06-01 Diego Novillo <dnovillo@google.com>
37
38 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
39 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
40
41 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
42
43 PR target/45074
44 * optabs.h (valid_multiword_target_p): Declare.
45 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
46 doing multi-word operations.
47 * optabs.c (expand_binop): Likewise.
48 (expand_doubleword_bswap): Likewise.
49 (expand_absneg_bit): Likewise.
50 (expand_unop): Likewise.
51 (expand_copysign_bit): Likewise.
52 (multiword_target_p): New function.
53
54 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
55
56 PR rtl-optimization/48830
57 PR rtl-optimization/48808
58 PR rtl-optimization/48792
59 * reload.c (push_reload): Check contains_reg_of_mode.
60 * reload1.c (strip_paradoxical_subreg): New function.
61 (gen_reload_chain_without_interm_reg_p): Use it to handle
62 paradoxical subregs.
63 (emit_output_reload_insns, gen_reload): Likewise.
64
65 2011-06-01 David Li <davidxl@google.com>
66
67 * predict.c : Change pass name
68 * ipa.c: Ditto.
69 * dce.c: Ditto.
70 * tree-profile.c: Ditto.
71 * except.c: Ditto.
72
73 2011-06-01 David Li <davidxl@google.com>
74
75 * tree-pretty-print.c (dump_function_header): New function.
76 * final.c (rest_of_clean_state): Use header dumper.
77 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
78 * passes.c (pass_init_dump_file): Use header dumper.
79
80 2011-06-01 Jakub Jelinek <jakub@redhat.com>
81
82 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
83 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
84 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
85 New functions.
86 (mem_loc_descriptor): Use them.
87
88 * var-tracking.c (create_entry_value): New function.
89 (vt_add_function_parameter): Use it.
90
91 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
92
93 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
94 Include <signal.h>, <ucontext.h>.
95 (sigill_caught): Define.
96 (sigill_hdlr): New function.
97 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
98 insns can be executed.
99 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math
100 etc.
101 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
102
103 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
104
105 * config/t-slibgcc-darwin: Move to ...
106 * config/t-slibgcc-dummy: .. this.
107 Clarify comments.
108 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
109 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
110 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
111 (i[34567]86-*-rtems*): Remove extra_parts.
112 Use i386/t-rtems.
113 Remove i386/t-crtstuff from tmake_file.
114 (i[34567]86-*-solaris2*): Remove t-svr4,
115 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
116 t-slibgcc-dummy.
117 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
118 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
119 sparc/t-crtfm from tmake_file.
120 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
121 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
122 Remove extra_parts.
123 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
124 * config/i386/t-nwld (SHLIB_LINK): Remove.
125 * config/i386/t-rtems-i386: Rename to ...
126 * config/i386/t-rtems: ... this.
127 ($(T)crti.o, $(T)crtn.o): Remove.
128 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
129 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
130 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
131 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
132 EXTRA_MULTILIB_PARTS): Remove.
133 * config/sparc/t-sol2-64: Likewise.
134 * config/sparc/t-sol2: Remove.
135 * config/sparc/t-crtin: Remove.
136 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
137 * config/i386/gmon-sol2.c: Remove.
138 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
139 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
140 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
141 * config/i386/sol2-gc1.asm: Remove.
142 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
143 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
144 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
145 * config/t-slibgcc-sld: Remove.
146
147 2011-06-01 Jakub Jelinek <jakub@redhat.com>
148
149 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
150 base_type_for_mode with op_mode instead of mode.
151
152 2011-06-01 Paul Brook <paul@cpodesourcery.com>
153
154 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
155 Cortex-A15.
156 * config/arm/arm-tune.md: Regenerate.
157 * config/arm/arm-tables.opt: Regenerate.
158 * config/arm/arm.c (FL_DIV): Rename...
159 (FL_THUMB_DIV): ... to this.
160 (FL_ARM_DIV): Define.
161 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
162 (arm_arch_hwdiv): Remove.
163 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
164 (arm_issue_rate): Add cortexr5.
165 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
166 __ARM_ARCH_EXT_IDIV__.
167 (TARGET_IDIV): Define.
168 (arm_arch_hwdiv): Remove.
169 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
170 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
171 (divsi3, udivsi3): New patterns.
172 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
173 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
174
175 2011-06-01 Martin Jambor <mjambor@suse.cz>
176
177 * ipa-utils.c (ipa_dfs_info): New field scc_no.
178 * ipa-utils.c (searchc): Set scc_no.
179
180 2011-06-01 Martin Jambor <mjambor@suse.cz>
181
182 * ipa-utils.c (searchc_env): New field allow_overwritable.
183 (searchc): do not ignore edges to overwritable nodes if indicated
184 by env->allow_overwritable.
185 (ipa_reduced_postorder): Set env.allow_overwritable.
186
187 2011-06-01 Richard Guenther <rguenther@suse.de>
188
189 * tree.c (free_lang_data): Do not reset boolean_type_node nor
190 char_type_node.
191 * lto-streamer.c (lto_record_common_node): Take node pointer,
192 do not register types.
193 (lto_preload_common_nodes): Explicitly skip preloading nodes
194 that differ between frontends.
195
196 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
197
198 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
199 NON_FLOAT_REGS.
200
201 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
202
203 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
204 parameter value for dump. Dump cost on outermost call only.
205 (rs6000_memory_move_cost): Dump cost on outermost call only.
206
207 2011-05-31 Jakub Jelinek <jakub@redhat.com>
208
209 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
210 DW_OP_GNU_convert ops.
211
212 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
213 cselib_preserve_constants.
214 (cselib_lookup_1): If cselib_preserve_constants,
215 a new VALUE is being created for REG and there is a VALUE for the
216 same register in wider mode, add another loc with lowpart SUBREG of
217 the wider VALUE.
218 (cselib_subst_to_values): Handle ENTRY_VALUE.
219 * var-tracking.c (replace_expr_with_values): Return NULL for
220 ENTRY_VALUE too.
221 * dwarf2out.c (convert_descriptor_to_signed): New function.
222 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
223 instead of two shifts.
224 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
225 the right mode if needed.
226 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
227 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
228 convert_descriptor_to_signed.
229 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
230 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
231
232 PR target/48688
233 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
234
235 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
236
237 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
238 of X87MODEI12 and SWI48x instead of SSEMODEI24.
239 (SWI248x): New mode iterator, rename from X87MODEI.
240 (X87MODEI): Remove mode iterator.
241 (X87MODEI12): Ditto.
242 (SSEMODEI24): Ditto.
243
244 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
245
246 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
247 * doc/invoke.texi: Document max-vartrack-expr-depth.
248 * var-tracking.c (EXPR_DEPTH): New.
249 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
250
251 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
252
253 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
254 * config/i386/sse.md: Add n to negated FMA pattern names.
255
256 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
257
258 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
259
260 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
261
262 * gengtype-state.c (read_state_params_structs): Initialize previous.
263
264 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
265
266 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
267 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
268
269 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
270
271 * config/i386/i386.md (*movtf_internal): Avoid allocating general
272 registers. Penalize F*r->o alternative to prevent partial memory
273 stalls. Slightly penalize *roF->*r alternative. Generate SSE
274 CONST_DOUBLE immediates when optimizing function for size. Do not move
275 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
276 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
277 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
278 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
279 alternatives.
280 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
281
282 (fp_register_operand splitters): Use fp_register_operand
283 constraint. Do not use FP_REG_P in insn condition.
284 (any_fp_register_operand splitters): Use any_fp_register_operand
285 constraint. Do not use ANY_FP_REG_P in insn condition.
286
287 2011-05-31 Jan Hubicka <jh@suse.cz>
288
289 * cgraph.h (cgraph_inline_failed_t): Give enum a name
290 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
291 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
292 (lto_output_edge): Use output_enum and var_len_unsigned.
293 (lto_output_varpool_node): Likewise.
294 (input_overwrite_node): Do not take resolution parameter;
295 extract it from a bitpack.
296 (input_node): Do not read resolution; use input_enum and
297 var_len_unsigned.
298 (input_varpool_node): Likewise.
299 (input_edge): Likewise.
300 (input_cgraph_1): Likewise.
301
302 2011-05-31 Richard Guenther <rguenther@suse.de>
303
304 * gimple.c (gimple_register_canonical_type): Do not register
305 any types via gimple_register_type.
306
307 2011-05-31 Jan Hubicka <jh@suse.cz>
308
309 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
310 of thunks.
311
312 2011-05-31 Jakub Jelinek <jakub@redhat.com>
313
314 PR rtl-optimization/49235
315 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
316 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
317
318 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
319
320 PR tree-optimization/49093
321 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
322 data references.
323
324 2011-05-31 Dodji Seketeli <dodji@redhat.com>
325
326 PR debug/49047
327 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
328 for concrete functions containing the code of cloned functions.
329
330 2011-05-31 Richard Guenther <rguenther@suse.de>
331
332 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
333 to ...
334 (forward_propagate_into_comparison_1): ... this.
335 (forward_propagate_comparison): Rename to ...
336 (forward_propagate_into_comparison): ... this. Split out
337 real forward propagation code to ...
338 (forward_propagate_comparison): ... this.
339 (forward_propagate_into_gimple_cond): Remove looping.
340 (forward_propagate_into_cond): Likewise.
341 (simplify_not_neg_expr): Return whether we have done something.
342 (simplify_gimple_switch): Likewise.
343 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
344 (ssa_forward_propagate_and_combine): ... this. Re-structure
345 to do a forward forward-propagation walk on BBs and a backward
346 stmt combining walk on BBs. Consistently re-scan changed statements.
347 (pass_forwprop): Adjust.
348
349 2011-05-30 Ian Lance Taylor <iant@google.com>
350
351 * godump.c (go_format_type): Correct length of name added to
352 obstack for anonymous field.
353
354 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
355
356 PR target/49186
357 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
358 part of the second operand is 0.
359
360 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
361
362 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
363 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
364 to memory for !TARGET_MEMORY_MISMATCH_STALL.
365 (*movdf_internal_rex64): Do not penalize F->r alternative.
366 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
367 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
368 when optimizing function for size. Do not move CONST_DOUBLEs
369 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
370 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
371 SUBREGs. Do not check for MEM_P operands in the insn condition,
372 check for ANY_FP_REGNO_P instead.
373 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
374 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
375 function for speed.
376 * config/i386/i386.c (ix86_option_override_internal): Do not
377 set TARGET_INTEGER_DFMODE_MOVES here.
378
379 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
380
381 PR target/49168
382 * config/i386/i386.md (*movtf_internal): Handle misaligned
383 load/store.
384
385 2011-05-30 Jakub Jelinek <jakub@redhat.com>
386
387 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
388 DW_TAG_rvalue_reference_type even for
389 -gdwarf-4 -fno-debug-types-section.
390
391 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
392
393 PR tree-optimization/46728
394 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
395 (build_and_insert_binop): New.
396 (gimple_expand_builtin_pow): Reorder args for
397 build_and_insert_call; use build_and_insert_binop; add more
398 optimizations for fractional exponents.
399
400 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
401
402 PR bootstrap/49190
403
404 Revert:
405 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
406
407 * tree.h (struct tree_identifier): Inherit from tree_typed, not
408 tree_common.
409 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
410 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
411 TS_BASE instead of TS_COMMON.
412 * varasm.c (assemble_name): Remove assert.
413
414 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
415
416 * config.gcc: Keep obselete list sorted.
417
418 2011-05-30 Jakub Jelinek <jakub@redhat.com>
419 Eric Botcazou <ebotcazou@adacore.com>
420
421 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
422 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
423 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
424 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
425 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
426
427 2011-05-30 Richard Guenther <rguenther@suse.de>
428
429 * gimple.c (gimple_types_compatible_p_1): Compare record
430 and union type members properly.
431
432 2011-05-30 Richard Guenther <rguenther@suse.de>
433
434 PR tree-optimization/49210
435 * ipa-split.c (split_function): Care for the case where the call
436 result is not trivially convertible to the result holding variable.
437
438 2011-05-30 Richard Guenther <rguenther@suse.de>
439
440 PR tree-optimization/49218
441 * tree-vrp.c (adjust_range_with_scev): Properly check whether
442 overflow occured.
443
444 2011-05-30 Richard Guenther <rguenther@suse.de>
445
446 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
447 New function split out from ...
448 (forward_propagate_into_gimple_cond): ... here. Adjust.
449 (forward_propagate_into_cond): Likewise.
450 (forward_propagate_comparison): Also propagate into
451 comparisons on assignment RHS. Change return value to
452 behave similar to forward_propagate_into_cond.
453 (tree_ssa_forward_propagate_single_use_vars): Handle
454 strict-overflow warnings properly for forward_propagate_comparison.
455
456 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
457
458 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
459 from plugin linker.
460 * configure: Regenerate.
461
462 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
463
464 PR tree-optimization/49199
465 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
466 non-reduction operands are either defined in the loop or by induction.
467
468 2011-05-29 Xinliang David Li <davidxl@google.com>
469
470 * opts-global.c (handle_common_deferred_options): Handle new options.
471 * passes.c (register_one_dump_file): Call register_pass_name.
472 (execute_one_pass): Check explicit enable/disable flag.
473 (passr_hash): New function.
474 (passr_eq): Ditto.
475 (register_pass_name): Ditto.
476 (get_pass_by_name): Ditto.
477 (pass_hash): Ditto.
478 (pass_eq): Ditto.
479 (enable_pass): Ditto.
480 (disable_pass): Ditto.
481 (is_pass_explicitly_enabled_or_disabled): Ditto.
482
483 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
484
485 * config/i386/i386.md (*movoi_internal_avx): Use
486 standard_sse_constant_opcode for alternative 0.
487 (*movti_internal_sse): Ditto.
488 (*movti_internal_rex64): Use standard_sse_constant_opcode for
489 alternative 2.
490 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
491 sselog1 type moves.
492 (*movsi_internal): Ditto.
493 (*movdi_internal): Ditto. Add ssecvt type moves.
494
495 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
496
497 PR target/48830
498 * rtlanal.c (simplify_subreg_regno): Adjust comment.
499
500 2011-05-29 Jakub Jelinek <jakub@redhat.com>
501
502 PR rtl-optimization/49095
503 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
504 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
505
506 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
507
508 PR target/43995
509 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
510 recurse_p argument. Only follow register copies if it is set,
511 and prevent mips_find_pic_call_symbol from recursing.
512 (mips_find_pic_call_symbol): Add a recurse_p argument.
513 Pass it to mips_pic_call_symbol_from_set.
514 (mips_annotate_pic_calls): Update accordingly.
515
516 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
517
518 * emit-rtl.c (try_split): Use a loop to search for
519 NOTE_INSN_CALL_ARG_LOCATIONs.
520
521 2011-05-29 Richard Guenther <rguenther@suse.de>
522
523 PR tree-optimization/49217
524 * ipa-pure-const.c (propagate_pure_const): Fix typos.
525
526 2011-05-28 Jan Hubicka <jh@suse.cz>
527
528 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
529 length.
530 (string_slot_free): Remove
531 (create_output_block): Initialize obstack.
532 (destroy_output_block): Free obstack.
533 (lto_string_index): Add PERSISTENT parameter; do not duplicate
534 the string unless it needs to be added into the hash.
535 (lto_output_string_with_length): Add persistent attribute;
536 handle NULL strings.
537 (lto_output_string): Add PERSISTENT parameter.
538 (output_string_cst, output_identifier): Simplify.
539 (lto_output_location_bitpack): Update.
540 (lto_output_builtin_tree): Update.
541 * lto-streamer.h (struct output_block): Add obstack.
542 (lto_output_string, lto_output_string_with_length): Remove
543 declarations; functions are static now.
544
545 2011-05-28 Jan Hubicka <jh@suse.cz>
546
547 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
548 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
549 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
550 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
551 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
552 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
553 unpack_ts_decl_with_vis_value_fields,
554 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
555 lto_get_builtin_tree): Use enum and variable length i/o.
556 * basic-block.h (profile_status_d): Add PROFILE_LAST.
557 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
558 New functions.
559 (bp_pack_enum, bp_unpack_enum): New macros.
560
561 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
562
563 * genrecog.c: Remove redundant forward declarations.
564
565 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
566
567 * config.gcc: Deprecate mips*-*-openbsd*.
568
569 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
570
571 PR bootstrap/49195
572 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
573 for match_op_dup.
574
575 2011-05-27 Andrew Pinski <pinskia@gmail.com>
576
577 PR middle-end/48981
578 * gengtype.c (vec_prefix_type): New function.
579 (note_def_vec): Use vec_prefix_type and change the length
580 attribute to be based on the prefix.
581 * vec.c: Include coretypes.h before vec.h.
582 (struct vec_prefix): Remove.
583 (vec_gc_p_reserve): Change the offsetof to sizeof.
584 (vec_gc_p_reserve_exact): Likewise.
585 (vec_heap_p_reserve): Likewise.
586 (vec_heap_p_reserve_exact): Likewise.
587 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
588 (vec_stack_p_reserve): Change the offsetof to sizeof.
589 (vec_stack_p_reserve_exact): Likewise.
590 * vec.h (struct vec_prefix): New struct definition.
591 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
592 (VEC_T_GTY(T,B)): Likewise.
593 (DEF_VEC_FUNC_P(T)): Use prefix field.
594 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
595 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
596
597 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
598
599 PR tree-optimization/46728
600 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
601 (powi_as_mults): Add gimple_set_location.
602 (build_and_insert_call): New.
603 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
604 0.5, 0.25, 0.75, 1./3., or 1./6.
605
606 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
607
608 * doc/contrib.texi: Update copyright years.
609 (Contributors): Add Zdenek Sojka.
610
611 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
612
613 * c-decl.c (c_push_function_context): Copy the current statement
614 list stack.
615 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
616 (finish_struct): Call building_stmt_list_p instead of checking
617 cur_stmt_list.
618 * c-parser.c (c_parser_postfix_expression): Likewise.
619 * c-typeck.c (c_end_compound_stmt): Likewise.
620 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
621 * tree-iterator.c (stmt_list_cache): Change to a VEC.
622 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
623 (free_stmt_list): Likewise.
624 * tree.h (struct tree_statement_list): Include typed_tree instead
625 of tree_common.
626 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
627 as TS_TYPED instead of TS_COMMON.
628
629 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
630 Uros Bizjak <ubizjak@gmail.com>
631
632 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
633 (HAVE_AS_IX86_TLSGDPTL): Define.
634 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
635 (HAVE_AS_IX86_TLSLDMPLT): Define.
636 * configure: Regenerate.
637 * config.in: Regenerate.
638 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
639 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
640 TARGET_SUN_TLS, use @tlsgdplt or @plt.
641 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
642 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
643 @tlsldmplt or @plt.
644 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
645
646 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
647
648 * sched-int.h (struct _haifa_deps_insn_data): New members cond
649 and reverse_cond.
650 (INSN_COND, INSN_REVERSE_COND): New macros.
651 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
652 once.
653 (sched_get_condition_with_rev): Cache the results, and look them up
654 if possible.
655 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
656 are clobbered by the current insn.
657 * target.def (exposed_pipline): New sched data hook.
658 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
659 * doc/tm.texi: Regenerate.
660
661 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
662
663 PR tree-optimization/49170
664 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
665 sincos or cexp.
666
667 2011-05-27 Richard Guenther <rguenther@suse.de>
668
669 PR middle-end/49189
670 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
671 of comparisons.
672
673 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
674
675 * haifa-sched.c (sched_scan_info): Remove.
676 (schedule_block): Call sched_extend_luids rather than sched_init_luids
677 with NULL args.
678 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
679 Remove functions.
680 (sched_scan): Remove.
681 (sched_extend_luids): Renamed from luids_extend_insn and no longer
682 static. All callers changed.
683 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
684 static. All callers changed.
685 (sched_init_luids): Remove all arguments except the first. All
686 callers changed. Don't use sched_scan.
687 (haifa_init_h_i_d): Likewise.
688 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
689 manually rather than using sched_init_luids. Likewise with
690 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
691 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
692 rather than sched_init_luids with NULL args.
693 * sel-sched-ir.c (new_insns): Remove variable.
694 (sched_scan): New static function, previously in haifa-sched.c. Remove
695 all arguments but the first two; all callers changed.
696 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
697 rather than sched_init_luids.
698 (sel_init_bbs): Remove second argument. All callers changed.
699 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
700 with NULL arguments.
701 (create_insn_rtx_from_pattern): Likewise.
702 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
703 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
704 (sched_init_insn_luid, sched_extend_luids): Declare.
705 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
706 declarations.
707
708 2011-05-27 Richard Guenther <rguenther@suse.de>
709
710 PR middle-end/49177
711 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
712 A CMP B ? (T) true : (T) false for non-integral types T again.
713
714 2011-05-27 Jan Hubicka <jh@suse.cz>
715
716 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
717 so 0 means NULL string.
718 (lto_output_string_with_length): ... here.
719 (lto_output_string, output_string_cst, output_identifier): Update
720 handling of NULL strings.
721 (lto_output_location_bitpack): New function.
722 (lto_output_location): Use it.
723 (lto_output_tree_ref): Use output_record_start.
724 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
725 len values.
726 * lto-streamer-in.c (string_for_index): Break out from ...; offset
727 values by 1.
728 (input_string_internal): ... here;
729 (input_string_cst, input_identifier, lto_input_string): Update handling
730 of NULL strings.
731 (lto_input_location_bitpack): New function
732 (lto_input_location): Use it.
733 (unpack_ts_type_common_value_fields): Pack align & alias in var len
734 values.
735 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
736 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
737 (bp_pack_value): Sanity check the value range.
738 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
739 New functions.
740 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
741 New functions.
742
743 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
744
745 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
746 call_arg_location instructions down the floor.
747
748 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
749
750 PR rtl-optimization/49154
751 * ira.c (setup_pressure_classes): Process class without sublcasses
752 as a candidate for pressure classes.
753
754 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
755
756 PR rtl-optimization/48575
757 * genrecog.c (position_type): New enum.
758 (position): New structure.
759 (decision): Use position structure instead of a string.
760 (root_pos, peep2_insn_pos_list): New variables.
761 (next_position, compare_positions): New functions.
762 (new_decision): Use position structures instead of strings.
763 (maybe_both_true): Likewise.
764 (change_state): Likewise.
765 (write_tree): Likewise.
766 (make_insn_sequence): Likewise.
767
768 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
769
770 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
771 TS_BASE instead of TS_COMMON.
772 (find_decls_types_r): Check for TS_TYPED structure before looking at
773 TREE_TYPE.
774 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
775 Add chain field.
776 (BLOCK_CHAIN): Use new chain field.
777
778 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
779
780 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
781 moves expensive on Power7 also.
782
783 2011-05-26 Richard Guenther <rguenther@suse.de>
784
785 * fold-const.c (fold_unary_loc): Remove bogus code.
786
787 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
788
789 * tree.h (struct tree_identifier): Inherit from tree_typed, not
790 tree_common.
791 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
792 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
793 TS_BASE instead of TS_COMMON.
794 * varasm.c (assemble_name): Remove assert.
795
796 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
797
798 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
799 substituted first.
800 * libgcc-std.ver: Delete file.
801
802 2011-05-26 Richard Guenther <rguenther@suse.de>
803
804 PR tree-optimization/48702
805 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
806 only when we know the base address is within bounds.
807 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
808 assume the base address of TARGET_MEM_REFs is in bounds.
809
810 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
811
812 PR target/49099
813 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
814 declaration in TARGET_SOLARIS.
815
816 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
817
818 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
819 The instruction is then expanded explicitly.
820 (supported_compare): Callable instruction.
821 (compare): Likewise.
822
823 2011-05-26 Jakub Jelinek <jakub@redhat.com>
824
825 PR c++/49165
826 * gimplify.c (shortcut_cond_r): Don't special case
827 COND_EXPRs if they have void type on one of their arms.
828
829 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
830
831 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
832 to reduce duplication, and to achieve a slightly more logical order
833 of operations.
834
835 2011-05-26 Jakub Jelinek <jakub@redhat.com>
836
837 PR tree-optimization/49161
838 * tree-vrp.c (struct case_info): New type.
839 (compare_case_labels): Sort case_info structs instead of
840 trees, and not primarily by CASE_LABEL uids but by
841 label_for_block indexes.
842 (find_switch_asserts): Put case labels into struct case_info
843 array instead of TREE_VEC, adjust sorting, compare label_for_block
844 values instead of CASE_LABELs.
845
846 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
847
848 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
849 ("orndi3_neon"): Likewise.
850 ("bic<mode>3_neon"): Likewise.
851
852 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
853
854 PR tree-optimization/49038
855 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
856 Ensure at least one epilogue iteration if required by data
857 accesses with gaps.
858 * tree-vectorizer.h (struct _loop_vec_info): Add new field
859 to mark loops that require peeling for gaps.
860 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
861 (vect_get_known_peeling_cost): Take peeling for gaps into
862 account.
863 (vect_transform_loop): Generate epilogue if required by data
864 access with gaps.
865 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
866 loop as requiring an epilogue if there are gaps in the end of
867 the strided group.
868
869 2011-05-25 Ian Lance Taylor <iant@google.com>
870
871 * godump.c (go_format_type): Output the first field with a usable
872 Go type, if any.
873
874 2011-05-25 Ian Lance Taylor <iant@google.com>
875
876 * godump.c (go_format_type): Check for invalid type names, pointer
877 target types, and struct field types.
878
879 2011-05-25 Jason Merrill <jason@redhat.com>
880
881 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
882
883 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
884
885 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
886
887 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
888
889 * config/i386/i386.md (*movqi_extv_1)): Put back
890 "register_operand" check in "type" calculation.
891 (*movqi_extzv_2): Likewise.
892
893 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
894
895 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
896
897 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
898
899 PR bootstrap/49160
900 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
901 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
902 __divxc3, __divtc3): Wrap definitions in #ifndef.
903
904 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
905
906 PR target/49142
907 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
908 "register_operand" check and replace q_regs_operand with
909 QIreg_operand in "type" calculation.
910 (*movqi_extv_1): Likewise.
911 (*movqi_extzv_2_rex64): Likewise.
912 (*movqi_extzv_2): Likewise.
913
914 * config/i386/predicates.md (QIreg_operand): New.
915
916 2011-05-25 Richard Guenther <rguenther@suse.de>
917
918 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
919 type-based offset disambiguation, streamline MEM_REF and
920 TARGET_MEM_REF handling.
921
922 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
923
924 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
925 (bdesc_special_args): Add pause intrinsic.
926
927 * config/i386/i386.md (UNSPEC_PAUSE): New.
928 (pause): Likewise.
929 (*pause): Likewise.
930 * config/i386/ia32intrin.h (__pause): Likewise.
931
932 * doc/extend.texi (X86 Built-in Functions): Add documentation for
933 pause intrinsic.
934
935 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
936
937 PR tree-optimization/46728
938 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
939 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
940
941 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
942
943 * tree.h (struct tree_exp): Inherit from struct tree_typed.
944 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
945 instead of TS_COMMON.
946
947 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
948
949 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
950 LIBGCC2_GNU_PREFIX is defined.
951 (__N): New macro.
952 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
953 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
954 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
955 __clz_tab): Define using __N.
956 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
957 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
958 * target.def (libfunc_gnu_prefix): New hook.
959 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
960 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
961 * doc/tm.texi: Regenerate.
962 * system.h (LIBGCC2_GNU_PREFIX): Poison.
963 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
964 account.
965 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
966 (init_optabs): Likewise for the bswap libfuncs.
967 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
968 and divide.
969 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
970 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
971 * libgcc-std.ver: Remove.
972 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
973 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
974 libgcc-std.ver.
975 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
976 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
977 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
978 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
979 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
980 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
981 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
982 * config/fixed-bit.h (FIXED_OP): Define differently depending on
983 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
984 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
985
986 2011-05-25 Jan Hubicka <jh@suse.cz>
987
988 * lto-streamer-out.c (output_record_start): Use lto_output_enum
989 (lto_output_tree): Use output_record_start.
990 * lto-streamer-in.c (input_record_start): Use lto_input_enum
991 (lto_get_pickled_tree): Use input_record_start.
992 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
993 (lto_value_range_error): New function.
994 * lto-streamer.h (lto_value_range_error): Declare.
995 (lto_output_int_in_range, lto_input_int_in_range): New functions.
996 (lto_output_enum, lto_input_enum): New macros.
997
998 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
999
1000 * common.opt (flag_stack_usage_info): New variable.
1001 (-Wstack-usage): New option.
1002 * doc/invoke.texi (Warning options): Document -Wstack-usage.
1003 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
1004 <OPT_fstack_usage>: Likewise.
1005 * toplev.c (output_stack_usage): Handle -Wstack-usage.
1006 * calls.c (expand_call): Test flag_stack_usage_info variable instead
1007 of flag_stack_usage.
1008 (emit_library_call_value_1): Likewise.
1009 * explow.c (allocate_dynamic_stack_space): Likewise.
1010 * function.c (instantiate_virtual_regs ): Likewise.
1011 (prepare_function_start): Likewise.
1012 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
1013 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
1014 * config/arm/arm.c (arm_expand_prologue): Likewise.
1015 (thumb1_expand_prologue): Likewise.
1016 * config/avr/avr.c (expand_prologue): Likewise.
1017 * config/i386/i386.c (ix86_expand_prologue): Likewise.
1018 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1019 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
1020 * config/mips/mips.c (mips_expand_prologue): Likewise.
1021 * config/pa/pa.c (hppa_expand_prologue): Likewise.
1022 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1023 * config/s390/s390.c (s390_emit_prologue): Likewise.
1024 * config/sh/sh.c (sh_expand_prologue): Likewise.
1025 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1026 * config/spu/spu.c (spu_expand_prologue): Likewise.
1027
1028 2011-05-25 Richard Guenther <rguenther@suse.de>
1029
1030 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
1031 (gimple_canonical_types_compatible_p): Likewise.
1032
1033 2011-05-25 Jan Hubicka <jh@suse.cz>
1034
1035 PR middle-end/49062
1036 * ipa.c (function_and_variable_visibility): Only add to same
1037 comdat group list if DECL_ONE_ONLY.
1038
1039 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
1040
1041 PR rtl-optimization/49014
1042 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
1043
1044 2011-05-25 Jakub Jelinek <jakub@redhat.com>
1045
1046 PR target/49128
1047 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1048
1049 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1050
1051 PR rtl-optimization/48757
1052 * ira-build.c (loop_with_eh_edge_p): Rename to
1053 loop_with_complex_edge_p, check edges on complexity, make function
1054 conditional.
1055 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
1056 conditional.
1057
1058 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1059
1060 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
1061 force flag_ira_share_save_slots to 0.
1062
1063 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1064
1065 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
1066 (vt_initialize): Set PROLOGUE_BB unconditionally.
1067 Add block comment about CFA_BASE_RTX machinery.
1068 Reset FP_CFA_OFFSET to -1 on all invalid paths.
1069 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
1070
1071 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
1072
1073 PR objc/48187
1074 * c-parser.c (c_parser_objc_class_instance_variables): More robust
1075 parsing of syntax error in ObjC instance variable lists. In
1076 particular, avoid an infinite loop if there is a stray ']'.
1077 Updated error message.
1078
1079 2011-05-24 Ian Lance Taylor <iant@google.com>
1080
1081 * godump.c (go_define): Don't accept a string immediately after
1082 another operand.
1083
1084 2011-05-24 Ian Lance Taylor <iant@google.com>
1085
1086 * godump.c (struct godump_container): Add invalid_hash field.
1087 (go_format_type): Return false if type is found in invalid_hash.
1088 (go_output_typedef): Add invalid type to invalid_hash.
1089 (go_finish): Create and delete invalid_hash.
1090
1091 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1092
1093 PR tree-optimization/46728
1094 * tree-ssa-math-opts.c (powi_table): New.
1095 (powi_lookup_cost): New.
1096 (powi_cost): New.
1097 (powi_as_mults_1): New.
1098 (powi_as_mults): New.
1099 (gimple_expand_builtin_powi): New.
1100 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
1101 (gate_cse_sincos): Remove sincos/cexp restriction.
1102
1103 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1104
1105 PR target/3746
1106 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
1107 mips-tdump native.
1108 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
1109 * mips-tdump.c: Likewise.
1110
1111 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
1112
1113 PR target/49128
1114 * config/i386/driver-i386.c (host_detect_local_cpu): Always
1115 add -mno-XXX. Handle FMA.
1116
1117 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1118
1119 PR rtl-optimization/48633
1120 * ira-build.c (loop_with_eh_edge_p): New function.
1121 (mark_loops_for_removal): Use it.
1122
1123 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
1124
1125 PR rtl-optimization/48971
1126 * ira.c (setup_pressure_classes): Don't check register move cost
1127 for classes with one registers. Don't add pressure class if there
1128 is a pressure class with the same available hard registers.
1129 Check contains_reg_of_mode. Fix a typo in collecting
1130 temp_hard_regset. Ignore hard registers not belonging to a class.
1131
1132 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
1133
1134 PR target/49133
1135 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
1136
1137 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
1138 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1139
1140 PR gcov-profile/48845
1141 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
1142
1143 2011-05-24 Richard Guenther <rguenther@suse.de>
1144
1145 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
1146 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
1147 (gimple_types_compatible_p_1): Adjust.
1148 (iterative_hash_canonical_type): Do not bother about complete vs.
1149 incomplete types.
1150 (gimple_canonical_types_compatible_p): Likewise.
1151
1152 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1153
1154 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
1155
1156 2011-05-24 Richard Guenther <rguenther@suse.de>
1157
1158 PR bootstrap/49078
1159 * gimple.c (gimple_register_canonical_type): Revert
1160 previous change.
1161 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
1162 does not for a tree for the case where it matters. Cache
1163 pointer-type alias-sets.
1164
1165 2011-05-24 Joseph Myers <joseph@codesourcery.com>
1166
1167 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
1168 (OBJS): Remove options.o, opts-common.o and prefix.o.
1169 (OBJS-libcommon-target): New.
1170 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
1171 (BACKEND): Include libcommon-target.a.
1172 (MOSTLYCLEANFILES): Include libcommon-target.a.
1173 (libcommon-target.a): New.
1174 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
1175 prefix.o.
1176
1177 2011-05-23 Joseph Myers <joseph@codesourcery.com>
1178
1179 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
1180 parts of output shared with the driver.
1181 * optc-gen.awk: Don't generate parts of output not shared with the
1182 driver.
1183 * opth-gen.awk: Remove GCC_DRIVER conditionals.
1184 * doc/options.texi (SourcerInclude): Mention options-save.c.
1185 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1186 (OBJS): Add options-save.o.
1187 (options-save.c, options-save.o): New.
1188 (options.o): Update dependencies.
1189 (gcc-options.o): Remove.
1190 (mostlyclean): Remove options-save.c.
1191
1192 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1193
1194 PR debug/49032
1195 * dbxout.c: Include cgraph.h.
1196 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1197 and without value expr, return NULL if no varpool node exists for
1198 it or if it is not needed.
1199 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1200
1201 PR c/49120
1202 * c-decl.c (start_decl): Convert expr to void_type_node.
1203
1204 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
1205
1206 PR rtl-optimization/48826
1207 * emit-rtl.c (try_split): When splitting a call that is followed
1208 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1209
1210 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1211
1212 * cfgexpand.c (expand_debug_expr): For unused non-addressable
1213 parameters passed in memory prefer using DECL_INCOMING_RTL over
1214 the pseudos it will be copied into.
1215
1216 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
1217
1218 PR target/47315
1219 * config/i386/i386.c (ix86_option_override_internal): Save the
1220 initial options after checking vzeroupper.
1221
1222 2011-05-23 David Li <davidxl@google.com>
1223
1224 PR tree-optimization/48988
1225 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1226 Initialize has_valid_pred for each pred chain.
1227
1228 2011-05-23 Richard Guenther <rguenther@suse.de>
1229
1230 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1231 (iterative_hash_gimple_type): Always hash type names.
1232
1233 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
1234
1235 * c-typeck.c (build_function_call_vec): Tweak call to
1236 check_function_arguments.
1237
1238 2011-05-23 Richard Guenther <rguenther@suse.de>
1239
1240 PR tree-optimization/49115
1241 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1242 is not necessarily carried out, do not claim it kills the ref.
1243 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1244
1245 2011-05-23 Richard Guenther <rguenther@suse.de>
1246
1247 PR middle-end/15419
1248 * builtins.c (fold_builtin_memory_op): Be less restrictive about
1249 what pointer types we accept for folding.
1250
1251 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1252
1253 * gthr-gnat.c: Remove.
1254 * gthr-gnat.h: Remove.
1255 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1256 * config/t-freebsd (LIB2ADDEH): Likewise.
1257 * config/t-linux (LIB2ADDEH): Likewise.
1258 * config/t-sol2 (LIB2ADDEH): Likewise.
1259 * config/ia64/t-vms (LIB2ADDEH): Likewise.
1260 * configure.ac (target_thread_file): Remove gnat handling.
1261 * configure: Regenerate.
1262 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1263
1264 2011-05-23 Tristan Gingold <gingold@adacore.com>
1265 Eric Botcazou <ebotcazou@adacore.com>
1266
1267 * gcov.c (create_file_names): If no object directory is specified,
1268 keep the directory of the file.
1269
1270 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1271
1272 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1273 * configure: Regenerate.
1274
1275 2011-05-23 Jakub Jelinek <jakub@redhat.com>
1276
1277 PR middle-end/48973
1278 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1279 failed and the comparison has a single bit signed type, use
1280 constm1_rtx instead of const1_rtx for true value.
1281 (do_store_flag): If ops->type is single bit signed type, disable
1282 signel bit test optimization and pass -1 instead of 1 as last
1283 parameter to emit_store_flag_force.
1284
1285 2011-05-23 Tom de Vries <tom@codesourcery.com>
1286
1287 PR target/45098
1288 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1289 function.
1290 (infer_loop_bounds_from_undefined): Use new function.
1291
1292 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1293
1294 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1295 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
1296 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1297 and -O0 otherwise.
1298 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1299
1300 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1301
1302 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1303 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1304 returns true.
1305
1306 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1307
1308 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1309
1310 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1311
1312 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1313 UNSPEC_MOVE_PIC pattern.
1314
1315 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1316
1317 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1318 (sparc-*-rtems*): Likewise.
1319 (sparc64-*-elf*): Likewise.
1320 (sparc64-*-rtems*): Likewise.
1321 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
1322 * config/sparc/t-crtin: New file.
1323 * config/sparc/t-sol2 (crti.o): Delete rule.
1324 (crtn.o): Likewise.
1325 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1326 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1327 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1328 (ENDFILE_SPEC): Add crtn.o.
1329
1330 2011-05-22 Tom de Vries <tom@codesourcery.com>
1331
1332 PR middle-end/48689
1333 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1334 CODE_CONTAINS_STRUCT (TS_COMMON).
1335
1336 2011-05-22 Jakub Jelinek <jakub@redhat.com>
1337
1338 PR middle-end/49029
1339 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1340 only after deciding which mode to use.
1341
1342 2011-05-22 Tom de Vries <tom@codesourcery.com>
1343
1344 PR target/45098
1345 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1346 for call to get_shiftadd_cost.
1347
1348 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
1349
1350 PR target/49104
1351 * config/i386/cpuid.h (bit_MMXEXT): New define.
1352
1353 2011-05-22 Nick Clifton <nickc@redhat.com>
1354
1355 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1356 initialisation of non-existant args[2] element. Use args[] array
1357 not arg[] array to pass arguments to build_function_type_list.
1358
1359 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
1360
1361 PR tree-optimization/49087
1362 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1363
1364 2011-05-21 Jason Merrill <jason@redhat.com>
1365
1366 PR c++/49092
1367 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1368 static storage duration.
1369
1370 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1371
1372 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1373 frame pointer.
1374
1375 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1376
1377 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1378 false if there are call-saved registers here...
1379 (sparc_can_use_return_insn_p): ...but here instead.
1380 (save_or_restore_regs): Fix thinko.
1381 (sparc_expand_prologue): Use current_function_is_leaf.
1382 (sparc_frame_pointer_required): Likewise.
1383
1384 2011-05-21 Nick Clifton <nickc@redhat.com>
1385
1386 PR target/49098
1387 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1388
1389 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1390
1391 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1392 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1393
1394 2011-05-21 Joseph Myers <joseph@codesourcery.com>
1395
1396 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1397 * optc-gen.awk: Move common code to opt-read.awk.
1398 * opth-gen.awk: Likewise.
1399 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1400
1401 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1402
1403 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1404
1405 2011-05-20 Tom de Vries <tom@codesourcery.com>
1406
1407 PR target/45098
1408 * tree-ssa-loop-ivopts.c: Include expmed.h.
1409 (get_shiftadd_cost): New function.
1410 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1411
1412 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1413
1414 PR bootstrap/49086
1415 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1416 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1417
1418 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1419
1420 * Makefile.in: Update comment referring to $(OBJS-common).
1421
1422 2011-05-20 Ian Lance Taylor <iant@google.com>
1423
1424 * godump.c (go_output_typedef): Put enum constants in the macro
1425 hash table to avoid duplicate Go const definitions.
1426
1427 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1428
1429 * Makefile.in (LIBDEPS): Add libcommon.a.
1430 (LIBS): Likewise.
1431 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1432 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1433 pretty-print.o and version.o.
1434 (OBJS-libcommon): New.
1435 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1436 (BACKEND): Add libcommon.a.
1437 (MOSTLYCLEANFILES): Likewise.
1438 (libcommon.a): New.
1439 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1440 (cpp$(exeext)): Likewise.
1441 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1442 pretty-print.o and input.o.
1443 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1444 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1445 (errors.o): Remove.
1446 (mips-tfile): Don't explicitly use version.o.
1447 (mips-tdump): Likewise.
1448 (gcov.o): Depend on $(DIAGNOSTIC_H).
1449 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1450 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1451 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1452 * gcov-dump.c: Include intl.h and diagnostic.h.
1453 (main): Initialize diagnostics.
1454 * gcov.c: Include diagnostic.h.
1455 (fnotice): Remove.
1456 (main): Initialize diagnostics.
1457 * lto-wrapper.c: Include diagnostic.h.
1458 (main): Initialize diagnostics.
1459
1460 2011-05-20 Michael Matz <matz@suse.de>
1461
1462 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1463
1464 2011-05-20 Michael Matz <matz@suse.de>
1465 Richard Guenther <rguenther@suse.de>
1466
1467 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1468 use lto_streamer_cache_append directly instead of returning a VEC.
1469 (preload_common_node): Remove.
1470 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1471 track seen nodes.
1472 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1473
1474 2011-05-20 Richard Guenther <rguenther@suse.de>
1475
1476 PR tree-optimization/49079
1477 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1478 MEM_REFs correctly for the trailing array access detection.
1479 Special case constants the same way as decls for overall size
1480 constraining.
1481
1482 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
1483
1484 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1485 argument expansion.
1486
1487 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1488
1489 PR tree-optimization/49073
1490 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1491 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1492 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1493
1494 2011-05-20 Richard Guenther <rguenther@suse.de>
1495
1496 PR middle-end/48849
1497 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1498 of pointer types the same way the middle-end does.
1499
1500 2011-05-20 Richard Guenther <rguenther@suse.de>
1501
1502 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1503 or pointer-to chains. Delay all fixup to uniquify_nodes.
1504
1505 2011-05-19 Quentin Neill <quentin.neill@amd.com>
1506
1507 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1508 (fma4_fmaddsub): Likewise
1509
1510 2011-05-19 Jan Hubicka <jh@suse.cz>
1511
1512 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1513 (GIMPLE_TYPE_PAIR_SIZE): New macro.
1514 (type_pair_cache): New static var.
1515 (lookup_type_pair): Use fixed sized custom hash; make inline.
1516 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1517 calls of lookup_type_pair.
1518 (print_gimple_types_stats): Remove cache stats.
1519 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1520 and gtc_ob.
1521
1522 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
1523
1524 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1525 when TARGET_RDRND is active.
1526 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1527 Generate dummy SImode target register when target is NULL.
1528
1529 2011-05-19 Joseph Myers <joseph@codesourcery.com>
1530
1531 * config/arm/arm-fpus.def: New.
1532 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1533 arm-fpus.def.
1534 * config/arm/arm-tables.opt: Regenerate.
1535 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1536 (arm_option_override): Don't decode FPU name to string here.
1537 * config/arm/arm.opt (mfpu=): Use Enum.
1538 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1539 Update dependencies.
1540
1541 2011-05-19 Joseph Myers <joseph@codesourcery.com>
1542
1543 * collect2.c: Include diagnostic.h.
1544 (fatal_perror, fatal, error, fancy_abort): Remove.
1545 (main): Set progname. Call xmalloc_set_program_name and
1546 diagnostic_initialize.
1547 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1548 scan_libraries, resolve_lib_name): Call fatal_error instead of
1549 fatal and fatal_perror.
1550 * collect2.h (error, fatal, fatal_perror): Don't declare.
1551 * tlink.c: Include diagnostic-core.h.
1552 (recompile_files): Call fatal_error instead of fatal_perror.
1553 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1554 pretty-print.o and input.o.
1555 (collect2.o, tlink.o): Update dependencies.
1556
1557 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1558
1559 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1560
1561 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1562
1563 PR target/40483
1564 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1565 COMDAT group syntax, both SPARC and x86 variants.
1566 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1567 * configure: Regenerate.
1568 * config/sol2.h (TARGET_SOLARIS): Define.
1569 (PUSHSECTION_FORMAT): Remove.
1570 (SECTION_NAME_FORMAT): Define.
1571 * config/sol2.c: Include hashtab.h.
1572 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1573 expansion, using SECTION_NAME_FORMAT.
1574 (solaris_comdat_htab): New variable.
1575 (struct comdat_entry): Define.
1576 (comdat_hash): New function.
1577 (comdat_eq): New function.
1578 (solaris_elf_asm_comdat_section): New function.
1579 (solaris_define_comdat_signature): New function.
1580 (solaris_code_end): New function.
1581 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1582 (solaris_code_end): Declare.
1583 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1584 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1585 solaris_code_end.
1586 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1587 Remove ATTRIBUTE_UNUSED.
1588 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1589 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1590 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1591 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1592 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1593 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1594 (PUSHSECTION_FORMAT): Remove.
1595 (SECTION_NAME_FORMAT): Redefine.
1596
1597 2011-05-19 Kai Tietz <ktietz@redhat.com>
1598
1599 * tree-cfg.c (verify_gimple_assign_binary): Barf on
1600 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1601 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1602
1603 2011-05-19 Anatoly Sokolov <aesok@post.ru>
1604 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1605
1606 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1607
1608 2011-05-19 Richard Guenther <rguenther@suse.de>
1609
1610 PR middle-end/48985
1611 * tree-object-size.c (addr_object_size): If the pointed-to
1612 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1613
1614 2011-05-19 Richard Guenther <rguenther@suse.de>
1615
1616 * gimple.c (gimple_types_compatible_p_1): Compare names of
1617 the types themselves.
1618 (iterative_hash_gimple_type): And hash them that way.
1619 (gimple_register_type_1): If we register a main variant properly
1620 initialize the leader to ourselves.
1621
1622 2011-05-19 Tom de Vries <tom@codesourcery.com>
1623
1624 PR target/45098
1625 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1626 get_loop_invariant_expr_id.
1627 (get_loop_invariant_expr_id): Use get_expr_id.
1628 (parm_decl_cost): New function.
1629 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1630 Improve bound cost estimation. Use different inv_expr_id for elim and
1631 express cases.
1632
1633 2011-05-19 Tom de Vries <tom@codesourcery.com>
1634
1635 PR target/45098
1636 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1637 cost_base.cost == 0.
1638
1639 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
1640
1641 PR target/49002
1642 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1643 Properly handle load cast.
1644
1645 2011-05-18 Jakub Jelinek <jakub@redhat.com>
1646
1647 PR tree-optimization/49039
1648 * tree-vrp.c (extract_range_from_binary_expr): For
1649 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1650 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1651
1652 2011-05-18 Tom de Vries <tom@codesourcery.com>
1653
1654 PR target/45098
1655 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1656
1657 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
1658
1659 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1660 (*tls_global_dynamic_64): Ditto.
1661 (*tls_local_dynamic_base_32_gnu): Ditto.
1662 (*tls_local_dynamic_base_64): Ditto.
1663 (tls_initial_exec_64_sun): Ditto.
1664
1665 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
1666
1667 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1668 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1669 bf592-none.
1670 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1671 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1672 * config/bfin/bfin.c (bfin_cpus): Add bf592.
1673 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1674 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1675 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1676 * config/bfin/elf.h (LIB_SPEC): Add bf592.
1677
1678 2011-05-18 Joseph Myers <joseph@codesourcery.com>
1679
1680 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1681 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1682 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1683 target_thread_pointer, arm_structure_size_boundary, struct
1684 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1685 struct abi_name, arm_all_abis): Remove.
1686 (arm_option_override) Don't process most enumerated option values here.
1687 Don't process target_fpe_name here. Work with integer not string for
1688 structure size boundary; use separate diagnostics for each case.
1689 * config/arm/arm.h (enum float_abi_type, enum
1690 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1691 to arm-opts.h.
1692 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1693 arm_structure_size_boundary): Remove.
1694 * config/arm/arm.opt (mabi=): Use Enum and Init.
1695 (arm_abi_type): New Enum and EnumValue entries.
1696 (mfloat-abi=): Use Enum and Init.
1697 (float_abi_type): New Enum and EnumValue entries.
1698 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1699 (mfp16-format=): Use Enum and Init.
1700 (arm_fp16_format_type): New Enum and EnumValue entries.
1701 (mstructure-size-boundary=): Use UInteger and Init.
1702 (mtp=): Use Enum and Init.
1703 (arm_tp_type): New Enum and EnumValue entries.
1704
1705 2011-05-18 Richard Guenther <rguenther@suse.de>
1706
1707 PR tree-optimization/49018
1708 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1709 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1710 gimple_has_side_effects.
1711
1712 2011-05-18 Richard Guenther <rguenther@suse.de>
1713
1714 * gimple.c (gimple_register_type_1): New function, split out from ...
1715 (gimple_register_type): ... here. Avoid infinite recursion.
1716
1717 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
1718
1719 PR tree-optimization/41881
1720 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1721 reduction_chains along with a macro for its access.
1722 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1723 (destroy_loop_vec_info): Free reduction chains.
1724 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1725 (vect_is_slp_reduction): New function.
1726 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1727 (vect_create_epilog_for_reduction): Support SLP reduction chains.
1728 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1729 definition types for reduction chains.
1730 (vect_supported_load_permutation_p): Don't allow permutations for
1731 reduction chains.
1732 (vect_analyze_slp_instance): Support reduction chains.
1733 (vect_analyze_slp): Try to build SLP instance from reduction chains.
1734 (vect_get_constant_vectors): Handle reduction chains.
1735 (vect_schedule_slp_instance): Mark the first statement of the
1736 reduction chain as reduction.
1737
1738 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
1739
1740 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1741 names for group elements access.
1742 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1743 reduction chains as well. Remove data reference and interleaving
1744 related words from the fields names.
1745 * tree-vect-loop.c (vect_transform_loop): Use new names for group
1746 elements access.
1747 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1748 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1749 vect_update_interleaving_chain, vect_same_range_drs,
1750 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1751 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1752 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1753 vect_analyze_group_access, vect_analyze_data_ref_access,
1754 vect_create_data_ref_ptr, vect_transform_strided_load,
1755 vect_record_strided_load_vectors): Likewise.
1756 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1757 vect_model_load_cost, vectorizable_store, vectorizable_load,
1758 vect_remove_stores, new_stmt_vec_info): Likewise.
1759 * tree-vect-slp.c (vect_build_slp_tree,
1760 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1761
1762 2011-05-18 Richard Guenther <rguenther@suse.de>
1763
1764 PR middle-end/48989
1765 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1766 operand verification.
1767 (verify_gimple_assign_binary): Likewise.
1768 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1769 to non-1-precision BOOLEAN_TYPEs.
1770
1771 2011-05-18 Tom de Vries <tom@codesourcery.com>
1772
1773 PR target/45098
1774 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1775
1776 2011-05-18 Jakub Jelinek <jakub@redhat.com>
1777
1778 PR tree-optimization/49000
1779 * tree-ssa.c (execute_update_addresses_taken): Call
1780 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
1781 be rewritten and decl has been marked for renaming, reset
1782 the debug stmt.
1783
1784 2011-05-17 Joseph Myers <joseph@codesourcery.com>
1785
1786 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1787 enum_opts_set when testing if attributes have set -mfpmath=.
1788
1789 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
1790
1791 * config/mips/mips.c (mips_handle_option): Remove unused variable.
1792
1793 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
1794
1795 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1796 info->entry with 0
1797 * tree-inline.c (maybe_inline_call_in_expr): Initialize
1798 id.transform_lang_insert_block with NULL.
1799
1800 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
1801
1802 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1803 (output_fp_compare): Change args 3 and 4 to bool.
1804 (ix86_expand_call): Change arg 6 to bool.
1805 (ix86_attr_length_immediate_default): Change arg 2 to bool.
1806 (ix86_attr_length_vex_default): Change arg 3 to bool.
1807 * config/i386/i386.md: Update all uses.
1808 * config/i386/i386.c: Ditto.
1809 (ix86_flags_dependent): Change return type to bool.
1810
1811 2011-05-17 Richard Guenther <rguenther@suse.de>
1812
1813 * gimple.c (type_hash_pair_compare): Fix comparison.
1814
1815 2011-05-17 Richard Guenther <rguenther@suse.de>
1816
1817 * gimple.c (iterative_hash_gimple_type): Simplify singleton
1818 case some more, fix final hash value of the non-singleton case.
1819
1820 2011-05-17 Richard Guenther <rguenther@suse.de>
1821
1822 PR bootstrap/49013
1823 Revert
1824 2011-05-16 Richard Guenther <rguenther@suse.de>
1825
1826 * gimple.c (gimple_types_compatible_p_1): Use names of the
1827 type itself, not its main variant.
1828 (iterative_hash_gimple_type): Likewise.
1829
1830 2011-05-17 Richard Guenther <rguenther@suse.de>
1831
1832 * gimple.c (gimple_register_canonical_type): Use the main-variant
1833 leader for computing the canonical type.
1834
1835 2011-05-17 Nick Clifton <nickc@redhat.com>
1836
1837 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1838 moves.
1839
1840 * config/rx/rx.md: Add peephole to remove redundant extensions
1841 after loads.
1842 (bitset_in_memory): Use rx_restricted_mem_operand.
1843 (bitinvert_in_memory): Likewise.
1844 (bitclr_in_memory): Likewise.
1845
1846 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
1847 Nick Clifton <nickc@redhat.com>
1848
1849 * config/rx/rx.md: Add peepholes to match a register move followed
1850 by a comparison of the moved register. Replace these with an
1851 addition of zero that does both actions in one instruction.
1852
1853 2011-05-17 Jakub Jelinek <jakub@redhat.com>
1854
1855 PR target/48986
1856 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1857 predicate to allow CONST_INT.
1858 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1859
1860 2011-05-16 Joseph Myers <joseph@codesourcery.com>
1861
1862 * opts-common.c (opt_enum_arg_to_value): New.
1863 * opts.h (opt_enum_arg_to_value): Declare.
1864 * config/i386/i386.opt (fpmath): Remove.
1865 (mfpmath=): Use Enum, Init and Save.
1866 (fpmath_unit): New Enum and EnumValue entries.
1867 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1868 name for function fpmath state.
1869 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1870 * config/i386/i386.c: Include diagnostic.h.
1871 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1872 (ix86_target_string): Take enum fpmath_unit value instead of string.
1873 (ix86_debug_options): Update call to ix86_target_string.
1874 (ix86_option_override_internal): Don't process fpmath strings here.
1875 (x86_function_specific_save, ix86_function_specific_restore):
1876 Don't handle fpmath state specially.
1877 (ix86_function_specific_print): Pass fpmath state to
1878 ix86_target_string instead of printing in this function.
1879 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1880 Handle enum attributes.
1881 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1882 (ix86_valid_target_attribute_tree): Update option_strings
1883 handling. Handle fpmath as enum option.
1884 (ix86_can_inline_p): Update field names for function fpmath state.
1885 (ix86_expand_builtin): Update call to ix86_target_string.
1886 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1887 (ix86_fpmath): Remove.
1888 * config/i386/t-i386 (i386.o): Update dependencies.
1889
1890 2011-05-16 Joseph Myers <joseph@codesourcery.com>
1891
1892 PR preprocessor/48677
1893 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1894 from decoded_options[0], not from itself.
1895
1896 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
1897
1898 * config/i386/constraints.md (z): New constraint.
1899 * config/i386/i386.c (c): New mode attribute.
1900 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1901 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1902 constraint for operand 0.
1903 (*call_vzeroupper): Ditto.
1904 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1905 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1906 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1907 Use "lzm" constraint for operand 0.
1908 (*call_pop_vzeroupper): Ditto.
1909 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1910 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1911 constraint for operand 0.
1912 (*sibcall_vzeroupper): Ditto.
1913 (*sibcall_rex64_ms_sysv): Ditto.
1914 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1915 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1916 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1917 (*sibcall_pop_vzeroupper): Ditto.
1918 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1919 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1920 mode iterator. Use "<c>zm" constraint for operand 1.
1921 (*call_value_vzeroupper): Ditto.
1922 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
1923 for operand 1.
1924 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1925 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1926 *call_value_pop_1. Use "lzm" constraint for operand 1.
1927 (*call_value_pop_vzeroupper): Ditto.
1928 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1929 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1930 mode iterator. Use "Uz" constraint for operand 1.
1931 (*sibcall_value_vzeroupper): Ditto.
1932 (*sibcall_value_rex64_ms_sysv): Ditto.
1933 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1934 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1935 constraint for operand 1.
1936 (*sibcall_value_pop_vzeroupper): Ditto.
1937 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1938 and "z" constraint for operand 2.
1939 (*tls_global_dynamic_32_gnu): Ditto.
1940 (*tls_local_dynamic_base_32_gnu): Ditto.
1941 (*tls_local_dynamic_base_64): Ditto.
1942 (*tls_local_dynamic_32_once): Ditto.
1943 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1944 Update all callers.
1945 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1946
1947 2011-05-16 Richard Guenther <rguenther@suse.de>
1948
1949 * gimple.c (gimple_types_compatible_p_1): Use names of the
1950 type itself, not its main variant.
1951 (iterative_hash_gimple_type): Likewise.
1952
1953 2011-05-16 Richard Guenther <rguenther@suse.de>
1954
1955 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1956 always visit pointer target and function result and argument types.
1957
1958 2011-05-16 Jason Merrill <jason@redhat.com>
1959
1960 PR c++/48999
1961 * tree-inline.c (copy_statement_list): Put back recursion.
1962
1963 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1964
1965 PR target/27663
1966 PR target/41076
1967 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1968 * config/avr/avr.md ("*ior<mode>qi.byte0",
1969 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1970
1971 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1972
1973 PR target/45099
1974 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1975 register is needed for a function argument.
1976
1977 2011-05-16 Richard Guenther <rguenther@suse.de>
1978
1979 * gimple.c (struct type_hash_pair): New type.
1980 (type_hash_pair_compare): New function.
1981 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1982
1983 2011-05-16 Revital Eres <revital.eres@linaro.org>
1984
1985 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1986
1987 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1988
1989 * config/i386/i386.md (floating point move splitters): Fix
1990 usage of standard_80387_constant_p.
1991 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1992
1993 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1994
1995 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1996
1997 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1998
1999 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
2000 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
2001 (tree_ssa_lim_finalize): Likewise.
2002
2003 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
2004
2005 * config/i386/constraint.md (Yd, Yx): New register constraints.
2006 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
2007 Yd conditional register constraint.
2008 (*movtf_internal): Use standard_sse_constant_opcode.
2009 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
2010 Yx conditional register constraint.
2011 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
2012 Yd conditional register constraint. Use standard_sse_constant_p to
2013 check for valid SSE constants and call standard_sse_constant_opcode to
2014 output SSE insn.
2015 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
2016 constants and call standard_sse_constant_opcode to output SSE insn.
2017 * config/i386/i386.c (ix86_option_ovverride_internal): Set
2018 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
2019 optimize_size is set.
2020 (standard_sse_constant_opcode): Output conditional AVX insn templates.
2021
2022 2011-05-14 Tobias Burnus <burnus@net-b.de>
2023
2024 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
2025
2026 2011-05-13 Martin Jambor <mjambor@suse.cz>
2027
2028 * ipa-prop.c (ipa_cst_from_jfunc): New function.
2029 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
2030 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
2031 (evaluate_conditions_for_ipcp_clone): Removed.
2032 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
2033 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
2034 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
2035
2036 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
2037
2038 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
2039 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
2040 lieu of MAY_HAVE_DEBUG_STMTS.
2041 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
2042 debug statements if !MAY_HAVE_DEBUG_STMTS.
2043
2044 2011-05-13 Martin Thuresson <martint@google.com>
2045
2046 PR gcov-profile/47793
2047 * libgcov.c (gcov_exit): Support relative profile paths.
2048 * doc/invoke.texi (-fprofile-dir): Update for above change.
2049
2050 2011-05-13 Richard Guenther <rguenther@suse.de>
2051
2052 * gimple.c (gimple_canonical_types_compatible_p): Do not use
2053 type-pair caching, do not compare hashes.
2054
2055 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
2056
2057 PR middle-end/48965
2058 * tree-cfg.c (edge_to_cases_cleanup): Return true.
2059 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
2060
2061 2011-05-13 Kai Tietz <ktietz@redhat.com>
2062
2063 * gimplify.c (gimplify_expr): Make sure operand is boolified.
2064 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
2065 compatible type for TRUTH_NOT_EXPR.
2066
2067 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
2068
2069 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2070 (ix86_hard_regno_mode_ok): Change return value to bool. Use
2071 can_create_pseudo_p ().
2072
2073 2011-05-13 Richard Guenther <rguenther@suse.de>
2074
2075 PR lto/48978
2076 * gimple.c (iterative_hash_gimple_type): Revert change in
2077 pointer target and function result and argument hashing.
2078
2079 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
2080
2081 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
2082 (*movxf_internal_nointeger): Ditto.
2083 (*movdf_internal_rex64): Ditto.
2084 (*movdf_internal): Ditto.
2085 (*movdf_internal_nointeger): Ditto.
2086 (*movsf_internal): Ditto.
2087 (sincos splitters): Use can_create_pseudo ().
2088
2089 2011-05-13 Joseph Myers <joseph@codesourcery.com>
2090
2091 * config/i386/i386-opts.h: New.
2092 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
2093 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
2094 ix86_section_threshold): Remove.
2095 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
2096 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
2097 OPT_mbranch_cost_.
2098 (ix86_option_override_internal): Don't decode strings for options
2099 other than -march=, -mtune= and -mfpmath=. Don't allow for
2100 __attribute__ uses in remaining diagnostics for options with
2101 string arguments. Don't check for integer arguments being negative.
2102 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
2103 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
2104 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
2105 ix86_branch_cost, ix86_section_threshold): Remove.
2106 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
2107 HeaderInclude.
2108 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
2109 but not Var.
2110 (masm=): Use Enum and Init.
2111 (asm_dialect): New Enum and EnumValue entries.
2112 (mbranch-cost=): Use UInteger.
2113 (mlarge-data-threshold=): Use UInteger and Init.
2114 (mcmodel=): Use Enum and Init.
2115 (cmodel): New Enum and EnumValue entries.
2116 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
2117 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
2118 mregparm=): Use UInteger.
2119 (mstringop-strategy=): Use Enum and Init.
2120 (stringop_alg): New Enum and EnumValue entries.
2121 (mtls-dialect=): Use Enum and Init.
2122 (tls_dialect): New Enum and EnumValue entries.
2123 (mabi=): Use Enum and Init.
2124 (calling_abi): New Enum and EnumValue entries.
2125 (mveclibabi=): Use Enum and Init.
2126 (ix86_veclibabi): New Enum and EnumValue entries.
2127
2128 2011-05-13 Nick Clifton <nickc@redhat.com>
2129
2130 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
2131 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
2132
2133 2011-05-13 Kai Tietz <ktietz@redhat.com>
2134
2135 PR middle-end/48984
2136 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
2137 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
2138 (gimple_boolify): Check for cast for boolean_type_node instead for
2139 BOOLEAN_TYPE.
2140
2141 2011-05-13 Richard Guenther <rguenther@suse.de>
2142
2143 PR tree-optimization/48172
2144 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
2145 multiplying by number of iterations for equal step.
2146 (vect_create_cond_for_alias_checks): Likewise.
2147
2148 2011-05-13 Andreas Schwab <schwab@redhat.com>
2149
2150 * configure.ac: Use AS_HELP_STRING throughout.
2151 * configure: Regenerate.
2152
2153 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
2154
2155 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
2156 (ix86_emit_restore_regs_using_mov): Likewise.
2157 (ix86_emit_restore_sse_regs_using_mov): Likewise.
2158
2159 2011-05-12 Anatoly Sokolov <aesok@post.ru>
2160
2161 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
2162 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
2163 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
2164 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
2165 RTX_OK_FOR_OLO10_P): ...here.
2166 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
2167 SYMBOLIC_CONST.
2168
2169 2011-05-12 Kai Tietz <ktietz@redhat.com>
2170
2171 * gimplify.c (gimple_boolify): Re-boolify expression
2172 arguments even if expression type is of kind BOOLEAN_TYPE.
2173 (gimplify_boolean_expr): Removed.
2174 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
2175 and XOR. Additional take care that we keep expression's type.
2176 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
2177 of TRUTH_AND|OR|XOR_EXPR.
2178
2179 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2180
2181 PR tree-optimization/48975
2182 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2183 on all bbs here and free and clear ifc_bbs at the end.
2184
2185 2011-05-12 Richard Guenther <rguenther@suse.de>
2186
2187 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2188 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
2189 until after simple checks.
2190 (gimple_types_compatible_p): Likewise.
2191 (iterative_hash_gimple_type): Always hash pointer targets
2192 and function return and argument types.
2193 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2194 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
2195 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2196 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
2197 completely in the simple compare section.
2198 (gimple_register_canonical_type): Query the cache again after
2199 registering.
2200
2201 2011-05-12 Richard Guenther <rguenther@suse.de>
2202
2203 PR tree-optimization/48172
2204 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2205 the number of iterations from the segment size calculation.
2206 (vect_create_cond_for_alias_checks): Adjust.
2207
2208 2011-05-12 Jakub Jelinek <jakub@redhat.com>
2209
2210 PR debug/48967
2211 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2212 if validate_subreg fails.
2213
2214 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
2215
2216 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2217 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2218 early.
2219
2220 2011-05-12 DJ Delorie <dj@redhat.com>
2221
2222 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
2223 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2224 created builtin into rx_builtins array.
2225 (rx_builtin_decl): New function.
2226 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
2227
2228 2011-05-12 DJ Delorie <dj@redhat.com>
2229 Nick Clifton <nickc@redhat.com>
2230
2231 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2232 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2233 (rx_is_legitimate_address): Add pre-decrement and post-increment
2234 addressing in HImode and QImode. Fix test for out of range
2235 REG+INT addressing.
2236 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2237 (rx_align_for_label): Test label before extracting its usage count.
2238 (rx_adjust_insn_lengths): Fix selection of insn codes.
2239 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2240
2241 2011-05-11 Jason Merrill <jason@redhat.com>
2242
2243 * tree.c (type_hash_canon): Use struct tree_type_non_common.
2244
2245 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2246
2247 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2248 reindent the subsequent block.
2249
2250 2011-05-11 Satoru Takabayashi <satorux@google.com>
2251 Paul Pluzhnikov <ppluzhnikov@google.com>
2252
2253 * doc/install.texi (Configuration): Document --with-linker-hash-style.
2254 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2255 * config.in: Add LINKER_HASH_STYLE.
2256 * configure.ac: Add --with-linker-hash-style.
2257 * configure: Regenerate.
2258
2259 2011-05-11 Richard Guenther <rguenther@suse.de>
2260
2261 PR middle-end/48964
2262 * gimple.c (iterative_hash_canonical_type): Fix typo.
2263
2264 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
2265
2266 * config/i386/i386.c (legitimize_tls_address)
2267 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2268 expanders directly for TARGET_GNU2_TLS. Determine pic and
2269 __tls_get_addr symbol reference here. Update call to
2270 gen_tls_global_dynamic_{32,64} for added arguments.
2271 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2272 expanders directly for TARGET_GNU2_TLS. Determine
2273 __tls_get_addr symbol reference here. Update call to
2274 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
2275 unique UNSPEC REG_EQUIV to libcall block.
2276 (ix86_tls_get_addr): Declare static.
2277 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2278 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2279 Do not determine pic and __tls_get_addr symbol reference here. Do not
2280 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2281 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2282 (tls_global_dynamic_64): Add operand 2. Do not determine
2283 __tls_get_addr symbol reference here. Do not call
2284 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2285 (tls_local_dynamic_base64): Ditto for operand 1.
2286
2287 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2288
2289 * function.c (expand_function_start): Initialize stack_check_probe_note
2290 only if the generic stack checking mechanism is used.
2291
2292 2011-05-11 Richard Guenther <rguenther@suse.de>
2293
2294 PR tree-optimization/15256
2295 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2296 (A & B) | C, combine (A op CST1) op CST2.
2297 (tree_ssa_forward_propagate_single_use_vars): Only bother to
2298 visit assigns that have uses.
2299
2300 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2301
2302 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2303 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2304 (unpack_ts_type_common_value_fields): ...this. Update comment.
2305 (unpack_value_fields): Adjust for renaming.
2306 (lto_input_ts_type_tree_pointers): Split into...
2307 (lto_input_ts_type_common_tree_pointer): ...this and...
2308 (lto_input_ts_type_non_common_tree_pointers): ...this.
2309 (lto_input_tree_pointers): Adjust for above split.
2310 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2311 (pack_ts_type_common_value_fields): ...this. Update comment.
2312 (lto_output_ts_type_tree_pointers): Split into...
2313 (lto_output_ts_type_common_tree_pointers): ...this and...
2314 (lto_output_ts_type_non_common_tree_pointers): ...this.
2315 (lto_output_tree_pointers): Adjust for above split.
2316 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2317 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2318 * stor-layout.c (vector_type_mode): Adjust location of mode field.
2319 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2320 Define.
2321 (struct tree_type): Split into...
2322 (struct tree_type_common: ...this and...
2323 (struct tree_type_with_lang_specific): ...this and...
2324 (struct tree_type_non_common): ...this. Adjust accessor macros
2325 accordingly.
2326 (TYPE_VALUES_RAW): Define.
2327 (union tree_node): Update for above changes.
2328 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2329 TS_TYPE_NON_COMMON.
2330 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2331 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2332 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2333 * treestructu.def (TS_TYPE): Remove.
2334 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2335 Define.
2336
2337 2011-05-11 Jakub Jelinek <jakub@redhat.com>
2338
2339 PR debug/48159
2340 * tree-ssa.c (reset_debug_uses): New function.
2341 * tree-flow.h (reset_debug_uses): New prototype.
2342 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2343 * tree-loop-distribution.c (generate_loops_for_partition): Call
2344 reset_debug_uses on the stmts that will be removed. Keep around
2345 all debug stmts, don't count them as bits in partition bitmap.
2346 (generate_builtin): Don't count debug stmts or labels as bits in
2347 partition bitmap.
2348
2349 2011-05-11 Richard Guenther <rguenther@suse.de>
2350
2351 * gimple.c (gimple_type_hash_1): Merge with ...
2352 (gimple_type_hash): ... this.
2353 (gtc_visit): Remove mode parameter and simplify accordingly.
2354 (gimple_types_compatible_p_1): Likewise.
2355 (gimple_types_compatible_p): Likewise.
2356 (iterative_hash_gimple_type): Likewise.
2357 (visit): Likewise.
2358 (gimple_type_eq): Adjust.
2359
2360 2011-05-11 Revital Eres <revital.eres@linaro.org>
2361
2362 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2363 enters the branch create an anti edge in the opposite direction
2364 to prevent the creation of reg-moves.
2365 * modulo-sched.c: Adjust comment to reflect the fact we are
2366 scheduling closing branch.
2367 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2368 (stage_count): New field in struct partial_schedule.
2369 (calculate_stage_count): New function.
2370 (normalize_sched_times): Rename to reset_sched_times and handle
2371 incrementing the sched time of the nodes by a constant value
2372 passed as parameter.
2373 (duplicate_insns_of_cycles): Skip closing branch.
2374 (sms_schedule_by_order): Schedule closing branch.
2375 (ps_insn_find_column): Handle closing branch.
2376 (sms_schedule): Call reset_sched_times and adjust the code to
2377 support scheduling of the closing branch.
2378 (ps_insert_empty_row): Update calls to normalize_sched_times
2379 and rotate_partial_schedule functions.
2380
2381 2011-05-11 Richard Guenther <rguenther@suse.de>
2382
2383 PR middle-end/48953
2384 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2385
2386 2011-05-11 Joseph Myers <joseph@codesourcery.com>
2387
2388 * opts.c (finish_options): Move warning settings from process_options.
2389 * toplev.c (process_options): Move warning settings to finish_options.
2390
2391 2011-05-11 Richard Guenther <rguenther@suse.de>
2392
2393 PR tree-optimization/18041
2394 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2395 (simplify_bitwise_binary): ... this. Handle operand conversions
2396 by applying them to the result instead.
2397 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2398
2399 2011-05-11 Richard Guenther <rguenther@suse.de>
2400
2401 * gimple.c (gimple_canonical_types_compatible_p): Split out
2402 from gimple_types_compatible_p and friends. Do not recurse
2403 to pointed-to types.
2404 (gimple_canonical_type_eq): Use it.
2405 (iterative_hash_canonical_type): Split out from
2406 iterative_hash_gimple_type and friends. Do not recurse
2407 to pointed-to types.
2408 (gimple_canonical_type_hash): Use it, allocate the hash here.
2409
2410 2011-05-11 Revital Eres <revital.eres@linaro.org>
2411
2412 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2413 recognizing doloop.
2414
2415 2011-05-11 Revital Eres <revital.eres@linaro.org>
2416
2417 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2418 instead of PREV_INSN.
2419
2420 2011-05-11 Revital Eres <revital.eres@linaro.org>
2421
2422 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2423 * loop-doloop.c (doloop_condition_get): Likewise.
2424 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2425 (doloop_end): New.
2426 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2427
2428 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2429
2430 * tree.def (CASE_LABEL_EXPR): Add an operand.
2431 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2432
2433 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2434
2435 * c-decl.c (c_override_global_bindings_to_false): Remove.
2436 (global_bindings_p): Don't check
2437 c_override_global_bindings_to_false.
2438 * c-tree.h (c_override_global_bindings_to_false): Remove.
2439 * c-typeck.c (composite_type): Don't set
2440 c_override_global_bindings_to_false.
2441
2442 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2443
2444 PR target/48857, 48495
2445 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2446 (VSX_MODE): Ditto.
2447 (VSX_MOVE_MODE): Ditto.
2448 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2449 VSX vector types. Add V2DImode.
2450 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2451 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2452 (MODES_TIEABLE_P): Ditto.
2453
2454 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2455 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2456 VSX_VECTOR_MODE.
2457 (init_cumulative_args): Ditto.
2458 (rs6000_function_arg_boundary): Ditto.
2459 (rs6000_function_arg_advance_1): Ditto.
2460 (rs6000_function_arg): Ditto.
2461 (rs6000_function_ok_for_sibcall): Ditto.
2462 (emit_frame_save): Ditto.
2463 (rs6000_function_value): Ditto.
2464 (rs6000_libcall_value): Ditto.
2465
2466 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2467
2468 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2469 i386/darwin-lib.h to $libgcc_tm_file.
2470 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2471
2472 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2473
2474 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2475
2476 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2477
2478 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2479 * config/rs6000/rs6000-tables.opt: New file (generated).
2480 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2481 rs6000/rs6000-tables.opt to extra_options.
2482 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2483 * config/rs6000/rs6000.c (rs6000_select): Remove.
2484 (processor_target_table): Move contents to rs6000-cpus.def.
2485 (darwin_rs6000_override_options): Check
2486 global_options_set.x_rs6000_cpu_index instead of
2487 rs6000_select[1].string.
2488 (rs6000_option_override_internal): Likewise.
2489 (rs6000_handle_option): Don't assert that global structures are in
2490 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
2491 (rs6000_default_cpu): New variable.
2492 (rs6000_file_start): Set it instead of local default_cpu. Check
2493 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2494 global_options_set.x_rs6000_tune_index instead of rs6000_select.
2495 (rs6000_darwin_file_start): Check rs6000_default_cpu and
2496 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2497 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2498 rs6000_select): Remove.
2499 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2500 Remove.
2501 (mcpu=, mtune=): Use Var, Init, Enum and Save.
2502 * config/rs6000/t-rs6000
2503 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2504 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2505 global_options_set.x_rs6000_cpu_index instead of
2506 rs6000_select[1].string.
2507 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2508 global_options_set.x_rs6000_cpu_index instead of
2509 rs6000_select[1].string.
2510
2511 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2512
2513 * config.gcc (libgcc_tm_file): Define instead of including files
2514 from ../../libgcc/config/ in tm_file.
2515 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2516 * configure: Regenerate.
2517 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2518 libgcc_tm.h, cs-libgcc_tm.h): New.
2519 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2520 (clean): Remove libgcc_tm.h.
2521 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2522 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2523 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2524
2525 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
2526
2527 PR target/48896
2528 * config/avr/avr.c (avr_ret_register): Return unsigned int
2529 instead of int.
2530 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2531 it to avr_libcall_value.
2532 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2533 expand_expr.
2534 (avr_expand_binop_builtin): Ditto.
2535 (avr_expand_unop_builtin): Ditto.
2536
2537 2011-05-10 DJ Delorie <dj@redhat.com>
2538
2539 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2540 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2541 * config/rx/rx.c (rx_align_for_label): Add label and
2542 uses_threshold parameters. Do not align when the label is not
2543 used enough.
2544 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2545
2546 2011-05-10 Richard Guenther <rguenther@suse.de>
2547
2548 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2549 a series of conversions and apply foldings similar to what
2550 fold-const does.
2551 (tree_ssa_forward_propagate_single_use_vars): Call it.
2552
2553 2011-05-10 Jakub Jelinek <jakub@redhat.com>
2554
2555 PR tree-optimization/48611
2556 PR tree-optimization/48794
2557 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2558 referenced from RESX or EH_DISPATCH arguments.
2559
2560 PR debug/48928
2561 * dfp.c (decimal_to_decnumber): Handle conversion from
2562 dconst{1,2,m1,half}.
2563
2564 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2565
2566 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2567 for !flag_prefer_avx128.
2568 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2569
2570 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2571
2572 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2573 (fold_ternary_loc): Use expr_location_or.
2574
2575 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
2576
2577 PR debug/48853
2578 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2579 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2580 Pmode and mem_mode is not VOIDmode.
2581
2582 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2583
2584 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2585 TYPE_QUAL_RESTRICT): Convert to enum.
2586
2587 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2588
2589 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2590 (const_pow2_1_to_8_operand): Ditto.
2591 (const_pow2_1_to_128_operand): Ditto.
2592 (const_pow2_1_to_32768_operand): Ditto.
2593 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2594 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
2595 in insn constraint to check integer value of operand 3.
2596 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2597
2598 (PINSR_MODE): New mode iterator.
2599 (sse2p4_1): New mode attribute.
2600 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2601 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2602 iterator. Use const_int_operand instead of
2603 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
2604 exact_log2 in insn constraint to check integer value of operand 3.
2605
2606 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2607
2608 * config/i386/sse.md (blendbits): Remove mode attribute.
2609 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2610 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2611 Check integer value of operand 3 in insn constraint.
2612
2613 2011-05-09 Richard Guenther <rguenther@suse.de>
2614
2615 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2616 for diagnostics.
2617 (lto_symtab_merge): Likewise. Do not register types here.
2618 (lto_symtab_merge_decls_2): Likewise.
2619 (lto_symtab_merge_decls_1): Likewise.
2620 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2621 * gimple.c (enum gtc_mode): Declare.
2622 (gimple_types_compatible_p): Make static.
2623
2624 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2625
2626 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2627 temporary register to match Pmode.
2628
2629 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2630
2631 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2632 and *vec_concatv4si_1_avx.
2633
2634 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2635
2636 PR rtl-optimization/48927
2637 * ira-conflicts.c (commutative_constraint_p): Use
2638 recog_data.alternative_enabled_p to disable alternatives where
2639 "enabled" attribute is false.
2640 (get_dup_num): Ditto.
2641 * ira-lives.c (single_reg_class): Ditto.
2642 (ira_implicitly_set_insn_hard_regs): Ditto.
2643
2644 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2645
2646 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2647 (dataflow_set_preserve_mem_locs): Likewise.
2648
2649 2011-05-09 Philipp Thomas <pth@suse.de>
2650
2651 * config/mep/mep.c (mep_validate_vliw): Syntax description
2652 should not be translated.
2653
2654 2011-05-09 Joseph Myers <joseph@codesourcery.com>
2655
2656 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2657 * config/mips/mips-tables.opt: New file (generated).
2658 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2659 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2660 MIPS_ARCH_OPTION_NATIVE): Define.
2661 * config/mips/mips.c (mips_cpu_info_table): Move contents to
2662 mips-cpus.def.
2663 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2664 mips_parse_cpu): Remove.
2665 (mips_cpu_info_from_opt, mips_default_arch): New.
2666 (mips_handle_option): Don't assert that global structures are in
2667 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2668 (mips_option_override): Use new variables and functions to set
2669 state of these options. Use strcmp to check for individual CPU names.
2670 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2671 definition.
2672 * config/mips/mips.opt (march=): Use ToLower and Enum.
2673 (mips): Use ToLower, Enum and Var.
2674 (mtune=): Use ToLower and Enum.
2675 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2676
2677 2011-05-08 Jan Hubicka <jh@suse.cz>
2678
2679 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2680 Arrange type pairs to be UID ordered.
2681 (gimple_lookup_type_leader): Make inline.
2682
2683 2011-05-09 Nick Clifton <nickc@redhat.com>
2684
2685 PR target/48899
2686 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2687 PROCESSOR_DEFAULT.
2688
2689 PR target/48897
2690 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2691 variable 's'.
2692
2693 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
2694
2695 * combine.c (simplify_comparison): Abstract out parts into...
2696 (simplify_compare_const): ... new function.
2697 (try_combine): Generalize parallel arithmetic/compare combining
2698 to call simplify_compare_const() and CANONICALIZE_COMPARE().
2699
2700 2011-05-08 Jan Hubicka <jh@suse.cz>
2701
2702 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2703 (cgraph_create_virtual_clone): Call hooks once virtual clone
2704 is finished.
2705 * cgraph.h (cgraph_clone_node): Update prototype.
2706 * ipa-cp.c (ipcp_estimate_growth): Use
2707 estimate_ipcp_clone_size_and_time.
2708 * ipa-inline-transform.c (clone_inlined_nodes): Update.
2709 * lto-cgraph.c (input_node): Update.
2710 * ipa-inline.c (recursive_inlining): Update.
2711 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2712 (evaluate_conditions_for_known_args): Break out from ...
2713 (evaluate_conditions_for_edge): ... here.
2714 (evaluate_conditions_for_ipcp_clone): New function.
2715 (inline_node_duplication_hook): Update clone summary based
2716 on parameter map.
2717 (estimate_callee_size_and_time): Rename to ...
2718 (estimate_node_size_and_time): take NODE instead of EDGE;
2719 take POSSIBLE_TRUTHS as argument.
2720 (estimate_callee_size_and_time): Update.
2721 (estimate_ipcp_clone_size_and_time): New function.
2722 (do_estimate_edge_time): Update.
2723
2724 2011-05-08 Richard Guenther <rguenther@suse.de>
2725
2726 PR middle-end/48908
2727 PR middle-end/48905
2728 * expmed.c (expand_shift_1): Compute adjusted constant shift
2729 amount manually.
2730
2731 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2732
2733 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2734
2735 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2736
2737 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2738
2739 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
2740
2741 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2742
2743 2011-05-07 Jan Hubicka <jh@suse.cz>
2744
2745 * ipa-inline-transform.c (inline_call): Account when program size
2746 decreases.
2747 * ipa-inline.c (relative_time_benefit): New function.
2748 (edge_badness): Reorganize to be power 2 based; fix thinko when
2749 computing badness for negative growth; update comments to match
2750 reality; better dumps.
2751
2752 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2753
2754 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2755 type to bool and adjust comment.
2756 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2757 (fold_mathfn_compare): Remove calls to global_bindings_p.
2758 (fold_inf_compare): Likewise.
2759 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2760 * c-tree.h (global_bindings_p): Adjust prototype.
2761 * c-decl.c (global_bindings_p): Return bool and simplify.
2762
2763 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
2764
2765 PR tree-optimization/48837
2766 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2767 when accumulator transformation is performed.
2768
2769 2011-05-06 Jan Hubicka <jh@suse.cz>
2770
2771 * i386.h (ix86_tune_indices): Add
2772 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2773 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2774 * i386.c (initial_ix86_tune_features): Add
2775 X86_SOFTARE_PREFETCHING_BENEFICIAL.
2776 (software_prefetching_beneficial_p): Remove predicate.
2777 (ix86_option_override_internal): Use new macro.
2778
2779 2011-05-06 Jan Hubicka <jh@suse.cz>
2780
2781 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2782
2783 2011-05-06 Jan Hubicka <jh@suse.cz>
2784
2785 * cgraph.c (cgraph_add_thunk): Create real function node instead
2786 of alias node; finalize it and mark needed/reachale; arrange visibility
2787 to be right and add it into the corresponding same comdat group list.
2788 (dump_cgraph_node): Dump thunks.
2789 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2790 cgraph_function_with_gimple_body_p,
2791 cgraph_first_function_with_gimple_body,
2792 cgraph_next_function_with_gimple_body): New functions.
2793 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2794 New macros.
2795 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2796 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2797 * cgraphunit.c (cgraph_finalize_function): Only look into possible
2798 devirtualization when optimizing.
2799 (verify_cgraph_node): Verify thunks.
2800 (cgraph_analyze_function): Analyze thunks.
2801 (cgraph_mark_functions_to_output): Output thunks only in combination
2802 with function they are assigned to.
2803 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2804 alias into normal node.
2805 (assemble_thunks): New functoin.
2806 (cgraph_expand_function): Use it.
2807 * lto-cgraph.c (lto_output_node): Stream thunks.
2808 (input_overwrite_node): Stream in thunks.
2809 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2810 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2811 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2812 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2813 (inline_analyze_function): Do not care about thunk jump functions.
2814 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2815 * ipa-prop.c (ipa_prop_write_jump_functions): Use
2816 cgraph_function_with_gimple_body_p.
2817 * passes.c (do_per_function_toporder): Use
2818 cgraph_function_with_gimple_body_p.
2819 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2820 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2821 (function_called_by_processed_nodes_p): Likewise.
2822
2823 2011-05-06 Joseph Myers <joseph@codesourcery.com>
2824
2825 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2826 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2827 entries.
2828 (mabi=): Replace with separate entries for mabi=altivec,
2829 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2830 mabi=ieeelongdouble and mabi=ibmlongdouble.
2831 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2832 check for -mabi=spe without SPE ABI support here.
2833 (rs6000_handle_option): Replace OPT_mabi_ handling with
2834 OPT_mabi_altivec and OPT_mabi_spe handling.
2835
2836 2011-05-06 Cary Coutant <ccoutant@google.com>
2837
2838 * dwarf2out.c (contains_subprogram_definition): New function.
2839 (should_move_die_to_comdat): Call it.
2840
2841 2011-05-06 Jeff Law <law@redhat.com>
2842
2843 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2844 remove_ctrl_stmt_and_useless_edges.
2845 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2846 (fixup_template_block, thread_single_edge): Likewise.
2847 (mark_threaded_blocks): Use THREAD_TARGET.
2848
2849 2011-05-06 Alan Modra <amodra@gmail.com>
2850
2851 PR target/48900
2852 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2853 const0_rtx as the arg to the dummy __tls_get_addr libcall.
2854
2855 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
2856
2857 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2858 constraint modifier to "r".
2859
2860 2011-05-06 Joseph Myers <joseph@codesourcery.com>
2861
2862 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2863 fall through for OPT_mcmodel_.
2864
2865 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2866
2867 * config/s390/s390.c (s390_asm_trampoline_template): Comment
2868 instruction sizes.
2869 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2870
2871 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2872
2873 PR target/47930
2874 * config/arm/arm.opt (marm): Document it.
2875 (mthumb): Reject negative variant.
2876
2877 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
2878
2879 PR target/48898
2880 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2881 Fix typo in "ccvt" variable name.
2882
2883 2011-05-06 Tristan Gingold <gingold@adacore.com>
2884
2885 PR target/48895
2886 * config/vms/vms-ar.c (main): Remove cwd variable.
2887
2888 2011-05-06 Jakub Jelinek <jakub@redhat.com>
2889
2890 PR debug/48902
2891 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2892
2893 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2894
2895 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2896 * gimplify.c (gimplify_switch_expr): Likewise.
2897 * omp-low.c (expand_omp_sections): Likewise.
2898 * tree-eh.c (lower_try_finally_switch): Likewise.
2899 (lower_eh_dispatch): Likewise.
2900 * tree.h (build_case_label): Declare.
2901 * tree.c (build_case_label): Define.
2902
2903 2011-05-05 Jason Merrill <jason@redhat.com>
2904
2905 PR c++/40975
2906 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2907 (copy_statement_list): Don't recurse.
2908 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2909 STATEMENT_LIST.
2910
2911 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2912
2913 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2914 through from -mfpu= handling.
2915 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2916
2917 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2918
2919 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2920 POST_MODIFY.
2921
2922 2011-05-05 Steve Ellcey <sje@cup.hp.com>
2923
2924 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2925 for 11.31.
2926 (hppa[12]*-*-hpux11*): Ditto.
2927 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2928 * config/ia64/hpux-unix2003.h: New.
2929 * config/pa/pa-hpux1131.opt: New.
2930 * config/pa/pa-hpux1131.h: New.
2931 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2932 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2933 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2934
2935 2011-05-05 Jakub Jelinek <jakub@redhat.com>
2936
2937 PR debug/48853
2938 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2939 instead of mode as 3rd argument to recursive call.
2940 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2941 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2942 VOIDmode.
2943 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2944 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2945 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2946 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2947
2948 2011-05-05 Julian Brown <julian@codesourcery.com>
2949
2950 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2951 parenthesis in D-register case.
2952
2953 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2954
2955 * opt-functions.awk (var_type_struct): Handle Enum options.
2956 * optc-gen.awk: Don't check range of variables of character type.
2957 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2958 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2959 rs6000_sdata_name, rs6000_explicit_options): Remove.
2960 (rs6000_option_override_internal): Check for -malign-power here.
2961 Use global_options_set instead of rs6000_explicit_options.
2962 (rs6000_parse_fpu_option): Remove.
2963 (rs6000_handle_option): Access variables via opts and opts_set
2964 pointers. Use error_at and warning_at. Add fall-through
2965 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2966 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2967 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2968 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2969 here. Don't use rs6000_parse_fpu_option.
2970 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2971 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2972 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2973 (mrecip=): Use Var.
2974 (mspe): Use Var and Save.
2975 (mtraceback=): Use Enum and Var.
2976 (rs6000_traceback_type): New Enum and EnumValue entries.
2977 (mfloat-gprs=): Use Enum, Var and Save.
2978 (rs6000_float_gprs): New Enum and EnumValue entries.
2979 (mlong-double-): use Var and Save.
2980 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2981 (malign-): Use Enum and Var.
2982 (rs6000_alignment_flags): New Enum and EnumValue entries.
2983 (mfpu=): Use Enum.
2984 (fpu_type_t): New Enum and EnumValue entries.
2985 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2986 global_options_set instead of rs6000_explicit_options.
2987 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2988 global_options_set instead of rs6000_explicit_options.
2989 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2990 global_options_set instead of rs6000_explicit_options.
2991 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2992 global_options_set instead of rs6000_explicit_options.
2993 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2994 global_options_set instead of rs6000_explicit_options.
2995 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2996 global_options_set instead of rs6000_explicit_options.
2997 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2998 definition.
2999 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3000 global_options_set instead of rs6000_explicit_options.
3001 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
3002 (rs6000_cmodel): New Enum and EnumValue entries.
3003 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3004 global_options_set instead of rs6000_explicit_options.
3005 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
3006 (mtls-size=): Use Enum and Var.
3007 (rs6000_tls_size): New Enum and EnumValue entries.
3008
3009 2011-05-05 Michael Matz <matz@suse.de>
3010
3011 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
3012 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
3013 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
3014 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
3015 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
3016 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
3017 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
3018 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
3019 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
3020 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
3021 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
3022 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
3023 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
3024 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
3025 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
3026 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
3027
3028 2011-05-05 Richard Guenther <rguenther@suse.de>
3029
3030 * expmed.c (expand_variable_shift): Rename to ...
3031 (expand_shift_1): ... this. Take an expanded shift amount.
3032 For rotates recurse directly not building trees for the shift amount.
3033 (expand_variable_shift): Wrap around expand_shift_1.
3034 (expand_shift): Adjust.
3035
3036 2011-05-05 Jakub Jelinek <jakub@redhat.com>
3037
3038 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
3039
3040 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
3041
3042 * tree.h (get_pending_sizes): Remove prototype.
3043 (put_pending_size): Likewise.
3044 (put_pending_sizes): Likewise.
3045 * stor-layout.c (pending_sizes): Delete.
3046 (get_pending_sizes): Likewise.
3047 (put_pending_size): Likewise.
3048 (put_pending_sizes): Likewise.
3049 (variable_size): Do not call put_pending_size and tidy up.
3050 * function.h (struct function): Remove dont_save_pending_sizes_p.
3051 * lto-streamer-in.c (input_function): Do not stream it.
3052 * lto-streamer-out.c (output_function): Likewise.
3053 * tree-inline.c (initialize_cfun): Do not copy it.
3054 * c-decl.c (store_parm_decls): Do not set it.
3055 * omp-low.c (create_task_copyfn): Likewise.
3056 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3057
3058 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
3059
3060 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
3061 conditions.
3062 (*movdf_internal): Ditto.
3063 (*movdf_internal_nointeger): Ditto.
3064 (*movsf_internal): Ditto.
3065
3066 2011-05-05 Joseph Myers <joseph@codesourcery.com>
3067
3068 * c-decl.c (finish_decl): Don't call get_pending_sizes.
3069 (grokparm): Add parameter expr. Pass it to grokdeclarator.
3070 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
3071 (c_variable_size): Remove.
3072 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
3073 call put_pending_sizes.
3074 (get_parm_info): Add parameter expr. Use it to set
3075 arg_info->pending_sizes.
3076 (store_parm_decls): Use arg_info->pending_sizes instead or calling
3077 get_pending_sizes.
3078 * c-parser.c (c_parser_parms_declarator): Update call to
3079 c_parser_parms_list_declarator.
3080 (c_parser_parms_list_declarator): Take parameter expr. Update
3081 call to push_parm_decl. Update recursive call. Don't call
3082 get_pending_sizes. Update calls to get_parm_info.
3083 (c_parser_objc_method_definition): Update calls to
3084 c_parser_objc_method_decl and objc_start_method_definition.
3085 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
3086 (c_parser_objc_method_decl): Add parameter expr. Update call to
3087 grokparm.
3088 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
3089 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
3090 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
3091
3092 2011-05-05 Michael Hope <michael.hope@linaro.org>
3093
3094 PR pch/45979
3095 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
3096 __ARM_EABI__ hosts.
3097
3098 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3099
3100 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
3101 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
3102 (spu_output_mi_thunk): New function.
3103
3104 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3105
3106 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
3107 targetm.asm_out.print_operand.
3108 * config/sol2.c: Include target.h.
3109
3110 2011-05-04 Jan Hubicka <jh@suse.cz>
3111
3112 * ipa-inline.c (reset_edge_caches): New function.
3113 (update_caller_keys): Add check_inlinablity_for; do not
3114 reset edge caches; remove now unnecesary loop.
3115 (update_callee_keys): Add comments; reset node_growth_cache of callee.
3116 (update_all_callee_keys): Likewise.
3117 (inline_small_functions): Sanity check cache; update code
3118 recomputing it.
3119
3120 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
3121
3122 PR rtl-optimization/47612
3123 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
3124 as the last insn of the sequence to be moved.
3125
3126 2011-05-04 Tobias Burnus <burnus@net-b.de>
3127
3128 PR fortran/48864
3129 * doc/invoke.texi (Ofast): Document that it
3130 enables Fortran's -fno-protect-parens.
3131
3132 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3133
3134 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
3135
3136 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
3137
3138 * stor-layout.c (variable_size): Do not issue errors.
3139
3140 2011-05-04 Richard Guenther <rguenther@suse.de>
3141
3142 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
3143 for array-ref indices.
3144 (tree_coverage_counter_addr): Likewise.
3145 (build_fn_info_type): Use size_int for index types.
3146 (build_gcov_info): Likewise.
3147
3148 2011-05-04 Richard Guenther <rguenther@suse.de>
3149
3150 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
3151 to build_int_cst.
3152 * c-typeck.c (really_start_incremental_init): Use bitsize_int
3153 for constructor indices.
3154 (push_init_level): Likewise.
3155
3156 2011-05-04 Richard Guenther <rguenther@suse.de>
3157
3158 * explow.c (promote_mode): Move variable declarations before code.
3159
3160 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
3161
3162 * tree.h (build_function_type_array): Declare.
3163 (build_varargs_function_type_array): Declare.
3164 (build_function_type_vec, build_varargs_function_type_vec): Define.
3165 * tree.c (build_function_type_array_1): New function.
3166 (build_function_type_array): New function.
3167 (build_varargs_function_type_array): New function.
3168
3169 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
3170
3171 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
3172 before setting STMT_VINFO_TYPE.
3173
3174 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3175
3176 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
3177 instead of spu_pass_by_reference.
3178
3179 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3180
3181 * calls.c (emit_library_call_value_1): Invoke
3182 promote_function_mode hook on libcall arguments.
3183 * explow.c (promote_function_mode, promote_mode): Handle TYPE
3184 argument being NULL.
3185 * targhooks.c (default_promote_function_mode): Lisewise.
3186 * config/s390/s390.c (s390_promote_function_mode): Likewise.
3187 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3188
3189 * doc/tm.texi: Document that TYPE argument might be NULL.
3190
3191 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3192
3193 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3194
3195 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3196
3197 From Bernd Schmidt
3198 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3199
3200 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3201
3202 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3203 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3204 Move ...
3205 * mips-tfile.c: ... here.
3206 Don't include coretypes.h, tm.h, filenames.h.
3207 (saber_stop): Remove definition and all calls.
3208 [__SABER__]: Remove.
3209 (__LINE__): Remove default.
3210 (Size_t, Ptrdiff_t): Remove definitions.
3211 Replace by size_t, ptrdiff_t.
3212 [!MIPS_DEBUGGING_INFO]: Remove.
3213 (SHASH_SIZE, THASH_SIZE): Remove defaults.
3214 (progname): Add const.
3215 (STATIC): Remove.
3216 Replace all uses by static.
3217 (ALIGN_SYMTABLE_OFFSET): Remove default.
3218 * mips-tdump.c: Don't include coretypes.h, tm.h.
3219 Remove !MIPS_IS_STAB guard.
3220 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3221 $(TM_H), filenames.h dependencies.
3222 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3223
3224 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3225
3226 From Jie Zhang
3227 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3228 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3229
3230 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3231
3232 From Bernd Schmidt
3233 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3234 account and save/restore RETS.
3235 (PROFILE_BEFORE_PROLOGUE): Define.
3236 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
3237 the push insn to use predecrement.
3238
3239 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3240
3241 From Jie Zhang
3242 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3243
3244 2011-05-04 Nick Clifton <nickc@redhat.com>
3245
3246 * config/mn10300/mn10300.c: Include cfgloop.h.
3247 (DUMP): New macro.
3248 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
3249 Lcc or a FLcc insn into the instruction stream.
3250 (mn10300_block_contains_call): New function. Returns true if the
3251 given basic block contains a CALL insn.
3252 (mn10300_loop_contains_call_insn): New function. Returns true if
3253 the given loop contains a CALL insn.
3254 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
3255 to use the SETLB and Lcc or FLcc insns.
3256 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3257 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3258 * config/mn10300/mn10300.opt (msetlb): New option. Used to
3259 disable the SETLB optimization.
3260 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3261 __SETLB__ or __NO_SETLB__.
3262 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3263 (movsf_internal): Handle MDR register.
3264 (cmpsi): Make visible.
3265 (setlb): New pattern.
3266 (Lcc): New pattern.
3267 (FLcc): New pattern.
3268
3269 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
3270
3271 PR target/48860
3272 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3273 for reg<->xmm moves.
3274 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3275 (vec_concatv2di_rex64_sse): Ditto.
3276 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3277 (*vec_extractv2di_1_rex64): Ditto.
3278
3279 Revert:
3280 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3281
3282 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3283 reg<->xmm moves.
3284 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3285
3286 2011-05-04 Richard Guenther <rguenther@suse.de>
3287
3288 * tree.h (int_const_binop): Remove notrunc argument.
3289 * fold-const.c (int_const_binop): Remove notrunc argument. Always
3290 create integer constants that are properly truncated.
3291 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3292 (const_binop): Remove zero notrunc argument to int_const_binop.
3293 (size_binop_loc): Likewise.
3294 (fold_div_compare): Likewise.
3295 (maybe_canonicalize_comparison_1): Likewise.
3296 (fold_comparison): Likewise.
3297 (fold_binary_loc): Likewise.
3298 (multiple_of_p): Likewise.
3299 * expr.c (store_constructor): Likewise.
3300 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3301 (maybe_fold_stmt_addition): Likewise.
3302 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3303 * stor-layout.c (layout_type): Likewise.
3304 * tree-data-ref.c (tree_fold_divides_p): Likewise.
3305 * tree-sra.c (build_ref_for_offset): Likewise.
3306 (build_user_friendly_ref_for_offset): Likewise.
3307 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3308 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3309 * tree-ssa-loop-niter.c (inverse): Likewise.
3310 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3311 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3312 * tree-switch-conversion.c (check_range): Likewise.
3313 (build_constructors): Likewise.
3314 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3315 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3316 (extract_range_from_assert): Likewise.
3317 (vrp_int_const_binop): Likewise.
3318 (extract_range_from_binary_expr): Likewise.
3319 (extract_range_from_unary_expr): Likewise.
3320 (check_array_ref): Likewise.
3321 (find_case_label_range): Likewise.
3322 (simplify_div_or_mod_using_ranges): Likewise.
3323 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3324 comparing case labels for merging.
3325
3326 2011-05-03 Mark Wielaard <mjw@redhat.com>
3327
3328 * dwarf2out.c (debug_str_hash_forced): Removed.
3329 (gen_label_for_indirect_string): Removed.
3330 (get_debug_string_label): Removed.
3331 (AT_string_form): Generate label directly.
3332 (output_indirect_string): Test indirect_string_node for
3333 DW_FORM_strp instead of checking label and refcount.
3334 (prune_indirect_string): Removed.
3335 (prune_unused_types): Don't check debug_str_hash_forced or
3336 call prune_indirect_string.
3337
3338 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3339
3340 PR other/48093
3341 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3342
3343 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3344
3345 PR debug/47994
3346 PR debug/47919
3347 * combine.c (try_combine): Skip debug insns at m_split tests.
3348
3349 2011-04-26 Mark Wielaard <mjw@redhat.com>
3350
3351 PR42288
3352 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3353 when info_section_emitted.
3354
3355 2011-05-03 Joseph Myers <joseph@codesourcery.com>
3356
3357 * config/mips/mips-opts.h: New.
3358 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3359 to mips-opts.h.
3360 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3361 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3362 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3363 via opts pointer.
3364 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3365 mips-opts.h.
3366 (mips_abi, mips_code_readable): Don't declare.
3367 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3368 (mabi=): Use Enum and Var.
3369 (mips_abi): New Enum and EnumValue entries.
3370 (mcode-readable=): Use Enum and Var.
3371 (mips_code_readable_setting): New Enum and EnumValue entries.
3372 (mr10k-cache-barrier=): Use Enum and Var.
3373 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3374
3375 2011-05-03 Jan Hubicka <jh@suse.cz>
3376
3377 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3378 replace hash by pointer map.
3379 (cgraph_node_set_element_def, cgraph_node_set_element,
3380 const_cgraph_node_set_element, varpool_node_set_element_def,
3381 varpool_node_set_element, const_varpool_node_set_element): Remove.
3382 (free_cgraph_node_set, free_varpool_node_set): New function.
3383 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3384 * tree-emutls.c: Free varpool node set.
3385 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3386 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3387 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3388 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3389 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3390 Move here from ipa.c; implement using pointer_map
3391 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3392 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3393 debug_cgraph_node_set, varpool_node_set_new,
3394 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3395 dump_varpool_node_set, debug_varpool_node_set):
3396 Move to ipa-uitls.c.
3397 * passes.c (ipa_write_summaries): Update.
3398
3399 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3400
3401 From Mike Frysinger:
3402 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3403 bf542/bf544/bf547/bf548/bf549.
3404
3405 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3406
3407 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3408
3409 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3410
3411 From Bernd Schmidt:
3412 * config/bfin/bfin.md (MOVCC): New mode_macro.
3413 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3414 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3415 comments from generated assembly.
3416
3417 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3418
3419 From Bernd Schmidt
3420 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3421 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3422 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3423 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3424 * config/bfin/lib1funcs.asm (___muldi3): New function.
3425
3426 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3427
3428 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3429 build_function_type_list instead of build_function_type.
3430 Rearrange initialization of `args' to do so.
3431
3432 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3433
3434 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3435 instead of build_function_type.
3436
3437 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3438
3439 * config/rs6000/rs6000.c (spe_init_builtins): Call
3440 build_function_type_list instead of build_function_type.
3441 (paired_init_builtins, altivec_init_builtins): Likewise.
3442 (builtin_function_type): Likewise.
3443
3444 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3445
3446 * config/sh/sh.c (sh_media_init_builtins): Call
3447 build_function_type_list instead of build_function_type.
3448
3449 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3450
3451 * config/sparc/sparc.c (sparc_file_end): Call
3452 build_function_type_list instead of build_function_type.
3453
3454 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3455
3456 * config/alpha/alpha.c (alpha_init_builtins): Call
3457 build_function_type_list instead of build_function_type.
3458
3459 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3460
3461 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3462 build_function_type_list instead of build_function_type.
3463
3464 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3465
3466 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3467 build_function_type_list instead of build_function_type.
3468 Delete `endlink' variable.
3469
3470 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3471
3472 * config/avr/avr.c (avr_init_builtins): Call
3473 build_function_type_list instead of build_function_type.
3474
3475 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3476
3477 * config/picochip/picochip.c (picochip_init_builtins): Call
3478 build_function_type_list instead of build_function_type.
3479 Delete `endlink' variable.
3480
3481 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3482
3483 * config/bfin/bfin.c (bfin_init_builtins): Call
3484 build_function_type_list instead of build_function_type.
3485
3486 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3487
3488 From Bernd Schmidt
3489 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3490 that's not CONST_INT. Seemingly redundant check is due to PR39768.
3491
3492 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3493
3494 From Jie Zhang:
3495 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3496 libbffastfp overrides libgcc when -mfast-fp.
3497
3498 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3499
3500 Originally from Bernd Schmidt
3501 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3502 * config/bfin/bfin.c (override_options): Test it and error if
3503 TARGET_FDPIC.
3504
3505 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3506
3507 Originally From Bernd Schmidt
3508 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3509 FD-PIC.
3510
3511 2011-05-03 Jeff Law <law@redhat.com>
3512
3513 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3514 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3515 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3516 than accessing AUX field directly. Free the AUX field before
3517 clearing it.
3518 (thread_block, thread_through_loop_header): Likewise.
3519 (thread_single_edge, mark_threaded_blocks): Likewise.
3520 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
3521 (register_jump_thread): Do not attempt to thread to a NULL edge.
3522
3523 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3524
3525 * function.c (init_function_start): Call decide_function_section.
3526 * varasm.c (decide_function_section): New function.
3527 (assemble_start_function): When not using
3528 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3529 or first_function_block_is_cold.
3530 * rtl.h (decide_function_section): Declare.
3531
3532 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3533 Jakub Jelinek <jakub@redhat.com>
3534
3535 PR target/48774
3536 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3537 only succeed if req_mode is the same as set_mode.
3538
3539 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3540
3541 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3542 * genemit.c (gen_exp): Handle RETURN.
3543 * emit-rtl.c (verify_rtx_sharing): Likewise.
3544 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3545 * rtl.c (copy_rtx): RETURN is shared.
3546 * rtl.h (enum global_rtl_index): Add GR_RETURN.
3547 (ret_rtx): New.
3548 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3549 * config/s390/s390.c (s390_emit_epilogue): Likewise.
3550 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3551 * config/cris/cris.c (cris_expand_return): Likewise.
3552 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3553 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3554 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3555 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3556 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3557 Likewise.
3558 * config/v850/v850.c (expand_epilogue): Likewise.
3559 * config/bfin/bfin.c (bfin_expand_call): Likewise.
3560 * config/arm/arm.md (epilogue): Likewise.
3561 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3562 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3563 variable to ret_reg.
3564
3565 2011-05-03 Richard Guenther <rguenther@suse.de>
3566
3567 PR lto/48846
3568 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3569 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3570 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3571
3572 2011-05-03 Richard Guenther <rguenther@suse.de>
3573
3574 * c-decl.c (grokdeclarator): Instead of looking at
3575 TREE_OVERFLOW check if the constant fits in the index type.
3576
3577 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3578
3579 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3580 (vec_store_lanes<mode><mode>): Likewise.
3581
3582 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3583
3584 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3585 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3586 convert_optab_index values.
3587 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3588 * genopinit.c (optabs): Initialize the new optabs.
3589 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3590 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3591 (expand_STORE_LANES): New functions.
3592 * tree.h (build_array_type_nelts): Declare.
3593 * tree.c (build_array_type_nelts): New function.
3594 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3595 (vect_model_load_cost): Likewise.
3596 (vect_store_lanes_supported, vect_load_lanes_supported)
3597 (vect_record_strided_load_vectors): Declare.
3598 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3599 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3600 (vect_transform_strided_load): Split out statement recording into...
3601 (vect_record_strided_load_vectors): ...this new function.
3602 * tree-vect-stmts.c (create_vector_array, read_vector_array)
3603 (write_vector_array, create_array_ref): New functions.
3604 (vect_model_store_cost): Add store_lanes_p argument.
3605 (vect_model_load_cost): Add load_lanes_p argument.
3606 (vectorizable_store): Try to use store-lanes functions for
3607 interleaved stores.
3608 (vectorizable_load): Likewise load-lanes and loads.
3609 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3610 to vect_model_store_cost.
3611 (vect_build_slp_tree): Likewise vect_model_load_cost.
3612
3613 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3614
3615 * hooks.h (hook_bool_mode_uhwi_false): Declare.
3616 * hooks.c (hook_bool_mode_uhwi_false): New function.
3617 * target.def (array_mode_supported_p): New hook.
3618 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3619 * doc/tm.texi: Regenerate.
3620 * stor-layout.c (mode_for_array): New function.
3621 (layout_type): Use it.
3622 * config/arm/arm.c (arm_array_mode_supported_p): New function.
3623 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3624
3625 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
3626
3627 PR target/48723
3628 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3629 for -fstack-check if the size to allocate is negative.
3630
3631 2011-05-02 Lawrence Crowl <crowl@google.com>
3632
3633 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3634 (timevar_cond_start): New for starting a timer only when it is not
3635 already running.
3636 (timevar_cond_stop): New for stopping a timer when it was not already
3637 running.
3638
3639 * timevar.c (timevar_stop): Enable start/stop timers to start again.
3640 (timevar_cond_start): New as above.
3641 (timevar_cond_stop): New as above.
3642
3643 * timevar.def: Add start/stop timers for compiler phases,
3644 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3645 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3646 and TV_PHASE_FINALIZE.
3647 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3648 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3649 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3650 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3651 Make unused TV_OVERLOAD into a start/stop timer.
3652
3653 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3654 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3655 to indicate that they are start/stop timers.
3656
3657 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3658 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3659 Move initialization to do_compile.
3660 (do_compile): Add initialization from above.
3661 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3662
3663 * c-decl.c (c_write_global_declarations): Add start/stop of
3664 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3665
3666 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3667 or TV_PARSE_INLINE, as appropriate.
3668 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3669 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3670
3671 2011-05-02 Jason Merrill <jason@redhat.com>
3672
3673 PR c++/40975
3674 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3675
3676 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
3677
3678 PR c/35445
3679 * c-decl.c (finish_decl): Only create a composite if the types are
3680 compatible.
3681
3682 2011-05-02 Joseph Myers <joseph@codesourcery.com>
3683
3684 * config/fr30/fr30-protos.h (Mmode): Don't define.
3685 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
3686 definition where used.
3687 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3688 define. Expand definitions where used.
3689 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3690 Expand definitions where used.
3691 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3692 rx_function_arg, rx_function_arg_advance,
3693 rx_function_arg_boundary): Expand definitions of those macros.
3694 * config/v850/v850-protos.h (Mmode): Don't define. Expand
3695 definition where used.
3696
3697 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3698
3699 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3700 reg<->xmm moves.
3701 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3702 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
3703 with *movv2sf_internal_rex64_avx.
3704 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3705 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3706 Use %v prefix in insn mnemonic to handle TARGET_AVX.
3707 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
3708 "vex" in "prefix" attribute calculation.
3709 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
3710
3711 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
3712
3713 PR target/47951
3714 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3715 inputs match the output.
3716
3717 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
3718
3719 PR target/47955
3720 * config/m68k/m68k.c (m68k_expand_prologue): Set
3721 current_function_static_stack_size.
3722
3723 2011-05-02 Jan Hubicka <jh@suse.cz>
3724
3725 * lto-streamer.c (lto_streamer_cache_insert_1,
3726 lto_streamer_cache_lookup, lto_streamer_cache_create,
3727 lto_streamer_cache_delete): Use pointer map instead of hashtable.
3728 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3729
3730 2011-05-02 Joseph Myers <joseph@codesourcery.com>
3731
3732 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3733 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3734 config/m68k/t-opts: New files.
3735 * config/m68k/m68k-tables.opt: New file (generated).
3736 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3737 extra_options and m68k/t-opts to tmake_file.
3738 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3739 (all_isas): Initialize using m68k-isas.def.
3740 (all_microarchs): Initialize using m68k-microarchs.def.
3741 (m68k_find_selection): Remove.
3742 (m68k_handle_option): Don't assert that global structures are in
3743 use. Use error_at. Access variables via opts pointer. Don't
3744 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
3745 directly for -m68020-40 and -m68020-60.
3746 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3747 m68k_tune_entry here.
3748 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3749 to m68k-opts.h.
3750 (m68k_library_id_string): Remove declaration.
3751 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3752 (m68k_library_id_string): New Variable.
3753 (march=, mcpu=, mtune=): Use Enum and Var.
3754
3755 2011-05-02 Richard Guenther <rguenther@suse.de>
3756
3757 * varasm.c (output_constructor_regular_field): Compute zero-based
3758 index with double-ints. Make sure to ICE instead of producing
3759 wrong code.
3760 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3761 in asserts. Properly use a signed type.
3762
3763 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3764
3765 * config/i386/sse.md (V): New mode iterator.
3766 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
3767 TARGET_SSE2.
3768 (V_256): Rename from AVX256MODE.
3769 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
3770 condition to all users.
3771 (VF1): Ditto.
3772 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
3773 condition to all users.
3774 (VF_128): Make V4SF mode unconditional.
3775 (VF_256): Rename from AVX256MODEF2P.
3776 (VI4F_128): Rename from SSEMODE4S.
3777 (VI8F_128): Rename from SSEMODE2D.
3778 (VI4F_256): Rename from AVX256MODE8P.
3779 (VI8F_256): Rename from AVX256MODE4P.
3780 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3781 (ssescalarmodesuffix): Remove SF and DF modes.
3782 (SSEMODE124): Remove.
3783 (SSEMODE1248): Ditto.
3784 (SSEMODEF2P): Ditto.
3785 (AVXMODEF2P): Ditto.
3786 (AVXMODEFDP): Ditto.
3787 (AVXMODEFSP): Ditto.
3788 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3789 unconditional.
3790 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
3791 unconditional.
3792 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3793 xop_pcmov_<mode>256. Use V mode iterator.
3794
3795 Adjust RTX patterns globally for renamed mode attributes.
3796
3797 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3798
3799 * haifa-sched.c (sched_emit_insn): Emit insn before first
3800 non-scheduled insn. Inform back-end about new insn. Add
3801 new insn to scheduled_insns list.
3802
3803 2011-05-02 Richard Guenther <rguenther@suse.de>
3804
3805 PR tree-optimization/48822
3806 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3807 (process_scc): Indicate which iteration we start.
3808
3809 2011-05-02 Jan Hubicka <jh@suse.cz>
3810
3811 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3812 (lto_section_overrun): New.
3813 * lto-section-out.c (append_block): Rename to ...
3814 (lto_append_block): ... this one; export.
3815 (lto_output_1_stream): Move lto lto-streamer.h
3816 (lto_output_data_stream): Update.
3817 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3818 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3819 functions.
3820
3821 2011-05-02 Richard Guenther <rguenther@suse.de>
3822
3823 * tree.c (tree_code_counts): New global array.
3824 (record_node_allocation_statistics): Count individual tree codes.
3825 (dump_tree_statistics): Dump individual code stats.
3826
3827 2011-05-01 Jan Hubicka <jh@suse.cz>
3828
3829 * ipa-inline.c (caller_growth_limits): Fix thinko when
3830 looking for largest stack frame.
3831 * ipa-inline.h (dump_inline_summary): Declare.
3832 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3833 on stack usage.
3834 (dump_inline_summary): Export.
3835 (debug_inline_summary): Declare as DEBUG_FUNCTION.
3836
3837 2011-05-01 Anatoly Sokolov <aesok@post.ru>
3838
3839 * reginfo.c (memory_move_cost): Change rclass argument type form
3840 'enum reg_class' to reg_class_t.
3841 * reload.h (memory_move_cost): Update prototype.
3842 * postreload.c reload_cse_simplify_set): Change type dclass var to
3843 reg_class_t.
3844 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3845 Update prototype.
3846 (ira_allocate_and_set_costs): Change aclass argument type form
3847 'enum reg_class' to reg_class_t.
3848 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3849 Change aclass argument type to reg_class_t.
3850 (update_conflict_hard_reg_costs): Change type aclass and pref vars
3851 to reg_class_t.
3852 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3853 memory_move_cost call.
3854
3855 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3856 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3857 Change type tmp var to reg_class_t.
3858
3859 2011-04-30 Jan Hubicka <jh@suse.cz>
3860
3861 * ipa-inline.c (can_inline_edge_p): Disregard limits when
3862 inlining into function with flatten attribute.
3863 (want_inline_small_function_p): Be more realistic about inlining
3864 cold calls where callee size grows.
3865
3866 2011-04-30 Jan Hubicka <jh@suse.cz>
3867
3868 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3869 flags.
3870
3871 2011-04-30 Anatoly Sokolov <aesok@post.ru>
3872
3873 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3874 PRINT_OPERAND_PUNCT_VALID_P): Remove.
3875 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3876 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3877 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3878 (print_operand): Rename to...
3879 (sparc_print_operand): ...this. Make static. Adjust
3880 sparc_print_operand function call.
3881 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3882 functions.
3883
3884 2011-04-30 Jan Hubicka <jh@suse.cz>
3885
3886 PR middle-end/48752
3887 * ipa-inline.c (early_inliner): Disable when doing late
3888 addition of function.
3889
3890 2011-04-30 Jakub Jelinek <jakub@redhat.com>
3891
3892 * dwarf2out.c (get_address_mode): New inline.
3893 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3894 if not dwarf_strict emit
3895 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3896 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3897 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3898 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3899 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3900 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3901 mem_loc_descriptor callers.
3902 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3903 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3904 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3905 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3906 (base_types): New variable.
3907 (get_base_type_offset, calc_base_type_die_sizes,
3908 base_type_for_mode, mark_base_types, base_type_cmp,
3909 move_marked_base_types): New functions.
3910 (calc_die_sizes): Assert that die_offset is 0 or equal to
3911 next_die_offset.
3912 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3913 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3914 callers. If not dwarf_strict, call mem_loc_descriptor even for
3915 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3916 (gen_subprogram_die): Don't give up on call site parameters
3917 with non-integral or large integral modes. Adjust
3918 mem_loc_descriptor callers.
3919 (prune_unused_types): Call prune_unused_types_mark on base_types
3920 vector entries.
3921 (resolve_addr): Call mark_base_types.
3922 (dwarf2out_finish): Call move_marked_base_types.
3923
3924 PR tree-optimization/48809
3925 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3926 type.
3927 (gen_inbound_check): Don't compute index_expr - range_min in utype
3928 again, instead reuse SSA_NAME initialized in build_arrays.
3929 Remove two useless gsi_for_stmt calls.
3930
3931 2011-04-29 Jeff Law <law@redhat.com>
3932
3933 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3934
3935 2011-04-29 Martin Jambor <mjambor@suse.cz>
3936
3937 * cgraph.h (cgraph_postorder): Remove declaration.
3938 * ipa-utils.h (ipa_free_postorder_info): Declare.
3939 (ipa_reverse_postorder): Likewise.
3940 * cgraphunit.c: Include ipa-utils.h.
3941 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3942 * ipa-inline.c: Include ipa-utils.h.
3943 (ipa_inline): Update call to ipa_reverse_postorder.
3944 * ipa-pure-const.c (propagate_pure_const): Update call to
3945 ipa_reduced_postorder and ipa_print_order. Call
3946 ipa_free_postorder_info to clean up.
3947 (propagate_nothrow): Likewise.
3948 * ipa-reference.c (propagate): Removed a useless call to
3949 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3950 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3951 * ipa.c: Include ipa-utils.h.
3952 (ipa_profile): Update call to ipa_reverse_postorder.
3953 (cgraph_postorder): Moved to...
3954 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3955 (ipa_utils_print_order): Renamed to ipa_print_order.
3956 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3957 comments.
3958 (ipa_free_postorder_info): New function.
3959 * passes.c: Include ipa-utils.h.
3960 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3961 (ipa_write_summaries): Likewise.
3962 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3963 (cgraphunit.o): Likewise.
3964 (ipa.o): Likewise.
3965 (ipa-inline.o): Likewise.
3966
3967 2011-04-29 Jan Hubicka <jh@suse.cz>
3968
3969 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3970 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3971 * ipa-inline.h (clause_t): Turn into unsigned int.
3972 * ipa-inline-analysis.c (add_clause): Do more simplification.
3973 (and_predicates): Shortcut more cases.
3974 (predicates_equal_p): Move forward; check that clauses are properly
3975 ordered.
3976 (or_predicates): Shortcut more cases.
3977 (edge_execution_predicate): Rewrite as...
3978 (set_cond_stmt_execution_predicate): ... this function; handle
3979 __builtin_constant_p.
3980 (set_switch_stmt_execution_predicate): New .
3981 (compute_bb_predicates): New.
3982 (will_be_nonconstant_predicate): Update TODO.
3983 (estimate_function_body_sizes): Use compute_bb_predicates
3984 and free them later, always try to estimate if stmt is constant.
3985 (estimate_time_after_inlining, estimate_size_after_inlining):
3986 Gracefully handle optimized out edges.
3987 (read_predicate): Fix off by one error.
3988
3989 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3990
3991 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3992
3993 2011-04-27 Xinliang David Li <davidxl@google.com>
3994
3995 * tree-profile.c (init_ic_make_global_vars): Set
3996 tls attribute on ic vars.
3997 * coverage.c (coverage_end_function): Initialize
3998 function_list with zero.
3999
4000 2011-04-29 Richard Guenther <rguenther@suse.de>
4001
4002 * builtins.c (fold_builtin_classify_type): Use integer_type_node
4003 for the type of the result.
4004 (fold_builtin_isascii): Likewise.
4005 (fold_builtin_toascii): Use integer_type_node where appropriate.
4006 (fold_builtin_logb): Likewise.
4007 (fold_builtin_frexp): Likewise.
4008 (fold_builtin_strstr): Likewise.
4009 (fold_builtin_strpbrk): Likewise.
4010 (fold_builtin_fputs): Likewise.
4011 (fold_builtin_sprintf): Likewise.
4012 (fold_builtin_snprintf): Likewise.
4013 (fold_builtin_printf): Likewise.
4014 (do_mpfr_remquo): Use a proper type for the assigned constant.
4015 (do_mpfr_lgamma_r): Likewise.
4016 * dwarf2out.c (resolve_one_addr): Use size_int.
4017 * except.c (init_eh): Likewise.
4018 (assign_filter_values): Use integer_type_node for filter values.
4019 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
4020 indices.
4021 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
4022 for EH region numbers.
4023 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
4024 for the shift amount.
4025
4026 2011-04-29 Richard Guenther <rguenther@suse.de>
4027
4028 * expr.h (expand_shift): Rename to ...
4029 (expand_variable_shift): ... this.
4030 (expand_shift): Take a constant shift amount.
4031 * expmed.c (expand_shift): Rename to ...
4032 (expand_variable_shift): ... this.
4033 (expand_shift): New wrapper around expand_variable_shift.
4034 * expr.c (convert_move, emit_group_load_1, emit_group_store,
4035 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
4036 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
4037 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
4038 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
4039 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
4040 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
4041 emit_store_flag_1, emit_store_flag): Likewise.
4042 * builtins.c (expand_builtin_signbit): Likewise.
4043 * calls.c (load_register_parameters): Likewise.
4044 * function.c (assign_parm_setup_block): Likewise.
4045 * lower-subreg.c (resolve_shift_zext): Likewise.
4046 * optabs.c (widen_bswap, expand_abs_nojump,
4047 expand_one_cmpl_abs_nojump, expand_float): Likewise.
4048 * spu/spu.c (spu_expand_extv): Likewise.
4049 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4050
4051 2011-04-29 Richard Guenther <rguenther@suse.de>
4052
4053 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
4054 for the remapped region number.
4055 * predict.c (build_predict_expr): Use integer_type_node for the
4056 predict kind.
4057 * fold-const.c (fold_binary_loc): Use integer_type_node for
4058 the shift amount. Use a proper type for the PLUS_EXPR operand.
4059
4060 2011-04-29 Michael Matz <matz@suse.de>
4061
4062 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
4063 other trees that just builtins.
4064 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
4065
4066 2011-04-29 Richard Guenther <rguenther@suse.de>
4067
4068 * tree-nested.c (get_trampoline_type): Use size_int.
4069 (get_nl_goto_field): Likewise.
4070 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
4071 for all indexes.
4072 (lower_eh_constructs_2): Likewise.
4073 (lower_resx): Likewise.
4074 (lower_eh_dispatch): Likewise.
4075 * tree-mudflap.c (mf_build_string): Use size_int.
4076 (mudflap_register_call): Use integer_type_node for the flag.
4077 (mudflap_enqueue_constant): Use size_int.
4078 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
4079 instead of rebuilding it.
4080
4081 2011-04-29 Richard Guenther <rguenther@suse.de>
4082
4083 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
4084 Handle OBJ_TYPE_REF.
4085 (find_func_aliases_for_call): Use it more consistently.
4086
4087 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
4088
4089 * haifa-sched.c (last_nondebug_scheduled_insn): New.
4090 (rank_for_schedule): Use it.
4091 (schedule_block): Set it.
4092
4093 2011-04-28 David Li <davidxl@google.com>
4094
4095 * tree.c (crc32_string): Use crc32_byte.
4096 (crc32_byte): New function.
4097 * tree.h (crc32_byte): New function.
4098 * gcov.c (read_graph_file): Handle new cfg_cksum.
4099 (read_count_file): Ditto.
4100 * profile.c (instrument_values): Ditto.
4101 (get_exec_counts): Ditto.
4102 (read_profile_edge_counts): Ditto.
4103 (compute_branch_probabilities): Ditto.
4104 (compute_value_histograms): Ditto.
4105 (branch_prob): Ditto.
4106 (end_branch_prob): Ditto.
4107 * coverage.c (read_counts_file): Ditto.
4108 (get_coverage_counts): Ditto.
4109 (tree_coverage_counter_addr): Ditto.
4110 (coverage_checksum_string): Ditto.
4111 (coverage_begin_output): Ditto.
4112 (coverage_end_function): Ditto.
4113 (build_fn_info_type): Ditto.
4114 (build_fn_info_value): Ditto.
4115 * libgcov.c (gcov_exit): Ditto.
4116 * gcov-dump.c (tag_function): Ditto.
4117 (compute_checksum): Remove.
4118
4119 2011-04-29 Alan Modra <amodra@gmail.com>
4120
4121 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4122 unspec plus offset. Tidy macho code.
4123
4124 2011-04-29 Martin Jambor <mjambor@suse.cz>
4125
4126 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
4127 node instead of a decl. Update all callers.
4128 * cgraph.h: Update declaration.
4129
4130 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
4131
4132 PR tree-optimization/48765
4133 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
4134 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
4135 to indicate if loop aware SLP is being used. Scan the statements
4136 and update the vectorization factor according to the type of
4137 vectorization before statement analysis.
4138 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
4139 pass it to vect_analyze_loop_operations.
4140 (vectorizable_reduction): Set number of copies to 1 in case of pure
4141 SLP statement.
4142 * tree-vect-stmts.c (vectorizable_conversion,
4143 vectorizable_assignment, vectorizable_shift,
4144 vectorizable_operation, vectorizable_type_demotion,
4145 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
4146 Likewise.
4147 (vectorizable_condition): Move the check that it is not SLP
4148 vectorization before the number of copies check.
4149 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
4150 to vectorize the loop using SLP.
4151
4152 2011-04-28 Jakub Jelinek <jakub@redhat.com>
4153
4154 PR middle-end/48597
4155 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
4156 inline asm.
4157
4158 2011-04-28 Joseph Myers <joseph@codesourcery.com>
4159
4160 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
4161 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
4162 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
4163 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
4164 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
4165 linux*.h headers.
4166 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
4167 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4168 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4169 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4170 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
4171 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
4172 REG_NAME.
4173 * config/i386/linux.h (REG_NAME): Don't define.
4174 * config/i386/linux64.h (REG_NAME): Don't define.
4175 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
4176 Undefine before defining.
4177
4178 2011-04-28 Jan Hubicka <jh@suse.cz>
4179
4180 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4181 nonconstant_names array.
4182 (estimate_function_body_sizes): Build nonconstant_names array; handle
4183 BUILT_IN_CONSTANT_P.
4184
4185 2011-04-28 Richard Guenther <rguenther@suse.de>
4186
4187 PR bootstrap/48804
4188 Revert
4189 2011-04-28 Richard Guenther <rguenther@suse.de>
4190
4191 * tree-ssa-structalias.c (solve_constraints): Build succ graph
4192 as late as possible.
4193
4194 2011-04-28 Richard Guenther <rguenther@suse.de>
4195
4196 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4197 (debug_constraint): Do it here.
4198 (dump_constraints): And here.
4199 (rewrite_constraints): And here.
4200 (dump_constraint_edge): Remove.
4201 (dump_constraint_graph): Rewrite to produce DOT output.
4202 (solve_constraints): Build succ graph as late as possible.
4203 Dump constraint graphs before and after solving.
4204
4205 2011-04-28 Richard Guenther <rguenther@suse.de>
4206
4207 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4208 New function split out from ...
4209 (find_func_aliases): ... here. Call it.
4210 (find_func_aliases_for_call): Likewise.
4211
4212 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4213
4214 * internal-fn.h (internal_fn_name_array): Declare.
4215 (internal_fn_flags_array): Likewise.
4216
4217 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4218
4219 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
4220 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4221 Move from sse.md.
4222 (ssemodefsuffix): Remove.
4223 (ssevecmodesuffix): New mode attribute.
4224 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4225 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4226 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4227 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4228 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4229 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4230 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4231 ssemodesuffix mode attribute.
4232 (float splitters): Use ssevecmodesuffix mode attribute.
4233 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4234 (sseinsmode): Rename from avxvecmode.
4235 (avxsizesuffix): Rename from avxmodesuffix.
4236 (sseintvecmode): Rename from avxpermvecmode.
4237 (ssedoublevecmode): Rename from ssedoublesizemode.
4238 (ssehalfvecmode): Rename from avxhalfvecmode.
4239 (ssescalarmode): Rename from avxscalarmode.
4240 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4241 templates for ssemodesuffix mode attribute.
4242 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4243 mode attribute.
4244
4245 Adjust RTX patterns globally for renamed mode attributes.
4246
4247 2011-04-27 Jan Hubcika <jh@suse.cz>
4248
4249 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4250 * ipa-inline-analysis.c: Include alloc-pool.h.
4251 (edge_predicate_pool): New.
4252 (trye_predicate_p): New function
4253 (false_predicate_p): New function.
4254 (add_clause): Sanity check that false clauses are "optimized";
4255 never add clauses to predicate that is already known to be false.
4256 (and_predicate): Use flase_predicate_p.
4257 (evaulate_predicate): Rename to ...
4258 (evaluate_predicate): ... this one; update all callers; assert
4259 that false is not listed among possible truths.
4260 (dump_predicate): Use true_predicate_p.
4261 (account_size_time): Use false_predicate_p.
4262 (evaulate_conditions_for_edge): Rename to ...
4263 (evaluate_conditions_for_edge) ... this one.
4264 (edge_set_predicate): New function.
4265 (inline_edge_duplication_hook): Duplicate edge predicates.
4266 (inline_edge_removal_hook): Free edge predicates.
4267 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4268 (dump_inline_summary): Update.
4269 (estimate_function_body_sizes): Set edge predicates.
4270 (estimate_calls_size_and_time): Handle predicates.
4271 (estimate_callee_size_and_time): Update.
4272 (remap_predicate): Add toplev_predicate; update comment.
4273 (remap_edge_predicates): New function.
4274 (inline_merge_summary): Compute toplev predicate; update.
4275 (read_predicate): New function.
4276 (read_inline_edge_summary): Use it.
4277 (inline_read_section): Likewise.
4278 (write_predicate): New function.
4279 (write_inline_edge_summary): Use it.
4280 (inline_write_summary): Likewise.
4281 (inline_free_summary): Free alloc pool and edge summary vec.
4282
4283 2011-04-27 Richard Guenther <rguenther@suse.de>
4284
4285 * tree-ssa-structalias.c (changed_count): Remove.
4286 (changed): Use a bitmap.
4287 (unify_nodes): Adjust.
4288 (do_sd_constraint): Likewise.
4289 (do_ds_constraint): Likewise.
4290 (do_complex_constraint): Likewise.
4291 (solve_graph): Likewise.
4292
4293 2011-04-27 Jan Hubicka <jh@suse.cz>
4294
4295 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4296
4297 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
4298
4299 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4300 (avx_vperm2f128_*_operand): Ditto.
4301 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4302 Use avx_vpermilp_parallel in insn condition.
4303 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4304 Use avx_vperm2f128_parallel in insn condition.
4305
4306 2011-04-27 Richard Guenther <rguenther@suse.de>
4307
4308 * Makefile.in (tree-ssa-structalias.o): Remove
4309 gt-tree-ssa-structalias.h dependency.
4310 (GTFILES): Remove tree-ssa-structalias.c.
4311 * tree.c (allocate_decl_uid): New function.
4312 (make_node_stat): Use it.
4313 (copy_node_stat): Likewise.
4314 * tree.h (allocate_decl_uid): Declare.
4315 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4316 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4317 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4318 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4319 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4320 (struct heapvar_map): Likewise.
4321 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4322 heapvar_insert): Likewise.
4323 (make_heapvar_for): Rename to ...
4324 (make_heapvar): ... this. Simplify.
4325 (fake_var_decl_obstack): New global var.
4326 (build_fake_var_decl): New function.
4327 (make_constraint_from_heapvar): Adjust.
4328 (handle_lhs_call): Likewise.
4329 (create_function_info_for): Likewise.
4330 (intra_create_variable_infos): Likewise.
4331 (init_alias_vars): Allocate fake_var_decl_obstack.
4332 (init_alias_heapvars, delete_alias_heapvars): Remove.
4333 (compute_points_to_sets): Do not call init_alias_heapvars.
4334 (ipa_pta_execute): Likewise.
4335 (delete_points_to_sets): Free fake_var_decl_obstack.
4336
4337 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4338
4339 * config/spu/divmovti4.c (union qword_UTItype): New data type.
4340 (si_from_UTItype, si_to_UTItype): New functions.
4341 (__udivmodti4): Use them to implement type-punning.
4342 * config/spu/multi3.c (union qword_TItype): New data type.
4343 (si_from_TItype, si_to_TItype): New functions.
4344 (__multi3): Use them to implement type-punning.
4345
4346 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4347
4348 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4349
4350 2011-04-27 Jan Hubicka <jh@suse.cz>
4351
4352 * ipa-prop.c (function_insertion_hook_holder): New holder.
4353 (ipa_add_new_function): New function.
4354 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4355 Register/deregister holder.
4356
4357 2011-04-27 Richard Guenther <rguenther@suse.de>
4358
4359 PR tree-optimization/48772
4360 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4361
4362 2011-04-27 Richard Guenther <rguenther@suse.de>
4363
4364 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4365 TARGET_MEM_REF handling.
4366
4367 2011-04-27 Nick Clifton <nickc@redhat.com>
4368
4369 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4370 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4371 (REG_CLASS_NAMES): Likewise.
4372 (REG_CLASS_CONTENTS): Likewise.
4373 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4374 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4375 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
4376 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
4377 (EVEN_REGS): New macro. Alias for QUAD_REGS.
4378 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4379 duplicate register classes.
4380 (frv_class_likely_spilled_p): Likewise.
4381 (frv_register_move_cost): Likewise.
4382
4383 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4384 end of the regno_reg_class array.
4385
4386 2011-04-27 Jakub Jelinek <jakub@redhat.com>
4387
4388 PR c/48742
4389 * c-typeck.c (build_binary_op): Don't wrap arguments if
4390 int_operands is true.
4391
4392 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
4393
4394 PR target/48767
4395 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4396 targetm.calls.must_pass_in_stack for void type.
4397
4398 2011-04-26 Jan Hubicka <jh@suse.cz>
4399
4400 * cgraphbuild.c (build_cgraph_edges): Update call
4401 of cgraph_create_edge and cgraph_create_indirect_edge.
4402 * cgraph.c (cgraph_create_edge_including_clones,
4403 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4404 cgraph_update_edges_for_call_stmt_node): Do not take nest
4405 argument; do not initialize call_stmt_size/time.
4406 (dump_cgraph_node): Do not dump nest.
4407 (cgraph_clone_edge): Do not take loop_nest argument;
4408 do not propagate it; do not clone call_stmt_size/time.
4409 (cgraph_clone_node): Likewise.
4410 (cgraph_create_virtual_clone): Update.
4411 * cgraph.h (struct cgraph_edge): Remove
4412 call_stmt_size/call_stmt_time/loop_nest.
4413 (cgraph_create_edge, cgraph_create_indirect_edge,
4414 cgraph_create_edge_including_clones, cgraph_clone_node): Update
4415 prototype.
4416 * tree-emutls.c (gen_emutls_addr): Update.
4417 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4418 loop_nest; handle indirect calls, too.
4419 (clone_inlined_nodes): Do not care about updating inline summaries.
4420 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4421 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4422 stream call_stmt_size/call_stmt_time/loop_nest.
4423 * ipa-inline.c (edge_badness): Update.
4424 (ipa_inline): dump summaries after inlining.
4425 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4426 New.
4427 (inline_edge_summary): New function.
4428 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4429 (inline_edge_removal_hook): Handle edge summaries.
4430 (inline_edge_duplication_hook): New hook.
4431 (inline_summary_alloc): Alloc hooks.
4432 (initialize_growth_caches): Do not register removal hooks.
4433 (free_growth_caches); Do not free removal hook.
4434 (dump_inline_edge_summary): New function.
4435 (dump_inline_summary): Use it.
4436 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4437 (inline_update_callee_summaries): New function.
4438 (inline_merge_summary): Use it.
4439 (do_estimate_edge_time, do_estimate_edge_growth): Update.
4440 (read_inline_edge_summary): New function.
4441 (inline_read_section): Use it.
4442 (write_inline_edge_summary): New function.
4443 (inline_write_summary): Use it.
4444 (inline_free_summary): Free edge new holders.
4445 * tree-inline.c (copy_bb): Update.
4446
4447 2011-04-26 Jason Merrill <jason@redhat.com>
4448
4449 * tree-eh.c (lower_try_finally_switch): Create the label along with
4450 the CASE_LABEL_EXPR.
4451
4452 2011-04-26 David S. Miller <davem@davemloft.net>
4453 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4454
4455 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4456 * configure: Regenerate.
4457
4458 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4459
4460 PR target/48258
4461 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4462 reduction.
4463 (VEC_reduc): New code iterator and splitters for vector reduction.
4464 (VEC_reduc_name): Ditto.
4465 (VEC_reduc_rtx): Ditto.
4466 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4467 (reduc_<VEC_reduc_name>_v4sf): Ditto.
4468
4469 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4470 support for extracting SF on VSX.
4471
4472 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4473 generating xscvspdp.
4474 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4475 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4476 double add, minimum, maximum vector reduction.
4477 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4478 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4479 optimize double vector reduction.
4480 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4481
4482 2011-04-26 Joseph Myers <joseph@codesourcery.com>
4483
4484 * config/fr30/fr30.h (inhibit_libc): Don't define.
4485 * config/m32r/m32r-protos.h: Correct comment.
4486 * config/v850/v850.h (GHS_default_section_names,
4487 GHS_current_section_names): Use tree, not union tree_node *.
4488
4489 2011-04-26 Xinliang David Li <davidxl@google.com>
4490
4491 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4492 * c-family/c-opts.c (c_common_handle_option): Set
4493 warn_maybe_uninitialized.
4494 * opts.c (common_handle_option): Ditto.
4495 * common.opt: New option.
4496 * tree-ssa.c (warn_uninit): Add one more parameter.
4497 (warn_uninitialized_var): Pass warning code.
4498 * tree-flow.h: Interface change.
4499
4500
4501 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4502
4503 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4504 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4505 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4506
4507 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4508
4509 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4510 * config/mips/mips.opt (mmips-tfile): Remove.
4511
4512 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4513 mips-tdump reference to ...
4514 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
4515 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4516 reference by Tru64 UNIX.
4517
4518 2011-04-26 Jakub Jelinek <jakub@redhat.com>
4519
4520 PR debug/48768
4521 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4522 is error_mark_node, set value to NULL.
4523
4524 PR tree-optimization/48734
4525 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4526 if return value from maybe_fold_*_comparsions isn't something
4527 the code is prepared to handle.
4528
4529 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
4530
4531 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4532 mode check.
4533 (ext_QIreg_nomode_operands): Remove.
4534 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4535 (*andsi_1): Ditto.
4536 (*andhi_1): Ditto.
4537
4538 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
4539
4540 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4541
4542 2011-04-26 Richard Guenther <rguenther@suse.de>
4543
4544 * c-typeck.c (build_unary_op): Do not expand array-refs via
4545 pointer arithmetic. Only adjust qualifiers for function types.
4546
4547 2011-04-26 Richard Guenther <rguenther@suse.de>
4548
4549 PR middle-end/48694
4550 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4551 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4552 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
4553 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4554
4555 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
4556
4557 * doc/extend.texi: Document __underlying_type.
4558
4559 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
4560
4561 * config/rs6000/titan.md (automata_option "progress"): Remove.
4562
4563 2011-04-25 Jeff Law <law@redhat.com>
4564
4565 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4566
4567 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
4568
4569 * system.h (ENUM_BITFIELD): Remove.
4570
4571 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
4572 Eric Botcazou <ebotcazou@adacore.com>
4573
4574 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4575 for STORE_FLAG_VALUE==-1 case.
4576
4577 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
4578
4579 PR target/43804
4580 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4581 LEGITIMATE_PIC_OPERAND_P.
4582
4583 2011-04-24 Jan Hubicka <jh@suse.cz>
4584
4585 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4586 WPA hack.
4587 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4588 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4589 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4590 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4591 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4592 Sanity check predicate length.
4593 (remap_predicate): Likewise; sanity check jump functions.
4594 (inline_read_section, inline_write_summary): Sanity check
4595 predicate length.
4596
4597 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
4598
4599 PR other/48748
4600 * doc/extend.texi (Type Traits): Document __is_standard_layout,
4601 __is_literal_type, and __is_trivial; update throughout about
4602 possibly cv-qualified void types.
4603
4604 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
4605
4606 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4607 testsuite and make it version agnostic.
4608
4609 2011-04-22 Jan Hubicka <jh@suse.cz>
4610
4611 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4612
4613 2011-04-23 Jakub Jelinek <jakub@redhat.com>
4614
4615 PR c/48685
4616 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4617 to VOID_TYPE even around MODIFY_EXPR.
4618
4619 2011-04-22 Mike Stump <mikestump@comcast.net>
4620
4621 * gensupport.c (read_md_rtx): Fix typo in comment.
4622 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4623 comment.
4624
4625 2011-04-22 Jan Hubicka <jh@suse.cz>
4626
4627 * gengtype.c (open_base_files): Add ipa-inline.h include.
4628 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4629 ipa-prop.c; update all uses.
4630 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4631 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4632 merge summary of inlined function into former caller.
4633 * ipa-inline.c (max_benefit): Remove.
4634 (edge_badness): Compensate for removal of benefits.
4635 (update_caller_keys): Use
4636 reset_node_growth_cache/reset_edge_growth_cache.
4637 (update_callee_keys): Likewise.
4638 (update_all_callee_keys): Likewise.
4639 (inline_small_functions): Do not collect max_benefit; do not reset
4640 estimated_growth; call free_growth_caches and initialize_growth_caches.
4641 * ipa-inline.h (struct condition, type clause_t, struct predicate,
4642 struct size_time_entry): New structures.
4643 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4644 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4645 and estimated_growth.
4646 (edge_growth_cache_entry): New structure.
4647 (node_growth_cache, edge_growth_cache): New global vars.
4648 (estimate_growth): Turn into inline.
4649 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4650 initialize_growth_caches, free_growth_caches): Declare.
4651 (estimate_edge_growth): Rewrite.
4652 (estimate_edge_time): Implement as inline cache lookup.
4653 (reset_node_growth_cache, reset_edge_growth_cache): New inline
4654 functions.
4655 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4656 (NUM_CONDITIONS): New constant.
4657 (predicate_conditions): New enum.
4658 (IS_NOT_CONSTANT): New constant.
4659 (edge_removal_hook_holder): New var.
4660 (node_growth_cache, edge_growth_cache): New global vars.
4661 (true_predicate, single_cond_predicate, false_predicate,
4662 not_inlined_predicate, add_condition, add_clause, and_predicates,
4663 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4664 dump_clause, dump_predicate, account_size_time,
4665 evaulate_conditions_for_edge): New functions.
4666 (inline_summary_alloc): Move to heap.
4667 (inline_node_removal_hook): Clear condition and entry vectors.
4668 (inline_edge_removal_hook): New function.
4669 (initialize_growth_caches, free_growth_caches): New function.
4670 (dump_inline_summary): Update.
4671 (edge_execution_predicate): New function.
4672 (will_be_nonconstant_predicate): New function.
4673 (estimate_function_body_sizes): Compute BB and constantness predicates.
4674 (compute_inline_parameters): Do not clear estimated_growth.
4675 (estimate_edge_size_and_time): New function.
4676 (estimate_calls_size_and_time): New function.
4677 (estimate_callee_size_and_time): New function.
4678 (remap_predicate): New function.
4679 (inline_merge_summary): New function.
4680 (do_estimate_edge_time): New function based on...
4681 (estimate_edge_time): ... this one.
4682 (do_estimate_edge_growth): New function.
4683 (do_estimate_growth): New function based on....
4684 (estimate_growth): ... this one.
4685 (inline_analyze_function): Analyze after deciding on jump functions.
4686 (inline_read_section): New function.
4687 (inline_read_summary): Use it.
4688 (inline_write_summary): Write all the new data.
4689 * ipa-prop.c (ipa_get_param_decl_index): Export.
4690 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4691 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4692 Declare.
4693 (ipa_get_lattice): Move here from ipa-cp.c
4694 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4695 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4696 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4697 cgraph_edge_inlinable_p): Remove.
4698 * cgraphunit.c: Include ipainline.h
4699 (cgraph_process_new_functions): Update call of
4700 compute_inline_parameters.
4701
4702 2011-04-22 Richard Guenther <rguenther@suse.de>
4703
4704 * tree.c (build_int_cst): Properly create canonicalized integer
4705 constants.
4706 (build_int_cst_type): Remove scary comments.
4707
4708 2011-04-22 Xinliang David Li <davidxl@google.com>
4709
4710 * toplev.c (process_options): Enable -Werror=coverage-mismatch
4711 by default when -Wno-error is not specified.
4712 * opts-global.c (decode_options): Remove call to
4713 control_warning_options.
4714
4715 2011-04-22 Jakub Jelinek <jakub@redhat.com>
4716
4717 PR tree-optimization/48717
4718 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4719 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4720
4721 2011-04-22 Joseph Myers <joseph@codesourcery.com>
4722
4723 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
4724 definition where used.
4725
4726 2011-04-22 Jakub Jelinek <jakub@redhat.com>
4727
4728 PR c/48716
4729 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4730 TREE_STATIC variables declared inside of some OpenMP construct.
4731
4732 2011-04-22 Martin Jambor <mjambor@suse.cz>
4733
4734 PR middle-end/48585
4735 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4736
4737 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
4738
4739 PR c/36750
4740 * c-typeck.c (pop_init_level): Do not warn about initializing
4741 with ` = {0}'.
4742
4743 2011-04-22 Alan Modra <amodra@gmail.com>
4744
4745 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4746 when returning call_cookie.
4747 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4748 pointers, to functions with no more vector args than the current
4749 function, and some non-local calls for ABI_V4.
4750 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4751 sibcall_nonlocal_aix64): Combine to ..
4752 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
4753 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4754 (sibcall_value_nonlocal_aix<mode>): ..likewise.
4755 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4756 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
4757 operand.
4758 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4759 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4760 sibcall_value_symbolic_64): Delete.
4761
4762 2011-04-21 Xinliang David Li <davidxl@google.com>
4763
4764 * cgraph.h: Remove pid.
4765 * cgraph.c: Remove pid.
4766 * value-prof.c (init_node_map): New function.
4767 (del_node_map): New function.
4768 (find_func_by_funcdef_no): New function.
4769 (gimple_ic_transform): Call new function.
4770 * cgraphunit.c (cgraph_finalize_function): Remove pid.
4771 * function.c (get_last_funcdef_no): New function.
4772 * function.h (get_last_funcdef_no): New function.
4773 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4774 to libgcov function.
4775 (tree-profiling): Call node map init and delete function.
4776
4777 2011-04-21 Ian Lance Taylor <iant@google.com>
4778
4779 * godump.c (go_format_type): Use exported Go name for anonymous
4780 field name.
4781
4782 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4783
4784 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4785 Call builtin_function_type_list instead of builtin_function_type.
4786 (UNARY, BINARY, TRINARY, QUAD): Likewise.
4787
4788 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4789
4790 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4791 build_function_type_list instead of build_function_type.
4792 Delete variable `endlink'.
4793
4794 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4795
4796 * config/s390/s390.c (s390_init_builtins): Call
4797 build_function_type_list instead of build_function_type.
4798
4799 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4800
4801 * config/ia64/ia64.c (ia64_init_builtins): Call
4802 build_function_type_list instead of builtin_function_type.
4803
4804 2011-04-21 Easwaran Raman <eraman@google.com>
4805
4806 * cfgexpand.c (stack_var): Remove OFFSET...
4807 (add_stack_var): ...and its reference here...
4808 (expand_stack_vars): ...and here.
4809 (stack_var_cmp): Sort by descending order of size.
4810 (partition_stack_vars): Change heuristic.
4811 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4812 (dump_stack_var_partition): Add newline after each partition.
4813
4814 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
4815 Jeff Law <law@redhat.com>
4816
4817 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4818 * gengtype.c (matching_file_name_substitute): Likewise.
4819
4820 2011-04-21 Richard Guenther <rguenther@suse.de>
4821
4822 PR lto/48703
4823 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4824
4825 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
4826
4827 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4828
4829 2011-04-21 Richard Guenther <rguenther@suse.de>
4830
4831 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4832 file name.
4833
4834 2011-04-21 Richard Guenther <rguenther@suse.de>
4835
4836 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4837 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4838 Use DECL_P, not SSA_VAR_P.
4839 (ptr_derefs_may_alias_p): Likewise.
4840 (ptr_deref_may_alias_ref_p_1): Likewise.
4841 (decl_refs_may_alias_p): Likewise.
4842 (refs_may_alias_p_1): Likewise.
4843 (ref_maybe_used_by_call_p_1): Likewise.
4844 (call_may_clobber_ref_p_1): Likewise.
4845 (indirect_ref_may_alias_decl_p): Assume indirect refrences
4846 are either MEM_REF or TARGET_MEM_REF.
4847 (indirect_refs_may_alias_p): Likewise.
4848 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4849 for MEM_EXPR of indirect calls.
4850
4851 2011-04-21 Tristan Gingold <gingold@adacore.com>
4852
4853 * vmsdbgout.c (write_srccorr): Compute file length from the string.
4854 (dst_file_info_struct): Remove flen field.
4855 (lookup_filename): Remove code that set flen field.
4856
4857 2011-04-21 Tristan Gingold <gingold@adacore.com>
4858
4859 * config/ia64/ia64.c (ia64_start_function): Add a guard.
4860
4861 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
4862
4863 PR target/48708
4864 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4865 vec_extract and vec_concat for non-SSE4_1 targets.
4866
4867 2011-04-21 Richard Guenther <rguenther@suse.de>
4868
4869 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4870 return statements.
4871
4872 2011-04-21 Joseph Myers <joseph@codesourcery.com>
4873
4874 * config/i386/cygming.h (union tree_node, TREE): Don't define or
4875 undefine.
4876 (FILE): Don't undefine.
4877
4878 2011-04-21 Joseph Myers <joseph@codesourcery.com>
4879
4880 * config/alpha/alpha.c (struct machine_function): Use rtx, not
4881 struct rtx_def *.
4882 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4883 struct rtx_def *.
4884 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4885 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4886 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4887 rtx_def *.
4888 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
4889 definitions where used.
4890 * config/microblaze/microblaze.h (struct microblaze_args): Use
4891 rtx, not struct rtx_def *.
4892 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4893 rtx_def *.
4894 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4895 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4896 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4897 not struct rtx_def *.
4898 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4899 struct rtx_def *.
4900 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4901 rtx_def *.
4902 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4903
4904 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4905
4906 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4907 operand_equal_p to compare DR_BASE_ADDRESSes.
4908 (vect_check_interleaving): Likewise.
4909
4910 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4911
4912 PR target/46329
4913 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4914 for all Neon struct constants.
4915
4916 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4917
4918 * target.def (legitimate_constant_p): New hook.
4919 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4920 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4921 * doc/tm.texi: Regenerate.
4922 * hooks.h (hook_bool_mode_rtx_true): Declare.
4923 * hooks.c (hook_bool_mode_rtx_true): Define.
4924 * system.h (LEGITIMATE_CONSTANT_P): Poison.
4925 * calls.c (precompute_register_parameters): Replace uses of
4926 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4927 (emit_library_call_value_1): Likewise.
4928 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4929 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4930 * ira-costs.c (scan_one_insn): Likewise.
4931 * recog.c (general_operand, immediate_operand): Likewise.
4932 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4933 * reload1.c (init_eliminable_invariants): Likewise.
4934
4935 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4936 mode argument.
4937 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4938 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4939 argument.
4940 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4941 * config/alpha/predicates.md (input_operand): Update call to
4942 alpha_legitimate_constant_p.
4943
4944 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4945 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4946 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4947 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4948 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4949 (arm_legitimate_constant_p): New functions.
4950 (arm_cannot_force_const_mem): Make static.
4951
4952 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4953
4954 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4955 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4956 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4957 instead of bfin_legitimate_constant_p.
4958 (bfin_legitimate_constant_p): Make static. Add a mode argument.
4959 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4960
4961 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4962
4963 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4964
4965 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4966 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4967 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4968 (frv_legitimate_constant_p): Make static. Add a mode argument.
4969
4970 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4971 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4972 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4973
4974 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4975 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4976 * config/i386/i386.c (legitimate_constant_p): Rename to...
4977 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
4978 argument.
4979 (ix86_cannot_force_const_mem): Update accordingly.
4980 (ix86_legitimate_address_p): Likewise.
4981 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4982 * config/i386/i386.md: Update commentary.
4983
4984 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4985 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4986 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4987 (ia64_legitimate_constant_p): Make static. Add a mode argument.
4988
4989 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4990
4991 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4992 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4993 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4994 (lm32_legitimate_constant_p): Make static. Add a mode argument.
4995
4996 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4997 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4998 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4999
5000 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
5001 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5002 (m32r_legitimate_constant_p): New function.
5003
5004 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
5005 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
5006 LEGITIMATE_CONSTANT_P.
5007 (LEGITIMATE_CONSTANT_P): Delete.
5008 * config/m68k/m68k.c (m68k_expand_prologue): Call
5009 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
5010 (m68k_legitimate_constant_p): New function.
5011 * config/m68k/m68k.md: Update comments.
5012
5013 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
5014 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5015 (mcore_legitimate_constant_p): New function.
5016
5017 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
5018 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
5019 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
5020 Add a mode argument.
5021 (mep_legitimate_address): Update accordingly.
5022 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5023
5024 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
5025 Delete.
5026 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
5027 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
5028 static. Check OP's mode for VOIDmode.
5029 (microblaze_legitimate_constant_p): New function.
5030 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5031
5032 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
5033 * config/mips/mips.c (mips_legitimate_constant_p): New function.
5034 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
5035 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5036 * config/mips/predicates.md: Update comments.
5037
5038 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
5039 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
5040 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5041 (mmix_legitimate_constant_p): Make static, return a bool, and take
5042 a mode argument.
5043 (mmix_print_operand_address): Update accordingly.
5044
5045 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
5046 Delete.
5047 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
5048 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
5049 static. Add a mode argument.
5050 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5051
5052 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
5053
5054 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
5055 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5056 (pa_legitimate_constant_p): New function.
5057
5058 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
5059
5060 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
5061 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5062 (pdp11_legitimate_constant_p): New function.
5063
5064 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
5065 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5066 (rs6000_legitimate_constant_p): New function.
5067
5068 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
5069 (rx_legitimate_constant_p): ...this.
5070 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
5071 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
5072 (rx_legitimate_constant_p): ...this.
5073 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5074 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
5075
5076 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
5077 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
5078 * config/s390/s390.c (legitimate_constant_p): Rename to...
5079 (s390_legitimate_constant_p): ...this. Make static, return a bool,
5080 and add a mode argument.
5081 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5082
5083 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
5084
5085 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
5086 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5087 (sh_legitimate_constant_p): New function.
5088
5089 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
5090 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
5091 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5092 (legitimate_constant_p): Rename to...
5093 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
5094 argument.
5095 (constant_address_p): Update accordingly.
5096
5097 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
5098 argument and return a bool.
5099 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
5100 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5101 (spu_legitimate_constant_p): Add a mode argument and return a bool.
5102 (spu_rtx_costs): Update accordingly.
5103 * config/spu/predicates.md (vec_imm_operand): Likewise.
5104
5105 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
5106
5107 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
5108 * config/v850/v850.c (v850_legitimate_constant_p): New function.
5109 (TARGET_LEGITIMATE_CONSTANT_P): Define.
5110
5111 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
5112 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
5113 * config/vax/vax.c (legitimate_constant_p): Likewise.
5114
5115 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
5116 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
5117 (xtensa_legitimate_constant_p): New function.
5118
5119 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
5120
5121 * target.def (cannot_force_const_mem): Add a mode argument.
5122 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
5123 * doc/tm.texi: Regenerate.
5124 * hooks.h (hook_bool_mode_rtx_false): Declare.
5125 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
5126 (hook_bool_mode_const_rtx_true): Likewise.
5127 (hook_bool_mode_rtx_false): New function.
5128 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
5129 to be non-VOID. Update call to cannot_force_const_mem.
5130 (find_reloads): Update accordingly.
5131 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
5132 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
5133 argument.
5134 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
5135 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
5136 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
5137 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
5138 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
5139 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
5140 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
5141 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5142 (m68k_cannot_force_const_mem): ...this new function.
5143 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
5144 argument.
5145 (mips_const_insns, mips_legitimize_const_move): Update calls.
5146 (mips_secondary_reload_class): Likewise.
5147 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
5148 (pa_cannot_force_const_mem): ...this new function.
5149 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
5150 (rs6000_cannot_force_const_mem): ...this new function.
5151 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
5152 argument.
5153 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
5154 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
5155 to...
5156 (xtensa_cannot_force_const_mem): ...this new function.
5157
5158 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5159
5160 * config/mips/mips.c (mips16_build_function_stub): Call
5161 build_function_type_list instead of build_function_type.
5162 (mips16_build_call_stub): Likewise.
5163
5164 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5165
5166 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
5167 instead of build_function_type.
5168
5169 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
5170
5171 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
5172 instead of build_function_type.
5173
5174 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
5175
5176 PR target/48678
5177 * config/i386/i386.md (insv): Change operand 0 constraint to
5178 "register_operand". Change operand 1 and 2 constraint to
5179 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
5180 * config/i386/sse.md (sse4_1_pinsrb): Export.
5181 (sse2_pinsrw): Ditto.
5182 (sse4_1_pinsrd): Ditto.
5183 (sse4_1_pinsrq): Ditto.
5184 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5185 * config/i386/i386.c (ix86_expand_pinsr): New.
5186
5187 2011-04-20 Easwaran Raman <eraman@google.com>
5188
5189 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5190 containing union type only with -fstrict-aliasing.
5191
5192 2011-04-20 Jim Meyering <meyering@redhat.com>
5193
5194 Remove useless if-before-free tests.
5195 * calls.c (expand_call, save_area): Likewise.
5196 * cfgcleanup.c (try_forward_edges): Likewise.
5197 * collect2.c (collect_execute): Likewise.
5198 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5199 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5200 * coverage.c (coverage_checksum_string): Likewise.
5201 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5202 * cselib.c (cselib_init): Likewise.
5203 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5204 (df_set_clean_cfg): Likewise.
5205 * function.c (free_after_compilation): Likewise.
5206 * gcc.c (do_spec_1, main): Likewise.
5207 * gcov.c (create_file_names): Likewise.
5208 * gensupport.c (identify_predicable_attribute): Likewise.
5209 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5210 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5211 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5212 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5213 * ipa-pure-const.c (local_pure_const): Likewise.
5214 * ipa-reference.c (propagate): Likewise.
5215 * ira-costs.c (free_ira_costs): Likewise.
5216 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5217 * matrix-reorg.c (mat_free): Likewise.
5218 * prefix.c (get_key_value): Likewise.
5219 * profile.c (compute_value_histograms): Likewise.
5220 * reload1.c (free_reg_equiv): Likewise.
5221 * sched-deps.c (free_deps): Likewise.
5222 * sel-sched-ir.c (fence_clear): Likewise.
5223 * sese.c (set_rename, if_region_set_false_region): Likewise.
5224 * tree-data-ref.c (free_rdg): Likewise.
5225 * tree-eh.c (lower_try_finally): Likewise.
5226 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5227 * tree-ssa-live.c (delete_var_map): Likewise.
5228 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5229 * tree-ssa-pre.c (phi_trans_add): Likewise.
5230
5231 2011-04-20 Jakub Jelinek <jakub@redhat.com>
5232
5233 PR tree-optimization/48611
5234 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5235 beyond ERT_MUST_NOT_THROW region.
5236
5237 2011-04-20 Catherine Moore <clm@codesourcery.com>
5238
5239 * config/mips/mips.opt (mfix-24k): New.
5240 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5241 * config/mips/mips.md (length): Increase by 4 for stores if
5242 fixing 24K errata.
5243 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5244 all noreorder if fixing 24K errata.
5245 * doc/invoke.texi: Document mfix-24k.
5246
5247 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
5248
5249 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5250 quad-word modes, reduce to 9-bit index range when above 1016 limit.
5251
5252 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5253
5254 * config/arm/arm.c (arm_gen_constant): Move movw support ....
5255 (const_ok_for_op): ... to here.
5256
5257 2011-04-20 Kai Tietz <ktietz@redhat.com>
5258
5259 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5260 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5261
5262 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
5263
5264 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5265
5266 2011-04-20 Richard Guenther <rguenther@suse.de>
5267
5268 PR tree-optimization/47892
5269 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5270 are if-convertible.
5271
5272 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
5273
5274 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5275
5276 2011-04-20 Tristan Gingold <gingold@adacore.com>
5277
5278 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5279
5280 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
5281
5282 PR target/18145
5283
5284 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5285 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5286 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5287 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5288 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5289
5290 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5291 New prototype.
5292
5293 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5294 (avr_asm_named_section, avr_asm_output_aligned_common,
5295 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5296 New functions to update...
5297 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5298 (avr_asm_init_sections): Overwrite section callbacks for
5299 data_section, bss_section.
5300 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5301 from here to...
5302 (avr_file_end): ...here.
5303
5304 2011-04-20 Richard Guenther <rguenther@suse.de>
5305
5306 PR middle-end/48695
5307 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5308 objects and types here. Adjust for their offset before comparing.
5309
5310 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5311
5312 * tree-vect-stmts.c (vectorizable_store): Only chain one related
5313 statement per copy.
5314
5315 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5316
5317 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5318 (GIMPLE_H): Include $(INTERNAL_FN_H).
5319 (OBJS-common): Add internal-fn.o.
5320 (internal-fn.o): New rule.
5321 * internal-fn.def: New file.
5322 * internal-fn.h: Likewise.
5323 * internal-fn.c: Likewise.
5324 * gimple.h: Include internal-fn.h.
5325 (GF_CALL_INTERNAL): New gf_mask.
5326 (gimple_statement_call): Put fntype into a union with a new
5327 internal_fn field.
5328 (gimple_build_call_internal): Declare.
5329 (gimple_build_call_internal_vec): Likewise.
5330 (gimple_call_same_target_p): Likewise.
5331 (gimple_call_internal_p): New function.
5332 (gimple_call_internal_fn): Likewise.
5333 (gimple_call_fntype): Return null for internal calls.
5334 (gimple_call_set_fntype): Assert that the function is not internal.
5335 (gimple_call_set_fn): Likewise.
5336 (gimple_call_set_fndecl): Likewise.
5337 (gimple_call_set_internal_fn): New function.
5338 (gimple_call_addr_fndecl): Handle null functions.
5339 (gimple_call_return_type): Likewise null types.
5340 * gimple.c (gimple_build_call_internal_1): New function.
5341 (gimple_build_call_internal): Likewise.
5342 (gimple_build_call_internal_vec): Likewise.
5343 (gimple_call_same_target_p): Likewise.
5344 (gimple_call_flags): Handle calls to internal functions.
5345 (gimple_call_fnspec): New function.
5346 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5347 (gimple_has_side_effects): Handle null functions.
5348 (gimple_rhs_has_side_effects): Likewise.
5349 (gimple_call_copy_skip_args): Handle calls to internal functions.
5350 * cfgexpand.c (expand_call_stmt): Likewise.
5351 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5352 * gimple-fold.c (gimple_fold_call): Handle null functions.
5353 (gimple_fold_stmt_to_constant_1): Don't fold
5354 calls to internal functions.
5355 * gimple-low.c (gimple_check_call_args): Handle calls to internal
5356 functions.
5357 * gimple-pretty-print.c (dump_gimple_call): Likewise.
5358 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5359 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5360 (do_warn_unused_result): Likewise.
5361 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5362 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5363 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5364 the target of a call.
5365 (initialize_hash_element): Update accordingly.
5366 (hashable_expr_equal_p): Use gimple_call_same_target_p.
5367 (iterative_hash_hashable_expr): Handle calls to internal functions.
5368 (print_expr_hash_elt): Likewise.
5369 * tree-ssa-pre.c (can_value_number_call): Likewise.
5370 (eliminate): Handle null functions.
5371 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5372 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5373 (find_func_aliases): Likewise.
5374 * value-prof.c (gimple_ic_transform): Likewise.
5375 (gimple_indirect_call_to_profile): Likewise.
5376 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5377 * lto-streamer-out.c (output_gimple_stmt): Likewise.
5378
5379 2011-04-19 Jan Hubicka <jh@suse.cz>
5380
5381 * ipa-inline-transform.c (save_inline_function_body): Add comments.
5382 * ipa-inline.c (inline_small_functions): Compute summaries first,
5383 populate heap later.
5384
5385 2011-04-19 Jan Hubicka <jh@suse.cz>
5386
5387 * cgraph.h (save_inline_function_body): Remove.
5388 * ipa-inline-transform.c: New file, broke out of...
5389 * ipa-inline.c: ... this one; Update toplevel comment.
5390 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5391 make global.
5392 (update_noncloned_frequencies): Move to ipa-inline-transform.c
5393 (cgraph_mark_inline_edge): Rename to inline_call; move to
5394 ipa-inline-transform.c.
5395 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5396 move to ipa-inline-transform.c
5397 (recursive_inlining, inline_small_functions, flatten_function,
5398 ipa_inline, inline_always_inline_functions,
5399 early_inline_small_functions): Update.
5400 (inline_transform): Move to ipa-inline-transform.c.
5401 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5402 Declare.
5403 * Makefile.in (ipa-inline-transform.o): New file.
5404 * cgraphunit.c (save_inline_function_body): Move to
5405 ipa-inline-transform.c
5406
5407 2011-04-19 DJ Delorie <dj@redhat.com>
5408
5409 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5410 registers if we already know there aren't any.
5411 (m32c_emit_epilogue): Don't emit a barrier here.
5412 (m32c_emit_eh_epilogue): Likewise.
5413 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5414 operands at expand time.
5415 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5416 int" wchar type.
5417 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5418 duplicates. Provide aliases instead.
5419 * config/m32c/prologue.md (eh_return): Emit a barrier here.
5420 (eh_epilogue): Add a "(return)" here as a hint to other parts of
5421 the compiler.
5422
5423 2011-04-19 Anatoly Sokolov <aesok@post.ru>
5424
5425 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5426 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5427 (general_or_i64_p, sparc_register_move_cost): New function.
5428
5429 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5430
5431 * doc/install.texi (Configuration, --enable-threads): Remove mach.
5432 Add lynx, mipssde. Sort table.
5433
5434 2011-04-19 Xinliang David Li <davidxl@google.com>
5435
5436 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5437 not negative.
5438
5439 2011-04-19 Jakub Jelinek <jakub@redhat.com>
5440
5441 PR target/48678
5442 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5443 is a SUBREG with non-MODE_INT mode inside of it.
5444
5445 2011-04-19 Martin Jambor <mjambor@suse.cz>
5446
5447 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5448 also according to actual contants.
5449 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5450 (gimple_fold_call): Use it.
5451 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5452
5453 2011-04-19 Martin Jambor <mjambor@suse.cz>
5454
5455 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5456 non-pointer assignments.
5457
5458 2011-04-19 Martin Jambor <mjambor@suse.cz>
5459
5460 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5461 account anc_offset and otr_type from the indirect edge info.
5462 * ipa-prop.c (get_ancestor_addr_info): New function.
5463 (compute_complex_ancestor_jump_func): Assignment analysis moved to
5464 get_ancestor_addr_info, call it.
5465 (ipa_note_param_call): Do not initialize information about polymorphic
5466 calls, return the indirect call graph edge. Remove the last
5467 parameter, adjust all callers.
5468 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5469 parameters. Initialize polymorphic information in the indirect edge.
5470
5471 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5472
5473 PR lto/48148
5474 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5475 the types if they have different enumeration identifiers.
5476
5477 2011-04-19 Jan Hubicka <jh@suse.cz>
5478
5479 * cgraph.h (cgraph_optimize_for_size_p): Declare.
5480 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5481 * predict.c (cgraph_optimize_for_size_p): Break out from ...
5482 (optimize_function_for_size_p) ... here.
5483
5484 2011-04-19 Richard Guenther <rguenther@suse.de>
5485
5486 PR lto/48207
5487 * tree.c (free_lang_data): Do not reset the decl-assembler-name
5488 langhook.
5489
5490 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5491
5492 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5493 if DECL_NO_INLINE_WARNING_P is set on the function.
5494
5495 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
5496
5497 PR fortran/47976
5498 * reload1.c (inc_for_reload): Return void. All callers changed.
5499 (emit_input_reload_insns): Don't try to delete previous output
5500 reloads to a register, or record spill_reg_store for autoincs.
5501
5502 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
5503
5504 * gengtype.h: Updated copyright year.
5505 (struct input_file_st): Add inpisplugin field.
5506 (type_fileloc): New function.
5507 * gengtype.c
5508 (write_typed_struct_alloc_def): Add gcc_assert.
5509 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5510 (write_typed_alloc_defns): Don't output for plugin files.
5511 (input_file_by_name): Clear inpisplugin field.
5512 (main): Set inpisplugin field for plugin files.
5513
5514 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
5515
5516 * gengtype-state.c (string_eq): New.
5517 (read_state): Use string_eq instead of strcmp when creating the
5518 state_ident_tab.
5519
5520 2011-04-19 Wei Guozhi <carrot@google.com>
5521
5522 PR target/47855
5523 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5524 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5525 linkage.
5526 * config/arm/constraints.md (Uu): New constraint.
5527 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5528
5529 2011-04-19 Tristan Gingold <gingold@adacore.com>
5530
5531 * config.gcc (-*-*-*vms): Added.
5532 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5533 definitions moved.
5534 * config/vms/vms-ld.c: New file.
5535 * config/vms/vms-ar.c: New file.
5536 * config/vms/t-vmsnative: New file.
5537
5538 2011-04-18 Xinliang David Li <davidxl@google.com>
5539
5540 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5541
5542 2011-04-18 Jakub Jelinek <jakub@redhat.com>
5543
5544 PR middle-end/48661
5545 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5546 if TREE_TYPE (v) is non-NULL.
5547
5548 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5549 gimple_get_virt_mehtod_for_binfo.
5550 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5551 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5552 callers.
5553 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5554
5555 2011-04-18 Michael Matz <matz@suse.de>
5556 Steve Ellcey <sje@cup.hp.com>
5557
5558 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5559 use its mode as source mode if it isn't VOIDmode.
5560
5561 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
5562
5563 * doc/passes.texi: Fill crossref nodes.
5564
5565 2011-04-18 Jim Meyering <meyering@redhat.com>
5566
5567 Fix doubled-word typos in comments and strings
5568 * config/alpha/vms-unwind.h: s/for for/for/
5569 * config/arm/unwind-arm.h: Likewise.
5570 * config/microblaze/microblaze.c: Likewise.
5571 * config/sh/constraints.md: s/in in/in/
5572 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5573
5574 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
5575
5576 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5577 (AVX_FLOAT_MODE_P): Ditto.
5578 (AVX128_VEC_FLOAT_MODE_P): Ditto.
5579 (AVX256_VEC_FLOAT_MODE_P): Ditto.
5580 (AVX_VEC_FLOAT_MODE_P): Ditto.
5581 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5582 (UNSPEC_MASKSTORE): Ditto.
5583 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5584 Merge from <sse>_movmsk<ssemodesuffix> and
5585 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
5586 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
5587 iterator.
5588 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5589 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5590 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5591
5592 2011-04-18 Jan Hubicka <jh@suse.cz>
5593
5594 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5595
5596 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5597 (want_inline_function_called_once_p): Break out the logic from
5598 ipa_inline.
5599 (edge_badness): Ensure that profile is not misupdated.
5600 (lookup_recursive_calls): Prioritize by call frequencies.
5601 (inline_small_functions): Move program size estimates here;
5602 actually process whole queue even when unit growth has been
5603 met. (to properly compute inline_failed reasons and for the
5604 case unit size decrease.) Revisit comments on recursive inlining.
5605 (ipa_inline): Remove unit summary code; first inline hot calls
5606 of functions called once, cold calls next.
5607 (order, nnodes): Remove unused variables.
5608 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5609 (GTFILES): Remove ipa-inline.c
5610 * sel-sched.c (fill_insns): Silence uninitialized var warning.
5611
5612 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5613
5614 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5615
5616 2011-04-18 Jie Zhang <jie@codesourcery.com>
5617 Richard Earnshaw <rearnsha@arm.com>
5618
5619 * arm.c (neon_builtin_type_bits): Remove.
5620 (typedef enum neon_builtin_mode): New.
5621 (T_MAX): Don't define.
5622 (typedef enum neon_builtin_datum): Remove bits, codes[],
5623 num_vars and base_fcode. Add mode, code and fcode.
5624 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5625 VAR10): Change accordingly.
5626 (neon_builtin_data[]): Change accordingly
5627 (arm_init_neon_builtins): Change accordingly.
5628 (neon_builtin_compare): Remove.
5629 (locate_neon_builtin_icode): Remove.
5630 (arm_expand_neon_builtin): Change accordingly.
5631
5632 * arm.h (enum arm_builtins): Move to ...
5633 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5634
5635 * arm.c (arm_builtin_decl): Declare.
5636 (TARGET_BUILTIN_DECL): Define.
5637 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5638 (arm_builtin_decls[]): New.
5639 (arm_init_neon_builtins): Store builtin declarations in
5640 arm_builtin_decls[].
5641 (arm_init_tls_builtins): Likewise.
5642 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
5643 (arm_builtin_decl): New.
5644
5645 2011-04-18 Richard Guenther <rguenther@suse.de>
5646
5647 * tree.c (upper_bound_in_type): Build properly canonicalized
5648 INTEGER_CSTs.
5649 (lower_bound_in_type): Likewise.
5650
5651 2011-04-18 Richard Guenther <rguenther@suse.de>
5652
5653 * gimple.h (gimple_call_addr_fndecl): New function.
5654 (gimple_call_fndecl): Use it.
5655 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5656 for direct calls.
5657 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5658 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5659
5660 2011-04-18 Richard Guenther <rguenther@suse.de>
5661
5662 PR middle-end/48650
5663 * tree.c (build_string): STRING_CST is now derived from tree_typed.
5664
5665 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5666
5667 PR lto/48492
5668 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5669 DECL_IN_CONSTANT_POOL without RTL.
5670
5671 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
5672 Ira Rosen <ira.rosen@linaro.org>
5673
5674 PR target/48252
5675 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5676 to match neon_vzip/vuzp/vtrn_internal.
5677 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5678 outputs explicitly dependent on both inputs.
5679 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5680
5681 2011-04-18 Jakub Jelinek <jakub@redhat.com>
5682
5683 PR tree-optimization/48616
5684 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5685 whether the shift is by scalar or vector based on whether all SLP
5686 scalar stmts have the same rhs.
5687
5688 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
5689
5690 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5691 memory operands.
5692
5693 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
5694
5695 PR target/43700
5696 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5697 registers.
5698
5699 2011-04-17 Jan Hubicka <jh@suse.cz>
5700
5701 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5702 * cgrpahunit.c (cgraph_finalize_function): Do not set
5703 finalized_by_frontend.
5704 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5705 finalized_by_frontend.
5706
5707 2011-04-17 Jan Hubicka <jh@suse.cz>
5708
5709 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5710 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5711 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5712 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5713 method.
5714 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5715 gimple-fold.c
5716 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5717
5718 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
5719
5720 PR lto/48538
5721 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5722 is non-null before accessing it.
5723 (input_cgraph): Remove trailing spaces.
5724
5725 2011-04-17 Revital Eres <revital.eres@linaro.org>
5726
5727 * params.def (sms-min-sc): New param flag.
5728 * modulo-sched.c (sms_schedule): Use it.
5729 * doc/invoke.texi (sms-min-sc): Document it.
5730
5731 2011-04-17 Jan Hubicka <jh@suse.cz>
5732
5733 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5734 present, also set gimple_call_set_cannot_inline.
5735 * ipa-inline.c: Update toplevel comment.
5736 (MAX_TIME): Remove.
5737 (cgraph_clone_inlined_nodes): Fix linebreaks.
5738 (cgraph_check_inline_limits): Restructure to ...
5739 (caller_growth_limits): ... this one; be more tolerant
5740 on growth in nested inline chains; add explanatory comment;
5741 fix stack accounting thinko introduced by previous patch.
5742 (cgraph_default_inline_p): Remove.
5743 (report_inline_failed_reason): New function.
5744 (can_inline_edge_p): New function.
5745 (can_early_inline_edge_p): New function.
5746 (leaf_node_p): Move upwards in file.
5747 (want_early_inline_function_p): New function.
5748 (want_inline_small_function_p): New function.
5749 (want_inline_self_recursive_call_p): New function.
5750 (cgraph_edge_badness): Rename to ...
5751 (edge_badness) ... this one; fix linebreaks.
5752 (update_edge_key): Update call of edge_baddness; add
5753 detailed dump about queue updates.
5754 (update_caller_keys): Use can_inline_edge_p and
5755 want_inline_small_function_p.
5756 (cgraph_decide_recursive_inlining): Rename to...
5757 (recursive_inlining): Use can_inline_edge_p and
5758 want_inline_self_recursive_call_p; simplify and remove no longer
5759 valid FIXME.
5760 (cgraph_set_inline_failed): Remove.
5761 (add_new_edges_to_heap): Use can_inline_edge_p and
5762 want_inline_small_function_p.
5763 (cgraph_decide_inlining_of_small_functions): Rename to ...
5764 (inline_small_functions): ... this one; cleanup; use
5765 can/want predicates; cleanup debug ouput; work edges till fibheap
5766 is exhausted and do not stop once unit growth is reached; remove
5767 later loop processing remaining edges.
5768 (cgraph_flatten): Rename to ...
5769 (flatten_function): ... this one; use can_inline_edge_p
5770 and can_early_inline_edge_p predicates.
5771 (cgraph_decide_inlining): Rename to ...
5772 (ipa_inline): ... this one; remove unreachable nodes before
5773 inlining functions called once; simplify the pass.
5774 (cgraph_perform_always_inlining): Rename to ...
5775 (inline_always_inline_functions): ... this one; use
5776 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5777 (cgraph_decide_inlining_incrementally): Rename to ...
5778 (early_inline_small_functions): ... this one; simplify
5779 using new predicates; cleanup; make dumps prettier.
5780 (cgraph_early_inlining): Rename to ...
5781 (early_inliner): newer inline regular functions into always-inlines;
5782 fix updating of call stmt summaries.
5783 (pass_early_inline): Update for new names.
5784 (inline_transform): Fix formating.
5785 (gate_cgraph_decide_inlining): Rename to ...
5786 (pass_ipa_inline): ... this one.
5787 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5788 * ipa-inline-analysis.c (dump_inline_summary): Update.
5789 (compute_inline_parameters): Do not compute disregard_inline_limits;
5790 look for mismatching arguments.
5791 (estimate_growth): Fix handlig of non-trivial self recursion.
5792 (inline_read_summary): Do not read info->disregard_inline_limits.
5793 (inline_write_summary): Do not write info->disregard_inline_limits.
5794 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5795 and move all checks into can_inline_edge_p predicate; re-enable code
5796 comparing optimization levels.
5797 (expand_call_inline): Do not test inline_forbidden_into_p.
5798 * Makefile.in (ipa-inline.o): Update arguments.
5799
5800 2011-04-17 Revital Eres <revital.eres@linaro.org>
5801
5802 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5803
5804 2011-04-17 Revital Eres <revital.eres@linaro.org>
5805
5806 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5807
5808 2011-04-17 Michael Matz <matz@suse.de>
5809
5810 PR tree-optimization/48622
5811 PR lto/48645
5812 * ipa-inline-analysis.c (inline_read_summary): Read size/time
5813 in same order as they're written.
5814
5815 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5816
5817 * config/pa/predicates.md: Reorganize and simplify predicates.
5818 Eliminate duplicate code checks.
5819 (arith_operand): Rename to arith14_operand
5820 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5821 * config/pa/pa.md: Use renamed operands.
5822 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5823 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5824 arith11_operand, adddi3_operand, indexed_memory_operand,
5825 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5826 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5827 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5828 move_dest_operand, move_src_operand, prefetch_cc_operand,
5829 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5830 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5831 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5832 div_operand, int5_operand, movb_comparison_operator,
5833 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5834 arith_double_operand, ireg_operand, lhs_lshift_operand,
5835 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5836 integer_store_memory_operand): Likewise.
5837 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5838 (integer_store_memory_operand, read_only_operand,
5839 function_label_operand, borx_reg_operand,
5840 non_hard_reg_operand): Likewise.
5841 (eq_neq_comparison_operator): Delete unused operator.
5842 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5843 function_label_operand.
5844 (emit_move_sequence): Likewise.
5845
5846 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
5847
5848 * config/i386/sse.md (sseunpackmode): New mode attribute.
5849 (ssepackmode): Ditto.
5850 (vec_pack_trunc_<mode>): Macroize expander from
5851 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5852 (vec_unpacks_lo_<mode>): Macroize expander from
5853 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5854 (vec_unpacks_hi_<mode>): Macroize expander from
5855 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5856 (vec_unpacku_lo_<mode>): Macroize expander from
5857 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5858 (vec_unpacku_hi_<mode>): Macroize expander from
5859 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5860 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5861 ix86_expand_sse4_unpack.
5862 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5863
5864 2011-04-16 Jan Hubicka <jh@suse.cz>
5865
5866 * cgraphbuild.c: Include ipa-inline.h.
5867 (reset_inline_failed): Use initialize_inline_failed.
5868 * cgraph.c: Include ipa-inline.h.
5869 (cgraph_create_node_1): Do not initialize estimated_growth.
5870 (initialize_inline_failed): More to ipa-inline-analysis.c
5871 (dump_cgraph_node): Do not dump inline flags.
5872 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5873 and disregard_inline_limits flags.
5874 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5875 time, size, estimated_growth.
5876 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5877 Update.
5878 * cgraphunit.c (cgraph_decide_is_function_needed): Use
5879 DECL_DISREGARD_INLINE_LIMITS.
5880 (cgraph_analyze_function): Do not initialize
5881 node->local.disregard_inline_limits.
5882 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5883 inlinable, versionable and disregard_inline_limits.
5884 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5885 cgraph_check_inline_limits, cgraph_default_inline_p,
5886 cgraph_edge_badness, update_caller_keys, update_callee_keys,
5887 add_new_edges_to_heap): Update.
5888 (cgraph_decide_inlining_of_small_function): Update; set
5889 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5890 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5891 cgraph_decide_inlining_incrementally): Update.
5892 * ipa-inline.h (inline_summary): Add inlinable, versionable,
5893 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5894 time, size and estimated_growth parameters.
5895 (estimate_edge_growth): Update.
5896 (initialize_inline_failed): Declare.
5897 * ipa-split.c: Include ipa-inline.h
5898 (execute_split_functions): Update.
5899 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5900 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5901 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5902 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5903 estimated_growth to INT_MIN.
5904 (inline_node_duplication_hook): Likewise.
5905 (dump_inline_summary): Dump new fields.
5906 (compute_inline_parameters): Update.
5907 (estimate_edge_time, estimate_time_after_inlining,
5908 estimate_size_after_inlining, estimate_growth, inline_read_summary,
5909 inline_write_summary):
5910 (initialize_inline_failed): Move here from cgraph.c.
5911 * tree-sra.c: Include ipa-inline.h.
5912 (ipa_sra_preliminary_function_checks): Update.
5913 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5914 ipa-inline.h.
5915
5916 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
5917
5918 * config/i386/sse.md (V16): New mode iterator.
5919 (VI1, VI8): Ditto.
5920 (AVXMODEQI, AVXMODEDI): Remove.
5921 (sse2, sse3): New mode attribute.
5922 (mov<mode>): Use V16 mode iterator.
5923 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5924 (push<mode>1): Use V16 mode iterator.
5925 (movmisalign<mode>): Ditto.
5926 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5927 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5928 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5929 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5930 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5931 avx_movdqu<avxmodesuffix>.
5932 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5933 *avx_movdqu<avxmodesuffix>.
5934 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5935 avx_lddqu<avxmodesuffix>.
5936 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5937 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5938 avx_movnt<AVXMODEDI:mode>.
5939 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5940 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5941
5942 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
5943
5944 PR target/48629
5945 * haifa-sched.c (prune_ready_list, schedule_block): Use
5946 sched_pressure_p rather than flag_sched_pressure.
5947
5948 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
5949
5950 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5951 cgraph_get_node instead of cgraph_get_create_node.
5952
5953 2011-04-15 Jakub Jelinek <jakub@redhat.com>
5954
5955 * cfgexpand.c (expand_debug_expr): Use
5956 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5957
5958 2011-04-15 Michael Matz <matz@suse.de>
5959
5960 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5961 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5962 * function.c (gimplify_parameters): Ditto.
5963 * gimplify.c (gimplify_vla_decl): Ditto.
5964
5965 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5966 (gimple_call_set_alloca_for_var): New inline function.
5967 (gimple_call_alloca_for_var_p): Ditto.
5968 * gimple.c (gimple_build_call_from_tree): Remember
5969 CALL_ALLOCA_FOR_VAR_P state.
5970 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5971
5972 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5973 calls if they were for VLA objects.
5974
5975 2011-04-15 Martin Jambor <mjambor@suse.cz>
5976
5977 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5978 of ADR_EXPRs.
5979
5980 2011-04-15 Martin Jambor <mjambor@suse.cz>
5981
5982 PR middle-end/48601
5983 * tree-emutls.c (lower_emutls_function_body): Call
5984 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
5985 result is non-NULL.
5986
5987 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
5988
5989 * c-decl.c (detect_field_duplicates): Call
5990 objc_detect_field_duplicates instead of objc_get_interface_ivars.
5991
5992 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
5993
5994 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5995 * gimple.c (gimple_asm_clobbers_memory_p): Define.
5996 * ipa-pure-const.c (check_stmt): Call it.
5997 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5998
5999 2011-04-15 Richard Guenther <rguenther@suse.de>
6000
6001 PR tree-optimization/48290
6002 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
6003 Properly decide inhibiting propagation based on the valueized
6004 operand. Do loop-closed SSA form preserving here ...
6005 (init_copy_prop): ... not here.
6006
6007 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
6008
6009 PR target/48612
6010 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
6011 (*ieee_smax<mode>3): Likewise.
6012
6013 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6014
6015 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
6016 Replace match_operand with match_dup for the third operand in
6017 these expanders.
6018
6019 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6020
6021 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
6022 to track processing of conditionals. Update all callers.
6023 (try_combine, simplify_if_then_else): Update.
6024
6025 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6026
6027 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
6028 -fsched-pressure.
6029
6030 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
6031
6032 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
6033 instead of match_operand for operand 3.
6034
6035 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
6036
6037 * recog.h (insn_operand_data): Add an "allows_mem" field.
6038 * genoutput.c (output_operand_data): Initialize it.
6039 * optabs.c (maybe_legitimize_operand_same_code): New function.
6040 (maybe_legitimize_operand): Use it when matching the original
6041 op->value.
6042
6043 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6044
6045 * gimplify.c: Fix issues in comments throughout.
6046 (voidify_wrapper_expr): Fix long line.
6047 (build_stack_save_restore): Likewise.
6048 (gimplify_loop_expr): Likewise.
6049 (gimplify_compound_lval): Likewise.
6050 (gimplify_init_ctor_eval): Likewise.
6051 (gimplify_modify_expr_rhs): Likewise.
6052 (omp_notice_threadprivate_variable): Likewise.
6053
6054 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
6055
6056 * cfgexpand.c (expand_call_stmt): Convert the function type to the
6057 original one if this is not a builtin function.
6058
6059 2011-04-14 Jakub Jelinek <jakub@redhat.com>
6060
6061 PR target/48605
6062 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
6063 offset it as needed based on top 2 bits in operands[3], change
6064 MEM mode to SFmode and mask those 2 bits away from operands[3].
6065
6066 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6067
6068 * c-parser.c (c_parser_objc_protocol_definition): Updated for
6069 change from objc_declare_protocols() to objc_declare_protocol().
6070
6071 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
6072
6073 * config/i386/sse.md (sse4_1): New mode attribute.
6074 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
6075 avx_blend<ssemodesuffix><avxmodesuffix> and
6076 sse4_1_blend<ssemodesuffix> using VF mode iterator.
6077 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
6078 avx_blendv<ssemodesuffix><avxmodesuffix> and
6079 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
6080 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
6081 avx_dp<ssemodesuffix><avxmodesuffix> and
6082 sse4_1_dp<ssemodesuffix> using VF mode iterator.
6083 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
6084 (sse4_1_packusdw): Merge with *avx_packusdw.
6085 (sse4_1_pblendvb): Merge with *avx_pblendvb.
6086 (sse4_1_pblendw): Merge with *avx_pblendw.
6087 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
6088 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
6089 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
6090 VF mode iterator.
6091 (sse4_1_round<ssescalarmodesuffix>): Merge with
6092 *avx_round<ssescalarmodesuffix>.
6093 (aesenc): Merge with *avx_aesenc.
6094 (aesenclast): Merge with *avx_aesenclast.
6095 (aesdec): Merge with *avx_aesdec.
6096 (aesdeclast): Merge with *avx_aesdeclast.
6097 (pclmulqdq): Merge with *pclmulqdq.
6098 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
6099 New predicate.
6100 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
6101
6102 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
6103
6104 PR middle-end/48608
6105 * cfgexpand.c (get_decl_align_unit): Renamed to ...
6106 (align_local_variable): This. Update DECL_ALIGN.
6107 (add_stack_var): Updated.
6108 (expand_one_stack_var): Likewise.
6109
6110 2011-04-14 Richard Guenther <rguenther@suse.de>
6111
6112 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
6113 Remove.
6114 (dse_initialize_block_local_data, dse_leave_block,
6115 record_voperand_set, get_stmt_uid): Likewise.
6116 (dse_possible_dead_store_p): Allow any kind of killing stmt.
6117 (dse_optimize_stmt): Remove voperand set handling code.
6118 Simplify and improve to handle any kind of killing stmt.
6119 (dse_record_phi): Remove.
6120 (dse_enter_block): Simplify.
6121 (tree_ssa_dse): Likewise.
6122 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
6123
6124 2011-04-14 Jan Hubicka <jh@suse.cz>
6125
6126 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
6127 * cgraph.h (struct inline_summary): Move to ipa-inline.h
6128 (cgraph_local_info): Remove inline_summary.
6129 * ipa-cp.c: Include ipa-inline.h.
6130 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
6131 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
6132 accesor.
6133 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
6134 (input_overwrite_node): Do not set inline summary.
6135 (input_node): Do not stream inline summary.
6136 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
6137 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
6138 growth; we do not have inline parameters computed for that anyway.
6139 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
6140 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
6141 (inline_summary_t): New type and VECtor.
6142 (debug_inline_summary, dump_inline_summaries): Declare.
6143 (inline_summary): Use VOCtor.
6144 (estimate_edge_growth): Kill hack computing call stmt size directly.
6145 * lto-section-in.c (lto_section_name): Add inline section.
6146 * ipa-inline-analysis.c: Include lto-streamer.h
6147 (node_removal_hook_holder, node_duplication_hook_holder): New holders
6148 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
6149 (inline_summary_vec): Define.
6150 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
6151 dump_inline_summaries): New functions.
6152 (estimate_function_body_sizes): Properly compute size/time of outgoing
6153 calls.
6154 (compute_inline_parameters): Alloc inline_summary; do not compute
6155 size/time of incomming calls.
6156 (estimate_edge_time): Avoid missing time summary hack.
6157 (inline_read_summary): Read inline summary info.
6158 (inline_write_summary): Write inline summary info.
6159 (inline_free_summary): Free all hooks and inline summary vector.
6160 * lto-streamer.h: Add LTO_section_inline_summary section.
6161 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
6162 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
6163
6164 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6165
6166 * tree-vectorizer.h (vect_strided_store_supported): Add a
6167 HOST_WIDE_INT argument.
6168 (vect_strided_load_supported): Likewise.
6169 (vect_permute_store_chain): Return void.
6170 (vect_transform_strided_load): Likewise.
6171 (vect_permute_load_chain): Delete.
6172 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
6173 count argument. Check that the count is a power of two.
6174 (vect_strided_load_supported): Likewise.
6175 (vect_permute_store_chain): Return void. Update after above changes.
6176 Assert that the access is supported.
6177 (vect_permute_load_chain): Likewise.
6178 (vect_transform_strided_load): Return void.
6179 * tree-vect-stmts.c (vectorizable_store): Update calls after
6180 above interface changes.
6181 (vectorizable_load): Likewise.
6182 (vect_analyze_stmt): Don't check for strided powers of two here.
6183
6184 2011-04-14 Richard Guenther <rguenther@suse.de>
6185
6186 PR tree-optimization/48590
6187 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6188 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6189 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6190 BUILT_IN_STACK_SAVE.
6191 * tree-ssa-dce.c (propagate_necessity): Handle
6192 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6193
6194 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6195
6196 * c-parser.c (c_parser_objc_class_declaration): Updated call to
6197 objc_declare_class.
6198
6199 2011-04-14 Richard Guenther <rguenther@suse.de>
6200
6201 * tree.h (get_object_alignment_1): Declare.
6202 * builtins.c (get_object_alignment_1): Split out worker from ...
6203 (get_object_alignment): ... here.
6204 * fold-const.c (get_pointer_modulus_and_residue): Use
6205 get_object_alignment_1.
6206
6207 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6208
6209 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6210 type parameter.
6211 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6212 parameter. Generalise code to handle arrays as well as vectors.
6213 (vect_setup_realignment): Update accordingly.
6214 * tree-vect-stmts.c (vectorizable_store): Likewise.
6215 (vectorizable_load): Likewise.
6216
6217 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6218
6219 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6220 within the per-copy loop.
6221
6222 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6223
6224 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6225 in the dump file.
6226
6227 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6228
6229 * doc/options.texi (Negative): Explicitly mention that the
6230 Negative chain must be circular.
6231
6232 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6233
6234 * function.h (block_chainon): Declare.
6235 * function.c (block_chainon): Define.
6236
6237 2011-04-14 Anatoly Sokolov <aesok@post.ru>
6238 Eric Weddington <eric.weddington@atmel.com>
6239 Georg-Johann Lay <avr@gjlay.de>
6240
6241 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6242 New Includes
6243 (avr_init_builtins, avr_expand_builtin,
6244 avr_expand_delay_cycles, avr_expand_unop_builtin,
6245 avr_expand_binop_builtin ): New functions.
6246 (avr_builtin_id): New enum
6247 (struct avr_builtin_description): New struct
6248 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6249 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6250
6251 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6252 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6253 UNSPECV_DELAY_CYCLES): new enumeration values
6254 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6255 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6256 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6257 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6258 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6259 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6260 "fmulsu"): New insns
6261
6262 * config/avr/avr-c.c: fix line endings
6263 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6264 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6265 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6266 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6267 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6268
6269 * doc/extend.texi (AVR Built-in Functions): New node
6270 (Target Builtins): Add documentation of AVR
6271 built-in functions.
6272
6273 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
6274
6275 PR target/44643
6276 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6277 alone. Error if non-const data has attribute progmem.
6278
6279 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6280
6281 * tree.h (struct tree_constructor): Include tree_typed instead of
6282 tree_common.
6283 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6284 TS_TYPED instead of TS_COMMON.
6285
6286 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6287
6288 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6289 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6290 (sse2_psadbw): Merge with *avx_psadbw.
6291 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6292 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6293 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6294 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6295 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6296 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6297 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6298 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6299 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6300 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6301 (ssse3_palignrti): Merge with *avx_palignrti.
6302
6303 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6304
6305 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6306 * tree-ssanames.c (fini_ssanames): VEC_free it.
6307 (make_ssa_name_fn): Update for VECness of free_ssanames.
6308 (release_ssa_name, release_dead_ssa_names): Likewise.
6309 * tree.h (struct tree_ssa_name): Include tree_typed instead of
6310 tree_common.
6311 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6312 TS_TYPED instead of TS_COMMON.
6313
6314 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6315
6316 * postreload-gcse.c (gcse_after_reload_main): Add calls to
6317 statistics_counter_event.
6318 * tree-ssa-copyrename.c (stats): Define.
6319 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
6320 statistics_counter_event.
6321 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6322 (bswap_stats, widen_mul_stats): Define.
6323 (insert_reciprocals): Increment rdivs_inserted.
6324 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
6325 rfuncs_inserted. Add calls to statistics_counter_event.
6326 (execute_cse_sincos_1): Increment inserted.
6327 (execute_cse_sincos): Zeroize sincos_stats. Add call to
6328 statistics_counter_event.
6329 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
6330 of bswap_stats. Add calls to statistics_counter_event.
6331 (convert_mult_to_widen): Increment widen_mults_inserted.
6332 (convert_plusminus_to_widen): Increment maccs_inserted.
6333 (convert_mult_to_fma): Increment fmas_inserted.
6334 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
6335 calls to statistics_counter_event.
6336
6337 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
6338
6339 PR rtl-optimization/48455
6340 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6341 `temp_costs->mem_cost'.
6342
6343 2011-04-13 Jan Hubicka <jh@suse.cz>
6344
6345 * ipa-inline.h: New file.
6346 * ipa-inline-analysis.c: New file. Broken out of ...
6347 * ipa-inline.c: ... this file; update toplevel comment;
6348 include ipa-inline.h
6349 (inline_summary): Move to ipa-inline.h
6350 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6351 ipa-inline-analysis.c.
6352 (cgraph_estimate_time_after_inlining): Rename to
6353 estiamte_time_after_inlining; move to ipa-inline-analysis.c
6354 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6355 to estimate_edge_growth.
6356 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6357 rename to estimate_size_after_inlining.
6358 (cgraph_mark_inline_edge): Update for new naming convention.
6359 (cgraph_check_inline_limits): Likewise.
6360 (cgraph_edge_badness): Likewise.
6361 (cgraph_decide_recursive_inlining): Likewise.
6362 (cgraph_decide_inlining_of_small_functions): Likewise.
6363 (cgraph_decide_inlining_incrementally): Likewise.
6364 (cgraph_estimate_growth): Rename to estimate_growth; move to
6365 ipa-inline-analysis.c.
6366 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6367 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6368 (compute_inline_parameters): Likewise.
6369 (compute_inline_parameters_for_current): Likewise.
6370 (pass_inline_parameters): Likewise.
6371 (inline_indirect_intraprocedural_analysis): Likewise.
6372 (analyze_function): Rename to inline_analyze_function; likewise.
6373 (add_new_function): Move to ipa-inline-analysis.c.
6374 (inline_generate_summary): Likewise.
6375 (inline_read_summary): Likewise.
6376 (inline_write_summary): Likewise.
6377 * Makefile.in (ipa-inline-analysis.c): New file.
6378
6379 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6380
6381 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6382 * configure: Regenerate.
6383
6384 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6385
6386 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6387 instead of tree_common.
6388 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6389 Likewise.
6390 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6391 TS_TYPED rather than TS_COMMON.
6392 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6393
6394 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
6395
6396 PR target/45263
6397 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6398 r20 around calls of __tablejump_elpm__
6399
6400 2011-04-13 Jakub Jelinek <jakub@redhat.com>
6401
6402 PR middle-end/48591
6403 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6404 NULL.
6405 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6406
6407 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
6408
6409 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6410 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6411 (cfi_vec): New typedef.
6412 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6413 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6414 (cie_cfi_vec): New static variable.
6415 (cie_cfi_head): Delete.
6416 (add_cfi): Accept a cfi_vec * as first argument. All callers and
6417 declaration changed. Use vector rather than list operations.
6418 (new_cfi): Don't initialize the dw_cfi_next field.
6419 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6420 rather than list operations.
6421 (lookup_cfa): Use vector rather than list operations.
6422 (output_cfis): New argument upto. Accept a cfi_vec rather than
6423 a dw_cfi_ref list head as argument. All callers changed.
6424 Iterate over the vector using upto as a maximum index.
6425 (output_all_cfis): New static function.
6426 (output_fde): Use vector rather than list operations. Use the
6427 new upto argument for output_cfis rather than manipulating a
6428 list.
6429 (dwarf2out_begin_prologue): Change initializations to match
6430 new struct members.
6431 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6432 from the vector length rather than searching for the end of a list.
6433 Use output_all_cfis.
6434 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6435
6436 2011-04-13 Nick Clifton <nickc@redhat.com>
6437
6438 * config/rx/rx.md (movmemsi): Do not use this pattern when
6439 volatile pointers are involved.
6440
6441 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
6442
6443 * config/i386/sse.md (pinsrbits): Remove.
6444 (sse2_packsswb): Merge with *avx_packsswb.
6445 (sse2_packssdw): Merge with *avx_packssdw.
6446 (sse2_packuswb): Merge with *avx_packuswb.
6447 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6448 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6449 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6450 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6451 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6452 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6453 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6454 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6455 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6456 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6457 (sse2_loadld): Merge with *avx_loadld.
6458 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6459 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6460 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6461 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6462 (vec_concatv2di): Merge with *vec_concatv2di_avx.
6463
6464 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6465
6466 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6467 calling TREE_CHAIN.
6468 * print-tree.c (print_node): Likewise.
6469 * tree-inline.c (copy_tree_r): Likewise.
6470 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6471 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6472 instead of TS_COMMON.
6473 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6474 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6475 (copy_node_stat): Zero TREE_CHAIN only if necessary.
6476 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6477 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6478 ...and these...
6479 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6480 * tree.h: ...here.
6481 (TREE_CHAIN): Check for a TS_COMMON structure.
6482 (TREE_TYPE): Check for a TS_TYPED structure.
6483
6484 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
6485
6486 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6487 cgraph_get_create_node instead of cgraph_node.
6488
6489 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6490
6491 * c-parser.c (c_parser_initelt): Updated call to
6492 objc_build_message_expr.
6493 (c_parser_postfix_expression): Likewise.
6494
6495 2011-04-12 Kai Tietz <ktietz@redhat.com>
6496
6497 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6498 MASK_MS_BITFIELD_LAYOUT bit.
6499
6500 2011-04-12 Jakub Jelinek <jakub@redhat.com>
6501
6502 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6503 assert it is always true.
6504 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6505 moves.
6506
6507 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6508
6509 * c-parser.c (c_lex_one_token): Rewritten conditional used when
6510 compiling Objective-C to be more efficient.
6511
6512 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
6513
6514 * opts-common.c (decode_cmdline_options_to_array): Remove variable
6515 argv_copied.
6516
6517 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6518
6519 * recog.h, genoutput.c, optabs.c: Revert last patch.
6520
6521 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6522
6523 PR target/48090
6524 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6525
6526 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6527
6528 * recog.h (insn_operand_data): Add an "allows_mem" field.
6529 * genoutput.c (output_operand_data): Initialize it.
6530 * optabs.c (maybe_legitimize_operand_same_code): New function.
6531 (maybe_legitimize_operand): Use it when matching the original
6532 op->value.
6533
6534 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6535
6536 * genpreds.c (process_define_predicate): Move most processing
6537 to gensupport.c. Continue to validate the expression.
6538 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6539 (process_define_predicate): Move processing to gensupport.c.
6540 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6541 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6542 (compute_predicate_codes): Moved from genrecog.c. Add lineno
6543 argument.
6544 (valid_predicate_name_p): New function, split out from old
6545 genpreds.c:process_define_predicate.
6546 (process_define_predicate): New function, combining code from
6547 old genpreds.c and genrecog.c functions.
6548 (process_rtx): Call it for DEFINE_PREDICATE and
6549 DEFINE_SPECIAL_PREDICATE.
6550
6551 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6552
6553 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6554 size of a '%A' memory reference.
6555 (T_DREG, T_QREG): New neon_builtin_type_bits.
6556 (arm_init_neon_builtins): Assert that the load and store operands
6557 are neon_struct_operands.
6558 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6559 (NEON_ARG_MEMORY): New builtin_arg.
6560 (neon_dereference_pointer): New function.
6561 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6562 Handle NEON_ARG_MEMORY.
6563 (arm_expand_neon_builtin): Update after above interface changes.
6564 Use NEON_ARG_MEMORY for loads and stores.
6565 * config/arm/predicates.md (neon_struct_operand): New predicate.
6566 * config/arm/iterators.md (V_two_elem): Tweak formatting.
6567 (V_three_elem): Use BLKmode for accesses that have no associated mode.
6568 (V_four_elem): Tweak formatting.
6569 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6570 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6571 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6572 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6573 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6574 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6575 (neon_vst4<mode>): Replace pointer operand with a memory operand.
6576 Use %A in the output template.
6577 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6578 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6579 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6580 the width of the memory access. Remove post-increment.
6581 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6582
6583 2011-04-12 Nick Clifton <nickc@redhat.com>
6584
6585 * config/v850/v850.c (expand_prologue): Do not use the CALLT
6586 instruction for interrupt handlers if the target is the basic V850
6587 architecture.
6588 (expand_epilogue): Likewise.
6589
6590 2011-04-12 Jakub Jelinek <jakub@redhat.com>
6591
6592 PR rtl-optimization/48549
6593 * combine.c (propagate_for_debug): Also stop after BB_END of
6594 this_basic_block. Process LAST and just stop processing after it.
6595 (combine_instructions): If last_combined_insn has been deleted,
6596 set last_combined_insn to its PREV_INSN.
6597
6598 2011-04-12 Richard Guenther <rguenther@suse.de>
6599
6600 PR tree-optimization/46076
6601 * gimple.h (struct gimple_statement_call): Add fntype field.
6602 (gimple_call_fntype): Adjust.
6603 (gimple_call_set_fntype): New function.
6604 * gimple.c (gimple_build_call_1): Set the call function type.
6605 * gimplify.c (gimplify_call_expr): Preserve the function
6606 type the frontend used for the call.
6607 (gimplify_modify_expr): Likewise.
6608 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6609 function type.
6610 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6611 function type.
6612 * tree-ssa.c (useless_type_conversion_p): Function pointer
6613 conversions are useless.
6614
6615 2011-04-12 Martin Jambor <mjambor@suse.cz>
6616
6617 * cgraph.h (cgraph_node): Remove function declaration.
6618 (cgraph_create_node): Declare.
6619 (cgraph_get_create_node): Likewise.
6620 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6621 Updated all callers.
6622 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6623 the decl does not already exist. Call cgraph_get_create_node instead
6624 of cgraph_node.
6625 (cgraph_get_create_node): New function.
6626 (cgraph_same_body_alias): Update comment.
6627 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6628 assert it does not return NULL.
6629 (cgraph_update_edges_for_call_stmt): Likewise.
6630 (cgraph_clone_edge): Likewise.
6631 (cgraph_create_virtual_clone): Likewise.
6632 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6633 instead of cgraph_node.
6634 (cgraph_add_new_function): Call cgraph_create_node or
6635 cgraph_get_create_node instead of cgraph_node.
6636 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6637 instead of cgraph_node.
6638 (record_eh_tables): Likewise.
6639 (mark_address): Likewise.
6640 (mark_load): Likewise.
6641 (build_cgraph_edges): Call cgraph_get_create_node instead
6642 of cgraph_node.
6643 (rebuild_cgraph_edges): Likewise.
6644 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6645 instead of cgraph_node.
6646 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6647 cgraph_node.
6648 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6649 cgraph_create_node instead of cgraph_node.
6650 * c-decl.c (finish_function): Call cgraph_get_create_node instead
6651 of cgraph_node.
6652 * lto-cgraph.c (input_node): Likewise.
6653 * lto-streamer-in.c (input_function): Likewise.
6654 * varasm.c (mark_decl_referenced): Likewise.
6655 (assemble_alias): Likewise.
6656
6657 2011-04-12 Martin Jambor <mjambor@suse.cz>
6658
6659 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6660 instead of cgraph_node and assert it does not return NULL.
6661 * lto-streamer-in.c (lto_read_body): Likewise.
6662 * omp-low.c (new_omp_context): Likewise.
6663 (create_task_copyfn): Likewise.
6664 * tree-emutls.c (lower_emutls_function_body): Likewise.
6665 * matrix-reorg.c (transform_allocation_sites): Likewise.
6666
6667 2011-04-12 Jakub Jelinek <jakub@redhat.com>
6668
6669 PR c/48552
6670 * c-typeck.c (build_asm_expr): Error out on attempts to use
6671 void type outputs or inputs for constraints that allow reg or
6672 don't allow memory.
6673
6674 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
6675 Richard Earnshaw <rearnsha@arm.com>
6676
6677 PR target/48250
6678 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6679 to use sign-magnitude offsets. Reject unsupported unaligned
6680 cases. Add detailed description in comments.
6681 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6682 condition from TARGET_32BIT to TARGET_ARM.
6683
6684 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
6685
6686 * tree.h (struct typed_tree): New.
6687 (struct tree_common): Include it instead of tree_base.
6688 (TREE_TYPE): Update for new location of type field.
6689 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6690 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6691 (union tree_node): Add typed field.
6692 * treestruct.def (TS_TYPED): New.
6693 * lto-streamer.c (check_handled_ts_structures): Handle it.
6694 * tree.c (MARK_TS_TYPED): New macro.
6695 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6696
6697 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
6698
6699 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6700 (force_nonfallthru): Do not alter the loop nest if no basic block
6701 was created.
6702
6703 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
6704
6705 * config/i386/sse.md (VI): New mode iterator.
6706 (SSEMODEI): Remove.
6707 (AVX256MODEI): Ditto.
6708 (AVXMODEF4P): Ditto.
6709 (avxvecpsmode): Ditto.
6710 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
6711 (sse2_andnot<mode>3): New expander.
6712 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6713 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
6714 (<any_logic:code><mode>3): Use VI mode iterator.
6715 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6716 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
6717 (*andnottf3): Handle AVX three-operand constraints.
6718 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6719
6720 2011-04-11 Joseph Myers <joseph@codesourcery.com>
6721 Robert Millan <rmh@gnu.org>
6722
6723 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6724 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6725 GNU_USER_DYNAMIC_LINKER64): Define.
6726 (REG_NAME): Don't undefine.
6727 (MD_UNWIND_SUPPORT): Undefine.
6728 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6729 (REG_NAME): Don't undefine.
6730 (MD_UNWIND_SUPPORT): Undefine.
6731 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6732
6733 2011-04-11 Joseph Myers <joseph@codesourcery.com>
6734
6735 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6736 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6737
6738 2011-04-11 Xinliang David Li <davidxl@google.com>
6739
6740 * value-profile.c (check_ic_target): New function.
6741 (gimple_ic_transform): Sanity check indirect call target.
6742 * gimple-low.c (gimple_check_call_args): Interface change.
6743 (gimple_check_call_matching_types): New function.
6744 * tree-inline.c (tree_can_inline_p): Call new function.
6745
6746 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
6747
6748 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6749 tree-pretty-print.h & realmpfr.h.
6750
6751 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
6752
6753 PR middle-end/48464
6754 * ira.c (setup_pressure_classes): Fix typo in loop condition.
6755 (setup_allocno_and_important_classes): Ditto.
6756
6757 2011-04-11 Joseph Myers <joseph@codesourcery.com>
6758
6759 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6760 GNU_USER_DYNAMIC_LINKER.
6761 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6762 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6763 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6764 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6765 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6766 GNU_USER_TARGET_OS_CPP_BUILTINS.
6767 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6768 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6769 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6770 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6771 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6772 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6773 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6774 GNU_USER_TARGET_OS_CPP_BUILTINS.
6775 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6776 GNU_USER_DYNAMIC_LINKER.
6777 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6778 GNU_USER_TARGET_OS_CPP_BUILTINS.
6779 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6780 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6781 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6782 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6783 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6784 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6785 GNU_USER_DYNAMIC_LINKER64): Remove.
6786 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6787 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6788 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6789 GNU_USER_DYNAMIC_LINKER.
6790 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6791 GNU_USER_TARGET_OS_CPP_BUILTINS.
6792 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6793 GNU_USER_TARGET_OS_CPP_BUILTINS.
6794 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6795 to GNU_USER_TARGET_OS_CPP_BUILTINS.
6796 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6797 GNU_USER_TARGET_OS_CPP_BUILTINS.
6798 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6799 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6800 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6801 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6802 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6803 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6804 GNU_USER_DYNAMIC_LINKER.
6805 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6806 GNU_USER_TARGET_OS_CPP_BUILTINS.
6807 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6808 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6809 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6810 GNU_USER_DYNAMIC_LINKER.
6811 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6812 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6813 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6814 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6815 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6816 GNU_USER_DYNAMIC_LINKER.
6817 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6818 GNU_USER_DYNAMIC_LINKERN32.
6819 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6820 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
6821 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
6822 GNU_USER_DYNAMIC_LINKER32.
6823 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6824 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6825 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6826 GNU_USER_DYNAMIC_LINKER.
6827 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6828 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6829 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6830 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6831 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6832 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6833 GNU_USER_DYNAMIC_LINKER32.
6834 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6835 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6836 GNU_USER_DYNAMIC_LINKER.
6837 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6838 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6839 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6840 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
6841 GNU_USER_DYNAMIC_LINKER64.
6842 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6843 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6844 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6845 GNU_USER_DYNAMIC_LINKER.
6846 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6847 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6848 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6849 GNU_USER_DYNAMIC_LINKER.
6850 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6851 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6852 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6853 GNU_USER_DYNAMIC_LINKER32.
6854 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6855 GNU_USER_DYNAMIC_LINKER64.
6856 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6857 GNU_USER_DYNAMIC_LINKER64.
6858 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6859 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6860 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6861 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6862 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6863
6864 2011-04-11 Joseph Myers <joseph@codesourcery.com>
6865
6866 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
6867 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6868 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6869 GNU_USER_DYNAMIC_LINKER.
6870 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6871 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
6872 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6873 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6874 GNU_USER_DYNAMIC_LINKER64.
6875 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6876 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6877 GNU_USER_LINK_EMULATION.
6878 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6879 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6880 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6881 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6882 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6883 CPP_SPEC, CC1_SPEC): Remove.
6884 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6885 (GNU_USER_DYNAMIC_LINKER): Define.
6886 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6887 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6888 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6889 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6890 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6891 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6892 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6893 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6894 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6895 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6896 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6897 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6898 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6899 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6900 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6901 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6902 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6903 GNU_USER_DYNAMIC_LINKER.
6904 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6905 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6906 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6907 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6908 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6909 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6910 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6911 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6912 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6913 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6914
6915 2011-04-11 Kai Tietz <ktietz@redhat.com>
6916
6917 PR target/9601
6918 PR target/11772
6919 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6920 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6921 comment.
6922 (ix86_is_msabi_thiscall): Removed.
6923 (ix86_is_type_thiscall): Likewise.
6924 (ix86_get_callcvt): New function.
6925 (ix86_comp_type_attributes): Simplify check.
6926 (ix86_function_regparm): Use ix86_get_callcvt for calling
6927 convention attribute checks.
6928 (ix86_return_pops_args): Likewise.
6929 (ix86_static_chain): Likewise.
6930 (x86_this_parameter): Likewise.
6931 (x86_output_mi_thunk): Likewise.
6932 (ix86_function_type_abi): Optimize check for types without attributes.
6933 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6934 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6935 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6936 by flag-values.
6937 (IX86_BASE_CALLCVT): Helper macro.
6938 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6939 Use ix86_get_callcvt for calling convention attribute checks and avoid
6940 symbol-decoration for stdcall in TARGET_RTD case.
6941 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6942 Likewise.
6943 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6944 for declaration.
6945
6946 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
6947
6948 * config/i386/sse.md (VI_128): New mode iterator.
6949 (VI12_128): Rename from SSEMODE12.
6950 (VI14_128): Rename from SSEMODE14.
6951 (VI124_128): New mode iterator.
6952 (VI24_128): Rename from SSEMODE248.
6953 (VI248_128): Rename from SSEMODE248.
6954 (SSEMODE124C8): Remove.
6955 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6956 (*sse2_<plusminus_insn><mode>3): Merge with
6957 *avx_<plusminus_insn><mode>3.
6958 (*mulv8hi3): Merge with *avx_mulv8hi3.
6959 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6960 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6961 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6962 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6963 (ashr<mode>3): Merge with *avx_ashr<mode>3.
6964 (lshr<mode>3): Merge with *avx_lshr<mode>3.
6965 (ashl<mode>3): Merge with *avx_ashl<mode>3.
6966 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6967 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6968 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6969 (*<smaxmin:code>v8hi3): Ditto.
6970 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6971 (*<smaxmin:code>v16qi3): Ditto.
6972 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6973 (*sse2_eq<mode>3): Ditto.
6974 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6975 (*sse2_gt<mode>3): Ditto.
6976 (vcondv2di): Split out of vcond<mode>.
6977 (vconduv2di): Split out of vcondu<mode>.
6978
6979 2011-04-11 Richard Guenther <rguenther@suse.de>
6980
6981 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6982 before calling tree_low_cst.
6983
6984 2011-04-11 Richard Guenther <rguenther@suse.de>
6985
6986 * stor-layout.c (layout_type): Compute all array index size operations
6987 in the original type.
6988 (initialize_sizetypes): Add comment.
6989 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6990
6991 2011-04-11 Joseph Myers <joseph@codesourcery.com>
6992
6993 * common.opt (Tbss=, Tdata=, Ttext=): New options.
6994
6995 2011-04-11 Martin Jambor <mjambor@suse.cz>
6996
6997 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6998 of cgraph_node, handle NULL return value.
6999 (cgraph_global_info): Likewise.
7000 (cgraph_rtl_info): Likewise.
7001 * tree-inline.c (estimate_num_insns): Likewise.
7002 * gimplify.c (unshare_body): Likewise.
7003 (unvisit_body): Likewise.
7004 (gimplify_body): Likewise.
7005 * predict.c (optimize_function_for_size_p): Likewise.
7006 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7007 (call_may_clobber_ref_p_1): Likewise.
7008 * varasm.c (function_section_1): Likewise.
7009 (assemble_start_function): Likewise.
7010
7011 2011-04-11 Martin Jambor <mjambor@suse.cz>
7012
7013 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
7014 of cgraph_node.
7015 * final.c (rest_of_clean_state): Likewise.
7016 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
7017 * passes.c (pass_init_dump_file): Likewise.
7018 (execute_all_ipa_transforms): Likewise.
7019 (function_called_by_processed_nodes_p): Likewise.
7020 * predict.c (maybe_hot_frequency_p): Likewise.
7021 (probably_never_executed_bb_p): Likewise.
7022 (compute_function_frequency): Likewise.
7023 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
7024 (unnest_nesting_tree_1): Likewise.
7025 (lower_nested_functions): Likewise.
7026 * tree-optimize.c (execute_fixup_cfg): Likewise.
7027 (tree_rest_of_compilation): Likewise.
7028 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
7029 * tree-sra.c (ipa_early_sra): Likewise.
7030 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7031 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
7032 * ipa.c (record_cdtor_fn): Likewise.
7033 * ipa-inline.c (cgraph_early_inlining): Likewise.
7034 (compute_inline_parameters_for_current): Likewise.
7035 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
7036 * ipa-pure-const.c (local_pure_const): Likewise.
7037 * ipa-split.c (split_function): Likewise.
7038 (execute_split_functions): Likewise.
7039 * cgraphbuild.c (build_cgraph_edges): Likewise.
7040 (rebuild_cgraph_edges): Likewise.
7041 (cgraph_rebuild_references): Likewise.
7042 (remove_cgraph_callee_edges): Likewise.
7043 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
7044 (verify_cgraph_node): Likewise.
7045 (cgraph_analyze_functions): Likewise.
7046 (cgraph_preserve_function_body_p): Likewise.
7047 (save_inline_function_body): Likewise.
7048 (save_inline_function_body): Likewise.
7049 * tree-inline.c (copy_bb): Likewise.
7050 (optimize_inline_calls): Likewise.
7051
7052 2011-04-11 Martin Jambor <mjambor@suse.cz>
7053
7054 PR tree-optimization/48195
7055 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
7056 ipa_check_create_edge_args.
7057 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
7058 ipa_check_create_edge_args.
7059 * ipa-inline.c (inline_generate_summary): Do not call
7060 ipa_check_create_node_params and ipa_check_create_edge_args.
7061 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
7062 ipa_check_create_edge_args.
7063
7064 2011-04-09 Anatoly Sokolov <aesok@post.ru>
7065
7066 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
7067 instead of loop.
7068 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7069 * function.c (record_hard_reg_sets): Likewise.
7070 * ira.c (compute_regs_asm_clobbered): Likewise.
7071 * sched-deps.c (sched_analyze_1): Likewise.
7072 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
7073
7074 2011-04-09 Xinliang David Li <davidxl@google.com>
7075
7076 PR tree-optimization/PR48484
7077 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
7078 has_valid_pred lazily
7079
7080 2011-04-09 Duncan Sands <baldrick@free.fr>
7081
7082 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
7083
7084 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
7085
7086 * combine.c (combine_validate_cost): Adjust comments. Set registered
7087 cost of I0 to zero at the end, if any.
7088
7089 2011-04-08 Xinliang David Li <davidxl@google.com>
7090
7091 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
7092 to insane profile data.
7093
7094 2011-04-08 Xinliang David Li <davidxl@google.com>
7095
7096 * ipa-cp.c (ipcp_update_profiling): Correct
7097 negative scale factor due to insane profile data.
7098
7099 2011-04-08 Xinliang David Li <davidxl@google.com>
7100
7101 * final.c (dump_basic_block_info): New function.
7102 (final): Dump basic block.
7103 (final_scan_insn): Remove old dump.
7104
7105 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
7106
7107 PR target/47829
7108 * config.gcc (i386-*-freebsd): Disable unwind table generation for
7109 crtbegin/crtend.
7110
7111 2011-04-08 Michael Matz <matz@suse.de>
7112
7113 PR middle-end/48389
7114 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
7115 functions.
7116 (rebuild_jump_labels): Call rebuild_jump_labels_1.
7117 * rtl.h (rebuild_jump_labels_chain): Declare.
7118 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
7119 insns inserted on edges.
7120
7121 2011-04-08 Joseph Myers <joseph@codesourcery.com>
7122
7123 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
7124 * config/arm/arm-arches.def: New.
7125 * config/arm/arm-opts.h: New.
7126 * config/arm/genopt.sh: New.
7127 * config/arm/arm-tables.opt: New (generated).
7128 * config/arm/arm.c (arm_handle_option, arm_target_help,
7129 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
7130 (all_architectures): Get most table contents from arm-arches.def.
7131 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
7132 arm_selected_tune here.
7133 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
7134 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
7135 (march=, mcpu=, mtune=): Use Enum and Var.
7136 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
7137 (arm.o): Update dependencies.
7138
7139 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
7140
7141 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
7142 of header_file.
7143 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
7144 (write_typed_alloc_defns): Likewise.
7145 (main): Calls write_typed_alloc_defns with output_header.
7146
7147 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
7148
7149 PR inline-asm/48435
7150 * ira-color.c (setup_profitable_hard_regs): Add comments.
7151 Don't take prohibited hard regs into account.
7152 (setup_conflict_profitable_regs): Rename to
7153 get_conflict_profitable_regs.
7154 (check_hard_reg_p): Check prohibited hard regs.
7155
7156 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
7157
7158 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
7159 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
7160 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
7161
7162 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7163
7164 PR target/48366
7165 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
7166 move from floating point to shift amount register.
7167 (emit_move_sequence): Remove secondary reload support for floating
7168 point to shift amount amount register copies.
7169 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
7170 amount register copies.
7171 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
7172 register, return false if mode isn't a scalar integer mode.
7173 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
7174
7175 2011-04-08 Richard Guenther <rguenther@suse.de>
7176
7177 * gimple.c (gimple_call_flags): Remove kludge.
7178
7179 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7180
7181 * sel-sched.c (sel_region_init): Move call to
7182 sel_setup_region_sched_flags after setup_current_loop_nest.
7183
7184 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
7185
7186 PR rtl-optimization/48272
7187 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7188 init_insn_reg_pressure_info. Adjust a caller.
7189 * sched-int.h (init_insn_reg_pressure_info): Declare.
7190 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7191 when sched-pressure is enabled.
7192
7193 2011-04-08 Richard Guenther <rguenther@suse.de>
7194
7195 * gimple.c (gimple_set_modified): Do not queue calls to
7196 MODIFIED_NORETURN_CALLS here ...
7197 * tree-ssa-operands.c (update_stmt_operands): ... but here.
7198
7199 2011-04-08 Richard Guenther <rguenther@suse.de>
7200
7201 PR lto/48467
7202 * toplev.c (lang_dependent_init): Do not open asm_out_file
7203 in WPA mode, nor perform debug machinery initialization.
7204 (finalize): Do not unlink asm_out_file in WPA mode.
7205
7206 2011-04-08 Richard Guenther <rguenther@suse.de>
7207
7208 * gimple.h (gimple_call_fntype): New function.
7209 (gimple_call_return_type): Use it.
7210 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7211 * gimple-low.c (gimple_check_call_args): Likewise.
7212 * gimple.c (gimple_call_flags): Likewise.
7213 (gimple_call_arg_flags): Likewise.
7214 (gimple_call_return_flags): Likewise.
7215 * tree-cfg.c (verify_gimple_call): Likewise.
7216 (do_warn_unused_result): Likewise.
7217 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7218 * value-prof.c (gimple_ic_transform): Fix fndecl check.
7219
7220 2011-04-08 Dmitry Melnik <dm@ispras.ru>
7221
7222 PR rtl-optimization/48235
7223 * sel-sched.c (code_motion_process_successors): Recompute the last
7224 insn in basic block if control flow changed.
7225 (code_motion_path_driver): Ditto. Recompute the first insn as well.
7226 Update condition for ilist_remove.
7227
7228 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7229
7230 PR rtl-optimization/48302
7231 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7232 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
7233 it to record added preheader blocks.
7234 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
7235 on to sel_add_loop_preheaders.
7236 (sel_region_init): Move call to setup_current_loop_nest after
7237 sel_init_bbs.
7238
7239 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7240
7241 PR target/48273
7242 * cfgloop.h (loop_has_exit_edges): New helper.
7243 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7244 non-clonable.
7245 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7246 that have no exit edges.
7247
7248 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
7249
7250 PR rtl-optimization/48442
7251 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
7252 all callers. Adjust assert.
7253
7254 2011-04-08 Jakub Jelinek <jakub@redhat.com>
7255
7256 PR tree-optimization/48377
7257 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7258 is_packed to true even for types with smaller TYPE_ALIGN than
7259 TYPE_SIZE.
7260
7261 2011-04-08 Richard Guenther <rguenther@suse.de>
7262
7263 PR bootstrap/48513
7264 * doc/tm.texi: Re-generate.
7265
7266 2011-04-08 Wei Guozhi <carrot@google.com>
7267
7268 PR target/47855
7269 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7270 * config/arm/arm.c (arm_attr_length_push_multi): New function.
7271 * config/arm/arm.md (*push_multi): Change the length computation to
7272 call a C function.
7273
7274 2011-04-08 Anatoly Sokolov <aesok@post.ru>
7275
7276 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7277 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7278 * doc/tm.texi: Regenerate.
7279 * system.h (ASM_OUTPUT_BSS): Poison.
7280 * varasm.c (asm_output_bss): Remove function.
7281 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7282
7283 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7284 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7285 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7286 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7287 Likewise.
7288 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7289 Likewise.
7290 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7291 Likewise.
7292 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7293
7294 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7295
7296 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7297 EnumValue lines.
7298
7299 2011-04-07 Joseph Myers <joseph@codesourcery.com>
7300
7301 * config/m68k/m68k.c (m68k_handle_option): Don't handle
7302 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7303 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7304 OPT_mcpu32.
7305 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7306 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7307 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7308 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7309 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7310 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7311 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7312 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7313 options. Don't map other m68k options manually. Don't handle
7314 old-style options as canonical.
7315 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7316 * doc/install.texi (m68k-*-*): Document binutils version requirement.
7317
7318 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
7319
7320 * basic-block.h (force_nonfallthru): Move to...
7321 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7322 (force_nonfallthru): ...here.
7323 * cfghooks.c (force_nonfallthru): New function.
7324 * cfgrtl.c (force_nonfallthru): Rename into...
7325 (rtl_force_nonfallthru): ...this.
7326 (commit_one_edge_insertion): Do not set AUX field.
7327 (commit_edge_insertions): Do not discover new basic blocks.
7328 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7329 (cfg_layout_rtl_cfg_hooks): Likewise.
7330 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7331 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
7332 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7333
7334 2011-04-07 Anatoly Sokolov <aesok@post.ru>
7335
7336 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7337 Remove macros.
7338
7339 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
7340
7341 * config/i386/sse.md: Update copyright year.
7342 (avxcvtvecmode): Remove.
7343 (sse_movhlps): Merge with *avx_movhlps.
7344 (sse_movlhps): Merge with *avx_movlhps.
7345 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7346 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7347 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7348 (sse_loadhps): Merge with *avx_loadhps.
7349 (sse_storelps): Merge with *avx_storelps.
7350 (sse_loadlps): Merge with *avx_loadlps.
7351 (sse_movss): Merge with *avx_movss.
7352 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7353 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7354 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7355 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7356 (vec_set<mode>_0): Ditto.
7357 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7358 (sse4_1_insertps): Merge with *avx_insertps.
7359 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7360 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7361 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7362 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7363 (sse2_storehpd): Merge with *avx_storehpd.
7364 (sse2_loadhpd): Merge with *avx_loadhpd.
7365 (sse2_loadlpd): Merge with *avx_loadlpd.
7366 (sse2_movsd): Merge with *avx_movsd.
7367 (*vec_concatv2df): Merge with *vec_concatv2df.
7368
7369 2011-04-07 Jakub Jelinek <jakub@redhat.com>
7370
7371 PR debug/48343
7372 * combine.c (combine_instructions): Add last_combined_insn,
7373 update it if insn is after it, pass it to all try_combine calls.
7374 (try_combine): Add last_combined_insn parameter, pass it instead of
7375 i3 to propagate_for_debug.
7376
7377 2011-04-07 Nick Clifton <nickc@redhat.com>
7378
7379 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7380 to handle MDR <-> data register transfers.
7381 (movhi_internal): Likewise.
7382
7383 2011-04-07 Alan Modra <amodra@gmail.com>
7384
7385 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7386 previous stack info.
7387
7388 2011-04-07 Tom de Vries <tom@codesourcery.com>
7389
7390 PR target/43920
7391 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
7392 flow_find_cross_jump. Swap variables to implement backward replacement.
7393 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7394
7395 2011-04-07 Tom de Vries <tom@codesourcery.com>
7396
7397 PR target/43920
7398 * cfgcleanup.c (walk_to_nondebug_insn): New function.
7399 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
7400 and bb2.
7401 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7402 src1 or src2. Redirect edges to the last basic block. Update
7403 frequency and count on multiple basic blocks in case of fallthru.
7404
7405 2011-04-07 Tom de Vries <tom@codesourcery.com>
7406
7407 PR target/43920
7408 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7409 function.
7410 (old_insns_match_p): Change return type. Replace return false/true
7411 with return dir_none/dir_both. Use can_replace_by.
7412 (flow_find_cross_jump): Add dir_p parameter. Init replacement
7413 direction from dir_p. Register replacement direction in dir, last_dir
7414 and afterlast_dir. Handle new return type of old_insns_match_p using
7415 merge_dir. Return replacement direction in dir_p.
7416 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7417 return type of old_insns_match_p.
7418 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7419 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7420 flow_find_cross_jump.
7421 * basic-block.h (enum replace_direction): New type.
7422 (flow_find_cross_jump): Add parameter to declaration.
7423
7424 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
7425
7426 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7427 (AVXMODEDCVTPS2DQ): Ditto.
7428 (VEC_FLOAT_MODE): Ditto.
7429 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
7430 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7431 (<any_logic:code><mode>3): Use VF mode iterator.
7432 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7433 Use VF mode iterator.
7434 (copysign<mode>3): Use VF mode iterator.
7435 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
7436 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7437 (*<any_logic:code><MODEF:mode>3): Merge with
7438 *avx_<any_logic:code><MODEF:mode>3.
7439 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7440 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7441 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7442 (avx_cvtdq2ps<avxmodesuffix>): Remove.
7443 (sse2_cvtdq2ps): Use %v modifier.
7444 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7445 (avx_cvtps2dq<avxmodesuffix>): Remove.
7446 (sse2_cvtps2dq): Use %v modifier.
7447 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7448 (avx_cvttps2dq<avxmodesuffix>): Remove.
7449 (sse2_cvttps2dq): Use %v modifier.
7450 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7451 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7452 (sse2_cvtsd2siq): Fix insn template.
7453 (sse2_cvtsd2siq_2): Ditto.
7454 (sse2_cvttsd2siq): Ditto.
7455 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7456 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7457
7458 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7459
7460 * gcov-io.c: Use GCC Runtime Library Exception.
7461
7462 2011-04-06 Jakub Jelinek <jakub@redhat.com>
7463
7464 PR debug/48466
7465 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7466 as base_reg whatever register reg has been eliminated to, instead
7467 of hardcoding STACK_POINTER_REGNUM.
7468
7469 2011-04-06 Joseph Myers <joseph@codesourcery.com>
7470
7471 * doc/tm.texi.in: Document C target hooks as separate from general
7472 target hooks.
7473 * doc/tm.texi: Regenerate.
7474 * genhooks.c (struct hook_desc): Add docname field.
7475 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
7476 docname field.
7477 (hook_array): Include c-target.def.
7478 (emit_documentation): Use docname field in output.
7479 (emit_init_macros): Take docname argument. Only emit definitions
7480 for hooks matching docname.
7481 (main): Expect additional arguments in all cases. Pass argument
7482 to emit_init_macros.
7483 * target.def: Move initial macro definitions and comments to
7484 target-hooks-macros.h.
7485 (gcc_targetcm): Move to c-family/c-target.def.
7486 * target.h (targetcm): Move declaration to c-family/c-target.h.
7487 * targhooks.c (default_handle_c_option): Move to
7488 c-family/c-opts.c.
7489 * targhooks.h (default_handle_c_option): Move declaration to
7490 c-family/c-common.h.
7491 * target-hooks-macros.h: New file.
7492 * config.gcc (target_has_targetcm): Define and use to add to
7493 c_target_objs and cxx_target_objs.
7494 * config/default-c.c: New file.
7495 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7496 of target.h and target-def.h.
7497 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7498 (darwin_objc_construct_string, darwin_cfstring_ref_p,
7499 darwin_check_cfstring_format_arg): Make static.
7500 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7501 TARGET_STRING_OBJECT_REF_TYPE_P,
7502 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7503 * config/darwin-protos.h (darwin_objc_construct_string,
7504 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7505 declare.
7506 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7507 TARGET_STRING_OBJECT_REF_TYPE_P,
7508 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7509 * config/t-darwin (darwin-c.o): Update dependencies.
7510 * system.h (TARGET_HAS_TARGETCM): Poison.
7511 * Makefile.in (TARGET_H): Update.
7512 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7513 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7514 (default-c.o): New target.
7515 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7516 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7517 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
7518 c-target.def.
7519 (build/genhooks.o): Update dependencies.
7520
7521 2011-04-06 Richard Guenther <rguenther@suse.de>
7522
7523 * ipa-inline.c (enum inlining_mode): Remove.
7524 (cgraph_flatten): Use some other token.
7525 (cgraph_edge_early_inlinable_p): New function, split out from ...
7526 (cgraph_perform_always_inlining): New function, split out from ...
7527 (cgraph_decide_inlining_incrementally): ... here.
7528 (cgraph_mark_inline_edge): Adjust.
7529 (cgraph_early_inlining): Re-structure.
7530 (pass_early_inline): Require SSA form.
7531
7532 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
7533 Julian Brown <julian@codesourcery.com>
7534 Mark Shinwell <shinwell@codesourcery.com>
7535
7536 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7537 LO_REGS only for Thumb-1.
7538 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7539 be used in short instructions when optimising for size on Thumb-2.
7540
7541 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7542
7543 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7544 associated with user returns to be preserved.
7545
7546 2011-04-06 Tristan Gingold <gingold@adacore.com>
7547
7548 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7549 symbol_queue_size, DBXOUT_DECR_NESTING,
7550 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7551 if XCOFF_DEBUGGING_INFO.
7552
7553 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
7554
7555 * config/i386/i386.md (attribute isa): New.
7556 (attribute enabled): New.
7557 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7558 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7559 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7560 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7561 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7562 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7563 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7564 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7565
7566 * config/i386/sse.md (VF): New mode iterator.
7567 (VF1): Ditto.
7568 (VF2): Ditto.
7569 (VF_128): Ditto.
7570 (SSEMODEF4): Remove.
7571 (attribute sse): Handle V8SF and V4DF modes.
7572 (<absneg:code><mode>2): Use VF mode iterator.
7573 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
7574 mode iterator.
7575 (<plusminus_insn><mode>3): Use VF mode iterator.
7576 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7577 Use VF mode iterator.
7578 (<sse>_vm<plusminus_insn><mode>3): Merge with
7579 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
7580 (mul<mode>3): Use VF mode iterator.
7581 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
7582 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
7583 mode iterator.
7584 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7585 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7586 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
7587 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
7588 mode iterator.
7589 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7590 Use VF1 mode iterator.
7591 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7592 (sqrt<VF2:mode>2): New expander.
7593 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7594 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7595 and sqrtv2df2. Use VF mode iterator.
7596 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
7597 mode iterator.
7598 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7599 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7600 Use VF1 mode iterator.
7601 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7602 (<smaxmin:code><mode>3): Use VF mode iterator.
7603 (*<smaxmin:code><mode>3_finite): Merge with
7604 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
7605 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7606 (<sse>_vm<smaxmin:code><mode>2): Merge with
7607 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
7608 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
7609 mode iterator.
7610 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
7611 mode iterator.
7612 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7613 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7614 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7615 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7616 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
7617 VF mode iterator.
7618 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7619 Use VF_128 mode iterator.
7620 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
7621 mode iterator.
7622 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
7623 VF_128 mode iterator.
7624 (vcond<mode>): Use VF mode iterator.
7625 * config/i386/predicates.md (sse_comparison_operator): Merge with
7626 avx_comparison_float_operator. Do not declare as special_predicate.
7627 * config/i386/i386.c (struct builtin_description): Update for renamed
7628 compare patterns.
7629 (ix86_expand_args_builtin): Ditto.
7630 (ix86_expand_sse_compare_mask): Ditto.
7631
7632 2011-04-06 Richard Guenther <rguenther@suse.de>
7633
7634 * tree-inline.c (estimate_num_insns): For calls simply account
7635 for all passed arguments and a used return value.
7636
7637 2011-04-06 Richard Guenther <rguenther@suse.de>
7638
7639 PR tree-optimization/47663
7640 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7641 call_stmt_time fields.
7642 (cgraph_edge_inlinable_p): Declare.
7643 (cgraph_edge_recursive_p): New inline function.
7644 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7645 (cgraph_clone_edge): Copy it.
7646 * ipa-inline.c (cgraph_estimate_edge_time): New function.
7647 Account for call stmt time.
7648 (cgraph_estimate_time_after_inlining): Take edge argument.
7649 (cgraph_estimate_edge_growth): Account call stmt size.
7650 (cgraph_estimate_size_after_inlining): Take edge argument.
7651 (cgraph_mark_inline_edge): Adjust.
7652 (cgraph_check_inline_limits): Likewise.
7653 (cgraph_recursive_inlining_p): Remove.
7654 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7655 (cgraph_decide_recursive_inlining): Take edge argument and
7656 adjust.
7657 (cgraph_decide_inlining_of_small_functions): Do not avoid
7658 diags for recursive inlining here.
7659 (cgraph_flatten): Adjust.
7660 (cgraph_decide_inlining_incrementally): Likewise.
7661 (estimate_function_body_sizes): Remove call cost handling.
7662 (compute_inline_parameters): Initialize caller edge call costs.
7663 (cgraph_estimate_edge_growth): New function.
7664 (cgraph_estimate_growth): Use it.
7665 (cgraph_edge_badness): Likewise.
7666 (cgraph_check_inline_limits): Take an edge argument.
7667 (cgraph_decide_inlining_of_small_functions): Adjust.
7668 (cgraph_decide_inlining): Likewise.
7669 * tree-inline.c (estimate_num_insns): Only account for call
7670 return value if it is used.
7671 (expand_call_inline): Avoid diagnostics on recursive inline
7672 functions here.
7673 * lto-cgraph.c (lto_output_edge): Output edge call costs.
7674 (input_edge): Input edge call costs.
7675
7676 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7677
7678 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7679
7680 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
7681
7682 * doc/invoke.texi (Spec Files): Fix typo.
7683
7684 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7685
7686 * profile.c (branch_prob): Move declaration of local variable. Remove
7687 obsolete ??? comment. Expand the location explicitly instead of using
7688 the LOCATION_FILE and LOCATION_LINE macros.
7689
7690 2011-04-06 Wei Guozhi <carrot@google.com>
7691
7692 PR target/47855
7693 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7694 (arm_cond_branch): Likewise.
7695 (arm_cond_branch_reversed): Likewise.
7696 (arm_jump): Likewise.
7697 (push_multi): Likewise.
7698 * config/arm/constraints.md (Py): New constraint.
7699
7700 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7701
7702 PR bootstrap/48471
7703 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7704 Move these...
7705 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7706 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7707 #ifdef DBX_DEBUGGING_INFO.
7708
7709 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
7710
7711 PR bootstrap/48403
7712 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7713 if old and new states differ.
7714
7715 2011-04-05 Joseph Myers <joseph@codesourcery.com>
7716
7717 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7718 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7719 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7720 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7721 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7722 mcfv4e): Use Alias.
7723 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7724 ColdFire options to -mcpu= options.
7725
7726 2011-04-05 Jeff Law <law@redhat.com>
7727
7728 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7729 check if BB is a successor of LOOP->header and return
7730 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7731
7732 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7733
7734 * cprop.c (struct reg_use): Remove.
7735 (reg_use_table): Make an array of RTX.
7736 (find_used_regs, constprop_register, local_cprop_pass,
7737 bypass_block): Simplify users of reg_use_table.
7738 (cprop_insn): Likewise. Iterate if copy propagation succeeded
7739 on one of the uses found by find_used_regs.
7740
7741 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7742
7743 PR bootstrap/48469
7744 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7745 declaration.
7746
7747 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7748
7749 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7750 as an rtx.
7751 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7752
7753 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7754
7755 PR middle-end/48441
7756 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7757
7758 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7759
7760 * combine.c: Include obstack.h.
7761 (struct insn_link): Define.
7762 (uid_log_links): Adjust type.
7763 (FOR_EACH_LOG_LINK): New macro.
7764 (insn_link_obstack): Declare.
7765 (alloc_insn_link): Define.
7766 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
7767 type of link variables.
7768 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7769 (try_combine, record_promoted_values, distribute_notes): Likewise.
7770 (distribute_links): Likewise. Tweak prototype.
7771 (clear_log_links): Delete.
7772 (adjust_for_new_dest): Call alloc_insn_link.
7773 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7774
7775 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7776
7777 * gcse.c (modify_mem_list): Convert to an array of VECs.
7778 (canon_modify_mem_list, compute_transp): Tweak formatting.
7779 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
7780 (load_killed_in_block_p): Likewise.
7781 (record_last_mem_set_info): Likewise.
7782 (clear_modify_mem_tables): Likewise.
7783
7784 2011-04-05 Tom de Vries <tom@codesourcery.com>
7785
7786 PR middle-end/48461
7787 * function.c (emit_use_return_register_into_block): Only define if
7788 HAVE_return.
7789
7790 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
7791
7792 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7793
7794 2011-04-05 Joseph Myers <joseph@codesourcery.com>
7795
7796 * config/rx/rx-opts.h: New.
7797 * config/rx/rx.c (rx_cpu_type): Remove.
7798 (rx_handle_option): Don't assert that global structures are in
7799 use. Access variables via opts pointer. Defer most handling of
7800 OPT_mint_register_. Use error_at.
7801 (rx_option_override): Handle deferred OPT_mint_register_ here.
7802 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7803 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7804 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7805 (rx_cpu_types): New Enum and EnumValue entries.
7806 (mint-register=): Use Defer and use Var accordingly.
7807
7808 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7809
7810 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7811 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7812 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7813 Move these...
7814 (debug_free_queue, debug_nesting, symbol_queue_index):
7815 ...and these...
7816 * dbxout.c: ...to here. Make static.
7817
7818 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7819
7820 * gcse.c (modify_pair): Define. Define a VEC of it.
7821 (canon_modify_mem_list): Convert to an array of VECs.
7822 (free_insn_expr_list_list): Delete.
7823 (clear_modify_mem_tables): Call VEC_free instead.
7824 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7825 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7826 (canon_list_insert, compute_transp): Likewise.
7827
7828 2011-04-05 Tom de Vries <tom@codesourcery.com>
7829
7830 PR target/43920
7831 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7832 for size.
7833
7834 2011-04-05 Tom de Vries <tom@codesourcery.com>
7835
7836 PR target/43920
7837 * function.c (emit_use_return_register_into_block): New function.
7838 (thread_prologue_and_epilogue_insns): Use
7839 emit_use_return_register_into_block.
7840
7841 2011-04-05 Tom de Vries <tom@codesourcery.com>
7842
7843 PR target/43920
7844 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7845 insn.
7846
7847 2011-04-05 Tom de Vries <tom@codesourcery.com>
7848
7849 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7850
7851 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
7852
7853 * config/arm/arm.md (define_constants for unspec): Replace with
7854 define_c_enum.
7855 (define_constants for unspecv): Replace with define_c_enum.
7856 * config/arm/neon.md (define_constants for unspec): Replace with
7857 define_c_enum.
7858
7859 2011-04-04 Richard Henderson <rth@redhat.com>
7860
7861 PR bootstrap/48400
7862 * dwarf2out.c (output_line_info): Always emit line info from
7863 at least one section.
7864 (dwarf2out_init): Create text_section_line_info here ...
7865 (set_cur_line_info_table): ... not here.
7866
7867 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
7868
7869 PR target/48380
7870 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7871 not called.
7872
7873 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7874
7875 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
7876
7877 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7878 (expr_equiv_p): Remove.
7879 (insert_set_in_table): Look at <dest, src> pair instead of expr.
7880 (hash_scan_set): Update call to insert_set_in_table.
7881 (dump_hash_table): Dump <dest, src> pair.
7882 (lookup_set): Simplify. Lookup <dest, src> pair.
7883 (compute_transp): Remove, fold heavily simplified code into...
7884 (compute_local_properties): ...here. Expect COMP and TRANSP
7885 unconditionally.
7886 (find_avail_set): Take set directly from struct expr.
7887 (find_bypass-set): Likewise.
7888 (bypass_block): Likewise.
7889 (cprop_insn): Likewise. Remove redundant INSN_P test.
7890
7891 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7892 checks on form of COND from find_implicit_sets to here.
7893 (find_implicit_sets): Cleanup control flow. Split critical edges
7894 if it exposes implicit sets. Allocate/resize implicit_sets as
7895 necessary.
7896 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7897 changed something. Run df_analyze after find_implicit_sets if any
7898 edges were split. Do not allocate implicit_sets here.
7899
7900 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7901 (gcse_obstack): Renamed to cprop_obstack.
7902 (GNEW, GNEWVEC, GNEWVAR): Remove.
7903 (gmalloc): Remove.
7904 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7905 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7906 (gcse_alloc): Likewise, and rename to cprop_alloc.
7907 (alloc_gcse_men, free_gcse_mem): Remove.
7908 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7909 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7910 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7911
7912 * cprop.c (oprs_not_set_p): Remove.
7913 (mark_set, mark_clobber): Remove.
7914 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7915 (reg_not_set_p): New function.
7916 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7917 (cprop_insn): Likewise.
7918 (cprop_jump): Use FOR_EACH_EDGE.
7919
7920 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
7921
7922 PR bootstrap/48403
7923 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7924 (rank_for_schedule): Use scheduled_insns vector instead of
7925 last_scheduled_insn.
7926 (ok_for_early_queue_removal): Likewise.
7927 (queue_to_ready): Search forward in nonscheduled_insns_begin if
7928 we have a dbg_cnt.
7929 (choose_ready): Likewise.
7930 (commit_schedule): Use VEC_iterate.
7931 (schedule_block): Initialize nonscheduled_insns_begin. If we have
7932 a dbg_cnt, use it and ensure the first insn is in the ready list.
7933 (haifa_sched_init): Allocate scheduled_insns.
7934 (sched_extend_ready_list): Don't allocate it; reserve space.
7935 (haifa_sched_finish): Free it.
7936
7937 2011-04-04 Joseph Myers <joseph@codesourcery.com>
7938
7939 * optc-gen.awk: Always remove type from Variable entry before
7940 recording in var_seen.
7941
7942 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7943
7944 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7945 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7946 call to tidy_fallthru_edges.
7947
7948 2011-04-04 Joseph Myers <joseph@codesourcery.com>
7949
7950 * doc/options.texi (ToLower): Document.
7951 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7952 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7953 * opts.h (cl_option): Add cl_tolower field.
7954 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7955 arguments with lowercase strings.
7956 * config/rx/rx.opt (mcpu=): Add ToLower.
7957 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7958 argument.
7959
7960 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7961
7962 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7963
7964 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7965
7966 * config/vax/vax.c: Include reload.h.
7967
7968 2011-04-04 Anatoly Sokolov <aesok@post.ru>
7969
7970 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7971 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7972 (sparc_preferred_reload_class): New function.
7973
7974 2011-04-04 Jakub Jelinek <jakub@redhat.com>
7975
7976 PR debug/48401
7977 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7978 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7979
7980 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
7981
7982 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7983 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7984
7985 2011-04-03 Anatoly Sokolov <aesok@post.ru>
7986
7987 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7988 (ASM_OUTPUT_ALIGNED_BSS): Define.
7989
7990 2011-04-03 Michael Matz <matz@suse.de>
7991
7992 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7993 and next_slot members.
7994 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7995 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7996 (lto_streamer_cache_append): Declare.
7997 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7998 unsigned index, remove offset parameter, ensure that we append
7999 or update existing entries.
8000 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
8001 parameter, update next_slot for append.
8002 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
8003 parameter.
8004 (lto_streamer_cache_insert_at): Likewise.
8005 (lto_streamer_cache_append): New function.
8006 (lto_streamer_cache_lookup): Use unsigned index.
8007 (lto_streamer_cache_get): Likewise.
8008 (lto_record_common_node): Don't test tree_node_can_be_shared.
8009 (preload_common_node): Adjust call to lto_streamer_cache_insert.
8010 (lto_streamer_cache_delete): Don't free offsets member.
8011 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
8012 (lto_output_string_with_length): Use lto_output_data_stream.
8013 (lto_output_tree_header): Remove ix parameter, don't write it.
8014 (lto_output_builtin_tree): Likewise.
8015 (lto_write_tree): Adjust callers to above, don't track and write
8016 offset, write unsigned index.
8017 (output_unreferenced_globals): Don't emit all global vars.
8018 (write_global_references): Use unsigned indices.
8019 (lto_output_decl_state_refs): Likewise.
8020 (write_symbol): Likewise.
8021 * lto-streamer-in.c (lto_input_chain): Move earlier.
8022 (input_function): Use unsigned index.
8023 (input_alias_pairs): Don't read and then ignore all global vars.
8024 (lto_materialize_tree): Remove ix_p parameter, don't read index,
8025 don't pass it back, use lto_streamer_cache_append.
8026 (lto_register_var_decl_in_symtab): Use unsigned index.
8027 (lto_register_function_decl_in_symtab): Likewise.
8028 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
8029 index.
8030 (lto_get_builtin_tree): Don't read index, use
8031 lto_streamer_cache_append.
8032 (lto_read_tree): Adjust call to lto_materialize_tree.
8033
8034 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
8035 don't use function calls in arguments to MIN.
8036
8037 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
8038 twice.
8039
8040 * gimple.c (gimple_type_leader_entry): Mark deletable.
8041
8042 2011-04-03 Alan Modra <amodra@gmail.com>
8043
8044 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
8045
8046 2011-04-03 Michael Matz <matz@suse.de>
8047
8048 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
8049 an integer.
8050 * tree.h (tree_decl_non_common.vindex): Adjust comment.
8051
8052 2011-04-03 Michael Matz <matz@suse.de>
8053
8054 * cgraphbuild.c (record_reference): Canonicalize constructor values.
8055 * gimple-fold.c (canonicalize_constructor_val): Accept being called
8056 without function context.
8057 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
8058 current_function_decl and cfun.
8059
8060 2011-04-03 Michael Matz <matz@suse.de>
8061
8062 * tree.c (decl_init_priority_insert): Don't create entry for
8063 default priority.
8064 (decl_fini_priority_insert): Ditto.
8065 (fields_compatible_p, find_compatible_field): Remove.
8066 * tree.h (fields_compatible_p, find_compatible_field): Remove.
8067 * gimple.c (gimple_compare_field_offset): Adjust block comment.
8068
8069 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
8070
8071 * combine.c (try_combine): Remove useless local variable.
8072
8073 2011-04-03 Richard Guenther <rguenther@suse.de>
8074 Ira Rosen <ira.rosen@linaro.org>
8075
8076 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
8077 non-variable offsets and compare the remaining bases of the two
8078 accesses instead of looking for exact same data-ref.
8079
8080 2011-04-02 Kai Tietz <ktietz@redhat.com>
8081
8082 PR target/48416
8083 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
8084
8085 * i386.c (ix86_is_msabi_thiscall): New helper function.
8086 (ix86_is_type_thiscall): New helper function.
8087 (ix86_comp_type_attributes): Handle thiscall for method-functions
8088 special.
8089 (init_cumulative_args): Likewise.
8090 (find_drap_reg): Likewise.
8091 (ix86_static_chain): Likewise.
8092 (x86_this_parameter): Likewise.
8093 (x86_output_mi_thunk): Likewise.
8094
8095 2011-04-01 Olivier Hainque <hainque@adacore.com>
8096 Nicolas Setton <setton@adacore.com>
8097 Eric Botcazou <ebotcazou@adacore.com>
8098
8099 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
8100 (add_gnat_descriptive_type_attribute): New function.
8101 (gen_array_type_die): Call it.
8102 (gen_enumeration_type_die): Likewise.
8103 (gen_struct_or_union_type_die): Likewise.
8104 (modified_type_die): Likewise.
8105 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
8106 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
8107 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
8108
8109 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8110
8111 PR bootstrap/48148
8112 * dwarf2out.c (resolve_addr): Don't call force_decl_die
8113 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
8114
8115 Revert:
8116 2011-03-17 Richard Guenther <rguenther@suse.de>
8117
8118 PR bootstrap/48148
8119 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8120 origin for decls in other ltrans units.
8121 (input_varpool_node): Likewise.
8122
8123 2011-04-01 Jakub Jelinek <jakub@redhat.com>
8124
8125 PR middle-end/48335
8126 * expr.c (expand_assignment): Handle all possibilities
8127 if TO_RTX is CONCAT.
8128 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
8129 (store_split_bit_field): If SUBREG_REG (op0) or
8130 op0 itself has smaller mode than word, return it
8131 for offset 0 and const0_rtx for out-of-bounds stores.
8132 If word is const0_rtx, skip it.
8133
8134 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
8135
8136 * config/h8300/h8300.c (print_operand_address): Rename to...
8137 (h8300_print_operand_address): ...this. Make static. Adjust comments.
8138 Call h8300_print_operand and h8300_print_operand_address instead of
8139 print_operand and print_operand_address. Declare.
8140 (print_operand): Renake to...
8141 (h8300_print_operand): ...this. Make static. Adjust comments.
8142 Call h8300_print_operand instead of print_operand. Declare.
8143 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
8144 (h8300_register_move_cost): Likewise.
8145 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
8146 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
8147 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
8148 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
8149 * config/h8300/h8300-protos.h (print_operand): Delete.
8150 (print_operand_address): Delete.
8151
8152 2011-04-01 Richard Henderson <rth@redhat.com>
8153
8154 PR 48400
8155 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
8156 in strict mode before dwarf4. Re-order tests to early out
8157 before switching sections.
8158
8159 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
8160
8161 * config/h8300/constraints.md: New file.
8162 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
8163 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
8164 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
8165 * config/h8300/predicates.md (bit_operand): Likewise.
8166 (incdec_operand): Use satisfies_constraint_M and
8167 satisfies_constraint_O. Don't use C code block.
8168 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
8169 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
8170 (compute_mov_length): Use satisfies_constraint_G.
8171 (fix_bit_operand): Use satisfies_constraint_U.
8172 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
8173 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
8174 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
8175 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
8176 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
8177 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
8178 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8179 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8180 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8181 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8182 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8183 (EXTRA_MEMORY_CONSTRAINT): Delete.
8184
8185 2011-04-01 Andrew Pinski <pinskia@gmail.com>
8186 Michael Meissner <meissner@linux.vnet.ibm.com>
8187
8188 PR target/48262
8189 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8190 operands, as per the specifications.
8191
8192 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8193 (vec_extract_evenv4sf): Ditto.
8194 (vec_extract_evenv8hi): Ditto.
8195 (vec_extract_evenv16qi): Ditto.
8196 (vec_extract_oddv4si): Ditto.
8197
8198 2011-03-31 Mark Wielaard <mjw@redhat.com>
8199
8200 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8201 high_pc attribute if the CU has no associated code. Only output
8202 DW_AT_entry_pc for CU if not generating strict dwarf and
8203 dwarf_version < 4.
8204
8205 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
8206
8207 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8208 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8209 out of ...
8210 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8211 * final.c (final_start_function): Call the new function rather
8212 than using a NULL argument for dwarf2out_frame_debug.
8213
8214 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8215 that contains the prologue.
8216
8217 * haifa-sched.c (queue_insn): New arg REASON. All callers
8218 changed. Print it in debugging output.
8219
8220 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8221
8222 * sched-ebb.c (begin_schedule_ready): Remove second argument.
8223 Split most of the code into...
8224 (begin_move_insn): ... here. New function.
8225 (ebb_sched_info): Add a pointer to it.
8226 * haifa-sched.c (scheduled_insns): New static variable.
8227 (sched_extend_ready_list): Allocate it.
8228 (schedule_block): Use it to record the order of scheduled insns.
8229 Perform RTL changes to move insns only after all scheduling
8230 decisions have been made.
8231 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8232 begin_move_insn field.
8233 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8234 * sched-int.h (struct haifa_sched_info): Remove second argument
8235 from begin_schedule_ready hook. Add new member begin_move_insn.
8236 * sched-rgn.c (begin_schedule_ready): Remove second argument.
8237 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8238
8239 * haifa-sched.c (prune_ready_list): New function, broken out of
8240 schedule_block.
8241 (schedule_block): Use it.
8242
8243 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8244
8245 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8246
8247 2011-04-01 Kai Tietz <ktietz@redhat.com>
8248
8249 * config.gcc (*-*-mingw*): Allow as option the
8250 posix threading model.
8251 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
8252 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8253 definition.
8254 (CPP_SPEC): Add pthread/no-pthread handling.
8255 (LIB_SPEC): Likewise.
8256 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8257 (LIB_SPEC): Likewise.
8258 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8259 flag to pass -pthread option for shared libgcc build.
8260 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8261 for shared libgcc build.
8262 * config/i386/t-mingw-pthread: New file.
8263 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8264 New define to enable use of library pthread by default.
8265 * config/i386/mingw.opt (pthread): New driver option.
8266 (no-pthread): New driver option.
8267 * config/i386/cygming.opt: Make sure trailing empty line is retained.
8268 * config/i386/mingw-w64.opt: Likewise.
8269
8270 2011-04-01 Gary Funck <gary@intrepid.com>
8271
8272 * c-decl.c (grokdeclarator): Fix formatting.
8273
8274 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8275
8276 * expr.c (emit_block_move_via_movmem): Use n_generator_args
8277 instead of n_operands.
8278 (set_storage_via_setmem): Likewise.
8279 * optabs.c (maybe_gen_insn): Likewise.
8280 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8281 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8282 (mips_expand_builtin_direct): Likewise.
8283 * config/spu/spu.c (expand_builtin_args): Likewise.
8284
8285 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8286
8287 * recog.h (insn_data_d): Add n_generator_args.
8288 * genoutput.c (data): Likewise.
8289 (output_insn_data): Print it.
8290 (max_opno, num_dups): Delete.
8291 (scan_operands): Just fill in "d->operand[...]".
8292 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8293
8294 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8295
8296 * gensupport.h (pattern_stats): New structure.
8297 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8298 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8299 (max_operand_1, max_operand_vec): Delete.
8300 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8301
8302 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
8303
8304 * emit-rtl.c (emit_pattern_after_setloc): New function.
8305 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8306 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8307 (emit_pattern_after): New function.
8308 (emit_insn_after, emit_jump_insn_after): Call it.
8309 (emit_call_insn_after, emit_debug_insn_after): Likewise.
8310 (emit_pattern_before_setloc): New function.
8311 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8312 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8313 Likewise.
8314 (emit_pattern_before): New function.
8315 (emit_insn_before, emit_jump_insn_before): Call it.
8316 (emit_call_insn_before, emit_debug_insn_before): Likewise.
8317
8318 2011-03-31 Richard Henderson <rth@redhat.com>
8319
8320 * dwarf2out.c (dw_separate_line_info_ref): Remove.
8321 (dw_separate_line_info_entry): Remove.
8322 (enum dw_line_info_opcode): New.
8323 (dw_line_info_entry): Use it.
8324 (dw_line_info_table, dw_line_info_table_p): New.
8325 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8326 (line_info_table, line_info_label_num): Remove.
8327 (line_info_table_in_use): Remove.
8328 (separate_line_info_table): Remove.
8329 (separate_line_info_table_allocated): Remove.
8330 (separate_line_info_table_in_use): Remove.
8331 (LINE_INFO_TABLE_INCREMENT): Remove.
8332 (line_info_label_num): New.
8333 (cur_line_info_table): New.
8334 (text_section_line_info, cold_text_section_line_info): New.
8335 (separate_line_info): New.
8336 (SEPARATE_LINE_CODE_LABEL): Remove.
8337 (print_dwarf_line_table): Remove.
8338 (debug_dwarf): Don't dump it.
8339 (output_one_line_info_table): New.
8340 (output_line_info): Use it.
8341 (new_line_info_table): New.
8342 (set_cur_line_info_table): New.
8343 (dwarf2out_switch_text_section): Use it.
8344 (dwarf2out_begin_function): Likewise.
8345 (push_dw_line_info_entry): New.
8346 (dwarf2out_source_line): Rewrite for new line info tables.
8347 (dwarf2out_init): Remove dead initailizations.
8348
8349 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8350
8351 * opts.h (cl_option): Add comments to fields. Add bit-fields for
8352 various flags.
8353 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8354 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8355 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8356 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8357 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8358 * opt-functions.awk (flag_init, switch_bit_fields): New.
8359 (switch_flags): Don't handle flags moved to bit-fields. Don't
8360 generate CL_MISSING_OK or CL_SAVE.
8361 * optc-gen.awk: Update to generate bit-field output as well as
8362 flags field.
8363 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8364 bit-field instead of CL_REJECT_DRIVER flag.
8365 * opts-common.c (generate_canonical_option,
8366 decode_cmdline_option): Use bit-fields instead of CL_* flags.
8367 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8368 instead of CL_REJECT_NEGATIVE flag.
8369 * toplev.c (print_switch_values): Use cl_report bit-field instead
8370 of CL_REPORT flag.
8371
8372 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8373
8374 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8375 a zero minimum index only if it is redundant.
8376
8377 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
8378
8379 PR rtl-optimization/48381
8380 * ira-color.c (assign_hard_reg): Use hard reg set intersection
8381 instead of ira_class_hard_reg_index for calculating conflicting
8382 hard registers.
8383
8384 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
8385
8386 * cprop.c: Clean up hash table building.
8387 (reg_avail_info): Remove.
8388 (oprs_available_p): Remove.
8389 (record_last_reg_set_info): Remove.
8390 (record_last_set_info): Remove.
8391 (reg_available_p): New function.
8392 (gcse_constant_p): Do not treat unfolded conditions as constants.
8393 (make_set_regs_unavailable): New function.
8394 (hash_scan_set): Simplify with new reg_available_p.
8395 (compute_hash_table_work): Traverse insns stream only once.
8396 Do not compute reg_avail_info. Traverse insns in reverse order.
8397 Record implicit sets after recording explicit sets from the block.
8398
8399 2011-03-31 Michael Matz <matz@suse.de>
8400
8401 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8402
8403 2011-03-31 Anatoly Sokolov <aesok@post.ru>
8404
8405 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8406 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8407 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8408 (h8300_mode_dependent_address_p): New function.
8409 (h8300_get_index): Make static.
8410
8411 2011-03-31 Jeff Law <law@redhat.com>
8412
8413 * reload1.c (elimination_effects): Fix typo in recent change.
8414
8415 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8416 typo potentially leading to null pointer dereference.
8417
8418 * caller-save.c (new_saved_hard_reg): Eliminate return value.
8419 (setup_save_areas): Corresponding changes to avoid useless
8420 assignments.
8421
8422 * jump.c (reversed_comparison_code_parts): Avoid successive return
8423 statements when REVERSE_CONDITION is defined.
8424
8425 * expr.c (expand_assignment): Avoid useless assignments.
8426 (expand_expr_real_1): Likewise.
8427 (expand_expr_real_2): Avoid useless statements.
8428
8429 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8430
8431 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8432
8433 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8434 statements.
8435
8436 * stmt.c (expand_expr_stmt): Avoid useless assignment.
8437
8438 2011-03-31 Joseph Myers <joseph@codesourcery.com>
8439
8440 PR target/47109
8441 * doc/tm.texi.in (TARGET_VERSION): Remove.
8442 * doc/tm.texi: Regenerate.
8443 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8444 * collect2.c (main): Don't use TARGET_VERSION.
8445 * mips-tdump.c (main): Don't use TARGET_VERSION.
8446 * mips-tfile.c (main): Don't use TARGET_VERSION.
8447 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8448 * config/rs6000/vxworksae.h: Remove.
8449 * config/alpha/alpha.h (TARGET_VERSION): Remove.
8450 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8451 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8452 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8453 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8454 * config/arm/arm.h (TARGET_VERSION): Remove.
8455 * config/arm/coff.h (TARGET_VERSION): Remove.
8456 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8457 * config/arm/elf.h (TARGET_VERSION): Remove.
8458 * config/arm/freebsd.h (TARGET_VERSION): Remove.
8459 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8460 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8461 * config/arm/pe.h (TARGET_VERSION): Remove.
8462 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8463 * config/arm/semi.h (TARGET_VERSION): Remove.
8464 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8465 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8466 * config/arm/vxworks.h (TARGET_VERSION): Remove.
8467 * config/avr/avr.h (TARGET_VERSION): Remove.
8468 * config/bfin/bfin.h (TARGET_VERSION): Remove.
8469 * config/fr30/fr30.h (TARGET_VERSION): Remove.
8470 * config/frv/frv.h (TARGET_VERSION): Remove.
8471 * config/h8300/h8300.h (TARGET_VERSION): Remove.
8472 * config/i386/cygwin.h (TARGET_VERSION): Remove.
8473 * config/i386/darwin.h (TARGET_VERSION): Remove.
8474 * config/i386/darwin64.h (TARGET_VERSION): Remove.
8475 * config/i386/djgpp.h (TARGET_VERSION): Remove.
8476 * config/i386/freebsd.h (TARGET_VERSION): Remove.
8477 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8478 * config/i386/gnu.h (TARGET_VERSION): Remove.
8479 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8480 * config/i386/i386elf.h (TARGET_VERSION): Remove.
8481 * config/i386/linux.h (TARGET_VERSION): Remove.
8482 * config/i386/linux64.h (TARGET_VERSION): Remove.
8483 * config/i386/lynx.h (TARGET_VERSION): Remove.
8484 * config/i386/mingw32.h (TARGET_VERSION): Remove.
8485 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8486 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8487 * config/i386/netware.h (TARGET_VERSION): Remove.
8488 * config/i386/nto.h (TARGET_VERSION): Remove.
8489 * config/i386/openbsd.h (TARGET_VERSION): Remove.
8490 * config/i386/vxworks.h (TARGET_VERSION): Remove.
8491 * config/ia64/elf.h (TARGET_VERSION): Remove.
8492 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8493 * config/ia64/hpux.h (TARGET_VERSION): Remove.
8494 * config/ia64/linux.h (TARGET_VERSION): Remove.
8495 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8496 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8497 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8498 * config/lm32/lm32.h (TARGET_VERSION): Remove.
8499 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8500 * config/m32c/m32c.h (TARGET_VERSION): Remove.
8501 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8502 * config/m32r/m32r.h (TARGET_VERSION): Remove.
8503 * config/m68k/linux.h (TARGET_VERSION): Remove.
8504 * config/m68k/m68k.h (TARGET_VERSION): Remove.
8505 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8506 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8507 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8508 * config/mep/mep.h (TARGET_VERSION): Remove.
8509 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8510 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8511 * config/mips/iris6.h (MACHINE_TYPE): Remove.
8512 * config/mips/linux.h (TARGET_VERSION): Remove.
8513 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8514 * config/mips/vxworks.h (TARGET_VERSION): Remove.
8515 * config/mmix/mmix.h (TARGET_VERSION): Remove.
8516 * config/mn10300/linux.h (TARGET_VERSION): Remove.
8517 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8518 * config/pa/pa.h (TARGET_VERSION): Remove.
8519 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8520 * config/picochip/picochip.h (TARGET_VERSION): Remove.
8521 * config/rs6000/aix.h (TARGET_VERSION): Remove.
8522 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8523 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8524 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8525 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8526 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8527 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8528 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8529 * config/rs6000/linux.h (TARGET_VERSION): Remove.
8530 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8531 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8532 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8533 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8534 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8535 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8536 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8537 * config/s390/linux.h (TARGET_VERSION): Remove.
8538 * config/s390/s390.h (TARGET_VERSION): Remove.
8539 * config/s390/tpf.h (TARGET_VERSION): Remove.
8540 * config/score/score.h (TARGET_VERSION): Remove.
8541 * config/sh/linux.h (TARGET_VERSION): Remove.
8542 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8543 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8544 * config/sh/sh.h (TARGET_VERSION): Remove.
8545 * config/sh/sh64.h (TARGET_VERSION): Remove.
8546 * config/sh/superh.h (TARGET_VERSION): Remove.
8547 * config/sh/vxworks.h (TARGET_VERSION): Remove.
8548 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8549 * config/sparc/linux.h (TARGET_VERSION): Remove.
8550 * config/sparc/linux64.h (TARGET_VERSION): Remove.
8551 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8552 TARGET_NAME32, TARGET_NAME): Remove.
8553 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8554 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8555 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8556 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8557 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8558 * config/spu/spu.h (TARGET_VERSION): Remove.
8559 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8560 * config/v850/v850.h (TARGET_VERSION): Remove.
8561 * config/vax/linux.h (TARGET_VERSION): Remove.
8562 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8563 * config/xtensa/elf.h (TARGET_VERSION): Remove.
8564 * config/xtensa/linux.h (TARGET_VERSION): Remove.
8565
8566 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8567
8568 PR target/48142
8569 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8570 frame-related from frame-unrelated adjustments to the stack pointer.
8571
8572 2011-03-31 Jakub Jelinek <jakub@redhat.com>
8573
8574 * common.opt (fdebug-types-section): Move earlier.
8575 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8576
8577 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
8578
8579 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8580 var.
8581
8582 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
8583
8584 * tree.h (CASE_CHAIN): Define.
8585 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8586 (gimple_redirect_edge_and_branch): Likewise.
8587
8588 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8589
8590 PR middle-end/48367
8591 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8592 calculation.
8593
8594 2011-03-30 Jeff Law <law@redhat.com>
8595
8596 * PR bootstrap/48371
8597 * reload1.c (reload): Fix botch in last change.
8598
8599 * reload.h (struct reload): Fix typo introduced in last change.
8600
8601 2011-03-30 Joseph Myers <joseph@codesourcery.com>
8602
8603 * config/arm/arm.opt (mhard-float, msoft-float): Mark
8604 Undocumented. Remove help text.
8605 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8606 -mhard-float.
8607
8608 2011-03-30 Joseph Myers <joseph@codesourcery.com>
8609
8610 * doc/options.texi (NegativeAlias): Document.
8611 (Alias): Mention NegativeAlias.
8612 * opt-functions.awk: Handle NegativeAlias.
8613 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8614 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8615 * opts.h (CL_NEGATIVE_ALIAS): Define.
8616 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8617 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8618 OPT_mspe_.
8619 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8620 Alias entries.
8621 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8622 mno-spe and mno-isel instead of mspe=no and -misel=no.
8623
8624 2011-03-29 Mark Wielaard <mjw@redhat.com>
8625
8626 * common.opt (fdebug-types-section): New flag.
8627 * doc/invoke.texi: Document new -fno-debug-types-section flag.
8628 * dwarf2out.c (use_debug_types): New define.
8629 (struct die_struct): Mark die_id with GTY desc use_debug_types.
8630 (print_die): Guard output of type unit signatures using
8631 use_debug_types.
8632 (build_abbrev_table): Replace assert of dwarf_version >= 4
8633 with assert on use_debug_types.
8634 (size_of_die): Likewise.
8635 (unmark_dies): Likewise.
8636 (value_format): Decide AT_ref_external form on use_debug_types.
8637 (output_die): Replace dwarf_version version check guard with
8638 use_debug_types where appropriate.
8639 (modified_type_die): Likewise.
8640 (gen_reference_type_die): Likewise.
8641 (dwarf2out_start_source_file): Likewise.
8642 (dwarf2out_end_source_file): Likewise.
8643 (prune_unused_types_walk_attribs): Likewise.
8644 (dwarf2out_finish): Likewise.
8645
8646 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8647
8648 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8649
8650 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8651
8652 PR rtl-optimization/48332
8653 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8654 mode of input operand N and modeN to its actual mode.
8655
8656 2011-03-30 Jeff Law <law@redhat.com>
8657
8658 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8659 define accessor macro.
8660 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8661 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8662 (reg_equiv_init): Likewise.
8663 (reg_equivs_size): New variable.
8664 (reg_equiv_init_size): Remove.
8665 (allocate_initial_values): Move prototype to here from....
8666 * integrate.h (allocate_initial_values): Remove prototype.
8667 * integrate.c: Include reload.h.
8668 (allocate_initial_values): Corresponding changes.
8669 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8670 (fix_reg_equiv_init, no_equiv): Corresponding changes.
8671 (update_equiv_regs): Corresponding changes.
8672 (ira): Corresponding changes.
8673 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8674 (push_secondary_reload): Corresponding changes.
8675 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8676 (make_memloc, find_reloads_address): Corresponding changes.
8677 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8678 (find_reloads_address_1): Corresponding changes.
8679 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8680 (refers_to_regno_for_reload_p): Corresponding changes.
8681 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8682 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8683 * reload1.c: Include ggc.h.
8684 (grow_reg_equivs): New function.
8685 (replace_pseudos_in, reload): Corresponding changes.
8686 (calculate_needs_all_insns, alter_regs): Corresponding changes.
8687 (eliminate_regs_1, elimination_effects): Corresponding changes.
8688 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8689 (delete_output_reload): Likewise.
8690 * caller-save.c (mark_referenced_regs): Corresponding changes.
8691 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8692 * frv/predicates.md (frv_load_operand): Corresponding changes.
8693 * microblaze/microblaze.c (double_memory_operand): Corresponding
8694 changes.
8695 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8696 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8697 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8698 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8699 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8700 changes.
8701 * pa/pa.c (emit_move_sequence): Corresponding changes.
8702 * vax/vax.c (nonindexed_address_p): Corresponding changes.
8703
8704 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8705
8706 PR target/47551
8707 * config/arm/arm.c (coproc_secondary_reload_class): Handle
8708 structure modes. Don't check neon_vector_mem_operand for
8709 vector or structure modes.
8710
8711 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8712 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8713
8714 PR target/43590
8715 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8716 operand 1 and reshuffle the operands to match.
8717 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8718
8719 2011-03-30 Christian Schüler <cschueler@gmx.de>
8720
8721 PR driver/48208
8722 * config/c.opt (F): Added 'Driver' to -F option.
8723
8724 PR driver/48260
8725 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8726 handler function.
8727 * config/darwin.opt: Added '-arch' option.
8728
8729 2011-03-30 Nick Clifton <nickc@redhat.com>
8730
8731 * config/rx/rx.md: Add peepholes and patterns to combine
8732 extending loads and simple arithmetic instructions.
8733 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8734 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8735 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8736 modes to use pre-decrement and post-increment addressing.
8737 (rx_is_restricted_memory_address): Add range checking of REG+INT
8738 addresses.
8739 (rx_print_operand): Add support for %Q. Fix handling of %Q.
8740 (rx_memory_move_cost): Adjust cost of stores.
8741 (rx_adjust_insn_length): New function.
8742
8743 2011-03-30 Jakub Jelinek <jakub@redhat.com>
8744
8745 PR c/48305
8746 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8747 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8748 matching arg00/arg01 types.
8749
8750 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
8751
8752 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8753 last_location to UNKNOWN_LOCATION.
8754
8755 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
8756
8757 PR target/48349
8758 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8759 FLOAT_SSE_REGS.
8760
8761 2011-03-30 Joseph Myers <joseph@codesourcery.com>
8762 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8763
8764 PR bootstrap/48337
8765 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8766 Init(PROCESSOR_V7).
8767 (sparc_cpu): Likewise.
8768 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8769 PROCESSOR_V7.
8770
8771 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8772
8773 PR target/48336
8774 PR middle-end/48342
8775 PR rtl-optimization/48345
8776 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8777 hard regs for given mode from profitable regs when doing secondary
8778 allocation.
8779
8780 2011-03-29 Jeff Law <law@redhat.com>
8781
8782 PR bootstrap/48327
8783 * tree-ssa-threadupdate.c (struct redirection_data): Remove
8784 do_not_duplicate field.
8785 (lookup_redirection_data): Corresponding changes.
8786 (create_duplicates): Always create a template block.
8787 (redirect_edges): Remove code which reused the original block
8788 when it was going to become unreachable code.
8789 (thread_block): Don't set do_not_duplicate field.
8790
8791 2011-03-29 Joseph Myers <joseph@codesourcery.com>
8792
8793 * lto-opts.c (register_user_option_p, lto_register_user_option):
8794 Make type argument unsigned.
8795 * lto-streamer.h (lto_register_user_option): Make type argument
8796 unsigned.
8797 * opth-gen.awk: Make CL_* macros unsigned.
8798 * opts-common.c (find_opt): Make lang_mask argument unsigned.
8799 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8800 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8801 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8802 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8803 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8804 (find_opt): Make lang_mask argument unsigned.
8805
8806 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8807
8808 PR rtl-optimization/48331
8809 PR rtl-optimization/48334
8810 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8811 for any used algorithm.
8812
8813 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8814
8815 * ira-conflicts.c (build_object_conflicts): Add unused attribute
8816 to parent_max.
8817
8818 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
8819
8820 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8821 (alpha_option_override): Don't set alpha_sr_alias_set.
8822 (emit_frame_store_1): Use gen_frame_mem rather than calling
8823 set_mem_alias_set.
8824 (alpha_expand_epilogue): Ditto.
8825
8826 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
8827
8828 PR tree-optimization/48290
8829 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8830 vectorization, check that relevant phis in the basic block after
8831 the inner loop are really inner loop's exit phis.
8832
8833 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
8834
8835 PR debug/48190
8836 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8837 (cached_dw_loc_list_def): New structure.
8838 (cached_dw_loc_list): New typedef.
8839 (cached_dw_loc_list_table): New variable.
8840 (cached_dw_loc_list_table_hash): New function.
8841 (cached_dw_loc_list_table_eq): Likewise.
8842 (add_location_or_const_value_attribute): Take a bool cache_p.
8843 Cache the list when the parameter is true.
8844 (gen_formal_parameter_die): Update caller.
8845 (gen_variable_die): Likewise.
8846 (dwarf2out_finish): Likewise.
8847 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8848 while generating debug info for the decl.
8849 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8850 (dwarf2out_init): Initialize cached_dw_loc_list_table.
8851 (resolve_addr): Cache the result of resolving a chain of
8852 location lists.
8853
8854 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
8855
8856 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8857 conflict object hard regset nodes have intersecting hard reg sets.
8858
8859 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8860 after regstat_init_n_sets_and_refs.
8861
8862 * ira.c: Add more comments at the top.
8863 (setup_stack_reg_pressure_class, setup_pressure_classes):
8864 Add comments how we compute the register pressure classes.
8865 (setup_allocno_and_important_classes): Add more comments.
8866 (setup_class_translate_array, reorder_important_classes)
8867 (setup_reg_class_relations): Add comments.
8868
8869 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
8870 start of the file.
8871
8872 * ira-color.c: Add 2011 to the Copyright line.
8873 (assign_hard_reg): Add more comments.
8874 (improve_allocation): Ditto.
8875
8876 * ira-costs.c: Add 2011 to the Copyright line.
8877 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8878 comments.
8879 (setup_regno_cost_classes_by_mode): Ditto.
8880
8881 Initial patches from ira-improv branch:
8882
8883 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8884
8885 * ira-build.c (ira_create_object): Remove initialization of
8886 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
8887 (ira_create_allocno): Remove initialization of
8888 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8889 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8890 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8891 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8892 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8893 Initialize ALLOCNO_ADD_DATA.
8894 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8895 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8896 ALLOCNO_REG.
8897 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
8898 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8899
8900 * ira.c (ira_reallocate): Remove.
8901 (setup_pressure_classes): Call
8902 ira_init_register_move_cost_if_necessary. Use
8903 ira_register_move_cost instead of ira_get_register_move_cost.
8904 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8905 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8906
8907 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8908 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8909 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8910 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8911 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8912 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8913 Fix formatting.
8914 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8915 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8916 (struct allocno_color_data): New.
8917 (allocno_color_data_t): New typedef.
8918 (allocno_color_data): New definition.
8919 (ALLOCNO_COLOR_DATA): New macro.
8920 (struct object_color_data): New.
8921 (object_color_data_t): New typedef.
8922 (object_color_data): New definition.
8923 (OBJECT_COLOR_DATA): New macro.
8924 (update_copy_costs, calculate_allocno_spill_cost): Call
8925 ira_init_register_move_cost_if_necessary. Use
8926 ira_register_move_cost instead of ira_get_register_move_cost.
8927 (move_spill_restore, update_curr_costs): Ditto.
8928 (allocno_spill_priority): Make it inline.
8929 (color_pass): Allocate and free allocno_color_dat and object_color_data.
8930 (struct coalesce_data, coalesce_data_t): New.
8931 (allocno_coalesce_data): New definition.
8932 (ALLOCNO_COALESCE_DATA): New macro.
8933 (merge_allocnos, coalesced_allocno_conflict_p): Use
8934 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8935 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8936 (coalesce_allocnos): Ditto.
8937 (setup_coalesced_allocno_costs_and_nums): Ditto.
8938 (collect_spilled_coalesced_allocnos): Ditto.
8939 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8940 (setup_slot_coalesced_allocno_live_ranges): Ditto.
8941 (coalesce_spill_slots): Ditto.
8942 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
8943 free allocno_coalesce_data.
8944
8945 * ira-conflicts.c: Fix formatting.
8946 (process_regs_for_copy): Call
8947 ira_init_register_move_cost_if_necessary. Use
8948 ira_register_move_cost instead of ira_get_register_move_cost.
8949 (build_object_conflicts): Optimize.
8950
8951 * ira-costs.c (record_reg_classes): Optimize. Call
8952 ira_init_register_move_cost_if_necessary. Use
8953 ira_register_move_cost, ira_may_move_in_cost, and
8954 ira_may_move_out_cost instead of ira_get_register_move_cost and
8955 ira_get_may_move_cost.
8956 (record_address_regs): Ditto.
8957 (scan_one_insn): Optimize.
8958 (find_costs_and_classes): Optimize.
8959 (process_bb_node_for_hard_reg_moves): Call
8960 ira_init_register_move_cost_if_necessary. Use
8961 ira_register_move_cost instead of ira_get_register_move_cost.
8962
8963 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8964 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8965 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8966 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8967 definitions.
8968 (ira_initiate_emit_data, ira_finish_emit_data)
8969 (create_new_allocno): New functions.
8970 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8971 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8972 Use ira_register_move_cost instead of ira_get_register_move_cost.
8973
8974 * ira-int.h: Fix some comments.
8975 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8976 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8977 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8978 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
8979 add_data.
8980 (struct ira_allocno): Make mode and aclass a bitfield. Move other
8981 bitfield after mode. Make hard_regno a short int. Make
8982 hard_regno short. Remove first_coalesced_allocno and
8983 next_coalesced_allocno. Move mem_optimized_dest_p,
8984 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8985 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
8986 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8987 temp, colorable_p. Add new member add_data.
8988 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8989 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8990 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8991 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8992 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8993 (ALLOCNO_ADD_DATA): New macro.
8994 (ira_emit_data_t): New typedef.
8995 (struct ira_emit_data): New. Move mem_optimized_dest_p,
8996 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8997 from struct ira_allocno.
8998 (ALLOCNO_EMIT_DATA): New macro.
8999 (ira_allocno_emit_data, allocno_emit_reg): New.
9000 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
9001 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
9002 (OBJECT_ADD_DATA): New macro.
9003 (ira_reallocate): Remove.
9004 (ira_initiate_emit_data, ira_finish_emit_data): New.
9005 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
9006 (ira_init_register_move_cost_if_necessary): New.
9007 (ira_object_conflict_iter_next): Merge into
9008 ira_object_conflict_iter_cond.
9009 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
9010
9011 * ira-live.c (process_single_reg_class_operands): Call
9012 ira_init_register_move_cost_if_necessary. Use
9013 ira_register_move_cost instead of ira_get_register_move_cost.
9014
9015 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
9016
9017 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
9018
9019 * ira-costs.c: Fix formatting.
9020 (cost_classes, cost_classes_num): Remove.
9021 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
9022 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
9023 (cost_classes_del, cost_classes_htab): New.
9024 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
9025 (initiate_regno_cost_classes, setup_cost_classes): New.
9026 (setup_regno_cost_classes_by_aclass): New.
9027 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
9028 (record_reg_classes): Use regno_cost_classes instead of
9029 cost_classes. Move checking opposite operand up.
9030 (record_address_regs): Use regno_cost_classes
9031 instead of cost_classes.
9032 (scan_one_insn): Ditto. Use always general register.
9033 (print_allocno_costs): Use regno_cost_classes instead of
9034 cost_classes.
9035 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
9036 (find_costs_and_classes): Set up cost classes for each registers.
9037 Use also their mode for this. Use regno_cost_classes instead of
9038 cost_classes.
9039 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
9040 cost_classes.
9041 (free_ira_costs, ira_init_costs): Don't use cost_classes.
9042 (ira_costs, ira_set_pseudo_classes): Call
9043 initiate_regno_cost_classes and finish_regno_cost_classes.
9044
9045 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
9046
9047 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
9048
9049 * target.def (ira_cover_classes): Remove.
9050
9051 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
9052
9053 * doc/tm.texi.in: Ditto.
9054
9055 * ira-conflicts.c: Remove mentioning cover classes from the file.
9056 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
9057 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
9058
9059 * targhooks.c (default_ira_cover_classes): Remove.
9060
9061 * targhooks.h (default_ira_cover_classes): Ditto.
9062
9063 * haifa-sched.c: Remove mentioning cover classes from the file.
9064 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9065 ira_pressure_classes and ira_pressure_classes_num instead of
9066 ira_reg_class_cover_size and ira_reg_class_cover. Use
9067 sched_regno_pressure_class instead of sched_regno_cover_class.
9068 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
9069 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9070
9071 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
9072 classes from the file.
9073 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
9074 (struct object_hard_regs, struct object_hard_regs_node): New.
9075 (struct ira_object): New members profitable_hard_regs,
9076 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
9077 (struct ira_allocno): Rename cover_class to aclass. Rename
9078 cover_class_cost and updated_cover_class_cost to class_cost and
9079 updated_class_cost. Remove splay_removed_p and
9080 left_conflict_size. Add new members colorable_p.
9081 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
9082 (ALLOCNO_COLORABLE_P): New macro.
9083 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
9084 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
9085 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
9086 (OBJECT_...): Rename parameter C to O.
9087 (OBJECT_PROFITABLE_HARD_REGS): New macro.
9088 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
9089 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
9090 (struct target_ira_int): New members x_ira_max_memory_move_cost,
9091 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
9092 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
9093 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
9094 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
9095 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
9096 x_ira_reg_class_subunion.
9097 (ira_max_memory_move_cost, ira_max_register_move_cost)
9098 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
9099 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
9100 (ira_important_class_nums, ira_reg_class_superunion): New macros.
9101 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
9102 (ira_reg_class_union): Rename to ira_reg_class_subunion.
9103 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9104 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9105 (ira_tune_allocno_costs_and_cover_classes): Rename to
9106 ira_tune_allocno_costs.
9107 (ira_debug_hard_regs_forest): New.
9108 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
9109 (ira_object_conflict_iter_next): Fix comments.
9110 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
9111 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
9112 cover_class to aclass.
9113 (ira_allocate_and_accumulate_costs): Ditto.
9114 (ira_allocate_and_set_or_copy_costs): Ditto.
9115
9116 * opts.c (decode_options): Remove ira_cover_class check.
9117
9118 * ira-color.c: Remove mentioning cover classes from the file. Use
9119 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
9120 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
9121 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9122 (splay-tree.h): Remove include.
9123 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
9124 before copy_freq_compare_func.
9125 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
9126 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
9127 New definitions.
9128 (hard_regs_roots, hard_regs_node_vec): Ditto.
9129 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
9130 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
9131 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
9132 (create_new_object_hard_regs_node): Ditto.
9133 (add_new_object_hard_regs_node_to_forest): Ditto.
9134 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
9135 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
9136 Ditto.
9137 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
9138 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
9139 (remove_unused_object_hard_regs_nodes): Ditto.
9140 (enumerate_object_hard_regs_nodes): Ditto.
9141 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
9142 (object_hard_regs_subnode_t): Ditto.
9143 (struct object_hard_regs_subnode): Ditto.
9144 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
9145 (setup_object_hard_regs_subnode_index): Ditto.
9146 (get_object_hard_regs_subnodes_num): Ditto.
9147 (form_object_hard_regs_nodes_forest): Ditto.
9148 (finish_object_hard_regs_nodes_tree): Ditto.
9149 (finish_object_hard_regs_nodes_forest): Ditto.
9150 (allocnos_have_intersected_live_ranges_p): Rename to
9151 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9152 (pseudos_have_intersected_live_ranges_p): Rename to
9153 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
9154 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
9155 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
9156 (update_copy_costs): Remove assert. Skip cost update if the hard
9157 reg does not belong the class.
9158 (assign_hard_reg): Process only profitable hard regs.
9159 (uncolorable_allocnos_num): Make it scalar.
9160 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9161 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
9162 and ira_reg_class_max_nregs.
9163 (bucket_allocno_compare_func): Check frequency first.
9164 (sort_bucket): Add compare function as a parameter.
9165 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
9166 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
9167 (push_allocno_to_stack): Rewrite for checking new allocno
9168 colorability.
9169 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
9170 (push_only_colorable): Pass new parameter to sort_bucket.
9171 (push_allocno_to_spill): Remove.
9172 (allocno_spill_priority_compare): Make it inline and rewrite.
9173 (splay_tree_allocate, splay_tree_free): Remove.
9174 (allocno_spill_sort_compare): New function.
9175 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
9176 build and use splay tree. Choose first allocno in uncolorable
9177 allocno bucket to spill. Remove setting spill cost.
9178 (all_conflicting_hard_regs): Remove.
9179 (setup_allocno_available_regs_num): Check only profitable hard
9180 regs. Print info about hard regs nodes.
9181 (setup_allocno_left_conflicts_size): Remove.
9182 (put_allocno_into_bucket): Don't call
9183 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
9184 (improve_allocation): New.
9185 (color_allocnos): Call setup_profitable_hard_regs,
9186 form_object_hard_regs_nodes_forest, improve_allocation,
9187 finish_object_hard_regs_nodes_forest. Setup spill cost.
9188 (print_loop_title): Use pressure classes.
9189 (color_allocnso): Ditto.
9190 (do_coloring): Remove allocation and freeing splay_tree_node_pool
9191 and allocnos_for_spilling.
9192 (ira_sort_regnos_for_alter_reg): Don't setup members
9193 {first,next}_coalesced_allocno.
9194 (color): Remove allocating and freeing removed_splay_allocno_vec.
9195 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9196 prohibited_class_mode_regs.
9197
9198 * ira-lives.c: Remove mentioning cover classes from the file. Fix
9199 formatting.
9200 (update_allocno_pressure_excess_length): Use pressure classes.
9201 (inc_register_pressure, dec_register_pressure): Check for pressure
9202 class.
9203 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9204 pressure class. Use ira_reg_class_nregs instead of
9205 ira_reg_class_max_nregs.
9206 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9207 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9208 (single_reg_class): Use ira_reg_class_nregs instead of
9209 ira_reg_class_max_nregs.
9210 (process_bb_node_lives): Use pressure classes.
9211
9212 * ira-emit.c: Remove mentioning cover classes from the file. Use
9213 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
9214 (change_loop): Use pressure classes.
9215 (modify_move_list): Call ira_set_allocno_class instead of
9216 ira_set_allocno_cover_class.
9217
9218 * ira-build.c: Remove mentioning cover classes from the file. Use
9219 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9220 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
9221 ALLOCNO_UPDATED_CLASS_COST instead of
9222 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9223 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9224 (ira_create_allocno): Remove initialization of
9225 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
9226 ALLOCNO_COLORABLE_P.
9227 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9228 Update conflict regs for the objects.
9229 (create_cap_allocno): Remove assert. Don't propagate
9230 ALLOCNO_AVAILABLE_REGS_NUM.
9231 (ira_free_allocno_costs): New function.
9232 (finish_allocno): Change a part of code into call of
9233 ira_free_allocno_costs.
9234 (low_pressure_loop_node_p): Use pressure classes.
9235 (object_range_compare_func): Don't compare classes.
9236 (setup_min_max_conflict_allocno_ids): Ditto.
9237
9238 * loop-invariant.c: Remove mentioning cover classes from the file.
9239 Use ira_pressure_classes and ira_pressure_classes_num instead of
9240 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
9241 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9242 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9243 Use reg_allocno_class instead of reg_cover_class.
9244 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9245 STACK_REG_COVER_CLASS.
9246 (get_regno_cover_class): Rename to get_regno_pressure_class.
9247 (move_loop_invariants): Initialize and finalize regstat.
9248
9249 * ira.c: Remove mentioning cover classes from the file. Add
9250 comments about coloring without cover classes. Use ALLOCNO_CLASS
9251 instead of ALLOCNO_COVER_CLASS. Fix formatting.
9252 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9253 setup_class_subset_and_memory_move_costs.
9254 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9255 (setup_cover_and_important_classes): Rename to
9256 setup_allocno_and_important_classes.
9257 (setup_class_translate_array): New.
9258 (setup_class_translate): Call it for allocno and pressure classes.
9259 (cover_class_order): Rename to allocno_class_order.
9260 (comp_reg_classes_func): Use ira_allocno_class_translate instead
9261 of ira_class_translate.
9262 (reorder_important_classes): Set up ira_important_class_nums.
9263 (setup_reg_class_relations): Set up ira_reg_class_superunion.
9264 (print_class_cover): Rename to print_classes. Add parameter.
9265 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9266 Print pressure classes too.
9267 (find_reg_class_closure): Rename to find_reg_classes. Don't call
9268 setup_reg_subclasses.
9269 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9270 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9271 (setup_prohibited_class_mode_regs): Use
9272 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9273 (clarify_prohibited_class_mode_regs): New function.
9274 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9275 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9276 (ira_init_once): Initialize them.
9277 (free_register_move_costs): Process them.
9278 (ira_init): Move calls of find_reg_classes and
9279 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9280 Call clarify_prohibited_class_mode_regs.
9281 (ira_no_alloc_reg): Remove.
9282 (too_high_register_pressure_p): Use pressure classes.
9283
9284 * sched-deps.c: Remove mentioning cover classes from the file.
9285 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9286 ira_pressure_classes and ira_pressure_classes_num instead of
9287 ira_reg_class_cover_size and ira_reg_class_cover.
9288 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9289 sched_regno_pressure_class instead of sched_regno_cover_class.
9290 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
9291 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9292
9293 * ira.h: Add 2010 to Copyright.
9294 (ira_no_alloc_reg): Remove external.
9295 (struct target_ira): Rename x_ira_hard_regno_cover_class,
9296 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9297 x_ira_class_translate to x_ira_hard_regno_allocno_class,
9298 x_ira_allocno_classes_num, x_ira_allocno_classes, and
9299 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
9300 x_ira_pressure_classes, x_ira_pressure_class_translate, and
9301 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
9302 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
9303 x_ira_no_alloc_regs.
9304 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9305 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9306 ira_allocno_classes_num and ira_allocno_classes.
9307 (ira_class_translate): Rename to ira_allocno_class_translate.
9308 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9309 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9310 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9311 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9312 (ira_no_alloc_regs): New.
9313
9314 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
9315 classes from the file. Use ALLOCNO_CLASS instead of
9316 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
9317 ALLOCNO_COVER_CLASS_COST.
9318 (regno_cover_class): Rename to regno_aclass.
9319 (record_reg_classes): Use ira_reg_class_subunion instead of
9320 ira_reg_class_union.
9321 (record_address_regs): Check overflow.
9322 (scan_one_insn): Ditto.
9323 (print_allocno_costs): Print total mem cost fore regional allocation.
9324 (print_pseudo_costs): Use REG_N_REFS.
9325 (find_costs_and_classes): Use classes intersected with them on the
9326 1st pass. Check overflow. Use ira_reg_class_subunion instead of
9327 ira_reg_class_union. Use ira_allocno_class_translate and
9328 regno_aclass instead of ira_class_translate and regno_cover_class.
9329 Modify code for finding regno_aclass. Setup preferred classes for
9330 the next pass.
9331 (setup_allocno_cover_class_and_costs): Rename to
9332 setup_allocno_class_and_costs. Use regno_aclass instead of
9333 regno_cover_class. Use ira_set_allocno_class instead of
9334 ira_set_allocno_cover_class.
9335 (init_costs, finish_costs): Use regno_aclass instead of
9336 regno_cover_class.
9337 (ira_costs): Use setup_allocno_class_and_costs instead of
9338 setup_allocno_cover_class_and_costs.
9339 (ira_tune_allocno_costs_and_cover_classes): Rename to
9340 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
9341 by processing objects. Use ira_reg_class_max_nregs instead of
9342 ira_reg_class_nregs.
9343
9344 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9345
9346 * sched-int.h: Remove mentioning cover classes from the file.
9347 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9348
9349 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
9350 classes from the file.
9351 (struct reg_pref): Rename coverclass into allocnoclass.
9352 (reg_cover_class): Rename to reg_allocno_class.
9353
9354 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9355
9356 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9357
9358 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9359
9360 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9361
9362 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9363
9364 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9365
9366 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9367
9368 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9369
9370 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9371
9372 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9373
9374 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9375 (i386_ira_cover_classes): Ditto.
9376
9377 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9378
9379 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9380
9381 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9382
9383 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9384
9385 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9386
9387 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9388
9389 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9390 (mips_ira_cover_classes): Ditto.
9391
9392 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9393
9394 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9395
9396 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9397
9398 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9399
9400 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9401
9402 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9403 (IRA_COVER_CLASSES_VSX): Ditto.
9404
9405 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9406 (rs6000_ira_cover_classes): Ditto.
9407
9408 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9409
9410 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9411
9412 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9413
9414 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9415
9416 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9417
9418 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9419
9420 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9421
9422 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9423
9424 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9425
9426 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9427
9428 2011-03-29 Jakub Jelinek <jakub@redhat.com>
9429
9430 PR debug/48253
9431 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9432 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9433 dw_fde_unlikely_section_end_label, cold_in_std_section,
9434 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9435 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9436 fields.
9437 (output_fde): Use dw_fde_second_{begin,end} if second is
9438 true, otherwise dw_fde_{begin,end}.
9439 (output_call_frame_info): Test dw_fde_second_begin != NULL
9440 instead of dw_fde_switched_sections.
9441 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9442 fields, initialize new fields. Initialize in_std_section
9443 unconditionally from the first partition.
9444 (dwarf2out_end_epilogue): Don't override dw_fde_end when
9445 dw_fde_second_begin is non-NULL.
9446 (dwarf2out_switch_text_section): Stop initializing removed
9447 dw_fde_struct fields, initialize new fields, initialize
9448 also dw_fde_end here. Set dw_fde_switch_cfi even when
9449 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
9450 (struct var_loc_list_def): Add last_before_switch field.
9451 (arange_table, arange_table_allocated, arange_table_in_use,
9452 ARANGE_TABLE_INCREMENT, add_arange): Removed.
9453 (size_of_aranges): Count !in_std_section and !second_in_std_section
9454 hunks in fdes, instead of looking at arange_table_in_use.
9455 (output_aranges): Add aranges_length argument, don't call
9456 size_of_aranges here. Instead of using aranges_table*
9457 emit ranges for fdes when !in_std_section resp.
9458 !second_in_std_section.
9459 (dw_loc_list): Break ranges crossing section switch.
9460 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
9461 use dw_fde_second_end instead of dw_fde_end as end of last range.
9462 (gen_subprogram_die): Don't call add_arange. Use
9463 dw_fde_{begin,end} for first partition and if switched
9464 section dw_fde_second_{begin,end} for the second.
9465 (var_location_switch_text_section_1,
9466 var_location_switch_text_section): New functions.
9467 (dwarf2out_begin_function): Initialize cold_text_section even
9468 when function_section () isn't text_section.
9469 (prune_unused_types): Don't walk arange_table.
9470 (dwarf2out_finish): Don't needlessly test
9471 flag_reorder_blocks_and_partition when testing cold_text_section_used.
9472 If info_section_emitted, call size_of_aranges and if it indicates
9473 non-empty .debug_aranges, call output_aranges with the computed
9474 size. Stop using removed dw_fde_struct fields, use
9475 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9476 for second.
9477
9478 PR debug/48203
9479 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9480 create ENTRY_VALUE if incoming or address of incoming's MEM
9481 is a hard REG.
9482 * dwarf2out.c (mem_loc_descriptor): Don't emit
9483 DW_OP_GNU_entry_value of DW_OP_fbreg.
9484 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9485 on ENTRY_VALUE is able to find the canonical parameter VALUE.
9486 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9487 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9488 ENTRY_VALUE_EXPs.
9489 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9490 is a REG_P or MEM_P with REG_P address, compute hash directly
9491 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9492 (preserve_only_constants): Don't clear VALUES forwaring
9493 ENTRY_VALUE to some other VALUE.
9494
9495 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
9496
9497 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9498 instead of GEN_INT.
9499
9500 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9501
9502 * cfgexpand.c (expand_gimple_cond): Always set the source location and
9503 block before expanding the statement.
9504 (expand_gimple_stmt_1): Likewise. Set them here...
9505 (expand_gimple_stmt): ...and not here. Tidy.
9506 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9507 unknown.
9508
9509 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9510
9511 * Makefile.in: New rule for cprop.o.
9512 * gcse.c: Move constant/copy propagation to cprop.c.
9513 (compute_local_properties): Only handle expression tables.
9514 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9515 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9516 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9517 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9518 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9519 compute_cprop_data, find_used_regs, try_replace_reg,
9520 find_avail_set, cprop_jump, constprop_register, cprop_insn,
9521 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9522 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9523 find_bypass_set, reg_killed_on_edge, bypass_block,
9524 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9525 execute_rtl_cprop, pass_rtl_cprop): Move to...
9526 * cprop.c: ...here. New file, constant/copy propagation for RTL
9527 moved from gcse.c to here with minor cleanups in duplicated code.
9528
9529 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
9530
9531 * config/i386/i386.c (flag_opts): Fix a typo in
9532 -mavx256-split-unaligned-store.
9533
9534 2011-03-28 Anatoly Sokolov <aesok@post.ru>
9535
9536 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9537 LIBCALL_VALUE): Remove macros.
9538 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9539 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9540 (h8300_function_value, h8300_libcall_value,
9541 h8300_function_value_regno_p): New functions.
9542
9543 2011-03-28 Anatoly Sokolov <aesok@post.ru>
9544
9545 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9546
9547 2011-03-28 Jeff Law <law@redhat.com>
9548
9549 * tree-ssa-threadupdate.c (redirect_edges): Call
9550 create_edge_and_update_destination_phis as needed.
9551 (create_edge_and_update_destination_phis): Accept new BB argument.
9552 All callers updated.
9553 (thread_block): Do not update the profile when threading around
9554 intermediate blocks.
9555 (thread_single_edge): Likewise.
9556 (determine_bb_domination_status): If BB is not a successor of the
9557 loop header, return NONDOMINATING.
9558 (register_jump_thread): Note when we register a jump thread around
9559 an intermediate block.
9560 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9561 (thread_across_edge): Use it.
9562
9563 2011-03-28 Tristan Gingold <gingold@adacore.com>
9564
9565 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9566 when for_return is 2.
9567
9568 2011-03-28 Jeff Law <law@redhat.com>
9569
9570 * var-tracking.c (canonicalize_values_mark): Delete unused
9571 lhs assignment.
9572 (canonicalize_values_star, set_variable_part): Likewise.
9573 (clobber_variable_part, delete_variable_part): Likewise.
9574
9575 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9576
9577 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9578
9579 2011-03-28 Martin Jambor <mjambor@suse.cz>
9580
9581 * tree-inline.c (expand_call_inline): Do not check that destination
9582 node is analyzed.
9583 (optimize_inline_calls): Assert that destination node is analyzed.
9584 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9585 not call tree_lowering_passes.
9586 * cgraph.h (cgraph_analyze_function): Declare.
9587 * cgraphunit.c (cgraph_analyze_function): Make public.
9588
9589 2011-03-28 Joseph Myers <joseph@codesourcery.com>
9590
9591 * config/sparc/sparc-opts.h: New.
9592 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9593 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9594 (sparc_option_override): Store processor_type enumeration rather
9595 than string in cpu_default. Remove name and enumeration from
9596 cpu_table. Directly default -mcpu then default -mtune from -mcpu
9597 without using sparc_select. Use target_flags_explicit instead of
9598 fpu_option_set.
9599 * config/sparc/sparc.h (enum processor_type): Move to
9600 sparc-opts.h.
9601 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9602 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9603 HeaderInclude entry.
9604 (mcpu=, mtune=): Use Var and Enum.
9605 (sparc_processor_type): New Enum and EnumValue entries.
9606
9607 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9608 Iain Sandoe <iains@gcc.gnu.org>
9609
9610 PR target/48245
9611 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9612
9613 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9614
9615 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9616 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9617 Insert new statements at it in lieu of STMT.
9618 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9619 * tree-vect-stmts.c (vectorizable_store): Likewise.
9620 (vectorizable_load): Likewise.
9621
9622 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
9623
9624 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9625 (divtf3): Ditto.
9626 (multf3): Ditto.
9627 (subtf3): Ditto.
9628
9629 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9630
9631 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9632 unaligned 256bit load/store.
9633 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9634 (*avx_movdqu<avxmodesuffix>): Likewise.
9635
9636 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9637
9638 PR target/48288
9639 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9640 * config/pa/pa.md (iordi3): Use new predicate in expander.
9641 (iorsi3): Likewise.
9642
9643 2011-03-27 Anatoly Sokolov <aesok@post.ru>
9644
9645 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9646 FUNCTION_VALUE_REGNO_P): Remove macros.
9647 * config/mips/mips-protos.h (mips_function_value): Remove.
9648 * config/mips/mips.c (mips_function_value): Rename to...
9649 (mips_function_value_1): ... this. Make static. Handle receiving
9650 the function type in 'fn_decl_or_type' argument.
9651 (mips_function_value, mips_libcall_value,
9652 mips_function_value_regno_p): New function.
9653 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9654 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9655
9656 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9657
9658 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9659 and -mavx256-split-unaligned-store.
9660 (ix86_option_override_internal): Split 32-byte AVX unaligned
9661 load/store by default.
9662 (ix86_avx256_split_vector_move_misalign): New.
9663 (ix86_expand_vector_move_misalign): Use it.
9664
9665 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9666 -mavx256-split-unaligned-store.
9667
9668 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9669 256bit load/store. Generate unaligned store on misaligned memory
9670 operand.
9671 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9672 256bit load/store.
9673 (*avx_movdqu<avxmodesuffix>): Likewise.
9674
9675 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9676 -mavx256-split-unaligned-store.
9677
9678 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9679
9680 PR target/38598
9681 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9682 Update commentary.
9683
9684 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9685
9686 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9687 opno arguments with an expand_operand. Use create_input_operand.
9688 (mips_prepare_builtin_target): Delete.
9689 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9690 functions.
9691 (mips_expand_builtin_direct): Use create_output_operand and
9692 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
9693 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
9694 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9695
9696 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
9697
9698 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9699 function.
9700 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9701
9702 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9703
9704 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9705 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
9706 basic blocks and call commit_edge_insertions directly.
9707 (fixup_abnormal_edges): Move from here to...
9708 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
9709 on the edges and return whether some have actually been inserted.
9710 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9711 compensation code.
9712
9713 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
9714
9715 PR rtl-optimization/48144
9716 * sel-sched-ir.c (merge_history_vect): Factor out from ...
9717 (merge_expr_data): ... here.
9718 (av_set_intersect): Rename to av_set_code_motion_filter.
9719 Update all callers. Call merge_history_vect when an expression
9720 is found in both sets.
9721 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9722
9723 2011-03-26 Alan Modra <amodra@gmail.com>
9724
9725 * config/rs6000/predicates.md (word_offset_memref_op): Handle
9726 cmodel medium addresses.
9727 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9728 64-bit gpr loads and stores.
9729 (rs6000_secondary_reload_ppc64): New function.
9730 * config/rs6000/rs6000-protos.h: Declare it.
9731 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9732
9733 2011-03-26 Alan Modra <amodra@gmail.com>
9734
9735 PR target/47487
9736 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9737 GNU Go in traceback table.
9738
9739 2011-03-25 Richard Henderson <rth@redhat.com>
9740
9741 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9742 if there are exactly 6 operands.
9743 (set_storage_via_setmem): Similarly.
9744
9745 2011-03-25 Kai Tietz <ktietz@redhat.com>
9746
9747 * collect2.c (write_c_file_stat): Handle backslash
9748 as right-hand directory separator.
9749 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9750 checking just for slash.
9751 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9752 instead of checking for trailing slash.
9753 * gcc.c (record_temp_file): Use filename_cmp instead
9754 of strcmp.
9755 (do_spec_1): Likewise.
9756 (replace_outfile_spec_function): Likewise.
9757 (is_directory): Use filename_ncmp instead of strncmp.
9758 (print_multilib_info): Likewise.
9759 * gcov.c (find_source): Use filename_cmp instead
9760 instead of strcmp.
9761 (make_gcov_file_name): Fix order of slash/backslash
9762 checks.
9763 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9764 (add_standard_paths): Likewise.
9765 * mips-tfile.c (saber_stop): Handle backslash.
9766 * prefix.c (update_path): Use filename_ncmp instead of
9767 strncmp.
9768 * profile.c (output_location): Use filename_cmp instead
9769 of strcmp.
9770 * read-md.c (handle_toplevel_file): Handle backslash.
9771 * tlink.c (frob_extension): Likewise.
9772 * tree-cfg.c (same_line_p): Use filename_cmp instead of
9773 strcmp.
9774 * tree-dump.c (dequeue_and_dump): Handle backslash.
9775 * tree.c (get_file_function_name): Likewise.
9776 * gengtype.c (read_input_list): Likewise.
9777 (get_file_realbasename): Likewise.
9778 (get_output_file_with_visibility): Use filename_cmp
9779 instead of strcmp.
9780
9781 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
9782
9783 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9784 case to VFPv1.
9785
9786 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9787
9788 * fold-const.c (expr_location_or): New function.
9789 (fold_truth_not_expr): Call it.
9790
9791 2011-03-25 Jeff Law <law@redhat.com>
9792
9793 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9794 va_end.
9795 * c-family/c-common.c (def_fn_type): Likewise.
9796 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9797 * emit-rtl.c (gen_rtvec): Likewise.
9798 * lto/lto-lang.c (def_fn_type): Likewise.
9799
9800 2011-03-25 Richard Guenther <rguenther@suse.de>
9801
9802 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9803 also generate copies.
9804 (fini_copy_prop): Handle constant values properly.
9805
9806 2011-03-25 Jakub Jelinek <jakub@redhat.com>
9807
9808 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9809 mode size instead of bitsize with DWARF2_ADDR_SIZE.
9810 (hash_loc_operands, compare_loc_operands): Handle
9811 DW_OP_GNU_entry_value.
9812
9813 2011-03-25 Kai Tietz <ktietz@redhat.com>
9814
9815 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9816 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9817 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9818 comment and use macro TARGET_64BIT_MS_ABI instead.
9819 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9820 and change default behavior for 32-bit MS_ABI.
9821 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9822 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9823 32-bit, too.
9824 (ix86_cfun_abi): Likewise.
9825 (ix86_maybe_switch_abi): Adjust comment.
9826 (init_cumulative_args): Check for bit-ness in MS_ABI case.
9827 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9828 instead of checking for SYSV_ABI.
9829 (ix86_nsaved_sseregs): Likewise.
9830 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9831 to 16 bytes.
9832 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9833 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9834 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9835 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9836 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9837
9838 2011-03-25 Richard Guenther <rguenther@suse.de>
9839
9840 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9841 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9842 (verify_gimple): Remove.
9843 * tree-cfg.c (verify_gimple_call): Merge verification
9844 from verify_stmts.
9845 (verify_gimple_phi): Merge verification from verify_stmts.
9846 (verify_gimple_label): New function.
9847 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9848 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9849 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9850 (verify_stmts): Rename to verify_gimple_in_cfg.
9851 (verify_gimple_in_cfg): New function.
9852 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9853 * tree-ssa.c (verify_ssa): Likewise.
9854 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9855
9856 2011-03-25 Richard Guenther <rguenther@suse.de>
9857
9858 * passes.c (init_optimization_passes): Add FRE pass after
9859 early SRA.
9860
9861 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
9862 Andrew Stubbs <ams@codesourcery.com>
9863
9864 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9865 for Cortex-A8.
9866 (arm_movdi_vfp_cortexa8): New pattern.
9867 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9868 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9869 instructions when tuning for Cortex-A8. Set attribute "arch".
9870 * config/arm/arm.md: Move include arm-tune.md up a bit.
9871 (define_attr "arch"): Add "onlya8" and "nota8" values.
9872 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9873
9874 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9875
9876 PR bootstrap/48282
9877 Revert:
9878 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9879
9880 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9881 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9882 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9883 * passes.c (init_optimization_passes): Move
9884 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9885
9886 2011-03-25 Kai Tietz <ktietz@redhat.com>
9887
9888 * c-typeck.c (comptypes_internal): Replace target
9889 hook call of comp_type_attributes by version in tree.c file.
9890 * gimple.c (gimple_types_compatible_p_1): Likewise.
9891 * tree-ssa.c (useless_type_conversion_p): Likewise.
9892 * tree.c (build_type_attribute_qual_variant): Likewise.
9893 (attribute_value_equal): New static helper function.
9894 (comp_type_attributes): New function.
9895 (merge_attributes): Use attribute_value_equal for comparison.
9896 (attribute_list_contained): Likewise.
9897 * tree.h (comp_type_attributes): New prototype.
9898
9899 2011-03-25 Richard Guenther <rguenther@suse.de>
9900
9901 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9902 of complex types at -O0.
9903 (verify_gimple_assign_binary): Likewise.
9904 (verify_gimple_assign_ternary): Likewise.
9905
9906 2011-03-24 Mark Wielaard <mjw@redhat.com>
9907
9908 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9909 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9910
9911 2011-03-24 Mark Wielaard <mjw@redhat.com>
9912
9913 PR debug/48041
9914 * dwarf2out.c (output_abbrev_section): Only write table when
9915 abbrev_die_table_in_use > 1.
9916
9917 2011-02-24 Richard Henderson <rth@redhat.com>
9918
9919 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9920 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9921 (alpha_expand_unaligned_load_words): Use extql.
9922 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9923 (emit_insxl): Handle all modes for consistency.
9924
9925 2011-02-24 Richard Henderson <rth@redhat.com>
9926
9927 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9928 (alpha_expand_unaligned_load): Likewise.
9929 (alpha_expand_unaligned_store): Likewise.
9930 (alpha_expand_unaligned_load_words): Likewise.
9931 (alpha_expand_unaligned_store_words): Likewise.
9932 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9933 (alpha_split_lock_test_and_set_12): Likewise.
9934 (print_operand, alpha_fold_builtin_extxx): Likewise.
9935 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9936 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9937 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9938 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9939 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9940 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9941 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9942 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9943 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9944 (extwl, extll, extql): Similarly.
9945 (inswh, inslh, insqh): Similarly.
9946 (mskbl, mskwl, mskll, mskql): Similarly.
9947 (mskwh, msklh, mskqh): Similarly.
9948
9949 2011-02-24 Richard Henderson <rth@redhat.com>
9950
9951 * config/alpha/alpha.md (attribute isa): Add er, ner.
9952 (attribute enabled): Handle them.
9953 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9954
9955 2011-02-24 Richard Henderson <rth@redhat.com>
9956
9957 * config/alpha/alpha.md (attribute isa): Add vms.
9958 (attribute enabled): Handle it.
9959 (*movsf): Merge *movsf_{nofix,fix,nofp}.
9960 (*movdf): Merge *movdf_{nofix,fix,nofp}.
9961 (*movtf): Rename from *movtf_internal for consistency.
9962 (*movsi): Merge with *movsi_nt_vms.
9963 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9964 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9965 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9966 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9967
9968 2011-02-24 Richard Henderson <rth@redhat.com>
9969
9970 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9971 (extendqisi2, extendhisi2): Likewise.
9972 (extendqidi2): Simplify BWX/non-BWX expansions.
9973 (extendhidi2): Similarly.
9974
9975 2011-02-24 Richard Henderson <rth@redhat.com>
9976
9977 * config/alpha/alpha.md (attribute isa): New.
9978 (attribute enabled): New.
9979 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9980 (zero_extendqisi2, zero_extendqidi2): Similarly.
9981 (zero_extendhisi2, zero_extendhidi2): Similarly.
9982 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9983
9984 2011-02-24 Richard Henderson <rth@redhat.com>
9985
9986 * config/alpha/predicates.md (input_operand): Revert last change;
9987 update comment to mention 32-bit VMS rather than Windows.
9988
9989 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9990
9991 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9992 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9993 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9994 * passes.c (init_optimization_passes): Move
9995 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9996
9997 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9998
9999 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
10000
10001 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10002
10003 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
10004 correctly.
10005
10006 2011-03-24 Jakub Jelinek <jakub@redhat.com>
10007
10008 PR debug/48204
10009 * simplify-rtx.c (simplify_const_unary_operation): Call
10010 real_convert when changing mode class with FLOAT_EXTEND.
10011
10012 2011-03-24 Nick Clifton <nickc@redhat.com>
10013
10014 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
10015 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10016 * config/rx/rx.c (rx_option_override): Set align_jumps,
10017 align_loops and align_labels if not set by the user.
10018 (rx_align_for_label): New function.
10019 (rx_max_skip_for_label): New function.
10020 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
10021 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
10022 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
10023 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
10024 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
10025
10026 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10027
10028 PR rtl-optimization/48263
10029 * optabs.c (expand_binop_directly): Reinstate convert_modes code
10030 and original commutative_p handling. Use maybe_gen_insn.
10031
10032 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10033
10034 * reload.c (find_reloads_subreg_address): Add address_reloaded
10035 parameter and return true there if the full address has been
10036 reloaded.
10037 (find_reloads_toplev): Pass address_reloaded flag.
10038 (find_reloads_address_1): Don't use address_reloaded parameter.
10039
10040 2011-03-24 Jeff Law <law@redhat.com>
10041
10042 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
10043 unused variable "ann".
10044 (remove_unused_locals): Likewise.
10045
10046 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
10047 statement.
10048
10049 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
10050 after it is freed.
10051
10052 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10053
10054 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
10055 for invalid symbolic addresses.
10056 (s390_secondary_reload): Don't use s390_check_symref_alignment for
10057 larl operands.
10058
10059 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10060
10061 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
10062 the argument in calls to fold_truth_not_expr.
10063
10064 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10065
10066 * tree.c (record_node_allocation_statistics): New function.
10067 (make_node_stat, copy_node_stat, build_string): Call it.
10068 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
10069 (build1_stat, build_omp_clause): Likewise.
10070
10071 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10072
10073 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
10074 last commit.
10075
10076 2011-03-24 Richard Guenther <rguenther@suse.de>
10077
10078 PR tree-optimization/48271
10079 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
10080 blocks that still exist.
10081
10082 2011-03-24 Richard Guenther <rguenther@suse.de>
10083
10084 PR tree-optimization/48270
10085 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
10086 not free datarefs before ddrs.
10087
10088 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10089
10090 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
10091 from the address built for a reference with variable offset.
10092
10093 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
10094
10095 PR target/48237
10096 * config/i386/i386.md (*movdf_internal_rex64): Do not split
10097 alternatives that can be handled with movq or movabsq insn.
10098 (*movdf_internal): Disable for !TARGET_64BIT.
10099 (*movdf_internal_nointeger): Ditto.
10100 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
10101
10102 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
10103
10104 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10105 (FUNCTION_ARG_ADVANCE): Likewise.
10106 * tm.texi.in: Change references to them to hook references.
10107 * tm.texi: Regenerate.
10108 * targhooks.c (default_function_arg): Eliminate check for target macro.
10109 (default_function_incoming_arg): Likewise.
10110 (default_function_arg_advance): Likewise.
10111 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10112 (function_arg_advance): Likewise.
10113 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10114
10115 2011-03-24 Richard Guenther <rguenther@suse.de>
10116
10117 PR middle-end/48269
10118 * tree-object-size.c (addr_object_size): Do not double-account
10119 for MEM_REF offsets.
10120
10121 2011-03-24 Diego Novillo <dnovillo@google.com>
10122
10123 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
10124 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
10125 (lto_input_data_block): Move from lto-opts.c. Make extern.
10126 Update all users.
10127 (lto_input_string): Rename from input_string. Make extern.
10128 Update all users.
10129 * lto-streamer-out.c (lto_output_string_with_length): Rename from
10130 output_string_with_length.
10131 Output 0 to indicate a non-NULL string. Update all callers to
10132 not emit 0.
10133 (lto_output_string): Rename from output_string. Make extern.
10134 Update all users.
10135 (lto_output_decl_state_streams): Make extern.
10136 (lto_output_decl_state_refs): Make extern.
10137 * lto-streamer.h (lto_input_string): Declare.
10138 (lto_input_data_block): Declare.
10139 (lto_output_string): Declare.
10140 (lto_output_string_with_length): Declare.
10141 (lto_output_decl_state_streams): Declare.
10142 (lto_output_decl_state_refs): Declare.
10143
10144 2011-03-24 Richard Guenther <rguenther@suse.de>
10145
10146 PR tree-optimization/46562
10147 * tree.c (build_invariant_address): New function.
10148 * tree.h (build_invariant_address): Declare.
10149 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
10150 a renamed function moved ...
10151 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
10152 Take valueization callback parameter.
10153 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
10154 * gimple-fold.h: New file.
10155 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
10156 (ccp_fold, fold_const_aggregate_ref,
10157 fold_ctor_reference, fold_nonarray_ctor_reference,
10158 fold_array_ctor_reference, fold_string_cst_ctor_reference,
10159 get_base_constructor): Move ...
10160 * gimple-fold.c: ... here.
10161 (gimple_fold_stmt_to_constant_1): New function
10162 split out from ccp_fold. Take a valueization callback parameter.
10163 Valueize all operands.
10164 (gimple_fold_stmt_to_constant): New wrapper function.
10165 (fold_const_aggregate_ref_1): New function split out from
10166 fold_const_aggregate_ref. Take a valueization callback parameter.
10167 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
10168 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
10169 invariant POINTER_PLUS_EXPRs to invariant form.
10170 (vn_valueize): New function.
10171 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
10172 * tree-vrp.c (vrp_valueize): New function.
10173 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
10174 to fold statements to constants.
10175 * tree-ssa-pre.c (eliminate): Properly guard propagation of
10176 function declarations.
10177 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
10178 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10179
10180 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10181
10182 * config/h8300/predicates.md (jump_address_operand): Fix register
10183 mode check.
10184
10185 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
10186
10187 * doc/invoke.texi (max-stores-to-sink): Document.
10188 * params.h (MAX_STORES_TO_SINK): Define.
10189 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10190 if either vectorization or if-conversion is disabled.
10191 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10192 tree-vect-data-refs.c vect_equal_offsets.
10193 (dr_equal_offsets_p): New function.
10194 (find_data_references_in_bb): Remove static.
10195 * tree-data-ref.h (find_data_references_in_bb): Declare.
10196 (dr_equal_offsets_p): Likewise.
10197 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10198 (vect_drs_dependent_in_basic_block): Update calls to
10199 vect_equal_offsets.
10200 (vect_check_interleaving): Likewise.
10201 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10202 (cond_if_else_store_replacement): Rename to...
10203 (cond_if_else_store_replacement_1): ... this. Change arguments and
10204 documentation.
10205 (cond_if_else_store_replacement): New function.
10206 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10207 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10208
10209 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
10210
10211 PR target/46934
10212 * config/arm/arm.md (casesi): Use the gen_int_mode() function
10213 to subtract lower bound instead of GEN_INT().
10214
10215 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
10216
10217 PR other/48179
10218 PR other/48221
10219 PR other/48234
10220 * doc/extend.texi (Alignment): Move section to match order in TOC.
10221 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10222 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10223
10224 2011-03-23 Jeff Law <law@redhat.com>
10225
10226 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10227 before removing the edge.
10228
10229 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10230 it may have been freed by redirect_branch_edge or
10231 redirect_edge_succ_nodup.
10232
10233 2011-03-23 Richard Guenther <rguenther@suse.de>
10234
10235 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10236 (check_va_list_escapes): Likewise.
10237 (check_all_va_list_escapes): Likewise.
10238
10239 2011-03-23 Richard Guenther <rguenther@suse.de>
10240
10241 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10242 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10243 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10244 (alias.o): Likewise.
10245 (ipa-type-escape.o): Remove.
10246 (ipa-struct-reorg.o): Likewise.
10247 (GTFILES): Remove ipa-struct-reorg.c.
10248 * alias.c: Do not include ipa-type-escape.h.
10249 * tree-ssa-alias.c: Likewise.
10250 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10251 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10252 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10253 and ipa-type-escape passes.
10254 * tree-pass.h (pass_ipa_type_escape): Remove.
10255 (pass_ipa_struct_reorg): Likewise.
10256 * ipa-struct-reorg.h: Remove.
10257 * ipa-struct-reorg.c: Likewise.
10258 * ipa-type-escape.h: Likewise.
10259 * ipa-type-escape.c: Likewise.
10260 * doc/invoke.texi (-fipa-struct-reorg): Remove.
10261 (--param struct-reorg-cold-struct-ratio): Likewise.
10262 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10263 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10264 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10265
10266 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10267
10268 * config/s390/2084.md: Enable all insn reservations also for z9_ec
10269 cpu attribute value.
10270 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10271 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10272 * config/s390/s390.c (processor_flags_table): New constant array.
10273 (s390_handle_arch_option): Remove.
10274 (s390_handle_option): Remove s390_handle_arch_option invocations
10275 and OPT_mwarn_framesize_ handling.
10276 (s390_option_override): Remove s390_handle_arch_option invocation.
10277 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10278 warnings.
10279 * config/s390/s390.md (cpu attribute): Add z9_ec value.
10280 * config/s390/s390.opt (s390_tune, s390_arch)
10281 (march=): Replace s390_arch_option enum and values with
10282 processor_type. Set variable name to s390_arch. Set
10283 initialization value.
10284 (mtune=): Replace s390_arch_option with processor_type. Set
10285 variable name to s390_tune. Set initialization value.
10286
10287 2011-03-23 Julian Brown <julian@codesourcery.com>
10288
10289 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10290 accesses which are not naturally aligned.
10291
10292 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10293
10294 PR target/47553
10295 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10296
10297 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10298
10299 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10300 parameter from "int" to "enum insn_code".
10301 (expand_operand_type): New enum.
10302 (expand_operand): New structure.
10303 (create_expand_operand): New function.
10304 (create_fixed_operand, create_output_operand): Likewise
10305 (create_input_operand, create_convert_operand_to): Likewise.
10306 (create_convert_operand_from, create_address_operand): Likewise.
10307 (create_integer_operand): Likewise.
10308 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10309 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10310 (expand_insn, expand_jump_insn): Likewise.
10311 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10312 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10313 (expand_movstr, expand_builtin___clear_cache): Likewise.
10314 (expand_builtin_lock_release): Likewise.
10315 * explow.c (allocate_dynamic_stack_space): Likewise.
10316 (probe_stack_range): Likewise. Allow check_stack to FAIL,
10317 and use the default handling in that case.
10318 * expmed.c (check_predicate_volatile_ok): Delete.
10319 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10320 (emit_cstore): Likewise.
10321 * expr.c (emit_block_move_via_movmem): Likewise.
10322 (set_storage_via_setmem, expand_assignment): Likewise.
10323 (emit_storent_insn, try_casesi): Likewise.
10324 (emit_single_push_insn): Likewise. Allow the expansion to fail.
10325 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10326 (expand_vec_shift_expr, expand_binop_directly): Likewise.
10327 (expand_twoval_unop, expand_twoval_binop): Likewise.
10328 (expand_unop_direct, emit_indirect_jump): Likewise.
10329 (emit_conditional_move, vector_compare_rtx): Likewise.
10330 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10331 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10332 (expand_sync_lock_test_and_set): Likewise.
10333 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
10334 (emit_unop_insn): Likewise.
10335 (expand_copysign_absneg): Change icode to an insn_code.
10336 (create_convert_operand_from_type): New function.
10337 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10338 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10339 (expand_insn, expand_jump_insn): Likewise.
10340 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10341 than const_int_operand for operand 2.
10342
10343 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10344
10345 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10346 if possible.
10347
10348 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10349
10350 * emit-rtl.c (emit_pattern_before_noloc): New function.
10351 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10352 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10353 (emit_pattern_after_noloc): New function.
10354 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10355 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10356
10357 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10358
10359 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10360 (__ffsDI2): Likewise.
10361
10362 2011-03-22 Richard Henderson <rth@redhat.com>
10363
10364 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10365 of !TARGET_ABI_OPEN_VMS.
10366 (alpha_trampoline_init, alpha_start_function): Likewise.
10367 (alpha_expand_epilogue, alpha_file_start): Likewise.
10368 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10369 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10370 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10371 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10372 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10373
10374 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10375
10376 * config/s390/s390-opts.h: New.
10377 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10378 s390_arch_flags, s390_warn_framesize, s390_stack_size,
10379 s390_stack_guard): Remove.
10380 (s390_handle_arch_option): Return void. Take enum
10381 s390_arch_option value instead of string and searching array.
10382 (s390_handle_option): Don't assert that global structures are in
10383 use. Access variables via opts pointer. Use error_at. Don't use
10384 sscanf for -mstack-guard= or -mstack-size=. Update call to
10385 s390_handle_arch_option.
10386 (s390_option_override): Update call to s390_handle_arch_option.
10387 (s390_emit_prologue): Use %d format for s390_stack_size in
10388 diagnostic. Use %wd for HOST_WIDE_INT.
10389 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10390 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10391 * config/s390/s390.opt (config/s390/s390-opts.h): New
10392 HeaderInclude entry.
10393 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10394 s390_arch_flags, s390_warn_framesize): New Variable entries.
10395 (s390_arch_option): New Enum and EnumValue entries.
10396 (march=): Use Enum instead of Var.
10397 (mstack-guard=, mstack-size=): Use UInteger and Var.
10398 (mtune=): Use Enum.
10399
10400 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10401
10402 * config/score/score.c (score_handle_option): Don't assert that
10403 global structures are in use. Access target_flags via opts
10404 pointer. Use value of -march= option to determine target_flags
10405 settings.
10406 * config/score/score.opt (march=): Use Enum.
10407 (score_arch): New Enum and EnumValue entries.
10408
10409 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10410
10411 * config/mep/mep.c (option_mtiny_specified): Remove.
10412 (mep_option_override): Move register handling for -mivc2 from
10413 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
10414 instead of option_mtiny_specified.
10415 (mep_handle_option): Access target_flags via opts pointer. Don't
10416 assert that global structures are in use. Defer part of -mivc2
10417 handling and move it to mep_option_override.
10418 * config/mep/mep.opt (IVC2): New Mask entry.
10419 (mivc2): Use Var and Defer instead of Mask.
10420
10421 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10422
10423 * config/v850/v850-opts.h: New.
10424 * config/v850/v850.c (small_memory): Replace with
10425 small_memory_physical_max array. Make that array static const.
10426 (v850_handle_memory_option): Take integer value of argument. Take
10427 gcc_options pointer, option text and location. Return void.
10428 Update for changes to small memory structures.
10429 (v850_handle_option): Access target_flags via opts pointer. Don't
10430 assert that global structures are in use. Update calls to
10431 v850_handle_memory_option.
10432 (v850_encode_data_area): Update references to small memory settings.
10433 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10434 (enum small_memory_type): Move to v850-opts.h.
10435 * config/v850/v850.opt (config/v850/v850-opts.h): New
10436 HeaderInclude entry.
10437 (small_memory_max): New Variable entry.
10438 (msda): Replace by pair of options msda= and msda-. Use UInteger.
10439 (mtda, mzda): Likewise.
10440
10441 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10442
10443 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10444 pointer. Don't assert that global structures are in use.
10445
10446 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10447
10448 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10449 via opts pointer. Don't assert that global structures are in use.
10450
10451 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10452
10453 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10454 (munix=93): Use Var.
10455 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10456 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10457 * config/pa/pa-opts.h: New.
10458 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10459 (pa_handle_option): Don't assert that global structures are in
10460 use. Access target_flags via opts pointer. Don't handle
10461 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10462 OPT_munix_98 here.
10463 (pa_option_override): Handle deferred OPT_mfixed_range_.
10464
10465 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10466
10467 * config/mn10300/mn10300-opts.h: New.
10468 * config/mn10300/mn10300.c (mn10300_processor,
10469 mn10300_tune_string): Remove.
10470 (mn10300_handle_option): Don't assert that global structures are
10471 in use. Access mn10300_processor via opts pointer. Don't handle
10472 OPT_mtune_ here.
10473 * config/mn10300/mn10300.h (enum processor_type): Move to
10474 mn10300-opts.h.
10475 (mn10300_processor): Remove.
10476 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10477 HeaderInclude entry.
10478 (mn10300_processor): New Variable entry.
10479 (mtune=): Use Var.
10480
10481 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10482
10483 * config/microblaze/microblaze.c: Don't include opts.h.
10484 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10485 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10486 (mno-clearbss): Use Var and Warn.
10487
10488 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10489
10490 * config/m32r/m32r-opts.h: New.
10491 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10492 (m32r_handle_option): Don't assert that global structures are in
10493 use. Access target_flags and m32r_cache_flush_func via opts
10494 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
10495 OPT_mno_flush_trap here.
10496 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10497 include of m32r-opts.h.
10498 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10499 HeaderInclude entry.
10500 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10501 (mmodel=): Use Enum and Var.
10502 (m32r_model): New Enum and EnumValue entries.
10503 (mno-flush-trap): Use Var.
10504 (msdata=): Use Enum and Var.
10505 (m32r_sdata): New Enum and EnumValue entries.
10506
10507 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10508
10509 * config/m32c/m32c.c: Don't include opts.h.
10510 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10511 m32c_handle_option): Remove.
10512 (m32c_option_override): Check global_options_set.x_target_memregs
10513 instead of target_memregs_set.
10514 * config/m32c/m32c.h (target_memregs): Remove.
10515 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10516 variable.
10517
10518 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10519
10520 * config/iq2000/iq2000-opts.h: New.
10521 * config/iq2000/iq2000.c: Don't include opts.h.
10522 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10523 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10524 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10525 HeaderInclude entry.
10526 (iq2000_tune): New Variable entry.
10527 (march=): Add comment. Use Enum.
10528 (iq2000_arch): New Enum and EnumValue entries.
10529 (mcpu=): Use Enum and Var.
10530 (iq2000_tune): New Enum and EnumValue entries.
10531
10532 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10533
10534 * config/ia64/ia64-opts.h: New.
10535 * config/ia64/ia64.c (ia64_tune): Remove.
10536 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10537 here. Use error_at.
10538 (ia64_option_override): Handle deferred OPT_mfixed_range_.
10539 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10540 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10541 HeaderInclude entry.
10542 (ia64_tune): New Variable entry.
10543 (mfixed-range=): Use Defer and Var.
10544 (mtune=): Use Enum and Var.
10545 (ia64_tune): New Enum and EnumValue entries.
10546
10547 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10548
10549 * config/frv/frv-opts.h: New.
10550 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10551 frv-opts.h.
10552 (frv_cpu_type): Remove.
10553 * config/frv/frv.c: Don't include opts.h.
10554 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10555 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10556 (frv_cpu_type): New Variable entry.
10557 (frv_cpu): New Enum and EnumValue entries.
10558
10559 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10560
10561 * config/cris/cris.c (cris_handle_option): Access target_flags via
10562 opts pointer. Don't assert that global structures are in use.
10563 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10564 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10565
10566 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10567
10568 * config/bfin/bfin-opts.h: New.
10569 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10570 bfin_si_revision, bfin_workarounds): Remove.
10571 (bfin_cpus): Make static const.
10572 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10573 not bfin_lib_id_given.
10574 (bfin_handle_option): Don't set bfin_lib_id_given. Access
10575 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10576 pointer. Use error_at. Don't assert that global structures are in use.
10577 * config/bfin/bfin.h: Include bfin-opts.h.
10578 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10579 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10580 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10581 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10582 entries.
10583
10584 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10585
10586 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10587 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10588 or -msoft-float here.
10589 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10590 -msoft-float and -mhard-float.
10591 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10592 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10593 msoft-float.
10594 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10595 -msoft-float.
10596 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10597 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10598 not mhard-float.
10599 (LIBGCC_SPEC): Don't handle -msoft-float.
10600 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10601 -mhard-float.
10602 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10603 msoft-float.
10604 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10605 -mfloat-abi=*, not -msoft-float and -mhard-float.
10606 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10607 -msoft-float.
10608 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10609 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10610 mhard-float and msoft-float.
10611 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10612 mfloat-abi=soft in comments, not mhard-float and msoft-float.
10613 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10614 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10615 mhard-float.
10616 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10617 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10618 msoft-float.
10619 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10620 not mhard-float.
10621 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10622 not msoft-float.
10623
10624 2011-03-22 Richard Henderson <rth@redhat.com>
10625
10626 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10627 TARGET_ABI_WINDOWS_NT.
10628 (alpha_output_function_end_prologue): Likewise.
10629 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10630 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10631 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10632 (trap, *movsi_nt_vms): Likewise.
10633 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10634 (*tablejump_osf_nt_internal): Remove.
10635 * config/alpha/predicates.md (input_operand): Only test Pmode.
10636
10637 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10638
10639 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10640 via opts pointer. Use error_at. Don't assert that global
10641 structures are in use.
10642
10643 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10644
10645 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10646 (ix86_handle_option): Access ix86_isa_flags and
10647 ix86_isa_flags_explicit via opts pointer. Don't assert that
10648 global structures are in use.
10649 (ix86_function_specific_save, ix86_function_specific_restore):
10650 Update ix86_isa_flags_explicit field name.
10651 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10652 (ix86_isa_flags_explicit): Rename TargetSave entry to
10653 x_ix86_isa_flags_explicit.
10654
10655 2011-03-22 Richard Henderson <rth@redhat.com>
10656
10657 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10658 (alpha_option_override, direct_return): Likewise.
10659 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10660 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10661 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10662 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10663 (alpha_expand_epilogue, alpha_end_function): Likewise.
10664 (alpha_init_libfuncs): Likewise.
10665 (struct machine_function): Remove unicosmk members.
10666 (print_operand) ['t']: Remove.
10667 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10668 unicosmk_output_module_name, unicosmk_output_common,
10669 current_section_align, unicosmk_output_text_section_asm_op,
10670 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10671 unicosmk_section_type_flags, unicosmk_unique_section,
10672 unicosmk_asm_named_section, unicosmk_insert_attributes,
10673 unicosmk_output_align, unicosmk_defer_case_vector,
10674 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10675 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10676 unicosmk_output_ssib, unicosmk_add_call_info_word,
10677 unicosmk_extern_head, unicosmk_output_default_externs,
10678 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10679 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10680 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10681 * config/alpha/alpha-protos.h: Update.
10682 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10683 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10684 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10685 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10686 (*mulsi_se, mulvsi3): Likewise.
10687 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10688 (*divmodsi_internal, call, call_value, realign): Likewise.
10689 (moddi3, umoddi3): Likewise; remove duplicate expander.
10690 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10691 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10692 (*movdi_nofix): Remove r/U alternative.
10693 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10694 * config/alpha/constraints.md ("U"): Remove.
10695 * config/alpha/predicates.md (call_operand"): Don't test
10696 TARGET_ABI_UNICOSMK.
10697
10698 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10699
10700 * target.def (handle_option): Take gcc_options and
10701 cl_decoded_option pointers and location_t.
10702 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10703 * doc/tm.texi: Regenerate.
10704 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10705 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10706 * lto-opts.c (lto_reissue_options): Generate option structure for
10707 targetm.handle_option call.
10708 * opts.c (target_handle_option): Update call to
10709 targetm.handle_option. Remove assertions about values now passed
10710 down to hook.
10711 * targhooks.c (default_target_handle_option): New.
10712 * targhooks.h (default_target_handle_option): Declare.
10713 * config/alpha/alpha.c: Include opts.h.
10714 (alpha_handle_option): Update to new hook interface.
10715 * config/arm/arm.c: Include opts.h.
10716 (arm_handle_option): Update to new hook interface.
10717 * config/arm/t-arm (arm.o): Update dependencies.
10718 * config/bfin/bfin.c: Include opts.h.
10719 (bfin_handle_option): Update to new hook interface.
10720 * config/cris/cris.c: Include opts.h.
10721 (cris_handle_option): Update to new hook interface.
10722 * config/frv/frv.c: Include opts.h.
10723 (frv_handle_option): Update to new hook interface.
10724 * config/i386/i386.c: Include opts.h.
10725 (ix86_handle_option): Update to new hook interface.
10726 (ix86_valid_target_attribute_inner_p): Generate option structure
10727 for call to ix86_handle_option.
10728 * config/i386/t-i386 (i386.o): Update dependencies.
10729 * config/ia64/ia64.c: Include opts.h.
10730 (ia64_handle_option): Update to new hook interface.
10731 * config/ia64/t-ia64 (ia64.o): Update dependencies.
10732 * config/iq2000/iq2000.c: Include opts.h.
10733 (iq2000_handle_option): Update to new hook interface.
10734 * config/m32c/m32c.c: Include opts.h.
10735 (m32c_handle_option): Update to new hook interface.
10736 * config/m32r/m32r.c: Include opts.h.
10737 (m32r_handle_option): Update to new hook interface.
10738 * config/m68k/m68k.c: Include opts.h.
10739 (m68k_handle_option): Update to new hook interface.
10740 * config/mep/mep.c: Include opts.h.
10741 (mep_handle_option): Update to new hook interface.
10742 * config/microblaze/microblaze.c: Include opts.h.
10743 (microblaze_handle_option): Update to new hook interface.
10744 * config/mips/mips.c: Include opts.h.
10745 (mips_handle_option): Update to new hook interface.
10746 * config/mn10300/mn10300.c: Include opts.h.
10747 (mn10300_handle_option): Update to new hook interface.
10748 * config/pa/pa.c: Include opts.h.
10749 (pa_handle_option): Update to new hook interface.
10750 * config/pdp11/pdp11.c: Include opts.h.
10751 (pdp11_handle_option): Update to new hook interface.
10752 * config/rs6000/rs6000.c: Include opts.h.
10753 (rs6000_handle_option): Update to new hook interface.
10754 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10755 * config/rx/rx.c: Include opts.h.
10756 (rx_handle_option): Update to new hook interface.
10757 * config/s390/s390.c: Include opts.h.
10758 (s390_handle_option): Update to new hook interface.
10759 * config/score/score.c: Include opts.h.
10760 (score_handle_option): Update to new hook interface.
10761 * config/sh/sh.c: Include opts.h.
10762 (sh_handle_option): Update to new hook interface.
10763 * config/sparc/sparc.c: Include opts.h.
10764 (sparc_handle_option): Update to new hook interface.
10765 * config/v850/v850.c: Include opts.h.
10766 (v850_handle_option): Update to new hook interface.
10767
10768 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10769
10770 * gcc.c (driver_unknown_option_callback): Only permit and save
10771 unknown -Wno- options.
10772 (driver_wrong_lang_callback): Save options directly instead of via
10773 driver_unknown_option_callback.
10774
10775 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10776
10777 * combine.c (simplify_set): Try harder to find the best CC mode when
10778 simplifying a nested COMPARE on the RHS.
10779
10780 2011-03-22 Joseph Myers <joseph@codesourcery.com>
10781
10782 * config/alpha/gnu.h: Remove.
10783 * config/arc: Remove directory.
10784 * config/arm/netbsd.h: Remove.
10785 * config/arm/t-pe: Remove.
10786 * config/crx: Remove directory.
10787 * config/i386/netbsd.h: Remove.
10788 * config/m68hc11: Remove directory.
10789 * config/m68k/uclinux-oldabi.h: Remove.
10790 * config/mcore/mcore-pe.h: Remove.
10791 * config/mcore/t-mcore-pe: Remove.
10792 * config/netbsd-aout.h: Remove.
10793 * config/rs6000/gnu.h: Remove.
10794 * config/sh/sh-symbian.h: Remove.
10795 * config/sh/symbian-base.c: Remove.
10796 * config/sh/symbian-c.c: Remove.
10797 * config/sh/symbian-cxx.c: Remove.
10798 * config/sh/symbian-post.h: Remove.
10799 * config/sh/symbian-pre.h: Remove.
10800 * config/sh/t-symbian: Remove.
10801 * config/svr3.h: Remove.
10802 * config/vax/netbsd.h: Remove.
10803 * config.build: Don't handle i[34567]86-*-pe.
10804 * config.gcc: Remove handling of deprecations for most deprecated
10805 targets.
10806 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10807 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10808 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10809 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10810 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10811 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10812 Remove cases.
10813 * config.host: Don't handle i[34567]86-*-pe.
10814 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10815 (ASM_SPEC32): Don't handle -mcall-gnu.
10816 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10817 -mcall-gnu.
10818 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10819 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10820 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10821 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10822 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10823 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10824 conditional on SYMBIAN.
10825 * configure.ac: Don't handle powerpc*-*-gnu*.
10826 * configure: Regenerate.
10827 * doc/extend.texi (interrupt attribute): Don't mention CRX.
10828 * doc/install-old.texi (m6811, m6812): Don't mention.
10829 * doc/install.texi (arc-*-elf*): Don't document multilib option.
10830 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10831 (m68k-uclinuxoldabi): Don't mention.
10832 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10833 Remove.
10834 (-mcall-gnu): Remove.
10835 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10836 families): Remove constraint documentation.
10837
10838 2011-03-22 Marius Strobl <marius@FreeBSD.org>
10839
10840 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10841 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10842 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10843
10844 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10845
10846 PR target/48226
10847 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10848 vector when peeking at the next token for vector, don't expand the
10849 keywords.
10850
10851 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
10852
10853 * config/avr/avr-protos.h (expand_epilogue): Change prototype
10854 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10855 * config/avr/avr.c (init_cumulative_args)
10856 (avr_function_arg_advance): Use it.
10857 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10858 sibcall epilogues.
10859 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10860 (avr_function_ok_for_sibcall): ...this new function.
10861 (avr_lookup_function_attribute1): New static Function.
10862 (avr_naked_function_p, interrupt_function_p)
10863 (signal_function_p, avr_OS_task_function_p)
10864 (avr_OS_main_function_p): Use it.
10865 * config/avr/avr.md ("sibcall", "sibcall_value")
10866 ("sibcall_epilogue"): New expander.
10867 ("*call_insn", "*call_value_insn"): New insn.
10868 ("call_insn", "call_value_insn"): Remove
10869 ("call", "call_value", "epilogue"): Change expander to handle
10870 sibling calls.
10871
10872 2011-03-21 Nick Clifton <nickc@redhat.com>
10873
10874 * doc/invoke.texi (Overall Options): Move closing brace to end of
10875 options list.
10876 (Optimization Options): Add missing @gol.
10877 (Directory Options): Likewise.
10878 (i386 and x86-64 Options): Likewise.
10879 (RS6000 and PowerPC Options): Likewise.
10880 (i386 and x86-64 Windows Options): Likewise.
10881 (V850 Options): Add text missing from descriptions.
10882
10883 2011-03-22 Richard Henderson <rth@redhat.com>
10884
10885 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10886 (avr_incoming_return_addr_rtx): New.
10887 (emit_push_byte): New.
10888 (expand_prologue): Use it. Remove incorrect dwarf annotation for
10889 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
10890 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
10891 (emit_pop_byte): New.
10892 (expand_epilogue): Use it. Pop frame pointer by bytes.
10893 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10894 (INCOMING_RETURN_ADDR_RTX): New.
10895 (INCOMING_FRAME_SP_OFFSET): New.
10896 (ARG_POINTER_CFA_OFFSET): New.
10897 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10898 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10899 (pophi): Remove.
10900
10901 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10902
10903 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10904
10905 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10906 (FUNCTION_ARG_ADVANCE): Likewise.
10907 * tm.texi.in: Change references to them to hook references.
10908 * tm.texi: Regenerate.
10909 * targhooks.c (default_function_arg): Eliminate check for target
10910 macro.
10911 (default_function_incoming_arg): Likewise.
10912 (default_function_arg_advance): Likewise.
10913 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10914 (function_arg_advance): Likewise.
10915 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10916
10917 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10918
10919 * tree.c (build_call_1): New function.
10920 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10921
10922 2011-03-22 Richard Guenther <rguenther@suse.de>
10923
10924 PR tree-optimization/48228
10925 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10926 for single-arg PHIs.
10927
10928 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
10929
10930 PR rtl-optimization/48143
10931 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10932 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10933 sse2_cvtps2pd): Likewise.
10934
10935 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10936
10937 * recog.c (canonicalize_change_group): Use validate_unshare_change.
10938
10939 2011-03-22 Richard Guenther <rguenther@suse.de>
10940
10941 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10942 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10943 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10944 and REALIGN_LOAD_EXPR.
10945 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10946 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10947 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10948 DOT_PROD_EXPR case ...
10949 (expand_expr_real_2): ... here.
10950 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10951 and REALIGN_LOAD_EXPR.
10952 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10953 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10954 (vect_create_epilog_for_reduction): Likewise.
10955 (vectorizable_reduction): Likewise.
10956 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10957 * tree-vect-stmts.c (vectorizable_load): Likewise.
10958
10959 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10960
10961 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10962
10963 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10964
10965 * config/s390/s390.c (s390_delegitimize_address): Fix offset
10966 handling for PLTOFF/GOTOFF.
10967
10968 2011-03-22 Nick Clifton <nickc@redhat.com>
10969
10970 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10971 trailing backslash from the end of the macro definition.
10972
10973 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10974
10975 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10976 and PLT unspecs.
10977
10978 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
10979
10980 * expr.h (prepare_operand): Move to...
10981 * optabs.h (prepare_operand): ...here and change the insn code
10982 parameter from "int" to "enum insn_code".
10983 (insn_operand_matches): Declare.
10984 * expr.c (init_expr_target): Use insn_operand_matches.
10985 (compress_float_constant): Likewise.
10986 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10987 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10988 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10989 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10990 Likewise.
10991 (gen_cond_trap): Likewise.
10992 (prepare_operand): Likewise. Change icode to an insn_code.
10993 (insn_operand_matches): New function.
10994 * reload.c (find_reloads_address_1): Use insn_operand_matches.
10995 * reload1.c (gen_reload): Likewise.
10996 * targhooks.c (default_secondary_reload): Likewise.
10997
10998 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
10999
11000 * config/alpha/alpha.md (unspec): New define_c_enum.
11001 (unspecv): Ditto.
11002
11003 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
11004
11005 PR debug/48214
11006 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
11007 between a call and its CALL_ARG_LOCATION note.
11008
11009 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
11010
11011 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
11012
11013 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11014
11015 PR c/42544
11016 PR c/48197
11017 * c-common.c (shorten_compare): If primopN is first sign-extended
11018 to opN and then zero-extended to result type, set primopN to opN.
11019
11020 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
11021
11022 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
11023 for barrier handlers.
11024
11025 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
11026
11027 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
11028 UNSPEC constants to be in the unspec enumeration, and redefine
11029 all UNSPECV constants to be in the unspecv enumeration, so that
11030 dumps print which unspec/unspec_volatile this is.
11031 * config/rs6000/vector.md (UNSPEC_*): Ditto.
11032 * config/rs6000/paired.md (UNSPEC_*): Ditto.
11033 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
11034 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
11035 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
11036
11037 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
11038 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
11039 UNSPECV_LWSYNC, since these are used as unspec_volatile.
11040 * config/rs6000/sync.md (isync, lwsync): Ditto.
11041
11042 2011-03-21 Richard Guenther <rguenther@suse.de>
11043
11044 * params.def (lto-min-partition): Fix typo.
11045
11046 2011-03-21 Richard Guenther <rguenther@suse.de>
11047
11048 PR c/47939
11049 * c-decl.c (grokdeclarator): Drop to the main variant only
11050 for array types. Drop flag_gen_aux_info check.
11051
11052 2011-03-21 Richard Guenther <rguenther@suse.de>
11053
11054 PR translation/47911
11055 * params.def (lto-partitions): Fix typo.
11056 (lto-min-partition): Fix wording.
11057
11058 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
11059
11060 * config/rs6000/t-freebsd: Remove duplication from file.
11061
11062 2011-03-21 Richard Guenther <rguenther@suse.de>
11063
11064 PR middle-end/47661
11065 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
11066
11067 2011-03-21 Richard Guenther <rguenther@suse.de>
11068
11069 PR lto/48210
11070 * params.def (lto-partitions): Require at least 1 partition.
11071
11072 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11073
11074 * gthr-solaris.h: Remove.
11075 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
11076 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
11077 (LIB_SPEC): Likewise.
11078 * config/sol2.opt (threads): Remove.
11079 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
11080 (sparc*-*-solaris2*): Likewise.
11081 * configure.ac (enable_threads): Enable solaris support.
11082 * configure: Regenerate.
11083 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
11084 * doc/install.texi (Configuration, --enable-threads=lib): Remove
11085 solaris.
11086
11087 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11088
11089 * config.gcc: Obsolete *-*-solaris2.8*.
11090 * doc/install.texi (Specific, *-*-solaris2*): Document it.
11091
11092 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11093
11094 PR bootstrap/48135
11095 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
11096 reference. Solaris 8 perl works.
11097
11098 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11099
11100 PR bootstrap/48135
11101 * doc/install.texi (Prerequisites): Move jar etc. up.
11102 Explain support library version requirements.
11103
11104 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11105
11106 PR bootstrap/48135
11107 * doc/install.texi (Prerequisites): Move Perl to build
11108 requirements. Always necessary on Solaris 2 with Sun ld.
11109
11110 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11111
11112 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
11113 binutils 2.21.
11114 (Specific, i?86-*-solaris2.[89]): Likewise.
11115 (Specific, i?86-*-solaris2.10): Likewise.
11116 (Specific, mips-sgi-irix6): Likewise.
11117 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
11118 Update for binutils 2.21.
11119
11120 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11121
11122 * configure.ac (gcc_cv_lto_plugin): Fix typo.
11123 Allow -fuse-linker-plugin for non-default plugin linker.
11124 * configure: Regenerate.
11125
11126 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
11127
11128 PR bootstrap/48167
11129 * gengtype.c (files_rules): Added rule for cp/parser.h.
11130
11131 2011-03-21 Jakub Jelinek <jakub@redhat.com>
11132
11133 PR target/48213
11134 * config/s390/s390.c (s390_delegitimize_address): Don't call
11135 lowpart_subreg if orig_x has BLKmode.
11136
11137 2011-03-21 Kai Tietz <ktietz@redhat.com>
11138
11139 PR target/12171
11140 * doc/plugins.texi: Adjust documentation for plugin register_callback.
11141 * tree.h (attribute_spec): Add new member affects_type_identity.
11142 * attribs.c (empty_attribute_table): Adjust attribute_spec
11143 initializers.
11144 * config/alpha/alpha.c: Likewise.
11145 * config/arc/arc.c: Likewise.
11146 * config/arm/arm.c: Likewise.
11147 * config/avr/avr.c: Likewise.
11148 * config/bfin/bfin.c: Likewise.
11149 * config/crx/crx.c: Likewise.
11150 * config/darwin.h: Likewise.
11151 * config/h8300/h8300.c: Likewise.
11152 * config/i386/cygming.h: Likewise.
11153 * config/i386/i386.c: Likewise.
11154 * config/ia64/ia64.c: Likewise.
11155 * config/m32c/m32c.c: Likewise.
11156 * config/m32r/m32r.c: Likewise.
11157 * config/m68hc11/m68hc11.c: Likewise.
11158 * config/m68k/m68k.c: Likewise.
11159 * config/mcore/mcore.c: Likewise.
11160 * config/mep/mep.c: Likewise.
11161 * config/microblaze/microblaze.c: Likewise.
11162 * config/mips/mips.c: Likewise.
11163 * config/rs6000/rs6000.c: Likewise.
11164 * config/rx/rx.c: Likewise.
11165 * config/sh/sh.c: Likewise.
11166 * config/sol2.h: Likewise.
11167 * config/sparc/sparc.c: Likewise.
11168 * config/spu/spu.c: Likewise.
11169 * config/stormy16/stormy16.c: Likewise.
11170 * config/v850/v850.c: Likewise.
11171
11172 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
11173
11174 * simplify-rtx.c (simplify_binary_operation_1): Handle
11175 (xor (and A B) C) case when B and C are both constants.
11176
11177 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
11178
11179 * tree-dfa.c (add_referenced_var): Fix typo in comment.
11180
11181 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
11182
11183 PR bootstrap/48168
11184 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11185
11186 2011-03-20 Jakub Jelinek <jakub@redhat.com>
11187
11188 PR rtl-optimization/48156
11189 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11190 assume df and df_lr are not NULL.
11191
11192 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11193
11194 PR debug/48023
11195 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11196 between a call and its CALL_ARG_LOCATION note.
11197
11198 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
11199
11200 PR debug/48178
11201 * config/sh/sh.c (find_barrier): Don't emit a constant pool
11202 between a call and its corresponding CALL_ARG_LOCATION note.
11203
11204 2011-03-19 Anatoly Sokolov <aesok@post.ru>
11205
11206 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11207 instead of loop. Use HARD_REGISTER_NUM_P predicate.
11208 * haifa-sched.c (setup_ref_regs): Ditto.
11209 * caller-save.c (add_used_regs_1): Ditto.
11210 * dse.c (look_for_hardregs): Ditto.
11211 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11212 * sched-rgn.c (check_live_1): Ditto.
11213
11214 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11215
11216 * c-decl.c (diagnose_mismatched_decls): Give an error for
11217 redefining a typedef with variably modified type.
11218
11219 2011-03-18 Joseph Myers <joseph@codesourcery.com>
11220
11221 * c-decl.c (grokfield): Don't allow typedefs for structures or
11222 unions with no tag by default.
11223 * doc/extend.texi (Unnamed Fields): Update.
11224
11225 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
11226
11227 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11228 Rewrite using indirect functions.
11229 (lwp_slwpcb): Ditto.
11230 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11231 (avx_vinsertf128<mode>): Ditto.
11232
11233 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11234
11235 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11236 unspecs.
11237
11238 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11239
11240 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11241 splitting between a call and its corresponding CALL_ARG_LOCATION note.
11242
11243 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
11244
11245 PR rtl-optimization/48170
11246 * gcse.c (hoist_code): Remove bogus asserts.
11247
11248 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
11249
11250 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11251 computation for prologue/epilogue.
11252
11253 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11254
11255 * Makefile.in (check-consistency): Remove.
11256
11257 2011-03-18 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR debug/48176
11260 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11261 arange_table_in_use is 0, but either text_section_used or
11262 cold_text_section_used is true. Don't call it if
11263 !info_section_emitted.
11264
11265 2011-03-18 Anatoly Sokolov <aesok@post.ru>
11266
11267 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11268 FUNCTION_VALUE_REGNO_P): Remove.
11269 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11270 Remove.
11271 * config/avr/avr.c (avr_ret_register): Make static inline.
11272 (avr_function_value_regno_p): New function.
11273 (avr_libcall_value): Make static. Add 'func' argument.
11274 (avr_function_value): Make static. Rename 'func' argument to
11275 'fn_decl_or_type', forward it to avr_libcall_value. Call
11276 avr_ret_register function instead of RET_REGISTER macro.
11277 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11278
11279 2011-03-18 Jason Merrill <jason@redhat.com>
11280
11281 PR c++/23372
11282 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11283
11284 2011-03-18 Richard Guenther <rguenther@suse.de>
11285
11286 * doc/install.texi (--enable-gold): Remove.
11287 (--with-plugin-ld): Document.
11288 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11289
11290 2011-03-18 Andrew Pinski <pinskia@gmail.com>
11291
11292 PR middle-end/47790
11293 * expr.c (optimize_bitfield_assignment_op): Revamp to work
11294 again after expansion changes.
11295
11296 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
11297
11298 * combine.c (try_combine): Do simplification only call of
11299 subst() on i2 even when i1 is present. Update comments.
11300
11301 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
11302
11303 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11304 and UNSPEC_PCREL_SYMOFF.
11305
11306 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11307
11308 * config/s390/s390.md: Use define_c_enum for the unspec constant
11309 definitions.
11310
11311 2011-03-18 Richard Henderson <rth@redhat.com>
11312 Jakub Jelinek <jakub@redhat.com>
11313
11314 PR bootstrap/48161
11315 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11316 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11317
11318 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11319
11320 PR middle-end/47725
11321 * combine.c (cant_combine_insn_p): Don't check zero/sign
11322 extended hard registers.
11323
11324 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11325
11326 PR middle-end/47725
11327 * combine.c (cant_combine_insn_p): Check zero/sign extended
11328 hard registers.
11329
11330 2011-03-17 Anatoly Sokolov <aesok@post.ru>
11331
11332 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11333 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11334 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11335 Change return type to bool.
11336 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11337
11338 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11339
11340 PR debug/48163
11341 * var-tracking.c (prepare_call_arguments): If CALL target
11342 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11343 pc instead of looking it up using cselib_lookup and use
11344 Pmode for it if x has VOIDmode.
11345 * dwarf2out.c (gen_subprogram_die): If also both first and
11346 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11347
11348 PR debug/48163
11349 * function.c (assign_parms): For data.passed_pointer parms
11350 use MEM of data.entry_parm instead of data.entry_parm itself
11351 as DECL_INCOMING_RTL.
11352 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11353 also when passed and declared mode is the same, DECL_RTL
11354 is a MEM with pseudo as address and DECL_INCOMING_RTL is
11355 a MEM too.
11356
11357 2011-03-16 Jeff Law <law@redhat.com>
11358
11359 PR rtl-optimization/37273
11360 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11361 handle them like argument loads from stack slots. Do not double
11362 count memory for memory constants and argument loads from stack slots.
11363
11364 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11365
11366 PR debug/48160
11367 * var-tracking.c (prepare_call_arguments): Check SUBREG.
11368
11369 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11370
11371 PR target/48171
11372 * config/i386/i386.opt: Add Save to -mavx and -mfma.
11373
11374 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11375
11376 PR bootstrap/48153
11377 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11378 if dwarf_strict.
11379 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11380 Clear call_arg_locations and call_arg_loc_last always.
11381
11382 PR middle-end/48152
11383 * var-tracking.c (prepare_call_arguments): If argument needs to be
11384 passed by reference, adjust argtype and mode.
11385
11386 2011-03-17 Richard Guenther <rguenther@suse.de>
11387
11388 PR middle-end/48134
11389 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11390 a value make sure to fold the statement.
11391
11392 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
11393
11394 PR target/43872
11395 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11396 return condition with !cfun->calls_alloca.
11397
11398 2011-03-17 Richard Guenther <rguenther@suse.de>
11399
11400 PR bootstrap/48148
11401 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11402 origin for decls in other ltrans units.
11403 (input_varpool_node): Likewise.
11404
11405 2011-03-17 Richard Guenther <rguenther@suse.de>
11406
11407 PR middle-end/48165
11408 * tree-object-size.c (compute_object_offset): Properly return
11409 the offset operand of MEM_REFs as sizetype.
11410
11411 2011-03-17 Jakub Jelinek <jakub@redhat.com>
11412
11413 PR rtl-optimization/48141
11414 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11415 * dse.c: Include params.h.
11416 (active_local_stores_len): New variable.
11417 (add_wild_read, dse_step1): Clear it when setting active_local_stores
11418 to NULL.
11419 (record_store, check_mem_read_rtx): Decrease it when removing
11420 from the chain.
11421 (scan_insn): Likewise. Increase it when adding to chain, if it
11422 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11423 set active_local_stores to NULL before the addition.
11424 * Makefile.in (dse.o): Depend on $(PARAMS_H).
11425
11426 PR rtl-optimization/48141
11427 * dse.c (record_store): If no positions are needed in an insn
11428 that cannot be deleted, at least unchain it from active_local_stores.
11429
11430 2011-03-16 Dodji Seketeli <dodji@redhat.com>
11431
11432 PR debug/47510
11433 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11434 (lookup_type_die_strip_naming_typedef): ... here.
11435 (get_context_die): Use it.
11436 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11437 the anonymous struct named by the naming typedef.
11438
11439 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
11440
11441 PR target/48154
11442 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11443 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11444
11445 2011-03-16 Jeff Law <law@redhat.com>
11446
11447 * tree-vrp.c (identify_jump_threads): Slightly simplify type
11448 check for operands of conditional. Allow type to be a pointer.
11449
11450 2011-03-16 Richard Guenther <rguenther@suse.de>
11451
11452 PR tree-optimization/48149
11453 * fold-const.c (fold_binary_loc): Fold
11454 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11455
11456 2011-03-16 Richard Guenther <rguenther@suse.de>
11457
11458 PR tree-optimization/26134
11459 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11460 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11461 (non_rewritable_mem_ref_base): Handle complex type component
11462 accesses, constrain offsets for vector and complex extracts
11463 more properly.
11464
11465 2011-03-16 Richard Guenther <rguenther@suse.de>
11466
11467 PR tree-optimization/48146
11468 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11469 operands avoiding the need for renaming.
11470
11471 2011-03-16 Richard Guenther <rguenther@suse.de>
11472
11473 * gimple-fold.c (maybe_fold_reference): Open-code relevant
11474 constant folding. Move MEM_REF canonicalization first.
11475 Rely on fold_const_aggregate_ref for initializer folding.
11476 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11477
11478 2011-03-16 Jakub Jelinek <jakub@redhat.com>
11479
11480 PR middle-end/48136
11481 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11482 arg0/arg1 or their arguments are always fold converted to matching
11483 types.
11484
11485 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11486 to nargs.
11487
11488 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11489
11490 PR lto/46944
11491 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11492 Handle in-tree gold.
11493 (ld_vers): Extract binutils version for gold.
11494 (gcc_cv_ld_hidden): Handle gold here.
11495 (gcc_cv_lto_plugin): Determine level of linker plugin support.
11496 * configure: Regenerate.
11497 * config.in: Regenerate.
11498 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11499 -fuse-linker-plugin otherwise.
11500 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
11501 (LINK_COMMAND_SPEC): Use it.
11502 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11503
11504 2011-03-16 Jakub Jelinek <jakub@redhat.com>
11505
11506 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11507 * calls.c: Remove debug.h include.
11508 (emit_call_1): Don't call virtual_call_token debug hook.
11509 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11510 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11511 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11512 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11513 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11514 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11515 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11516 dwarf2out_virtual_call): Remove.
11517 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11518 copy_call_info and virtual_call hooks.
11519 (dwarf2out_init): Don't initialize vcall_insn_table,
11520 debug_dcall_section and debug_vcall_section.
11521 (prune_unused_types): Don't mark nodes from dcall_table.
11522 (dwarf2out_finish): Don't output dcall or vcall tables.
11523 * final.c (final_scan_insn): Don't call direct_call or
11524 virtual_call debug hooks.
11525 * debug.h (struct gcc_debug_hooks): Remove direct_call,
11526 virtual_call_token, copy_call_info and virtual_call hooks.
11527 (debug_nothing_uid): Remove prototype.
11528 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11529 copy_call_info and virtual_call hooks.
11530 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11531 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11532 * debug.c (do_nothing_debug_hooks): Likewise.
11533 (debug_nothing_uid): Remove.
11534 * doc/invoke.texi (-fenable-icf-debug): Remove.
11535 * common.opt (-fenable-icf-debug): Likewise.
11536
11537 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11538 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11539 call's MEM. Handle functions returning aggregate through a hidden
11540 first pointer. For virtual calls add clobbered pc to call arguments
11541 chain.
11542 * dwarf2out.c (gen_subprogram_die): Emit
11543 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11544 can't be emitted.
11545
11546 PR debug/45882
11547 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11548 * rtl.h (ENTRY_VALUE_EXP): Define.
11549 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11550 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11551 * print-rtl.c (print_rtx): Likewise.
11552 * gengtype.c (adjust_field_rtx_def): Likewise.
11553 * var-tracking.c (vt_add_function_parameter): Adjust
11554 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11555 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11556 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11557 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11558 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11559
11560 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11561 Call var_location debug hook even on CALL_INSNs.
11562 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11563 * rtl.def (ENTRY_VALUE): New.
11564 * dwarf2out.c: Include cfglayout.h.
11565 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11566 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11567 (struct call_arg_loc_node): New type.
11568 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11569 tail_call_site_count): New variables.
11570 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11571 DW_TAG_GNU_call_site_parameter.
11572 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11573 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11574 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11575 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11576 and DW_AT_GNU_all_source_call_sites.
11577 (mem_loc_descriptor): Handle ENTRY_VALUE.
11578 (add_src_coords_attributes): Don't add enything if
11579 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11580 (dwarf2out_abstract_function): Save and clear call_arg_location,
11581 call_site_count and tail_call_site_count around dwarf2out_decl call.
11582 (gen_call_site_die): New function.
11583 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11584 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11585 (dwarf2out_function_decl): Clear call_arg_locations,
11586 call_arg_loc_last, set call_site_count and tail_call_site_count
11587 to -1 and free block_map.
11588 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11589 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
11590 followed by any real instructions.
11591 (dwarf2out_begin_function): Set call_site_count and
11592 tail_call_site_count to 0.
11593 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11594 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11595 attempt to force a DIE for it and worst case remove the attribute.
11596 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11597 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11598 the decl itself.
11599 * var-tracking.c: Include tm_p.h.
11600 (vt_stack_adjustments): For calls call note_register_arguments.
11601 (argument_reg_set): New variable.
11602 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11603 ensure the VALUE is resolved.
11604 (call_arguments): New variable.
11605 (prepare_call_arguments): New function.
11606 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11607 (struct expand_loc_callback_data): Add ignore_cur_loc field.
11608 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11609 always use the best expression.
11610 (vt_expand_loc): Add ignore_cur_loc argument.
11611 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11612 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11613 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11614 note for all calls.
11615 (vt_add_function_parameter): Use cselib_lookup_from_insn.
11616 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11617 argument. Don't call cselib_preserve_only_values and
11618 cselib_reset_table.
11619 (note_register_arguments): New function.
11620 (vt_initialize): Compute argument_reg_set. Call
11621 vt_add_function_parameters before processing basic blocks instead of
11622 afterwards. For calls call prepare_call_arguments before calling
11623 cselib_process_insn.
11624 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11625 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11626 (var-tracking.o): Depend on $(TM_P_H).
11627 * cfglayout.h (insn_scope): New prototype.
11628 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11629 * cfglayout.c (insn_scope): No longer static.
11630 * insn-notes.def (CALL_ARG_LOCATION): New.
11631 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11632 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11633 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11634 nothing for DECL_EXTERNAL BLOCK_VARS.
11635
11636 2011-03-16 Alan Modra <amodra@gmail.com>
11637
11638 PR target/45844
11639 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11640 create invalid offset address for vsx splat insn.
11641 * config/rs6000/predicates.md (splat_input_operand): New.
11642 * config/rs6000/vsx.md (vsx_splat_*): Use it.
11643
11644 2011-03-15 Xinliang David Li <davidxl@google.com>
11645
11646 PR c/47837
11647 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11648 (normalize_preds): New function.
11649 (is_use_properly_guarded): Normalize def predicates.
11650
11651 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11652
11653 PR target/46788
11654 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11655 in the output template.
11656
11657 2011-03-15 Richard Guenther <rguenther@suse.de>
11658
11659 PR middle-end/47650
11660 * tree-pretty-print.c (dump_function_declaration): Properly
11661 dump unprototyped and varargs function types.
11662
11663 2011-03-15 Richard Guenther <rguenther@suse.de>
11664
11665 PR tree-optimization/13954
11666 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11667 and friends.
11668
11669 2011-03-15 Richard Guenther <rguenther@suse.de>
11670
11671 PR tree-optimization/48037
11672 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11673 selects into BIT_FIELD_REFs.
11674 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11675 vector select.
11676
11677 2011-03-15 Jakub Jelinek <jakub@redhat.com>
11678
11679 PR tree-optimization/48129
11680 * builtins.c (fold_builtin_snprintf): Convert to type of
11681 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11682 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11683
11684 2011-03-15 Richard Guenther <rguenther@suse.de>
11685
11686 PR tree-optimization/41490
11687 * tree-ssa-dce.c (propagate_necessity): Handle returns without
11688 value but with VUSE.
11689 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11690 return statements.
11691 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11692 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11693 * tree-tailcall.c (find_tail_calls): Ignore returns.
11694
11695 2011-03-15 Richard Guenther <rguenther@suse.de>
11696
11697 PR middle-end/48031
11698 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11699 or variable-indexed array accesses when in gimple form.
11700
11701 2011-03-15 Richard Guenther <rguenther@suse.de>
11702
11703 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11704
11705 2011-03-15 Alan Modra <amodra@gmail.com>
11706
11707 PR target/48032
11708 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11709 presume symbol_refs without a symbol_ref_decl are suitably
11710 aligned, nor other trees we may see here. Handle anchor symbols.
11711 (legitimate_constant_pool_address_p): Comment. Add mode param.
11712 Check cmodel=medium addresses. Adjust all calls.
11713 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11714 creating cmodel=medium optimized access to locals.
11715 * config/rs6000/constraints.md (R): Pass QImode to
11716 legitimate_constant_pool_address_p.
11717 * config/rs6000/predicates.md (input_operand): Pass mode to
11718 legitimate_constant_pool_address_p.
11719 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11720 Update prototype.
11721
11722 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11723
11724 PR target/48053
11725 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11726 64-bit constants being loaded into registers other than GPRs such
11727 as loading 0 into a VSX register.
11728
11729 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11730
11731 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11732
11733 2011-03-14 Jakub Jelinek <jakub@redhat.com>
11734
11735 PR middle-end/47917
11736 * builtins.c (fold_builtin_snprintf): New function.
11737 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11738 (fold_builtin_4): Likewise.
11739
11740 PR middle-end/38878
11741 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11742 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
11743 and C - X == X also strip nops from +/-/p+ operand.
11744 When optimizing -X == C, fold C to arg0's type.
11745
11746 PR debug/47946
11747 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11748 emit it as add_AT_int instead of add_AT_unsigned.
11749
11750 2011-03-14 Tom Tromey <tromey@redhat.com>
11751
11752 * unwind-dw2.c: Include sys/sdt.h if it exists.
11753 (_Unwind_DebugHook): Use STAP_PROBE2.
11754 * config.in, configure: Rebuild.
11755 * configure.ac: Check for sys/sdt.h.
11756
11757 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
11758
11759 * config/i386/i386.md (ROUND_FLOOR): New constant.
11760 (ROUND_CEIL): Ditto.
11761 (ROUND_TRUNC): Ditto.
11762 (ROUND_MXCSR): Ditto.
11763 (ROUND_NO_EXC): Ditto.
11764 (rint<mode>2): Use new defines instead of numerical constants.
11765 (floor<mode>2): Ditto.
11766 (ceil<mode>2): Ditto.
11767 (btrunc<mode>2): Ditto.
11768 * config/i386/i386-builtin-types.def: Define ROUND function type
11769 aliases.
11770 * config/i386/i386.c (enum ix86_builtins): Add
11771 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11772 (struct builtin_description): Add
11773 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11774 (ix86_expand_sse_round): New static function.
11775 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11776 function types.
11777 (ix86_builtin_vectorized_function): Handle
11778 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11779
11780 2011-03-14 Tom Tromey <tromey@redhat.com>
11781
11782 * c-parser.c (c_parser_asm_string_literal): Clear
11783 warn_overlength_strings.
11784
11785 2011-03-14 Tom Tromey <tromey@redhat.com>
11786
11787 * c-parser.c (disable_extension_diagnostics): Save
11788 warn_overlength_strings.
11789 (restore_extension_diagnostics): Restore warn_overlength_strings.
11790
11791 2011-03-14 Jakub Jelinek <jakub@redhat.com>
11792
11793 * BASE-VER: Change to 4.7.0.
11794
11795 2011-03-14 Richard Guenther <rguenther@suse.de>
11796
11797 PR middle-end/48098
11798 * tree.c (build_vector_from_val): Adjust assert to requirements
11799 and reality.
11800
11801 2011-03-14 Jakub Jelinek <jakub@redhat.com>
11802
11803 PR bootstrap/48102
11804 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11805
11806 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
11807
11808 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11809 terms of target_flags_explicit. Adjust copyright year.
11810
11811 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11812 * config/rs6000/t-freebsd: New file. Add override for
11813 LIB2FUNCS_EXTRA.
11814
11815 2011-03-13 Chris Demetriou <cgd@google.com>
11816
11817 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11818 (-fno-diagnostics-show-option): this, to reflect current default.
11819 (-Werror=): Update text about -fno-diagnostics-show-option.
11820
11821 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
11822
11823 PR target/48053
11824 * config/rs6000/predicates.md (easy_vector_constant_add_self,
11825 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11826 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11827 mode is not V2DImode or V2DFmode.
11828 (vspltis_constant): Do not handle V2DImode and V2DFmode.
11829 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11830 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11831 registers to 0.
11832 (movdi_internal64): Likewise.
11833
11834 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
11835
11836 PR tree-optimization/47127
11837 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11838 parameter.
11839 (set_cloog_options): Same.
11840 (scop_to_clast): Same.
11841 (print_clast_stmt): Do not call cloog_state_malloc and
11842 cloog_state_free.
11843 (print_generated_program): Same.
11844 (gloog): Same.
11845 * graphite-clast-to-gimple.h (cloog_state): Declared.
11846 (scop_to_clast): Adjust declaration.
11847 * graphite.c (cloog_state): Defined here.
11848 (graphite_initialize): Call cloog_state_malloc.
11849 (graphite_finalize): Call cloog_state_free.
11850
11851 2011-03-11 Jason Merrill <jason@redhat.com>
11852
11853 * attribs.c (lookup_attribute_spec): Take const_tree.
11854 * tree.h: Adjust.
11855
11856 2011-03-11 Joseph Myers <joseph@codesourcery.com>
11857
11858 * config/sparc/sparc.c (sparc_option_override): Use
11859 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11860
11861 2011-03-11 Richard Guenther <rguenther@suse.de>
11862
11863 PR tree-optimization/48067
11864 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11865 multiplication result will be only used once on the target
11866 stmt.
11867
11868 2011-03-11 Richard Guenther <rguenther@suse.de>
11869
11870 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11871
11872 2011-03-11 Richard Guenther <rguenther@suse.de>
11873
11874 PR lto/48073
11875 * tree.c (find_decls_types_r): Do not walk types only reachable
11876 from IDENTIFIER_NODEs.
11877
11878 2011-03-11 Jakub Jelinek <jakub@redhat.com>
11879
11880 PR middle-end/48044
11881 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11882 all vnode->force_output nodes as needed.
11883
11884 2011-03-11 Jason Merrill <jason@redhat.com>
11885
11886 PR c++/48069
11887 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11888 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11889
11890 2011-03-11 Martin Jambor <mjambor@suse.cz>
11891
11892 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11893 cgraph_node.
11894
11895 2011-03-11 Jakub Jelinek <jakub@redhat.com>
11896
11897 PR tree-optimization/48063
11898 * ipa-inline.c (cgraph_decide_inlining): Don't try to
11899 inline functions called once if !tree_can_inline_p (node->callers).
11900
11901 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
11902
11903 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11904 extra_objs.
11905 * config/score/score3.c: Delete.
11906 * config/score/score3.h: Delete.
11907 * config/score/mul-div.S: Delete.
11908 * config/score/sfp-machine.h: Add new file.
11909 * config/score/constraints.md: Add new file.
11910 * config/score/t-score-softfp: Add new file.
11911 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11912 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11913 (score7_extra_constraint): Delete.
11914 (score7_option_override): Remove unused code.
11915 * config/score/score.c: Remove score3 and score5 define and code.
11916 * config/score/score.h: Remove score3 and score5 define and code.
11917 * config/score/score.md: Remove score3 template and unusual insn.
11918 * config/score/score.opt: Remove score3 and score5 options.
11919
11920 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11921
11922 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11923 when _HPUX_SOURCE is defined.
11924 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11925
11926 2011-03-10 Jason Merrill <jason@redhat.com>
11927
11928 PR c++/48029
11929 * stor-layout.c (layout_type): Don't set structural equality
11930 on arrays of incomplete type.
11931 * tree.c (type_hash_eq): Handle comparing them properly.
11932
11933 2011-03-10 Jakub Jelinek <jakub@redhat.com>
11934
11935 PR debug/48043
11936 * config/s390/s390.c (s390_delegitimize_address): Make sure the
11937 result mode matches original rtl mode.
11938
11939 2011-03-10 Nick Clifton <nickc@redhat.com>
11940
11941 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11942 (andsi3, andsi3_flags): Fix timings for three operand alternative.
11943
11944 2011-03-09 Jakub Jelinek <jakub@redhat.com>
11945
11946 PR rtl-optimization/47866
11947 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11948 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11949 if target wasn't scalar.
11950 * function.c (assign_stack_temp_for_type): Assert that neither
11951 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11952 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11953 macro.
11954 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11955
11956 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11957
11958 * config/s390/s390-protos.h (s390_label_align): New prototype.
11959 * config/s390/s390.c (s390_label_align): New function.
11960 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11961
11962 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11963
11964 PR target/47755
11965 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11966 V2DI/V2DF constants. Only all 0's or all 1's are easy.
11967 (output_vec_const_move): Ditto.
11968
11969 2011-03-08 Anatoly Sokolov <aesok@post.ru>
11970
11971 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11972 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11973 * config/mips/mips.c (mips_preferred_reload_class): Make static.
11974 Change 'rclass' argument and result type to reg_class_t.
11975 (TARGET_PREFERRED_RELOAD_CLASS): Define.
11976
11977 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
11978
11979 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11980 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11981 (TARGET_MEMORY_MOVE_COST): Define.
11982 (avr_register_move_cost, avr_memory_move_cost): New Functions.
11983
11984 2011-03-08 Jakub Jelinek <jakub@redhat.com>
11985
11986 PR debug/47881
11987 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11988 removed anything.
11989
11990 PR tree-optimization/48022
11991 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11992 for EQ/NE_EXPR.
11993
11994 2011-03-07 Jakub Jelinek <jakub@redhat.com>
11995
11996 PR debug/47991
11997 * var-tracking.c (find_use_val): Return NULL for
11998 cui->sets && cui->store_p BLKmode MEMs.
11999
12000 2011-03-07 Anatoly Sokolov <aesok@post.ru>
12001
12002 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
12003 Remove.
12004 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
12005 xstormy16_print_operand_address): Remove.
12006 * config/stormy16/stormy16.c (xstormy16_print_operand,
12007 xstormy16_print_operand_address): Make static.
12008 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12009
12010 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
12011
12012 PR target/47862
12013 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12014 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
12015 before definition.
12016
12017 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
12018
12019 PR bootstrap/48000
12020 * cfgloopmanip.c (fix_bb_placements): Return immediately
12021 if FROM is BASE_LOOP's header.
12022
12023 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
12024
12025 * gimplify.c (gimplify_function_tree): Fix building calls
12026 to __builtin_return_address.
12027
12028 2011-03-07 Alan Modra <amodra@gmail.com>
12029
12030 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
12031 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
12032 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
12033 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
12034 return_mode args.
12035 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
12036 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
12037 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
12038 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
12039 * config/rs6000/rs6000.c
12040 (rs6000_elf_end_indicate_exec_stack): Rename to..
12041 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
12042 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
12043 (rs6000_file_start): ..here.
12044 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
12045 file scope variables.
12046 (call_ABI_of_interest): New function.
12047 (init_cumulative_args): Set above vars when function return value
12048 is a float, vector, or small struct.
12049 (rs6000_function_arg_advance_1): Likewise for function args.
12050 (rs6000_va_start): Set rs6000_passes_float if variable arg function
12051 references float args.
12052
12053 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
12054
12055 * doc/cfg.texi: Remove "See" before @ref.
12056 * doc/invoke.texi: Likewise.
12057
12058 2011-03-05 Jason Merrill <jason@redhat.com>
12059
12060 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
12061
12062 2011-03-05 Anthony Green <green@moxielogic.com>
12063
12064 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
12065
12066 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
12067
12068 PR rtl-optimization/47899
12069 * cfgloopmanip.c (fix_bb_placements): Fix first argument
12070 to flow_loop_nested_p when moving the loop upward.
12071
12072 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
12073
12074 PR target/47719
12075 * arm.md (movhi_insn_arch4): Accept any immediate constant.
12076
12077 2011-03-05 Jakub Jelinek <jakub@redhat.com>
12078
12079 PR tree-optimization/47967
12080 * ipa-cp.c (build_const_val): Return NULL instead of creating
12081 VIEW_CONVERT_EXPR for mismatching sizes.
12082 (ipcp_create_replace_map): Return NULL if build_const_val failed.
12083 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
12084 give up on versioning.
12085
12086 2011-03-05 Alan Modra <amodra@gmail.com>
12087
12088 PR target/47986
12089 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12090 full cmodel medium/large lo_sum + high addresses.
12091
12092 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12093
12094 * config/s390/s390.c (s390_decompose_address): Reject non-literal
12095 pool references in UNSPEC_LTREL_OFFSET.
12096
12097 2011-03-04 Jan Hubicka <jh@suse.cz>
12098
12099 PR lto/47497
12100 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
12101 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
12102 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
12103 Add node pointers.
12104 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
12105 cgraph_add_thunk): Add node pointers.
12106 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
12107 associated to right node.
12108 (input_node): Update use of cgraph_same_body_alias
12109 and cgraph_add_thunk.
12110
12111 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
12112
12113 * config/i386/i386.opt (mprefer-avx128): New flag.
12114 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
12115 modes when the flag -mprefer-avx128 is on.
12116
12117 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
12118
12119 * dwarf2out.c (compare_loc_operands): Fix address handling.
12120
12121 2011-03-04 Alan Modra <amodra@gmail.com>
12122
12123 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
12124
12125 2011-03-04 Richard Guenther <rguenther@suse.de>
12126
12127 PR middle-end/47968
12128 * expmed.c (extract_bit_field_1): Prefer vector modes that
12129 vec_extract patterns can handle.
12130
12131 2011-03-04 Richard Guenther <rguenther@suse.de>
12132
12133 PR middle-end/47975
12134 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
12135
12136 2011-03-04 Richard Henderson <rth@redhat.com>
12137
12138 * explow.c (emit_stack_save): Remove 'after' parameter.
12139 (emit_stack_restore): Likewise.
12140 * expr.h: Update to match.
12141 * builtins.c, calls.c, stmt.c: Likewise.
12142 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
12143 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
12144 * function.c (expand_function_end): Insert the emit_stack_save
12145 sequence before parm_birth_insn instead of after.
12146
12147 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
12148
12149 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
12150 (ssse3_pmaddubsw128): Ditto.
12151 (ssse3_pmaddubsw): Ditto.
12152
12153 2011-03-03 Steve Ellcey <sje@cup.hp.com>
12154
12155 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
12156
12157 2011-03-03 Jakub Jelinek <jakub@redhat.com>
12158
12159 PR c/47963
12160 * gimplify.c (omp_add_variable): Only call omp_notice_variable
12161 on TYPE_SIZE_UNIT if it is a DECL.
12162
12163 PR debug/47283
12164 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
12165 first operand is not is_gimple_mem_ref_addr, try to fold it.
12166 If the operand still isn't is_gimple_mem_ref_addr, clear
12167 MEM_EXPR on op0.
12168
12169 2011-03-03 Richard Guenther <rguenther@suse.de>
12170
12171 PR middle-end/47283
12172 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
12173 match comment.
12174 (refs_may_alias_p_1): For release branches return true if
12175 we are confused by our input.
12176
12177 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12178
12179 * config/s390/s390.c (s390_function_value): Rename to ...
12180 (s390_function_and_libcall_value): ... this.
12181 (s390_function_value): New function.
12182 (s390_libcall_value): New function.
12183 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
12184 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12185 target macro definitions.
12186 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12187
12188 2011-03-02 Joseph Myers <joseph@codesourcery.com>
12189
12190 * config/i386/freebsd64.h (CC1_SPEC): Define.
12191 * config/i386/linux64.h (CC1_SPEC): Define.
12192 * config/i386/x86-64.h (CC1_SPEC): Don't define.
12193
12194 2011-03-02 Anatoly Sokolov <aesok@post.ru>
12195
12196 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12197 Remove.
12198 * config/stormy16/stormy16.c: Include reload.h.
12199 (xstormy16_memory_move_cost): New function.
12200 (TARGET_MEMORY_MOVE_COST): Define.
12201
12202 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
12203
12204 PR rtl-optimization/47925
12205 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12206 with side effects. Remove the more-specific check for volatile asms.
12207
12208 2011-03-02 Alan Modra <amodra@gmail.com>
12209
12210 PR target/47935
12211 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12212 toc relative addresses for valid offsets.
12213
12214 2011-03-01 Richard Guenther <rguenther@suse.de>
12215
12216 PR tree-optimization/47890
12217 * tree-vect-loop.c (get_initial_def_for_induction): Set
12218 related stmt properly.
12219
12220 2011-03-01 Richard Guenther <rguenther@suse.de>
12221
12222 PR lto/47924
12223 * lto-streamer.c (lto_record_common_node): Also register
12224 the canonical type.
12225
12226 2011-03-01 Richard Guenther <rguenther@suse.de>
12227
12228 PR lto/46911
12229 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12230 Do not stream DECL_ABSTRACT_ORIGIN.
12231 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12232 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12233 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12234 Do not stream DECL_ABSTRACT_ORIGIN.
12235 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12236 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12237
12238 2011-02-28 Anatoly Sokolov <aesok@post.ru>
12239
12240 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12241 FUNCTION_VALUE_REGNO_P): Remove.
12242 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12243 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12244 Add 'outgoing' argument.
12245 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12246 function.
12247 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12248 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12249
12250 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
12251
12252 PR debug/28047
12253 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12254 (lookup_filename): Likewise.
12255 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12256
12257 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
12258 Jakub Jelinek <jakub@redhat.com>
12259
12260 PR middle-end/47893
12261 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12262 (assign_stack_local_1): Change last argument type to int.
12263 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12264 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
12265 don't record padding space into frame_space_list nor use those areas.
12266 (assign_stack_local): Adjust caller.
12267 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12268 of assign_stack_local, pass 0 as last argument.
12269 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12270 callers.
12271
12272 2011-02-28 Jakub Jelinek <jakub@redhat.com>
12273
12274 PR debug/47283
12275 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12276 Use target address_mode and pointer_mode hooks instead of hardcoded
12277 Pmode and ptr_mode. Handle some simple cases of extending if
12278 POINTERS_EXTEND_UNSIGNED < 0.
12279 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12280 Call convert_debug_memory_address.
12281 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12282 convert_debug_memory_address.
12283
12284 PR middle-end/46790
12285 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12286 * configure: Regenerated.
12287 * config.in: Regenerated.
12288 * varasm.c (default_function_section): Return NULL
12289 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12290
12291 2011-02-28 Martin Jambor <mjambor@suse.cz>
12292
12293 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12294 the description to match the printed values.
12295
12296 2011-02-28 Richard Guenther <rguenther@suse.de>
12297
12298 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12299 of the copied scope tree.
12300
12301 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12302
12303 * doc/extend.texi (Function Attributes): Avoid deeply (and
12304 wrongly) nested tables.
12305
12306 2011-02-27 Jakub Jelinek <jakub@redhat.com>
12307
12308 PR middle-end/47903
12309 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12310 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12311 r isn't op0 nor op1.
12312
12313 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12314
12315 * config/avr/avr.md: Remove magic comment for emacs.
12316
12317 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
12318
12319 PR target/45261
12320 * config/avr/avr.c (avr_option_override): Use error on bad options.
12321 (avr_help): New function.
12322 (TARGET_HELP): Define.
12323
12324 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
12325
12326 PR target/42240
12327 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12328 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12329
12330 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12331
12332 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12333 (ARM Options): Ditto.
12334 (i386 and x86-64 Options): Ditto.
12335 (RX Options): Ditto.
12336 (SPARC Options): Ditto.
12337
12338 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
12339
12340 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12341 FreeBSD 6 and later. Generally use cpu generic.
12342
12343 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
12344
12345 * doc/cpp.texi: Update copyright years.
12346
12347 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
12348
12349 PR target/46898
12350 * config/lm32/lm32.md (ashrsi3): Added needed variable.
12351
12352 2011-02-25 Jon Beniston <jon@beniston.com>
12353
12354 PR target/46898
12355 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12356 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12357 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12358 (lm32_block_move_inline): Add type cast to remove warning.
12359 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12360 (gen_int_relational): Move declarations to start of function.
12361
12362 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
12363
12364 PR tree-optimization/45470
12365 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12366 can throw internally only.
12367 * tree-vect-stmts.c (vectorizable_call): Likewise.
12368
12369 2011-02-24 Anatoly Sokolov <aesok@post.ru>
12370
12371 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12372 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12373 * config/stormy16/stormy16-protos.h
12374 (xstormy16_preferred_reload_class): Remove.
12375 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12376 static. Change 'rclass' argument and return type to reg_class_t.
12377 (TARGET_PREFERRED_RELOAD_CLASS,
12378 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12379
12380 2011-02-24 Richard Guenther <rguenther@suse.de>
12381
12382 * lto-streamer-in.c (input_bb): Do not find referenced vars
12383 in debug statements.
12384
12385 2011-02-23 Jason Merrill <jason@redhat.com>
12386
12387 * common.opt (fabi-version): Document v5 and v6.
12388
12389 2011-02-23 Richard Guenther <rguenther@suse.de>
12390
12391 PR tree-optimization/47849
12392 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12393
12394 2011-02-23 Jie Zhang <jie@codesourcery.com>
12395
12396 * opts-common.c (decode_cmdline_option): Print empty string
12397 argument as "" in decoded->orig_option_with_args_text.
12398 * gcc.c (execute): Print empty string argument as ""
12399 in the verbose output.
12400 (do_spec_1): Keep empty string argument.
12401
12402 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
12403
12404 * config.gcc: Declare score-* and crx-* obsolete.
12405
12406 2011-02-23 Jie Zhang <jie@codesourcery.com>
12407
12408 PR rtl-optimization/47763
12409 * web.c (web_main): Ignore naked clobber when replacing register.
12410
12411 2011-02-22 Anatoly Sokolov <aesok@post.ru>
12412
12413 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12414 Remove.
12415
12416 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
12417
12418 PR doc/47848
12419 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12420
12421 2011-02-22 Mike Stump <mikestump@comcast.net>
12422
12423 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12424 assembler.
12425 * configure: Regenerate.
12426
12427 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
12428
12429 PR rtl-optimization/46002
12430 * ira-color.c (update_copy_costs): Change class intersection
12431 test to reg_class_contents[] test of 'hard_regno'.
12432
12433 2011-02-21 Joseph Myers <joseph@codesourcery.com>
12434
12435 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12436 than Driver option.
12437 * config/hpux11.opt (mt): Likewise.
12438 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12439 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12440 * config/vax/elf.opt (mno-asm-pic): Likewise.
12441 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12442
12443 2011-02-21 Mike Stump <mikestump@comcast.net>
12444
12445 PR target/47822
12446 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12447 tree so we can get save the type.
12448 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12449 for CFString instead of trying to use past the end of the builtins.
12450 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12451 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12452 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12453 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12454 Rename to darwin_builtin_cfstring.
12455 (darwin_init_cfstring_builtins): Return the built type.
12456
12457 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
12458
12459 PR target/47840
12460 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12461 (_mm256_insert_epi64): Use _mm_insert_epi64.
12462
12463 2011-02-21 Anatoly Sokolov <aesok@post.ru>
12464
12465 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12466 * config/stormy16/stormy16-protos.h
12467 (xstormy16_mode_dependent_address_p): Remove.
12468 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12469 Make static. Change return type to bool. Change argument type to
12470 const_rtx. Remove dead code.
12471 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12472
12473 2011-02-21 Richard Guenther <rguenther@suse.de>
12474
12475 PR lto/47820
12476 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12477 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12478 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12479 TUs context.
12480 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12481 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12482
12483 2011-02-20 Richard Guenther <rguenther@suse.de>
12484
12485 PR lto/47822
12486 * tree.c (free_lang_data_in_decl): Clean builtins from
12487 the TU decl BLOCK_VARS.
12488
12489 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
12490
12491 PR debug/47620
12492 PR debug/47630
12493 * haifa-sched.c (fix_tick_ready): Skip tick computation
12494 for debug insns.
12495
12496 2011-02-19 Richard Guenther <rguenther@suse.de>
12497
12498 PR lto/47647
12499 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12500 Remove lazy BLOCK_VARS streaming.
12501 (lto_input_ts_block_tree_pointers): Likewise.
12502 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12503
12504 2011-02-19 Joseph Myers <joseph@codesourcery.com>
12505
12506 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12507
12508 2011-02-19 Joseph Myers <joseph@codesourcery.com>
12509
12510 * config/i386/biarch32.h, config/i386/mach.h,
12511 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12512
12513 2011-02-19 Jakub Jelinek <jakub@redhat.com>
12514
12515 PR target/47800
12516 * config/i386/i386.md (peephole2 for shift and plus): Use
12517 operands[1] original mode in the first insn.
12518
12519 2011-02-18 Mike Stump <mikestump@comcast.net>
12520
12521 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12522
12523 2011-02-18 Jan Hubicka <jh@suse.cz>
12524
12525 PR middle-end/47788
12526 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12527 to zero when the function is not inlinable at all.
12528
12529 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12530
12531 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12532 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12533 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12534 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12535 * config/pa/t-pa64: Likewise.
12536 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12537
12538 2011-02-18 Jakub Jelinek <jakub@redhat.com>
12539
12540 PR driver/47787
12541 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12542
12543 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12544
12545 PR target/47792
12546 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12547
12548 2011-02-18 Anatoly Sokolov <aesok@post.ru>
12549
12550 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12551 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12552 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12553 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12554 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12555 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12556 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12557 m32r_load_postinc_p, m32r_store_preinc_predec_p,
12558 m32r_legitimate_address_p): New functions.
12559 * config/m32r/constraints.md (constraint "S"): Don't use
12560 STORE_PREINC_PREDEC_P.
12561 (constraint "U"): Don't use LOAD_POSTINC_P.
12562
12563 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
12564
12565 PR rtl-optimization/46178
12566 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12567 compute ira_hard_regno_cover_class[].
12568
12569 2011-02-18 Richard Guenther <rguenther@suse.de>
12570
12571 PR lto/47798
12572 * lto-streamer.h (lto_global_var_decls): Declare.
12573 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12574 statics for global var processing.
12575
12576 2011-02-18 Richard Guenther <rguenther@suse.de>
12577
12578 PR tree-optimization/47737
12579 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12580 edge dominance check.
12581
12582 2011-02-18 Jakub Jelinek <jakub@redhat.com>
12583
12584 PR debug/47780
12585 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12586 avoid invalid rtx sharing.
12587
12588 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
12589
12590 * doc/cpp.texi (Obsolete Features): Add background on the
12591 origin of assertions.
12592
12593 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
12594
12595 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12596 objc_abi == 2.
12597 * config/darwin.c (output_objc_section_asm_op): Added support for
12598 ABI v1 and v2.
12599 (is_objc_metadata): New.
12600 (darwin_objc2_section): New.
12601 (darwin_objc1_section): New.
12602 (machopic_select_section): Added support for ABI v1 and v2.
12603 (darwin_emit_objc_zeroed): New.
12604 (darwin_output_aligned_bss): Detect objc metadata and treat it
12605 appropriately.
12606 (darwin_asm_output_aligned_decl_common): Same.
12607 (darwin_asm_output_aligned_decl_local): Same.
12608 * config/darwin-sections.def: Updated for ABI v1 and v2.
12609 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12610 compiling Objective-C code for the NeXT runtime, default to using
12611 ABI version 0 for 32-bit, and version 2 for 64-bit.
12612
12613 2011-02-17 Joseph Myers <joseph@codesourcery.com>
12614
12615 * common.opt (optimize_fast): New Variable.
12616 * opts.c (default_options_optimization): Use opts->x_optimize_fast
12617 instead of local variable ofast.
12618
12619 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
12620
12621 * doc/invoke.texi (fobjc-abi-version): Documented.
12622 (fobjc-nilcheck): Documented.
12623 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12624 version.
12625
12626 2011-02-17 Joseph Myers <joseph@codesourcery.com>
12627
12628 PR driver/47390
12629 * common.opt (export-dynamic): New Driver option.
12630 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12631
12632 2011-02-17 Joseph Myers <joseph@codesourcery.com>
12633
12634 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12635
12636 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
12637 Jan Hubicka <jh@suse.cz>
12638
12639 PR debug/47106
12640 PR debug/47402
12641 * cfgexpand.c (account_used_vars_for_block): Remove.
12642 (estimated_stack_frame_size): Use referenced vars.
12643 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12644 that were referenced in the original function. Test src_fn
12645 rather than cfun. Drop redundant get_var_ann.
12646 (setup_one_parameter): Drop redundant get_var_ann.
12647 (declare_return_variable): Likewise.
12648 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12649 (copy_arguments_for_versioning): Drop redundant get_var_ann.
12650 * ipa-inline.c (compute_inline_parameters): Do not compute
12651 disregard_inline_limits here.
12652 (compute_inlinable_for_current, pass_inlinable): New.
12653 (pass_inline_parameters): Require PROP_referenced_vars.
12654 * cgraphunit.c (cgraph_process_new_functions): Don't run
12655 compute_inline_parameters explicitly unless function is in SSA form.
12656 (cgraph_analyze_function): Set .disregard_inline_limits.
12657 * tree-sra.c (convert_callers): Compute inliner parameters
12658 only for functions already in SSA form.
12659
12660 2011-02-17 Joseph Myers <joseph@codesourcery.com>
12661
12662 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12663 -mlittle-endian-data.
12664
12665 2011-02-17 Joseph Myers <joseph@codesourcery.com>
12666
12667 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12668 -mno-fpu, not -fpu and -no-fpu.
12669 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12670 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12671
12672 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
12673
12674 PR target/43653
12675 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12676 input reload with PLUS RTX.
12677
12678 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12679
12680 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12681 of InverseVar(MDMX).
12682
12683 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12684
12685 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12686 --m4-340.
12687
12688 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12689
12690 * config/mn10300/mn10300.opt (mno-crt0): New.
12691
12692 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12693
12694 * config/m68k/uclinux.opt (static-libc): New Driver option.
12695
12696 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12697
12698 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12699
12700 2011-02-16 Joseph Myers <joseph@codesourcery.com>
12701
12702 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12703 %{muser-extend-enabled}.
12704
12705 2011-02-16 Richard Guenther <rguenther@suse.de>
12706
12707 PR tree-optimization/47738
12708 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12709 the TODO from tree_predictive_commoning.
12710
12711 2011-02-15 Jeff Law <law@redhat.com>
12712
12713 Revert
12714 2011-01-25 Jeff Law <law@redhat.com>
12715
12716 PR rtl-optimization/37273
12717 * ira-costs.c (scan_one_insn): Detect constants living in memory and
12718 handle them like argument loads from stack slots. Do not double
12719 count memory for memory constants and argument loads from stack slots.
12720
12721 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12722
12723 PR middle-end/47725
12724 * combine.c (cant_combine_insn_p): Revert the last change.
12725
12726 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12727
12728 PR target/47755
12729 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12730 mode for vector constants. Remove code that checks for TImode.
12731
12732 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
12733
12734 PR debug/47106
12735 PR debug/47402
12736 * cgraph.h (compute_inline_parameters): Return void.
12737 * ipa-inline.c (compute_inline_parameters): Adjust.
12738
12739 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
12740
12741 PR debug/47106
12742 PR debug/47402
12743 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12744 rather than decl.
12745 * cfgexpand.c (estimated_stack_frame_size): Likewise.
12746 * ipa-inline.c (compute_inline_parameters): Adjust.
12747
12748 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
12749
12750 PR debug/47106
12751 PR debug/47402
12752 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12753 Adjust all users. Pass FN to...
12754 * tree-flow-inline.h (first_referenced_var): ... this. Add
12755 fn argument.
12756 * ipa-struct-reorg.c: Adjust.
12757 * tree-dfa.c: Adjust.
12758 * tree-into-ssa.c: Adjust.
12759 * tree-sra.c: Adjust.
12760 * tree-ssa-alias.c: Adjust.
12761 * tree-ssa-live.c: Adjust.
12762 * tree-ssa.c: Adjust.
12763 * tree-ssanames.c: Adjust.
12764 * tree-tailcall.c: Adjust.
12765
12766 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
12767
12768 PR debug/47106
12769 PR debug/47402
12770 * tree-flow.h (referenced_var_lookup): Add fn parameter.
12771 Adjust all callers.
12772 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12773 * tree-flow-inline.h: Adjust.
12774 * gimple-pretty-print.c: Adjust.
12775 * tree-into-ssa.c: Adjust.
12776 * tree-ssa.c: Adjust.
12777 * cfgexpand.c: Adjust.
12778
12779 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12780
12781 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12782 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12783 (EXTRA_CONSTRAINT): Delete.
12784 * config/iq2000/constraints.md: New file.
12785 * config/iq2000/iq2000.md: Include it.
12786 (define_insn ""): Delete.
12787 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12788 unsupported constraint letters from patterns.
12789 (call_value, call_value_internal1): Likewise.
12790 (call_value_multiple_internal1): Likewise.
12791
12792 2011-02-15 Nick Clifton <nickc@redhat.com>
12793
12794 * config/mn10300/mn10300.c: Include tm-constrs.h.
12795 (struct liw_data): New data structure describing an LIW candidate
12796 instruction.
12797 (extract_bundle): Use struct liw_data. Allow small integer
12798 operands for some instructions.
12799 (check_liw_constraints): Use struct liw_data. Remove swapped
12800 parameter. Add comments describing the checks. Fix bug when
12801 assigning the source of liw1 to the source of liw2.
12802 (liw_candidate): Delete. Code moved into extract_bundle.
12803 (mn10300_bundle_liw): Use struct liw_data. Check constraints
12804 before swapping.
12805 * config/mn10300/predicates.md (liw_operand): New predicate.
12806 Allows registers and small integer constants.
12807 * config/mn10300/constraints.md (O): New constraint. Accetps
12808 integers in the range -8 to +7 inclusive.
12809 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12810 for moving a small integer into a register. Give this alternative
12811 LIW attributes.
12812 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12813 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12814 using the J,K,L and M constraints,
12815 (liw): Remove SI mode on second operands to allow for HI and QI
12816 mode values.
12817 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
12818 instruction.
12819
12820 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12821
12822 PR middle-end/47725
12823 * combine.c (cant_combine_insn_p): Check zero/sign extended
12824 hard registers.
12825
12826 2011-02-15 Richard Guenther <rguenther@suse.de>
12827
12828 PR tree-optimization/47743
12829 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12830 for a non-type-compatible VN lookup bail out.
12831
12832 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12833
12834 * config/fr30/constraints.md: New file.
12835 * config/fr30/fr30.md: Include it.
12836 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12837 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12838 (EXTRA_CONSTRAINT): Delete.
12839
12840 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12841
12842 * config/frv/constraints.md: New file.
12843 * config/frv/predicates.md: Include it.
12844 * config/frv/frv.c (reg_class_from_letter): Delete.
12845 (frv_option_override): Don't initialize it.
12846 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12847 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12848 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12849 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12850 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12851 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12852 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12853 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12854 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12855 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12856 (REG_CLASS_FROM_CONSTRAINT): Delete.
12857
12858 2011-02-15 Jakub Jelinek <jakub@redhat.com>
12859
12860 PR middle-end/47581
12861 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12862 if frame size is 0 in a leaf function.
12863
12864 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12865
12866 PR pch/14940
12867 * config/alpha/host-osf.c: New file.
12868 * config/alpha/x-osf: New file.
12869 * config.host (alpha*-dec-osf*): Use it.
12870
12871 2011-02-14 Anatoly Sokolov <aesok@post.ru>
12872
12873 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12874 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12875 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12876 (rx_mode_dependent_address_p): ...this. Make static. Change argument
12877 type to const_rtx.
12878 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12879
12880 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12881
12882 * config/stormy16/constraints.md: New file.
12883 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12884 Use satisfies_constraint_Q and satisfies_constraint_R.
12885 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12886 Delete.
12887 (xstormy16_legitiamte_address_p): Declare.
12888 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12889 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12890 (EXTRA_CONSTRAINT): Delete.
12891 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12892 Un-staticize.
12893 (xstormy16_extra_constraint_p): Delete.
12894
12895 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12896
12897 PR tree-optimization/46494
12898 * loop-unroll.c (split_edge_and_insert): Adjust comment.
12899 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12900 (pass_rtl_loop_done): Add TODO_verify_flow.
12901 * fwprop.c (pass_rtl_fwprop): Likewise.
12902 * modulo-sched.c (pass_sms): Likewise.
12903 * tree-ssa-dom.c (pass_dominator): Likewise.
12904 * tree-ssa-loop-ch.c (pass_ch): Likewise.
12905 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12906 (pass_tree_loop_done): Likewise.
12907 * tree-ssa-pre.c (execute_pre): Likewise.
12908 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12909 * tree-ssa-sink.c (pass_sink_code): Likewise.
12910 * tree-vrp.c (pass_vrp): Likewise.
12911
12912 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12913
12914 * config/v850/constraints.md: New file.
12915 * config/v850/v850.md: Include it.
12916 * config/v850/predicates.md (reg_or_0_operand): Use
12917 satisfies_constraint_G.
12918 (special_symbolref_operand): Use satisfies_constraint_K.
12919 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12920 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12921 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12922 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12923 (EXTRA_CONSTRAINT): Delete.
12924 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12925 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12926 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12927
12928 2011-02-14 Anatoly Sokolov <aesok@post.ru>
12929
12930 PR target/47696
12931 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12932 description.
12933
12934 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12935
12936 * config/mcore/constraints.md: New file.
12937 * config/mcore/mcore.md: Include it.
12938 * config/mcore/mcore.c (reg_class_from_letter): Delete.
12939 * config/mcore/mcore.h (reg_class_from_letter): Delete.
12940 (REG_CLASS_FROM_LETTER): Delete.
12941 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12942 insn_const_int_ok_for_constraint.
12943 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12944 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12945 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12946 (EXTRA_CONSTRAINT): Delete.
12947
12948 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12949
12950 PR ada/41929
12951 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12952 (IS_SIGHANDLER): Define.
12953 (sparc64_is_sighandler): New function, split off from
12954 sparc64_fallback_frame_state.
12955 (sparc_is_sighandler): New function, split off from
12956 sparc_fallback_frame_state.
12957 (sparc64_fallback_frame_state): Merge with ...
12958 (sparc_fallback_frame_state): ... this into ...
12959 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12960 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
12961 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
12962 stack instead of hardcoded offsets.
12963
12964 2011-02-14 Andriy Gapon <avg@freebsd.org>
12965
12966 PR target/45808
12967 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12968
12969 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12970
12971 * configure: Regenerate.
12972
12973 2011-02-12 Joseph Myers <joseph@codesourcery.com>
12974
12975 PR driver/45731
12976 * gcc.c (asm_options): Correct spec matching --target-help.
12977
12978 2011-02-12 Martin Jambor <mjambor@suse.cz>
12979
12980 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12981 to gimple call error.
12982
12983 2011-02-12 Mike Stump <mikestump@comcast.net>
12984
12985 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12986 comments in backslash regions.
12987
12988 2011-02-12 Mike Stump <mikestump@comcast.net>
12989 Jakub Jelinek <jakub@redhat.com>
12990 Iain Sandoe <iains@gcc.gnu.org>
12991
12992 PR target/47324
12993 * dwarf2out.c (output_cfa_loc): When required, apply the
12994 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12995 (output_loc_sequence): Likewise.
12996 (output_loc_operands_raw): Likewise.
12997 (output_loc_sequence_raw): Likewise.
12998 (output_cfa_loc): Likewise.
12999 (output_loc_list): Suppress register number adjustment when
13000 calling output_loc_sequence()
13001 (output_die): Likewise.
13002
13003 2011-02-12 Anatoly Sokolov <aesok@post.ru>
13004
13005 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13006 Remove macros.
13007 * config/xtensa/xtensa.c (xtensa_register_move_cost,
13008 xtensa_memory_move_cost): New functions.
13009 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
13010
13011 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
13012
13013 PR lto/47225
13014 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
13015 in the current directory.
13016 * configure: Rebuilt.
13017
13018 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13019
13020 * config/darwin.c (darwin_override_options): Add a hunk missed
13021 from the commit of r168571. Trim comment line lengths and
13022 correct indents of the preceding block.
13023
13024 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
13025
13026 * gcc.c (driver_handle_option): Concatenate the argument to -F with
13027 the switch.
13028
13029 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13030
13031 * common.opt (nostartfiles): New Driver option.
13032
13033 2011-02-11 Xinliang David Li <davidxl@google.com>
13034
13035 PR tree-optimization/47707
13036 * tree-chrec.c (convert_affine_scev): Keep type precision.
13037
13038 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
13039
13040 PR tree-optimization/47420
13041 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
13042
13043 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
13044
13045 PR rtl-optimization/47614
13046 * rtl.h (check_for_inc_dec): Declare.
13047 * dse.c (check_for_inc_dec): Externalize...
13048 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
13049 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
13050
13051 2011-02-11 Joseph Myers <joseph@codesourcery.com>
13052
13053 PR driver/47678
13054 * gcc.c (main): Do not compile inputs if there were errors in
13055 option handling.
13056 * opts-common.c (read_cmdline_option): Check for wrong language
13057 after other error checks.
13058
13059 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
13060
13061 * cgraph.c: Fix comment typos.
13062 * cgraph.h: Likewise.
13063 * cgraphunit.c: Likewise.
13064 * ipa-cp.c: Likewise.
13065 * ipa-inline.c: Likewise.
13066 * ipa-prop.c: Likewise.
13067 * ipa-pure-const.c: Likewise.
13068 * ipa-ref.c: Likewise.
13069 * ipa-reference.c: Likewise.
13070
13071 2011-02-11 Jakub Jelinek <jakub@redhat.com>
13072
13073 PR debug/47684
13074 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
13075
13076 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13077
13078 PR testsuite/47400
13079 * doc/sourcebuild.texi (Require Support): Document
13080 dg-require-ascii-locale.
13081
13082 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
13083
13084 * doc/lto.texi (Write summary): Fix missing parentheses.
13085
13086 2011-02-10 DJ Delorie <dj@redhat.com>
13087
13088 * config/m32c/m32c.c (m32c_option_override): Disable
13089 -fcombine-stack-adjustments until flag value tracking and compare
13090 optimization can be rewritten.
13091
13092 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
13093
13094 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
13095 PROCESSOR_POWER7.
13096 (PROCESSOR_DEFAULT64): Likewise.
13097
13098 2011-02-10 Richard Henderson <rth@redhat.com>
13099
13100 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
13101 change from 2011-02-03.
13102 * config/rx/rx.c (flags_from_code): Likewise.
13103 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
13104 is valid, n/pz otherwise.
13105 (rx_select_cc_mode): Return CCmode if Y is not zero.
13106
13107 2011-02-10 Richard Guenther <rguenther@suse.de>
13108
13109 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
13110
13111 2011-02-10 Richard Guenther <rguenther@suse.de>
13112
13113 PR tree-optimization/47677
13114 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
13115
13116 2011-02-10 Jakub Jelinek <jakub@redhat.com>
13117
13118 PR target/47665
13119 * combine.c (make_compound_operation): Only change shifts into
13120 multiplication for SCALAR_INT_MODE_P.
13121
13122 2011-02-10 Jie Zhang <jie@codesourcery.com>
13123
13124 PR testsuite/47622
13125 Revert
13126 2011-02-05 Jie Zhang <jie@codesourcery.com>
13127 PR debug/42631
13128 * web.c (entry_register): Don't clobber the number of the
13129 first uninitialized reference in used[].
13130
13131 2011-02-09 Richard Guenther <rguenther@suse.de>
13132
13133 PR tree-optimization/47664
13134 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
13135 all edges again.
13136
13137 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
13138
13139 PR target/46481
13140 PR target/47032
13141 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
13142 PROCESSOR_POWER7.
13143 (PROCESSOR_DEFAULT64): Same.
13144 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
13145
13146 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13147
13148 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
13149
13150 2011-02-09 Martin Jambor <mjambor@suse.cz>
13151
13152 PR middle-end/45505
13153 * tree-sra.c (struct access): New flags grp_scalar_read and
13154 grp_scalar_write. Changed description of assignment read and write
13155 flags.
13156 (dump_access): Dump new flags, reorder all of them.
13157 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
13158 to detect multiple scalar reads.
13159 (analyze_access_subtree): Use the new scalar read write flags instead
13160 of the old flags. Adjusted comments.
13161
13162 2011-02-08 DJ Delorie <dj@redhat.com>
13163
13164 PR target/47548
13165 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
13166 patterns.
13167
13168 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13169
13170 * config/m68k/uclinux.opt: New.
13171 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
13172
13173 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13174
13175 * config/cris/elf.opt (sim): New Driver option.
13176
13177 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13178
13179 * config/xtensa/elf.opt: New.
13180 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13181
13182 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13183
13184 * config/vax/elf.opt: New.
13185 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13186
13187 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13188
13189 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13190
13191 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13192
13193 * config/gnu-user.opt: New.
13194 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13195 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13196 *-*-uclinux*): Use gnu-user.opt.
13197
13198 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
13199
13200 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13201 * config/i386/gnu.h (CPP_SPEC): Likewise.
13202
13203 2011-02-08 Ian Lance Taylor <iant@google.com>
13204
13205 * common.opt (fcx-limited-range): Add SetByCombined flag.
13206 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13207 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13208 (fassociative-math, freciprocal-math): Likewise.
13209 (funsafe-math-optimizations): Likewise.
13210 * opth-gen.awk: Handle SetByCombined.
13211 * optc-gen.awk: Likewise.
13212 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
13213 (set_unsafe_math_optimizations_flags): Likewise.
13214 * doc/options.texi (Option properties): Document SetByCombined.
13215
13216 2011-02-08 Joseph Myers <joseph@codesourcery.com>
13217
13218 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13219 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13220 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13221 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13222 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13223
13224 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
13225
13226 PR tree-optimization/46834
13227 PR tree-optimization/46994
13228 PR tree-optimization/46995
13229 * graphite-sese-to-poly.c (used_outside_reduction): New.
13230 (detect_commutative_reduction): Call used_outside_reduction.
13231 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13232 translate_scalar_reduction_to_array only when at least one
13233 loop-phi/close-phi tuple has been detected.
13234
13235 2011-02-08 Richard Guenther <rguenther@suse.de>
13236
13237 PR middle-end/47639
13238 * tree-vect-generic.c (expand_vector_operations_1): Update
13239 stmts here ...
13240 (expand_vector_operations): ... not here. Cleanup EH info
13241 and the CFG if required.
13242
13243 2011-02-08 Richard Guenther <rguenther@suse.de>
13244
13245 PR tree-optimization/47641
13246 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13247 require type compatibility.
13248
13249 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13250
13251 * gimple-low.c (lower_function_body): Don't remove the location of
13252 the return statement here.
13253 (lower_gimple_return): Do it here instead but only if the return
13254 statement is actually used twice.
13255
13256 2011-02-08 Richard Guenther <rguenther@suse.de>
13257
13258 PR tree-optimization/47632
13259 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13260 unused up_to_stmt parameter, return whether cfg-cleanup is
13261 necessary, remove EH info properly.
13262 (forward_propagate_into_gimple_cond): Adjust caller.
13263 (forward_propagate_into_cond): Likewise.
13264 (forward_propagate_comparison): Likewise.
13265 (tree_ssa_forward_propagate_single_use_vars): Make
13266 forward_propagate_comparison case similar to the two others.
13267
13268 2011-02-08 Nick Clifton <nickc@redhat.com>
13269
13270 * config/mn10300/mn10300.opt (mliw): New command line option.
13271 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13272 (liw_bundling): New automaton.
13273 (liw): New attribute.
13274 (liw_op): New attribute.
13275 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13276 (movsi_internal): Add LIW attributes.
13277 (andsi3): Likewise.
13278 (iorsi3): Likewise.
13279 (xorsi3): Likewise.
13280 (addsi3): Separate register and immediate alternatives.
13281 Add LIW attributes.
13282 (subsi3): Likewise.
13283 (cmpsi): Likewise.
13284 (aslsi3): Likewise.
13285 (lshrsi3): Likewise.
13286 (ashrsi3): Likewise.
13287 (liw): New pattern.
13288 * config/mn10300/mn10300.c (liw_op_names): New
13289 (mn10300_print_operand): Handle 'W' operand descriptor.
13290 (extract_bundle): New function.
13291 (check_liw_constraints): New function.
13292 (liw_candidate): New function.
13293 (mn10300_bundle_liw): New function.
13294 (mn10300_reorg): New function.
13295 (TARGET_MACHINE_DEPENDENT_REORG): Define.
13296 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13297 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13298 __LIW__ or __NO_LIW__.
13299 * doc/invoke.texi: Describe the -mliw command line option.
13300
13301 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13302
13303 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13304 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13305 pthread_mutex_unlock): Remove.
13306 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13307 * config/pa/t-pa64: Likewise.
13308 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13309 shared libc if not linking against libpthread.
13310 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13311
13312 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
13313
13314 PR target/47558
13315 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13316 on 10.6 and later to ensure that we always use the unwinder from
13317 the system. Only add -no_compact_unwind when tarteting darwin
13318 10.6 or later.
13319
13320 2011-02-07 Steve Ellcey <sje@cup.hp.com>
13321
13322 PR target/46997
13323 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13324 (vec_interleave_lowv2sf): Ditto.
13325 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13326 (vec_extract_oddv2sf): Ditto.
13327
13328 2011-02-07 Mike Stump <mikestump@comcast.net>
13329
13330 PR target/42333
13331 Add __ieee_divdc3 entry point.
13332 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13333 entry point.
13334 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13335 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13336 * config/darwin.c (darwin_rename_builtins): Add.
13337 * config/darwin-protos.h (darwin_rename_builtins): Add.
13338
13339 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
13340
13341 PR target/47636
13342 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13343 for the condition.
13344
13345 2011-02-07 Mike Stump <mikestump@comcast.net>
13346
13347 * config/darwin.opt (mmacosx-version-min): Update default OS version.
13348
13349 2011-02-07 Denis Chertykov <chertykov@gmail.com>
13350
13351 PR target/47534
13352 * config/avr/libgcc.S (exit): Move .endfunc
13353
13354 2011-02-07 Richard Guenther <rguenther@suse.de>
13355
13356 PR tree-optimization/47615
13357 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13358 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13359 (run_scc_vn): Initialize it.
13360 (visit_reference_op_load): Use it.
13361 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13362
13363 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13364
13365 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13366 DImode trapping arithmetic libfuncs.
13367
13368 2011-02-07 Richard Guenther <rguenther@suse.de>
13369
13370 PR tree-optimization/47621
13371 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13372 two duplicates ...
13373 (execute_update_addresses_taken): ... here. Make it more
13374 conservative in what we accept.
13375
13376 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13377
13378 * config/sparc/freebsd.h (ASM_SPEC): Define.
13379 * config/sparc/vxworks.h (ASM_SPEC): Define.
13380
13381 2011-02-06 Joseph Myers <joseph@codesourcery.com>
13382
13383 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13384
13385 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
13386
13387 * doc/invoke.texi: Remove reference to compiler internals from
13388 user documentation.
13389
13390 * reg-notes.def: Remove REG_VALUE_PROFILE.
13391 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13392
13393 2011-02-05 Jakub Jelinek <jakub@redhat.com>
13394
13395 PR middle-end/47610
13396 * varasm.c (default_section_type_flags): If decl is NULL,
13397 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13398
13399 2011-02-05 Jie Zhang <jie@codesourcery.com>
13400
13401 PR debug/42631
13402 * web.c (entry_register): Don't clobber the number of the
13403 first uninitialized reference in used[].
13404
13405 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
13406
13407 PR tree-optimization/46194
13408 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13409 (build_classic_dist_vector_1): Do not represent classic distance
13410 vectors when the access functions are variating in different loops.
13411
13412 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13413
13414 * config/mips/iris6.opt: New.
13415 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13416
13417 2011-02-04 Richard Henderson <rth@redhat.com>
13418 Steve Ellcey <sje@cup.hp.com>
13419
13420 PR target/46997
13421 * config/ia64/predicates.md (mux1_brcst_element): New.
13422 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13423 * config/ia64/ia64.c (ia64_unpack_assemble): New.
13424 (ia64_unpack_sign): New.
13425 (ia64_expand_unpack): Rewrite using new routines.
13426 (ia64_expand_widen_sum): Ditto.
13427 (ia64_expand_dot_prod_v8qi): Ditto.
13428 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13429 routines, add endian check.
13430 (pmpy2_even): Rename from pmpy2_r, add endian check.
13431 (pmpy2_odd): Rename from pmpy2_l, add endian check.
13432 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13433 (vec_widen_smult_hi_v4hi): Ditto.
13434 (vec_widen_umult_lo_v4hi): Ditto.
13435 (vec_widen_umult_hi_v4hi): Ditto.
13436 (mulv2si3): Change endian checks.
13437 (sdot_prodv4hi): Rewrite with new calls.
13438 (udot_prodv4hi): New.
13439 (vec_pack_ssat_v4hi): Add endian check.
13440 (vec_pack_usat_v4hi): Ditto.
13441 (vec_pack_ssat_v2si): Ditto.
13442 (max1_even): Rename from max1_r, add endian check.
13443 (max1_odd): Rename from max1_l, add endian check.
13444 (*mux1_rev): Format change.
13445 (*mux1_mix): Ditto.
13446 (*mux1_shuf): Ditto.
13447 (*mux1_alt): Ditto.
13448 (*mux1_brcst_v8qi): Use new predicate.
13449 (vec_extract_evenv8qi): Remove endian check.
13450 (vec_extract_oddv8qi): Ditto.
13451 (vec_interleave_lowv4hi): Format change.
13452 (vec_interleave_highv4hi): Ditto.
13453 (mix2_even): Rename from mix2_r, add endian check.
13454 (mix2_odd): Rename from mux2_l, add endian check.
13455 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13456 (vec_extract_evenodd_helper): Format change.
13457 (vec_extract_evenv4hi): Remove endian check.
13458 (vec_extract_oddv4hi): Remove endian check.
13459 (vec_interleave_lowv2si): Format change.
13460 (vec_interleave_highv2si): Format change.
13461 (vec_initv2si): Remove endian check.
13462 (vecinit_v2si): Add endian check.
13463 (reduc_splus_v2sf): Add endian check.
13464 (reduc_smax_v2sf): Ditto.
13465 (reduc_smin_v2sf): Ditto.
13466 (vec_initv2sf): Remove endian check.
13467 (fpack): Add endian check.
13468 (fswap): Add endian check.
13469 (vec_interleave_highv2sf): Add endian check.
13470 (vec_interleave_lowv2sf): Add endian check.
13471 (fmix_lr): Add endian check.
13472 (vec_setv2sf): Format change.
13473 (*vec_extractv2sf_0_be): Use shift to extract operand.
13474 (*vec_extractv2sf_1_be): New.
13475 (vec_pack_trunc_v4hi): Add endian check.
13476 (vec_pack_trunc_v2si): Format change.
13477
13478 2011-02-04 Jakub Jelinek <jakub@redhat.com>
13479
13480 PR inline-asm/23200
13481 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
13482 do bb, locus and block comparison and disallow loads if it is not set.
13483 (stmt_is_replaceable_p): New function.
13484 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13485 callers.
13486 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13487 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13488 SSA_NAME_DEF_STMT.
13489 * tree-flow.h (stmt_is_replaceable_p): New prototype.
13490
13491 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13492
13493 * config/rs6000/xilinx.opt: New.
13494 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13495
13496 2011-02-04 Joseph Myers <joseph@codesourcery.com>
13497
13498 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13499
13500 2011-02-03 Anatoly Sokolov <aesok@post.ru>
13501
13502 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13503 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13504 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13505 secondary_reload_info, xtensa_secondary_reload): Remove.
13506 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13507 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13508 (xtensa_preferred_reload_class): Make static. Change return and
13509 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13510 Use CONST_DOUBLE_P predicate.
13511 (xtensa_preferred_output_reload_class): New function.
13512 (xtensa_secondary_reload): Make static.
13513
13514 2011-02-03 Joseph Myers <joseph@codesourcery.com>
13515
13516 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13517 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13518 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13519
13520 2011-02-03 Jakub Jelinek <jakub@redhat.com>
13521
13522 PR middle-end/31490
13523 * output.h (SECTION_RELRO): Define.
13524 (SECTION_MACH_DEP): Adjust.
13525 (get_variable_section): New prototype.
13526 * varpool.c (varpool_finalize_named_section_flags): New function.
13527 (varpool_assemble_pending_decls): Call it.
13528 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13529 * cgraphunit.c (cgraph_output_in_order): Call
13530 varpool_finalize_named_section_flags.
13531 * varasm.c (get_section): Allow section flags conflicts between
13532 relro and read-only sections if the section hasn't been declared yet.
13533 Set SECTION_OVERRIDE after diagnosing section type conflict.
13534 (get_variable_section): No longer static.
13535 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13536 readonly sections that need relocations.
13537 (decl_readonly_section_1): New function.
13538 (decl_readonly_section): Use it.
13539
13540 Revert:
13541 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
13542 Steve Ellcey <sje@cup.hp.com>
13543
13544 PR middle-end/31490
13545 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13546 if section attribute used.
13547
13548 2011-02-03 Jakub Jelinek <jakub@redhat.com>
13549
13550 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13551 * config/darwin.c (SECTION_NO_ANCHOR): Define.
13552 (darwin_init_sections): Remove assertion.
13553
13554 2011-02-03 Nick Clifton <nickc@redhat.com>
13555
13556 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13557 lt and ge.
13558 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13559 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13560 instead of "n" and "pz".
13561 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13562 CC_FLAG_S.
13563
13564 2011-02-03 Jakub Jelinek <jakub@redhat.com>
13565
13566 PR target/47312
13567 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13568 fma, expand FMA_EXPR as fma{,f,l} call.
13569
13570 PR lto/47274
13571 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13572 copy them into a unsigned char variable and pass address of it to
13573 lto_output_data_stream.
13574
13575 PR target/47564
13576 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13577 around backend_init_target and lang_dependent_init_target calls.
13578 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13579 (verify_cgraph_node): Don't call set_cfun here. Use
13580 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13581 Set error_found for incorrectly represented calls to thunks.
13582
13583 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
13584
13585 PR debug/43092
13586 PR rtl-optimization/43494
13587 * rtl.h (for_each_inc_dec_fn): New type.
13588 (for_each_inc_dec): Declare.
13589 * rtlanal.c (struct for_each_inc_dec_ops): New type.
13590 (for_each_inc_dec_find_inc_dec): New fn.
13591 (for_each_inc_dec_find_mem): New fn.
13592 (for_each_inc_dec): New fn.
13593 * dse.c (struct insn_size): Remove.
13594 (replace_inc_dec, replace_inc_dec_mem): Remove.
13595 (emit_inc_dec_insn_before): New fn.
13596 (check_for_inc_dec): Use it, along with for_each_inc_dec.
13597 (canon_address): Pass mem modes to cselib_lookup.
13598 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
13599 (cselib_lookup_from_insn): Likewise.
13600 (cselib_subst_to_values): Likewise.
13601 * cselib.c (find_slot_memmode): New var.
13602 (cselib_find_slot): New fn. Use it instead of
13603 htab_find_slot_with_hash everywhere.
13604 (entry_and_rtx_equal_p): Use find_slot_memmode.
13605 (autoinc_split): New fn.
13606 (rtx_equal_for_cselib_p): Rename and implement in terms of...
13607 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
13608 Deal with autoinc. Special-case recursion into MEMs.
13609 (cselib_hash_rtx): Likewise.
13610 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
13611 address and MEM modes.
13612 (cselib_subst_to_values): Add memmode, pass it on.
13613 Deal with autoinc.
13614 (cselib_lookup): Add memmode argument, pass it on.
13615 (cselib_lookup_from_insn): Add memmode.
13616 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13617 (struct cselib_record_autoinc_data): New.
13618 (cselib_record_autoinc_cb): New fn.
13619 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
13620 mode to cselib_lookup. Reset autoinced REGs here instead of...
13621 (cselib_process_insn): ... here.
13622 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13623 to cselib_lookup.
13624 (add_uses): Likewise, also to cselib_subst_to_values.
13625 (add_stores): Likewise.
13626 * sched-deps.c (add_insn_mem_dependence): Pass mode to
13627 cselib_subst_to_values.
13628 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
13629 * gcse.c (do_local_cprop): Adjusted.
13630 * postreload.c (reload_cse_simplify_set): Adjusted.
13631 (reload_cse_simplify_operands): Adjusted.
13632 * sel-sched-dump (debug_mem_addr_value): Pass mode.
13633
13634 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
13635
13636 PR tree-optimization/45122
13637 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13638 unsafe assumptions when there's more than one loop exit.
13639
13640 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
13641
13642 PR target/47272
13643 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13644 Document using vector double with the load/store builtins, and
13645 that the load/store builtins always use Altivec instructions.
13646
13647 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13648 to use altivec memory instructions, even on VSX.
13649 (vector_altivec_store_<mode>): Ditto.
13650
13651 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13652 function.
13653
13654 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13655 V2DF, V2DI support to load/store overloaded builtins.
13656
13657 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13658 altivec load/store builtins for V2DF/V2DI types.
13659
13660 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13661 set avoid indexed addresses on power6 if -maltivec.
13662 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13663 vector_altivec_load/vector_altivec_store builtins.
13664 (altivec_expand_st_builtin): Ditto.
13665 (altivec_expand_builtin): Add VSX memory builtins.
13666 (rs6000_init_builtins): Add V2DI types to internal types.
13667 (altivec_init_builtins): Add support for V2DF/V2DI altivec
13668 load/store builtins.
13669 (rs6000_address_for_altivec): Insure memory address is appropriate
13670 for Altivec.
13671
13672 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13673 vec_vsx_ld and vec_vsx_st.
13674 (vsx_store_<mode>): Ditto.
13675
13676 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13677 variables to hold long long types for VSX vector memory builtins.
13678 (RS6000_BTI_unsigned_long_long): Ditto.
13679 (long_long_integer_type_internal_node): Ditti.
13680 (long_long_unsigned_type_internal_node): Ditti.
13681
13682 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13683 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13684 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13685
13686 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13687 short cuts.
13688 (vec_vsx_st): Ditto.
13689
13690 2011-02-02 Joseph Myers <joseph@codesourcery.com>
13691
13692 * config/pa/pa-hpux10.opt: New.
13693 * config/hpux11.opt (pthread): New Driver option.
13694 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13695 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13696
13697 2011-02-02 Joseph Myers <joseph@codesourcery.com>
13698
13699 * config/ia64/vms.opt: New.
13700 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13701
13702 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
13703
13704 PR target/47580
13705 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13706 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13707 generator functions.
13708 (vsx_floatuns<VSi><mode>2): Ditto.
13709 (vsx_fix_trunc<mode><VSi>2): Ditto.
13710 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13711
13712 2011-02-02 Joseph Myers <joseph@codesourcery.com>
13713
13714 * config/i386/djgpp.opt (posix): New Driver option.
13715
13716 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
13717
13718 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13719 Move to the unsupported targets list.
13720
13721 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
13722
13723 PR rtl-optimization/47525
13724 * df-scan.c: Update copyright years.
13725 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13726 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13727
13728 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13729
13730 * config/i386/sysv4.h (TARGET_VERSION): Remove.
13731 (SUBTARGET_RETURN_IN_MEMORY): Remove.
13732 (ASM_OUTPUT_ASCII): Remove.
13733 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13734
13735 2011-02-02 Jeff Law <law@redhat.com>
13736
13737 PR middle-end/47543
13738 * reload.c (find_reloads_address): Handle reg+d address where both
13739 components are invalid by reloading the entire address.
13740
13741 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13742 Richard Guenther <rguenther@suse.de>
13743
13744 PR tree-optimization/40979
13745 PR bootstrap/47044
13746 * passes.c (init_optimization_passes): After LIM call copy_prop
13747 and DCE to clean up.
13748 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13749
13750 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13751
13752 PR tree-optimization/47576
13753 PR tree-optimization/47555
13754 * doc/invoke.texi (scev-max-expr-complexity): Documented.
13755 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13756 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13757 * tree-scalar-evolution.c (follow_ssa_edge): Use
13758 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13759
13760 2011-02-02 Richard Guenther <rguenther@suse.de>
13761
13762 PR tree-optimization/47566
13763 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13764
13765 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
13766
13767 PR debug/47106
13768 PR debug/47402
13769 * tree-inline.c (declare_return_variable): Remove unused caller
13770 variable.
13771
13772 PR debug/47106
13773 PR debug/47402
13774 * tree-flow-inline.h (clear_is_used, is_used_p): New.
13775 * cfgexpand.c (account_used_vars_for_block): Use them.
13776 * tree-nrv.c (tree_nrv): Likewise.
13777 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13778 (dump_scope_block): Likewise.
13779 (remove_unused_locals): Likewise.
13780
13781 PR debug/47106
13782 PR debug/47402
13783 * tree-inline.c (declare_return_variable): Add result decl to
13784 local decls only once.
13785 * gimple-low.c (record_vars_into): Mark newly-created variables
13786 as referenced.
13787
13788 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
13789
13790 PR debug/47498
13791 PR debug/47501
13792 PR debug/45136
13793 PR debug/45130
13794 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13795 debug insns.
13796 (no_real_insns_p, schedule_block, set_priorities): Drop special
13797 treatment of boundary debug insns.
13798 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13799 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13800 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13801 (BOUNDARY_DEBUG_INSN_P): Likewise.
13802 (SCHEDULE_DEBUG_INSN_P): Likewise.
13803 * sched-rgn.c (init_ready_list): Drop special treatment of
13804 boundary debug insns.
13805 * final.c (rest_of_clean_state): Clear notes' BB.
13806
13807 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13808
13809 * config/openbsd.opt (assert=): New Driver option.
13810
13811 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13812
13813 * config/i386/nto.opt: New.
13814 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13815
13816 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13817
13818 * config/i386/netware.opt: New.
13819 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13820
13821 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13822
13823 * config/interix.opt (posix): New Driver option.
13824
13825 2011-02-01 DJ Delorie <dj@redhat.com>
13826
13827 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13828
13829 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13830 class for A0/A1.
13831
13832 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
13833
13834 PR tree-optimization/47561
13835 * toplev.c (process_options): Print the Graphite flags. Add
13836 flag_loop_flatten to the list of options requiring Graphite.
13837
13838 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13839
13840 * config/i386/cygming.opt (posix): New Driver option.
13841
13842 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13843
13844 * config/arm/vxworks.opt: New.
13845 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13846
13847 2011-02-01 Joseph Myers <joseph@codesourcery.com>
13848
13849 * config/alpha/elf.opt: New.
13850 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13851 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13852
13853 2011-02-01 Richard Guenther <rguenther@suse.de>
13854
13855 PR tree-optimization/47559
13856 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13857 store-motion on references that can throw.
13858
13859 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
13860
13861 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13862 * tree-pass.h (TDF_CSELIB): New macro.
13863 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13864 cselib_lookup): Check for it rather than for TDF_DETAILS.
13865
13866 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
13867
13868 PR driver/47547
13869 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13870 is HOST_BIT_BUCKET.
13871
13872 * opts.c (finish_options): Don't add x_aux_base_name if it is
13873 HOST_BIT_BUCKET.
13874
13875 2011-02-01 Richard Guenther <rguenther@suse.de>
13876
13877 PR tree-optimization/47555
13878 Revert
13879 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
13880
13881 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13882
13883 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
13884
13885 PR gcc/46692
13886 * config/lm32/t-lm32: Add multilib for all CPU options.
13887
13888 2011-02-01 Richard Guenther <rguenther@suse.de>
13889
13890 PR tree-optimization/47541
13891 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13892 sure to have a field at offset zero.
13893
13894 2011-01-31 Joseph Myers <joseph@codesourcery.com>
13895
13896 * config/arc/arc.opt (EB, EL): New Driver options.
13897
13898 2011-01-31 Joseph Myers <joseph@codesourcery.com>
13899
13900 * config/alpha/osf5.opt: New.
13901 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13902
13903 2011-01-31 Joseph Myers <joseph@codesourcery.com>
13904
13905 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13906
13907 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
13908
13909 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13910 -floop-interchange.
13911 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13912 is an alias of -floop-interchange and that it requires the
13913 Graphite infrastructure.
13914 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13915 flag_loop_interchange based on the value of flag_tree_loop_linear.
13916
13917 2011-01-31 Jakub Jelinek <jakub@redhat.com>
13918 Richard Guenther <rguenther@suse.de>
13919
13920 PR tree-optimization/47538
13921 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13922 type instead of r1type, except for comparisons. For right
13923 shifts and comparisons punt if there are mismatches in
13924 sizetype vs. non-sizetype types.
13925
13926 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13927
13928 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13929 avx_runtime.
13930
13931 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13932
13933 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13934 version number.
13935 * configure: Regenerate.
13936
13937 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13938
13939 * configure.ac (gcc_cv_ld_static_option): Define.
13940 (gcc_cv_ld_dynamic_option): Define.
13941 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13942 instead.
13943 (HAVE_LD_STATIC_DYNAMIC): Update message.
13944 (LD_STATIC_OPTION): Define.
13945 (LD_DYNAMIC_OPTION): Define.
13946 * configure: Regenerate.
13947 * config.in: Regenerate.
13948 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13949 HAVE_LD_STATIC_DYNAMIC]: Use them.
13950
13951 2011-01-31 Nick Clifton <nickc@redhat.com>
13952
13953 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13954 registers inside interrupt handlers if the handler is not a leaf
13955 function.
13956
13957 2011-01-31 Nick Clifton <nickc@redhat.com>
13958
13959 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13960 reg_renumber returning an INVALID_REGNUM.
13961
13962 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
13963
13964 PR libgcj/44341
13965 * doc/install.texi: Document host options discarded when cross
13966 configuring target libraries.
13967
13968 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
13969
13970 Reverted:
13971 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
13972 PR debug/45136
13973 PR debug/45130
13974 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13975 debug insns.
13976 (no_real_insns_p, schedule_block, set_priorities): Drop special
13977 treatment of boundary debug insns.
13978 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13979 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13980 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13981 (BOUNDARY_DEBUG_INSN_P): Likewise.
13982 (SCHEDULE_DEBUG_INSN_P): Likewise.
13983 * sched-rgn.c (init_ready_list): Drop special treatment of
13984 boundary debug insns.
13985 * final.c (rest_of_clean-state): Clear notes' BB.
13986
13987 2011-01-31 Alan Modra <amodra@gmail.com>
13988
13989 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13990 toc relative expressions as we do in print_operand_address.
13991
13992 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
13993
13994 * doc/extend.texi: Follow spelling conventions.
13995 * doc/invoke.texi: Fix a typo.
13996
13997 2011-01-30 Joseph Myers <joseph@codesourcery.com>
13998
13999 * config/hpux11.opt: New.
14000 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
14001 ia64*-*-hpux*): Use hpux11.opt.
14002
14003 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
14004
14005 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
14006 to tmake_file.
14007
14008 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14009
14010 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
14011 support sites.
14012
14013 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14014
14015 * doc/install.texi (Binaries): Remove outdated reference for
14016 Motorola 68HC11/68HC12 downloads.
14017
14018 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
14019
14020 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
14021 Drepper's paper.
14022
14023 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
14024
14025 PR bootstrap/47147
14026 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
14027 used by NetBSD.
14028
14029 2011-01-28 Ahmad Sharif <asharif@google.com>
14030
14031 * value-prof.c (check_counter): Corrected error message.
14032
14033 2011-01-29 Jie Zhang <jie@codesourcery.com>
14034
14035 * config/arm/arm.c (arm_legitimize_reload_address): New.
14036 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14037 arm_legitimize_reload_address.
14038 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
14039
14040 2011-01-28 Ian Lance Taylor <iant@google.com>
14041
14042 * godump.c (go_define): Ignore macros whose definitions include
14043 two adjacent operands.
14044
14045 2011-01-28 Jakub Jelinek <jakub@redhat.com>
14046
14047 PR target/42894
14048 * varasm.c (force_const_mem): Store copy of x in desc->constant
14049 instead of x itself.
14050 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
14051 itself into REG_EQUAL note.
14052
14053 2011-01-28 Joseph Myers <joseph@codesourcery.com>
14054
14055 * config/freebsd.opt (posix, rdynamic): New Driver options.
14056
14057 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14058
14059 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
14060 -Bstatic/-Bdynamic.
14061 * configure: Regenerate.
14062
14063 2011-01-27 Joseph Myers <joseph@codesourcery.com>
14064
14065 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
14066 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
14067
14068 2011-01-27 Anatoly Sokolov <aesok@post.ru>
14069
14070 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
14071 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
14072 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14073 (s390_preferred_reload_class): Make static. Change return and
14074 'rclass' argument type to reg_class_t.
14075
14076 2011-01-27 Jan Hubicka <jh@suse.cz>
14077
14078 PR middle-end/46949
14079 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
14080 (process_function_and_variable_attributes): Check defined weakrefs.
14081
14082 2011-01-27 Martin Jambor <mjambor@suse.cz>
14083
14084 PR tree-optimization/47228
14085 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
14086 build_ref_for_offset.
14087
14088 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14089
14090 * config/spu/spu-elf.h (ASM_SPEC): Remove.
14091
14092 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
14093
14094 PR rtl-optimization/46856
14095 * postreload.c (reload_combine_recognize_const_pattern): Do not
14096 separate cc0 setter and user on cc0 targets.
14097
14098 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
14099
14100 PR c/43082
14101 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
14102 passed a VOID_TYPE expression, immediately emit an error and
14103 return error_mark_node.
14104
14105 2011-01-26 Jeff Law <law@redhat.com>
14106
14107 PR rtl-optimization/47464
14108 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
14109 rather than may_trap_p as needed.
14110
14111 2011-01-26 DJ Delorie <dj@redhat.com>
14112
14113 PR rtl-optimization/46878
14114 * combine.c (insn_a_feeds_b): Check for the implicit cc0
14115 setter/user dependency as well.
14116
14117 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
14118
14119 PR rtl-optimization/44469
14120 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
14121 after removing trivially dead basic blocks.
14122
14123 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14124
14125 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
14126 * config/frv/frv.h (LINK_SPEC): Likewise.
14127 * config/i386/netware.h (LINK_SPEC): Likewise.
14128 * config/m68k/linux.h (ASM_SPEC): Likewise.
14129 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
14130 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14131 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14132 * config/sparc/linux.h (ASM_SPEC): Likewise.
14133 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14134 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14135
14136 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14137
14138 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
14139 * config/frv/frv.h (ASM_SPEC): Likewise.
14140 * config/m68k/linux.h (ASM_SPEC): Likewise.
14141 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14142 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
14143 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14144 * config/sparc/linux.h (ASM_SPEC): Likewise.
14145 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14146 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14147
14148 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14149
14150 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
14151 * config/frv/frv.h (LINK_SPEC): Likewise.
14152 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
14153
14154 2011-01-26 Joseph Myers <joseph@codesourcery.com>
14155
14156 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
14157 * config/frv/frv.h (ASM_SPEC): Likewise.
14158 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
14159 * config/m68k/linux.h (ASM_SPEC): Likewise.
14160 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
14161 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
14162 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
14163 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
14164 * config/sparc/linux.h (ASM_SPEC): Likewise.
14165 * config/sparc/linux64.h (ASM_SPEC): Likewise.
14166 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
14167 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
14168
14169 2011-01-26 Steve Ellcey <sje@cup.hp.com>
14170
14171 PR target/46997
14172 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
14173 (*mux2): Ditto.
14174 (vec_extract_evenodd_help): Ditto.
14175 (vec_extract_evenv4hi): Ditto.
14176 (vec_extract_oddv4hi): Ditto.
14177 (vec_interleave_lowv2si): Ditto.
14178 (vec_interleave_highv2si): Ditto.
14179 (vec_extract_evenv2si): Ditto.
14180 (vec_extract_oddv2si: Ditto.
14181 (vec_pack_trunc_v2si): Ditto.
14182
14183 2011-01-22 Jan Hubicka <jh@suse.cz>
14184
14185 PR target/47237
14186 * cgraph.h (cgraph_local_info): New field can_change_signature.
14187 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14188 signature can change.
14189 (ipcp_estimate_growth): Call sequence simplify only if calle signature
14190 can change.
14191 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14192 (cgraph_function_versioning): We can not change signature of functions
14193 that don't allow that.
14194 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14195 (lto_input_node): Likewise.
14196 * ipa-inline.c (compute_inline_parameters): Compute
14197 local.can_change_signature.
14198 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
14199 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14200 functions that can not change signature.
14201 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
14202 init_cumulative_args): Do not use local calling conventions
14203 for functions that can not change signature.
14204
14205 2011-01-22 Jan Hubicka <jh@suse.cz>
14206
14207 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14208
14209 2011-01-26 Richard Guenther <rguenther@suse.de>
14210
14211 PR tree-optimization/47190
14212 * cgraphunit.c (process_common_attributes): New function.
14213 (process_function_and_variable_attributes): Use it.
14214
14215 2011-01-26 Richard Guenther <rguenther@suse.de>
14216
14217 PR lto/47423
14218 * cgraphbuild.c (record_eh_tables): Record reference to personality
14219 function.
14220
14221 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
14222
14223 PR debug/45454
14224 * sel-sched.c (moveup_expr): Don't let debug insns prevent
14225 non-debug insns from moving up.
14226
14227 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14228
14229 PR target/40125
14230 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14231 t-dlldir{,-x} fragment for build and add it to tmake_file.
14232 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14233 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14234 * config/i386/t-dlldir: New file.
14235 (SHLIB_DLLDIR): Define.
14236 * config/i386/t-dlldir-x: New file.
14237 (SHLIB_DLLDIR): Define.
14238 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14239 (SHLIB_INSTALL): Use it.
14240
14241 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
14242
14243 PR target/47246
14244 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14245 lower bound of the allowed Thumb-2 coprocessor load/store
14246 index range to -256. Add explaining comment.
14247
14248 2011-01-25 Ian Lance Taylor <iant@google.com>
14249
14250 * godump.c (go_define): Improve lexing of macro expansion to only
14251 accept expressions which match Go spec.
14252
14253 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14254
14255 PR c++/43601
14256 * tree.c (handle_dll_attribute): Handle it.
14257 * doc/extend.texi (@item dllexport): Mention it.
14258 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14259
14260 2011-01-25 Ian Lance Taylor <iant@google.com>
14261
14262 PR tree-optimization/26854
14263 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14264 (decl_jump_unsafe): Move higher in file, with no other change.
14265 (bind): Set has_jump_unsafe_decl if appropriate.
14266 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14267 (check_earlier_gotos): Likewise.
14268 (c_check_switch_jump_warnings): Likewise.
14269
14270 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
14271
14272 * doc/invoke.texi (Warning Options): Add missing hyphen.
14273 (-fprofile-dir): Minor grammatical fixes.
14274 (-fbranch-probabilities): Likewise.
14275
14276 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
14277
14278 PR debug/45136
14279 PR debug/45130
14280 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14281 debug insns.
14282 (no_real_insns_p, schedule_block, set_priorities): Drop special
14283 treatment of boundary debug insns.
14284 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14285 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14286 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14287 (BOUNDARY_DEBUG_INSN_P): Likewise.
14288 (SCHEDULE_DEBUG_INSN_P): Likewise.
14289 * sched-rgn.c (init_ready_list): Drop special treatment of
14290 boundary debug insns.
14291 * final.c (rest_of_clean-state): Clear notes' BB.
14292
14293 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14294
14295 * Makefile.in (LAMBDA_H): Removed.
14296 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14297 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14298 lambda-trans.o, and tree-loop-linear.o.
14299 (lto-symtab.o): Remove dependence on LAMBDA_H.
14300 (tree-loop-linear.o): Remove rule.
14301 (lambda-mat.o): Same.
14302 (lambda-trans.o): Same.
14303 (lambda-code.o): Same.
14304 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14305 (tree-vect-slp.o): Same.
14306 * hwint.h (gcd): Moved here.
14307 (least_common_multiple): Same.
14308 * lambda-code.c: Removed.
14309 * lambda-mat.c: Removed.
14310 * lambda-trans.c: Removed.
14311 * lambda.h: Removed.
14312 * tree-loop-linear.c: Removed.
14313 * lto-symtab.c: Do not include lambda.h.
14314 * omega.c (gcd): Removed.
14315 * passes.c (init_optimization_passes): Remove pass_linear_transform.
14316 * tree-data-ref.c (print_lambda_vector): Moved here.
14317 (lambda_vector_copy): Same.
14318 (lambda_matrix_copy): Same.
14319 (lambda_matrix_id): Same.
14320 (lambda_vector_first_nz): Same.
14321 (lambda_matrix_row_add): Same.
14322 (lambda_matrix_row_exchange): Same.
14323 (lambda_vector_mult_const): Same.
14324 (lambda_vector_negate): Same.
14325 (lambda_matrix_row_negate): Same.
14326 (lambda_vector_equal): Same.
14327 (lambda_matrix_right_hermite): Same.
14328 * tree-data-ref.h: Do not include lambda.h.
14329 (lambda_vector): Moved here.
14330 (lambda_matrix): Same.
14331 (dependence_level): Same.
14332 (lambda_transform_legal_p): Removed declaration.
14333 (lambda_collect_parameters): Same.
14334 (lambda_compute_access_matrices): Same.
14335 (lambda_vector_gcd): Same.
14336 (lambda_vector_new): Same.
14337 (lambda_vector_clear): Same.
14338 (lambda_vector_lexico_pos): Same.
14339 (lambda_vector_zerop): Same.
14340 (lambda_matrix_new): Same.
14341 * tree-flow.h (least_common_multiple): Removed declaration.
14342 * tree-parloops.c (lambda_trans_matrix): Moved here.
14343 (LTM_MATRIX): Same.
14344 (LTM_ROWSIZE): Same.
14345 (LTM_COLSIZE): Same.
14346 (LTM_DENOMINATOR): Same.
14347 (lambda_trans_matrix_new): Same.
14348 (lambda_matrix_vector_mult): Same.
14349 (lambda_transform_legal_p): Same.
14350 * tree-pass.h (pass_linear_transform): Removed declaration.
14351 * tree-ssa-loop.c (tree_linear_transform): Removed.
14352 (gate_tree_linear_transform): Removed.
14353 (pass_linear_transform): Removed.
14354 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14355 flag_loop_interchange.
14356
14357 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14358
14359 PR tree-optimization/47265
14360 PR tree-optimization/47443
14361 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14362 if name still has some uses.
14363
14364 2011-01-25 Martin Jambor <mjambor@suse.cz>
14365
14366 PR tree-optimization/47382
14367 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14368 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14369
14370 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
14371
14372 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14373 sjlj_except_unwind_info.
14374
14375 2011-01-25 Richard Guenther <rguenther@suse.de>
14376
14377 PR tree-optimization/47426
14378 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14379 visible functions results escape.
14380
14381 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14382
14383 PR target/45701
14384 * config/arm/arm.c (any_sibcall_uses_r3): New function.
14385 (arm_get_frame_offsets): Use it.
14386
14387 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14388 Jakub Jelinek <jakub@redhat.com>
14389
14390 PR tree-optimization/47271
14391 * tree-if-conv.c (bb_postdominates_preds): New.
14392 (if_convertible_bb_p): Call bb_postdominates_preds.
14393 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14394 (predicate_scalar_phi): Call bb_postdominates_preds.
14395
14396 2011-01-25 Nick Clifton <nickc@redhat.com>
14397
14398 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14399 * config/rx/rx.c (rx_function_value): Likewise.
14400 (rx_promote_function_mode): Likewise.
14401 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14402 in order to make it legitimate.
14403 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14404 make sure that the first operand is the same as the result register.
14405 (addsi3_unspec): Delete.
14406 (subdi3): Do not accept immediate operands.
14407 (subdi3_internal): Likewise.
14408
14409 2011-01-25 Jeff Law <law@redhat.com>
14410
14411 PR rtl-optimization/37273
14412 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14413 handle them like argument loads from stack slots. Do not double
14414 count memory for memory constants and argument loads from stack slots.
14415
14416 2011-01-25 Jakub Jelinek <jakub@redhat.com>
14417
14418 PR tree-optimization/47427
14419 PR tree-optimization/47428
14420 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14421 coalesce if the new root var would be TREE_READONLY.
14422
14423 2011-01-25 Richard Guenther <rguenther@suse.de>
14424
14425 PR middle-end/47414
14426 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14427 correct type for TBAA.
14428
14429 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14430
14431 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14432 (close_phi_written_to_memory): Call for_each_index with
14433 dr_indices_valid_in_loop.
14434
14435 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14436
14437 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14438 when it is initialized.
14439
14440 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14441
14442 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14443 call to graphite_find_data_references_in_stmt.
14444 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14445 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
14446 call to graphite_find_data_references_in_stmt.
14447 (analyze_drs_in_stmts): Same.
14448 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14449 in which the scalar analysis of indices is performed.
14450 (create_data_ref): Same. Update call to dr_analyze_indices.
14451 (find_data_references_in_stmt): Update call to create_data_ref.
14452 (graphite_find_data_references_in_stmt): Same.
14453 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14454 declaration.
14455 (create_data_ref): Same.
14456 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14457 call to create_data_ref.
14458
14459 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14460
14461 * graphite-sese-to-poly.c (build_poly_scop): Move
14462 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14463
14464 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14465
14466 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14467 VAR_DECL, PARM_DECL, and RESULT_DECL.
14468
14469 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14470
14471 * graphite-dependences.c (reduction_dr_1): Allow several reductions
14472 in a reduction PBB.
14473 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14474 that have already been marked as PBB_IS_REDUCTION.
14475
14476 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14477
14478 * graphite-scop-detection.c (same_close_phi_node): New.
14479 (remove_duplicate_close_phi): New.
14480 (make_close_phi_nodes_unique): New.
14481 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14482
14483 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14484
14485 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14486 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14487 of both data references to be the same.
14488
14489 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14490
14491 * graphite-dependences.c (build_lexicographical_constraint): Remove
14492 the gdim parameter.
14493 (build_lexicographical_constraint): Adjust call to
14494 ppl_powerset_is_empty.
14495 (dependence_polyhedron): Same.
14496 (graphite_legal_transform_dr): Same.
14497 (graphite_carried_dependence_level_k): Same.
14498 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14499 parameter.
14500 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14501
14502 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14503
14504 * graphite-sese-to-poly.c
14505 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14506 (close_phi_written_to_memory): New.
14507 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14508 and unshare_expr.
14509
14510 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14511
14512 * doc/install.texi: Update the expected version number of PPL to 0.11.
14513 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14514 #if PPL_VERSION_MINOR < 11.
14515
14516 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14517
14518 * graphite-dependences.c: Include graphite-cloog-util.h.
14519 (new_poly_ddr): Inlined into dependence_polyhedron.
14520 (free_poly_ddr): Moved close by new_poly_ddr.
14521 (dependence_polyhedron_1): Renamed dependence_polyhedron.
14522 Early return NULL when ppl_powerset_is_empty returns true.
14523 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
14524 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
14525 (graphite_legal_transform_dr): Call new_poly_ddr.
14526 (graphite_carried_dependence_level_k): Same.
14527 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
14528 (dot_transformed_deps_stmt_1): Removed.
14529 (dot_deps_stmt_1): Call dot_deps_stmt_2.
14530 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
14531 (dot_deps_1): Call dot_deps_2.
14532 * Makefile.in (graphite-dependences.o): Add missing dependence on
14533 graphite-cloog-util.h.
14534
14535 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14536
14537 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14538 (build_lexicographical_constraint): Same.
14539 (dependence_polyhedron_1): Same.
14540 (graphite_legal_transform_dr): Same.
14541 (graphite_carried_dependence_level_k): Same.
14542 * graphite-ppl.c (ppl_powerset_is_empty): New.
14543 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14544 * tree-data-ref.c (dump_data_reference): Print the basic block index.
14545
14546 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14547
14548 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14549 the "a followed by b" relation and document it.
14550
14551 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14552
14553 * graphite-dependences.c (build_lexicographical_constraint): Stop the
14554 iteration when the bag of constraints is empty.
14555
14556 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14557
14558 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14559
14560 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14561
14562 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14563 nest and two loop depths as parameters.
14564 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14565 lst_perfect_nestify.
14566
14567 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14568
14569 * graphite-dependences.c (print_pddr): Call
14570 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14571
14572 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14573
14574 * graphite-ppl.c (debug_gmp_value): New.
14575 * graphite-ppl.h (debug_gmp_value): Declared.
14576
14577 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
14578
14579 * doc/install.texi: Document availability of cloog-0.16.
14580
14581 2011-01-25 Vladimir Kargov <kargov@gmail.com>
14582
14583 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14584 invalid postdominance info.
14585
14586 2011-01-24 Jan Hubicka <jh@suse.cz>
14587
14588 PR c/21659
14589 * doc/extend.texi (weak pragma): Drop claim that it must
14590 appear before definition.
14591 * varasm.c (merge_weak, declare_weak): Only sanity check
14592 that DECL is not output at a time it is declared weak.
14593
14594 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
14595
14596 * machmode.def: Fixed comments.
14597
14598 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
14599
14600 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14601
14602 2011-01-24 Paul Koning <ni1d@arrl.net>
14603
14604 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14605 WORDS_BIG_ENDIAN.
14606
14607 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
14608
14609 PR target/46519
14610 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14611 (block_info): Add scanned and prev.
14612 (move_or_delete_vzeroupper_2): Return if the basic block
14613 has been scanned and the upper 128bit state is unchanged
14614 from the last scan.
14615 (move_or_delete_vzeroupper_1): Return true if the exit
14616 state is changed.
14617 (move_or_delete_vzeroupper): Visit basic blocks using the
14618 work-list based algorithm based on vt_find_locations in
14619 var-tracking.c.
14620
14621 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14622
14623 2011-01-24 Nick Clifton <nickc@redhat.com>
14624
14625 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14626 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14627 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
14628 then define __v850e1__.
14629 * doc/invoke.texi: Document -mv850es.
14630
14631 2011-01-24 Richard Henderson <rth@redhat.com>
14632
14633 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14634 compound unordered comparisons.
14635 * config/rx/rx.c (rx_split_fp_compare): Remove.
14636 * config/rx/rx-protos.h: Update.
14637 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14638 (cbranchsf4): Don't call rx_split_fp_compare.
14639 (*cbranchsf4): Use rx_split_cbranch.
14640 (*cmpsf): Don't accept "i" constraint.
14641 (*conditional_branch): Only valid after reload.
14642 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
14643
14644 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
14645
14646 PR target/47385
14647 * config/rs6000/altivec.md (vector constant splitters): Add
14648 support for creating vector single precision constants if -mvsx is
14649 used and we would create the constant using Altivec primitives.
14650
14651 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
14652 Richard Sandiford <rdsandiford@googlemail.com>
14653
14654 PR rtl-optimization/47166
14655 * reload1.c (emit_reload_insns): Disable the spill_reg_store
14656 mechanism for PRE_MODIFY and POST_MODIFY.
14657 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14658 reloadreg.
14659
14660 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
14661
14662 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14663
14664 2011-01-22 Jan Hubicka <jh@suse.cz>
14665
14666 PR lto/47333
14667 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14668
14669 2011-01-22 Jan Hubicka <jh@suse.cz>
14670
14671 PR tree-optimization/43884
14672 PR lto/44334
14673 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14674 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14675
14676 2011-01-22 Anatoly Sokolov <aesok@post.ru>
14677
14678 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14679 * config/s390/s390.c (s390_register_move_cost,
14680 s390_memory_move_cost): New.
14681 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14682
14683 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14684
14685 PR middle-end/47401
14686 * except.c (sjlj_assign_call_site_values): Move setting the
14687 crtl->uses_eh_lsda flag to ...
14688 (sjlj_mark_call_sites): ... here.
14689 (sjlj_emit_function_enter): Support NULL dispatch label.
14690 (sjlj_build_landing_pads): In a function with no landing pads
14691 that still has must-not-throw regions, generate code to register
14692 a personality function with empty LSDA.
14693
14694 2011-01-21 Richard Henderson <rth@redhat.com>
14695
14696 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14697
14698 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14699
14700 * compare-elim.c: New file.
14701 * Makefile.in (OBJS-common): Add it.
14702 (compare-elim.o): New.
14703 * common.opt (fcompare-elim): New.
14704 * opts.c (default_options_table): Add OPT_fcompare_elim.
14705 * tree-pass.h (pass_compare_elim_after_reload): New.
14706 * passes.c (init_optimization_passes): Add it.
14707 * recog.h: Protect against re-inclusion.
14708 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14709 * doc/invoke.texi (-fcompare-elim): Document it.
14710 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14711 * doc/tm.texi: Rebuild.
14712
14713 2011-01-22 Nick Clifton <nickc@redhat.com>
14714
14715 * config/rx/rx.md (cstoresf4): Pass comparison operator to
14716 rx_split_fp_compare.
14717
14718 2011-01-22 Nick Clifton <nickc@redhat.com>
14719
14720 * config/rx/rx.md (UNSPEC_CONST): New.
14721 (deallocate_and_return): Wrap the amount popped off the stack in
14722 an UNSPEC_CONST in order to stop it being rejected by
14723 -mmax-constant-size.
14724 (pop_and_return): Add a "(return)" rtx.
14725 (call): Drop the immediate operand.
14726 (call_internal): Likewise.
14727 (call_value): Likewise.
14728 (call_value_internal): Likewise.
14729 (sibcall_internal): Likewise.
14730 (sibcall_value_internal): Likewise.
14731 (sibcall): Likewise. Generate an explicit call using
14732 sibcall_internal.
14733 (sibcall_value): Likewise.
14734 (mov<>): FAIL if a constant operand is not legitimate.
14735 (addsi3_unpsec): New pattern.
14736
14737 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14738 (ok_for_max_constant): New function.
14739 (gen_safe_add): New function.
14740 (rx_expand_prologue): Use gen_safe_add.
14741 (rx_expand_epilogue): Likewise.
14742 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
14743 UNSPEC CONSTs.
14744
14745 2011-01-21 Jeff Law <law@redhat.com>
14746
14747 PR tree-optimization/47053
14748 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14749 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14750 statements are deleted.
14751 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
14752 is nonempty, then purge dead edges and cleanup the CFG.
14753
14754 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
14755
14756 PR debug/47402
14757 Temporarily revert:
14758 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
14759 PR debug/47106
14760 * tree-dfa.c (create_var_ann): Mark variable as used.
14761
14762 2011-01-21 Jakub Jelinek <jakub@redhat.com>
14763
14764 PR middle-end/45566
14765 * except.c (convert_to_eh_region_ranges): Emit queued no-region
14766 notes from other section in hot/cold partitioning even if
14767 last_action is -3. Increment call_site_base.
14768
14769 PR rtl-optimization/47366
14770 * fwprop.c (forward_propagate_into): Return bool. If
14771 any changes are made, -fnon-call-exceptions is used and
14772 REG_EH_REGION note is present, call purge_dead_edges
14773 and return true if it purged anything.
14774 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14775 any EH edges were purged.
14776
14777 2011-01-21 Jeff Law <law@redhat.com>
14778
14779 PR rtl-optimization/41619
14780 * caller-save.c (setup_save_areas): Break out code to determine
14781 which hard regs are live across calls by examining the reload chains
14782 so that it is always used.
14783 Eliminate code which checked REG_N_CALLS_CROSSED.
14784
14785 2011-01-21 Jakub Jelinek <jakub@redhat.com>
14786
14787 PR tree-optimization/47355
14788 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14789 NOP has non-debug uses beyond PHIs in new_bb.
14790
14791 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
14792
14793 PR debug/47106
14794 * cfgexpand.c (account_used_vars_for_block): Only account vars
14795 that are annotated as used.
14796 (estimated_stack_frame_size): Don't set TREE_USED.
14797 * tree-dfa.c (create_var_ann): Mark variable as used.
14798
14799 2011-01-21 Richard Guenther <rguenther@suse.de>
14800
14801 PR middle-end/47395
14802 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14803
14804 2011-01-21 Richard Guenther <rguenther@suse.de>
14805
14806 PR tree-optimization/47365
14807 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14808 (vn_reference_lookup_pieces): Adjust.
14809 (vn_reference_lookup): Likewise.
14810 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14811 (vn_reference_lookup_3): Only look through kills if in
14812 VN_WALKREWRITE mode.
14813 (vn_reference_lookup_pieces): Adjust.
14814 (vn_reference_lookup): Likewise.
14815 (visit_reference_op_load): Likewise.
14816 (visit_reference_op_store): Likewise.
14817 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14818 (compute_avail): Likewise.
14819 (eliminate): Likewise.
14820
14821 2011-01-21 Jakub Jelinek <jakub@redhat.com>
14822
14823 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14824 DECL_IGNORED_P non-reg vars if they are used.
14825
14826 PR tree-optimization/47391
14827 * varpool.c (const_value_known_p): Return false if
14828 decl is volatile.
14829
14830 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
14831
14832 PR bootstrap/47215
14833 * config/i386/i386.c (ix86_local_alignment): Handle
14834 case for va_list_type_node is nil.
14835 (ix86_canonical_va_list_type): Likewise.
14836
14837 2011-01-21 Alan Modra <amodra@gmail.com>
14838
14839 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14840 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14841
14842 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14843
14844 * config/arm/arm.md (define_attr type): Rename f_load
14845 and f_store to f_fpa_load and f_fpa_store. Update.
14846 (write_conflict): Deal with rename fallout.
14847 (*push_fp_multi): Likewise.
14848 * config/arm/fpa.md (f_load): Use f_fpa_load.
14849 (f_store): Use f_fpa_store.
14850 (*movsf_fpa): Likewise.
14851 (*movdf_fpa): Likewise.
14852 (*movxf_fpa): Likewise.
14853 (*thumb2_movsf_fpa): Likewise.
14854 (*thumb2_movdf_fpa): Likewise.
14855 (*thumb2_movxf_fpa): Likewise.
14856 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14857 f_loadd and f_stored.
14858 (*thumb2_movdi_vfp): Likewise.
14859 (*thumb2_movsf_vfp): Fix attribute to f_loads.
14860 (*thumb2_movsi_vfp): Likewise.
14861 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14862 Use f_loads instead of f_load.
14863 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14864
14865 2011-01-20 Anatoly Sokolov <aesok@post.ru>
14866
14867 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14868 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14869 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14870 (xtensa_mode_dependent_address_p): New function.
14871 (constantpool_address_p): Make static. Change return type to bool.
14872 Change argument type to const_rtx. Use CONST_INT_P predicate.
14873
14874 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
14875
14876 PR debug/46583
14877 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14878
14879 2011-01-20 Jakub Jelinek <jakub@redhat.com>
14880
14881 PR debug/47283
14882 * cfgexpand.c (expand_debug_expr): Instead of generating
14883 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14884 etc. handling.
14885
14886 2011-01-20 Richard Guenther <rguenther@suse.de>
14887
14888 PR middle-end/47370
14889 * tree-inline.c (remap_gimple_op_r): Recurse manually for
14890 the pointer operand of MEM_REFs.
14891
14892 2011-01-20 Jakub Jelinek <jakub@redhat.com>
14893
14894 PR tree-optimization/46130
14895 * ipa-split.c (consider_split): If return_bb contains non-virtual
14896 PHIs other than for retval or if split_function would not adjust it,
14897 refuse to split.
14898
14899 2011-01-20 Richard Guenther <rguenther@suse.de>
14900
14901 PR tree-optimization/47167
14902 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14903 Revert previous change, only avoid enumeral type changes.
14904
14905 2011-01-19 Mike Stump <mikestump@comcast.net>
14906
14907 * doc/tm.texi.in (BRANCH_COST): Englishify.
14908 * doc/tm.texi (BRANCH_COST): Likewise.
14909
14910 2011-01-19 Dodji Seketeli <dodji@redhat.com>
14911
14912 PR c++/47291
14913 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14914 (gen_scheduled_generic_parms_dies): New functions.
14915 (gen_struct_or_union_type_die): Schedule template parameters DIEs
14916 generation for the end of CU compilation.
14917 (dwarf2out_finish): Generate template parameters DIEs here.
14918
14919 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
14920
14921 PR debug/46240
14922 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14923 debug bind stmt on merge edges.
14924
14925 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
14926
14927 PR debug/47079
14928 PR debug/46724
14929 * function.c (instantiate_expr): Instantiate incoming rtl of
14930 implicit arguments, and recurse on VALUE_EXPRs.
14931 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14932 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14933
14934 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
14935
14936 * c-parser.c (c_parser_for_statement): Initialize
14937 collection_expression.
14938
14939 2011-01-19 Joseph Myers <joseph@codesourcery.com>
14940
14941 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14942
14943 2011-01-19 Joseph Myers <joseph@codesourcery.com>
14944
14945 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14946 (LINK_SHLIB_SPEC): Don't use %(link_path).
14947 (SUBTARGET_EXTRA_SPECS): Remove link_path.
14948
14949 2011-01-19 Joseph Myers <joseph@codesourcery.com>
14950
14951 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14952 (NO_SHARED_LIB_SUPPORT): Remove.
14953 (LINK_SHLIB_SPEC): Remove one conditional definition.
14954
14955 2011-01-19 Joseph Myers <joseph@codesourcery.com>
14956
14957 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14958 %{call_shared}.
14959 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14960 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14961 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14962 %{call_shared} and conditionals on these options not being passed.
14963 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14964 %{call_shared}.
14965
14966 2011-01-19 Jakub Jelinek <jakub@redhat.com>
14967
14968 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14969 simplify.
14970
14971 * ipa-split.c: Spelling fixes.
14972
14973 2011-01-19 Richard Henderson <rth@redhat.com>
14974
14975 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14976 (*mulsi3): Likewise.
14977
14978 * longlong.h [__mn10300__] (count_leading_zeros): New.
14979 [__mn10300__] (umul_ppmm, smul_ppmm): New.
14980 [__mn10300__] (add_ssaaaa, subddmmss): New.
14981 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14982 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14983
14984 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14985
14986 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14987
14988 2011-01-19 Richard Henderson <rth@redhat.com>
14989
14990 * config/mn10300/mn10300.md (addsi3_flags): New.
14991 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14992 (subsi3_flags, subc_internal, subdi3): New.
14993 (subdi3_internal, *subdi3_degenerate): New.
14994 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14995
14996 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14997 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14998 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
14999 * config/mn10300/mn10300-protos.h: Update.
15000 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
15001 (return_ret): Likewise. Rename from return_internal_regs.
15002 (return_internal): Remove.
15003
15004 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
15005 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
15006 (mn10300_legitimate_constant_p): Likewise.
15007 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
15008 (mn10300_frame_size): New.
15009 (mn10300_expand_prologue): Use it.
15010 (mn10300_expand_epilogue): Likewise.
15011 (mn10300_initial_offset): Likewise.
15012 * config/mn10300/mn10300-protos.h: Update.
15013 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
15014 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
15015 (prologue, epilogue, return_internal): Tidy output code.
15016 (mn10300_store_multiple_operation, return): Likewise.
15017 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
15018 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
15019 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
15020 (load_pic, am33_load_pic): New.
15021 (mn10300_load_pic0, mn10300_load_pic1): New.
15022
15023 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
15024 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
15025 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
15026 (cc_flags_for_mode, cc_flags_for_code): New.
15027 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
15028 overflow flag is not valid. Validate that the flags we need
15029 for the comparison are valid.
15030 (mn10300_output_cmp): Remove.
15031 (mn10300_output_add): New.
15032 (mn10300_select_cc_mode): Use cc_flags_for_code.
15033 (mn10300_split_cbranch): New.
15034 (mn10300_match_ccmode): New.
15035 (mn10300_split_and_operand_count): New.
15036 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
15037 to the function.
15038 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
15039 (addsi3): ... here. Use mn10300_output_add.
15040 (*addsi3_flags): New.
15041 (*am33_subsi3, *mn10300_subsi3): Merge...
15042 (subsi3): ... here. Use attribute isa.
15043 (*subsi3_flags): New.
15044 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
15045 when possible.
15046 (*am33_andsi3, *mn10300_andsi3): Merge...
15047 (andsi3): ... here.
15048 (*andsi3_flags): New.
15049 (andsi3 splitters): New.
15050 (*am33_iorsi3, *mn10300_iorsi3): Merge...
15051 (iorsi3): ... here.
15052 (*iorsi3_flags): New.
15053 (*am33_xorsi3, *mn10300_xorsi3): Merge...
15054 (xorsi3): ... here.
15055 (*xorsi3_flags): New.
15056 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
15057 (one_cmplsi2): ... here.
15058 (*one_cmplsi2_flags): New.
15059 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
15060 instead of "dax" in constraints. Use mn10300_split_cbranch.
15061 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
15062 use matching constraints to eliminate a self-comparison.
15063 (*integer_conditional_branch): Rename from integer_conditional_branch.
15064 Use int_mode_flags to match CC_REG.
15065 (*cbranchsi4_btst, *btstsi): New.
15066 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
15067 mn10300_split_cbranch.
15068 (*am33_cmpsf): Rename from am33_cmpsf.
15069 (*float_conditional_branch): Rename from float_conditional_branch.
15070 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
15071 (zero_extendqisi2): ... here.
15072 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
15073 (zero_extendhisi2): ... here.
15074 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
15075 (extendqisi2): ... here.
15076 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
15077 (extendhisi2): ... here.
15078 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
15079 (ashlsi3): ... here.
15080 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
15081 (lshrsi3): ... here.
15082 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
15083 (ashrsi3): ... here.
15084 (consecutive add peephole): Remove.
15085 * config/mn10300/predicates.md (label_ref_operand): New.
15086 (int_mode_flags): New.
15087 (CCZN_comparison_operator): New.
15088
15089 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
15090 (throughput_42_latency_43): New reservation.
15091 (mulsidi3, umulsidi3): New expanders.
15092 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
15093 the MDR register to allocation; separately allocate the low and
15094 high parts of the DImode result.
15095 (umulsidi3_internal): Similarly.
15096 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
15097 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
15098 (udivsi3, umodsi3): Remove.
15099 (udivmodsi4, divmodsi4): New expanders.
15100 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
15101 (*divmodsi4): Simiarly.
15102 (ext_internal): New.
15103
15104 * config/mn10300/constraints.md ("z"): New constraint.
15105 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
15106 (FIXED_REGISTERS): Don't fix MDR.
15107 (CALL_USED_REGSITERS): Reformat nicely.
15108 (REG_ALLOC_ORDER): Add MDR.
15109 (enum regclass): Add MDR_REGS.
15110 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
15111 (IRA_COVER_CLASSES): Add MDR_REGS.
15112 (REGNO_REG_CLASS): Handle MDR_REG.
15113 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
15114 (mn10300_register_move_cost): Likewise.
15115 * config/mn10300/mn10300.md (MDR_REG): New.
15116 (*movsi_internal): Handle moves to/from MDR_REGS.
15117
15118 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
15119 POST_MODIFY.
15120 (mn10300_secondary_reload): Tidy combination reload classes.
15121 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
15122 addresses for AM33. Allow symbolic offsets for reg+imm.
15123 (mn10300_regno_in_class_p): New.
15124 (mn10300_legitimize_reload_address): New.
15125 * config/mn10300/mn10300.h (enum reg_class): Remove
15126 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
15127 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
15128 SP_OR_GENERAL_REGS.
15129 (REG_CLASS_NAMES): Update to match.
15130 (REG_CLASS_CONTENTS): Likewise.
15131 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
15132 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
15133 (REGNO_IN_RANGE_P): Remove.
15134 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
15135 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
15136 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
15137 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
15138 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
15139 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
15140 (REGNO_GENERAL_P): New.
15141 (HAVE_POST_MODIFY_DISP): New.
15142 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
15143 (LEGITIMIZE_RELOAD_ADDRESS): New.
15144 * config/mn10300/mn10300-protos.h: Update.
15145
15146 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
15147 DATA_REGS for AM33 stack-pointer destination.
15148 (mn10300_preferred_output_reload_class): Likewise.
15149 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
15150 into a form appropriate for ...
15151 (TARGET_SECONDARY_RELOAD): New.
15152 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
15153 * config/mn10300/mn10300-protos.h: Update.
15154 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
15155 reload_insi; use the "A" constraint for the scratch; handle AM33
15156 moves of sp to non-address registers.
15157
15158 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
15159 (*movqi_internal): ... here.
15160 (*am33_movhi, *mn10300_movhi): Merge into...
15161 (*movhi_internal): ... here.
15162 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
15163 as the source/destination of moves from/to SP.
15164 (movsf): Only allow for AM33-2.
15165 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
15166 any integer constant constraint. Only allow for AM33-2. Tidy
15167 all of the alternative outputs.
15168 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
15169 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
15170 for MN103.
15171 (udivsi3, umodsi3): New patterns for MN103 only.
15172
15173 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
15174
15175 * doc/tm.texi.in: Spell out that a lack of register class unions
15176 can lead to ICEs.
15177 * doc/tm.texi: Regenerate.
15178
15179 2011-01-19 Jakub Jelinek <jakub@redhat.com>
15180
15181 PR rtl-optimization/47337
15182 * dce.c (check_argument_store): New function.
15183 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
15184
15185 PR tree-optimization/47290
15186 * tree-eh.c (infinite_empty_loop_p): New function.
15187 (cleanup_empty_eh): Use it.
15188
15189 2011-01-18 Steve Ellcey <sje@cup.hp.com>
15190
15191 PR target/46997
15192 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15193 (a64_expand_widen_sum): Ditto.
15194 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15195 (vec_extract_evenodd_help): Ditto.
15196 (vec_extract_evenv4hi): Ditto.
15197 (vec_extract_oddv4hi): Ditto.
15198 (vec_extract_evenv2si): Ditto.
15199 (vec_extract_oddv2si): Ditto.
15200 (vec_extract_evenv2sf): Ditto.
15201 (vec_extract_oddv2sf): Ditto.
15202 (vec_pack_trunc_v4hi: Ditto.
15203 (vec_pack_trunc_v2si): Ditto.
15204 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15205 (vec_interleave_highv8qi): Ditto.
15206 (mix1_r): Ditto.
15207 (vec_extract_oddv8qi): Ditto.
15208 (vec_interleave_lowv4hi): Ditto.
15209 (vec_interleave_highv4hi): Ditto.
15210 (vec_interleave_lowv2si): Ditto.
15211 (vec_interleave_highv2si): Ditto.
15212
15213 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15214
15215 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15216 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15217 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
15218 (pa_c_mode_for_suffix): New.
15219 (TARGET_EXPAND_BUILTIN): Define.
15220 (TARGET_C_MODE_FOR_SUFFIX): Define.
15221 (pa_builtins): Define.
15222 (pa_init_builtins): Register __float128 type and init new support
15223 builtins.
15224 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15225 * config/pa/quadlib.c (_U_Qfcopysign): New.
15226
15227 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
15228
15229 PR middle-end/46894
15230 * explow.c (allocate_dynamic_stack_space): Do not assume more than
15231 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15232 are defined.
15233
15234 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15235
15236 PR tree-optimization/47179
15237 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15238 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15239
15240 2011-01-18 Richard Guenther <rguenther@suse.de>
15241
15242 PR rtl-optimization/47216
15243 * emit-rtl.c: Include tree-flow.h.
15244 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15245 of replicating it with different semantics.
15246 * Makefile.in (emit-rtl.o): Adjust.
15247
15248 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15249
15250 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15251 (cortex_a9_dp): Handle neon types correctly.
15252
15253 2011-01-18 Jakub Jelinek <jakub@redhat.com>
15254
15255 PR rtl-optimization/47299
15256 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15257 subtarget. Use normal multiplication if both operands are constants.
15258 * expmed.c (expand_widening_mult): Don't try to optimize constant
15259 multiplication if op0 has VOIDmode. Convert op1 constant to mode
15260 before using it.
15261
15262 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15263
15264 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
15265 spacing after 'e.g.', typos, comma, hyphenation.
15266
15267 2011-01-17 Richard Henderson <rth@redhat.com>
15268
15269 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15270 (rx_restricted_mem_operand): New.
15271 (rx_shift_operand): Use register_operand.
15272 (rx_source_operand, rx_compare_operand): Likewise.
15273 * config/rx/rx.md (addsi3_flags): New expander.
15274 (adddi3): Rewrite as expander.
15275 (adc_internal, *adc_flags, adddi3_internal): New patterns.
15276 (subsi3_flags): New expander.
15277 (subdi3): Rewrite as expander.
15278 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15279
15280 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15281 (rx_init_builtins): Remove sat builtin.
15282 (rx_expand_builtin): Likewise.
15283 * config/rx/rx.md (ssaddsi3): New.
15284 (*sat): Rename from sat. Represent the CC_REG input.
15285
15286 * config/rx/predicates.md (rshift_operator): New.
15287 * config/rx/rx.c (rx_expand_insv): Remove.
15288 * config/rx/rx-protos.h: Update.
15289 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
15290 operand to the canonical position.
15291 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15292 (*bitclr, *bitclr_in_memory): Similarly.
15293 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15294 (insv): Retain the zero_extract in the expansion.
15295
15296 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15297 (bswaphi2, bitinvert, revw): Likewise.
15298
15299 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15300 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15301 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15302 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15303 (bitset, bitset_in_memory): Likewise.
15304 (bitinvert, bitinvert_in_memory): Likewise.
15305 (bitclr, bitclr_in_memory): Likewise.
15306 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15307 (rx_strend, rx_cmpstrn): Likewise.
15308 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
15309 (bitop peep2 patterns): Remove.
15310
15311 * config/rx/rx.c (rx_match_ccmode): New.
15312 * config/rx/rx-protos.h: Update.
15313 * config/rx/rx.md (abssi2): Clobber, don't set flags.
15314 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15315 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15316 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15317 (fix_truncsfsi2, floatsisf2): Likewise.
15318 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15319 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15320 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15321 (*subsi3_flags, *xorsi3_flags): New.
15322
15323 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15324
15325 * config/rx/rx.c (rx_print_operand): Remove workaround for
15326 unsplit comparison operations.
15327
15328 * config/rx/rx.md (movsicc): Split after reload.
15329 (*movsicc): Merge *movsieq and *movsine via match_operator.
15330 (*stcc): New pattern.
15331
15332 * config/rx/rx.c (rx_float_compare_mode): Remove.
15333 * config/rx/rx.h (rx_float_compare_mode): Remove.
15334 * config/rx/rx.md (cstoresi4): Split after reload.
15335 (*sccc): New pattern.
15336
15337 * config/rx/predicates.md (label_ref_operand): New.
15338 (rx_z_comparison_operator): New.
15339 (rx_zs_comparison_operator): New.
15340 (rx_fp_comparison_operator): New.
15341 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15342 Validate that the flags are set properly for the comparison.
15343 (rx_gen_cond_branch_template): Remove.
15344 (rx_cc_modes_compatible): Remove.
15345 (mode_from_flags): New.
15346 (flags_from_code): Rename from flags_needed_for_conditional.
15347 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15348 (rx_select_cc_mode): Likewise.
15349 (rx_split_fp_compare): New.
15350 (rx_split_cbranch): New.
15351 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15352 (*cbranchsi4): Use match_operator and rx_split_cbranch.
15353 (*cbranchsf4): Similarly.
15354 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
15355 match_operator and rx_split_cbranch.
15356 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15357 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
15358 (*cmpsi): Rename from cmpsi.
15359 (*tstsi): Rename from tstsi.
15360 (*cmpsf): Rename from cmpsf; use CC_Fmode.
15361 (*conditional_branch): Rename from conditional_branch.
15362 (*reveresed_conditional_branch): Remove.
15363 (b<code>): Remove expander.
15364 * config/rx/rx-protos.h: Update.
15365
15366 * config/rx/rx.c (rx_compare_redundant): Remove.
15367 * config/rx/rx.md (cmpsi): Don't use it.
15368 * config/rx/rx-protos.h: Update.
15369
15370 * config/rx/rx-modes.def (CC_F): New mode.
15371 * config/rx/rx.c (rx_select_cc_mode): New.
15372 * config/rx/rx.h (SELECT_CC_MODE): Use it.
15373 * config/rx/rx-protos.h: Update.
15374
15375 2011-01-17 Richard Henderson <rth@redhat.com>
15376
15377 * except.c (dump_eh_tree): Fix stray ; after for statement.
15378
15379 2011-01-17 Richard Guenther <rguenther@suse.de>
15380
15381 PR tree-optimization/47313
15382 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15383 handling before copying the body. Properly deal with
15384 by-reference result in SSA form.
15385
15386 2011-01-17 Ian Lance Taylor <iant@google.com>
15387
15388 PR target/47219
15389 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15390 (struct_value_alias_set): Don't define.
15391 (sparc_option_override): Don't set sparc_sr_alias_set and
15392 struct_value_alias_set.
15393 (save_or_restore_regs): Use gen_frame_mem rather than calling
15394 set_mem_alias_set.
15395 (sparc_struct_value_rtx): Likewise.
15396
15397 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
15398
15399 PR target/47318
15400 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15401 (_mm_maskstore_pd): Likewise.
15402 (_mm_maskload_ps): Likewise.
15403 (_mm_maskstore_ps): Likewise.
15404 (_mm256_maskload_pd): Change mask to __m256i.
15405 (_mm256_maskstore_pd): Likewise.
15406 (_mm256_maskload_ps): Likewise.
15407 (_mm256_maskstore_ps): Likewise.
15408
15409 * config/i386/i386-builtin-types.def: Updated.
15410 (ix86_expand_special_args_builtin): Likewise.
15411
15412 * config/i386/i386.c (bdesc_special_args): Update
15413 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15414 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15415 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15416 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15417
15418 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15419 Use <avxpermvecmode> on mask register.
15420 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15421
15422 2011-01-17 Olivier Hainque <hainque@adacore.com>
15423 Michael Haubenwallner <michael.haubenwallner@salomon.at>
15424 Eric Botcazou <ebotcazou@adacore.com>
15425
15426 PR target/46655
15427 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15428 if <= USHRT_MAX in 32-bit mode.
15429
15430 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15431
15432 * doc/install.texi (Configuration, Specific): Wrap long
15433 lines in examples. Allow line wrapping in long options
15434 and URLs where beneficial for PDF output.
15435
15436 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
15437
15438 * config/mips/mips.c (mips_classify_symbol): Don't return
15439 SYMBOL_PC_RELATIVE for nonlocal labels.
15440
15441 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
15442
15443 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15444
15445 2011-01-15 Jan Hubicka <jh@suse.cz>
15446
15447 PR tree-optimization/47276
15448 * ipa.c (function_and_variable_visibility): Do not try to mark alias
15449 declarations as needed.
15450
15451 2011-01-15 Martin Jambor <mjambor@suse.cz>
15452
15453 * common.opt (fdevirtualize): New flag.
15454 * doc/invoke.texi (Option Summary): Document it.
15455 * opts.c (default_options_table): Add devirtualize flag.
15456 * ipa-prop.c (detect_type_change): Return immediately if
15457 devirtualize flag is not set.
15458 (detect_type_change_ssa): Likewise.
15459 (compute_known_type_jump_func): Likewise.
15460 (ipa_analyze_virtual_call_uses): Likewise.
15461
15462 2011-01-14 Martin Jambor <mjambor@suse.cz>
15463
15464 PR tree-optimization/45934
15465 PR tree-optimization/46302
15466 * ipa-prop.c (type_change_info): New type.
15467 (stmt_may_be_vtbl_ptr_store): New function.
15468 (check_stmt_for_type_change): Likewise.
15469 (detect_type_change): Likewise.
15470 (detect_type_change_ssa): Likewise.
15471 (compute_complex_assign_jump_func): Check for dynamic type change.
15472 (compute_complex_ancestor_jump_func): Likewise.
15473 (compute_known_type_jump_func): Likewise.
15474 (compute_scalar_jump_functions): Likewise.
15475 (ipa_analyze_virtual_call_uses): Likewise.
15476 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15477
15478 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15479
15480 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15481 * config/i386/i386.opt (msse5): New Alias.
15482
15483 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15484
15485 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15486 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15487 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15488 * config/sparc/sparc.h (CC1_SPEC): Likewise.
15489
15490 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15491
15492 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15493 -mcpu options.
15494 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15495 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15496 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15497 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15498 Likewise.
15499 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15500
15501 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15502
15503 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15504
15505 2011-01-14 Mike Stump <mikestump@comcast.net>
15506
15507 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15508 * config/fr30/fr30.md: Likweise
15509 (movsi_push): Likewise.
15510 (movsi_pop): Likewise.
15511 (enter_func): Likewise.
15512 * config/moxie/moxie.md (movsi_push): Likewise.
15513 (movsi_pop): Likewise.
15514
15515 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15516
15517 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15518 %{no_archive} %{exact_version}.
15519 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15520 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15521 %{no_archive} %{exact_version}.
15522 * config/mips/openbsd.h (LINK_SPEC): Likewise.
15523 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15524 * config/mips/vxworks.h: Likewise.
15525
15526 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15527
15528 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15529
15530 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15531
15532 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15533 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15534
15535 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15536
15537 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15538 -nodefaultlib.
15539
15540 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15541
15542 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15543 for mcpu not cpu.
15544 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15545 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15546 not cpu.
15547 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15548 Don't handle -shlib.
15549
15550 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15551
15552 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15553 (CC1_SPEC): Don't handle -profile.
15554
15555 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15556
15557 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15558 * config/mips/mips.h (CC1_SPEC): Likewise.
15559
15560 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15561
15562 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15563 * config/mips/mips.h (CC1_SPEC): Likewise.
15564
15565 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15566
15567 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15568 * config/m32r/linux.h (LINK_SPEC): Likewise.
15569 * config/mips/linux.h (LINK_SPEC): Likewise.
15570 * config/mips/linux64.h (LINK_SPEC): Likewise.
15571 * config/sparc/linux.h (LINK_SPEC): Likewise.
15572 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15573 LINK_SPEC): Likewise.
15574 * config/xtensa/linux.h (LINK_SPEC): Likewise.
15575
15576 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15577
15578 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15579 %{version:-v}.
15580 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15581
15582 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15583
15584 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15585 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15586
15587 2011-01-14 Joseph Myers <joseph@codesourcery.com>
15588
15589 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15590
15591 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15592
15593 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15594 supports -Bstatic/-Bdynamic.
15595 * configure: Regenerate.
15596
15597 2011-01-14 Jan Hubicka <jh@suse.cz>
15598 Jack Howarth <howarth@bromo.med.uc.edu>
15599
15600 PR target/46037
15601 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15602 when checking debug_info_level. Test write_symbols instead of
15603 debug_hooks->var_location when setting flag_var_tracking_uninit.
15604
15605 2011-01-14 Richard Guenther <rguenther@suse.de>
15606
15607 PR tree-optimization/47179
15608 * target.def (ref_may_alias_errno): New target hook.
15609 * targhooks.h (default_ref_may_alias_errno): Declare.
15610 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15611 (default_ref_may_alias_errno): New function.
15612 * target.h (struct ao_ref_s): Declare.
15613 * tree-ssa-alias.c: Include target.h.
15614 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15615 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15616 (targhooks.o): Likewise.
15617 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15618 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15619
15620 2011-01-14 Richard Guenther <rguenther@suse.de>
15621
15622 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
15623
15624 2011-01-14 Richard Guenther <rguenther@suse.de>
15625
15626 PR tree-optimization/47280
15627 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15628 return CFG changes.
15629 (tree_ssa_forward_propagate_single_use_vars): Deal with
15630 CFG changes from associate_plusminus.
15631
15632 2011-01-14 Richard Guenther <rguenther@suse.de>
15633
15634 PR middle-end/47281
15635 Revert
15636 2011-01-11 Richard Guenther <rguenther@suse.de>
15637
15638 PR tree-optimization/46076
15639 * tree-ssa.c (useless_type_conversion_p): Conversions from
15640 unprototyped to empty argument list function types are useless.
15641
15642 2011-01-14 Richard Guenther <rguenther@suse.de>
15643
15644 PR tree-optimization/47286
15645 * tree-ssa-structalias.c (new_var_info): Register variables are global.
15646
15647 2011-01-14 Martin Jambor <mjambor@suse.cz>
15648
15649 PR middle-end/46823
15650 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15651
15652 2011-01-13 Anatoly Sokolov <aesok@post.ru>
15653
15654 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15655 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15656 * config/xtensa/xtensa.c (xtensa_libcall_value,
15657 xtensa_function_value_regno_p): New functions.
15658 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15659
15660 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
15661
15662 PR c++/47213
15663 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15664 PE specific hook.
15665 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15666 New function prototype.
15667 * config/i386/winnt.c (i386_pe_assemble_visibility):
15668 Warn only if attribute was specified by user.
15669
15670 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
15671
15672 PR target/47251
15673 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15674 floating point.
15675 (floatunsdidf2_fcfidu): Ditto.
15676
15677 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15678
15679 * config/s390/s390.c (print_operand_address): Replace 'error' with
15680 'output_operand_lossage'.
15681 (print_operand): Likewise.
15682
15683 2011-01-13 Jeff Law <law@redhat.com>
15684
15685 PR rtl-optimization/39077
15686 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15687 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15688 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15689 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15690 * gcse.c (prune_insertions_deletions): New function.
15691 (compute_pre_data): Use it.
15692
15693 2011-01-13 Dodji Seketeli <dodji@redhat.com>
15694
15695 PR debug/PR46973
15696 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15697 static function.
15698 (prune_unused_types_mark): Use it.
15699
15700 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
15701
15702 PR rtl-optimization/45352
15703 * sel-sched.c: Update copyright years.
15704 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15705 in the advancing loop when we have issued issue_rate insns.
15706
15707 2011-01-12 Richard Henderson <rth@redhat.com>
15708
15709 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15710 (TARGET_MD_ASM_CLOBBERS): New.
15711
15712 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15713 (TARGET_DELEGITIMIZE_ADDRESS): New.
15714
15715 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15716 (clzsi2, *bsch): New patterns.
15717
15718 * config/mn10300/mn10300.md (INT): New mode iterator.
15719 (*mov<INT>_clr): New pattern, and peep2 to generate it.
15720
15721 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15722 flag_split_wide_types.
15723
15724 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15725 (mn10300_trampoline_init): Rewrite without a template, an immediate
15726 load and a direct branch.
15727 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15728
15729 2011-01-12 Anatoly Sokolov <aesok@post.ru>
15730
15731 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15732 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15733 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15734 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15735
15736 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
15737
15738 PR debug/47209
15739 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15740 of type.
15741
15742 2011-01-12 Jan Hubicka <jh@suse.cz>
15743
15744 PR driver/47244
15745 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15746 (PLUGIN_COND_CLOSE): New macro.
15747 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15748
15749 2011-01-12 Richard Guenther <rguenther@suse.de>
15750
15751 PR lto/47259
15752 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15753 register variables in a MEM_REF.
15754
15755 2011-01-12 Joseph Myers <joseph@codesourcery.com>
15756
15757 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15758 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15759 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15760 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15761 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15762 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15763 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15764 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15765 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15766 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15767 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15768 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15769 * config/gnu-user.h: New. Copied from linux.h.
15770 (LINUX_TARGET_STARTFILE_SPEC): Rename to
15771 GNU_USER_TARGET_STARTFILE_SPEC.
15772 (LINUX_TARGET_ENDFILE_SPEC): Rename to
15773 GNU_USER_TARGET_ENDFILE_SPEC.
15774 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15775 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15776 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15777 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15778 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15779 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15780 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15781 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15782 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15783 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15784 * config/arm/linux-eabi.h (CC1_SPEC): Use
15785 GNU_USER_TARGET_CC1_SPEC.
15786 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15787 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15788 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15789 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15790 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15791 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15792 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15793 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15794
15795 2011-01-12 Richard Guenther <rguenther@suse.de>
15796
15797 PR other/46946
15798 * doc/invoke.texi (ffast-math): Document it is turned on
15799 with -Ofast.
15800
15801 2011-01-12 Jan Hubicka <jh@suse.cz>
15802
15803 PR tree-optimization/47233
15804 * opts.c (common_handle_option): Disable ipa-reference with profile
15805 feedback.
15806
15807 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
15808
15809 * c-parser.c (c_parser_objc_at_property_declaration): Improved
15810 error message.
15811
15812 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
15813
15814 * c-parser.c (c_lex_one_token): Updated and reindented some
15815 comments. No changes in code.
15816
15817 2011-01-11 Ian Lance Taylor <iant@google.com>
15818
15819 * godump.c (go_output_var): Don't output the variable if there is
15820 already a type with the same name.
15821
15822 2011-01-11 Ian Lance Taylor <iant@google.com>
15823
15824 * godump.c (go_format_type): Don't generate float80.
15825
15826 2011-01-11 Richard Henderson <rth@redhat.com>
15827
15828 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15829 declaration. Rewrite for both speed and size.
15830 (mn10300_address_cost_1): Remove.
15831 (mn10300_register_move_cost): New.
15832 (mn10300_memory_move_cost): New.
15833 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
15834 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
15835 extensions, shifts, BSWAP, CLZ.
15836 (mn10300_wide_const_load_uses_clr): Remove.
15837 (TARGET_REGISTER_MOVE_COST): New.
15838 (TARGET_MEMORY_MOVE_COST): New.
15839 * config/mn10300/mn10300-protos.h: Update.
15840 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15841
15842 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15843 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15844 * config/mn10300/mn10300-protos.h: Update.
15845 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15846 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15847 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15848 (*test_int_bitfield, *test_byte_bitfield): Remove.
15849 (*bit_test, *subreg_bit_test): Remove.
15850 * config/mn10300/predicates.md (const_8bit_operand): Remove.
15851
15852 * config/mn10300/constraints.md ("c"): Rename from "A".
15853 ("A", "D"): New constraint letters.
15854 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15855 (fmssf4, fnmasf4, fnmssf4): Likewise.
15856
15857 * config/mn10300/mn10300.md (isa): New attribute.
15858 (enabled): New attribute.
15859
15860 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15861 (abssf2, negsf2): Define only for hardware fp.
15862 (sqrtsf2): Reformat.
15863 (addsf3, subsf3, mulsf3): Merge expander and insn.
15864
15865 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15866 (DEBUGGER_AUTO_OFFSET): Remove.
15867 (DEBUGGER_ARG_OFFSET): Remove.
15868
15869 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15870 Emit register stores with the same offsets as the hardware.
15871 (mn10300_store_multiple_operation): Don't check that the register
15872 save offsets are monotonic.
15873 * config/mn10300/mn10300-protos.h: Update.
15874
15875 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15876
15877 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15878 in terms of the value on the stack, not the MDR register.
15879
15880 2011-01-11 Jan Hubicka <jh@suse.cz>
15881
15882 PR lto/45721
15883 PR lto/45375
15884 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15885 (symbol_alias_set_destroy, symbol_alias_set_contains,
15886 propagate_aliases_backward): Declare.
15887 * lto-streamer-out.c (struct sets): New sturcture.
15888 (trivally_defined_alias): New function.
15889 (output_alias_pair_p): Rewrite.
15890 (output_unreferenced_globals): Fix output of alias pairs.
15891 (produce_symtab): Likewise.
15892 * ipa.c (function_and_variable_visibility): Set weak alias destination
15893 as needed in lto.
15894 * varasm.c (symbol_alias_set_t): Remove.
15895 (symbol_alias_set_destroy): Export.
15896 (propagate_aliases_forward, propagate_aliases_backward): New functions
15897 based on ...
15898 (compute_visible_aliases): ... this one; remove.
15899 (trivially_visible_alias): New
15900 (trivially_defined_alias): New.
15901 (remove_unreachable_alias_pairs): Rewrite.
15902 (finish_aliases_1): Reorganize code checking if alias is defined.
15903 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15904 in LTO mode.
15905
15906 2011-01-11 Richard Guenther <rguenther@suse.de>
15907
15908 PR tree-optimization/46076
15909 * tree-ssa.c (useless_type_conversion_p): Conversions from
15910 unprototyped to empty argument list function types are useless.
15911
15912 2011-01-11 Richard Guenther <rguenther@suse.de>
15913
15914 PR middle-end/45235
15915 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15916 volatile MEMs as MEM_READONLY_P.
15917
15918 2011-01-11 Richard Guenther <rguenther@suse.de>
15919
15920 PR tree-optimization/47239
15921 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15922
15923 2011-01-11 Jeff Law <law@redhat.com>
15924
15925 PR tree-optimization/47086
15926 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15927 IVs from statements that might throw.
15928
15929 2011-01-10 Jan Hubicka <jh@suse.cz>
15930
15931 PR lto/45375
15932 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15933
15934 2011-01-10 Jan Hubicka <jh@suse.cz>
15935
15936 PR lto/45375
15937 * profile.c (read_profile_edge_counts): Ignore profile inconistency
15938 when correcting profile.
15939
15940 2011-01-10 Jan Hubicka <jh@suse.cz>
15941
15942 PR lto/46083
15943 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15944 DECL_FINI_PRIORITY.
15945 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15946 Restore DECL_FINI_PRIORITY.
15947
15948 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15949
15950 * doc/gimple.texi: Fix quoting of multi-word return values in
15951 @deftypefn statements. Ensure presence of return value. Wrap
15952 overlong @deftypefn lines.
15953 (is_gimple_operand, is_gimple_min_invariant_address): Remove
15954 descriptions of removed functions.
15955 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15956 of multi-word return value in @deftypefn statement.
15957
15958 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15959
15960 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15961 (Conditional Expressions, Logical Operators)
15962 (Statement and operand traversals): Do not indent smallexample
15963 code. Fix duplicate function argument in example.
15964
15965 2011-01-10 Jeff Law <law@redhat.com>
15966
15967 PR tree-optimization/47141
15968 * ipa-split.c (split_function): Handle case where we are
15969 returning a value and the return block has a virtual operand phi.
15970
15971 2011-01-10 Jan Hubicka <jh@suse.cz>
15972
15973 PR tree-optimization/47234
15974 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15975 (pass_feedback_split_functions): Declare.
15976 * passes.c (init_optimization_passes): Add ipa-split as subpass of
15977 tree-profile.
15978 * ipa-split.c (gate_split_functions): Update comments; disable
15979 split-functions for profile_arc_flag and branch_probabilities.
15980 (gate_feedback_split_functions): New function.
15981 (execute_feedback_split_functions): New function.
15982 (pass_feedback_split_functions): New global var.
15983
15984 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
15985
15986 PR lto/46760
15987 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15988 calling gimple_call_set_cannot_inline.
15989
15990 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
15991
15992 * config/darwin-sections.def: Remove unused section.
15993
15994 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
15995
15996 PR c++/47218
15997 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15998
15999 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
16000
16001 PR objc/47232
16002 * c-parser.c (c_parser_declaration_or_fndef): Improved
16003 error message.
16004
16005 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
16006
16007 * config/i386/winnt.c (i386_pe_start_function): Make sure
16008 to switch back to function's section.
16009
16010 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
16011
16012 PR gcc/46902
16013 PR testsuite/46912
16014 * plugin.c: Move include of dlfcn.h from here...
16015 * system.h: ... to here.
16016
16017 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16018
16019 * doc/cpp.texi (C++ Named Operators): Fix markup for header
16020 file name.
16021 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
16022 two extra empty pages in PDF output.
16023
16024 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
16025
16026 PR objc/47078
16027 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
16028 for error recovery purposes behave as if it was not specified so
16029 that the default type is usd.
16030
16031 2011-01-07 Jan Hubicka <jh@suse.cz>
16032
16033 PR tree-optmization/46469
16034 * ipa.c (function_and_variable_visibility): Clear needed flags on
16035 nodes with external decls; handle weakrefs merging correctly.
16036
16037 2011-01-07 Joseph Myers <joseph@codesourcery.com>
16038
16039 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
16040 not false.
16041
16042 2011-01-07 Jan Hubicka <jh@suse.cz>
16043
16044 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
16045 and no longer claim that gold is required for linker plugin.
16046 * configure: Regenerate.
16047 * gcc.c (PLUGIN_COND): New macro.
16048 (LINK_COMMAND_SPEC): Use it.
16049 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
16050 * config.in (HAVE_LTO_PLUGIN): New.
16051 * configure.ac (--with-lto-plugin): New parameter; autodetect
16052 HAVE_LTO_PLUGIN.
16053
16054 2011-01-07 Jan Hubicka <jh@suse.cz>
16055
16056 PR tree-optimization/46367
16057 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
16058 when we can update original.
16059 (cgraph_mark_inline_edge): Sanity check.
16060 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
16061
16062 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16063
16064 * config/spu/spu.h (ASM_COMMENT_START): Define.
16065
16066 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
16067
16068 PR driver/42445
16069 * gcc.c (%>S): New.
16070 (SWITCH_KEEP_FOR_GCC): Likewise.
16071 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
16072 (do_spec_1): Handle "%>".
16073
16074 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
16075
16076 2011-01-07 Jakub Jelinek <jakub@redhat.com>
16077
16078 PR target/47201
16079 * config/i386/i386.c (ix86_delegitimize_address): If
16080 simplify_gen_subreg fails, return orig_x.
16081
16082 PR bootstrap/47187
16083 * value-prof.c (gimple_stringop_fixed_value): Handle
16084 lhs of the call properly.
16085
16086 2011-01-07 Jan Hubicka <jh@suse.cz>
16087
16088 PR lto/45375
16089 * lto-opt.c (lto_reissue_options): Set flag_shlib.
16090
16091 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16092
16093 * target.def (function_switched_text_sections): New hook.
16094 * doc/tm.texi: Regenerated.
16095 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16096 * final.c (default_function_switched_text_sections): New.
16097 (final_scan_insn): Call function_switched_text_sections when a
16098 mid-function section change occurs.
16099 * output.h (default_function_switched_text_sections): Declare.
16100 * config/darwin-protos.h (darwin_function_switched_text_sections):
16101 Likewise.
16102 * config/darwin.c (darwin_function_switched_text_sections): New.
16103 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
16104
16105 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
16106
16107 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
16108 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
16109 the secondary code fragment when outputting for DWARF == 2.
16110
16111 2011-01-07 Anatoly Sokolov <aesok@post.ru>
16112
16113 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16114 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
16115 Remove.
16116 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
16117 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16118
16119 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
16120
16121 PR debug/46704
16122 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
16123 when it is not empty.
16124
16125 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
16126
16127 Bobcat Enablement
16128 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
16129 (case ${target}): Add btver1.
16130 * config/i386/driver-i386.c (host_detect_local_cpu): Let
16131 -march=native recognize btver1 processors.
16132 * config/i386/i386-c.c (ix86_target_macros_internal): Add
16133 btver1 def_and_undef
16134 * config/i386/i386.c (struct processor_costs btver1_cost): New
16135 btver1 cost table.
16136 (m_BTVER1): New definition.
16137 (m_AMD_MULTIPLE): Includes m_BTVER1.
16138 (initial_ix86_tune_features): Add btver1 tune.
16139 (processor_target_table): Add btver1 entry.
16140 (static const char *const cpu_names): Add btver1 entry.
16141 (software_prefetching_beneficial_p): Add btver1.
16142 (ix86_option_override_internal): Add btver1 instruction sets.
16143 (ix86_issue_rate): Add btver1.
16144 (ix86_adjust_cost): Add btver1.
16145 * config/i386/i386.h (TARGET_BTVER1): New definition.
16146 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
16147 (enum processor_type): Add PROCESSOR_BTVER1.
16148 * config/i386/i386.md (define_attr "cpu"): Add btver1.
16149
16150 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16151
16152 PR target/43309
16153 * config/i386/i386.c (legitimize_tls_address)
16154 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
16155 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
16156 (tls_initial_exec_64_sun): New pattern.
16157
16158 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
16159
16160 * doc/invoke.texi (Overall Options): Improve wording and markup
16161 of the description of -wrapper.
16162
16163 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16164
16165 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
16166 rdynamic, threads): New Driver options.
16167
16168 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16169
16170 PR target/38118
16171 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
16172 if coming from .tdata.
16173 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16174
16175 2011-01-06 Jan Hubicka <jh@suse.cz>
16176
16177 PR lto/47188
16178 * collect2.c (main): Do not enable LTOmode when plugin is active.
16179
16180 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16181
16182 PR other/45915
16183 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16184 --version output if supported.
16185 * configure: Regenerate.
16186
16187 2011-01-06 Joseph Myers <joseph@codesourcery.com>
16188
16189 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16190 Driver options.
16191
16192 2011-01-06 Jakub Jelinek <jakub@redhat.com>
16193
16194 PR c/47150
16195 * c-convert.c (convert): When converting a complex expression
16196 other than COMPLEX_EXPR to a different complex type, ensure
16197 c_save_expr is called instead of save_expr, unless in_late_binary_op.
16198 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16199 when converting COMPLEX_TYPE.
16200
16201 2011-01-06 Ira Rosen <irar@il.ibm.com>
16202
16203 PR tree-optimization/47139
16204 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16205 only the last reduction value is used outside the loop. Update
16206 documentation.
16207
16208 2011-01-05 Joseph Myers <joseph@codesourcery.com>
16209
16210 * config/rtems.opt: New.
16211 * config.gcc (*-*-rtems*): Use rtems.opt.
16212
16213 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
16214
16215 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16216 processors do not support 3DNow instructions.
16217
16218 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16219
16220 * config/spu/spu.c (spu_option_override): Set parameter
16221 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16222
16223 2011-01-05 Jan Hubicka <jh@suse.cz>
16224
16225 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16226 at the command line.
16227
16228 2011-01-05 Martin Jambor <mjambor@suse.cz>
16229
16230 PR lto/47162
16231 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16232 deltas on streamed outgoing edges.
16233 (output_node_opt_summary): Output info for outgoing edges only when
16234 the node is in new parameter set.
16235 (output_cgraph_opt_summary): New parameter set, passed to the two
16236 aforementioned functions. Update its forward declaration and its
16237 callee too.
16238
16239 2011-01-05 Tom Tromey <tromey@redhat.com>
16240
16241 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16242 operator to c_finish_omp_atomic.
16243 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16244 (build_unary_op): Update.
16245 (build_modify_expr): Update.
16246 (build_asm_expr): Update.
16247
16248 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16249
16250 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16251 newly inserted insns.
16252 (pad_bb): Likewise.
16253 (spu_emit_branch_hint): Likewise.
16254 (insert_hbrp_for_ilb_runout): Likewise.
16255 (spu_machine_dependent_reorg): Call df_finish_pass after
16256 schedule_insns returns.
16257
16258 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16259
16260 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16261
16262 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
16263
16264 PR tree-optimization/47005
16265 * tree-sra.c (struct access): Add 'non_addressable' bit.
16266 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16267 (decide_one_param_reduction): Return 0 if the parameter is passed by
16268 reference and one of the accesses in the group is non_addressable.
16269
16270 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16271
16272 PR tree-optimization/47056
16273 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16274 (mark_load): Likewise. Handle FUNCTION_DECL specially.
16275 (mark_store): Likewise. Pass STMT to ipa_record_reference.
16276
16277 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16278
16279 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16280 initializer. Skip view conversions from aggregate types.
16281
16282 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
16283
16284 PR bootstrap/47055
16285 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16286
16287 2011-01-04 Philipp Thomas <pth@suse.de>
16288
16289 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16290 obvious typo.
16291
16292 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16293
16294 * function.c (thread_prologue_and_epilogue_insns): Do not crash
16295 on empty epilogue sequences.
16296
16297 2011-01-04 Joseph Myers <joseph@codesourcery.com>
16298
16299 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16300 non-static): New Driver options.
16301
16302 2011-01-04 Jie Zhang <jie@codesourcery.com>
16303
16304 PR driver/47137
16305 * gcc.c (default_compilers[]): Set combinable field to 0
16306 for all assembly languages.
16307
16308 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
16309
16310 * config/mips/loongson3a.md: New file.
16311 * config/mips/mips.md: Include loongson3a.md.
16312 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16313 TUNE_LOONGSON_3A.
16314
16315 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
16316
16317 PR middle-end/47017
16318 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16319 instead of convert_memory_address_addr_space on the base expression.
16320
16321 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16322
16323 * config/spu/spu.c (spu_option_override): Update error text
16324 for bad -march= / -mtune= values.
16325
16326 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16327
16328 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16329 if branch-hint optimization will be performed.
16330
16331 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16332
16333 PR tree-optimization/47148
16334 * ipa-split.c (split_function): Convert arguments to
16335 DECL_ARG_TYPE if possible.
16336
16337 PR tree-optimization/47155
16338 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16339 when computing uns.
16340
16341 PR rtl-optimization/47157
16342 * combine.c (try_combine): If undobuf.other_insn becomes
16343 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16344 and set *new_direct_jump_p too.
16345
16346 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
16347
16348 PR tree-optimization/47021
16349 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16350
16351 2011-01-03 Jakub Jelinek <jakub@redhat.com>
16352
16353 * gcc.c (process_command): Update copyright notice dates.
16354 * gcov.c (print_version): Likewise.
16355 * gcov-dump.c (print_version): Likewise.
16356 * mips-tfile.c (main): Likewise.
16357 * mips-tdump.c (main): Likewise.
16358
16359 2011-01-03 Martin Jambor <mjambor@suse.cz>
16360
16361 PR tree-optimization/46801
16362 * tree-sra.c (type_internals_preclude_sra_p): Check whether
16363 aggregate fields start at byte boundary instead of the bit-field flag.
16364
16365 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
16366
16367 PR driver/47137
16368 * gcc.c (main): Revert revision 168407.
16369
16370 2011-01-03 Martin Jambor <mjambor@suse.cz>
16371
16372 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16373
16374 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16375
16376 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16377 vector optab to expand vector/scalar shift, update gimple to vector.
16378
16379 2011-01-03 Martin Jambor <mjambor@suse.cz>
16380
16381 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16382 a thunk.
16383
16384 2011-01-03 Martin Jambor <mjambor@suse.cz>
16385
16386 PR tree-optimization/46984
16387 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16388 HOST_WIDE_INT.
16389 (cgraph_create_indirect_edge): Fixed line length.
16390 (cgraph_indirect_call_info): Declare.
16391 (cgraph_make_edge_direct) Update declaration.
16392 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16393 (cgraph_create_indirect_edge): Use it.
16394 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
16395 callees.
16396 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16397 the new thunk_delta representation.
16398 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16399 HOST_WIDE_INT.
16400 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16401 (ipa_read_indirect_edge_info): Likewise.
16402 * lto-cgraph.c (output_edge_opt_summary): New function.
16403 (output_node_opt_summary): Call it on all outgoing edges.
16404 (input_edge_opt_summary): New function.
16405 (input_node_opt_summary): Call it on all outgoing edges.
16406
16407 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
16408
16409 PR driver/47137
16410 * gcc.c (main): Don't check have_o when settting combine_inputs.
16411
16412 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
16413
16414 * regrename.c: Add general comment describing the pass.
16415 (struct du_head): Remove 'length' field.
16416 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16417 (regrename_optimize): Do not sort chains. Rework comments, add others.
16418 Force renaming to the preferred class (if any) in the first pass and do
16419 not consider registers that belong to it in the second pass.
16420 (create_new_chain): Do not set 'length' field.
16421 (scan_rtx_reg): Likewise.
16422
16423 2011-01-02 Jakub Jelinek <jakub@redhat.com>
16424
16425 PR tree-optimization/47140
16426 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16427 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16428 to bit_value_binop.
16429
16430 PR rtl-optimization/47028
16431 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16432 parm_birth_insn instead of at the beginning of first bb.
16433
16434 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
16435
16436 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16437 Remove the word "see" before "@pxref".
16438 * doc/rtl.texi: Remove the word "see" before "@pxref".
16439
16440 2011-01-01 Jan Hubicka <jh@suse.cz>
16441
16442 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16443 memory.
16444
16445 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
16446
16447 PR target/38662
16448 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16449
16450 \f
16451 Copyright (C) 2011 Free Software Foundation, Inc.
16452
16453 Copying and distribution of this file, with or without modification,
16454 are permitted in any medium without royalty provided the copyright
16455 notice and this notice are preserved.