]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/49365 (436.cactusADM performance regression)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
fe4cd14b
RG
12011-06-27 Richard Guenther <rguenther@suse.de>
2
3 PR tree-optimization/49365
4 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
5
afc3f22f
RS
62011-06-27 Richard Guenther <rguenther@suse.de>
7
8 PR tree-optimization/49169
9 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
10 the alignment of function decls.
11
92590751 122011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
13
14 PR target/47997
15 * config/darwin.c (darwin_mergeable_string_section): Place string
16 constants in '.cstring' rather than '.const' when CF/NSStrings are
17 active.
18
605354f3
EB
192011-06-26 Eric Botcazou <ebotcazou@adacore.com>
20
21 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
22 (emit_save_register_window): Likewise.
23 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
24 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
25 Swap back %o7/%i7 in register naming.
26
0e9197f5
IS
272011-06-25 Iain Sandoe <iains@gcc.gnu.org>
28
29 PR driver/49371
30 * config/darwin.c (darwin_override_options): Improve warning when
31 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
32 is given with fpie/fPIE.
33 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
34 * config/darwin9.h (PIE_SPEC): New.
53461199 35
605354f3 362011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
37
38 * timevar.c (timevar_print): Increase width for display of timevar
39 name.
40
f796c438
JJ
412011-06-24 Jakub Jelinek <jakub@redhat.com>
42
43 PR c++/46400
44 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
45 instead of TYPE_CHAIN for chain_next for types.
46
a7289eaf
RH
472011-06-24 Richard Henderson <rth@redhat.com>
48
49 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
50 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
51 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
52 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
53 (sparc_flat_expand_prologue): Emit individual instructions
54 instead of one of the above.
55
c4b9a87e
ER
562011-06-24 Easwaran Raman <eraman@google.com>
57
58 PR rtl-optimization/49429
59 PR target/49454
60 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
61 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
62 used to copy y into x.
63 * calls.c (initialize_argument_information): Mark
64 an argument addressable if it is passed by invisible reference.
65 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
66 if it is passed by reference.
67
5ac6c59e
L
682011-06-24 H.J. Lu <hongjiu.lu@intel.com>
69
70 PR rtl-optimization/49504
71 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
72 subtraction of a pointer in Pmode if pointers extend unsigned.
73 (num_sign_bit_copies1): Likewise.
5ac6c59e 74
b807e627
MJ
752011-06-24 Martin Jambor <mjambor@suse.cz>
76
77 PR tree-optimizations/49516
78 * tree-sra.c (sra_modify_assign): Choose the safe path for
79 aggregate copies if we also did scalar replacements.
80
9a1ea4b9
RR
812011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
82
83 PR target/49335
84 * config/arm/predicates.md (add_operator): New.
85 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage
86 in Thumb2.
87
949cfd0a
AK
882011-06-24 Andi Kleen <ak@linux.intel.com>
89
90 * tree-sra.c (type_internals_preclude_sra_p): Add msg
91 parameter. Split up ifs and report reason in *msg.
92 (reject): Add.
93 (find_var_candiate): Add msg variable.
94 Split up ifs and report reason to reject.
95 (find_param_candidates): Add msg variable.
96 Pass msg to type_internals_preclude_sra_p.
97
49e9c661 982011-06-23 Jeff Law <law@redhat.com>
ad3577df 99
b0c11403
JL
100 PR middle-end/48770
101 * reload.h (reload): Change to return a bool.
102 * ira.c (ira): If requested by reload, run a fast DCE pass after
103 reload has completed. Fix comment typo.
104 * reload1.c (need_dce): New file scoped static.
105 (reload): Set reload_completed here. Return whether or not a DCE
106 pass after reload is needed.
107 (delete_dead_insn): Set need_dce as needed.
108
ad3577df
JL
109 PR middle-end/49465
110 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
111 to detect threading through joiner block. If there was already
112 an edge to the new target, then do not change the PHI nodes.
113
7cf64710
JJ
1142011-06-23 Jakub Jelinek <jakub@redhat.com>
115
116 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
117 get_pointer_alignment to see if base isn't sufficiently aligned.
118
febb1302
JH
1192011-06-23 Jan Hubicka <jh@suse.cz>
120
121 PR tree-optimize/49373
122 * tree-pass.h (all_late_ipa_passes): Declare.
123 * cgraphunit.c (init_lowered_empty_function): Fix properties.
124 (cgraph_optimize): Execute late passes; remove unreachable funcions after
125 materialization.
126 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or LTOing.
127 * passes.c (all_late_ipa_passes): Declare.
128 (dump_passes, register_pass): Handle late ipa passes.
129 (init_optimization_passes): Move ipa_pta to late passes; schedule fixup_cfg
130 at beggining of all_passes.
131 (apply_ipa_transforms): New function.
132 (execute_one_pass): When doing simple ipa pass, apply all transforms.
133
4c77620d
JM
1342011-06-23 Joseph Myers <joseph@codesourcery.com>
135
136 * params.c: Include common/common-target.h. Don't include tm.h.
137 (lang_independent_params): Move from toplev.c.
138 (global_init_params): New.
139 * params.h (global_init_params): Declare.
140 * target.def (default_params): Move to common-target.def.
141 * toplev.c (lang_independent_options): Remove.
142 (lang_independent_params): Move to params.c.
143 (general_init): Use global_init_params.
144 * common/common-target.def (option_default_params): Move from
145 target.def.
146 * common/config/ia64/ia64-common.c: Include params.h.
147 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
148 from ia64.c.
149 * common/config/rs6000/rs6000-common.c: Include params.h.
150 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
151 from rs6000.c.
152 * common/config/sh/sh-common.c: Include params.h.
153 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
154 from sh.c.
155 * common/config/spu/spu-common.c: Include params.h.
156 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
157 from spu.c.
158 * config/ia64/ia64.c (ia64_option_default_params,
159 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
160 * config/rs6000/rs6000.c (rs6000_option_default_params,
161 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
162 * config/sh/sh.c (sh_option_default_params,
163 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
164 * config/spu/spu.c (spu_option_default_params,
165 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
166 * Makefile.in (OBJS): Remove params.o.
167 (OBJS-libcommon-target): Add params.o.
168 (params.o, $(common_out_object_file)): Update dependencies.
169 * doc/tm.texi: Regenerate.
170
6aad1e38
AM
1712011-06-23 Alan Modra <amodra@gmail.com>
172
173 PR bootstrap/49383
174 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
175 invocation for 2011-06-09 changes.
176
4fb489e7
JJ
1772011-06-22 Jakub Jelinek <jakub@redhat.com>
178
fb79f500
JJ
179 PR libgomp/49490
180 * omp-low.c (expand_omp_for_static_nochunk): Only
181 use n ceil/ nthreads size for the first
182 n % nthreads threads in the team instead of
183 all threads except for the last few ones which
184 get less work or none at all.
185
4fb489e7
JJ
186 PR debug/49496
187 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
188 uses.
189
9c7c9f10
RG
1902011-06-22 Richard Guenther <rguenther@suse.de>
191
192 PR tree-optimization/49493
193 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
194 Refer to the alias target of variables.
195 (associate_varinfo_to_alias_1): Remove.
196 (ipa_pta_execute): Do not associate aliases with anything.
197 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
198 (cgraph_function_node): Likewise.
199 (cgraph_function_or_thunk_node): Likewise.
200 (varpool_variable_node): Likewise.
201
7cf13d1f
NS
2022011-06-22 Nathan Sidwell <nathan@codesourcery.com>
203
204 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect
205 typo.
206 * config.gcc (arm*-*-linux*): Default to gnu tls.
207 (arm*-*-*): Add --with-tls option.
208 (all_defaults): Add 'tls'.
209
78a8eb4e
RH
2102011-06-22 Richard Henderson <rth@redhat.com>
211
212 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
213 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
214 (dwarf2out_frame_debug_cfa_window_save): Rename from
215 dwarf2out_window_save; make static.
216 * tree.h (dwarf2out_window_save): Don't declare.
217
218 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
219 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
220 (emit_save_register_window): Rename from gen_save_register_window;
221 emit the insn and add REG_CFA_* notes.
222 (sparc_expand_prologue): Update to match.
223 * config/sparc/sparc.md (save_register_window_1): Simplify from
224 save_register_window<P:mode>.
225
3b4c46d7
L
2262011-06-22 H.J. Lu <hongjiu.lu@intel.com>
227
228 PR target/49497
229 * config/i386/i386.md (*lea_general_2): Always allow SImode.
230 (*lea_general_2_zext): Likewise.
231 (imul to lea peepholes): Use const359_operand and check
232 TARGET_PARTIAL_REG_STALL.
233
234 * config/i386/predicates.md (const359_operand): New.
235
4399cf59
MM
2362011-06-22 Michael Matz <matz@suse.de>
237
238 * cgraphunit.c (assemble_thunk): Use correct return type.
239
31a0c825
DP
2402011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
241 Dmitry Melnik <dm@ispras.ru>
242
243 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
244 (neon_output_shift_immediate): Ditto.
245 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
246 prototype.
247 (neon_output_shift_immediate): Ditto.
248 * config/arm/neon.md (vashl<mode>3): Modified constraint.
249 (vashr<mode>3_imm): New insn pattern.
250 (vlshr<mode>3_imm): Ditto.
251 (vashr<mode>3): Modified constraint.
252 (vlshr<mode>3): Ditto.
253 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
254 predicate.
255 (imm_for_neon_rshift_operand): Ditto.
256 (imm_lshift_or_reg_neon): Ditto.
257 (imm_rshift_or_reg_neon): Ditto.
258
259 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
260
ddb555ed
JJ
2612011-06-22 Jakub Jelinek <jakub@redhat.com>
262
36dc1a88
JJ
263 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
264 builtin calls even if likelyvalue is not CONSTANT.
265 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
266 Return get_value_for_expr of first operand
267 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
268 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
269 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
270 their non-checking counterparts.
271 (call_may_clobber_ref_p_1): Likewise.
272 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
273 like their non-checking counterparts.
274 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
275 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
276 like their non-checking counterparts.
277 (find_func_clobbers): Likewise.
278 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
279 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
280
41cd4957
JJ
281 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
282 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
283 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
284 of base type reference as argument.
285 (resolve_addr_in_expr): Likewise. Fix keep computation.
286 (convert_descriptor_to_signed): Renamed to...
287 (convert_descriptor_to_mode): ... this. For wider types convert
288 to unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to
289 untyped.
290 (typed_binop): New function.
291 (scompare_loc_descriptor, ucompare_loc_descriptor,
292 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
293 default to unsigned type instead of signed.
294
ddb555ed
JJ
295 PR debug/47858
296 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
297 (gimple_build_debug_source_bind_stat): New prototype.
298 (gimple_build_debug_source_bind): Define.
299 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
300 gimple_debug_source_bind_get_value,
301 gimple_debug_source_bind_get_value_ptr,
302 gimple_debug_source_bind_set_var,
303 gimple_debug_source_bind_set_value): New inlines.
304 * gimple.c (gimple_build_debug_source_bind_stat): New function.
305 * gimple-pretty-print.c (dump_gimple_debug): Handle
306 GIMPLE_DEBUG_SOURCE_BIND.
307 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
308 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
309 * tree-parloops.c (eliminate_local_variables,
310 separate_decls_in_region): Likewise.
311 (separate_decls_in_region_debug): Renamed from
312 separate_decls_in_region_debug_bind. Handle
313 gimple_debug_source_bind_p.
314 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
315 prototypes.
316 (DECL_HAS_DEBUG_ARGS_P): Define.
317 (struct tree_function_decl): Add has_debug_args_flag field.
318 * tree.c (debug_args_for_decl): New variable.
319 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
320 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
321 (rewrite_debug_stmt_uses): New function.
322 (rewrite_stmt): Use it to rewrite debug stmt uses.
323 * rtl.def (DEBUG_PARAMETER_REF): New.
324 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
325 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
326 DEBUG_PARAMETER_REF.
327 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
328 * print-rtl.c (print_rtx): Likewise.
329 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
330 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
331 debug stmts in the first bb.
332 * tree-inline.c (remap_ssa_name): If remapping default def
333 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
334 a source bind debug stmt.
335 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
336 (maybe_move_debug_stmts_to_successors): Likewise.
337 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
338 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
339 debug args vector from old_decl to new_decl.
340 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
341 or modified parameters, add debug bind stmts before call
342 setting DEBUG_EXPR_DECL which is remembered in debug args
343 vector.
344 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
345 on DECL_DEBUG_EXPRs from debug args vector.
346 (expand_debug_source_expr): New function.
347 (expand_debug_locations): Use it for source bind insns.
348 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
349 * var-tracking.c (prepare_call_arguments): Add debug args
350 to call_arguments if any.
351 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
352 output_loc_operands, output_loc_operands_raw,
353 resolve_addr_in_expr, compare_loc_operands): Handle
354 DW_OP_GNU_parameter_ref.
355 (get_ref_die_offset, parameter_ref_descriptor): New functions.
356 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
357 (gen_subprogram_die): Handle parameters identified by
358 DEBUG_PARAMETER_REF.
359
ccdc2164
NS
3602011-06-22 Nathan Sidwell <nathan@codesourcery.com>
361
362 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
363 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
364 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
365 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
366 (arm_tls_descseq_addr): New.
367 (legitimize_tls_address): Add tlsdesc support.
368 (arm_cannot_copy_insn_p): Check for tlscall.
369 (arm_emit_tls_decoration): Likewise.
370 * config/arm/arm.h (TARGET_GNU2_TLS): New.
371 (OPTION_DEFAULT_SPECS): Add with-tls support.
372 * config/arm/arm.md (R1_REGNUM): Define.
373 (tlscall): New.
374 * config/arm/arm.opt (tls_type): New enumeration type and values.
375 (mtls-dialect): New switch.
376 * config/arm/arm-opts.h (enum tls_type): New.
377
70e41a6a
NP
3782011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
379
380 * attribs.c (register_attribute): Added assert to check that all
381 attribute specs are registered with a name that is not empty and
382 does not start with '_'.
383 (decl_attributes): Avoid the lookup of the "naked" attribute spec
384 if the function has no attributes.
385 * tree.c (is_attribute_with_length_p): Removed.
386 (is_attribute_p): Removed.
387 (private_is_attribute_p): New.
388 (private_lookup_attribute): New.
389 (lookup_attribute): Removed.
390 (lookup_ident_attribute): New.
391 (remove_attribute): Require the first argument to be in the form
392 'text', not '__text__'. Updated asserts.
393 (merge_attributes): Use lookup_ident_attributes instead of
394 lookup_attribute.
395 (merge_dllimport_decl_attributes): Use remove_attribute.
396 (attribute_list_contained): Likewise.
397 (attribute_list_equal): Immediately return 1 if the arguments are
398 identical pointers.
399 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
400 'int'. Require the first argument to be in the form 'text', not
401 '__text__'. Require the second argument to be an identifier.
402 (lookup_attribute): Made inline. Require the first argument to be
403 in the form 'text', not '__text__'.
404 (private_is_attribute_p, private_lookup_attribute): New.
405 Updated comments.
406
e0a8ecf2
AM
4072011-06-21 Andrew MacLeod <amacleod@redhat.com>
408
409 * builtins.c: Add sync_ or SYNC__ to builtin names.
410 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
411 * omp-low.c: Add sync_ or SYNC__ to builtin names.
412
663827d3 4132011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 414
663827d3
GJL
415 PR target/33049
416 * config/avr/avr.md (extzv): New expander.
417 (*extzv): New insn.
418 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
419 * config/avr/constraints.md (C04): New constraint.
420 * doc/md.texi (Machine Constraints): Document it.
421
146aef0b
JJ
4222011-06-21 Jakub Jelinek <jakub@redhat.com>
423
424 PR middle-end/49489
425 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
426 unsignedp argument instead of 1 for clrsb_optab.
427 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
428 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
429 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
430 * optabs.c (widen_leading): Call widen_operand and expand_unop
431 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 432 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 433
c0503294
GJL
4342011-06-21 Georg-Johann Lay <avr@gjlay.de>
435
436 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
437
3801c801
BS
4382011-06-21 Bernd Schmidt <bernds@codesourcery.com>
439
0bddee8e
BS
440 * gensupport.c (add_define_attr): New static function.
441 (is_predicable): Allow multi-alternative lists for the "predicable"
442 attribute.
443 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
444 (process_one_cond_exec): Call alter_attrs_for_insn.
445 * doc/md.texi (Defining Attributes): Mention some standard names.
446 (Conditional Execution): Update documentation for "predicable".
447
3801c801
BS
448 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
449 __builtin_clrsbll): Document.
450 * doc/rtl.texi (clrsb): New entry.
451 * optabs.c (widen_leading): Renamed from widen_clz. New argument
452 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
453 (expand_unop): Handle clrsb_optab.
454 (init_optabs): Initialize it.
455 * optabs.h (enum optab_index): New entry OTI_clrsb.
456 (clrsb_optab): Define.
457 * genopinit.c (optabs): Add an entry for it.
458 * builtins.c (expand_builtin): Handle clrsb builtin functions.
459 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
460 BUILT_IN_CLRSBLL): New.
461 * rtl.def (CLRSB): New code.
462 * dwarf2out.c (mem_loc_descriptor): Handle it.
463 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
464 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
465 and popcount.
466 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
467 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
468 (__ctzDI2): Move declaration.
469 * config/bfin/bfin.md (clrsbsi2): New expander.
470 (signbitssi2): Use the CLRSB rtx.
471 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
472 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
473
55f01229
RG
4742011-06-21 Richard Guenther <rguenther@suse.de>
475
637c11bd 476 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 477
5181cd6a
IR
4782011-06-21 Ira Rosen <ira.rosen@linaro.org>
479
480 PR tree-optimization/49478
481 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
482 with constant operand.
483
e4ee3d70
RG
4842011-06-21 Richard Guenther <rguenther@suse.de>
485
486 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 487
7b7ec6c5
RG
4882011-06-21 Richard Guenther <rguenther@suse.de>
489
490 PR tree-optimization/49483
491 * tree-vect-stmts.c (vectorizable_assignment): Also handle
492 VIEW_CONVERT_EXPR conversions.
493
1b916ca6
JM
4942011-06-21 Joseph Myers <joseph@codesourcery.com>
495
496 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
497 * config/avr/avr-tables.opt: New file (generated).
498 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
499 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
500 avr-mcus.def.
501 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
502 (avr_option_override): Don't process -mmcu= argument here. Set
503 avr_current_device using avr_mcu_index.
637c11bd 504 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
505 * config/avr/avr.opt (mmcu=): Use Enum.
506 * config/avr/t-avr (avr-devices.o): Update dependencies.
507 ($(srcdir)/config/avr/avr-tables.opt): New.
508 * target.def (help): Remove.
509 * doc/tm.texi.in (TARGET_HELP): Remove.
510 * doc/tm.texi: Regenerate.
511 * opts.c: Don't include target.h.
512 (common_handle_option): Don't call targetm.help.
513 * system.h (TARGET_HELP): Poison.
514 * Makefile.in (opts.o): Update dependencies.
515
7ecfa34f
RO
5162011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
517
518 * config/usegld.h: New file.
519 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
520 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 521 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
522 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
523 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
524 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
525 Define.
7ecfa34f
RO
526 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
527 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
528 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
529 (STACK_CHECK_STATIC_BUILTIN): Define.
530 * config/sol2.opt (compat-bsd): Remove.
531 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
532 * config/sol2-bi.h: New file.
533 * config/sol2-gld.h: Remove.
534 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
535 (NO_DBX_BNSYM_ENSYM): Remove.
536 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
537 (STACK_CHECK_STATIC_BUILTIN): Remove.
538 Test USE_GLD instead of TARGET_GNU_LD.
539 * config/i386/sol2-10.h: Rename to ...
540 * config/i386/sol2-bi.h .. this.
541 (SUBTARGET_EXTRA_SPECS): Redefine.
542 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
543 (MULTILIB_DEFAULTS): Remove.
544 (DEFAULT_ARCH32_P): Define.
545 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
546 (ARCH64_SUBDIR): Define.
547 Test USE_GLD instead of TARGET_GNU_LD.
548 (I386_EMULATION): Rename to ...
549 (ARCH32_EMULATION): ... this.
550 (X86_64_EMULATION): Rename to ...
551 (ARCH64_EMULATION): ... this.
552 (TARGET_LD_EMULATION): Remove.
553 (LINK_ARCH_SPEC): Remove.
554 * config/i386/sol2-gas.h: Remove.
555 * config/i386/t-sol2-10: Rename to ...
556 * config/i386/t-sol2-64: ... this.
557 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
558 (AS_SPARC64_FLAG): Define.
559 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
560 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
561 depending on TARGET_CPU_DEFAULT.
562 (CPP_CPU_SPEC): Redefine.
563 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
564 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
565 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
566 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
567 ASM_ARCH_DEFAULT_SPEC): Redefine.
568 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
569 LINK_ARCH_DEFAULT_SPEC.
570 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
571 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
572 (ARCH64_SUBDIR): Define.
573 (LINK_ARCH64_SPEC): Redefine.
574 (CC1_SPEC): Redefine.
575 (OPTION_DEFAULT_SPECS): Redefine.
576 (MULTILIB_DEFAULTS): Define.
577 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
578 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
579 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
580 (NO_DBX_BNSYM_ENSYM): Remove.
581 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
582 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
583 (TARGET_ASM_NAMED_SECTION): Likewise.
584 (STACK_CHECK_STATIC_BUILTIN): Remove.
585 * config/sparc/sol2-bi.h: Remove.
586 * config/sparc/sol2-gas-bi.h: Remove.
587 * config/sparc/sol2-gas.h: Remove.
588 * config/sparc/sol2-gld-bi.h: Remove.
589 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
590 common parts ...
591 (*-*-solaris2*): ... here.
592
4b583c43 5932011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 594
4b583c43 595 PR other/43564
637c11bd
UB
596 * ipa-inline.c (can_inline_edge_p): Check
597 !DECL_DISREGARD_INLINE_LIMITS.
598
3bb556ad 5992011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 600
3bb556ad
CB
601 PR middle-end/49139
602 * cgraphunit.c (process_function_and_variable_attributes): warn when
603 always_inline functions that are not inline.
637c11bd
UB
604 * ipa-inline-transform.c (inline_transform): Always call
605 optimize_inline.
606 * tree-inline.c (tree_inlinable_function_p): Use error instead
607 of sorry.
3bb556ad 608 (expand_call_inline): Likewise.
637c11bd 609
f1ee724c
JJ
6102011-06-21 Jakub Jelinek <jakub@redhat.com>
611
612 * Makefile.in (dg_target_exps): Set.
613 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
614 instead of 7, try to divide it more evenly.
615
6162011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6
CF
617
618 PR i386/49089
619 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
620 (avx256_split_unaligned_store): New definition.
621 (ix86_option_override_internal): Enable avx256 unaligned load/store
622 splitting only when avx256_split_unaligned_load/store is set.
623
998c75b6
BS
6242011-06-20 Bernd Schmidt <bernds@codesourcery.com>
625
626 * regrename.c (scan_rtx_reg): Handle the case where we write to an
627 open chain in a smaller mode without failing the entire block.
628
83a8cbda
L
6292011-06-20 H.J. Lu <hongjiu.lu@intel.com>
630
631 PR middle-end/47725
632 * combine.c (cant_combine_insn_p): Don't check zero/sign
633 extended hard registers.
634
3a769784
AM
6352011-06-21 Alan Modra <amodra@gmail.com>
636
637 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
638 CONST high part large-toc address.
639 (rs6000_tls_referenced_p): Make static.
640 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
641
d1e32c4a
L
6422011-06-20 H.J. Lu <hongjiu.lu@intel.com>
643
644 PR middle-end/47725
645 * combine.c (cant_combine_insn_p): Check zero/sign extended
646 hard registers.
647
c2954af9
RR
6482011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
649
650 PR target/49385
651 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
652 one of the operands is a register.
653
a95015b6
KT
6542011-06-20 Kai Tietz <ktietz@redhat.com>
655
637c11bd
UB
656 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
657 operations in combination with binary and.
a95015b6 658
49a30d00
BS
6592011-06-20 Bernd Schmidt <bernds@codesourcery.com>
660
661 * regrename.c (do_replace): Don't update notes.
662
3bae1d98
AM
6632011-06-20 Alan Modra <amodra@gmail.com>
664
665 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
666 of toc-relative address in CONST.
667 (rs6000_delegitimize_address): Recognize changed address.
668 (rs6000_legitimize_reload_address): Likewise.
669 (rs6000_emit_move): Don't force these constants to memory.
670 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
671 toc-relative address in CONST.
672 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
673 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
674
10937b0c
L
6752011-06-18 H.J. Lu <hongjiu.lu@intel.com>
676
637c11bd 677 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
678 (count_trailing_zeros): Likewise.
679
0c587260
L
6802011-06-18 H.J. Lu <hongjiu.lu@intel.com>
681
682 PR other/49325
683 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
684 .init_array can be used with .ctors on targets.
685 * configure: Regenerated.
686
c020c92b
EB
6872011-06-18 Eric Botcazou <ebotcazou@adacore.com>
688
689 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
690 if the element type is volatile.
691
cd35bcf7
JH
6922011-06-18 Jan Hubicka <jh@suse.cz>
693
694 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
695 extra name aliases.
696 (lto_symtab_resolve_can_prevail_p): Likewise.
697 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
698 * cgraphbuild.c (record_reference): Remove extra body alias code.
699 (mark_load): Likewise.
700 (mark_store): Likewise.
701 * cgraph.h (varpool_node): Remove extra_name filed;
702 add alias_of and extraname_alias.
703 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
704 (varpool_alias_aliased_node): New inline function.
705 (varpool_variable_node): New function.
706 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
707 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
708 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
709 (input_varpool_node): Likewise.
710 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
711 (varpool_externally_visible_p): Remove extra body alias code.
712 (function_and_variable_visibility): Likewise.
713 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
714 (ipa_pta_execute): Use it.
715 * varpool.c (varpool_remove_node): Remove extra name alias code.
716 (varpool_mark_needed_node): Likewise.
717 (varpool_analyze_pending_decls): Analyze aliases.
718 (assemble_aliases): New functoin.
719 (varpool_assemble_decl): Use it.
720 (varpool_create_variable_alias): New function.
721 (varpool_extra_name_alias): Rewrite.
722 (varpool_for_node_and_aliases): New function.
723
c96b4102
JJ
7242011-06-18 Jakub Jelinek <jakub@redhat.com>
725
726 PR target/49411
727 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
728 last_arg_constant and last argument doesn't match its predicate,
729 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
730 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
731 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
732 spelling of error message.
733 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
734 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
735 const_0_to_255_operand instead of const_int_operand.
736
737 Revert:
738 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
739
740 * config/i386/sse.md (blendbits): Remove mode attribute.
741 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
742 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
743 Check integer value of operand 3 in insn constraint.
744
9a2091cd
HPN
7452011-06-17 Hans-Peter Nilsson <hp@axis.com>
746
747 PR rtl-optimization/48542
748 * reload.c (find_equiv_reg): Stop looking when finding a
749 setjmp-type call.
750 * reload1.c (reload_as_needed): Invalidate all reload
751 registers when crossing a setjmp-type call.
752
361b51c0
JL
7532011-06-16 Jeff Law <law@redhat.com>
754
755 * tree-ssa-threadupdate.c (struct redirection_data): New field
756 intermediate_edge.
757 (THREAD_TARGET2): Define.
637c11bd 758 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
759 (lookup_redirection_data): Drop useless argument. Extract the
760 outgoing_edge and intermediate edge from E. Callers updated.
761 (copy_phi_args, update_destination_phis): New functions.
762 (fix_duplicate_block_edges): Likewise.
763 (create_edge_and_update_destination_phis): Duplicate all the edges
764 hung off e->aux. Use copy_phi_args.
765 (create_duplicates): Use fix_duplicate_block_edges.
766 (fixup_template_block): Likewise.
767 (redirect_edges): If necessary, redirect the joiner block's incoming
768 edge to the duplicate of the joiner block.
769 (thread_block): Don't muck up loops when threading through a joiner
770 block.
637c11bd 771 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
772 (mark_threaded_blocks, register_jump_thread): Likewise.
773 * tree-flow.h (register_jump_thread): Add new argument. Callers
774 updated.
775 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
776 (thread_across_edge): Handle threading through a joiner block.
637c11bd 777
ee460e75
MJ
7782011-06-16 Martin Jambor <mjambor@suse.cz>
779
780 PR tree-optimization/49343
781 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
782 calculate offset, provide 2nd operand for the new COMPONENT_REF.
783
a285ba2e
IS
7842011-06-16 Iain Sandoe <iains@gcc.gnu.org>
785
786 * config/darwin-protos.h (machopic_select_rtx_section): Move to
787 inside RTX_CODE ifdef.
788
0703f020
TV
7892011-06-16 Tom de Vries <tom@codesourcery.com>
790
791 PR target/45098
637c11bd
UB
792 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
793 Disallow NULL pointer for pointer arithmetic.
0703f020 794
900c07da
RR
7952011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
796
797 PR target/49398
798 Revert.
799 2011-06-10 Wei Guozhi <carrot@google.com>
800
801 PR target/45335
802 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
803 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
804 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
805 related peephole2.
806 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
807 related peephole2.
808 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
809 (arm_legitimate_ldrd_p): New prototype.
810 (arm_output_ldrd): New prototype.
811 * config/arm/arm.c (arm_check_ldrd_operands): New function.
812 (arm_legitimate_ldrd_p): New function.
813 (arm_output_ldrd): New function.
814
c020c92b 8152011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
816
817 PR middle-end/46500
818 * doc/tm.texi.in: Update Copyright date.
819 * doc/tm.texi: Regenerate.
820 * targhooks.c (default_setup_incoming_varargs): Replace
821 CUMULATIVE_ARGS* argument type with cumulative_args_t.
822 (default_pretend_outgoing_varargs_named): Likewise.
823 (hook_pass_by_reference_must_pass_in_stack): Likewise.
824 (hook_callee_copies_named): Likewise.
825 (default_function_arg_advance): Likewise.
826 (default_function_arg): Likewise.
827 (default_function_incoming_arg): Likewise.
828 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
829 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
830 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
831 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
832 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
833 * targhooks.h (default_setup_incoming_varargs): Likewise.
834 (default_pretend_outgoing_varargs_named): Likewise.
835 (hook_pass_by_reference_must_pass_in_stack): Likewise.
836 (hook_callee_copies_named): Likewise.
837 (default_function_arg_advance): Likewise.
838 (default_function_arg): Likewise.
839 (default_function_incoming_arg): Likewise.
840 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
841 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
842 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
843 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
844 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
845 * target.def (pass_by_reference): Likewise.
846 (setup_incoming_varargs, strict_argument_naming): Likewise.
847 (pretend_outgoing_varargs_named, callee_copies): Likewise.
848 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
849 (function_incoming_arg): Likewise.
850 * target.h: Don't include "tm.h" .
851 (cumulative_args_t): New typedef.
852 [GCC_TM_H] (get_cumulative_args): New static inline function.
853 [GCC_TM_H] (pack_cumulative_args): Likewise.
854 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
855 argument type with cumulative_args_t.
856 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
857 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
858 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
859 (frv_arg_partial_bytes, frv_function_arg): Likewise.
860 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
861 (frv_function_arg_1): Likewise.
862 * config/s390/s390.c (s390_pass_by_reference): Likewise.
863 (s390_function_arg_advance, s390_function_arg): Likewise.
864 * config/m32c/m32c.c (m32c_function_arg): Likewise.
865 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
866 (m32c_strict_argument_naming): Likewise.
867 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
868 (spu_function_arg_advance): Likewise.
869 (spu_setup_incoming_varargs): Likewise. Make static.
870 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
871 Remove prototype.
872 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
873 CUMULATIVE_ARGS* argument type with cumulative_args_t.
874 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
875 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
876 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
877 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
878 (mep_pass_by_reference, mep_function_arg): Likewise.
879 (mep_function_arg_advance): Likewise.
880 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
881 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
882 (m32r_function_arg, m32r_function_arg_advance): Likewise.
883 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
884 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
885 (ix86_function_arg, ix86_pass_by_reference): Likewise.
886 (ix86_setup_incoming_varargs): Likewise.
887 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
888 (sh_strict_argument_naming): Likewise.
889 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
890 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
891 (sh_function_arg_advance, sh_function_arg): Likewise.
892 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
893 (pdp11_function_arg_advance): Likewise.
894 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
895 Likewise.
896 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
897 * config/avr/avr.c (avr_function_arg): Likewise.
898 (avr_function_arg_advance): Likewise.
899 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
900 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
901 (xtensa_function_arg_1): Likewise.
637c11bd
UB
902 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
903 Likewise.
d5cc9181
JR
904 (xstormy16_function_arg): Likewise.
905 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
906 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
907 (fr30_function_arg_advance): Likewise.
908 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
909 (lm32_function_arg, lm32_function_arg_advance): Likewise.
910 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
911 (moxie_function_arg, moxie_function_arg_advance): Likewise.
912 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
913 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
914 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
915 (cris_function_arg, cris_function_incoming_arg): Likewise.
916 (cris_function_arg_advance, cris_function_arg_1): Likewise.
917 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
918 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
919 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
920 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
921 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
922 (mn10300_arg_partial_bytes): Likewise.
923 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
924 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
925 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
926 (ia64_function_arg_1): Likewise.
927 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
928 (m68k_function_arg): Likewise.
929 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
930 (rs6000_function_arg, setup_incoming_varargs): Likewise.
931 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
932 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
933 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
934 (picochip_arg_advance): Likewise.
935 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
936 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
937 (mcore_function_arg_advance): Likewise.
938 * config/score/score.c (score_pass_by_reference): Likewise.
939 (score_function_arg_advance): Likewise.
940 (score_arg_partial_bytes): Likewise. Make static.
941 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
942 * config/arm/arm.c (arm_arg_partial_bytes): Replace
943 CUMULATIVE_ARGS* argument type with cumulative_args_t.
944 (arm_function_arg, arm_function_arg_advance): Likewise.
945 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
946 * config/pa/pa.c (pa_pass_by_reference): Likewise.
947 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
948 (pa_function_arg): Likewise.
949 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
950 (mips_function_arg, mips_function_arg_advance): Likewise.
951 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
952 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
953 * config/vax/vax.c (vax_function_arg): Likewise.
954 (vax_function_arg_advance): Likewise.
955 * config/h8300/h8300.c (h8300_function_arg): Likewise.
956 (h8300_function_arg_advance): Likewise.
957 * config/v850/v850.c (v850_pass_by_reference): Likewise.
958 (v850_strict_argument_naming, v850_function_arg): Likewise.
959 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
960 (v850_setup_incoming_varargs): Likewise.
961 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
962 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
963 (mmix_function_arg, mmix_pass_by_reference): Likewise.
964 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
965 with const void *.
966 * config/bfin/bfin.c (setup_incoming_varargs): Replace
967 CUMULATIVE_ARGS* argument type with cumulative_args_t.
968 (bfin_function_arg_advance, bfin_function_arg): Likewise.
969 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
970 * calls.c (emit_call_1): Change type of args_so_far to
971 cumulative_args_t. Changed all callers.
972 (initialize_argument_information): Likewise.
973 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
974 * dse.c (get_call_args): Likewise.
975 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
976 * function.c (pass_by_reference, reference_callee_copied): Likewise.
977 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
978 New member args_so_far_v. Changed all users.
979 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
980 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
981 * config/mips/mips.c (mips_output_args_xfer): Likewise.
982 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
983 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
984 * config/microblaze/microblaze.c (microblaze_expand_prologue):
985 Likewise.
d5cc9181
JR
986 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
987 m32r_pass_by_reference.
988
51312233
IR
9892011-06-16 Ira Rosen <ira.rosen@linaro.org>
990
991 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
992 argument to be a VEC of statements.
637c11bd
UB
993 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
994 assert that pattern statements have to have their vector type set.
51312233
IR
995 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
996 Change the first argument to be a VEC of statements. Update
997 documentation.
998 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
999 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
1000 (vect_recog_widen_mult_pattern): Change the first argument to be a
1001 VEC of statements. Update documentation. Check that the constant is
1002 INTEGER_CST. Support multiplication by a constant that fits an
1003 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
1004 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
1005 call. Handle additional pattern statements if necessary.
1006
fd4df33d
NC
10072011-06-16 Nick Clifton <nickc@redhat.com>
1008
1009 PR target/49427
1010 * config.gcc: Set cpu_type to v850 for any V850 architecture.
1011 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
1012 md_file, extra_modes, out_file and extra_options are these are all
1013 deduced from cpu_type.
1014
fbd05da0
GJL
10152011-06-16 Georg-Johann Lay <avr@gjlay.de>
1016
1017 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
1018 truncation mask to 63.
1019
0ad8bb3b
GJL
10202011-06-16 Georg-Johann Lay <avr@gjlay.de>
1021
1022 PR target/49313
1023 PR target/29524
1024 * longlong.h: Add AVR support:
1025 (count_leading_zeros): New macro.
1026 (count_trailing_zeros): New macro.
1027 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
1028 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
1029 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
1030 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
1031 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
1032 (LIB2FUNCS_EXCLUDE): Add _clz.
1033 * config/avr/libgcc.S (XCALL): Move up in file.
1034 (XJMP): New C Macro.
1035 (DEFUN): New asm macro.
1036 (ENDF): New asm macro.
1037 (__ffssi2): New function.
1038 (__ffshi2): New function.
1039 (__loop_ffsqi2): New function.
1040 (__ctzsi2): New function.
1041 (__ctzhi2): New function.
1042 (__clzdi2): New function.
1043 (__clzsi2): New function.
1044 (__clzhi2): New function.
1045 (__paritydi2): New function.
1046 (__paritysi2): New function.
1047 (__parityhi2): New function.
59c1e10b 1048 (__parityqi2): New function.
0ad8bb3b
GJL
1049 (__popcounthi2): New function.
1050 (__popcountsi2): New function.
1051 (__popcountdi2): New function.
1052 (__popcountqi2): New function.
1053 (__bswapsi2): New function.
1054 (__bswapdi2): New function.
1055 (__ashldi3): New function.
1056 (__ashrdi3): New function.
1057 (__lshrdi3): New function.
1058 Fix suspicous lines.
1059
12430896
RG
10602011-06-16 Richard Guenther <rguenther@suse.de>
1061
1062 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
1063 the same as x != 0.
637c11bd
UB
1064 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
1065 to (bool) X & 1.
12430896
RG
1066 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
1067 equality compares against zero for the lower bit.
1068
09302442
JJ
10692011-06-16 Jakub Jelinek <jakub@redhat.com>
1070
1071 PR tree-optimization/49419
1072 * tree-vrp.c (execute_vrp): Call init_range_assertions
1073 before estimate_numbers_of_iterations, call
1074 free_number_of_iterations_estimates before calling
1075 remove_range_assertions.
1076
81c41166
RE
10772011-06-16 Revital Eres <revital.eres@linaro.org>
1078
1079 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
1080 (struct partial_schedule): Add rows_length field.
1081 (verify_partial_schedule): Check rows_length.
1082 (ps_insert_empty_row): Handle rows_length.
1083 (create_partial_schedule): Likewise.
1084 (free_partial_schedule): Likewise.
1085 (reset_partial_schedule): Likewise.
1086 (create_ps_insn): Remove rest_count argument.
1087 (remove_node_from_ps): Update rows_length.
1088 (add_node_to_ps): Update rows_length and call create_ps_insn
1089 without passing row_rest_count.
1090 (rotate_partial_schedule): Update rows_length.
1091
d24dc7b3
RE
10922011-06-16 Revital Eres <revital.eres@linaro.org>
1093
1094 * ddg.c (add_intra_loop_mem_dep): New function.
1095 (build_intra_loop_deps): Call it.
1096
361b51c0 10972011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
1098
1099 * df-problems.c (df_lr_local_compute): Manually CSE
1100 PIC_OFFSET_TABLE_REGNUM.
1101 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
1102 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
1103
85ce9375
JH
11042011-06-13 Jan Hubicka <jh@suse.cz>
1105
1106 * cgraphunit.c (handle_alias_pairs): New function.
1107 (cgraph_finalize_compilation_unit): Use it.
1108 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
1109 as externally visible.
1110
a577c405
RG
11112011-06-15 Richard Guenther <rguenther@suse.de>
1112
1113 * expr.c (expand_expr_real_2): Reduce all integral types to
1114 bitfield precision.
1115 (expand_expr_real_1): Likewise.
1116
93536c97
MJ
11172011-06-15 Martin Jambor <mjambor@suse.cz>
1118
1119 PR tree-optimization/48613
1120 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
1121 ipa_node_params_vector is NULL.
fd4df33d 1122
ba45cfc4
JJ
11232011-06-15 Jakub Jelinek <jakub@redhat.com>
1124
1125 PR debug/49382
1126 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
1127 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
1128 location in the list, even if it is modified before first real insn.
ba45cfc4 1129 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 1130 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 1131
6fc5966f
AM
11322011-06-15 Alexander Monakov <amonakov@ispras.ru>
1133
1134 PR target/49349
1135 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
1136 (fence_to_rewind). Use it to notice when bookkeeping will be placed
1137 above a fence. Update comments.
1138 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
1139 placed just above it. Do not allow NULL place_to_insert.
1140
9d5e7640
IR
11412011-06-15 Ira Rosen <ira.rosen@linaro.org>
1142
1143 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
1144 (slpeel_tree_peel_loop_to_edge): Don't call
1145 remove_dead_stmts_from_loop.
1146 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1147 remove irrelevant pattern statements. For irrelevant statements
1148 check if it is the last statement of a detected pattern, use
1149 corresponding pattern statement instead.
1150 (destroy_loop_vec_info): No need to remove pattern statements,
1151 only free stmt_vec_info.
1152 (vect_transform_loop): For irrelevant statements check if it is
1153 the last statement of a detected pattern, use corresponding
1154 pattern statement instead.
1155 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
1156 pattern statements. Set basic block for the new statement.
1157 (vect_pattern_recog): Update documentation.
1158 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
1159 operands of pattern statements.
1160 (vectorizable_call): Fix printing. In case of a pattern statement
1161 use the lhs of the original statement when creating a dummy
1162 statement to replace the original call.
1163 (vect_analyze_stmt): For irrelevant statements check if it is
1164 the last statement of a detected pattern, use corresponding
1165 pattern statement instead.
1166 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
1167 statements use gsi of the original statement.
1168
677f3fa8
JM
11692011-06-14 Joseph Myers <joseph@codesourcery.com>
1170
1171 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
1172 common/common-target-def.h.
1173 * target.def (default_target_flags, handle_option,
1174 supports_split_stack, optimization_table, init_struct,
1175 except_unwind_info, unwind_tables_default, have_named_sections):
1176 Move to common/common-target.def.
1177 * target.h (enum opt_levels, struct default_options): Move to
1178 common/common-target.h.
1179 * targhooks.c (default_except_unwind_info,
1180 dwarf2_except_unwind_info, sjlj_except_unwind_info,
1181 default_target_handle_option, empty_optimization_table): Move to
1182 common/common-targhooks.c.
1183 * targhooks.h (default_except_unwind_info,
1184 dwarf2_except_unwind_info, sjlj_except_unwind_info,
1185 default_target_handle_option, empty_optimization_table): Move to
1186 common/common-targhooks.h.
1187 * common/common-target-def.h: Include common/common-targhooks.h.
1188 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
1189 defined.
1190 * common/common-target.def (handle_option, option_init_struct,
1191 option_optimization_table, default_target_flags,
1192 except_unwind_info, supports_split_stack, unwind_tables_default,
1193 have_named_sections): Move from target.def.
1194 (HOOK_PREFIX): Undefine at end of file.
1195 * common/common-target.h: Include input.h.
1196 (enum opt_levels, struct default_options): Move from target.h.
1197 * common/common-targhooks.c, common/common-targhooks.h: New.
1198 * config.gcc (target_has_targetm_common): Default to yes.
1199 (moxie*): Set target_has_targetm_common=no.
1200 (hppa*-*-*): Don't set target_has_targetm_common=yes.
1201 * doc/tm.texi: Regenerate.
1202 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
1203 (C_TARGET_DEF_H): Add common/common-targhooks.h.
1204 (GCC_OBJS): Remove vec.o.
1205 (OBJS): Remove hooks.o and vec.o.
1206 (OBJS-libcommon-target): Add vec.o, hooks.o and
1207 common/common-targhooks.o.
1208 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
1209 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
1210 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
1211 cfglayout.o, $(out_object_file), $(common_out_object_file)):
1212 Update dependencies.
1213 (common/common-targhooks.o): New.
637c11bd 1214 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
1215 * common/config/pa/pa-common.c: Include more headers. Take
1216 copyright dates from pa.c.
1217 (pa_option_optimization_table, pa_handle_option,
1218 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
1219 TARGET_HANDLE_OPTION): Move from pa.c.
1220 * common/config/alpha/alpha-common.c,
1221 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
1222 common/config/bfin/bfin-common.c,
1223 common/config/cris/cris-common.c,
1224 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
1225 common/config/h8300/h8300-common.c,
1226 common/config/i386/i386-common.c,
1227 common/config/ia64/ia64-common.c,
1228 common/config/iq2000/iq2000-common.c,
1229 common/config/lm32/lm32-common.c,
1230 common/config/m32c/m32c-common.c,
1231 common/config/m32r/m32r-common.c,
1232 common/config/m68k/m68k-common.c,
1233 common/config/mcore/mcore-common.c,
1234 common/config/mep/mep-common.c,
1235 common/config/microblaze/microblaze-common.c,
1236 common/config/mips/mips-common.c,
1237 common/config/mmix/mmix-common.c,
1238 common/config/mn10300/mn10300-common.c,
1239 common/config/pdp11/pdp11-common.c,
1240 common/config/picochip/picochip-common.c,
1241 common/config/rs6000/rs6000-common.c,
1242 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
1243 common/config/score/score-common.c, common/config/sh/sh-common.c,
1244 common/config/sparc/sparc-common.c,
1245 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
1246 common/config/vax/vax-common.c,
1247 common/config/xstormy16/xstormy16-common.c,
1248 common/config/xtensa/xtensa-common.c: New.
1249 * config/alpha/alpha.c: Include common/common-target.h.
1250 (alpha_option_optimization_table, alpha_handle_option,
1251 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1252 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
1253 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
1254 * config/arm/arm.c (arm_option_optimization_table,
1255 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1256 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
1257 arm-common.c.
1258 * config/avr/avr.c (avr_option_optimization_table,
1259 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1260 to avr-common.c.
1261 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
1262 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
1263 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
1264 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
1265 * config/cris/cris.c (cris_option_optimization_table,
1266 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1267 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
1268 cris-common.c.
1269 * config/fr30/fr30.c (fr30_option_optimization_table,
1270 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
1271 to fr30-common.c.
1272 * config/frv/frv.c (frv_option_optimization_table,
1273 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
1274 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
1275 * config/h8300/h8300.c (h8300_option_optimization_table,
1276 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1277 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
1278 * config/i386/i386-protos.h (ix86_handle_option): Declare.
1279 * config/i386/i386.c: Include common/common-target.h.
1280 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
1281 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
1282 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
1283 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
1284 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
1285 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
1286 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
1287 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
1288 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
1289 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
1290 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
1291 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
1292 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
1293 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
1294 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
1295 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
1296 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
1297 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
1298 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
1299 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
1300 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
1301 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
1302 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
1303 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
1304 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
1305 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
1306 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
1307 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
1308 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
1309 ix86_option_optimization_table, ix86_option_init_struct,
1310 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
1311 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1312 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
1313 i386-common.c.
1314 * config/i386/t-i386 (i386.o): Update dependencies.
1315 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
1316 * config/ia64/ia64.c (ia64_option_optimization_table,
1317 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1318 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1319 ia64_handle_option): Move to ia64-common.c.
1320 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1321 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
1322 * config/lm32/lm32.c (lm32_option_optimization_table,
1323 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
1324 to lm32-common.c.
1325 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
1326 m32c-common.c.
1327 * config/m32r/m32r.c (m32r_option_optimization_table,
1328 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1329 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
1330 m32r_handle_option): Move to m32r-common.c.
1331 (m32r_memory_move_cost): Remove comment referring to
1332 TARGET_HANDLE_OPTION.
1333 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
1334 Move to m68k-common.c.
1335 * config/mcore/mcore.c (mcore_option_optimization_table,
1336 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1337 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
1338 * config/mep/mep.c (mep_option_optimization_table,
1339 mep_handle_option, TARGET_HANDLE_OPTION,
1340 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
1341 Move to mep-common.c.
1342 * config/microblaze/microblaze.c
1343 (microblaze_option_optimization_table,
1344 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
1345 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
1346 * config/mips/mips.c (mips_handle_option,
1347 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1348 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
1349 mips-common.c.
1350 * config/mmix/mmix.c (mmix_option_optimization_table,
1351 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1352 Move to mmix-common.c.
1353 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1354 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
1355 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1356 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
1357 * config/pa/pa.c: Include common/common-target.h.
1358 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
1359 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1360 pa_handle_option): Move to pa-common.c.
1361 (pa_option_override): Use targetm_common.except_unwind_info.
1362 (pa_asm_output_mi_thunk, pa_function_section): Use
1363 targetm_common.have_named_sections.
1364 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
1365 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1366 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1367 pdp11_handle_option, pdp11_option_init_struct): Move to
1368 pdp11-common.c.
1369 * config/picochip/picochip.c (picochip_option_optimization_table,
1370 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
1371 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
1372 * config/rs6000/rs6000.c: Include common/common-target.h.
1373 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
1374 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
1375 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
1376 rs6000_handle_option): Move to rs6000-common.c.
1377 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
1378 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
1379 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1380 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
1381 * config/s390/s390.c (processor_flags_table,
1382 s390_option_optimization_table, s390_option_init_struct,
1383 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
1384 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
1385 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
1386 * config/s390/s390.h (processor_flags_table): Declare.
1387 * config/score/score.c (score_option_optimization_table,
1388 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1389 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
1390 score_handle_option): Move to score-common.c.
1391 * config/sh/sh.c (sh_option_optimization_table,
1392 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
1393 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
1394 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
1395 * config/sparc/sparc.c: Include common/common-target.h.
1396 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1397 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
1398 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
1399 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
1400 spu_option_init_struct): Move to spu-common.c.
1401 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1402 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
1403 * config/v850/v850.c (small_memory_physical_max,
1404 v850_handle_memory_optionn v850_handle_option,
1405 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
1406 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
1407 v850-common.c.
637c11bd 1408 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
1409 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
1410 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
1411 Move to xtensa-common.c.
1412 * cfglayout.c: Include common/common-target.h.
1413 (fixup_reorder_chain): Use targetm_common.have_named_sections.
1414 * cfgrtl.c: Include common/common-target.h.
1415 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
1416 targetm_common.have_named_sections.
1417 * dbxout.c: Include common/common-target.h.
1418 (dbxout_function_end): Use targetm_common.have_named_sections.
1419 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
1420 targetm_common.except_unwind_info.
1421 * dwarf2out.c: Include common/common-target.h.
1422 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1423 dwarf2out_begin_prologue, dwarf2out_frame_init,
1424 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
1425 targetm_common.except_unwind_info.
1426 * except.c: Include common/common-target.h.
1427 (init_eh, finish_eh_generation,
1428 output_one_function_exception_table): Use
1429 targetm_common.except_unwind_info.
637c11bd 1430 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
1431 * explow.c: Include common/common-target.h.
1432 * expr.c: Include common/common-target.h.
637c11bd 1433 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
1434 * function.c: Include common/common-target.h.
1435 (expand_function_end): Use targetm_common.except_unwind_info.
1436 * haifa-sched.c: Include common/common-target.h.
637c11bd 1437 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
1438 * lto-opts.c: Include common/common-target.h instead of target.h.
1439 (lto_reissue_options): Use targetm_common.handle_option.
1440 * opts.c: Include common/common-target.h.
1441 (target_handle_option): Use targetm_common.handle_option.
1442 (init_options_struct): Update comment referring to
1443 targetm.target_option.optimization. Use
1444 targetm_common.default_target_flags,
1445 targetm_common.unwind_tables_default and
1446 targetm_common.option_init_struct.
1447 (default_options_optimization): Use
1448 targetm_common.option_optimization_table.
1449 (finish_options): Use targetm_common.except_unwind_info,
1450 targetm_common.unwind_tables_default,
1451 targetm_common.have_named_sections and
1452 targetm_common.supports_split_stack.
1453 * toplev.c: Include common/common-target.h.
1454 (process_options): Use targetm_common.have_named_sections.
1455 * tree-tailcall.c: Include common/common-target.h.
637c11bd 1456 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 1457 * tree.c: Include common/common-target.h.
637c11bd 1458 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
1459 * varasm.c: Include common/common-target.h.
1460 (resolve_unique_section, hot_function_section,
1461 default_function_section): Use targetm_common.have_named_sections.
1462
d26c7090
ER
14632011-06-14 Easwaran Raman <eraman@google.com>
1464
1465 PR rtl-optimization/44194
1466 * dse.c: Include tree-flow.h
1467 (insn_info): Add new field non_frame_wild_read.
1468 (group_info): Add new fields escaped_n and escaped_p.
1469 (kill_on_calls): New variable.
1470 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
1471 (dse_step0): Initialize kill_on_calls.
1472 (can_escape): New function.
1473 (set_usage_bits): Add additional parameter; record information
1474 about escaped locations.
637c11bd 1475 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
1476 (dse_step2_nospill): Set kill_on_calls based on
1477 group->escaped_n and group->escaped_n.
1478 (add_wild_read): Refactor into...
1479 (reset_active_stores): ... New function, and
1480 (free_read_records): ... New function.
1481 (add_non_frame_wild_read): New function.
1482 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 1483 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
1484 (dse_step5_nospill): Call scan_reads_nospill for instructions
1485 marked as non_frame_wild_read.
637c11bd 1486 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 1487
c49a6962
JM
14882011-06-14 Joseph Myers <joseph@codesourcery.com>
1489
1490 * common/common-target-def.h, common/common-target.def,
1491 common/common-target.h, common/config/default-common.c,
1492 common/config/pa/pa-common.c: New files.
1493 * Makefile.in (common_out_file, common_out_object_file,
1494 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
1495 (OBJS-libcommon-target): Include $(common_out_object_file).
1496 (prefix.o): Update dependencies.
1497 ($(common_out_object_file), common/common-target-hooks-def.h,
1498 s-common-target-hooks-def-h): New.
1499 (s-tm-texi): Also check timestamp on common-target.def.
1500 (build/genhooks.o): Update dependencies.
1501 * config.gcc (common_out_file, target_has_targetm_common): Define.
1502 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
1503 TARGET_ALWAYS_STRIP_DOTDOT.
1504 * configure.ac (common_out_object_file): Define.
1505 (common_out_file, common_out_object_file): Substitute.
1506 (common): Create directory.
1507 * configure: Regenerate.
1508 * doc/tm.texi.in (targetm_common): Document.
1509 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
1510 * doc/tm.texi: Regenerate.
1511 * genhooks.c (hook_array): Also include common/common-target.def.
1512 * prefix.c (tm.h): Don't include.
1513 (common/common-target.h): Include.
1514 (ALWAYS_STRIP_DOTDOT): Don't define.
1515 (update_path): Use targetm_common.always_strip_dotdot instead of
1516 ALWAYS_STRIP_DOTDOT.
1517 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
1518
22c5fa5f
DL
15192011-06-14 David Li <davidxl@google.com>
1520
1521 * passes.c (execute_function_todo): Remove TODO_dump_func.
1522 (execute_one_pass): Remove TODO_dump_func.
1523 (execute_function_dump): New function.
1524 * tree-vrp.c: Remove TODO_dump_func.
1525 * regrename.c: Remove TODO_dump_func.
1526 * fwprop.c: Remove TODO_dump_func.
1527 * tree-into-ssa.c: Remove TODO_dump_func.
1528 * tree-complex.c: Remove TODO_dump_func.
1529 * tracer.c: Remove TODO_dump_func.
1530 * tree-loop-distribution.c: Remove TODO_dump_func.
1531 * postreload-gcse.c: Remove TODO_dump_func.
1532 * postreload.c: Remove TODO_dump_func.
1533 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
1534 * tree-tailcall.c: Remove TODO_dump_func.
1535 * ipa-cp.c: Remove TODO_dump_func.
1536 * final.c: Remove TODO_dump_func.
1537 * tree-emutls.c: Remove TODO_dump_func.
1538 * omp-low.c: Remove TODO_dump_func.
1539 * tree-ssa-dse.c: Remove TODO_dump_func.
1540 * tree-ssa-uncprop.c: Remove TODO_dump_func.
1541 * auto-inc-dec.c: Remove TODO_dump_func.
1542 * reorg.c: Remove TODO_dump_func.
1543 * tree-ssa-copyrename.c: Remove TODO_dump_func.
1544 * tree-ssa-ccp.c: Remove TODO_dump_func.
1545 * compare-elim.c: Remove TODO_dump_func.
1546 * mode-switching.c: Remove TODO_dump_func.
1547 * modulo-sched.c: Remove TODO_dump_func.
1548 * tree-call-cdce.c: Remove TODO_dump_func.
1549 * cse.c: Remove TODO_dump_func.
1550 * web.c: Remove TODO_dump_func.
1551 * tree-stdarg.c: Remove TODO_dump_func.
1552 * lto-streamer-out.c: Remove TODO_dump_func.
1553 * tree-ssa-math-opts.c: Remove TODO_dump_func.
1554 * tree-ssa-dom.c: Remove TODO_dump_func.
1555 * tree-nrv.c: Remove TODO_dump_func.
1556 * loop-init.c: Remove TODO_dump_func.
1557 * gimple-low.c: Remove TODO_dump_func.
1558 * ipa-inline.c: Remove TODO_dump_func.
1559 * tree-ssa-sink.c: Remove TODO_dump_func.
1560 * jump.c: Remove TODO_dump_func.
1561 * ifcvt.c: Remove TODO_dump_func.
1562 * tree-ssa-loop.c: Remove TODO_dump_func.
1563 * recog.c: Remove TODO_dump_func.
1564 * dse.c: Remove TODO_dump_func.
1565 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
1566 * matrix-reorg.c: Remove TODO_dump_func.
1567 * tree-eh.c: Remove TODO_dump_func.
1568 * regmove.c: Remove TODO_dump_func.
1569 * function.c: Remove TODO_dump_func.
1570 * tree-vectorizer.c: Remove TODO_dump_func.
1571 * ipa-split.c: Remove TODO_dump_func.
1572 * gcse.c: Remove TODO_dump_func.
1573 * tree-if-conv.c: Remove TODO_dump_func.
1574 * init-regs.c: Remove TODO_dump_func.
1575 * tree-ssa-phiopt.c: Remove TODO_dump_func.
1576 * implicit-zee.c: Remove TODO_dump_func.
1577 * lower-subreg.c: Remove TODO_dump_func.
1578 * bt-load.c: Remove TODO_dump_func.
1579 * tree-dfa.c: Remove TODO_dump_func.
1580 * except.c: Remove TODO_dump_func.
1581 * emit-rtl.c: Remove TODO_dump_func.
1582 * store-motion.c: Remove TODO_dump_func.
1583 * cfgexpand.c: Remove TODO_dump_func.
1584 * tree-cfgcleanup.c: Remove TODO_dump_func.
1585 * cfgcleanup.c: Remove TODO_dump_func.
1586 * tree-ssa-pre.c: Remove TODO_dump_func.
1587 * tree-sra.c: Remove TODO_dump_func.
1588 * tree-mudflap.c: Remove TODO_dump_func.
1589 * tree-ssa-copy.c: Remove TODO_dump_func.
1590 * cfglayout.c: Remove TODO_dump_func.
1591 * tree-ssa-forwprop.c: Remove TODO_dump_func.
1592 * tree-ssa-dce.c: Remove TODO_dump_func.
1593 * ira.c: Remove TODO_dump_func.
1594 * tree-ssa.c: Remove TODO_dump_func.
1595 * integrate.c: Remove TODO_dump_func.
1596 * tree-optimize.c: Remove TODO_dump_func.
1597 * tree-ssa-phiprop.c: Remove TODO_dump_func.
1598 * tree-object-size.c: Remove TODO_dump_func.
1599 * combine.c: Remove TODO_dump_func.
1600 * bb-reorder.c: Remove TODO_dump_func.
1601 * cprop.c: Remove TODO_dump_func.
1602 * var-tracking.c: Remove TODO_dump_func.
1603 * tree-profile.c: Remove TODO_dump_func.
1604 * tree-vect-generic.c: Remove TODO_dump_func.
1605 * reg-stack.c: Remove TODO_dump_func.
1606 * sched-rgn.c: Remove TODO_dump_func.
1607 * tree-ssa-structalias.c: Remove TODO_dump_func.
1608 * tree-switch-conversion.c: Remove TODO_dump_func.
1609 * tree-cfg.c: Remove TODO_dump_func.
1610 * tree-ssa-reassoc.c: Remove TODO_dump_func.
1611 * combine-stack-adj.c: Remove TODO_dump_func.
1612 * dce.c: Remove TODO_dump_func.
1613 * tree-ssanames.c: Remove TODO_dump_func.
1614 * regcprop.c: Remove TODO_dump_func.
1615
fa465762
L
16162011-06-14 H.J. Lu <hongjiu.lu@intel.com>
1617
1618 PR middle-end/47364
1619 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
1620 and properly handle result not in Pmode.
1621
7d8d16c3
RM
16222011-06-14 Robert Millan <rmh@gnu.org>
1623
1624 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
1625 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
1626 `config/linux.h'.
1627
1628 * config/i386/kfreebsd-gnu64.h: New file.
1629 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
1630 with `i386/kfreebsd-gnu64.h'.
1631
1632 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
1633 (GNU_USER_LINK_EMULATION64): New macros.
1634 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
1635 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
1636 of hardcoding `elf_i386' and `elf_x86_64'.
1637
0ccef3d2
NC
16382011-06-14 Nick Clifton <nickc@redhat.com>
1639
1640 PR target/49403
1641 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
1642
1643 PR target/49402
1644 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
1645
8a76c4a0
JJ
16462011-06-14 Jakub Jelinek <jakub@redhat.com>
1647
1ace6185
JJ
1648 PR fortran/49103
1649 * tree.h (DECL_NONSHAREABLE): Define.
1650 (struct tree_decl_common): Change decl_common_unused to
1651 decl_nonshareable_flag.
1652 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
1653 Ignore vars with DECL_NONSHAREABLE bit set.
1654 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
1655 on stores to automatic aggregate vars.
1656
8a76c4a0
JJ
1657 PR rtl-optimization/49390
1658 Revert:
1659 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
1660
1661 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
1662 MEM_ALIAS_SET.
1663
b4a9343c
ZD
16642011-06-14 Zdenek Dvorak <ook@ucw.cz>
1665 Tom de Vries <tom@codesourcery.com>
1666
1667 PR target/45098
1668 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
1669 Document changed semantics.
1670 (max_stmt_executions, max_stmt_executions_int): Declare.
1671 * tree-data-ref.c (estimated_loop_iterations)
1672 (estimated_loop_iterations_int): Move functions...
1673 * tree-ssa-loop-niter.c (estimated_loop_iterations)
1674 (estimated_loop_iterations_int): here.
1675 (record_estimate): Change nb_iterations_upper_bound and
1676 nb_iterations_estimate semantics.
1677 (max_stmt_executions, max_stmt_executions_int): New function.
1678 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
1679 (max_stmt_executions_tree): this.
1680 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
1681 estimated_loop_iterations_tree.
1682 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
1683 max_stmt_executions_int instead of estimated_loop_iterations_int.
1684 * predict.c (predict_loops): Idem.
1685 * tree-parloops.c (parallelize_loops): Idem.
1686 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
1687 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
1688 (init_omega_for_ddr_1): Idem.
1689 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
1690 (loop_prefetch_arrays): Idem
1691 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
1692 max_stmt_executions instead of estimated_loop_iterations.
1693 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
1694 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
1695 instead of nb_iterations_upper_bound.
1696
d2640c43
JH
16972011-06-13 Jan Hubicka <jh@suse.cz>
1698
1699 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
1700
40873cdd
RH
17012011-06-14 Richard Henderson <rth@redhat.com>
1702
1703 PR debug/48459
1704 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
1705 (based_loc_descr): Assert it's true.
1706 (compute_frame_pointer_to_fb_displacement): Set it, rather than
1707 aborting immediately.
1708
73e8cb24
SL
17092011-06-14 Sanjin Liu <scliu@faraday-tech.com>
1710 Mingfeng Wu <mingfeng@faraday-tech.com>
1711
1712 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
1713
f835f0a7
JH
17142011-06-13 Jan Hubicka <jh@suse.cz>
1715
1716 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
1717
ee6f1177
JH
17182011-06-13 Jan Hubicka <jh@suse.cz>
1719
1720 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
1721 similarly to DECL_COMDAT.
1722 * cgraphunit.c (cgraph_analyze_function): Likewise.
1723 * ipa.c (function_and_variable_visibility): Likewise.
1724
618abf9a
JH
17252011-06-13 Jan Hubicka <jh@suse.cz>
1726
1727 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
1728 BINFO_VIRTUALS when streaming for ltrans unit.
1729
a45fe02f
DE
17302011-06-13 David Edelsohn <dje.gcc@gmail.com>
1731
1732 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
1733 (movdi_internal64): Same.
1734
17352011-06-13 Edmar Wienskoski <edmar@freescale.com>
1736
e641e495 1737 PR target/44618
7d8d16c3
RM
1738 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
1739 a set of similar patterns, where the MATCH_OPERAND for the function
1740 argument is replaced with individual references to hardware registers.
a45fe02f
DE
1741 (save_fpregs_<mode>): Ditto
1742 (restore_gpregs_<mode>): Ditto
1743 (return_and_restore_gpregs_<mode>): Ditto
1744 (return_and_restore_fpregs_<mode>): Ditto
1745 (return_and_restore_fpregs_aix_<mode>): Ditto
1746
8775a18b
JH
17472011-06-13 Jan Hubicka <jh@suse.cz>
1748
1749 * ipa-utils.c (postorder_stack): New structure.
1750 (ipa_reverse_postorder): Handle aliases.
1751
17522011-06-13 Jan Hubicka <jh@suse.cz>
1753
1754 * ipa-inline.c (reset_edge_caches): Walk aliases.
1755 (update_caller_keys): Do not test inlinability of aliases.
1756 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
1757 (do_estimate_growth): Fix typo.
1758
6c69a029
JH
17592011-06-13 Jan Hubicka <jh@suse.cz>
1760
1761 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
1762 (can_remove_node_now_p): ... here; handle same comdat groups.
1763 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
1764 (inline_call): Update use of can_remove_node_now_p.
1765
10c63ba4 17662011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 1767
10c63ba4 1768 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
1769 condition to disallow non-identical memory locations.
1770 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
1771 preference to bit manipulation instructions.
495f8c14 1772
9aa3f5c5
JH
17732011-06-13 Jan Hubicka <jh@suse.cz>
1774
1775 * cgraph.c (cgraph_for_node_thunks_and_aliases,
1776 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
1777 (nonremovable_p): New function.
1778 (cgraph_can_remove_if_no_direct_calls_p): New function.
1779 (used_from_object_file_p): New functoin.
10c63ba4
EB
1780 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
1781 references from aliases.
9aa3f5c5
JH
1782 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
1783 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
1784 (want_inline_function_called_once_p): Use it; accept aliases called
1785 once, too.
9aa3f5c5
JH
1786 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
1787
30cecf17
RR
17882011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1789
1790 PR target/48454
1791 * config/arm/neon.md (vec_pack_trunc): Set the lengths
1792 correctly for the case with Quad vectors.
1793
29f85237
JJ
17942011-06-13 Jakub Jelinek <jakub@redhat.com>
1795 Ira Rosen <ira.rosen@linaro.org>
1796
1797 PR tree-optimization/49352
1798 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
1799 all, make sure loop_use_stmt after the loop is a def stmt of a used
1800 SSA_NAME that is the only one defined inside of the loop. Don't
1801 check for COND_EXPR and GIMPLE_BINARY_RHS.
1802 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
1803 check_reduction is true.
1804
c3e3f090
JH
18052011-06-11 Jan Hubicka <jh@suse.cz>
1806
1807 PR middle-end/49373
1808 * ipa.c (cgraph_externally_visible_p): Check resolution info.
1809
516e0768
JH
18102011-06-11 Jan Hubicka <jh@suse.cz>
1811
1812 PR middle-end/48836
1813 * ipa-inline-transform.c: Include tree-pass.h
1814 (inline_transform): Set TODO_update_ssa_only_virtuals.
1815 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
1816
903b0a8b
JH
18172011-06-11 Jan Hubicka <jh@suse.cz>
1818
1819 PR middle-end/49378
1820 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
1821 aliases and thunks.
1822
44542f8e
IR
18232011-06-12 Ira Rosen <ira.rosen@linaro.org>
1824
1825 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
1826 Take number of iterations to peel into account for equally frequent
1827 misalignment values.
1828
ea89702b
JH
18292011-06-11 Jan Hubicka <jh@suse.cz>
1830
637c11bd
UB
1831 * lto-streamer-out.c (produce_symtab): Stream out the newly
1832 represented aliases.
ea89702b 1833
380ed5ed
JH
18342011-06-11 Jan Hubicka <jh@suse.cz>
1835
637c11bd
UB
1836 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
1837 varying args.
380ed5ed
JH
1838 (ipa_update_after_lto_read): Likewise.
1839 (ipa_write_node_info): Do not sream call_with_var_arguments.
1840 (ipa_read_node_info): Likewise.
1841
00cfc363
JH
18422011-06-11 Jan Hubicka <jh@suse.cz>
1843
1844 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
1845
39e2db00
JH
18462011-06-11 Jan Hubicka <jh@suse.cz>
1847
1848 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
1849 (lto_symtab_resolve_can_prevail_p): Likewise.
1850 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
1851 * cgraph.c (same_body_aliases_done): New global var.
1852 (cgraph_same_body_alias_1): Rename to ...
1853 (cgraph_create_function_alias): ... this one; reorg to new
1854 representation.
1855 (cgraph_same_body_alias): Use cgraph_create_function_alias;
1856 record references when asked to.
1857 (cgraph_add_thunk): Fix formating.
1858 (cgraph_get_node): Kill same body alias code.
1859 (cgraph_node_for_asm): Likewise.
1860 (cgraph_remove_same_body_alias): Remove.
1861 (cgraph_remove_node): Kill same body alias code.
1862 (cgraph_mark_address_taken_node): Mark also the aliased function
1863 as having address taken.
1864 (dump_cgraph_node): Dump same body aliases.
1865 (cgraph_for_node_thunks_and_aliases): Update for new alias
1866 representation.
1867 (cgraph_for_node_and_aliases): Likewise.
1868 * cgraph.h (same_body): Kll pointer.
1869 (same_body_alias): Update comment.
1870 (same_body_aliases_done): Declare.
1871 (cgraph_remove_same_body_alias): Remove declaration.
1872 (cgraph_create_function_alias): Declare.
1873 (cgraph_process_same_body_aliases): Declare.
1874 (cgraph_function_with_gimple_body_p): Check for alias.
1875 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
1876 (cgraph_alias_aliased_node): New function.
1877 (cgraph_function_node): Update for new aliases.
1878 (cgraph_function_or_thunk_node): Likewise.
1879 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
1880 (inline_call): Remove dead aliases.
10c63ba4
EB
1881 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
1882 name hack for same body aliases.
39e2db00
JH
1883 (clone_of_p): Look through aliases.
1884 (verify_cgraph_node): Verify aliases.
1885 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
1886 (cgraph_process_same_body_aliases): New function.
1887 (process_function_and_variable_attributes): Disable weakref warning on
1888 alias.
1889 (cgraph_analyze_functions): Handle aliases.
1890 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
1891 (assemble_thunks): Rename to ...
1892 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
1893 (cgraph_expand_function): Remove alias output code.
1894 (cgraph_output_in_order): Skip aliases.
1895 (cgraph_preserve_function_body_p): Aliases don't need preserving.
1896 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
1897 (ipa_record_reference): Do not assert on alias references.
1898 (ipa_ref_has_aliases_p): New function.
1899 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
1900 (ipa_ref_has_aliases_p): Declare.
1901 * lto-cgraph.c (lto_output_node): Handle aliases.
1902 (input_node): Likewise.
1903 * lto-streamer-out.c (lto_output): Skip aliases.
1904 (produce_symtab): Kill same_body_alias code.
1905 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
1906 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
1907 * ipa-inline.c (update_caller_keys): Walk aliases.
1908 (inline_small_functions): Fix thinko in previous patch.
1909 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
1910 (function_and_variable_visibility): Do not walk same body aliases.
1911 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
1912 (ipa_pta_execute): Use it.
1913
9ee65b55
UB
19142011-06-11 Uros Bizjak <ubizjak@gmail.com>
1915
1916 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
1917 (*vec_dupv2df): Rename from vec_dupv2df.
1918 (vec_dupv2df): New expander.
1919
19202011-06-11 Uros Bizjak <ubizjak@gmail.com>
1921
1922 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
1923
19242011-06-11 Uros Bizjak <ubizjak@gmail.com>
1925
1926 * config/i386/i386.md: Use default value in "isa" attribute.
1927 * config/i386/sse.md: Ditto.
1928 * config/i386/mmx.md: Ditto.
1929
ba68a139
WG
19302011-06-10 Wei Guozhi <carrot@google.com>
1931
1932 PR target/45335
1933 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
1934 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
1935 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
1936 related peephole2.
1937 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
1938 related peephole2.
1939 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
1940 (arm_legitimate_ldrd_p): New prototype.
1941 (arm_output_ldrd): New prototype.
1942 * config/arm/arm.c (arm_check_ldrd_operands): New function.
1943 (arm_legitimate_ldrd_p): New function.
1944 (arm_output_ldrd): New function.
1945
deced1e2
XDL
19462011-06-10 David Li <davidxl@google.com>
1947
1948 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
1949 * passes.c (passr_eq): New function.
1950 (create_pass_tab): New function.
1951 (pass_traverse): New function.
1952 (dump_one_pass): New function.
1953 (dump_pass_list): New function.
1954 (dump_passes): New function.
1955
71fb4f92
JH
19562011-06-10 Jan Hubicka <jh@suse.cz>
1957
1958 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
1959 setting the nothrow flag.
1960 * ipa-reference.c (propagate): Skip aliases.
1961 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
1962 (propagate_nothrow): Skip aliases; do not update cgraph.
1963 (local_pure_const): Do not update cgraph.
1964 * tree-profile.c (tree_profiling): Do fixup_cfg.
1965
41817394
JH
19662011-06-10 Jan Hubicka <jh@suse.cz>
1967
1968 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
1969 (cgraph_local_node_p): ... here; handle aliases.
1970 (has_addr_references_p): Break out from ...;
1971 (cgraph_remove_unreachable_nodes) ... here.
1972
fb37c1de
JH
19732011-06-10 Jan Hubicka <jh@suse.cz>
1974
1975 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
1976 * common.opt (flag_inline_functions_called_once): Do not
1977 initialize to 1.
fb37c1de 1978
0818c24c
JH
19792011-06-10 Jan Hubicka <jh@suse.cz>
1980
1981 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
1982 (ipcp_initialize_node_lattices): Do not deal with aliases;
1983 Do not try to propagate through thunks.
0818c24c
JH
1984 (ipcp_change_tops_to_bottom): Do not deal with aliases.
1985
c8246dbe
JH
19862011-06-10 Jan Hubicka <jh@suse.cz>
1987
9ee65b55
UB
1988 * ipa-prop.c (ipa_write_node_info): Stream jump functions
1989 for indirect calls.
c8246dbe
JH
1990 (ipa_read_node_info): Likewise.
1991
d7e2a1c1
BS
19922011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1993
1994 PR lto/49302
1995 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
1996 (build_and_insert_call): Likewise.
1997 (build_and_insert_ref): New.
1998 (gimple_expand_builtin_pow): Minor cleanup.
1999 (gimple_expand_builtin_cabs): New.
2000 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 2001
749f25d8
JH
20022011-06-10 Jan Hubicka <jh@suse.cz>
2003
2004 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
2005 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
2006 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
2007 (ipcp_propagate_stage): Skip aliases when propagating.
2008 (ipcp_need_redirect_p): Skip aliases.
2009 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
2010 collect_callers_of_node.
2011 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
2012 for aliases.
2013 (ipa_compute_jump_functions): Look through aliases.
2014
8340fbd7
RO
20152011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2016
2017 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
2018
9aaa7e47
HPN
20192011-06-10 Hans-Peter Nilsson <hp@axis.com>
2020
2021 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
2022 Adjust comments.
2023 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
2024
f1724940
JH
20252011-06-10 Jan Hubicka <jh@suse.cz>
2026
2027 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
2028 Update call of gimple_get_virt_method_for_binfo.
2029 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
2030 refuse_thunks parameter.
2031 (gimple_fold_call): Update.
2032 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
2033
a6f834c5
JH
20342011-06-10 Jan Hubicka <jh@suse.cz>
2035
2036 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
2037 (not_all_callers_have_enough_arguments_p): ... this one; turn into
2038 worker for cgraph_for_node_and_aliases.
2039 (convert_callers_for_node): Break out from ...
2040 (convert_callers): ... here.
2041 (modify_function): Use collect_callers_of_node.
2042 (ipa_early_sra): Use cgraph_for_node_and_aliases.
2043
7871eee3
RG
20442011-06-10 Richard Guenther <rguenther@suse.de>
2045
2046 PR tree-optimization/49361
2047 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
2048 when not already in gimple form.
2049
dae957ae
RG
20502011-06-10 Richard Guenther <rguenther@suse.de>
2051
2052 PR bootstrap/49344
2053 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
2054 FOR_EACH_PHI_OR_STMT_USE.
2055
a5b1779f
JH
20562011-06-10 Jan Hubicka <jh@suse.cz>
2057
2058 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
2059 (clone_inlined_nodes): ... here.
2060 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
2061 to real destination prior inlining.
2062 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
2063 can_early_inline_edge_p, want_early_inline_function_p,
2064 want_early_inline_function_p, want_inline_small_function_p,
2065 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
2066 edge_badness, update_all_callee_keys, lookup_recursive_calls,
2067 add_new_edges_to_heap, inline_small_functions, flatten_function,
2068 inline_always_inline_functions, early_inline_small_functions): Use
2069 cgraph_function_or_thunk_node.
2070 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
2071 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
2072 (do_estimate_edge_growth_1): Break out from ...
2073 (do_estimate_growth) ... here; walk aliases.
2074 (inline_generate_summary): Skip aliases.
2075
c1ae3ca5
RG
20762011-06-10 Richard Guenther <rguenther@suse.de>
2077
9ee65b55
UB
2078 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
2079 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 2080
b504a918
PC
20812011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
2082
2083 * tree.h (error_operand_p): Add.
2084 * dbxout.c (dbxout_type_fields): Use the latter.
2085 * c-decl.c (add_stmt): Likewise.
2086 * gimplify.c (omp_add_variable, omp_notice_variable,
2087 gimplify_scan_omp_clauses): Likewise.
2088
3f5ea9dc 20892011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 2090
3f5ea9dc
GJL
2091 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
2092 when a value is actually passed in regs.
2093
b11b0904 20942011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 2095 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
2096
2097 * doc/invoke.texi (SPARC options): Add -mflat.
2098 * config/sparc/sparc.opt: Likewise.
2099 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
2100 (sparc_flat_expand_prologue): Declare.
2101 (sparc_flat_expand_epilogue): Likewise.
2102 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
2103 (CPP_ENDIAN_SPEC): Replace with...
2104 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
2105 (CPP_SPEC): Adjust to above change.
2106 (EXTRA_SPECS): Likewise.
2107 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
2108 (INCOMING_REGNO): Likewise.
2109 (OUTGOING_REGNO): Likewise.
2110 (LOCAL_REGNO): Likewise.
2111 (SETUP_FRAME_ADDRESSES): Likewise.
2112 (FIXED_REGISTERS): Set 0 for %fp.
2113 (CALL_USED_REGISTERS): Likewise.
2114 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
2115 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
2116 (RETURN_ADDR_REGNUM): Define.
2117 (RETURN_ADDR_RTX): Use it.
2118 (INCOMING_RETURN_ADDR_REGNUM): Define.
2119 (INCOMING_RETURN_ADDR_RTX): Use it.
2120 (DWARF_FRAME_RETURN_COLUMN): Likewise.
2121 (EH_RETURN_REGNUM): Define.
2122 (EH_RETURN_STACKADJ_RTX): Use it.
2123 (EH_RETURN_HANDLER_RTX): Delete.
2124 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
2125 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
2126 Delete.
2127 (struct machine_function): Add frame_size, apparent_frame_size,
2128 frame_base_reg, frame_base_offset, n_global_fp_regs and
2129 save_local_in_regs_p fields.
2130 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
2131 sparc_frame_base_offset, sparc_n_global_fp_regs,
2132 sparc_save_local_in_regs_p): New macros.
2133 (sparc_option_override): Error out if -fcall-saved-REG is specified
2134 for Out registers.
2135 (eligible_for_restore_insn): Fix formatting.
2136 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
2137 (eligible_for_sibcall_delay): Likewise.
2138 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
2139 (sparc_legitimate_address_p): Adjust to above change.
2140 (save_global_or_fp_reg_p): New predicate.
2141 (return_addr_reg_needed_p): Likewise.
2142 (save_local_or_in_reg_p): Likewise.
2143 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
2144 (SORR_SAVE, SORR_RESTORE): Delete.
2145 (sorr_pred_t): New typedef.
2146 (sorr_act_t): New enum.
2147 (save_or_restore_regs): Rename to...
2148 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
2149 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
2150 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
2151 mechanism. Add CFI information for double-word saves in 32-bit mode.
2152 (emit_adjust_base_to_offset): New function extracted from...
2153 (emit_save_or_restore_regs): ...this. Rename the rest to...
2154 (emit_save_or_restore_regs_global_fp_regs): ...this.
2155 (emit_save_or_restore_regs_local_in_regs): New function.
2156 (gen_create_flat_frame_[123]): New functions.
2157 (sparc_expand_prologue): Use SIZE local variable. Adjust.
2158 (sparc_flat_expand_prologue): New function.
2159 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
2160 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
2161 (sparc_flat_expand_epilogue): New function.
2162 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
2163 (output_return): Likewise.
2164 (output_sibcall): Likewise.
2165 (sparc_output_mi_thunk): Likewise.
2166 (sparc_frame_pointer_required): Likewise.
2167 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
2168 function optimization.
2169 * config/sparc/sparc.md (flat): New attribute.
2170 (prologue): Add TARGET_FLAT handling.
2171 (save_register_window): Disable if TARGET_FLAT.
2172 (create_flat_frame_[123]): New patterns.
2173 (epilogue): Add TARGET_FLAT handling.
2174 (sibcall_epilogue): Likewise.
2175 (eh_return): New expander.
2176 (eh_return_internal): New insn and splitter.
2177 (return_internal): Add TARGET_FLAT handling.
2178 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
2179 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
2180 (nonlocal_goto): Add TARGET_FLAT handling.
2181 * config/sparc/t-elf: Add -mflat multilib.
2182 * config/sparc/t-leon: Likewise.
2183
fede8efa
JH
21842011-06-10 Jan Hubicka <jh@suse.cz>
2185
2186 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
2187 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
2188 (self_recursive_p): Use cgraph_function_node.
2189 (propagate_pure_const): Likewise.
2190 (propagate_nothrow): Likewise.
2191 * ipa-reference.c (ipa_reference_get_not_read_global): Use
2192 cgraph_function_node.
2193 (propagate_bits): Likewise.
2194 (propagate): Likewise.
2195
0127c76f
RR
21962011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2197 Richard Earnshaw <rearnsha@arm.com>
2198
9ee65b55 2199 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
2200 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
2201 (*thumb2_movdi_vfp): Delete.
2202 (*arm_movdi_vfp_cortexa8): Delete.
2203 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
2204 (*movdi_vfp_cortexa8): Likewise.
2205
f93fe5a0
RG
22062011-06-10 Richard Guenther <rguenther@suse.de>
2207
2208 * stor-layout.c (initialize_sizetypes): Give names to all
2209 sizetype kinds.
2210
f2164f87
IR
22112011-06-10 Ira Rosen <ira.rosen@linaro.org>
2212
2213 PR tree-optimization/49318
2214 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
2215 irrelevant pattern statements.
2216
3f91c962
HPN
22172011-06-10 Hans-Peter Nilsson <hp@axis.com>
2218
3d223145
HPN
2219 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
2220
3f91c962
HPN
2221 PR bootstrap/49354
2222 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
2223 to last assignment.
2224
b125ad45
JH
22252011-06-09 Jan Hubicka <jh@suse.cz>
2226
2227 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
2228 do not recompute reachable flag.
2229 (cgraph_finalize_function, cgraph_analyze_functions): Set
2230 redefined_extern_inline here.
2231
be330ed4
JH
22322011-06-09 Jan Hubicka <jh@suse.cz>
2233
2234 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
2235 (cgraph_only_called_directly_p): ... this one; bring offline.
2236 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
2237 varpool_used_from_object_file_p): Drop names from the declaratoin.
2238 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
2239 collect_callers_of_node): New.
2240 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
2241 (cgraph_edge_recursive_p): Use cgraph_function_node.
2242 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
2243 (cgraph_node_cannot_be_local_p_1): Break out from ...
2244 (cgraph_node_can_be_local_p): ... here; walk aliases.
2245 (cgraph_for_node_thunks_and_aliases): New function.
2246 (cgraph_for_node_and_aliases): New function.
2247 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
2248 (cgraph_make_node_local) ... here; use
2249 cgraph_for_node_thunks_and_aliases.
be330ed4 2250 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
2251 (cgraph_set_nothrow_flag) ... here;
2252 use cgraph_for_node_thunks_and_aliases.
be330ed4 2253 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
2254 (cgraph_set_const_flag) ... here;
2255 use cgraph_for_node_thunks_and_aliases.
be330ed4 2256 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
2257 (cgraph_set_pure_flag) ... here;
2258 use cgraph_for_node_thunks_and_aliases.
be330ed4 2259 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
2260 (cgraph_propagate_frequency) ... here; use
2261 cgraph_for_node_thunks_and_aliases.
be330ed4 2262 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
2263 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
2264 New functions.
be330ed4
JH
2265 (collect_callers_of_node_1, collect_callers_of_node): New functions.
2266
2ea91d6b
HPN
22672011-06-10 Hans-Peter Nilsson <hp@axis.com>
2268
2269 PR rtl-optimization/49154
2270 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
2271 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
2272 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
2273 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
2274 * config/cris/cris.h (cris_register_move_cost): Remove
2275 !TARGET_V32 code. Tweak comments.
2276
9cf4fb5a
JH
22772011-06-09 Jan Hubicka <jh@suse.cz>
2278
2279 * cgraphbuild.c (record_eh_tables): Mark personality function as having
2280 address taken.
2281
6049a4c8
HPN
22822011-06-10 Hans-Peter Nilsson <hp@axis.com>
2283
c577822e 2284 PR rtl-optimization/49154
9ee65b55
UB
2285 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
2286 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 2287
54e1e4f7 2288 PR rtl-optimization/49154
6049a4c8
HPN
2289 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
2290 register classes.
2291 * doc/tm.texi: Regenerate.
2292
3be68b64
KK
22932011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
2294
2295 PR target/49307
2296 * config/sh/sh.md (UNSPEC_CHKADD): New.
2297 (chk_guard_add): New define_insn_and_split.
2298 (symGOT_load): Use chk_guard_add instead of blockage.
2299
bf806a90
KT
23002011-06-09 Kai Tietz <ktietz@redhat.com>
2301
2302 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
2303
d5a9738b
EB
23042011-06-09 Eric Botcazou <ebotcazou@adacore.com>
2305
2306 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
2307
527e82c2
WG
23082011-06-09 Wei Guozhi <carrot@google.com>
2309
2310 PR target/46975
2311 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
2312 (peephole2 for conditional move): Generate 16 bit instructions.
2313
b8bc3a43
UB
23142011-06-09 Uros Bizjak <ubizjak@gmail.com>
2315
2316 * config/i386/i386.md (*movdi_internal_rex64): Merge
2317 alternatives 6 and 8.
2318
4745da6e
DL
23192011-06-09 David Li <davidxl@google.com>
2320
2321 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
2322 * passes.c (passr_eq): New function.
2323 (create_pass_tab): New function.
2324 (pass_traverse): New function.
2325 (dump_one_pass): New function.
2326 (dump_pass_list): New function.
2327 (dump_passes): New function.
2328
bdf67bcb
DL
23292011-06-09 David Li <davidxl@google.com>
2330
2331 * tree-complex.c (tree_lower_complex): Gate cleanup.
2332 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
2333 (execute_optimize_stdarg): Ditto.
2334 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
2335 (execute_cleanup_eh_1): Ditto.
2336 (execute_cleanup_eh): Ditto.
2337 * gcse.c (gate_rtl_pre): Ditto.
2338 (execute_rtl_pre): Ditto.
2339 * except.c (finish_eh_generation): Ditto.
2340 (convert_to_eh_region_ranges): Ditto.
2341 * cprop.c (one_cprop_pass): Ditto.
2342
547fdef8
BS
23432011-06-09 Bernd Schmidt <bernds@codesourcery.com>
2344
2345 PR target/48673
2346 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
2347 in all basic blocks.
2348
10e48e39
RO
23492011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2350
2351 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
2352 (HAVE_ENABLE_EXECUTE_STACK): Define.
2353 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
2354 (HAVE_ENABLE_EXECUTE_STACK): Define.
2355 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2356 (HAVE_ENABLE_EXECUTE_STACK): Define.
2357 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
2358 (ENABLE_EXECUTE_STACK): Remove.
2359 (HAVE_ENABLE_EXECUTE_STACK): Define.
2360 [IN_LIBGCC2]: Don't include <windows.h>.
2361 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2362 (HAVE_ENABLE_EXECUTE_STACK): Define.
2363 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
2364 (HAVE_ENABLE_EXECUTE_STACK): Define.
2365 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
2366 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
2367 (HAVE_ENABLE_EXECUTE_STACK): Define.
2368 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
2369 (HAVE_ENABLE_EXECUTE_STACK): Define.
2370 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
2371 (HAVE_ENABLE_EXECUTE_STACK): Define.
2372 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
2373 (HAVE_ENABLE_EXECUTE_STACK): Define.
2374 * config/alpha/alpha.c (alpha_trampoline_init): Test
2375 HAVE_ENABLE_EXECUTE_STACK.
2376 * config/i386/i386.c (ix86_trampoline_init): Likewise.
2377 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2378 (sparc64_initialize_trampoline): Likewise.
2379 * libgcc2.c [L_enable_execute_stack]: Remove.
2380 * system.h (ENABLE_EXECUTE_STACK): Poison.
2381 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
2382 * doc/tm.texi: Regenerate.
2383 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
2384
8ced31fe
JJ
23852011-06-09 Jakub Jelinek <jakub@redhat.com>
2386
2387 PR middle-end/49308
2388 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
2389 variable. After resetting and rescanning insn continue with previous
2390 statement.
2391
ee610fcd
RO
23922011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2393
2394 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
2395 (gcc_cv_ld_hidden): Likewise.
2396 * configure: Regenerate.
2397 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
2398 (ix86_stack_protect_fail): Mark unused.
2399 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
2400 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
2401 [TARGET_MACHO]: Don't define.
2402 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
2403 (TARGET_STACK_PROTECT_FAIL): Likewise.
2404 (rs6000_stack_protect_fail): Mark unused.
2405 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 2406 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 2407
8f2e22ff
AK
24082011-06-08 Andi Kleen <ak@linux.intel.com>
2409
2410 * varasm.c (get_section): Print location of other conflict
2411 for section conflicts.
2412
815cecbe
AK
24132011-06-08 Andi Kleen <ak@linux.intel.com>
2414
2415 * config/i386/driver-i386.c (host_detect_local_cpu):
2416 Add model 0x2d Intel CPU.
2417
1460ec5c
AK
24182011-06-08 Andi Kleen <ak@linux.intel.com>
2419
2420 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
2421 (globalize_reg): Add decl parameter. Compute location. Pass location
2422 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
2423 * rtl.h (globalize_reg): Update prototype.
2424 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
2425
df17530a
MX
24262011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
2427
2428 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
2429
409fed48
KK
24302011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2431
2432 PR target/49305
2433 * config/sh/predicates.md (general_movsrc_operand): Check
2434 mode for memory with indexed address for QI and HImode.
2435 (general_movdst_operand): Likewise.
2436
87c16a45
NP
24372011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
2438
b8bc3a43 2439 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 2440
49931fcb
AO
24412011-06-08 Alexandre Oliva <aoliva@redhat.com>
2442
2443 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
2444 (num_ssa_operands): Likewise.
2445 (op_iter_init_phiuse): Forward-declare.
2446 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
2447
29494d1f
NC
24482011-06-08 Nick Clifton <nickc@redhat.com>
2449
2450 * doc/invoke.texi (ARM Options): Update description of
2451 -mthumb-interwork.
2452
4ffae7ff
L
24532011-06-08 H.J. Lu <hongjiu.lu@intel.com>
2454
2455 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2456 unknown Intel family 0x6 CPUs.
2457
d9c77712
MJ
24582011-06-08 Martin Jambor <mjambor@suse.cz>
2459
2460 * tree-sra.c (mark_rw_status): Removed.
2461 (analyze_access_subtree): New parameter parent instead of
2462 mark_read and mark_write, propagate from that.
2463
b1def36c
JB
24642011-06-08 Julian Brown <julian@codesourcery.com>
2465
2466 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
2467 for double-precision helper functions in hard-float mode if only
2468 single-precision arithmetic is supported in hardware.
2469
6c8e9fc9
AM
24702011-06-08 Alexander Monakov <amonakov@ispras.ru>
2471
2472 PR rtl-optimization/49303
2473 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
2474 code_motion_path_driver returned 0 or 1.
2475 (sel_region_finish): Clear h_d_i_d.
2476
c2bbcb0d
KK
24772011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
2478
2479 * config/sh/sh.c (prepare_move_operands): Set pic register
2480 appropriately for global and local dynamic tls models even
2481 if flag_pic is unset.
2482
6976ae51
JM
24832011-06-07 Jason Merrill <jason@redhat.com>
2484
2485 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
2486
bb5b1f5e
XDL
24872011-06-07 Xinliang David Li <davidxl@google.com>
2488 * passes.c (enable_disable_pass): Handle assembler name.
2489 (is_pass_explicitly_enabled_or_disabled): Ditto.
2490
91ffe356
RO
24912011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2492
2493 PR tree-optimization/48497
2494 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
2495
06bc3ec7
BS
24962011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2497
2498 PR tree-optimization/46728
2499 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
2500 to use gimple_val_nonnegative_real_p.
2501 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
2502 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 2503
c074d740
L
25042011-06-07 H.J. Lu <hongjiu.lu@intel.com>
2505
2506 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
2507
8973b112
SG
25082011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
2509
2510 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
2511 constant vectors.
2512
67b88453
RG
25132011-06-07 Richard Guenther <rguenther@suse.de>
2514
2515 * stor-layout.c (initialize_sizetypes): Initialize all
2516 sizetypes based on target definitions.
2517 (set_sizetype): Remove.
2518 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
2519 * tree.h (set_sizetype): Remove.
2520
1dcad079
NC
25212011-06-07 Nick Clifton <nickc@redhat.com>
2522
2523 * config.gcc: Unify V850 architecture options and add support for
2524 newer V850 architectures.
2525 * config/v850/t-v850e: Delete.
2526
009db074
RG
25272011-06-07 Richard Guenther <rguenther@suse.de>
2528
2529 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
2530 Call set_sizetype from here.
2531
f373314f
AS
25322011-06-07 Andrew Stubbs <ams@codesourcery.com>
2533
2534 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
2535 (*maddhisi4tb, *maddhisi4tt): New define_insns.
2536
c536876e
AS
25372011-06-07 Bernd Schmidt <bernds@codesourcery.com>
2538 Andrew Stubbs <ams@codesourcery.com>
2539
2540 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
2541 multiplies.
2542 * doc/md.texi (Canonicalization of Instructions): Document widening
2543 multiply canonicalization.
2544
308dc890
JJ
25452011-06-07 Jakub Jelinek <jakub@redhat.com>
2546
2547 PR gcov-profile/49299
b8bc3a43 2548 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 2549
383d9c83
IR
25502011-06-07 Ira Rosen <ira.rosen@linaro.org>
2551
2552 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
2553 a pointer.
2554 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
2555 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
2556 vect_recog_pow_pattern): Likewise.
2557 (vect_pattern_recog_1): Remove declaration.
2558 (widened_name_p): Remove declaration. Add new argument to specify
2559 whether to check that both types are either signed or unsigned.
2560 (vect_recog_widen_mult_pattern): Update documentation. Handle
2561 unsigned patterns and multiplication by constants.
2562 (vect_pattern_recog_1): Update vect_recog_func references. Use
2563 statement information from the statement returned from pattern
2564 detection functions.
2565 (vect_pattern_recog): Update vect_recog_func reference.
2566 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
2567 multiplication by a constant use the type of the other operand.
2568
4de4b0f2
RS
25692011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
2570
2571 PR rtl-optimization/49145
2572 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
2573
a9d24544
JJ
25742011-06-06 Jakub Jelinek <jakub@redhat.com>
2575
99a5e049
JJ
2576 PR debug/49262
2577 * dwarf2out.c (native_encode_initializer): Decrement count in each
2578 iteration.
2579
04902d4c
JJ
2580 PR debug/49294
2581 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
2582 non-MODE_INT modes.
2583
a9d24544
JJ
2584 PR c++/49264
2585 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
2586 if stmt folded into nothing.
b8bc3a43
UB
2587 * tree-inline.c (fold_marked_statements): If a builtin at the end of
2588 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
2589 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
2590 to be NULL. Don't compute count and frequency if new_call is NULL.
2591
47c79d56
DN
25922011-06-04 Diego Novillo <dnovillo@google.com>
2593
2594 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
2595 (cgraph.o): Likewise.
2596 (cgraphunit.o): Likewise.
2597 * cgraphunit.c: Include lto-streamer.h
2598 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
2599 if LTO is enabled.
2600 * lto-streamer-in.c (unpack_value_fields): Call
2601 streamer_hooks.unpack_value_fields if set.
2602 (lto_materialize_tree): For unhandled nodes, first try to
2603 call lto_streamer_hooks.alloc_tree, if it exists.
2604 (lto_input_ts_decl_common_tree_pointers): Move reading of
2605 DECL_INITIAL to lto_streamer_read_tree.
2606 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
2607 (lto_streamer_read_tree): New.
2608 (lto_reader_init): Rename from lto_init_reader.
2609 Move initialization code to lto/lto.c.
2610 * lto-streamer-out.c (pack_value_fields): Call
2611 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
2612 (lto_output_tree_ref): For tree nodes that are not normally indexable,
2613 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 2614 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
2615 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
2616 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
2617 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
2618 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
2619 (lto_streamer_write_tree): New.
2620 (lto_output): Call lto_streamer_init directly.
2621 (lto_writer_init): Remove.
2622 * lto-streamer.c (streamer_hooks): New.
2623 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
2624 instead of lto_preload_common_nodes.
2625 (lto_is_streamable): Move from lto-streamer.h
2626 (lto_streamer_hooks_init): New.
2627 (streamer_hooks): New.
2628 (streamer_hooks_init): New.
2629 * lto-streamer.h (struct output_block): Forward declare.
2630 (struct lto_input_block): Likewise.
2631 (struct data_in): Likewise.
2632 (struct bitpack_d): Likewise.
2633 (struct streamer_hooks): Declare.
2634 (streamer_hooks): Declare.
2635 (lto_streamer_hooks_init): Declare.
2636 (lto_streamer_write_tree): Declare.
2637 (lto_streamer_read_tree): Declare.
2638 (streamer_hooks_init): Declare.
2639 (lto_is_streamable): Move to lto-streamer.c
2640
22afe143
AK
26412011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2642
2643 * longlong.h (smul_ppmm): The resulting register pair contains the
2644 higher order word first.
2645
3906ea1b
BS
26462011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2647
2648 PR tree-optimization/46728
2649 * builtins.c (powi_table): Remove.
2650 (powi_lookup_cost): Remove.
2651 (powi_cost): Remove.
2652 (expand_powi_1): Remove.
2653 (expand_powi): Remove.
2654 (expand_builtin_pow_root): Remove.
2655 (expand_builtin_pow): Remove.
2656 (expand_builtin_powi): Eliminate handling of constant exponent.
2657 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 2658
3598cabd
AO
26592011-06-06 Alexandre Oliva <aoliva@redhat.com>
2660
2661 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
2662
a7a110bb
AO
26632011-06-06 Alexandre Oliva <aoliva@redhat.com>
2664
2665 * dce.c (reset_unmarked_insns_debug_uses): New.
2666 (delete_unmarked_insns): Skip debug insns.
2667 (prescan_insns_for_dce): Likewise.
2668 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
2669 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
2670 active reg can be found.
2671 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
2672 (convert_regs_1): Use it.
2673
6d8402ac
AO
26742011-06-06 Alexandre Oliva <aoliva@redhat.com>
2675
2676 * tree-pretty-print.c (dump_function_header): Add flags.
2677 Don't dump decl_uid with nouid.
2678 * tree-pretty-print.h (dump_function_header): Adjust.
2679 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
2680 * passes.c (pass_init_dump_file): Pass dump_flags on.
2681 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
2682
f75e1f1e
AO
26832011-06-06 Alexandre Oliva <aoliva@redhat.com>
2684
2685 PR bootstrap/49270
2686 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
2687
275311c4
MP
26882011-06-06 Mikael Pettersson <mikpe@it.uu.se>
2689
2690 PR tree-optimization/49243
2691 * calls.c (setjmp_call_p): Also check if fndecl has the
2692 returns_twice attribute.
2693
aa4203e7
RO
26942011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2695
2696 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
2697 -ffast-math etc.
2698
48f9d59a
RH
26992011-06-06 Richard Henderson <rth@redhat.com>
2700 Georg-Johann Lay <avr@gjlay.de>
2701
2702 PR target/42210
2703 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
2704 New predicates.
2705 * config/avr/avr.md ("insv"): New insn expander.
2706 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
2707 "*insv.not.io", "*insv.reg"): New insns.
2708
11494830
HPN
27092011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
2710
2711 PR target/49285
b8bc3a43
UB
2712 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
2713 to nonimmediate_operand from memory_operand for the operand that is to
2714 be forced to memory by the expander. Lose the constraints.
11494830 2715
679e70df
EB
27162011-06-05 Eric Botcazou <ebotcazou@adacore.com>
2717
2718 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
2719 EH return when delayed branches are disabled.
2720
4d3d7f15
UB
27212011-06-05 Uros Bizjak <ubizjak@gmail.com>
2722
2723 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
2724 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
2725 calculation.
2726 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
2727 Simplify MODE_V1DF and MODE_V2SF handling.
2728 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
2729 Simplify MODE_SF handling.
2730
a45c0557
JH
27312011-06-04 Jan Hubicka <jh@suse.cz>
2732
2733 PR tree-optimization/48893
2734 PR tree-optimization/49091
2735 PR tree-optimization/49179
2736 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
2737 Bounds check.
2738
26740835
JH
27392011-06-04 Jan Hubicka <jh@suse.cz>
2740
2741 PR lto/48954
b8bc3a43
UB
2742 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
2743 bitmaps.
26740835 2744
014ab419
JW
27452011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
2746
2747 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
2748
407bcba7
JJ
27492011-06-04 Jakub Jelinek <jakub@redhat.com>
2750
2751 PR target/49281
2752 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
2753 to be strictly smaller than 1 << shiftcount.
2754
e3195c52
JH
27552011-06-04 Jan Hubicka <jh@suse.cz>
2756
2757 PR tree-optimize/48929
2758 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
2759 of empty predicate.
2760
047d33a0
AO
27612011-06-04 Alexandre Oliva <aoliva@redhat.com>
2762
2763 PR debug/48333
2764 * calls.c (emit_call_1): Prefer the __builtin declaration of
2765 builtin functions.
2766
dc587809
DN
27672011-06-03 Diego Novillo <dnovillo@google.com>
2768
2769 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
2770 (lto_input_tree_pointers): Likewise.
2771 * lto-streamer-out.c (pack_value_fields): Likewise.
2772 (lto_output_tree_pointers): Likewise.
2773 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
2774 and OPTIMIZATION_NODE.
2775
58cd1d70
RO
27762011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2777
2778 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
2779 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
2780 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
2781 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
2782 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
2783 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
2784 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
2785 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
2786 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
2787 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
2788 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
2789 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
2790 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
2791 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
2792 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
2793 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
2794 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
2795 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
2796 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
2797 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
2798 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
2799 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
2800 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
2801 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
2802 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
2803 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
2804 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
2805 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
2806 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
2807 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
2808 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
2809 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
2810 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
2811 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
2812 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
2813 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
2814 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
2815 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
2816 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
2817 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
2818 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
2819 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
2820 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
2821 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
2822 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
2823 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
2824 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
2825 * system.h (MD_UNWIND_SUPPORT): Poison.
2826 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
2827 * doc/tm.texi: Regenerate.
2828 * unwind-dw2.c: Include md-unwind-support.h instead of
2829 MD_UNWIND_SUPPORT.
2830 * config/ia64/unwind-ia64.c: Likewise.
2831 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2832
10c63ba4 28332011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
2834
2835 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
2836
1b7a0148
RH
28372011-06-03 Richard Henderson <rth@redhat.com>
2838 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2839
2840 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
2841 (sigill_hdlr): Correct insn, insn size.
2842 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
2843
737346fa
RO
28442011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2845
2846 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
2847 t-slibgcc-dummy.
2848 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
2849 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
2850 * config/mips/t-iris: Remove.
2851 * config/mips/t-irix6: New file.
2852 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
2853
c192cee6
RO
28542011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2855
2856 * Makefile.in (LIB2ADDEHDEP): Remove.
2857 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
2858 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
2859 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
2860 * config/t-darwin (LIB2ADDEHDEP): Remove.
2861 * config/t-freebsd (LIB2ADDEHDEP): Remove.
2862 * config/t-linux (LIB2ADDEHDEP): Remove.
2863
d5828cc7
DN
28642011-06-03 Diego Novillo <dnovillo@google.com>
2865
2866 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
2867 (lto_register_var_decl_in_symtab): Likewise.
2868 (lto_register_function_decl_in_symtab): Likewise.
2869 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 2870 logic to uniquify_nodes.
d5828cc7 2871
ee33b5f0
RO
28722011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2873
2874 * config/alpha/t-osf5: Remove.
2875 * config/alpha/t-osf-pthread: Remove.
2876 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
2877 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
2878
16868d84
JB
28792011-06-03 Julian Brown <julian@codesourcery.com>
2880
2881 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
2882 (strongarm1110): Use strongarm tuning.
4d3d7f15 2883 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
2884 * config/arm/arm.c (arm_strongarm_tune): New.
2885 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2886 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
2887 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
2888 setting, using previous defaults or 1 for Cortex-A5.
2889 (arm_option_override): Set max_insns_skipped from current tuning.
2890
1cec1285
NS
28912011-06-03 Nathan Sidwell <nathan@codesourcery.com>
2892
2893 * doc/install.texi (Options specification): Document --with-specs.
2894
eed55426
RR
28952011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2896
2897 * config/arm/neon.md (orndi3_neon): Actually split it.
2898
d5b6cc25
AO
28992011-06-02 Alexandre Oliva <aoliva@redhat.com>
2900
2901 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
2902 * var-tracking.c (reverse_op): Limite recurse depth to 5.
2903
2ba42841
AO
29042011-06-02 Alexandre Oliva <aoliva@redhat.com>
2905
2906 PR debug/47590
2907 * target.def (delay_sched2, delay_vartrack): New.
2908 * doc/tm.texi.in: Update.
2909 * doc/tm.texi: Rebuild.
2910 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
2911 * var-tracking.c (gate_handle_var_tracking): Likewise.
2912 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
2913 (bfin_flag_var_tracking): Drop.
2914 (output_file_start): Don't save and override flag_var_tracking.
2915 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
2916 (bfin_reorg): Test original variables.
2917 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2918 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
2919 (ia64_flag_var_tracking): Drop.
2920 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2921 (ia64_file_start): Don't save and override flag_var_tracking.
2922 (ia64_override_options_after_change): Ditto
2923 flag_schedule_insns_after_reload.
2924 (ia64_reorg): Test original variables.
2925 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
2926 (picochip_flag_var_tracking): Drop.
2927 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
2928 (picochip_option_override): Don't save and override
2929 flag_schedule_insns_after_reload.
2930 (picochip_asm_file_start): Ditto flag_var_tracking.
2931 (picochip_reorg): Test original variables.
2932 * config/spu/spu.c (spu_flag_var_tracking): Drop.
2933 (TARGET_DELAY_VARTRACK): Define.
2934 (spu_var_tracking): New.
2935 (spu_machine_dependent_reorg): Call it.
2936 (asm_file_start): Don't save and override flag_var_tracking.
2937
a700b5f0
KK
29382011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2939
2940 PR target/49163
2941 * config/sh/predicates.md (general_movsrc_operand): Return 0
2942 for memory and memory subreg of which address is an invalid
2943 indexed address for QI and HImode.
2944 (general_movdst_operand): Likewise.
2945
76015c34
EB
29462011-06-02 Eric Botcazou <ebotcazou@adacore.com>
2947
2948 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
2949 edges only, when there is a non-local label in the function.
2950 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
2951
4e76acd2
UB
29522011-06-02 Uros Bizjak <ubizjak@gmail.com>
2953
2954 * config/i386/constraints.md (Y3): New register constraint.
2955 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
2956 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
2957 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
2958 *sse2_interleave_lowv2df.
2959
288f605f
JB
29602011-06-02 Julian Brown <julian@codesourcery.com>
2961
2962 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
2963 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
2964 (arm_cortex_a5_tune): New.
2965
7ec70105
JB
29662011-06-02 Julian Brown <julian@codesourcery.com>
2967
153668ec
JB
2968 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
2969 * config/arm/arm.c (arm_default_branch_cost): New.
2970 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
2971 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
2972 (arm_fa726_tune): Set branch_cost field using
2973 arm_default_branch_cost.
2974 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
2975 current_tune structure.
2976 * dojump.c (tm_p.h): Include file.
2977
29782011-06-02 Julian Brown <julian@codesourcery.com>
2979
2980 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
2981 tuning.
7ec70105
JB
2982 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
2983 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
2984 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
2985 field.
2986 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
2987 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
2988 (arm_fa726te_tune): Add prefer_constant_pool setting.
2989 (arm_v6t2_tune, arm_cortex_tune): New.
2990 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
2991 prefer_constant_pool setting.
2992
aad61732
UB
29932011-06-02 Uros Bizjak <ubizjak@gmail.com>
2994
4e76acd2
UB
2995 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
2996 switch statement.
aad61732
UB
2997 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
2998 (*movdf_internal) <case 6,7,8>: Ditto.
2999
4e76acd2 3000 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
3001 * config/i386/sse.md (vec_set<mode>_0): Merge with
3002 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
3003 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
3004 *vec_extractv2di_1_sse.
3005 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
3006 and *vec_concatv2di_rex64_sse.
3007
6e588138
SH
30082011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
3009
3010 PR target/48807
3011 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
3012 of cgraph_local_info for null before attempting to use it.
3013
bc6d3f91
EB
30142011-06-02 Eric Botcazou <ebotcazou@adacore.com>
3015
3016 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
3017 (current_function_dynamic_alloc_count): Delete.
3018 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
3019 (expand_builtin_nonlocal_goto): Remove obsolete comment.
3020 (expand_builtin_update_setjmp_buf): Remove dead code.
3021 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
3022 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
3023 support.
3024 * function.c (instantiate_virtual_regs): Likewise.
3025 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
3026 for a block with a single abnormal incoming edge.
3027 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 3028 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
3029 * config/sparc/sparc-protos.h (load_got_register): Declare.
3030 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3031 (load_got_register): Make global.
3032 (sparc_frame_pointer_required): Add 'static'.
3033 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
3034 (sparc_builtin_setjmp_frame_value): New function.
3035 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
3036 (save_stack_nonlocal): New expander.
3037 (restore_stack_nonlocal): Likewise.
3038 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
3039 (nonlocal_goto_internal): New insn.
3040 (goto_handler_and_restore): Delete.
3041 (builtin_setjmp_setup): Likewise.
3042 (do_builtin_setjmp_setup): Likewise.
3043 (setjmp): Likewise.
3044 (builtin_setjmp_receiver): New expander.
3045
69282fee
DL
30462011-06-01 David Li <davidxl@google.com>
3047
3048 PR middle-end/49261
3049 * tree-pretty-print.c (dump_function_header): Format cleanup.
3050
e95873dd
KK
30512011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
3052
3053 PR target/49238
3054 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
3055 needed when original operands are used for msw_skip comparison.
3056
88c15821
JJ
30572011-06-01 Jakub Jelinek <jakub@redhat.com>
3058
3059 PR debug/49250
3060 * var-tracking.c (add_uses, add_stores): Don't call
3061 cselib_subst_to_values on ENTRY_VALUE.
3062
07233947
DN
30632011-06-01 Diego Novillo <dnovillo@google.com>
3064
3065 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
3066 output_record_start with LTO_null instead of output_zero.
3067 (lto_output_ts_binfo_tree_pointers): Likewise.
3068 (lto_output_tree): Likewise.
3069 (output_eh_try_list): Likewise.
3070 (output_eh_region): Likewise.
3071 (output_eh_lp): Likewise.
3072 (output_eh_regions): Likewise.
3073 (output_bb): Likewise.
3074 (output_function): Likewise.
3075 (output_unreferenced_globals): Likewise.
3076 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
3077 instead of NUM_TREE_CODES.
3078 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
3079 (lto_output_int_in_range): Change << to >> when shifting VAL.
3080
4ee3537a
DN
30812011-06-01 Diego Novillo <dnovillo@google.com>
3082
3083 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
3084 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
3085
02972eaf
RS
30862011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3087
3088 PR target/45074
3089 * optabs.h (valid_multiword_target_p): Declare.
3090 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
3091 doing multi-word operations.
3092 * optabs.c (expand_binop): Likewise.
3093 (expand_doubleword_bswap): Likewise.
3094 (expand_absneg_bit): Likewise.
3095 (expand_unop): Likewise.
3096 (expand_copysign_bit): Likewise.
3097 (multiword_target_p): New function.
3098
4d41c2d1
RS
30992011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
3100
3101 PR rtl-optimization/48830
3102 PR rtl-optimization/48808
3103 PR rtl-optimization/48792
3104 * reload.c (push_reload): Check contains_reg_of_mode.
3105 * reload1.c (strip_paradoxical_subreg): New function.
3106 (gen_reload_chain_without_interm_reg_p): Use it to handle
3107 paradoxical subregs.
3108 (emit_output_reload_insns, gen_reload): Likewise.
3109
5f57dccb
DL
31102011-06-01 David Li <davidxl@google.com>
3111
3112 * predict.c : Change pass name
3113 * ipa.c: Ditto.
3114 * dce.c: Ditto.
3115 * tree-profile.c: Ditto.
3116 * except.c: Ditto.
3117
ea6cf778
DL
31182011-06-01 David Li <davidxl@google.com>
3119
3120 * tree-pretty-print.c (dump_function_header): New function.
3121 * final.c (rest_of_clean_state): Use header dumper.
3122 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
3123 * passes.c (pass_init_dump_file): Use header dumper.
3124
ebdc0d4b
JJ
31252011-06-01 Jakub Jelinek <jakub@redhat.com>
3126
eeeb9b49
JJ
3127 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
3128 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
3129 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
3130 New functions.
3131 (mem_loc_descriptor): Use them.
3132
ebdc0d4b
JJ
3133 * var-tracking.c (create_entry_value): New function.
3134 (vt_add_function_parameter): Use it.
3135
0699e415
RO
31362011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3137
3138 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
3139 Include <signal.h>, <ucontext.h>.
3140 (sigill_caught): Define.
3141 (sigill_hdlr): New function.
3142 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
3143 insns can be executed.
aad61732 3144 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
3145 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
3146
ca24c5ad
RO
31472011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3148
3149 * config/t-slibgcc-darwin: Move to ...
aad61732 3150 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
3151 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
3152 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
3153 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 3154 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
3155 Remove i386/t-crtstuff from tmake_file.
3156 (i[34567]86-*-solaris2*): Remove t-svr4,
3157 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
3158 t-slibgcc-dummy.
3159 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
3160 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
3161 sparc/t-crtfm from tmake_file.
3162 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
3163 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
3164 Remove extra_parts.
3165 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
3166 * config/i386/t-nwld (SHLIB_LINK): Remove.
3167 * config/i386/t-rtems-i386: Rename to ...
3168 * config/i386/t-rtems: ... this.
3169 ($(T)crti.o, $(T)crtn.o): Remove.
3170 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
3171 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
3172 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
3173 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
3174 EXTRA_MULTILIB_PARTS): Remove.
3175 * config/sparc/t-sol2-64: Likewise.
3176 * config/sparc/t-sol2: Remove.
3177 * config/sparc/t-crtin: Remove.
3178 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
3179 * config/i386/gmon-sol2.c: Remove.
3180 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
3181 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
3182 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
3183 * config/i386/sol2-gc1.asm: Remove.
3184 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
3185 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
3186 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
3187 * config/t-slibgcc-sld: Remove.
3188
a78d13c3
JJ
31892011-06-01 Jakub Jelinek <jakub@redhat.com>
3190
3191 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
3192 base_type_for_mode with op_mode instead of mode.
3193
572070ef
PB
31942011-06-01 Paul Brook <paul@cpodesourcery.com>
3195
3196 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
3197 Cortex-A15.
3198 * config/arm/arm-tune.md: Regenerate.
3199 * config/arm/arm-tables.opt: Regenerate.
3200 * config/arm/arm.c (FL_DIV): Rename...
3201 (FL_THUMB_DIV): ... to this.
3202 (FL_ARM_DIV): Define.
3203 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
3204 (arm_arch_hwdiv): Remove.
3205 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
3206 (arm_issue_rate): Add cortexr5.
3207 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
3208 __ARM_ARCH_EXT_IDIV__.
3209 (TARGET_IDIV): Define.
3210 (arm_arch_hwdiv): Remove.
3211 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
3212 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
3213 (divsi3, udivsi3): New patterns.
3214 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
3215 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
3216
11026b51
MJ
32172011-06-01 Martin Jambor <mjambor@suse.cz>
3218
3219 * ipa-utils.c (ipa_dfs_info): New field scc_no.
3220 * ipa-utils.c (searchc): Set scc_no.
3221
b6156cf2
MJ
32222011-06-01 Martin Jambor <mjambor@suse.cz>
3223
3224 * ipa-utils.c (searchc_env): New field allow_overwritable.
3225 (searchc): do not ignore edges to overwritable nodes if indicated
3226 by env->allow_overwritable.
3227 (ipa_reduced_postorder): Set env.allow_overwritable.
3228
6807da97
RG
32292011-06-01 Richard Guenther <rguenther@suse.de>
3230
3231 * tree.c (free_lang_data): Do not reset boolean_type_node nor
3232 char_type_node.
3233 * lto-streamer.c (lto_record_common_node): Take node pointer,
3234 do not register types.
3235 (lto_preload_common_nodes): Explicitly skip preloading nodes
3236 that differ between frontends.
3237
66bd20e7 32382011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
3239
3240 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
3241 NON_FLOAT_REGS.
3242
66bd20e7 32432011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
3244
3245 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
3246 parameter value for dump. Dump cost on outermost call only.
3247 (rs6000_memory_move_cost): Dump cost on outermost call only.
3248
7351d8da
JJ
32492011-05-31 Jakub Jelinek <jakub@redhat.com>
3250
ead7c399
JJ
3251 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
3252 DW_OP_GNU_convert ops.
3253
509f4495
JJ
3254 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
3255 cselib_preserve_constants.
3256 (cselib_lookup_1): If cselib_preserve_constants,
3257 a new VALUE is being created for REG and there is a VALUE for the
3258 same register in wider mode, add another loc with lowpart SUBREG of
3259 the wider VALUE.
3260 (cselib_subst_to_values): Handle ENTRY_VALUE.
3261 * var-tracking.c (replace_expr_with_values): Return NULL for
3262 ENTRY_VALUE too.
3263 * dwarf2out.c (convert_descriptor_to_signed): New function.
3264 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
3265 instead of two shifts.
3266 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
3267 the right mode if needed.
3268 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
3269 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
3270 convert_descriptor_to_signed.
3271 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
3272 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
3273
7351d8da
JJ
3274 PR target/48688
3275 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
3276
5cc93ee0
UB
32772011-05-31 Uros Bizjak <ubizjak@gmail.com>
3278
3279 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
3280 of X87MODEI12 and SWI48x instead of SSEMODEI24.
3281 (SWI248x): New mode iterator, rename from X87MODEI.
3282 (X87MODEI): Remove mode iterator.
3283 (X87MODEI12): Ditto.
3284 (SSEMODEI24): Ditto.
3285
f0686e78
AO
32862011-05-31 Alexandre Oliva <aoliva@redhat.com>
3287
3288 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
3289 * doc/invoke.texi: Document max-vartrack-expr-depth.
3290 * var-tracking.c (EXPR_DEPTH): New.
3291 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
3292
f3308413
AO
32932011-05-31 Alexandre Oliva <aoliva@redhat.com>
3294
3295 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
3296 * config/i386/sse.md: Add n to negated FMA pattern names.
3297
28c14a04
AO
32982011-05-31 Alexandre Oliva <aoliva@redhat.com>
3299
3300 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
3301
70efc82d
AO
33022011-05-31 Alexandre Oliva <aoliva@redhat.com>
3303
5cc93ee0 3304 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 3305
6ba5d856
UB
33062011-05-31 Uros Bizjak <ubizjak@gmail.com>
3307
3308 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
3309 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
3310
33112011-05-31 Uros Bizjak <ubizjak@gmail.com>
3312
3313 * config/i386/i386.md (*movtf_internal): Avoid allocating general
3314 registers. Penalize F*r->o alternative to prevent partial memory
3315 stalls. Slightly penalize *roF->*r alternative. Generate SSE
3316 CONST_DOUBLE immediates when optimizing function for size. Do not move
3317 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
3318 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
3319 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
3320 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
3321 alternatives.
3322 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
3323
3324 (fp_register_operand splitters): Use fp_register_operand
3325 constraint. Do not use FP_REG_P in insn condition.
3326 (any_fp_register_operand splitters): Use any_fp_register_operand
3327 constraint. Do not use ANY_FP_REG_P in insn condition.
3328
533c07c5
JH
33292011-05-31 Jan Hubicka <jh@suse.cz>
3330
3331 * cgraph.h (cgraph_inline_failed_t): Give enum a name
3332 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
3333 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
3334 (lto_output_edge): Use output_enum and var_len_unsigned.
3335 (lto_output_varpool_node): Likewise.
3336 (input_overwrite_node): Do not take resolution parameter;
3337 extract it from a bitpack.
3338 (input_node): Do not read resolution; use input_enum and
3339 var_len_unsigned.
3340 (input_varpool_node): Likewise.
3341 (input_edge): Likewise.
3342 (input_cgraph_1): Likewise.
3343
2611db71
RG
33442011-05-31 Richard Guenther <rguenther@suse.de>
3345
3346 * gimple.c (gimple_register_canonical_type): Do not register
3347 any types via gimple_register_type.
3348
b9e57365
JH
33492011-05-31 Jan Hubicka <jh@suse.cz>
3350
3351 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
3352 of thunks.
3353
35979cc2
JJ
33542011-05-31 Jakub Jelinek <jakub@redhat.com>
3355
3356 PR rtl-optimization/49235
3357 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
3358 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
3359
8f7de592
IR
33602011-05-31 Ira Rosen <ira.rosen@linaro.org>
3361
3362 PR tree-optimization/49093
3363 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
3364 data references.
3365
8d8a3bda
DS
33662011-05-31 Dodji Seketeli <dodji@redhat.com>
3367
3368 PR debug/49047
3369 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 3370 for concrete functions containing the code of cloned functions.
8d8a3bda 3371
2e87621c
RG
33722011-05-31 Richard Guenther <rguenther@suse.de>
3373
3374 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
3375 to ...
3376 (forward_propagate_into_comparison_1): ... this.
3377 (forward_propagate_comparison): Rename to ...
3378 (forward_propagate_into_comparison): ... this. Split out
3379 real forward propagation code to ...
3380 (forward_propagate_comparison): ... this.
3381 (forward_propagate_into_gimple_cond): Remove looping.
3382 (forward_propagate_into_cond): Likewise.
3383 (simplify_not_neg_expr): Return whether we have done something.
3384 (simplify_gimple_switch): Likewise.
3385 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
3386 (ssa_forward_propagate_and_combine): ... this. Re-structure
3387 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 3388 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
3389 (pass_forwprop): Adjust.
3390
5a880d5d
ILT
33912011-05-30 Ian Lance Taylor <iant@google.com>
3392
3393 * godump.c (go_format_type): Correct length of name added to
3394 obstack for anonymous field.
3395
5f133038
KK
33962011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
3397
3398 PR target/49186
3399 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
3400 part of the second operand is 0.
3401
b17d5426
UB
34022011-05-30 Uros Bizjak <ubizjak@gmail.com>
3403
3404 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
3405 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
3406 to memory for !TARGET_MEMORY_MISMATCH_STALL.
3407 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 3408 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
3409 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
3410 when optimizing function for size. Do not move CONST_DOUBLEs
3411 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
3412 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
3413 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
3414 check for ANY_FP_REGNO_P instead.
3415 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
3416 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
3417 function for speed.
3418 * config/i386/i386.c (ix86_option_override_internal): Do not
3419 set TARGET_INTEGER_DFMODE_MOVES here.
3420
a0cd843f
L
34212011-05-30 H.J. Lu <hongjiu.lu@intel.com>
3422
3423 PR target/49168
aad61732 3424 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 3425
006a5f38
JJ
34262011-05-30 Jakub Jelinek <jakub@redhat.com>
3427
3428 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
3429 DW_TAG_rvalue_reference_type even for
3430 -gdwarf-4 -fno-debug-types-section.
3431
6e96f98a
BS
34322011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3433
3434 PR tree-optimization/46728
3435 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
3436 (build_and_insert_binop): New.
3437 (gimple_expand_builtin_pow): Reorder args for
3438 build_and_insert_call; use build_and_insert_binop; add more
3439 optimizations for fractional exponents.
b17d5426 3440
4f60111f
NF
34412011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
3442
3443 PR bootstrap/49190
3444
3445 Revert:
3446 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3447
3448 * tree.h (struct tree_identifier): Inherit from tree_typed, not
3449 tree_common.
3450 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3451 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3452 TS_BASE instead of TS_COMMON.
3453 * varasm.c (assemble_name): Remove assert.
3454
3fd7879d
RS
34552011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
3456
3457 * config.gcc: Keep obselete list sorted.
3458
80060f7a
JJ
34592011-05-30 Jakub Jelinek <jakub@redhat.com>
3460 Eric Botcazou <ebotcazou@adacore.com>
3461
3462 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
3463 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
3464 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
3465 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
3466 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
3467
17e99cdb
RG
34682011-05-30 Richard Guenther <rguenther@suse.de>
3469
3470 * gimple.c (gimple_types_compatible_p_1): Compare record
3471 and union type members properly.
3472
42b05b6e
RG
34732011-05-30 Richard Guenther <rguenther@suse.de>
3474
3475 PR tree-optimization/49210
6ba5d856
UB
3476 * ipa-split.c (split_function): Care for the case where the call
3477 result is not trivially convertible to the result holding variable.
42b05b6e 3478
f3321158
RG
34792011-05-30 Richard Guenther <rguenther@suse.de>
3480
3481 PR tree-optimization/49218
3482 * tree-vrp.c (adjust_range_with_scev): Properly check whether
3483 overflow occured.
3484
d12d8efe
RG
34852011-05-30 Richard Guenther <rguenther@suse.de>
3486
3487 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
3488 New function split out from ...
3489 (forward_propagate_into_gimple_cond): ... here. Adjust.
3490 (forward_propagate_into_cond): Likewise.
3491 (forward_propagate_comparison): Also propagate into
3492 comparisons on assignment RHS. Change return value to
3493 behave similar to forward_propagate_into_cond.
3494 (tree_ssa_forward_propagate_single_use_vars): Handle
3495 strict-overflow warnings properly for forward_propagate_comparison.
3496
df33b41f
RO
34972011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3498
3499 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
3500 from plugin linker.
3501 * configure: Regenerate.
3502
69940d4d
IR
35032011-05-30 Ira Rosen <ira.rosen@linaro.org>
3504
3505 PR tree-optimization/49199
3506 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 3507 non-reduction operands are either defined in the loop or by induction.
69940d4d 3508
226c52aa
XDL
35092011-05-29 Xinliang David Li <davidxl@google.com>
3510
3511 * opts-global.c (handle_common_deferred_options): Handle new options.
3512 * passes.c (register_one_dump_file): Call register_pass_name.
3513 (execute_one_pass): Check explicit enable/disable flag.
3514 (passr_hash): New function.
3515 (passr_eq): Ditto.
3516 (register_pass_name): Ditto.
3517 (get_pass_by_name): Ditto.
3518 (pass_hash): Ditto.
3519 (pass_eq): Ditto.
3520 (enable_pass): Ditto.
3521 (disable_pass): Ditto.
3522 (is_pass_explicitly_enabled_or_disabled): Ditto.
3523
491d8eed
UB
35242011-05-29 Uros Bizjak <ubizjak@gmail.com>
3525
3526 * config/i386/i386.md (*movoi_internal_avx): Use
3527 standard_sse_constant_opcode for alternative 0.
3528 (*movti_internal_sse): Ditto.
3529 (*movti_internal_rex64): Use standard_sse_constant_opcode for
3530 alternative 2.
3531 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
3532 sselog1 type moves.
3533 (*movsi_internal): Ditto.
3534 (*movdi_internal): Ditto. Add ssecvt type moves.
3535
eb93b31f
EB
35362011-05-29 Eric Botcazou <ebotcazou@adacore.com>
3537
3538 PR target/48830
3539 * rtlanal.c (simplify_subreg_regno): Adjust comment.
3540
3f831b7d
JJ
35412011-05-29 Jakub Jelinek <jakub@redhat.com>
3542
3543 PR rtl-optimization/49095
3544 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
3545 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
3546
ee3ee488
RS
35472011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
3548
3549 PR target/43995
3550 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
3551 recurse_p argument. Only follow register copies if it is set,
3552 and prevent mips_find_pic_call_symbol from recursing.
3553 (mips_find_pic_call_symbol): Add a recurse_p argument.
3554 Pass it to mips_pic_call_symbol_from_set.
3555 (mips_annotate_pic_calls): Update accordingly.
3556
65f3dedb
RS
35572011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
3558
3559 * emit-rtl.c (try_split): Use a loop to search for
3560 NOTE_INSN_CALL_ARG_LOCATIONs.
3561
61e374ab
RG
35622011-05-29 Richard Guenther <rguenther@suse.de>
3563
3564 PR tree-optimization/49217
3565 * ipa-pure-const.c (propagate_pure_const): Fix typos.
3566
fac009a8
JH
35672011-05-28 Jan Hubicka <jh@suse.cz>
3568
3569 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
3570 length.
3571 (string_slot_free): Remove
3572 (create_output_block): Initialize obstack.
3573 (destroy_output_block): Free obstack.
3574 (lto_string_index): Add PERSISTENT parameter; do not duplicate
3575 the string unless it needs to be added into the hash.
3576 (lto_output_string_with_length): Add persistent attribute;
3577 handle NULL strings.
3578 (lto_output_string): Add PERSISTENT parameter.
3579 (output_string_cst, output_identifier): Simplify.
3580 (lto_output_location_bitpack): Update.
3581 (lto_output_builtin_tree): Update.
3582 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
3583 (lto_output_string, lto_output_string_with_length): Remove
3584 declarations; functions are static now.
fac009a8 3585
fa766006
JH
35862011-05-28 Jan Hubicka <jh@suse.cz>
3587
3588 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
3589 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
3590 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
3591 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
3592 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
3593 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
3594 unpack_ts_decl_with_vis_value_fields,
3595 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
3596 lto_get_builtin_tree): Use enum and variable length i/o.
3597 * basic-block.h (profile_status_d): Add PROFILE_LAST.
3598 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
3599 New functions.
3600 (bp_pack_enum, bp_unpack_enum): New macros.
3601
e092158b
RS
36022011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3603
3604 * genrecog.c: Remove redundant forward declarations.
3605
7ca2afa0
RS
36062011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3607
3608 * config.gcc: Deprecate mips*-*-openbsd*.
3609
a601a53a
RS
36102011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
3611
3612 PR bootstrap/49195
3613 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
3614 for match_op_dup.
3615
fc64b448
AP
36162011-05-27 Andrew Pinski <pinskia@gmail.com>
3617
3618 PR middle-end/48981
3619 * gengtype.c (vec_prefix_type): New function.
3620 (note_def_vec): Use vec_prefix_type and change the length
3621 attribute to be based on the prefix.
3622 * vec.c: Include coretypes.h before vec.h.
3623 (struct vec_prefix): Remove.
3624 (vec_gc_p_reserve): Change the offsetof to sizeof.
3625 (vec_gc_p_reserve_exact): Likewise.
3626 (vec_heap_p_reserve): Likewise.
3627 (vec_heap_p_reserve_exact): Likewise.
3628 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
3629 (vec_stack_p_reserve): Change the offsetof to sizeof.
3630 (vec_stack_p_reserve_exact): Likewise.
3631 * vec.h (struct vec_prefix): New struct definition.
3632 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
3633 (VEC_T_GTY(T,B)): Likewise.
3634 (DEF_VEC_FUNC_P(T)): Use prefix field.
3635 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
3636 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
3637
ba869341
BS
36382011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3639
3640 PR tree-optimization/46728
3641 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
3642 (powi_as_mults): Add gimple_set_location.
3643 (build_and_insert_call): New.
3644 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
3645 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 3646
d296760d
AM
36472011-05-27 Alexander Monakov <amonakov@ispras.ru>
3648
3649 * doc/contrib.texi: Update copyright years.
3650 (Contributors): Add Zdenek Sojka.
3651
38e01f9e
NF
36522011-05-27 Nathan Froyd <froydnj@codesourcery.com>
3653
3654 * c-decl.c (c_push_function_context): Copy the current statement
3655 list stack.
3656 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
3657 (finish_struct): Call building_stmt_list_p instead of checking
3658 cur_stmt_list.
3659 * c-parser.c (c_parser_postfix_expression): Likewise.
3660 * c-typeck.c (c_end_compound_stmt): Likewise.
3661 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
3662 * tree-iterator.c (stmt_list_cache): Change to a VEC.
3663 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
3664 (free_stmt_list): Likewise.
3665 * tree.h (struct tree_statement_list): Include typed_tree instead
3666 of tree_common.
3667 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
3668 as TS_TYPED instead of TS_COMMON.
3669
8950516e 36702011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 3671 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
3672
3673 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
3674 (HAVE_AS_IX86_TLSGDPTL): Define.
3675 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
3676 (HAVE_AS_IX86_TLSLDMPLT): Define.
3677 * configure: Regenerate.
3678 * config.in: Regenerate.
3679 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
3680 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
3681 TARGET_SUN_TLS, use @tlsgdplt or @plt.
3682 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
3683 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
3684 @tlsldmplt or @plt.
3685 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
3686
b0bd15f7
BS
36872011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3688
3689 * sched-int.h (struct _haifa_deps_insn_data): New members cond
3690 and reverse_cond.
3691 (INSN_COND, INSN_REVERSE_COND): New macros.
3692 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
3693 once.
3694 (sched_get_condition_with_rev): Cache the results, and look them up
3695 if possible.
3696 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
3697 are clobbered by the current insn.
3698 * target.def (exposed_pipline): New sched data hook.
3699 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
3700 * doc/tm.texi: Regenerate.
3701
fa65a9cf
BS
37022011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3703
3704 PR tree-optimization/49170
3705 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
3706 sincos or cexp.
b0bd15f7 3707
c2299dfe
RG
37082011-05-27 Richard Guenther <rguenther@suse.de>
3709
3710 PR middle-end/49189
3711 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
3712 of comparisons.
3713
a95b23b4
BS
37142011-05-27 Bernd Schmidt <bernds@codesourcery.com>
3715
3716 * haifa-sched.c (sched_scan_info): Remove.
3717 (schedule_block): Call sched_extend_luids rather than sched_init_luids
3718 with NULL args.
3719 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
3720 Remove functions.
3721 (sched_scan): Remove.
3722 (sched_extend_luids): Renamed from luids_extend_insn and no longer
3723 static. All callers changed.
3724 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
3725 static. All callers changed.
3726 (sched_init_luids): Remove all arguments except the first. All
3727 callers changed. Don't use sched_scan.
3728 (haifa_init_h_i_d): Likewise.
3729 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
3730 manually rather than using sched_init_luids. Likewise with
3731 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
3732 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
3733 rather than sched_init_luids with NULL args.
3734 * sel-sched-ir.c (new_insns): Remove variable.
3735 (sched_scan): New static function, previously in haifa-sched.c. Remove
3736 all arguments but the first two; all callers changed.
3737 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
3738 rather than sched_init_luids.
3739 (sel_init_bbs): Remove second argument. All callers changed.
3740 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
3741 with NULL arguments.
3742 (create_insn_rtx_from_pattern): Likewise.
3743 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
3744 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
3745 (sched_init_insn_luid, sched_extend_luids): Declare.
3746 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
3747 declarations.
3748
f8f972fc
RB
37492011-05-27 Richard Guenther <rguenther@suse.de>
3750
3751 PR middle-end/49177
3752 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
3753 A CMP B ? (T) true : (T) false for non-integral types T again.
3754
51a9ed47
JH
37552011-05-27 Jan Hubicka <jh@suse.cz>
3756
3757 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
3758 so 0 means NULL string.
3759 (lto_output_string_with_length): ... here.
f8f972fc
RB
3760 (lto_output_string, output_string_cst, output_identifier): Update
3761 handling of NULL strings.
51a9ed47
JH
3762 (lto_output_location_bitpack): New function.
3763 (lto_output_location): Use it.
3764 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
3765 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
3766 len values.
3767 * lto-streamer-in.c (string_for_index): Break out from ...; offset
3768 values by 1.
491d8eed 3769 (input_string_internal): ... here;
f8f972fc
RB
3770 (input_string_cst, input_identifier, lto_input_string): Update handling
3771 of NULL strings.
51a9ed47
JH
3772 (lto_input_location_bitpack): New function
3773 (lto_input_location): Use it.
f8f972fc
RB
3774 (unpack_ts_type_common_value_fields): Pack align & alias in var len
3775 values.
51a9ed47
JH
3776 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
3777 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
3778 (bp_pack_value): Sanity check the value range.
3779 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
3780 New functions.
3781 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
3782 New functions.
3783
66bd20e7 37842011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
3785
3786 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
3787 call_arg_location instructions down the floor.
3788
574e418a
VM
37892011-05-26 Vladimir Makarov <vmakarov@redhat.com>
3790
3791 PR rtl-optimization/49154
3792 * ira.c (setup_pressure_classes): Process class without sublcasses
3793 as a candidate for pressure classes.
3794
6a1a787e
RS
37952011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
3796
3797 PR rtl-optimization/48575
3798 * genrecog.c (position_type): New enum.
3799 (position): New structure.
3800 (decision): Use position structure instead of a string.
3801 (root_pos, peep2_insn_pos_list): New variables.
3802 (next_position, compare_positions): New functions.
3803 (new_decision): Use position structures instead of strings.
3804 (maybe_both_true): Likewise.
3805 (change_state): Likewise.
3806 (write_tree): Likewise.
3807 (make_insn_sequence): Likewise.
3808
92e948a8
NF
38092011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3810
3811 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
3812 TS_BASE instead of TS_COMMON.
3813 (find_decls_types_r): Check for TS_TYPED structure before looking at
3814 TREE_TYPE.
3815 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
3816 Add chain field.
3817 (BLOCK_CHAIN): Use new chain field.
3818
66bd20e7 38192011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
3820
3821 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
3822 moves expensive on Power7 also.
3823
1f498652
RG
38242011-05-26 Richard Guenther <rguenther@suse.de>
3825
3826 * fold-const.c (fold_unary_loc): Remove bogus code.
3827
a2fc3e63
NF
38282011-05-26 Nathan Froyd <froydnj@codesourcery.com>
3829
3830 * tree.h (struct tree_identifier): Inherit from tree_typed, not
3831 tree_common.
3832 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
3833 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
3834 TS_BASE instead of TS_COMMON.
3835 * varasm.c (assemble_name): Remove assert.
3836
d11bf18f
BS
38372011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3838
3839 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
3840 substituted first.
3841 * libgcc-std.ver: Delete file.
3842
ac8e1875
RG
38432011-05-26 Richard Guenther <rguenther@suse.de>
3844
3845 PR tree-optimization/48702
3846 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
3847 only when we know the base address is within bounds.
3848 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
3849 assume the base address of TARGET_MEM_REFs is in bounds.
3850
7e32e652
RO
38512011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3852
3853 PR target/49099
3854 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
3855 declaration in TARGET_SOLARIS.
3856
66bd20e7 38572011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
3858
3859 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 3860 The instruction is then expanded explicitly.
43660e0b
HS
3861 (supported_compare): Callable instruction.
3862 (compare): Likewise.
3863
1537737f
JJ
38642011-05-26 Jakub Jelinek <jakub@redhat.com>
3865
3866 PR c++/49165
3867 * gimplify.c (shortcut_cond_r): Don't special case
3868 COND_EXPRs if they have void type on one of their arms.
3869
7b1ac803
BS
38702011-05-26 Bernd Schmidt <bernds@codesourcery.com>
3871
3872 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
3873 to reduce duplication, and to achieve a slightly more logical order
3874 of operations.
3875
1aa9438f
JJ
38762011-05-26 Jakub Jelinek <jakub@redhat.com>
3877
3878 PR tree-optimization/49161
3879 * tree-vrp.c (struct case_info): New type.
3880 (compare_case_labels): Sort case_info structs instead of
3881 trees, and not primarily by CASE_LABEL uids but by
3882 label_for_block indexes.
3883 (find_switch_asserts): Put case labels into struct case_info
3884 array instead of TREE_VEC, adjust sorting, compare label_for_block
3885 values instead of CASE_LABELs.
3886
50fed7bf
RR
38872011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3888
3889 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
3890 ("orndi3_neon"): Likewise.
3891 ("bic<mode>3_neon"): Likewise.
3892
48df3fa6
IR
38932011-05-26 Ira Rosen <ira.rosen@linaro.org>
3894
3895 PR tree-optimization/49038
3896 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
3897 Ensure at least one epilogue iteration if required by data
3898 accesses with gaps.
3899 * tree-vectorizer.h (struct _loop_vec_info): Add new field
3900 to mark loops that require peeling for gaps.
3901 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
3902 (vect_get_known_peeling_cost): Take peeling for gaps into
3903 account.
3904 (vect_transform_loop): Generate epilogue if required by data
3905 access with gaps.
3906 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
3907 loop as requiring an epilogue if there are gaps in the end of
3908 the strided group.
3909
53febcba
ILT
39102011-05-25 Ian Lance Taylor <iant@google.com>
3911
3912 * godump.c (go_format_type): Output the first field with a usable
3913 Go type, if any.
3914
dbbc4d4c
ILT
39152011-05-25 Ian Lance Taylor <iant@google.com>
3916
3917 * godump.c (go_format_type): Check for invalid type names, pointer
3918 target types, and struct field types.
3919
f03a5402
JM
39202011-05-25 Jason Merrill <jason@redhat.com>
3921
3922 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
3923
c497c412
UB
39242011-05-25 Uros Bizjak <ubizjak@gmail.com>
3925
3926 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
3927
e470affe
L
39282011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3929
3930 * config/i386/i386.md (*movqi_extv_1)): Put back
3931 "register_operand" check in "type" calculation.
3932 (*movqi_extzv_2): Likewise.
3933
6c81b2bc
L
39342011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3935
c497c412 3936 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 3937
0c007eb2
BS
39382011-05-25 Bernd Schmidt <bernds@codesourcery.com>
3939
3940 PR bootstrap/49160
3941 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
3942 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
3943 __divxc3, __divtc3): Wrap definitions in #ifndef.
3944
521ca78e
L
39452011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3946
3947 PR target/49142
3948 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
3949 "register_operand" check and replace q_regs_operand with
3950 QIreg_operand in "type" calculation.
3951 (*movqi_extv_1): Likewise.
3952 (*movqi_extzv_2_rex64): Likewise.
3953 (*movqi_extzv_2): Likewise.
3954
3955 * config/i386/predicates.md (QIreg_operand): New.
3956
29f8b844
RG
39572011-05-25 Richard Guenther <rguenther@suse.de>
3958
3959 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
3960 type-based offset disambiguation, streamline MEM_REF and
3961 TARGET_MEM_REF handling.
3962
74838de3
L
39632011-05-25 H.J. Lu <hongjiu.lu@intel.com>
3964
3965 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
3966 (bdesc_special_args): Add pause intrinsic.
3967
3968 * config/i386/i386.md (UNSPEC_PAUSE): New.
3969 (pause): Likewise.
3970 (*pause): Likewise.
3971 * config/i386/ia32intrin.h (__pause): Likewise.
3972
3973 * doc/extend.texi (X86 Built-in Functions): Add documentation for
3974 pause intrinsic.
3975
d24ad7d6
BS
39762011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3977
3978 PR tree-optimization/46728
3979 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
3980 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 3981
d9f8303f
NF
39822011-05-25 Nathan Froyd <froydnj@codesourcery.com>
3983
3984 * tree.h (struct tree_exp): Inherit from struct tree_typed.
3985 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
3986 instead of TS_COMMON.
3987
cdbf4541
BS
39882011-05-25 Bernd Schmidt <bernds@codesourcery.com>
3989
3990 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
3991 LIBGCC2_GNU_PREFIX is defined.
3992 (__N): New macro.
3993 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
3994 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
3995 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
3996 __clz_tab): Define using __N.
3997 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
3998 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
3999 * target.def (libfunc_gnu_prefix): New hook.
4000 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
4001 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
4002 * doc/tm.texi: Regenerate.
4003 * system.h (LIBGCC2_GNU_PREFIX): Poison.
4004 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
4005 account.
4006 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
4007 (init_optabs): Likewise for the bswap libfuncs.
4008 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
4009 and divide.
4010 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
4011 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
4012 * libgcc-std.ver: Remove.
4013 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
4014 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
4015 libgcc-std.ver.
4016 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4017 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
4018 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
4019 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
4020 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
4021 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4022 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
4023 * config/fixed-bit.h (FIXED_OP): Define differently depending on
4024 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
4025 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
4026
f242c0a5
JH
40272011-05-25 Jan Hubicka <jh@suse.cz>
4028
4029 * lto-streamer-out.c (output_record_start): Use lto_output_enum
4030 (lto_output_tree): Use output_record_start.
4031 * lto-streamer-in.c (input_record_start): Use lto_input_enum
4032 (lto_get_pickled_tree): Use input_record_start.
4033 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
4034 (lto_value_range_error): New function.
4035 * lto-streamer.h (lto_value_range_error): Declare.
4036 (lto_output_int_in_range, lto_input_int_in_range): New functions.
4037 (lto_output_enum, lto_input_enum): New macros.
4038
a11e0df4
EB
40392011-05-25 Eric Botcazou <ebotcazou@adacore.com>
4040
4041 * common.opt (flag_stack_usage_info): New variable.
4042 (-Wstack-usage): New option.
4043 * doc/invoke.texi (Warning options): Document -Wstack-usage.
4044 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
4045 <OPT_fstack_usage>: Likewise.
4046 * toplev.c (output_stack_usage): Handle -Wstack-usage.
4047 * calls.c (expand_call): Test flag_stack_usage_info variable instead
4048 of flag_stack_usage.
4049 (emit_library_call_value_1): Likewise.
4050 * explow.c (allocate_dynamic_stack_space): Likewise.
4051 * function.c (instantiate_virtual_regs ): Likewise.
4052 (prepare_function_start): Likewise.
4053 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
4054 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
4055 * config/arm/arm.c (arm_expand_prologue): Likewise.
4056 (thumb1_expand_prologue): Likewise.
4057 * config/avr/avr.c (expand_prologue): Likewise.
4058 * config/i386/i386.c (ix86_expand_prologue): Likewise.
4059 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4060 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
4061 * config/mips/mips.c (mips_expand_prologue): Likewise.
4062 * config/pa/pa.c (hppa_expand_prologue): Likewise.
4063 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4064 * config/s390/s390.c (s390_emit_prologue): Likewise.
4065 * config/sh/sh.c (sh_expand_prologue): Likewise.
4066 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4067 * config/spu/spu.c (spu_expand_prologue): Likewise.
4068
e7cfe241
RG
40692011-05-25 Richard Guenther <rguenther@suse.de>
4070
4071 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
4072 (gimple_canonical_types_compatible_p): Likewise.
4073
c5235f4c
JH
40742011-05-25 Jan Hubicka <jh@suse.cz>
4075
4076 PR middle-end/49062
4077 * ipa.c (function_and_variable_visibility): Only add to same
4078 comdat group list if DECL_ONE_ONLY.
4079
8242a0f6
AB
40802011-05-25 Andrey Belevantsev <abel@ispras.ru>
4081
4082 PR rtl-optimization/49014
4083 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
4084
642a011d
JJ
40852011-05-25 Jakub Jelinek <jakub@redhat.com>
4086
4087 PR target/49128
4088 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4089
30a435d8
VM
40902011-05-24 Vladimir Makarov <vmakarov@redhat.com>
4091
4092 PR rtl-optimization/48757
4093 * ira-build.c (loop_with_eh_edge_p): Rename to
4094 loop_with_complex_edge_p, check edges on complexity, make function
4095 conditional.
4096 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
4097 conditional.
4098
24d1bbc7
EB
40992011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4100
4101 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
4102 force flag_ira_share_save_slots to 0.
4103
65773087
EB
41042011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4105
4106 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
4107 (vt_initialize): Set PROLOGUE_BB unconditionally.
4108 Add block comment about CFA_BASE_RTX machinery.
4109 Reset FP_CFA_OFFSET to -1 on all invalid paths.
4110 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
4111
4e26ba90
NP
41122011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
4113
4114 PR objc/48187
4115 * c-parser.c (c_parser_objc_class_instance_variables): More robust
4116 parsing of syntax error in ObjC instance variable lists. In
4117 particular, avoid an infinite loop if there is a stray ']'.
4118 Updated error message.
4119
936fd13c
ILT
41202011-05-24 Ian Lance Taylor <iant@google.com>
4121
4122 * godump.c (go_define): Don't accept a string immediately after
4123 another operand.
4124
f17333e3
ILT
41252011-05-24 Ian Lance Taylor <iant@google.com>
4126
4127 * godump.c (struct godump_container): Add invalid_hash field.
4128 (go_format_type): Return false if type is found in invalid_hash.
4129 (go_output_typedef): Add invalid type to invalid_hash.
4130 (go_finish): Create and delete invalid_hash.
4131
d24ad7d6 41322011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 4133
78be79d5
BS
4134 PR tree-optimization/46728
4135 * tree-ssa-math-opts.c (powi_table): New.
4136 (powi_lookup_cost): New.
4137 (powi_cost): New.
4138 (powi_as_mults_1): New.
4139 (powi_as_mults): New.
4140 (gimple_expand_builtin_powi): New.
4141 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
4142 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 4143
caee412b
RO
41442011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4145
4146 PR target/3746
4147 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
4148 mips-tdump native.
4149 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
4150 * mips-tdump.c: Likewise.
4151
5eed4f27
L
41522011-05-24 H.J. Lu <hongjiu.lu@intel.com>
4153
4154 PR target/49128
4155 * config/i386/driver-i386.c (host_detect_local_cpu): Always
4156 add -mno-XXX. Handle FMA.
4157
8c5fdaae
VM
41582011-05-24 Vladimir Makarov <vmakarov@redhat.com>
4159
4160 PR rtl-optimization/48633
4161 * ira-build.c (loop_with_eh_edge_p): New function.
4162 (mark_loops_for_removal): Use it.
4163
41642011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
4165
4166 PR rtl-optimization/48971
4167 * ira.c (setup_pressure_classes): Don't check register move cost
4168 for classes with one registers. Don't add pressure class if there
4169 is a pressure class with the same available hard registers.
4170 Check contains_reg_of_mode. Fix a typo in collecting
4171 temp_hard_regset. Ignore hard registers not belonging to a class.
4172
df1f7315
UB
41732011-05-24 Uros Bizjak <ubizjak@gmail.com>
4174
4175 PR target/49133
4176 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
4177
ee0cb37c
EB
41782011-05-24 Eric Botcazou <ebotcazou@adacore.com>
4179 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4180
4181 PR gcov-profile/48845
4182 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
4183
6a20ce76
RG
41842011-05-24 Richard Guenther <rguenther@suse.de>
4185
4186 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
4187 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
4188 (gimple_types_compatible_p_1): Adjust.
4189 (iterative_hash_canonical_type): Do not bother about complete vs.
4190 incomplete types.
4191 (gimple_canonical_types_compatible_p): Likewise.
4192
2fcb858c
RO
41932011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4194
4195 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
4196
96d91dcf
RG
41972011-05-24 Richard Guenther <rguenther@suse.de>
4198
4199 PR bootstrap/49078
4200 * gimple.c (gimple_register_canonical_type): Revert
4201 previous change.
4202 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
4203 does not for a tree for the case where it matters. Cache
4204 pointer-type alias-sets.
4205
1ed1641d
JM
42062011-05-24 Joseph Myers <joseph@codesourcery.com>
4207
4208 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
4209 (OBJS): Remove options.o, opts-common.o and prefix.o.
4210 (OBJS-libcommon-target): New.
4211 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
4212 (BACKEND): Include libcommon-target.a.
4213 (MOSTLYCLEANFILES): Include libcommon-target.a.
4214 (libcommon-target.a): New.
4215 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
4216 prefix.o.
4217
57dfdff0
JM
42182011-05-23 Joseph Myers <joseph@codesourcery.com>
4219
4220 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
4221 parts of output shared with the driver.
4222 * optc-gen.awk: Don't generate parts of output not shared with the
4223 driver.
4224 * opth-gen.awk: Remove GCC_DRIVER conditionals.
4225 * doc/options.texi (SourcerInclude): Mention options-save.c.
4226 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
4227 (OBJS): Add options-save.o.
4228 (options-save.c, options-save.o): New.
4229 (options.o): Update dependencies.
4230 (gcc-options.o): Remove.
4231 (mostlyclean): Remove options-save.c.
4232
0e0d82a7
JJ
42332011-05-23 Jakub Jelinek <jakub@redhat.com>
4234
9166988f
JJ
4235 PR debug/49032
4236 * dbxout.c: Include cgraph.h.
4237 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
4238 and without value expr, return NULL if no varpool node exists for
4239 it or if it is not needed.
4240 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
4241
0e0d82a7
JJ
4242 PR c/49120
4243 * c-decl.c (start_decl): Convert expr to void_type_node.
4244
65712d5c
RS
42452011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
4246
4247 PR rtl-optimization/48826
4248 * emit-rtl.c (try_split): When splitting a call that is followed
4249 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
4250
9025085e
JJ
42512011-05-23 Jakub Jelinek <jakub@redhat.com>
4252
4253 * cfgexpand.c (expand_debug_expr): For unused non-addressable
4254 parameters passed in memory prefer using DECL_INCOMING_RTL over
4255 the pseudos it will be copied into.
4256
34a061be
L
42572011-05-23 H.J. Lu <hongjiu.lu@intel.com>
4258
4259 PR target/47315
4260 * config/i386/i386.c (ix86_option_override_internal): Save the
4261 initial options after checking vzeroupper.
4262
c375a3a4
DL
42632011-05-23 David Li <davidxl@google.com>
4264
4265 PR tree-optimization/48988
4266 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
4267 Initialize has_valid_pred for each pred chain.
4268
e1caba18
RG
42692011-05-23 Richard Guenther <rguenther@suse.de>
4270
4271 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
4272 (iterative_hash_gimple_type): Always hash type names.
4273
dde05067
NF
42742011-05-23 Nathan Froyd <froydnj@codesourcery.com>
4275
4276 * c-typeck.c (build_function_call_vec): Tweak call to
4277 check_function_arguments.
4278
094f6ab3
RG
42792011-05-23 Richard Guenther <rguenther@suse.de>
4280
4281 PR tree-optimization/49115
4282 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
4283 is not necessarily carried out, do not claim it kills the ref.
4284 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
4285
9a9822e1
RG
42862011-05-23 Richard Guenther <rguenther@suse.de>
4287
4288 PR middle-end/15419
4289 * builtins.c (fold_builtin_memory_op): Be less restrictive about
4290 what pointer types we accept for folding.
4291
c8028650
RO
42922011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4293
4294 * gthr-gnat.c: Remove.
4295 * gthr-gnat.h: Remove.
4296 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
4297 * config/t-freebsd (LIB2ADDEH): Likewise.
4298 * config/t-linux (LIB2ADDEH): Likewise.
4299 * config/t-sol2 (LIB2ADDEH): Likewise.
4300 * config/ia64/t-vms (LIB2ADDEH): Likewise.
4301 * configure.ac (target_thread_file): Remove gnat handling.
4302 * configure: Regenerate.
4303 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
4304
15882fe9
TG
43052011-05-23 Tristan Gingold <gingold@adacore.com>
4306 Eric Botcazou <ebotcazou@adacore.com>
4307
4308 * gcov.c (create_file_names): If no object directory is specified,
4309 keep the directory of the file.
4310
da90c957
RO
43112011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4312
4313 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
4314 * configure: Regenerate.
4315
7bba408b
JJ
43162011-05-23 Jakub Jelinek <jakub@redhat.com>
4317
4318 PR middle-end/48973
4319 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
4320 failed and the comparison has a single bit signed type, use
4321 constm1_rtx instead of const1_rtx for true value.
4322 (do_store_flag): If ops->type is single bit signed type, disable
4323 signel bit test optimization and pass -1 instead of 1 as last
4324 parameter to emit_store_flag_force.
4325
bc69f7ff
TV
43262011-05-23 Tom de Vries <tom@codesourcery.com>
4327
4328 PR target/45098
4329 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
4330 function.
4331 (infer_loop_bounds_from_undefined): Use new function.
4332
29cedf8e
RS
43332011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
4334
4335 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
4336 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
4337 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
4338 and -O0 otherwise.
4339 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
4340
afe8b6ec
EB
43412011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4342
4343 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
4344 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
4345 returns true.
4346
872dab53
RS
43472011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
4348
4349 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
4350
145f6c5b
EB
43512011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4352
4353 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
4354 UNSPEC_MOVE_PIC pattern.
4355
8ac79835
EB
43562011-05-22 Eric Botcazou <ebotcazou@adacore.com>
4357
4358 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
4359 (sparc-*-rtems*): Likewise.
4360 (sparc64-*-elf*): Likewise.
4361 (sparc64-*-rtems*): Likewise.
4362 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
4363 * config/sparc/t-crtin: New file.
4364 * config/sparc/t-sol2 (crti.o): Delete rule.
4365 (crtn.o): Likewise.
4366 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
4367 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
4368 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
4369 (ENDFILE_SPEC): Add crtn.o.
4370
5fb43dd8
TV
43712011-05-22 Tom de Vries <tom@codesourcery.com>
4372
4373 PR middle-end/48689
4374 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
4375 CODE_CONTAINS_STRUCT (TS_COMMON).
4376
ccb1b17b
JJ
43772011-05-22 Jakub Jelinek <jakub@redhat.com>
4378
4379 PR middle-end/49029
4380 * expmed.c (extract_fixed_bit_field): Test whether target can be used
4381 only after deciding which mode to use.
4382
50ad7db2
TV
43832011-05-22 Tom de Vries <tom@codesourcery.com>
4384
4385 PR target/45098
dc0a3366 4386 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
4387 for call to get_shiftadd_cost.
4388
ef230b38
UB
43892011-05-22 Uros Bizjak <ubizjak@gmail.com>
4390
4391 PR target/49104
4392 * config/i386/cpuid.h (bit_MMXEXT): New define.
4393
15f072f9
NC
43942011-05-22 Nick Clifton <nickc@redhat.com>
4395
4396 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
4397 initialisation of non-existant args[2] element. Use args[] array
4398 not arg[] array to pass arguments to build_function_type_list.
4399
e38fdc94
IR
44002011-05-22 Ira Rosen <ira.rosen@linaro.org>
4401
4402 PR tree-optimization/49087
ef230b38 4403 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 4404
5b018c65
JM
44052011-05-21 Jason Merrill <jason@redhat.com>
4406
4407 PR c++/49092
4408 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
4409 static storage duration.
4410
abd9a770
EB
44112011-05-21 Eric Botcazou <ebotcazou@adacore.com>
4412
4413 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
4414 frame pointer.
4415
bd9a3248
EB
44162011-05-21 Eric Botcazou <ebotcazou@adacore.com>
4417
4418 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
4419 false if there are call-saved registers here...
4420 (sparc_can_use_return_insn_p): ...but here instead.
4421 (save_or_restore_regs): Fix thinko.
4422 (sparc_expand_prologue): Use current_function_is_leaf.
4423 (sparc_frame_pointer_required): Likewise.
4424
a5dfec9a
NC
44252011-05-21 Nick Clifton <nickc@redhat.com>
4426
4427 PR target/49098
4428 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
4429
555c3771
NP
44302011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
4431
4432 * gengtype.c (walk_type): Implemented "atomic" GTY option.
4433 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
4434
86fa5de4
JM
44352011-05-21 Joseph Myers <joseph@codesourcery.com>
4436
4437 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
4438 * optc-gen.awk: Move common code to opt-read.awk.
4439 * opth-gen.awk: Likewise.
ef230b38 4440 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 4441
bce33ab2
NF
44422011-05-20 Nathan Froyd <froydnj@codesourcery.com>
4443
4444 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
4445
e6450c11
TV
44462011-05-20 Tom de Vries <tom@codesourcery.com>
4447
4448 PR target/45098
4449 * tree-ssa-loop-ivopts.c: Include expmed.h.
4450 (get_shiftadd_cost): New function.
4451 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
4452
0e8b84ec
JJ
44532011-05-20 Jakub Jelinek <jakub@redhat.com>
4454
4455 PR bootstrap/49086
4456 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
4457 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
4458
946bdf67
JM
44592011-05-20 Joseph Myers <joseph@codesourcery.com>
4460
4461 * Makefile.in: Update comment referring to $(OBJS-common).
4462
c53aafdf
ILT
44632011-05-20 Ian Lance Taylor <iant@google.com>
4464
4465 * godump.c (go_output_typedef): Put enum constants in the macro
4466 hash table to avoid duplicate Go const definitions.
4467
2691e6d7
JM
44682011-05-20 Joseph Myers <joseph@codesourcery.com>
4469
4470 * Makefile.in (LIBDEPS): Add libcommon.a.
4471 (LIBS): Likewise.
4472 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
4473 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
4474 pretty-print.o and version.o.
4475 (OBJS-libcommon): New.
4476 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
4477 (BACKEND): Add libcommon.a.
4478 (MOSTLYCLEANFILES): Likewise.
4479 (libcommon.a): New.
4480 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
4481 (cpp$(exeext)): Likewise.
4482 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
4483 pretty-print.o and input.o.
4484 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
4485 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
4486 (errors.o): Remove.
4487 (mips-tfile): Don't explicitly use version.o.
4488 (mips-tdump): Likewise.
4489 (gcov.o): Depend on $(DIAGNOSTIC_H).
4490 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
4491 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
4492 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
4493 * gcov-dump.c: Include intl.h and diagnostic.h.
4494 (main): Initialize diagnostics.
4495 * gcov.c: Include diagnostic.h.
4496 (fnotice): Remove.
4497 (main): Initialize diagnostics.
4498 * lto-wrapper.c: Include diagnostic.h.
4499 (main): Initialize diagnostics.
4500
252b3e8c
MM
45012011-05-20 Michael Matz <matz@suse.de>
4502
4503 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
4504
2ee36ba6
MM
45052011-05-20 Michael Matz <matz@suse.de>
4506 Richard Guenther <rguenther@suse.de>
4507
4508 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
4509 use lto_streamer_cache_append directly instead of returning a VEC.
4510 (preload_common_node): Remove.
4511 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
4512 track seen nodes.
4513 (lto_streamer_cache_create): Call lto_preload_common_nodes.
4514
90ff582f
RG
45152011-05-20 Richard Guenther <rguenther@suse.de>
4516
4517 PR tree-optimization/49079
4518 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
4519 MEM_REFs correctly for the trailing array access detection.
4520 Special case constants the same way as decls for overall size
4521 constraining.
4522
3cda91d8
UB
45232011-05-20 Uros Bizjak <ubizjak@gmail.com>
4524
4525 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
4526 argument expansion.
4527
6c66f733
JJ
45282011-05-20 Jakub Jelinek <jakub@redhat.com>
4529
4530 PR tree-optimization/49073
3cda91d8
UB
4531 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
4532 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
4533 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
4534
0ea80a16
RG
45352011-05-20 Richard Guenther <rguenther@suse.de>
4536
4537 PR middle-end/48849
4538 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
4539 of pointer types the same way the middle-end does.
4540
fb291a1e
RG
45412011-05-20 Richard Guenther <rguenther@suse.de>
4542
3cda91d8
UB
4543 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
4544 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 4545
37cb25ed
QN
45462011-05-19 Quentin Neill <quentin.neill@amd.com>
4547
4548 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
4549 (fma4_fmaddsub): Likewise
4550
a30726a4
JH
45512011-05-19 Jan Hubicka <jh@suse.cz>
4552
4553 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
4554 (GIMPLE_TYPE_PAIR_SIZE): New macro.
4555 (type_pair_cache): New static var.
4556 (lookup_type_pair): Use fixed sized custom hash; make inline.
4557 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
4558 calls of lookup_type_pair.
4559 (print_gimple_types_stats): Remove cache stats.
4560 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
4561 and gtc_ob.
4562
0955cf61
UB
45632011-05-19 Uros Bizjak <ubizjak@gmail.com>
4564
4565 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
4566 when TARGET_RDRND is active.
4567 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
4568 Generate dummy SImode target register when target is NULL.
4569
12d844c8
JM
45702011-05-19 Joseph Myers <joseph@codesourcery.com>
4571
4572 * config/arm/arm-fpus.def: New.
4573 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
4574 arm-fpus.def.
4575 * config/arm/arm-tables.opt: Regenerate.
4576 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
4577 (arm_option_override): Don't decode FPU name to string here.
4578 * config/arm/arm.opt (mfpu=): Use Enum.
4579 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
4580 Update dependencies.
4581
9e350e99
JM
45822011-05-19 Joseph Myers <joseph@codesourcery.com>
4583
4584 * collect2.c: Include diagnostic.h.
4585 (fatal_perror, fatal, error, fancy_abort): Remove.
4586 (main): Set progname. Call xmalloc_set_program_name and
4587 diagnostic_initialize.
4588 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
4589 scan_libraries, resolve_lib_name): Call fatal_error instead of
4590 fatal and fatal_perror.
4591 * collect2.h (error, fatal, fatal_perror): Don't declare.
4592 * tlink.c: Include diagnostic-core.h.
4593 (recompile_files): Call fatal_error instead of fatal_perror.
4594 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
4595 pretty-print.o and input.o.
4596 (collect2.o, tlink.o): Update dependencies.
4597
86ff4081
RO
45982011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4599
4600 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
4601
2ca48caa
RO
46022011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4603
4604 PR target/40483
4605 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
4606 COMDAT group syntax, both SPARC and x86 variants.
4607 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
4608 * configure: Regenerate.
4609 * config/sol2.h (TARGET_SOLARIS): Define.
4610 (PUSHSECTION_FORMAT): Remove.
4611 (SECTION_NAME_FORMAT): Define.
4612 * config/sol2.c: Include hashtab.h.
4613 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
4614 expansion, using SECTION_NAME_FORMAT.
4615 (solaris_comdat_htab): New variable.
4616 (struct comdat_entry): Define.
4617 (comdat_hash): New function.
4618 (comdat_eq): New function.
4619 (solaris_elf_asm_comdat_section): New function.
4620 (solaris_define_comdat_signature): New function.
4621 (solaris_code_end): New function.
4622 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
4623 (solaris_code_end): Declare.
4624 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
4625 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
4626 solaris_code_end.
4627 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
4628 Remove ATTRIBUTE_UNUSED.
4629 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
4630 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 4631 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
4632 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
4633 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
4634 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
4635 (PUSHSECTION_FORMAT): Remove.
4636 (SECTION_NAME_FORMAT): Redefine.
4637
da5fb469
KT
46382011-05-19 Kai Tietz <ktietz@redhat.com>
4639
4640 * tree-cfg.c (verify_gimple_assign_binary): Barf on
4641 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
4642 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
4643
1651e703 46442011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
4645 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4646
4647 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
4648
e497b9bd
RG
46492011-05-19 Richard Guenther <rguenther@suse.de>
4650
4651 PR middle-end/48985
4652 * tree-object-size.c (addr_object_size): If the pointed-to
4653 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
4654
31b3ca64
RG
46552011-05-19 Richard Guenther <rguenther@suse.de>
4656
4657 * gimple.c (gimple_types_compatible_p_1): Compare names of
4658 the types themselves.
4659 (iterative_hash_gimple_type): And hash them that way.
4660 (gimple_register_type_1): If we register a main variant properly
4661 initialize the leader to ourselves.
4662
bb8d292d
TV
46632011-05-19 Tom de Vries <tom@codesourcery.com>
4664
4665 PR target/45098
4666 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
4667 get_loop_invariant_expr_id.
4668 (get_loop_invariant_expr_id): Use get_expr_id.
4669 (parm_decl_cost): New function.
4670 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
4671 Improve bound cost estimation. Use different inv_expr_id for elim and
4672 express cases.
4673
a53c5024
TV
46742011-05-19 Tom de Vries <tom@codesourcery.com>
4675
4676 PR target/45098
4677 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
4678 cost_base.cost == 0.
4679
31f9eb59
L
46802011-05-18 H.J. Lu <hongjiu.lu@intel.com>
4681
4682 PR target/49002
66bd20e7
EB
4683 * config/i386/sse.md
4684 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
4685 load cast.
31f9eb59 4686
681056ae
JJ
46872011-05-18 Jakub Jelinek <jakub@redhat.com>
4688
4689 PR tree-optimization/49039
4690 * tree-vrp.c (extract_range_from_binary_expr): For
4691 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
4692 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
4693
b5ee6752
TV
46942011-05-18 Tom de Vries <tom@codesourcery.com>
4695
4696 PR target/45098
4697 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
4698
0bda47a3
UB
46992011-05-18 Uros Bizjak <ubizjak@gmail.com>
4700
4701 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
4702 (*tls_global_dynamic_64): Ditto.
4703 (*tls_local_dynamic_base_32_gnu): Ditto.
4704 (*tls_local_dynamic_base_64): Ditto.
4705 (tls_initial_exec_64_sun): Ditto.
4706
033b0805
SH
47072011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
4708
4709 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
4710 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
4711 bf592-none.
4712 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
4713 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
4714 * config/bfin/bfin.c (bfin_cpus): Add bf592.
4715 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 4716 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
4717 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
4718 * config/bfin/elf.h (LIB_SPEC): Add bf592.
4719
ba163417
JM
47202011-05-18 Joseph Myers <joseph@codesourcery.com>
4721
4722 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 4723 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
4724 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
4725 target_thread_pointer, arm_structure_size_boundary, struct
4726 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
4727 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
4728 (arm_option_override) Don't process most enumerated option values here.
4729 Don't process target_fpe_name here. Work with integer not string for
4730 structure size boundary; use separate diagnostics for each case.
ba163417
JM
4731 * config/arm/arm.h (enum float_abi_type, enum
4732 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
4733 to arm-opts.h.
4734 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
4735 arm_structure_size_boundary): Remove.
4736 * config/arm/arm.opt (mabi=): Use Enum and Init.
4737 (arm_abi_type): New Enum and EnumValue entries.
4738 (mfloat-abi=): Use Enum and Init.
4739 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 4740 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
4741 (mfp16-format=): Use Enum and Init.
4742 (arm_fp16_format_type): New Enum and EnumValue entries.
4743 (mstructure-size-boundary=): Use UInteger and Init.
4744 (mtp=): Use Enum and Init.
4745 (arm_tp_type): New Enum and EnumValue entries.
4746
179184e3
RG
47472011-05-18 Richard Guenther <rguenther@suse.de>
4748
4749 PR tree-optimization/49018
4750 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
4751 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
4752 gimple_has_side_effects.
4753
93b2a207
RG
47542011-05-18 Richard Guenther <rguenther@suse.de>
4755
4756 * gimple.c (gimple_register_type_1): New function, split out from ...
4757 (gimple_register_type): ... here. Avoid infinite recursion.
4758
b010117a
IR
47592011-05-18 Ira Rosen <ira.rosen@linaro.org>
4760
4761 PR tree-optimization/41881
4762 * tree-vectorizer.h (struct _loop_vec_info): Add new field
4763 reduction_chains along with a macro for its access.
4764 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
4765 (destroy_loop_vec_info): Free reduction chains.
4766 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
4767 (vect_is_slp_reduction): New function.
4768 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
4769 (vect_create_epilog_for_reduction): Support SLP reduction chains.
4770 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
4771 definition types for reduction chains.
4772 (vect_supported_load_permutation_p): Don't allow permutations for
4773 reduction chains.
4774 (vect_analyze_slp_instance): Support reduction chains.
4775 (vect_analyze_slp): Try to build SLP instance from reduction chains.
4776 (vect_get_constant_vectors): Handle reduction chains.
4777 (vect_schedule_slp_instance): Mark the first statement of the
4778 reduction chain as reduction.
4779
e14c1050
IR
47802011-05-18 Ira Rosen <ira.rosen@linaro.org>
4781
4782 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
4783 names for group elements access.
4784 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
4785 reduction chains as well. Remove data reference and interleaving
4786 related words from the fields names.
4787 * tree-vect-loop.c (vect_transform_loop): Use new names for group
4788 elements access.
4789 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
4790 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
4791 vect_update_interleaving_chain, vect_same_range_drs,
4792 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
4793 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
4794 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
4795 vect_analyze_group_access, vect_analyze_data_ref_access,
4796 vect_create_data_ref_ptr, vect_transform_strided_load,
4797 vect_record_strided_load_vectors): Likewise.
4798 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
4799 vect_model_load_cost, vectorizable_store, vectorizable_load,
4800 vect_remove_stores, new_stmt_vec_info): Likewise.
4801 * tree-vect-slp.c (vect_build_slp_tree,
4802 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
4803
51c213f7
RG
48042011-05-18 Richard Guenther <rguenther@suse.de>
4805
4806 PR middle-end/48989
4807 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
4808 operand verification.
4809 (verify_gimple_assign_binary): Likewise.
4810 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
4811 to non-1-precision BOOLEAN_TYPEs.
4812
8f5e5434
TV
48132011-05-18 Tom de Vries <tom@codesourcery.com>
4814
4815 PR target/45098
4816 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
4817
116bc3a4
JJ
48182011-05-18 Jakub Jelinek <jakub@redhat.com>
4819
4820 PR tree-optimization/49000
4821 * tree-ssa.c (execute_update_addresses_taken): Call
4822 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
4823 be rewritten and decl has been marked for renaming, reset
4824 the debug stmt.
4825
26a8964c
JM
48262011-05-17 Joseph Myers <joseph@codesourcery.com>
4827
4828 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
4829 enum_opts_set when testing if attributes have set -mfpmath=.
4830
82bd45d7
RS
48312011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4832
4833 * config/mips/mips.c (mips_handle_option): Remove unused variable.
4834
267ffce3
UB
48352011-05-17 Uros Bizjak <ubizjak@gmail.com>
4836
4837 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
4838 info->entry with 0
4839 * tree-inline.c (maybe_inline_call_in_expr): Initialize
4840 id.transform_lang_insert_block with NULL.
4841
48422011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
4843
4844 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
4845 (output_fp_compare): Change args 3 and 4 to bool.
4846 (ix86_expand_call): Change arg 6 to bool.
4847 (ix86_attr_length_immediate_default): Change arg 2 to bool.
4848 (ix86_attr_length_vex_default): Change arg 3 to bool.
4849 * config/i386/i386.md: Update all uses.
4850 * config/i386/i386.c: Ditto.
4851 (ix86_flags_dependent): Change return type to bool.
4852
5beaf664
RG
48532011-05-17 Richard Guenther <rguenther@suse.de>
4854
4855 * gimple.c (type_hash_pair_compare): Fix comparison.
4856
008bad7a
RG
48572011-05-17 Richard Guenther <rguenther@suse.de>
4858
4859 * gimple.c (iterative_hash_gimple_type): Simplify singleton
4860 case some more, fix final hash value of the non-singleton case.
4861
36461340
RG
48622011-05-17 Richard Guenther <rguenther@suse.de>
4863
4864 PR bootstrap/49013
4865 Revert
4866 2011-05-16 Richard Guenther <rguenther@suse.de>
4867
4868 * gimple.c (gimple_types_compatible_p_1): Use names of the
4869 type itself, not its main variant.
4870 (iterative_hash_gimple_type): Likewise.
4871
6b6a59f3
RG
48722011-05-17 Richard Guenther <rguenther@suse.de>
4873
4874 * gimple.c (gimple_register_canonical_type): Use the main-variant
4875 leader for computing the canonical type.
4876
4ffc4134
NC
48772011-05-17 Nick Clifton <nickc@redhat.com>
4878
a1d8754e
NC
4879 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
4880 moves.
4881
4ffc4134
NC
4882 * config/rx/rx.md: Add peephole to remove redundant extensions
4883 after loads.
39960f7a
NC
4884 (bitset_in_memory): Use rx_restricted_mem_operand.
4885 (bitinvert_in_memory): Likewise.
4886 (bitclr_in_memory): Likewise.
4ffc4134 4887
b3db92ac
KI
48882011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
4889 Nick Clifton <nickc@redhat.com>
4890
4891 * config/rx/rx.md: Add peepholes to match a register move followed
4892 by a comparison of the moved register. Replace these with an
4893 addition of zero that does both actions in one instruction.
4894
8637e32a
JJ
48952011-05-17 Jakub Jelinek <jakub@redhat.com>
4896
4897 PR target/48986
4898 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
4899 predicate to allow CONST_INT.
4900 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
4901
8023568e
JM
49022011-05-16 Joseph Myers <joseph@codesourcery.com>
4903
4904 * opts-common.c (opt_enum_arg_to_value): New.
4905 * opts.h (opt_enum_arg_to_value): Declare.
4906 * config/i386/i386.opt (fpmath): Remove.
4907 (mfpmath=): Use Enum, Init and Save.
4908 (fpmath_unit): New Enum and EnumValue entries.
4909 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
4910 name for function fpmath state.
4911 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
4912 * config/i386/i386.c: Include diagnostic.h.
4913 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 4914 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 4915 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 4916 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
4917 (x86_function_specific_save, ix86_function_specific_restore):
4918 Don't handle fpmath state specially.
4919 (ix86_function_specific_print): Pass fpmath state to
4920 ix86_target_string instead of printing in this function.
4921 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
4922 Handle enum attributes.
4923 (IX86_ATTR_ENUM, ix86_opt_enum): New.
4924 (ix86_valid_target_attribute_tree): Update option_strings
4925 handling. Handle fpmath as enum option.
4926 (ix86_can_inline_p): Update field names for function fpmath state.
4927 (ix86_expand_builtin): Update call to ix86_target_string.
4928 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
4929 (ix86_fpmath): Remove.
4930 * config/i386/t-i386 (i386.o): Update dependencies.
4931
9e8d926e
JM
49322011-05-16 Joseph Myers <joseph@codesourcery.com>
4933
4934 PR preprocessor/48677
4935 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
4936 from decoded_options[0], not from itself.
4937
f6449011
UB
49382011-05-16 Uros Bizjak <ubizjak@gmail.com>
4939
4940 * config/i386/constraints.md (z): New constraint.
4941 * config/i386/i386.c (c): New mode attribute.
4942 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
4943 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
4944 constraint for operand 0.
4945 (*call_vzeroupper): Ditto.
4946 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
4947 (*call_rex64_ms_sysv_vzeroupper): Ditto.
4948 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
4949 Use "lzm" constraint for operand 0.
4950 (*call_pop_vzeroupper): Ditto.
4951 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
4952 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
4953 constraint for operand 0.
4954 (*sibcall_vzeroupper): Ditto.
4955 (*sibcall_rex64_ms_sysv): Ditto.
4956 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
4957 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
4958 *sibcall_pop_1. Use "Uz" constraint for operand 0.
4959 (*sibcall_pop_vzeroupper): Ditto.
4960 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
4961 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
4962 mode iterator. Use "<c>zm" constraint for operand 1.
4963 (*call_value_vzeroupper): Ditto.
4964 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 4965 for operand 1.
f6449011
UB
4966 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
4967 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
4968 *call_value_pop_1. Use "lzm" constraint for operand 1.
4969 (*call_value_pop_vzeroupper): Ditto.
4970 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
4971 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
4972 mode iterator. Use "Uz" constraint for operand 1.
4973 (*sibcall_value_vzeroupper): Ditto.
4974 (*sibcall_value_rex64_ms_sysv): Ditto.
4975 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
4976 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
4977 constraint for operand 1.
4978 (*sibcall_value_pop_vzeroupper): Ditto.
4979 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
4980 and "z" constraint for operand 2.
4981 (*tls_global_dynamic_32_gnu): Ditto.
4982 (*tls_local_dynamic_base_32_gnu): Ditto.
4983 (*tls_local_dynamic_base_64): Ditto.
4984 (*tls_local_dynamic_32_once): Ditto.
4985 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
4986 Update all callers.
4987 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
4988
c11b6902
RG
49892011-05-16 Richard Guenther <rguenther@suse.de>
4990
4991 * gimple.c (gimple_types_compatible_p_1): Use names of the
4992 type itself, not its main variant.
4993 (iterative_hash_gimple_type): Likewise.
4994
1e83b5f1
RG
49952011-05-16 Richard Guenther <rguenther@suse.de>
4996
f6449011
UB
4997 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
4998 always visit pointer target and function result and argument types.
1e83b5f1 4999
62e36382
JM
50002011-05-16 Jason Merrill <jason@redhat.com>
5001
5002 PR c++/48999
5003 * tree-inline.c (copy_statement_list): Put back recursion.
5004
687027a4
GJL
50052011-05-16 Georg-Johann Lay <avr@gjlay.de>
5006
5007 PR target/27663
5008 PR target/41076
5009 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
5010 * config/avr/avr.md ("*ior<mode>qi.byte0",
5011 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
5012
f24a5190
GJL
50132011-05-16 Georg-Johann Lay <avr@gjlay.de>
5014
5015 PR target/45099
5016 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
5017 register is needed for a function argument.
5018
3066f593
RG
50192011-05-16 Richard Guenther <rguenther@suse.de>
5020
5021 * gimple.c (struct type_hash_pair): New type.
5022 (type_hash_pair_compare): New function.
f6449011 5023 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 5024
b2ab2cf4
RE
50252011-05-16 Revital Eres <revital.eres@linaro.org>
5026
f6449011 5027 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 5028
dfb737fc
UB
50292011-05-15 Uros Bizjak <ubizjak@gmail.com>
5030
5031 * config/i386/i386.md (floating point move splitters): Fix
5032 usage of standard_80387_constant_p.
f6449011 5033 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 5034
8caa1de0
UB
50352011-05-15 Uros Bizjak <ubizjak@gmail.com>
5036
5037 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
5038
8a519095
EB
50392011-05-14 Eric Botcazou <ebotcazou@adacore.com>
5040
5041 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
5042 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
5043 (tree_ssa_lim_finalize): Likewise.
5044
479fecd3
UB
50452011-05-14 Uros Bizjak <ubizjak@gmail.com>
5046
5047 * config/i386/constraint.md (Yd, Yx): New register constraints.
5048 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
5049 Yd conditional register constraint.
5050 (*movtf_internal): Use standard_sse_constant_opcode.
5051 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
5052 Yx conditional register constraint.
5053 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
5054 Yd conditional register constraint. Use standard_sse_constant_p to
5055 check for valid SSE constants and call standard_sse_constant_opcode to
5056 output SSE insn.
5057 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
5058 constants and call standard_sse_constant_opcode to output SSE insn.
5059 * config/i386/i386.c (ix86_option_ovverride_internal): Set
5060 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
5061 optimize_size is set.
5062 (standard_sse_constant_opcode): Output conditional AVX insn templates.
5063
2d8c9ad5
TB
50642011-05-14 Tobias Burnus <burnus@net-b.de>
5065
5066 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
5067
411a20d6
MJ
50682011-05-13 Martin Jambor <mjambor@suse.cz>
5069
5070 * ipa-prop.c (ipa_cst_from_jfunc): New function.
5071 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
5072 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
5073 (evaluate_conditions_for_ipcp_clone): Removed.
5074 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
5075 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
5076 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
5077
dc764d10
EB
50782011-05-13 Eric Botcazou <ebotcazou@adacore.com>
5079
5080 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
5081 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
5082 lieu of MAY_HAVE_DEBUG_STMTS.
5083 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
5084 debug statements if !MAY_HAVE_DEBUG_STMTS.
5085
9f47a24e
MT
50862011-05-13 Martin Thuresson <martint@google.com>
5087
5088 PR gcov-profile/47793
5089 * libgcov.c (gcov_exit): Support relative profile paths.
5090 * doc/invoke.texi (-fprofile-dir): Update for above change.
5091
b8a71aed
RG
50922011-05-13 Richard Guenther <rguenther@suse.de>
5093
5094 * gimple.c (gimple_canonical_types_compatible_p): Do not use
5095 type-pair caching, do not compare hashes.
5096
eb9f9259
NF
50972011-05-13 Nathan Froyd <froydnj@codesourcery.com>
5098
5099 PR middle-end/48965
5100 * tree-cfg.c (edge_to_cases_cleanup): Return true.
5101 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
5102
3c6cbf7a
KT
51032011-05-13 Kai Tietz <ktietz@redhat.com>
5104
5105 * gimplify.c (gimplify_expr): Make sure operand is boolified.
5106 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
5107 compatible type for TRUTH_NOT_EXPR.
5108
2e7f5dc0
L
51092011-05-13 H.J. Lu <hongjiu.lu@intel.com>
5110
dc764d10 5111 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
5112 (ix86_hard_regno_mode_ok): Change return value to bool. Use
5113 can_create_pseudo_p ().
5114
e834e95c
RG
51152011-05-13 Richard Guenther <rguenther@suse.de>
5116
5117 PR lto/48978
5118 * gimple.c (iterative_hash_gimple_type): Revert change in
5119 pointer target and function result and argument hashing.
5120
34203483
UB
51212011-05-13 Uros Bizjak <ubizjak@gmail.com>
5122
5123 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
5124 (*movxf_internal_nointeger): Ditto.
5125 (*movdf_internal_rex64): Ditto.
5126 (*movdf_internal): Ditto.
5127 (*movdf_internal_nointeger): Ditto.
5128 (*movsf_internal): Ditto.
5129 (sincos splitters): Use can_create_pseudo ().
5130
7eb68c06
JM
51312011-05-13 Joseph Myers <joseph@codesourcery.com>
5132
5133 * config/i386/i386-opts.h: New.
5134 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
5135 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
5136 ix86_section_threshold): Remove.
5137 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
5138 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
5139 OPT_mbranch_cost_.
5140 (ix86_option_override_internal): Don't decode strings for options
5141 other than -march=, -mtune= and -mfpmath=. Don't allow for
5142 __attribute__ uses in remaining diagnostics for options with
34203483 5143 string arguments. Don't check for integer arguments being negative.
7eb68c06 5144 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 5145 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
5146 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
5147 ix86_branch_cost, ix86_section_threshold): Remove.
5148 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
5149 HeaderInclude.
5150 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
5151 but not Var.
5152 (masm=): Use Enum and Init.
5153 (asm_dialect): New Enum and EnumValue entries.
5154 (mbranch-cost=): Use UInteger.
5155 (mlarge-data-threshold=): Use UInteger and Init.
5156 (mcmodel=): Use Enum and Init.
5157 (cmodel): New Enum and EnumValue entries.
5158 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
5159 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
5160 mregparm=): Use UInteger.
5161 (mstringop-strategy=): Use Enum and Init.
5162 (stringop_alg): New Enum and EnumValue entries.
5163 (mtls-dialect=): Use Enum and Init.
5164 (tls_dialect): New Enum and EnumValue entries.
5165 (mabi=): Use Enum and Init.
5166 (calling_abi): New Enum and EnumValue entries.
5167 (mveclibabi=): Use Enum and Init.
5168 (ix86_veclibabi): New Enum and EnumValue entries.
5169
f67e203c
NC
51702011-05-13 Nick Clifton <nickc@redhat.com>
5171
34203483
UB
5172 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
5173 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 5174
221df0b6
KT
51752011-05-13 Kai Tietz <ktietz@redhat.com>
5176
5177 PR middle-end/48984
5178 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
5179 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
5180 (gimple_boolify): Check for cast for boolean_type_node instead for
5181 BOOLEAN_TYPE.
5182
208cb8cb
RG
51832011-05-13 Richard Guenther <rguenther@suse.de>
5184
5185 PR tree-optimization/48172
5186 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
5187 multiplying by number of iterations for equal step.
5188 (vect_create_cond_for_alias_checks): Likewise.
5189
b88ecf55
AS
51902011-05-13 Andreas Schwab <schwab@redhat.com>
5191
5192 * configure.ac: Use AS_HELP_STRING throughout.
5193 * configure: Regenerate.
5194
569b527e
L
51952011-05-12 H.J. Lu <hongjiu.lu@intel.com>
5196
34203483 5197 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
5198 (ix86_emit_restore_regs_using_mov): Likewise.
5199 (ix86_emit_restore_sse_regs_using_mov): Likewise.
5200
8b9a1428
AS
52012011-05-12 Anatoly Sokolov <aesok@post.ru>
5202
5203 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
5204 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
5205 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
5206 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
5207 RTX_OK_FOR_OLO10_P): ...here.
5208 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
5209 SYMBOLIC_CONST.
5210
1d15f620
KT
52112011-05-12 Kai Tietz <ktietz@redhat.com>
5212
5213 * gimplify.c (gimple_boolify): Re-boolify expression
5214 arguments even if expression type is of kind BOOLEAN_TYPE.
5215 (gimplify_boolean_expr): Removed.
5216 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
5217 and XOR. Additional take care that we keep expression's type.
5218 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
5219 of TRUTH_AND|OR|XOR_EXPR.
5220
c2b5fc8d
JJ
52212011-05-12 Jakub Jelinek <jakub@redhat.com>
5222
5223 PR tree-optimization/48975
5224 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
5225 on all bbs here and free and clear ifc_bbs at the end.
5226
61332f77
RG
52272011-05-12 Richard Guenther <rguenther@suse.de>
5228
5229 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
5230 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
5231 until after simple checks.
5232 (gimple_types_compatible_p): Likewise.
5233 (iterative_hash_gimple_type): Always hash pointer targets
5234 and function return and argument types.
5235 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
5236 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
5237 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
5238 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
5239 completely in the simple compare section.
5240 (gimple_register_canonical_type): Query the cache again after
5241 registering.
5242
e2a3a5f1
RG
52432011-05-12 Richard Guenther <rguenther@suse.de>
5244
5245 PR tree-optimization/48172
5246 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
5247 the number of iterations from the segment size calculation.
5248 (vect_create_cond_for_alias_checks): Adjust.
5249
2c703f3a
JJ
52502011-05-12 Jakub Jelinek <jakub@redhat.com>
5251
5252 PR debug/48967
5253 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
5254 if validate_subreg fails.
5255
52562011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
5257
5258 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
5259 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
5260 early.
5261
87e91fca
DD
52622011-05-12 DJ Delorie <dj@redhat.com>
5263
d53903d6 5264 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
5265 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
5266 created builtin into rx_builtins array.
5267 (rx_builtin_decl): New function.
34203483 5268 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 5269
5f2f13fd
DD
52702011-05-12 DJ Delorie <dj@redhat.com>
5271 Nick Clifton <nickc@redhat.com>
5272
5273 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
5274 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
5275 (rx_is_legitimate_address): Add pre-decrement and post-increment
5276 addressing in HImode and QImode. Fix test for out of range
5277 REG+INT addressing.
87e91fca 5278 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 5279 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 5280 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 5281 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 5282
57421f45
JM
52832011-05-11 Jason Merrill <jason@redhat.com>
5284
5285 * tree.c (type_hash_canon): Use struct tree_type_non_common.
5286
898c90c0
EB
52872011-05-11 Eric Botcazou <ebotcazou@adacore.com>
5288
5289 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
5290 reindent the subsequent block.
5291
79bec923
ST
52922011-05-11 Satoru Takabayashi <satorux@google.com>
5293 Paul Pluzhnikov <ppluzhnikov@google.com>
5294
34203483 5295 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
5296 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
5297 * config.in: Add LINKER_HASH_STYLE.
5298 * configure.ac: Add --with-linker-hash-style.
5299 * configure: Regenerate.
79bec923 5300
d0340959
RG
53012011-05-11 Richard Guenther <rguenther@suse.de>
5302
5303 PR middle-end/48964
5304 * gimple.c (iterative_hash_canonical_type): Fix typo.
5305
cb032fee
UB
53062011-05-11 Uros Bizjak <ubizjak@gmail.com>
5307
5308 * config/i386/i386.c (legitimize_tls_address)
479fecd3 5309 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
5310 expanders directly for TARGET_GNU2_TLS. Determine pic and
5311 __tls_get_addr symbol reference here. Update call to
5312 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 5313 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
5314 expanders directly for TARGET_GNU2_TLS. Determine
5315 __tls_get_addr symbol reference here. Update call to
5316 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
5317 unique UNSPEC REG_EQUIV to libcall block.
5318 (ix86_tls_get_addr): Declare static.
5319 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
5320 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
5321 Do not determine pic and __tls_get_addr symbol reference here. Do not
5322 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
5323 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
5324 (tls_global_dynamic_64): Add operand 2. Do not determine
5325 __tls_get_addr symbol reference here. Do not call
5326 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
5327 (tls_local_dynamic_base64): Ditto for operand 1.
5328
6d3cc8f0
EB
53292011-05-11 Eric Botcazou <ebotcazou@adacore.com>
5330
5331 * function.c (expand_function_start): Initialize stack_check_probe_note
5332 only if the generic stack checking mechanism is used.
5333
51e020fc
RG
53342011-05-11 Richard Guenther <rguenther@suse.de>
5335
5336 PR tree-optimization/15256
5337 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
5338 (A & B) | C, combine (A op CST1) op CST2.
5339 (tree_ssa_forward_propagate_single_use_vars): Only bother to
5340 visit assigns that have uses.
5341
51545682
NF
53422011-05-11 Nathan Froyd <froydnj@codesourcery.com>
5343
cb032fee 5344 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
5345 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
5346 (unpack_ts_type_common_value_fields): ...this. Update comment.
5347 (unpack_value_fields): Adjust for renaming.
5348 (lto_input_ts_type_tree_pointers): Split into...
5349 (lto_input_ts_type_common_tree_pointer): ...this and...
5350 (lto_input_ts_type_non_common_tree_pointers): ...this.
5351 (lto_input_tree_pointers): Adjust for above split.
5352 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
5353 (pack_ts_type_common_value_fields): ...this. Update comment.
5354 (lto_output_ts_type_tree_pointers): Split into...
5355 (lto_output_ts_type_common_tree_pointers): ...this and...
5356 (lto_output_ts_type_non_common_tree_pointers): ...this.
5357 (lto_output_tree_pointers): Adjust for above split.
5358 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
5359 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
5360 * stor-layout.c (vector_type_mode): Adjust location of mode field.
5361 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
5362 Define.
5363 (struct tree_type): Split into...
5364 (struct tree_type_common: ...this and...
5365 (struct tree_type_with_lang_specific): ...this and...
5366 (struct tree_type_non_common): ...this. Adjust accessor macros
5367 accordingly.
5368 (TYPE_VALUES_RAW): Define.
5369 (union tree_node): Update for above changes.
5370 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
5371 TS_TYPE_NON_COMMON.
5372 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
5373 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
5374 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
5375 * treestructu.def (TS_TYPE): Remove.
5376 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
5377 Define.
5378
b03c3082
JJ
53792011-05-11 Jakub Jelinek <jakub@redhat.com>
5380
5381 PR debug/48159
5382 * tree-ssa.c (reset_debug_uses): New function.
5383 * tree-flow.h (reset_debug_uses): New prototype.
5384 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
5385 * tree-loop-distribution.c (generate_loops_for_partition): Call
5386 reset_debug_uses on the stmts that will be removed. Keep around
5387 all debug stmts, don't count them as bits in partition bitmap.
5388 (generate_builtin): Don't count debug stmts or labels as bits in
5389 partition bitmap.
5390
b5e04de5
RG
53912011-05-11 Richard Guenther <rguenther@suse.de>
5392
5393 * gimple.c (gimple_type_hash_1): Merge with ...
5394 (gimple_type_hash): ... this.
5395 (gtc_visit): Remove mode parameter and simplify accordingly.
5396 (gimple_types_compatible_p_1): Likewise.
5397 (gimple_types_compatible_p): Likewise.
5398 (iterative_hash_gimple_type): Likewise.
5399 (visit): Likewise.
5400 (gimple_type_eq): Adjust.
5401
fc6970e4
RE
54022011-05-11 Revital Eres <revital.eres@linaro.org>
5403
5404 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
5405 enters the branch create an anti edge in the opposite direction
5406 to prevent the creation of reg-moves.
5407 * modulo-sched.c: Adjust comment to reflect the fact we are
5408 scheduling closing branch.
5409 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
5410 (stage_count): New field in struct partial_schedule.
5411 (calculate_stage_count): New function.
5412 (normalize_sched_times): Rename to reset_sched_times and handle
5413 incrementing the sched time of the nodes by a constant value
5414 passed as parameter.
5415 (duplicate_insns_of_cycles): Skip closing branch.
5416 (sms_schedule_by_order): Schedule closing branch.
5417 (ps_insn_find_column): Handle closing branch.
5418 (sms_schedule): Call reset_sched_times and adjust the code to
5419 support scheduling of the closing branch.
5420 (ps_insert_empty_row): Update calls to normalize_sched_times
5421 and rotate_partial_schedule functions.
5422
41a58a92
RG
54232011-05-11 Richard Guenther <rguenther@suse.de>
5424
5425 PR middle-end/48953
5426 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
5427
e9f8dcf9
JM
54282011-05-11 Joseph Myers <joseph@codesourcery.com>
5429
cb032fee
UB
5430 * opts.c (finish_options): Move warning settings from process_options.
5431 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 5432
10c224a9
RG
54332011-05-11 Richard Guenther <rguenther@suse.de>
5434
5435 PR tree-optimization/18041
5436 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
5437 (simplify_bitwise_binary): ... this. Handle operand conversions
5438 by applying them to the result instead.
5439 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
5440
825b27de
RG
54412011-05-11 Richard Guenther <rguenther@suse.de>
5442
5443 * gimple.c (gimple_canonical_types_compatible_p): Split out
5444 from gimple_types_compatible_p and friends. Do not recurse
5445 to pointed-to types.
5446 (gimple_canonical_type_eq): Use it.
5447 (iterative_hash_canonical_type): Split out from
5448 iterative_hash_gimple_type and friends. Do not recurse
5449 to pointed-to types.
5450 (gimple_canonical_type_hash): Use it, allocate the hash here.
5451
ca756625
RE
54522011-05-11 Revital Eres <revital.eres@linaro.org>
5453
5454 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
5455 recognizing doloop.
5456
b8abece3
RE
54572011-05-11 Revital Eres <revital.eres@linaro.org>
5458
5459 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
5460 instead of PREV_INSN.
5461
ce7b3761
RE
54622011-05-11 Revital Eres <revital.eres@linaro.org>
5463
5464 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
5465 * loop-doloop.c (doloop_condition_get): Likewise.
5466 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
5467 (doloop_end): New.
5468 * config/arm/arm.md (*addsi3_compare0): Remove "*".
5469
a9dc9d37
NF
54702011-05-10 Nathan Froyd <froydnj@codesourcery.com>
5471
5472 * tree.def (CASE_LABEL_EXPR): Add an operand.
5473 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
5474
96703596
JM
54752011-05-10 Joseph Myers <joseph@codesourcery.com>
5476
5477 * c-decl.c (c_override_global_bindings_to_false): Remove.
5478 (global_bindings_p): Don't check
5479 c_override_global_bindings_to_false.
5480 * c-tree.h (c_override_global_bindings_to_false): Remove.
5481 * c-typeck.c (composite_type): Don't set
5482 c_override_global_bindings_to_false.
5483
dbcc9f08
MM
54842011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5485
5486 PR target/48857, 48495
5487 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
5488 (VSX_MODE): Ditto.
5489 (VSX_MOVE_MODE): Ditto.
5490 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
5491 VSX vector types. Add V2DImode.
5492 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
5493 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
5494 (MODES_TIEABLE_P): Ditto.
5495
5496 * config/rs6000/rs6000.c (rs6000_emit_move): Use
5497 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
5498 VSX_VECTOR_MODE.
5499 (init_cumulative_args): Ditto.
5500 (rs6000_function_arg_boundary): Ditto.
5501 (rs6000_function_arg_advance_1): Ditto.
5502 (rs6000_function_arg): Ditto.
5503 (rs6000_function_ok_for_sibcall): Ditto.
5504 (emit_frame_save): Ditto.
5505 (rs6000_function_value): Ditto.
5506 (rs6000_libcall_value): Ditto.
5507
4a68b4ca
JM
55082011-05-10 Joseph Myers <joseph@codesourcery.com>
5509
5510 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5511 i386/darwin-lib.h to $libgcc_tm_file.
5512 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
5513
bcb521e9
JM
55142011-05-10 Joseph Myers <joseph@codesourcery.com>
5515
5516 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
5517
f10d3ac9
JM
55182011-05-10 Joseph Myers <joseph@codesourcery.com>
5519
cb032fee 5520 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
5521 * config/rs6000/rs6000-tables.opt: New file (generated).
5522 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
5523 rs6000/rs6000-tables.opt to extra_options.
5524 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
5525 * config/rs6000/rs6000.c (rs6000_select): Remove.
5526 (processor_target_table): Move contents to rs6000-cpus.def.
5527 (darwin_rs6000_override_options): Check
5528 global_options_set.x_rs6000_cpu_index instead of
5529 rs6000_select[1].string.
5530 (rs6000_option_override_internal): Likewise.
5531 (rs6000_handle_option): Don't assert that global structures are in
5532 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
5533 (rs6000_default_cpu): New variable.
5534 (rs6000_file_start): Set it instead of local default_cpu. Check
5535 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
5536 global_options_set.x_rs6000_tune_index instead of rs6000_select.
5537 (rs6000_darwin_file_start): Check rs6000_default_cpu and
5538 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
5539 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
5540 rs6000_select): Remove.
5541 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
5542 Remove.
5543 (mcpu=, mtune=): Use Var, Init, Enum and Save.
5544 * config/rs6000/t-rs6000
5545 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
5546 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5547 global_options_set.x_rs6000_cpu_index instead of
5548 rs6000_select[1].string.
5549 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
5550 global_options_set.x_rs6000_cpu_index instead of
5551 rs6000_select[1].string.
5552
80cf2e08
JM
55532011-05-10 Joseph Myers <joseph@codesourcery.com>
5554
5555 * config.gcc (libgcc_tm_file): Define instead of including files
5556 from ../../libgcc/config/ in tm_file.
cb032fee 5557 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
5558 * configure: Regenerate.
5559 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
5560 libgcc_tm.h, cs-libgcc_tm.h): New.
5561 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
5562 (clean): Remove libgcc_tm.h.
5563 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
5564 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
5565 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
5566
fd01a351
GJL
55672011-05-10 Georg-Johann Lay <avr@gjlay.de>
5568
5569 PR target/48896
5570 * config/avr/avr.c (avr_ret_register): Return unsigned int
5571 instead of int.
5572 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
5573 it to avr_libcall_value.
5574 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
5575 expand_expr.
5576 (avr_expand_binop_builtin): Ditto.
5577 (avr_expand_unop_builtin): Ditto.
5578
34cc3c86
DD
55792011-05-10 DJ Delorie <dj@redhat.com>
5580
5581 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
5582 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
5583 * config/rx/rx.c (rx_align_for_label): Add label and
5584 uses_threshold parameters. Do not align when the label is not
5585 used enough.
5586 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
5587
be173289
RG
55882011-05-10 Richard Guenther <rguenther@suse.de>
5589
5590 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
5591 a series of conversions and apply foldings similar to what
5592 fold-const does.
5593 (tree_ssa_forward_propagate_single_use_vars): Call it.
5594
e7f78021
JJ
55952011-05-10 Jakub Jelinek <jakub@redhat.com>
5596
6ae70ea2
JJ
5597 PR tree-optimization/48611
5598 PR tree-optimization/48794
5599 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
5600 referenced from RESX or EH_DISPATCH arguments.
5601
e7f78021
JJ
5602 PR debug/48928
5603 * dfp.c (decimal_to_decnumber): Handle conversion from
5604 dconst{1,2,m1,half}.
5605
fca132b9
UB
56062011-05-09 Uros Bizjak <ubizjak@gmail.com>
5607
5608 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
5609 for !flag_prefer_avx128.
5610 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
5611
e4c03378
EB
56122011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5613
5614 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
5615 (fold_ternary_loc): Use expr_location_or.
5616
805d6a75
L
56172011-05-09 H.J. Lu <hongjiu.lu@intel.com>
5618
5619 PR debug/48853
5620 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
5621 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
5622 Pmode and mem_mode is not VOIDmode.
5623
e4c03378 56242011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 5625
e4c03378
EB
5626 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
5627 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 5628
51e7f377
UB
56292011-05-09 Uros Bizjak <ubizjak@gmail.com>
5630
5631 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
5632 (const_pow2_1_to_8_operand): Ditto.
5633 (const_pow2_1_to_128_operand): Ditto.
5634 (const_pow2_1_to_32768_operand): Ditto.
5635 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
5636 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
5637 in insn constraint to check integer value of operand 3.
5638 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
5639
5640 (PINSR_MODE): New mode iterator.
5641 (sse2p4_1): New mode attribute.
5642 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
5643 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
5644 iterator. Use const_int_operand instead of
5645 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
5646 exact_log2 in insn constraint to check integer value of operand 3.
5647
56482011-05-09 Uros Bizjak <ubizjak@gmail.com>
5649
5650 * config/i386/sse.md (blendbits): Remove mode attribute.
5651 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5652 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5653 Check integer value of operand 3 in insn constraint.
5654
0ca8de87
RG
56552011-05-09 Richard Guenther <rguenther@suse.de>
5656
5657 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
5658 for diagnostics.
5659 (lto_symtab_merge): Likewise. Do not register types here.
5660 (lto_symtab_merge_decls_2): Likewise.
5661 (lto_symtab_merge_decls_1): Likewise.
5662 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
5663 * gimple.c (enum gtc_mode): Declare.
5664 (gimple_types_compatible_p): Make static.
5665
a9e6994a
AK
56662011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5667
5668 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
5669 temporary register to match Pmode.
5670
fb55d62e
UB
56712011-05-09 Uros Bizjak <ubizjak@gmail.com>
5672
5673 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
5674 and *vec_concatv4si_1_avx.
5675
eb1485a6
UB
56762011-05-09 Uros Bizjak <ubizjak@gmail.com>
5677
5678 PR rtl-optimization/48927
5679 * ira-conflicts.c (commutative_constraint_p): Use
5680 recog_data.alternative_enabled_p to disable alternatives where
5681 "enabled" attribute is false.
5682 (get_dup_num): Ditto.
5683 * ira-lives.c (single_reg_class): Ditto.
5684 (ira_implicitly_set_insn_hard_regs): Ditto.
5685
c46d001a
EB
56862011-05-09 Eric Botcazou <ebotcazou@adacore.com>
5687
5688 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
5689 (dataflow_set_preserve_mem_locs): Likewise.
5690
56912011-05-09 Philipp Thomas <pth@suse.de>
5692
6d9e7c41
PT
5693 * config/mep/mep.c (mep_validate_vliw): Syntax description
5694 should not be translated.
5695
d371df6f
JM
56962011-05-09 Joseph Myers <joseph@codesourcery.com>
5697
5698 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
5699 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 5700 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
5701 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
5702 MIPS_ARCH_OPTION_NATIVE): Define.
5703 * config/mips/mips.c (mips_cpu_info_table): Move contents to
5704 mips-cpus.def.
5705 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
5706 mips_parse_cpu): Remove.
5707 (mips_cpu_info_from_opt, mips_default_arch): New.
5708 (mips_handle_option): Don't assert that global structures are in
5709 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
5710 (mips_option_override): Use new variables and functions to set
eb1485a6 5711 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
5712 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
5713 definition.
5714 * config/mips/mips.opt (march=): Use ToLower and Enum.
5715 (mips): Use ToLower, Enum and Var.
5716 (mtune=): Use ToLower and Enum.
5717 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
5718
4fc07af9
JH
57192011-05-08 Jan Hubicka <jh@suse.cz>
5720
5721 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
5722 Arrange type pairs to be UID ordered.
5723 (gimple_lookup_type_leader): Make inline.
5724
2cf320a8
NC
57252011-05-09 Nick Clifton <nickc@redhat.com>
5726
61d6def5
NC
5727 PR target/48899
5728 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
5729 PROCESSOR_DEFAULT.
5730
2cf320a8
NC
5731 PR target/48897
5732 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
5733 variable 's'.
5734
4f82319d
CLT
57352011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
5736
5737 * combine.c (simplify_comparison): Abstract out parts into...
5738 (simplify_compare_const): ... new function.
5739 (try_combine): Generalize parallel arithmetic/compare combining
5740 to call simplify_compare_const() and CANONICALIZE_COMPARE().
5741
74605a11
JH
57422011-05-08 Jan Hubicka <jh@suse.cz>
5743
5744 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
5745 (cgraph_create_virtual_clone): Call hooks once virtual clone
5746 is finished.
74605a11 5747 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
5748 * ipa-cp.c (ipcp_estimate_growth): Use
5749 estimate_ipcp_clone_size_and_time.
74605a11
JH
5750 * ipa-inline-transform.c (clone_inlined_nodes): Update.
5751 * lto-cgraph.c (input_node): Update.
5752 * ipa-inline.c (recursive_inlining): Update.
5753 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
5754 (evaluate_conditions_for_known_args): Break out from ...
5755 (evaluate_conditions_for_edge): ... here.
5756 (evaluate_conditions_for_ipcp_clone): New function.
5757 (inline_node_duplication_hook): Update clone summary based
5758 on parameter map.
5759 (estimate_callee_size_and_time): Rename to ...
5760 (estimate_node_size_and_time): take NODE instead of EDGE;
5761 take POSSIBLE_TRUTHS as argument.
5762 (estimate_callee_size_and_time): Update.
5763 (estimate_ipcp_clone_size_and_time): New function.
5764 (do_estimate_edge_time): Update.
5765
5c049507
RG
57662011-05-08 Richard Guenther <rguenther@suse.de>
5767
5768 PR middle-end/48908
5769 PR middle-end/48905
5770 * expmed.c (expand_shift_1): Compute adjusted constant shift
5771 amount manually.
5772
f64c36ba
EB
57732011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5774
5775 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
5776
c461a957
EB
57772011-05-08 Eric Botcazou <ebotcazou@adacore.com>
5778
5779 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
5780
7c74e556
JW
57812011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
5782
5783 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
5784
b4c0a884
JH
57852011-05-07 Jan Hubicka <jh@suse.cz>
5786
a9bcb3f0
EB
5787 * ipa-inline-transform.c (inline_call): Account when program size
5788 decreases.
b4c0a884 5789 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
5790 (edge_badness): Reorganize to be power 2 based; fix thinko when
5791 computing badness for negative growth; update comments to match
5792 reality; better dumps.
b4c0a884 5793
c99c0026
EB
57942011-05-07 Eric Botcazou <ebotcazou@adacore.com>
5795
5796 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
5797 type to bool and adjust comment.
5798 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
5799 (fold_mathfn_compare): Remove calls to global_bindings_p.
5800 (fold_inf_compare): Likewise.
5801 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
5802 * c-tree.h (global_bindings_p): Adjust prototype.
5803 * c-decl.c (global_bindings_p): Return bool and simplify.
5804
1400c8e5
ZD
58052011-05-07 Zdenek Dvorak <ook@ucw.cz>
5806
5807 PR tree-optimization/48837
5808 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
5809 when accumulator transformation is performed.
5810
5d0878e7
JH
58112011-05-06 Jan Hubicka <jh@suse.cz>
5812
a9bcb3f0
EB
5813 * i386.h (ix86_tune_indices): Add
5814 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 5815 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
5816 * i386.c (initial_ix86_tune_features): Add
5817 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
5818 (software_prefetching_beneficial_p): Remove predicate.
5819 (ix86_option_override_internal): Use new macro.
5820
58696ce5
JH
58212011-05-06 Jan Hubicka <jh@suse.cz>
5822
5823 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
5824
c47d0034
JH
58252011-05-06 Jan Hubicka <jh@suse.cz>
5826
5827 * cgraph.c (cgraph_add_thunk): Create real function node instead
5828 of alias node; finalize it and mark needed/reachale; arrange visibility
5829 to be right and add it into the corresponding same comdat group list.
5830 (dump_cgraph_node): Dump thunks.
5831 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
5832 cgraph_function_with_gimple_body_p,
5833 cgraph_first_function_with_gimple_body,
c47d0034
JH
5834 cgraph_next_function_with_gimple_body): New functions.
5835 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
5836 New macros.
5837 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
5838 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5839 * cgraphunit.c (cgraph_finalize_function): Only look into possible
5840 devirtualization when optimizing.
5841 (verify_cgraph_node): Verify thunks.
5842 (cgraph_analyze_function): Analyze thunks.
5843 (cgraph_mark_functions_to_output): Output thunks only in combination
5844 with function they are assigned to.
5845 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
5846 alias into normal node.
5847 (assemble_thunks): New functoin.
5848 (cgraph_expand_function): Use it.
5849 * lto-cgraph.c (lto_output_node): Stream thunks.
5850 (input_overwrite_node): Stream in thunks.
5851 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
5852 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
5853 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
5854 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
5855 (inline_analyze_function): Do not care about thunk jump functions.
5856 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
5857 * ipa-prop.c (ipa_prop_write_jump_functions): Use
5858 cgraph_function_with_gimple_body_p.
5859 * passes.c (do_per_function_toporder): Use
5860 cgraph_function_with_gimple_body_p.
c47d0034
JH
5861 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
5862 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
5863 (function_called_by_processed_nodes_p): Likewise.
5864
d8f426ec
JM
58652011-05-06 Joseph Myers <joseph@codesourcery.com>
5866
5867 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
5868 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
5869 entries.
5870 (mabi=): Replace with separate entries for mabi=altivec,
5871 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
5872 mabi=ieeelongdouble and mabi=ibmlongdouble.
5873 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
5874 check for -mabi=spe without SPE ABI support here.
5875 (rs6000_handle_option): Replace OPT_mabi_ handling with
5876 OPT_mabi_altivec and OPT_mabi_spe handling.
5877
80bde45b
CC
58782011-05-06 Cary Coutant <ccoutant@google.com>
5879
5880 * dwarf2out.c (contains_subprogram_definition): New function.
5881 (should_move_die_to_comdat): Call it.
5882
a91926b9
JL
58832011-05-06 Jeff Law <law@redhat.com>
5884
5885 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
5886 remove_ctrl_stmt_and_useless_edges.
5887 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
5888 (fixup_template_block, thread_single_edge): Likewise.
5889 (mark_threaded_blocks): Use THREAD_TARGET.
5890
1fc1b66d
AM
58912011-05-06 Alan Modra <amodra@gmail.com>
5892
5893 PR target/48900
5894 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
5895 const0_rtx as the arg to the dummy __tls_get_addr libcall.
5896
e194de64
UB
58972011-05-06 Uros Bizjak <ubizjak@gmail.com>
5898
5899 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
5900 constraint modifier to "r".
5901
d740dc9e
JM
59022011-05-06 Joseph Myers <joseph@codesourcery.com>
5903
5904 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
5905 fall through for OPT_mcmodel_.
5906
cab78b15
AK
59072011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5908
5909 * config/s390/s390.c (s390_asm_trampoline_template): Comment
5910 instruction sizes.
e194de64 5911 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 5912
ee6824ae
RR
59132011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5914
eb1485a6
UB
5915 PR target/47930
5916 * config/arm/arm.opt (marm): Document it.
5917 (mthumb): Reject negative variant.
ee6824ae 5918
9ef58464
UB
59192011-05-06 Uros Bizjak <ubizjak@gmail.com>
5920
5921 PR target/48898
5922 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5923 Fix typo in "ccvt" variable name.
5924
155b6176
TG
59252011-05-06 Tristan Gingold <gingold@adacore.com>
5926
5927 PR target/48895
5928 * config/vms/vms-ar.c (main): Remove cwd variable.
5929
3becc47b
JJ
59302011-05-06 Jakub Jelinek <jakub@redhat.com>
5931
5932 PR debug/48902
5933 * var-tracking.c (prepare_call_arguments): Move else before #endif.
5934
3d528853
NF
59352011-05-05 Nathan Froyd <froydnj@codesourcery.com>
5936
5937 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
5938 * gimplify.c (gimplify_switch_expr): Likewise.
5939 * omp-low.c (expand_omp_sections): Likewise.
5940 * tree-eh.c (lower_try_finally_switch): Likewise.
5941 (lower_eh_dispatch): Likewise.
5942 * tree.h (build_case_label): Declare.
5943 * tree.c (build_case_label): Define.
5944
deb5046b
JM
59452011-05-05 Jason Merrill <jason@redhat.com>
5946
5947 PR c++/40975
5948 * tree-inline.c (copy_tree_r): Use copy_statement_list.
5949 (copy_statement_list): Don't recurse.
5950 * stor-layout.c (copy_self_referential_tree_r): Don't allow
5951 STATEMENT_LIST.
5952
013c0411
JM
59532011-05-05 Joseph Myers <joseph@codesourcery.com>
5954
5955 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
5956 through from -mfpu= handling.
5957 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
5958
a0905f8b
BS
59592011-05-05 Bernd Schmidt <bernds@codesourcery.com>
5960
5961 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
5962 POST_MODIFY.
5963
fc4538e4
SE
59642011-05-05 Steve Ellcey <sje@cup.hp.com>
5965
5966 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
5967 for 11.31.
5968 (hppa[12]*-*-hpux11*): Ditto.
5969 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
5970 * config/ia64/hpux-unix2003.h: New.
5971 * config/pa/pa-hpux1131.opt: New.
5972 * config/pa/pa-hpux1131.h: New.
5973 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
5974 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 5975 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 5976
1e30c578
JJ
59772011-05-05 Jakub Jelinek <jakub@redhat.com>
5978
5979 PR debug/48853
5980 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
5981 instead of mode as 3rd argument to recursive call.
5982 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
5983 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
5984 VOIDmode.
5985 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
5986 don't give up if mode is Pmode and mem_mode is not VOIDmode.
5987 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
5988 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
5989
d19eb620
JB
59902011-05-05 Julian Brown <julian@codesourcery.com>
5991
5992 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
5993 parenthesis in D-register case.
5994
c860fe8c
JM
59952011-05-05 Joseph Myers <joseph@codesourcery.com>
5996
5997 * opt-functions.awk (var_type_struct): Handle Enum options.
5998 * optc-gen.awk: Don't check range of variables of character type.
5999 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
6000 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
6001 rs6000_sdata_name, rs6000_explicit_options): Remove.
6002 (rs6000_option_override_internal): Check for -malign-power here.
6003 Use global_options_set instead of rs6000_explicit_options.
6004 (rs6000_parse_fpu_option): Remove.
6005 (rs6000_handle_option): Access variables via opts and opts_set
6006 pointers. Use error_at and warning_at. Add fall-through
6007 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
6008 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
6009 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
6010 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
6011 here. Don't use rs6000_parse_fpu_option.
6012 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
6013 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
6014 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
6015 (mrecip=): Use Var.
6016 (mspe): Use Var and Save.
6017 (mtraceback=): Use Enum and Var.
6018 (rs6000_traceback_type): New Enum and EnumValue entries.
6019 (mfloat-gprs=): Use Enum, Var and Save.
6020 (rs6000_float_gprs): New Enum and EnumValue entries.
6021 (mlong-double-): use Var and Save.
6022 (msched-costly-dep=, minsert-sched-nops=): Use Var.
6023 (malign-): Use Enum and Var.
6024 (rs6000_alignment_flags): New Enum and EnumValue entries.
6025 (mfpu=): Use Enum.
6026 (fpu_type_t): New Enum and EnumValue entries.
6027 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6028 global_options_set instead of rs6000_explicit_options.
6029 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6030 global_options_set instead of rs6000_explicit_options.
6031 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6032 global_options_set instead of rs6000_explicit_options.
6033 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
6034 global_options_set instead of rs6000_explicit_options.
6035 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
6036 global_options_set instead of rs6000_explicit_options.
6037 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6038 global_options_set instead of rs6000_explicit_options.
6039 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
6040 definition.
6041 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6042 global_options_set instead of rs6000_explicit_options.
6043 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
6044 (rs6000_cmodel): New Enum and EnumValue entries.
6045 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
6046 global_options_set instead of rs6000_explicit_options.
6047 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
6048 (mtls-size=): Use Enum and Var.
6049 (rs6000_tls_size): New Enum and EnumValue entries.
6050
0691dde9
MM
60512011-05-05 Michael Matz <matz@suse.de>
6052
6053 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
6054 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
6055 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
6056 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
6057 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
6058 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
6059 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
6060 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
6061 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
6062 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
6063 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
6064 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
6065 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
6066 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
6067 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
6068 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
6069
86529a49
RG
60702011-05-05 Richard Guenther <rguenther@suse.de>
6071
6072 * expmed.c (expand_variable_shift): Rename to ...
6073 (expand_shift_1): ... this. Take an expanded shift amount.
6074 For rotates recurse directly not building trees for the shift amount.
6075 (expand_variable_shift): Wrap around expand_shift_1.
6076 (expand_shift): Adjust.
6077
d0228c2e
JJ
60782011-05-05 Jakub Jelinek <jakub@redhat.com>
6079
6080 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
6081
907a08d9
EB
60822011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6083
6084 * tree.h (get_pending_sizes): Remove prototype.
6085 (put_pending_size): Likewise.
6086 (put_pending_sizes): Likewise.
6087 * stor-layout.c (pending_sizes): Delete.
6088 (get_pending_sizes): Likewise.
6089 (put_pending_size): Likewise.
6090 (put_pending_sizes): Likewise.
6091 (variable_size): Do not call put_pending_size and tidy up.
6092 * function.h (struct function): Remove dont_save_pending_sizes_p.
6093 * lto-streamer-in.c (input_function): Do not stream it.
6094 * lto-streamer-out.c (output_function): Likewise.
6095 * tree-inline.c (initialize_cfun): Do not copy it.
6096 * c-decl.c (store_parm_decls): Do not set it.
6097 * omp-low.c (create_task_copyfn): Likewise.
6098 * tree-optimize.c (tree_rest_of_compilation): Likewise.
6099
386d9c57
UB
61002011-05-05 Uros Bizjak <ubizjak@gmail.com>
6101
6102 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
6103 conditions.
6104 (*movdf_internal): Ditto.
6105 (*movdf_internal_nointeger): Ditto.
6106 (*movsf_internal): Ditto.
6107
a04a722b
JM
61082011-05-05 Joseph Myers <joseph@codesourcery.com>
6109
6110 * c-decl.c (finish_decl): Don't call get_pending_sizes.
6111 (grokparm): Add parameter expr. Pass it to grokdeclarator.
6112 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
6113 (c_variable_size): Remove.
6114 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
6115 call put_pending_sizes.
6116 (get_parm_info): Add parameter expr. Use it to set
6117 arg_info->pending_sizes.
6118 (store_parm_decls): Use arg_info->pending_sizes instead or calling
6119 get_pending_sizes.
6120 * c-parser.c (c_parser_parms_declarator): Update call to
6121 c_parser_parms_list_declarator.
6122 (c_parser_parms_list_declarator): Take parameter expr. Update
6123 call to push_parm_decl. Update recursive call. Don't call
6124 get_pending_sizes. Update calls to get_parm_info.
6125 (c_parser_objc_method_definition): Update calls to
6126 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 6127 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
6128 (c_parser_objc_method_decl): Add parameter expr. Update call to
6129 grokparm.
386d9c57 6130 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
6131 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
6132 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
6133
c92a6f97
MH
61342011-05-05 Michael Hope <michael.hope@linaro.org>
6135
386d9c57
UB
6136 PR pch/45979
6137 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
6138 __ARM_EABI__ hosts.
c92a6f97 6139
07ea0048
UW
61402011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6141
6142 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6143 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6144 (spu_output_mi_thunk): New function.
6145
d634bfa1
RO
61462011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6147
6148 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
6149 targetm.asm_out.print_operand.
6150 * config/sol2.c: Include target.h.
6151
40fda55b
JH
61522011-05-04 Jan Hubicka <jh@suse.cz>
6153
6154 * ipa-inline.c (reset_edge_caches): New function.
6155 (update_caller_keys): Add check_inlinablity_for; do not
6156 reset edge caches; remove now unnecesary loop.
386d9c57 6157 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
6158 (update_all_callee_keys): Likewise.
6159 (inline_small_functions): Sanity check cache; update code
6160 recomputing it.
6161
0360f70d
BS
61622011-05-04 Bernd Schmidt <bernds@codesourcery.com>
6163
6164 PR rtl-optimization/47612
6165 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
6166 as the last insn of the sequence to be moved.
6167
7a994646
TB
61682011-05-04 Tobias Burnus <burnus@net-b.de>
6169
6170 PR fortran/48864
6171 * doc/invoke.texi (Ofast): Document that it
6172 enables Fortran's -fno-protect-parens.
6173
7a2f7208
UB
61742011-05-04 Uros Bizjak <ubizjak@gmail.com>
6175
6176 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
6177
a2d42931
EB
61782011-05-04 Eric Botcazou <ebotcazou@adacore.com>
6179
6180 * stor-layout.c (variable_size): Do not issue errors.
6181
f81b1a3d
RG
61822011-05-04 Richard Guenther <rguenther@suse.de>
6183
6184 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
6185 for array-ref indices.
6186 (tree_coverage_counter_addr): Likewise.
6187 (build_fn_info_type): Use size_int for index types.
6188 (build_gcov_info): Likewise.
6189
c62c040f
RG
61902011-05-04 Richard Guenther <rguenther@suse.de>
6191
6192 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
6193 to build_int_cst.
6194 * c-typeck.c (really_start_incremental_init): Use bitsize_int
6195 for constructor indices.
6196 (push_init_level): Likewise.
6197
1e3287d0
RG
61982011-05-04 Richard Guenther <rguenther@suse.de>
6199
6200 * explow.c (promote_mode): Move variable declarations before code.
6201
6c32445b
NF
62022011-05-04 Nathan Froyd <froydnj@codesourcery.com>
6203
6204 * tree.h (build_function_type_array): Declare.
6205 (build_varargs_function_type_array): Declare.
6206 (build_function_type_vec, build_varargs_function_type_vec): Define.
6207 * tree.c (build_function_type_array_1): New function.
6208 (build_function_type_array): New function.
6209 (build_varargs_function_type_array): New function.
6210
fdabf269
RS
62112011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
6212
6213 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
6214 before setting STMT_VINFO_TYPE.
6215
a207915a
UW
62162011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6217
6218 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
6219 instead of spu_pass_by_reference.
6220
5e617be8
AK
62212011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6222
6223 * calls.c (emit_library_call_value_1): Invoke
6224 promote_function_mode hook on libcall arguments.
6225 * explow.c (promote_function_mode, promote_mode): Handle TYPE
6226 argument being NULL.
6227 * targhooks.c (default_promote_function_mode): Lisewise.
6228 * config/s390/s390.c (s390_promote_function_mode): Likewise.
6229 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
6230
6231 * doc/tm.texi: Document that TYPE argument might be NULL.
6232
486d04be
SH
62332011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6234
6235 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
6236
9b19b026
SH
62372011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6238
6239 From Bernd Schmidt
6240 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
6241
502bc3df
RO
62422011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6243
6244 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
6245 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
6246 Move ...
6247 * mips-tfile.c: ... here.
6248 Don't include coretypes.h, tm.h, filenames.h.
6249 (saber_stop): Remove definition and all calls.
6250 [__SABER__]: Remove.
6251 (__LINE__): Remove default.
6252 (Size_t, Ptrdiff_t): Remove definitions.
6253 Replace by size_t, ptrdiff_t.
6254 [!MIPS_DEBUGGING_INFO]: Remove.
6255 (SHASH_SIZE, THASH_SIZE): Remove defaults.
6256 (progname): Add const.
6257 (STATIC): Remove.
6258 Replace all uses by static.
6259 (ALIGN_SYMTABLE_OFFSET): Remove default.
6260 * mips-tdump.c: Don't include coretypes.h, tm.h.
6261 Remove !MIPS_IS_STAB guard.
6262 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
6263 $(TM_H), filenames.h dependencies.
6264 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
6265
991eb6ef
SH
62662011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6267
6268 From Jie Zhang
6269 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
6270 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
6271
420ccc84
SH
62722011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6273
6274 From Bernd Schmidt
6275 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
6276 account and save/restore RETS.
6277 (PROFILE_BEFORE_PROLOGUE): Define.
6278 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
6279 the push insn to use predecrement.
6280
9f8d69ee
SH
62812011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
6282
6283 From Jie Zhang
6284 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
6285
662c03f4
NC
62862011-05-04 Nick Clifton <nickc@redhat.com>
6287
6288 * config/mn10300/mn10300.c: Include cfgloop.h.
6289 (DUMP): New macro.
6290 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
6291 Lcc or a FLcc insn into the instruction stream.
6292 (mn10300_block_contains_call): New function. Returns true if the
6293 given basic block contains a CALL insn.
6294 (mn10300_loop_contains_call_insn): New function. Returns true if
6295 the given loop contains a CALL insn.
6296 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
6297 to use the SETLB and Lcc or FLcc insns.
6298 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
6299 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
6300 * config/mn10300/mn10300.opt (msetlb): New option. Used to
6301 disable the SETLB optimization.
6302 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
6303 __SETLB__ or __NO_SETLB__.
6304 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
6305 (movsf_internal): Handle MDR register.
6306 (cmpsi): Make visible.
6307 (setlb): New pattern.
6308 (Lcc): New pattern.
6309 (FLcc): New pattern.
6310
843b6915
UB
63112011-05-04 Uros Bizjak <ubizjak@gmail.com>
6312
6313 PR target/48860
6314 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
6315 for reg<->xmm moves.
6316 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
6317 (vec_concatv2di_rex64_sse): Ditto.
6318 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
6319 (*vec_extractv2di_1_rex64): Ditto.
6320
6321 Revert:
6322 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
6323
6324 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6325 reg<->xmm moves.
6326 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
6327
d35936ab
RG
63282011-05-04 Richard Guenther <rguenther@suse.de>
6329
6330 * tree.h (int_const_binop): Remove notrunc argument.
6331 * fold-const.c (int_const_binop): Remove notrunc argument. Always
6332 create integer constants that are properly truncated.
6333 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
6334 (const_binop): Remove zero notrunc argument to int_const_binop.
6335 (size_binop_loc): Likewise.
6336 (fold_div_compare): Likewise.
6337 (maybe_canonicalize_comparison_1): Likewise.
6338 (fold_comparison): Likewise.
6339 (fold_binary_loc): Likewise.
6340 (multiple_of_p): Likewise.
6341 * expr.c (store_constructor): Likewise.
6342 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
6343 (maybe_fold_stmt_addition): Likewise.
6344 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
6345 * stor-layout.c (layout_type): Likewise.
6346 * tree-data-ref.c (tree_fold_divides_p): Likewise.
6347 * tree-sra.c (build_ref_for_offset): Likewise.
6348 (build_user_friendly_ref_for_offset): Likewise.
6349 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
6350 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6351 * tree-ssa-loop-niter.c (inverse): Likewise.
6352 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6353 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
6354 * tree-switch-conversion.c (check_range): Likewise.
6355 (build_constructors): Likewise.
6356 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6357 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
6358 (extract_range_from_assert): Likewise.
6359 (vrp_int_const_binop): Likewise.
6360 (extract_range_from_binary_expr): Likewise.
6361 (extract_range_from_unary_expr): Likewise.
6362 (check_array_ref): Likewise.
6363 (find_case_label_range): Likewise.
6364 (simplify_div_or_mod_using_ranges): Likewise.
6365 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
6366 comparing case labels for merging.
6367
8992c063
MW
63682011-05-03 Mark Wielaard <mjw@redhat.com>
6369
6370 * dwarf2out.c (debug_str_hash_forced): Removed.
6371 (gen_label_for_indirect_string): Removed.
6372 (get_debug_string_label): Removed.
6373 (AT_string_form): Generate label directly.
6374 (output_indirect_string): Test indirect_string_node for
6375 DW_FORM_strp instead of checking label and refcount.
6376 (prune_indirect_string): Removed.
6377 (prune_unused_types): Don't check debug_str_hash_forced or
6378 call prune_indirect_string.
6379
4868e6ea
AO
63802011-05-04 Alexandre Oliva <aoliva@redhat.com>
6381
6382 PR other/48093
6383 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
6384
01a5c0ab
AO
63852011-05-04 Alexandre Oliva <aoliva@redhat.com>
6386
6387 PR debug/47994
6388 PR debug/47919
6389 * combine.c (try_combine): Skip debug insns at m_split tests.
6390
6ac00218
MW
63912011-04-26 Mark Wielaard <mjw@redhat.com>
6392
6393 PR42288
6394 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
6395 when info_section_emitted.
6396
3af42a7b
JM
63972011-05-03 Joseph Myers <joseph@codesourcery.com>
6398
6399 * config/mips/mips-opts.h: New.
6400 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
6401 to mips-opts.h.
6402 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
6403 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
6404 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
6405 via opts pointer.
6406 * config/mips/mips.h (enum mips_code_readable_setting): Move to
6407 mips-opts.h.
6408 (mips_abi, mips_code_readable): Don't declare.
843b6915 6409 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
6410 (mabi=): Use Enum and Var.
6411 (mips_abi): New Enum and EnumValue entries.
6412 (mcode-readable=): Use Enum and Var.
6413 (mips_code_readable_setting): New Enum and EnumValue entries.
6414 (mr10k-cache-barrier=): Use Enum and Var.
6415 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
6416
1cb1a99f
JH
64172011-05-03 Jan Hubicka <jh@suse.cz>
6418
6419 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
6420 replace hash by pointer map.
6421 (cgraph_node_set_element_def, cgraph_node_set_element,
6422 const_cgraph_node_set_element, varpool_node_set_element_def,
6423 varpool_node_set_element, const_varpool_node_set_element): Remove.
6424 (free_cgraph_node_set, free_varpool_node_set): New function.
6425 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
6426 * tree-emutls.c: Free varpool node set.
6427 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
6428 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6429 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
6430 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6431 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
6432 Move here from ipa.c; implement using pointer_map
6433 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
6434 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
6435 debug_cgraph_node_set, varpool_node_set_new,
6436 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
6437 dump_varpool_node_set, debug_varpool_node_set):
6438 Move to ipa-uitls.c.
6439 * passes.c (ipa_write_summaries): Update.
6440
7f31f4db
SH
64412011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6442
7a2f7208
UB
6443 From Mike Frysinger:
6444 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
6445 bf542/bf544/bf547/bf548/bf549.
7f31f4db 6446
b70fce6d
UB
64472011-05-03 Uros Bizjak <ubizjak@gmail.com>
6448
6449 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
6450
265b1d82
SH
64512011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6452
6453 From Bernd Schmidt:
6454 * config/bfin/bfin.md (MOVCC): New mode_macro.
6455 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
6456 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
6457 comments from generated assembly.
6458
f0b568f3
SH
64592011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6460
6461 From Bernd Schmidt
6462 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
6463 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
6464 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
6465 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
6466 * config/bfin/lib1funcs.asm (___muldi3): New function.
6467
2c67cf6e
NF
64682011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6469
6470 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
6471 build_function_type_list instead of build_function_type.
6472 Rearrange initialization of `args' to do so.
6473
f9ac28ad
NF
64742011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6475
6476 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
6477 instead of build_function_type.
6478
22b8798c
NF
64792011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6480
6481 * config/rs6000/rs6000.c (spe_init_builtins): Call
6482 build_function_type_list instead of build_function_type.
6483 (paired_init_builtins, altivec_init_builtins): Likewise.
6484 (builtin_function_type): Likewise.
6485
4cb44528
NF
64862011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6487
6488 * config/sh/sh.c (sh_media_init_builtins): Call
6489 build_function_type_list instead of build_function_type.
6490
4c203a6a
NF
64912011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6492
6493 * config/sparc/sparc.c (sparc_file_end): Call
6494 build_function_type_list instead of build_function_type.
6495
d6a3d62b
NF
64962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6497
6498 * config/alpha/alpha.c (alpha_init_builtins): Call
6499 build_function_type_list instead of build_function_type.
6500
de530b86
NF
65012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6502
6503 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
6504 build_function_type_list instead of build_function_type.
6505
baeec5f2
NF
65062011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6507
6508 * config/iq2000/i2000.c (iq2000_init_builtins): Call
6509 build_function_type_list instead of build_function_type.
6510 Delete `endlink' variable.
6511
c19afe52
NF
65122011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6513
6514 * config/avr/avr.c (avr_init_builtins): Call
6515 build_function_type_list instead of build_function_type.
6516
a341df0a
NF
65172011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6518
6519 * config/picochip/picochip.c (picochip_init_builtins): Call
6520 build_function_type_list instead of build_function_type.
6521 Delete `endlink' variable.
6522
2102b1e1
NF
65232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6524
6525 * config/bfin/bfin.c (bfin_init_builtins): Call
6526 build_function_type_list instead of build_function_type.
6527
9f111209
SH
65282011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6529
6530 From Bernd Schmidt
6531 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
6532 that's not CONST_INT. Seemingly redundant check is due to PR39768.
6533
7071d064
SH
65342011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6535
6536 From Jie Zhang:
6537 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
6538 libbffastfp overrides libgcc when -mfast-fp.
6539
748f7574 65402011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
6541
6542 Originally from Bernd Schmidt
6543 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
6544 * config/bfin/bfin.c (override_options): Test it and error if
6545 TARGET_FDPIC.
6546
1a3a9152
SH
65472011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
6548
6549 Originally From Bernd Schmidt
6550 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
6551 FD-PIC.
6552
7134c090
JL
65532011-05-03 Jeff Law <law@redhat.com>
6554
6555 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
6556 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
6557 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
6558 than accessing AUX field directly. Free the AUX field before
6559 clearing it.
7134c090
JL
6560 (thread_block, thread_through_loop_header): Likewise.
6561 (thread_single_edge, mark_threaded_blocks): Likewise.
6562 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
6563 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 6564
2c7eebae
BS
65652011-05-03 Bernd Schmidt <bernds@codesourcery.com>
6566
6567 * function.c (init_function_start): Call decide_function_section.
6568 * varasm.c (decide_function_section): New function.
6569 (assemble_start_function): When not using
6570 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
6571 or first_function_block_is_cold.
6572 * rtl.h (decide_function_section): Declare.
6573
17038fcf
JJ
65742011-05-03 Uros Bizjak <ubizjak@gmail.com>
6575 Jakub Jelinek <jakub@redhat.com>
6576
6577 PR target/48774
6578 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
6579 only succeed if req_mode is the same as set_mode.
6580
3810076b
BS
65812011-05-03 Bernd Schmidt <bernds@codesourcery.com>
6582
6583 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
6584 * genemit.c (gen_exp): Handle RETURN.
6585 * emit-rtl.c (verify_rtx_sharing): Likewise.
6586 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
6587 * rtl.c (copy_rtx): RETURN is shared.
6588 * rtl.h (enum global_rtl_index): Add GR_RETURN.
6589 (ret_rtx): New.
6590 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
6591 * config/s390/s390.c (s390_emit_epilogue): Likewise.
6592 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
6593 * config/cris/cris.c (cris_expand_return): Likewise.
6594 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
6595 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
6596 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
6597 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
6598 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
6599 Likewise.
6600 * config/v850/v850.c (expand_epilogue): Likewise.
6601 * config/bfin/bfin.c (bfin_expand_call): Likewise.
6602 * config/arm/arm.md (epilogue): Likewise.
6603 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
6604 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
6605 variable to ret_reg.
6606
9efdb4ad
RG
66072011-05-03 Richard Guenther <rguenther@suse.de>
6608
6609 PR lto/48846
6610 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
6611 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
6612 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
6613
60a45536
RG
66142011-05-03 Richard Guenther <rguenther@suse.de>
6615
6616 * c-decl.c (grokdeclarator): Instead of looking at
6617 TREE_OVERFLOW check if the constant fits in the index type.
6618
3188ed59
RS
66192011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6620
6621 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
6622 (vec_store_lanes<mode><mode>): Likewise.
6623
272c6793
RS
66242011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6625
6626 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
6627 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
6628 convert_optab_index values.
6629 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
6630 * genopinit.c (optabs): Initialize the new optabs.
6631 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
6632 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
6633 (expand_STORE_LANES): New functions.
6634 * tree.h (build_array_type_nelts): Declare.
6635 * tree.c (build_array_type_nelts): New function.
6636 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
6637 (vect_model_load_cost): Likewise.
6638 (vect_store_lanes_supported, vect_load_lanes_supported)
6639 (vect_record_strided_load_vectors): Declare.
6640 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
6641 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
6642 (vect_transform_strided_load): Split out statement recording into...
6643 (vect_record_strided_load_vectors): ...this new function.
6644 * tree-vect-stmts.c (create_vector_array, read_vector_array)
6645 (write_vector_array, create_array_ref): New functions.
6646 (vect_model_store_cost): Add store_lanes_p argument.
6647 (vect_model_load_cost): Add load_lanes_p argument.
6648 (vectorizable_store): Try to use store-lanes functions for
6649 interleaved stores.
6650 (vectorizable_load): Likewise load-lanes and loads.
6651 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
6652 to vect_model_store_cost.
6653 (vect_build_slp_tree): Likewise vect_model_load_cost.
6654
0f6d54f7
RS
66552011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
6656
6657 * hooks.h (hook_bool_mode_uhwi_false): Declare.
6658 * hooks.c (hook_bool_mode_uhwi_false): New function.
6659 * target.def (array_mode_supported_p): New hook.
6660 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
6661 * doc/tm.texi: Regenerate.
6662 * stor-layout.c (mode_for_array): New function.
6663 (layout_type): Use it.
6664 * config/arm/arm.c (arm_array_mode_supported_p): New function.
6665 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
6666
b15eacc7
EB
66672011-05-03 Eric Botcazou <ebotcazou@adacore.com>
6668
6669 PR target/48723
6670 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
6671 for -fstack-check if the size to allocate is negative.
6672
575bfb00
LC
66732011-05-02 Lawrence Crowl <crowl@google.com>
6674
6675 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
6676 (timevar_cond_start): New for starting a timer only when it is not
6677 already running.
6678 (timevar_cond_stop): New for stopping a timer when it was not already
6679 running.
6680
6681 * timevar.c (timevar_stop): Enable start/stop timers to start again.
6682 (timevar_cond_start): New as above.
6683 (timevar_cond_stop): New as above.
6684
6685 * timevar.def: Add start/stop timers for compiler phases,
6686 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
6687 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
6688 and TV_PHASE_FINALIZE.
6689 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
6690 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
6691 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
6692 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
6693 Make unused TV_OVERLOAD into a start/stop timer.
6694
6695 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
6696 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
6697 to indicate that they are start/stop timers.
6698
6699 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
6700 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
6701 Move initialization to do_compile.
6702 (do_compile): Add initialization from above.
6703 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
6704
6705 * c-decl.c (c_write_global_declarations): Add start/stop of
6706 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
6707
6708 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
6709 or TV_PARSE_INLINE, as appropriate.
6710 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
6711 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
6712
3533b943
JM
67132011-05-02 Jason Merrill <jason@redhat.com>
6714
6715 PR c++/40975
6716 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
6717
2609a0ce
SM
67182011-05-02 Simon Martin <simartin@users.sourceforge.net>
6719
6720 PR c/35445
6721 * c-decl.c (finish_decl): Only create a composite if the types are
6722 compatible.
6723
6b0e4cbb
JM
67242011-05-02 Joseph Myers <joseph@codesourcery.com>
6725
6726 * config/fr30/fr30-protos.h (Mmode): Don't define.
6727 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
6728 definition where used.
6729 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
6730 define. Expand definitions where used.
6731 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
6732 Expand definitions where used.
6733 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
6734 rx_function_arg, rx_function_arg_advance,
6735 rx_function_arg_boundary): Expand definitions of those macros.
6736 * config/v850/v850-protos.h (Mmode): Don't define. Expand
6737 definition where used.
6738
4e938ce6
UB
67392011-05-02 Uros Bizjak <ubizjak@gmail.com>
6740
6741 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
6742 reg<->xmm moves.
6743 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
6744 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
6745 with *movv2sf_internal_rex64_avx.
6746 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
6747 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
6748 Use %v prefix in insn mnemonic to handle TARGET_AVX.
6749 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
6750 "vex" in "prefix" attribute calculation.
6751 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
6752
36019c19
SH
67532011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
6754
7a2f7208
UB
6755 PR target/47951
6756 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
6757 inputs match the output.
36019c19 6758
f69ea688
AS
67592011-05-02 Andreas Schwab <schwab@linux-m68k.org>
6760
6761 PR target/47955
6762 * config/m68k/m68k.c (m68k_expand_prologue): Set
6763 current_function_static_stack_size.
6764
c33406f5
JH
67652011-05-02 Jan Hubicka <jh@suse.cz>
6766
6767 * lto-streamer.c (lto_streamer_cache_insert_1,
6768 lto_streamer_cache_lookup, lto_streamer_cache_create,
6769 lto_streamer_cache_delete): Use pointer map instead of hashtable.
6770 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
6771
47c94d21
JM
67722011-05-02 Joseph Myers <joseph@codesourcery.com>
6773
6774 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
6775 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
6776 config/m68k/t-opts: New files.
6777 * config/m68k/m68k-tables.opt: New file (generated).
6778 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
6779 extra_options and m68k/t-opts to tmake_file.
6780 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
6781 (all_isas): Initialize using m68k-isas.def.
6782 (all_microarchs): Initialize using m68k-microarchs.def.
6783 (m68k_find_selection): Remove.
6784 (m68k_handle_option): Don't assert that global structures are in
6785 use. Use error_at. Access variables via opts pointer. Don't
6786 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
6787 directly for -m68020-40 and -m68020-60.
6788 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
6789 m68k_tune_entry here.
6790 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
6791 to m68k-opts.h.
6792 (m68k_library_id_string): Remove declaration.
4e938ce6 6793 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
6794 (m68k_library_id_string): New Variable.
6795 (march=, mcpu=, mtune=): Use Enum and Var.
6796
e562bf36
RG
67972011-05-02 Richard Guenther <rguenther@suse.de>
6798
6799 * varasm.c (output_constructor_regular_field): Compute zero-based
6800 index with double-ints. Make sure to ICE instead of producing
6801 wrong code.
6802 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
6803 in asserts. Properly use a signed type.
6804
6bec6c98
UB
68052011-05-02 Uros Bizjak <ubizjak@gmail.com>
6806
6807 * config/i386/sse.md (V): New mode iterator.
6808 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
6809 TARGET_SSE2.
6810 (V_256): Rename from AVX256MODE.
6811 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
6812 condition to all users.
6813 (VF1): Ditto.
6814 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
6815 condition to all users.
6816 (VF_128): Make V4SF mode unconditional.
6817 (VF_256): Rename from AVX256MODEF2P.
6818 (VI4F_128): Rename from SSEMODE4S.
6819 (VI8F_128): Rename from SSEMODE2D.
6820 (VI4F_256): Rename from AVX256MODE8P.
6821 (VI8F_256): Rename from AVX256MODE4P.
6822 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
6823 (ssescalarmodesuffix): Remove SF and DF modes.
6824 (SSEMODE124): Remove.
6825 (SSEMODE1248): Ditto.
6826 (SSEMODEF2P): Ditto.
6827 (AVXMODEF2P): Ditto.
6828 (AVXMODEFDP): Ditto.
6829 (AVXMODEFSP): Ditto.
6830 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
6831 unconditional.
6832 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
6833 unconditional.
6834 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
6835 xop_pcmov_<mode>256. Use V mode iterator.
6836
6837 Adjust RTX patterns globally for renamed mode attributes.
6838
2dfdcb4b
UW
68392011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6840
6841 * haifa-sched.c (sched_emit_insn): Emit insn before first
6842 non-scheduled insn. Inform back-end about new insn. Add
6843 new insn to scheduled_insns list.
6844
90bc4623
RG
68452011-05-02 Richard Guenther <rguenther@suse.de>
6846
6847 PR tree-optimization/48822
6848 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
6849 (process_scc): Indicate which iteration we start.
6850
bc0fe8cb
JH
68512011-05-02 Jan Hubicka <jh@suse.cz>
6852
6853 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
6854 (lto_section_overrun): New.
6855 * lto-section-out.c (append_block): Rename to ...
6856 (lto_append_block): ... this one; export.
6857 (lto_output_1_stream): Move lto lto-streamer.h
6858 (lto_output_data_stream): Update.
6859 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
6860 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
6861 functions.
6862
f070a9d1
RG
68632011-05-02 Richard Guenther <rguenther@suse.de>
6864
6865 * tree.c (tree_code_counts): New global array.
6866 (record_node_allocation_statistics): Count individual tree codes.
6867 (dump_tree_statistics): Dump individual code stats.
6868
09dfe187
JH
68692011-05-01 Jan Hubicka <jh@suse.cz>
6870
6871 * ipa-inline.c (caller_growth_limits): Fix thinko when
6872 looking for largest stack frame.
6873 * ipa-inline.h (dump_inline_summary): Declare.
6874 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
6875 on stack usage.
6876 (dump_inline_summary): Export.
6877 (debug_inline_summary): Declare as DEBUG_FUNCTION.
6878
6f76a878
AS
68792011-05-01 Anatoly Sokolov <aesok@post.ru>
6880
6881 * reginfo.c (memory_move_cost): Change rclass argument type form
6882 'enum reg_class' to reg_class_t.
6883 * reload.h (memory_move_cost): Update prototype.
6884 * postreload.c reload_cse_simplify_set): Change type dclass var to
6885 reg_class_t.
6886 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
6887 Update prototype.
6888 (ira_allocate_and_set_costs): Change aclass argument type form
6889 'enum reg_class' to reg_class_t.
6bec6c98 6890 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
6891 Change aclass argument type to reg_class_t.
6892 (update_conflict_hard_reg_costs): Change type aclass and pref vars
6893 to reg_class_t.
6894 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
6895 memory_move_cost call.
6896
6897 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
6898 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
6899 Change type tmp var to reg_class_t.
6900
9a4ac625
JH
69012011-04-30 Jan Hubicka <jh@suse.cz>
6902
6903 * ipa-inline.c (can_inline_edge_p): Disregard limits when
6904 inlining into function with flatten attribute.
6905 (want_inline_small_function_p): Be more realistic about inlining
6906 cold calls where callee size grows.
6907
dd8352ee
JH
69082011-04-30 Jan Hubicka <jh@suse.cz>
6909
6910 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
6911 flags.
6912
46e43d2b
AS
69132011-04-30 Anatoly Sokolov <aesok@post.ru>
6914
6915 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
6916 PRINT_OPERAND_PUNCT_VALID_P): Remove.
6917 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
6918 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
6919 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6920 (print_operand): Rename to...
6921 (sparc_print_operand): ...this. Make static. Adjust
6922 sparc_print_operand function call.
6923 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
6924 functions.
6925
ecb62563
JH
69262011-04-30 Jan Hubicka <jh@suse.cz>
6927
6bec6c98 6928 PR middle-end/48752
ecb62563
JH
6929 * ipa-inline.c (early_inliner): Disable when doing late
6930 addition of function.
6931
edb9b69e
JJ
69322011-04-30 Jakub Jelinek <jakub@redhat.com>
6933
be80a87e
JJ
6934 * dwarf2out.c (get_address_mode): New inline.
6935 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
6936 if not dwarf_strict emit
6937 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
6938 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
6939 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
6940 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
6941 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
6942 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
6943 mem_loc_descriptor callers.
6944 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
6945 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
6946 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
6947 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
6948 (base_types): New variable.
6949 (get_base_type_offset, calc_base_type_die_sizes,
6950 base_type_for_mode, mark_base_types, base_type_cmp,
6951 move_marked_base_types): New functions.
6952 (calc_die_sizes): Assert that die_offset is 0 or equal to
6953 next_die_offset.
6954 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
6955 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
6956 callers. If not dwarf_strict, call mem_loc_descriptor even for
6957 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
6958 (gen_subprogram_die): Don't give up on call site parameters
6959 with non-integral or large integral modes. Adjust
6960 mem_loc_descriptor callers.
6961 (prune_unused_types): Call prune_unused_types_mark on base_types
6962 vector entries.
6963 (resolve_addr): Call mark_base_types.
6964 (dwarf2out_finish): Call move_marked_base_types.
6965
edb9b69e
JJ
6966 PR tree-optimization/48809
6967 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
6968 type.
6969 (gen_inbound_check): Don't compute index_expr - range_min in utype
6970 again, instead reuse SSA_NAME initialized in build_arrays.
6971 Remove two useless gsi_for_stmt calls.
6972
a6545a3d
JL
69732011-04-29 Jeff Law <law@redhat.com>
6974
6975 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
6976
af8bca3c
MJ
69772011-04-29 Martin Jambor <mjambor@suse.cz>
6978
6979 * cgraph.h (cgraph_postorder): Remove declaration.
6980 * ipa-utils.h (ipa_free_postorder_info): Declare.
6981 (ipa_reverse_postorder): Likewise.
6982 * cgraphunit.c: Include ipa-utils.h.
6983 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
6984 * ipa-inline.c: Include ipa-utils.h.
6985 (ipa_inline): Update call to ipa_reverse_postorder.
6986 * ipa-pure-const.c (propagate_pure_const): Update call to
6987 ipa_reduced_postorder and ipa_print_order. Call
6988 ipa_free_postorder_info to clean up.
6989 (propagate_nothrow): Likewise.
6990 * ipa-reference.c (propagate): Removed a useless call to
6991 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
6992 and ipa_print_order. Call ipa_free_postorder_info to clean up.
6993 * ipa.c: Include ipa-utils.h.
6994 (ipa_profile): Update call to ipa_reverse_postorder.
6995 (cgraph_postorder): Moved to...
6996 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
6997 (ipa_utils_print_order): Renamed to ipa_print_order.
6998 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
6999 comments.
7000 (ipa_free_postorder_info): New function.
7001 * passes.c: Include ipa-utils.h.
7002 (do_per_function_toporder): Update call to ipa_reverse_postorder.
7003 (ipa_write_summaries): Likewise.
7004 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
7005 (cgraphunit.o): Likewise.
7006 (ipa.o): Likewise.
7007 (ipa-inline.o): Likewise.
7008
b15c64ee
JH
70092011-04-29 Jan Hubicka <jh@suse.cz>
7010
7011 * gcc.dg/tree-ssa/inline-10.c: New testcase.
7012 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
7013 * ipa-inline.h (clause_t): Turn into unsigned int.
7014 * ipa-inline-analysis.c (add_clause): Do more simplification.
7015 (and_predicates): Shortcut more cases.
7016 (predicates_equal_p): Move forward; check that clauses are properly
7017 ordered.
7018 (or_predicates): Shortcut more cases.
7019 (edge_execution_predicate): Rewrite as...
7020 (set_cond_stmt_execution_predicate): ... this function; handle
7021 __builtin_constant_p.
7022 (set_switch_stmt_execution_predicate): New .
7023 (compute_bb_predicates): New.
7024 (will_be_nonconstant_predicate): Update TODO.
7025 (estimate_function_body_sizes): Use compute_bb_predicates
7026 and free them later, always try to estimate if stmt is constant.
7027 (estimate_time_after_inlining, estimate_size_after_inlining):
7028 Gracefully handle optimized out edges.
7029 (read_predicate): Fix off by one error.
7030
a88fdc2a
NP
70312011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
7032
7033 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
7034
d984c8ef
XDL
70352011-04-27 Xinliang David Li <davidxl@google.com>
7036
7037 * tree-profile.c (init_ic_make_global_vars): Set
7038 tls attribute on ic vars.
7039 * coverage.c (coverage_end_function): Initialize
7040 function_list with zero.
7041
45a2c477
RG
70422011-04-29 Richard Guenther <rguenther@suse.de>
7043
7044 * builtins.c (fold_builtin_classify_type): Use integer_type_node
7045 for the type of the result.
7046 (fold_builtin_isascii): Likewise.
7047 (fold_builtin_toascii): Use integer_type_node where appropriate.
7048 (fold_builtin_logb): Likewise.
7049 (fold_builtin_frexp): Likewise.
7050 (fold_builtin_strstr): Likewise.
7051 (fold_builtin_strpbrk): Likewise.
7052 (fold_builtin_fputs): Likewise.
7053 (fold_builtin_sprintf): Likewise.
7054 (fold_builtin_snprintf): Likewise.
7055 (fold_builtin_printf): Likewise.
7056 (do_mpfr_remquo): Use a proper type for the assigned constant.
7057 (do_mpfr_lgamma_r): Likewise.
7058 * dwarf2out.c (resolve_one_addr): Use size_int.
7059 * except.c (init_eh): Likewise.
7060 (assign_filter_values): Use integer_type_node for filter values.
7061 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
7062 indices.
7063 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
7064 for EH region numbers.
7065 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
7066 for the shift amount.
7067
eb6c3df1
RG
70682011-04-29 Richard Guenther <rguenther@suse.de>
7069
7070 * expr.h (expand_shift): Rename to ...
7071 (expand_variable_shift): ... this.
7072 (expand_shift): Take a constant shift amount.
7073 * expmed.c (expand_shift): Rename to ...
7074 (expand_variable_shift): ... this.
7075 (expand_shift): New wrapper around expand_variable_shift.
7076 * expr.c (convert_move, emit_group_load_1, emit_group_store,
7077 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
7078 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
7079 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
7080 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
7081 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
7082 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
7083 emit_store_flag_1, emit_store_flag): Likewise.
7084 * builtins.c (expand_builtin_signbit): Likewise.
7085 * calls.c (load_register_parameters): Likewise.
7086 * function.c (assign_parm_setup_block): Likewise.
7087 * lower-subreg.c (resolve_shift_zext): Likewise.
7088 * optabs.c (widen_bswap, expand_abs_nojump,
7089 expand_one_cmpl_abs_nojump, expand_float): Likewise.
7090 * spu/spu.c (spu_expand_extv): Likewise.
7091 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7092
9f616812
RG
70932011-04-29 Richard Guenther <rguenther@suse.de>
7094
7095 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
7096 for the remapped region number.
7097 * predict.c (build_predict_expr): Use integer_type_node for the
7098 predict kind.
7099 * fold-const.c (fold_binary_loc): Use integer_type_node for
7100 the shift amount. Use a proper type for the PLUS_EXPR operand.
7101
b823cdfe
MM
71022011-04-29 Michael Matz <matz@suse.de>
7103
7104 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
7105 other trees that just builtins.
7106 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
7107
413581ba
RG
71082011-04-29 Richard Guenther <rguenther@suse.de>
7109
7110 * tree-nested.c (get_trampoline_type): Use size_int.
7111 (get_nl_goto_field): Likewise.
7112 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
7113 for all indexes.
7114 (lower_eh_constructs_2): Likewise.
7115 (lower_resx): Likewise.
7116 (lower_eh_dispatch): Likewise.
7117 * tree-mudflap.c (mf_build_string): Use size_int.
7118 (mudflap_register_call): Use integer_type_node for the flag.
7119 (mudflap_enqueue_constant): Use size_int.
7120 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
7121 instead of rebuilding it.
7122
5c04e9f4
RG
71232011-04-29 Richard Guenther <rguenther@suse.de>
7124
7125 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
7126 Handle OBJ_TYPE_REF.
7127 (find_func_aliases_for_call): Use it more consistently.
7128
5c24671b
AO
71292011-04-29 Alexandre Oliva <aoliva@redhat.com>
7130
7131 * haifa-sched.c (last_nondebug_scheduled_insn): New.
7132 (rank_for_schedule): Use it.
7133 (schedule_block): Set it.
7134
10adac51
XDL
71352011-04-28 David Li <davidxl@google.com>
7136
7137 * tree.c (crc32_string): Use crc32_byte.
7138 (crc32_byte): New function.
7139 * tree.h (crc32_byte): New function.
7140 * gcov.c (read_graph_file): Handle new cfg_cksum.
7141 (read_count_file): Ditto.
7142 * profile.c (instrument_values): Ditto.
7143 (get_exec_counts): Ditto.
7144 (read_profile_edge_counts): Ditto.
7145 (compute_branch_probabilities): Ditto.
7146 (compute_value_histograms): Ditto.
7147 (branch_prob): Ditto.
7148 (end_branch_prob): Ditto.
7149 * coverage.c (read_counts_file): Ditto.
7150 (get_coverage_counts): Ditto.
7151 (tree_coverage_counter_addr): Ditto.
7152 (coverage_checksum_string): Ditto.
7153 (coverage_begin_output): Ditto.
7154 (coverage_end_function): Ditto.
7155 (build_fn_info_type): Ditto.
7156 (build_fn_info_value): Ditto.
7157 * libgcov.c (gcov_exit): Ditto.
7158 * gcov-dump.c (tag_function): Ditto.
7159 (compute_checksum): Remove.
7160
5d6358a5
AM
71612011-04-29 Alan Modra <amodra@gmail.com>
7162
7163 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7164 unspec plus offset. Tidy macho code.
7165
85ad2ef5
MJ
71662011-04-29 Martin Jambor <mjambor@suse.cz>
7167
7168 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
7169 node instead of a decl. Update all callers.
7170 * cgraph.h: Update declaration.
7171
437f4a00
IR
71722011-04-28 Ira Rosen <ira.rosen@linaro.org>
7173
7174 PR tree-optimization/48765
7175 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
7176 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
7177 to indicate if loop aware SLP is being used. Scan the statements
7178 and update the vectorization factor according to the type of
7179 vectorization before statement analysis.
7180 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
7181 pass it to vect_analyze_loop_operations.
7182 (vectorizable_reduction): Set number of copies to 1 in case of pure
7183 SLP statement.
7184 * tree-vect-stmts.c (vectorizable_conversion,
7185 vectorizable_assignment, vectorizable_shift,
7186 vectorizable_operation, vectorizable_type_demotion,
7187 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
7188 Likewise.
7189 (vectorizable_condition): Move the check that it is not SLP
7190 vectorization before the number of copies check.
7191 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
7192 to vectorize the loop using SLP.
7193
c6fc44f3
JJ
71942011-04-28 Jakub Jelinek <jakub@redhat.com>
7195
7196 PR middle-end/48597
7197 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
7198 inline asm.
7199
6c0170ea
JM
72002011-04-28 Joseph Myers <joseph@codesourcery.com>
7201
7202 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
7203 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
7204 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7205 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7206 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
7207 linux*.h headers.
6bec6c98 7208 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
7209 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7210 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
7211 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 7212 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
7213 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
7214 REG_NAME.
7215 * config/i386/linux.h (REG_NAME): Don't define.
7216 * config/i386/linux64.h (REG_NAME): Don't define.
7217 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
7218 Undefine before defining.
7219
970dabbd
JH
72202011-04-28 Jan Hubicka <jh@suse.cz>
7221
6bec6c98
UB
7222 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
7223 nonconstant_names array.
970dabbd
JH
7224 (estimate_function_body_sizes): Build nonconstant_names array; handle
7225 BUILT_IN_CONSTANT_P.
7226
8d3e3924
RG
72272011-04-28 Richard Guenther <rguenther@suse.de>
7228
7229 PR bootstrap/48804
7230 Revert
7231 2011-04-28 Richard Guenther <rguenther@suse.de>
7232
7233 * tree-ssa-structalias.c (solve_constraints): Build succ graph
7234 as late as possible.
6bec6c98 7235
8576f20a
RG
72362011-04-28 Richard Guenther <rguenther@suse.de>
7237
7238 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
7239 (debug_constraint): Do it here.
7240 (dump_constraints): And here.
7241 (rewrite_constraints): And here.
7242 (dump_constraint_edge): Remove.
7243 (dump_constraint_graph): Rewrite to produce DOT output.
7244 (solve_constraints): Build succ graph as late as possible.
7245 Dump constraint graphs before and after solving.
7246
e38811ce
RG
72472011-04-28 Richard Guenther <rguenther@suse.de>
7248
7249 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7250 New function split out from ...
7251 (find_func_aliases): ... here. Call it.
7252 (find_func_aliases_for_call): Likewise.
7253
fbaf0d0c
GDR
72542011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
7255
7256 * internal-fn.h (internal_fn_name_array): Declare.
7257 (internal_fn_flags_array): Likewise.
7258
cbb734aa
UB
72592011-04-27 Uros Bizjak <ubizjak@gmail.com>
7260
7261 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
7262 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
7263 Move from sse.md.
7264 (ssemodefsuffix): Remove.
7265 (ssevecmodesuffix): New mode attribute.
7266 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
7267 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7268 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7269 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7270 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
7271 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
7272 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
7273 ssemodesuffix mode attribute.
7274 (float splitters): Use ssevecmodesuffix mode attribute.
7275 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
7276 (sseinsmode): Rename from avxvecmode.
7277 (avxsizesuffix): Rename from avxmodesuffix.
7278 (sseintvecmode): Rename from avxpermvecmode.
7279 (ssedoublevecmode): Rename from ssedoublesizemode.
7280 (ssehalfvecmode): Rename from avxhalfvecmode.
7281 (ssescalarmode): Rename from avxscalarmode.
7282 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
7283 templates for ssemodesuffix mode attribute.
7284 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
7285 mode attribute.
7286
7287 Adjust RTX patterns globally for renamed mode attributes.
7288
991278ab
JH
72892011-04-27 Jan Hubcika <jh@suse.cz>
7290
7291 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
7292 * ipa-inline-analysis.c: Include alloc-pool.h.
7293 (edge_predicate_pool): New.
7294 (trye_predicate_p): New function
7295 (false_predicate_p): New function.
7296 (add_clause): Sanity check that false clauses are "optimized";
7297 never add clauses to predicate that is already known to be false.
7298 (and_predicate): Use flase_predicate_p.
7299 (evaulate_predicate): Rename to ...
7300 (evaluate_predicate): ... this one; update all callers; assert
7301 that false is not listed among possible truths.
7302 (dump_predicate): Use true_predicate_p.
7303 (account_size_time): Use false_predicate_p.
7304 (evaulate_conditions_for_edge): Rename to ...
7305 (evaluate_conditions_for_edge) ... this one.
7306 (edge_set_predicate): New function.
7307 (inline_edge_duplication_hook): Duplicate edge predicates.
7308 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 7309 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
7310 (dump_inline_summary): Update.
7311 (estimate_function_body_sizes): Set edge predicates.
7312 (estimate_calls_size_and_time): Handle predicates.
7313 (estimate_callee_size_and_time): Update.
7314 (remap_predicate): Add toplev_predicate; update comment.
7315 (remap_edge_predicates): New function.
7316 (inline_merge_summary): Compute toplev predicate; update.
7317 (read_predicate): New function.
7318 (read_inline_edge_summary): Use it.
7319 (inline_read_section): Likewise.
7320 (write_predicate): New function.
7321 (write_inline_edge_summary): Use it.
7322 (inline_write_summary): Likewise.
7323 (inline_free_summary): Free alloc pool and edge summary vec.
7324
648b5f85
RG
73252011-04-27 Richard Guenther <rguenther@suse.de>
7326
7327 * tree-ssa-structalias.c (changed_count): Remove.
7328 (changed): Use a bitmap.
7329 (unify_nodes): Adjust.
7330 (do_sd_constraint): Likewise.
7331 (do_ds_constraint): Likewise.
7332 (do_complex_constraint): Likewise.
7333 (solve_graph): Likewise.
7334
4d5dcfb2
JH
73352011-04-27 Jan Hubicka <jh@suse.cz>
7336
7337 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
7338
200eb7d2
UB
73392011-04-27 Uros Bizjak <ubizjak@gmail.com>
7340
7341 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
7342 (avx_vperm2f128_*_operand): Ditto.
7343 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
7344 Use avx_vpermilp_parallel in insn condition.
7345 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
7346 Use avx_vperm2f128_parallel in insn condition.
7347
7d6e2521
RG
73482011-04-27 Richard Guenther <rguenther@suse.de>
7349
7350 * Makefile.in (tree-ssa-structalias.o): Remove
7351 gt-tree-ssa-structalias.h dependency.
7352 (GTFILES): Remove tree-ssa-structalias.c.
7353 * tree.c (allocate_decl_uid): New function.
7354 (make_node_stat): Use it.
7355 (copy_node_stat): Likewise.
7356 * tree.h (allocate_decl_uid): Declare.
7357 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
7358 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
7359 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 7360 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
7361 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
7362 (struct heapvar_map): Likewise.
7363 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
7364 heapvar_insert): Likewise.
7365 (make_heapvar_for): Rename to ...
7366 (make_heapvar): ... this. Simplify.
7367 (fake_var_decl_obstack): New global var.
7368 (build_fake_var_decl): New function.
7369 (make_constraint_from_heapvar): Adjust.
7370 (handle_lhs_call): Likewise.
7371 (create_function_info_for): Likewise.
7372 (intra_create_variable_infos): Likewise.
7373 (init_alias_vars): Allocate fake_var_decl_obstack.
7374 (init_alias_heapvars, delete_alias_heapvars): Remove.
7375 (compute_points_to_sets): Do not call init_alias_heapvars.
7376 (ipa_pta_execute): Likewise.
7377 (delete_points_to_sets): Free fake_var_decl_obstack.
7378
526ed6c2
UW
73792011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7380
7381 * config/spu/divmovti4.c (union qword_UTItype): New data type.
7382 (si_from_UTItype, si_to_UTItype): New functions.
7383 (__udivmodti4): Use them to implement type-punning.
7384 * config/spu/multi3.c (union qword_TItype): New data type.
7385 (si_from_TItype, si_to_TItype): New functions.
7386 (__multi3): Use them to implement type-punning.
7387
c187d33c
UW
73882011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7389
7390 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
7391
40982661
JH
73922011-04-27 Jan Hubicka <jh@suse.cz>
7393
7394 * ipa-prop.c (function_insertion_hook_holder): New holder.
7395 (ipa_add_new_function): New function.
200eb7d2
UB
7396 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
7397 Register/deregister holder.
40982661 7398
9aef53ee
RG
73992011-04-27 Richard Guenther <rguenther@suse.de>
7400
7401 PR tree-optimization/48772
200eb7d2 7402 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 7403
f63d806d
RG
74042011-04-27 Richard Guenther <rguenther@suse.de>
7405
7406 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
7407 TARGET_MEM_REF handling.
7408
e1ea7451
NC
74092011-04-27 Nick Clifton <nickc@redhat.com>
7410
9b5db25d
NC
7411 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
7412 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
7413 (REG_CLASS_NAMES): Likewise.
7414 (REG_CLASS_CONTENTS): Likewise.
7415 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
7416 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
7417 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
7418 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
7419 (EVEN_REGS): New macro. Alias for QUAD_REGS.
7420 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
7421 duplicate register classes.
97d20907 7422 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
7423 (frv_register_move_cost): Likewise.
7424
e1ea7451
NC
7425 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
7426 end of the regno_reg_class array.
7427
5c2f94b4
JJ
74282011-04-27 Jakub Jelinek <jakub@redhat.com>
7429
7430 PR c/48742
7431 * c-typeck.c (build_binary_op): Don't wrap arguments if
7432 int_operands is true.
7433
57a944d7
KK
74342011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
7435
7436 PR target/48767
7437 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
7438 targetm.calls.must_pass_in_stack for void type.
7439
898b8927
JH
74402011-04-26 Jan Hubicka <jh@suse.cz>
7441
7442 * cgraphbuild.c (build_cgraph_edges): Update call
7443 of cgraph_create_edge and cgraph_create_indirect_edge.
7444 * cgraph.c (cgraph_create_edge_including_clones,
7445 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
7446 cgraph_update_edges_for_call_stmt_node): Do not take nest
7447 argument; do not initialize call_stmt_size/time.
7448 (dump_cgraph_node): Do not dump nest.
7449 (cgraph_clone_edge): Do not take loop_nest argument;
7450 do not propagate it; do not clone call_stmt_size/time.
7451 (cgraph_clone_node): Likewise.
7452 (cgraph_create_virtual_clone): Update.
7453 * cgraph.h (struct cgraph_edge): Remove
7454 call_stmt_size/call_stmt_time/loop_nest.
7455 (cgraph_create_edge, cgraph_create_indirect_edge,
7456 cgraph_create_edge_including_clones, cgraph_clone_node): Update
7457 prototype.
7458 * tree-emutls.c (gen_emutls_addr): Update.
7459 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
7460 loop_nest; handle indirect calls, too.
7461 (clone_inlined_nodes): Do not care about updating inline summaries.
7462 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
7463 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
7464 stream call_stmt_size/call_stmt_time/loop_nest.
7465 * ipa-inline.c (edge_badness): Update.
7466 (ipa_inline): dump summaries after inlining.
7467 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 7468 New.
898b8927
JH
7469 (inline_edge_summary): New function.
7470 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
7471 (inline_edge_removal_hook): Handle edge summaries.
7472 (inline_edge_duplication_hook): New hook.
7473 (inline_summary_alloc): Alloc hooks.
7474 (initialize_growth_caches): Do not register removal hooks.
7475 (free_growth_caches); Do not free removal hook.
7476 (dump_inline_edge_summary): New function.
7477 (dump_inline_summary): Use it.
7478 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
7479 (inline_update_callee_summaries): New function.
7480 (inline_merge_summary): Use it.
7481 (do_estimate_edge_time, do_estimate_edge_growth): Update.
7482 (read_inline_edge_summary): New function.
7483 (inline_read_section): Use it.
7484 (write_inline_edge_summary): New function.
7485 (inline_write_summary): Use it.
7486 (inline_free_summary): Free edge new holders.
7487 * tree-inline.c (copy_bb): Update.
7488
ffa03772
JM
74892011-04-26 Jason Merrill <jason@redhat.com>
7490
7491 * tree-eh.c (lower_try_finally_switch): Create the label along with
7492 the CASE_LABEL_EXPR.
7493
6d7b45ad
DM
74942011-04-26 David S. Miller <davem@davemloft.net>
7495 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7496
7497 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
7498 * configure: Regenerate.
7499
df10b6d4
MM
75002011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
7501
7502 PR target/48258
7503 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
7504 reduction.
7505 (VEC_reduc): New code iterator and splitters for vector reduction.
7506 (VEC_reduc_name): Ditto.
7507 (VEC_reduc_rtx): Ditto.
7508 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
7509 (reduc_<VEC_reduc_name>_v4sf): Ditto.
7510
7511 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7512 support for extracting SF on VSX.
7513
7514 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
7515 generating xscvspdp.
7516 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
7517 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
7518 double add, minimum, maximum vector reduction.
7519 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
7520 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
7521 optimize double vector reduction.
7522 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
7523
35a5db04
JM
75242011-04-26 Joseph Myers <joseph@codesourcery.com>
7525
7526 * config/fr30/fr30.h (inhibit_libc): Don't define.
7527 * config/m32r/m32r-protos.h: Correct comment.
7528 * config/v850/v850.h (GHS_default_section_names,
7529 GHS_current_section_names): Use tree, not union tree_node *.
7530
2f964ad6
XDL
75312011-04-26 Xinliang David Li <davidxl@google.com>
7532
200eb7d2 7533 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
7534 * c-family/c-opts.c (c_common_handle_option): Set
7535 warn_maybe_uninitialized.
7536 * opts.c (common_handle_option): Ditto.
7537 * common.opt: New option.
7538 * tree-ssa.c (warn_uninit): Add one more parameter.
7539 (warn_uninitialized_var): Pass warning code.
7540 * tree-flow.h: Interface change.
7541
9c7bd91a
RO
75422011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7543
200eb7d2 7544 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
7545 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
7546 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
7547
c2f36e21
RO
75482011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7549
7550 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
7551 * config/mips/mips.opt (mmips-tfile): Remove.
7552
7553 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
7554 mips-tdump reference to ...
200eb7d2 7555 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
7556 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
7557 reference by Tru64 UNIX.
7558
2c9da85b
JJ
75592011-04-26 Jakub Jelinek <jakub@redhat.com>
7560
0c5f6539
JJ
7561 PR debug/48768
7562 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
7563 is error_mark_node, set value to NULL.
7564
2c9da85b
JJ
7565 PR tree-optimization/48734
7566 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
7567 if return value from maybe_fold_*_comparsions isn't something
7568 the code is prepared to handle.
7569
77fa1d54
UB
75702011-04-26 Uros Bizjak <ubizjak@gmail.com>
7571
7572 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
7573 mode check.
7574 (ext_QIreg_nomode_operands): Remove.
7575 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
7576 (*andsi_1): Ditto.
7577 (*andhi_1): Ditto.
7578
0e2a6c2b
AS
75792011-04-26 Andrew Stubbs <ams@codesourcery.com>
7580
7581 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
7582
961562d8
RB
75832011-04-26 Richard Guenther <rguenther@suse.de>
7584
7585 * c-typeck.c (build_unary_op): Do not expand array-refs via
7586 pointer arithmetic. Only adjust qualifiers for function types.
7587
75882011-04-26 Richard Guenther <rguenther@suse.de>
7589
7590 PR middle-end/48694
7591 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
7592 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
7593 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
7594 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 7595
a0d260fc
PC
75962011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
7597
6bec6c98 7598 * doc/extend.texi: Document __underlying_type.
a0d260fc 7599
4d583bb9
SB
76002011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
7601
7602 * config/rs6000/titan.md (automata_option "progress"): Remove.
7603
1f3fcdc3
JL
76042011-04-25 Jeff Law <law@redhat.com>
7605
7606 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
7607
e5b0dad8
JK
76082011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
7609
7610 * system.h (ENUM_BITFIELD): Remove.
7611
5157a881 76122011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 7613 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
7614
7615 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
7616 for STORE_FLAG_VALUE==-1 case.
7617
ed4c109e
RS
76182011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
7619
7620 PR target/43804
7621 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
7622 LEGITIMATE_PIC_OPERAND_P.
7623
f3181aa2
JH
76242011-04-24 Jan Hubicka <jh@suse.cz>
7625
7626 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
7627 WPA hack.
77fa1d54
UB
7628 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
7629 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
7630 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
7631 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
7632 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
7633 Sanity check predicate length.
7634 (remap_predicate): Likewise; sanity check jump functions.
7635 (inline_read_section, inline_write_summary): Sanity check
7636 predicate length.
7637
5307cbaa
PC
76382011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
7639
7640 PR other/48748
7641 * doc/extend.texi (Type Traits): Document __is_standard_layout,
7642 __is_literal_type, and __is_trivial; update throughout about
7643 possibly cv-qualified void types.
7644
bebd5f99
GP
76452011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
7646
7647 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
7648 testsuite and make it version agnostic.
7649
7ee28a74
JH
76502011-04-22 Jan Hubicka <jh@suse.cz>
7651
7652 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
7653
16997bc0
JJ
76542011-04-23 Jakub Jelinek <jakub@redhat.com>
7655
7656 PR c/48685
7657 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
7658 to VOID_TYPE even around MODIFY_EXPR.
7659
f94d4ab1
MS
76602011-04-22 Mike Stump <mikestump@comcast.net>
7661
1a84c183 7662 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
7663 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
7664 comment.
7665
632b4f8e
JH
76662011-04-22 Jan Hubicka <jh@suse.cz>
7667
7668 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
7669 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
7670 ipa-prop.c; update all uses.
632b4f8e 7671 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
7672 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
7673 merge summary of inlined function into former caller.
632b4f8e
JH
7674 * ipa-inline.c (max_benefit): Remove.
7675 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
7676 (update_caller_keys): Use
7677 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
7678 (update_callee_keys): Likewise.
7679 (update_all_callee_keys): Likewise.
77fa1d54
UB
7680 (inline_small_functions): Do not collect max_benefit; do not reset
7681 estimated_growth; call free_growth_caches and initialize_growth_caches.
7682 * ipa-inline.h (struct condition, type clause_t, struct predicate,
7683 struct size_time_entry): New structures.
632b4f8e 7684 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
7685 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
7686 and estimated_growth.
632b4f8e
JH
7687 (edge_growth_cache_entry): New structure.
7688 (node_growth_cache, edge_growth_cache): New global vars.
7689 (estimate_growth): Turn into inline.
7690 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
7691 initialize_growth_caches, free_growth_caches): Declare.
7692 (estimate_edge_growth): Rewrite.
7693 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
7694 (reset_node_growth_cache, reset_edge_growth_cache): New inline
7695 functions.
632b4f8e
JH
7696 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
7697 (NUM_CONDITIONS): New constant.
7698 (predicate_conditions): New enum.
7699 (IS_NOT_CONSTANT): New constant.
7700 (edge_removal_hook_holder): New var.
7701 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
7702 (true_predicate, single_cond_predicate, false_predicate,
7703 not_inlined_predicate, add_condition, add_clause, and_predicates,
7704 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
7705 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
7706 evaulate_conditions_for_edge): New functions.
7707 (inline_summary_alloc): Move to heap.
7708 (inline_node_removal_hook): Clear condition and entry vectors.
7709 (inline_edge_removal_hook): New function.
7710 (initialize_growth_caches, free_growth_caches): New function.
7711 (dump_inline_summary): Update.
7712 (edge_execution_predicate): New function.
7713 (will_be_nonconstant_predicate): New function.
7714 (estimate_function_body_sizes): Compute BB and constantness predicates.
7715 (compute_inline_parameters): Do not clear estimated_growth.
7716 (estimate_edge_size_and_time): New function.
7717 (estimate_calls_size_and_time): New function.
7718 (estimate_callee_size_and_time): New function.
7719 (remap_predicate): New function.
7720 (inline_merge_summary): New function.
7721 (do_estimate_edge_time): New function based on...
7722 (estimate_edge_time): ... this one.
7723 (do_estimate_edge_growth): New function.
7724 (do_estimate_growth): New function based on....
7725 (estimate_growth): ... this one.
7726 (inline_analyze_function): Analyze after deciding on jump functions.
7727 (inline_read_section): New function.
7728 (inline_read_summary): Use it.
7729 (inline_write_summary): Write all the new data.
7730 * ipa-prop.c (ipa_get_param_decl_index): Export.
7731 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
7732 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
7733 Declare.
7734 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
7735 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
7736 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
7737 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
7738 cgraph_edge_inlinable_p): Remove.
7739 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
7740 (cgraph_process_new_functions): Update call of
7741 compute_inline_parameters.
632b4f8e 7742
1df5b0db
RG
77432011-04-22 Richard Guenther <rguenther@suse.de>
7744
7745 * tree.c (build_int_cst): Properly create canonicalized integer
7746 constants.
7747 (build_int_cst_type): Remove scary comments.
7748
ae01169c
XDL
77492011-04-22 Xinliang David Li <davidxl@google.com>
7750
7751 * toplev.c (process_options): Enable -Werror=coverage-mismatch
7752 by default when -Wno-error is not specified.
7753 * opts-global.c (decode_options): Remove call to
7754 control_warning_options.
7755
93dfac24
JJ
77562011-04-22 Jakub Jelinek <jakub@redhat.com>
7757
7758 PR tree-optimization/48717
7759 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
7760 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
7761
1b5f5069
JM
77622011-04-22 Joseph Myers <joseph@codesourcery.com>
7763
7764 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
7765 definition where used.
7766
144f4153
JJ
77672011-04-22 Jakub Jelinek <jakub@redhat.com>
7768
7769 PR c/48716
7770 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
7771 TREE_STATIC variables declared inside of some OpenMP construct.
7772
f9fd305b
MJ
77732011-04-22 Martin Jambor <mjambor@suse.cz>
7774
7775 PR middle-end/48585
1d284ec5 7776 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 7777
49819fef
AM
77782011-04-22 Alexander Monakov <amonakov@ispras.ru>
7779
7780 PR c/36750
7781 * c-typeck.c (pop_init_level): Do not warn about initializing
7782 with ` = {0}'.
7783
401f6699
AM
77842011-04-22 Alan Modra <amodra@gmail.com>
7785
7786 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
7787 when returning call_cookie.
7788 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
7789 pointers, to functions with no more vector args than the current
7790 function, and some non-local calls for ABI_V4.
7791 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
7792 sibcall_nonlocal_aix64): Combine to ..
7793 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
7794 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
7795 (sibcall_value_nonlocal_aix<mode>): ..likewise.
7796 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
7797 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
7798 operand.
7799 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
7800 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
7801 sibcall_value_symbolic_64): Delete.
7802
903d1e67
XDL
78032011-04-21 Xinliang David Li <davidxl@google.com>
7804
7805 * cgraph.h: Remove pid.
7806 * cgraph.c: Remove pid.
7807 * value-prof.c (init_node_map): New function.
7808 (del_node_map): New function.
7809 (find_func_by_funcdef_no): New function.
7810 (gimple_ic_transform): Call new function.
7811 * cgraphunit.c (cgraph_finalize_function): Remove pid.
7812 * function.c (get_last_funcdef_no): New function.
7813 * function.h (get_last_funcdef_no): New function.
7814 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
7815 to libgcov function.
7816 (tree-profiling): Call node map init and delete function.
7817
7378e95f
ILT
78182011-04-21 Ian Lance Taylor <iant@google.com>
7819
7820 * godump.c (go_format_type): Use exported Go name for anonymous
7821 field name.
7822
e84a6fcf
NF
78232011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7824
7825 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
7826 Call builtin_function_type_list instead of builtin_function_type.
7827 (UNARY, BINARY, TRINARY, QUAD): Likewise.
7828
4fe058e2
NF
78292011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7830
7831 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
7832 build_function_type_list instead of build_function_type.
7833 Delete variable `endlink'.
7834
1ba0a2d2
NF
78352011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7836
7837 * config/s390/s390.c (s390_init_builtins): Call
7838 build_function_type_list instead of build_function_type.
7839
c0676219
NF
78402011-04-21 Nathan Froyd <froydnj@codesourcery.com>
7841
7842 * config/ia64/ia64.c (ia64_init_builtins): Call
7843 build_function_type_list instead of builtin_function_type.
7844
6ddfda8a
ER
78452011-04-21 Easwaran Raman <eraman@google.com>
7846
3a6448ea 7847 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
7848 (add_stack_var): ...and its reference here...
7849 (expand_stack_vars): ...and here.
7850 (stack_var_cmp): Sort by descending order of size.
7851 (partition_stack_vars): Change heuristic.
1d284ec5 7852 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
7853 (dump_stack_var_partition): Add newline after each partition.
7854
23756963
DA
78552011-04-21 Dimitrios Apostolou <jimis@gmx.net>
7856 Jeff Law <law@redhat.com>
7857
77fa1d54 7858 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
7859 * gengtype.c (matching_file_name_substitute): Likewise.
7860
aa2a43d2
RG
78612011-04-21 Richard Guenther <rguenther@suse.de>
7862
7863 PR lto/48703
1d284ec5 7864 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 7865
4d931f41
EB
78662011-04-21 Eric Botcazou <ebotcazou@adacore.com>
7867
7868 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
7869
f103fa7a
RG
78702011-04-21 Richard Guenther <rguenther@suse.de>
7871
7872 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
7873 file name.
7874
e19f6650
RG
78752011-04-21 Richard Guenther <rguenther@suse.de>
7876
7877 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7878 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
7879 Use DECL_P, not SSA_VAR_P.
7880 (ptr_derefs_may_alias_p): Likewise.
7881 (ptr_deref_may_alias_ref_p_1): Likewise.
7882 (decl_refs_may_alias_p): Likewise.
7883 (refs_may_alias_p_1): Likewise.
7884 (ref_maybe_used_by_call_p_1): Likewise.
7885 (call_may_clobber_ref_p_1): Likewise.
7886 (indirect_ref_may_alias_decl_p): Assume indirect refrences
7887 are either MEM_REF or TARGET_MEM_REF.
7888 (indirect_refs_may_alias_p): Likewise.
7889 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
7890 for MEM_EXPR of indirect calls.
7891
9d1831bb
TG
78922011-04-21 Tristan Gingold <gingold@adacore.com>
7893
7894 * vmsdbgout.c (write_srccorr): Compute file length from the string.
7895 (dst_file_info_struct): Remove flen field.
7896 (lookup_filename): Remove code that set flen field.
7897
f199c029
TG
78982011-04-21 Tristan Gingold <gingold@adacore.com>
7899
7900 * config/ia64/ia64.c (ia64_start_function): Add a guard.
7901
2894086e
UB
79022011-04-21 Uros Bizjak <ubizjak@gmail.com>
7903
7904 PR target/48708
7905 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
7906 vec_extract and vec_concat for non-SSE4_1 targets.
7907
53f94a5c
RG
79082011-04-21 Richard Guenther <rguenther@suse.de>
7909
7910 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
7911 return statements.
7912
f0dca5ba
JM
79132011-04-21 Joseph Myers <joseph@codesourcery.com>
7914
7915 * config/i386/cygming.h (union tree_node, TREE): Don't define or
7916 undefine.
7917 (FILE): Don't undefine.
7918
984514ac
JM
79192011-04-21 Joseph Myers <joseph@codesourcery.com>
7920
7921 * config/alpha/alpha.c (struct machine_function): Use rtx, not
7922 struct rtx_def *.
7923 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
7924 struct rtx_def *.
7925 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 7926 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
7927 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
7928 rtx_def *.
7929 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
7930 definitions where used.
7931 * config/microblaze/microblaze.h (struct microblaze_args): Use
7932 rtx, not struct rtx_def *.
7933 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
7934 rtx_def *.
2894086e
UB
7935 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
7936 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
7937 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
7938 not struct rtx_def *.
7939 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
7940 struct rtx_def *.
7941 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
7942 rtx_def *.
2894086e 7943 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 7944
0b5a2724
RS
79452011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7946
7947 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
7948 operand_equal_p to compare DR_BASE_ADDRESSes.
7949 (vect_check_interleaving): Likewise.
7950
4b18d683
RS
79512011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7952
7953 PR target/46329
7954 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
7955 for all Neon struct constants.
7956
1a627b35
RS
79572011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
7958
7959 * target.def (legitimate_constant_p): New hook.
7960 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
7961 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
7962 * doc/tm.texi: Regenerate.
7963 * hooks.h (hook_bool_mode_rtx_true): Declare.
7964 * hooks.c (hook_bool_mode_rtx_true): Define.
7965 * system.h (LEGITIMATE_CONSTANT_P): Poison.
7966 * calls.c (precompute_register_parameters): Replace uses of
7967 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
7968 (emit_library_call_value_1): Likewise.
7969 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
7970 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
7971 * ira-costs.c (scan_one_insn): Likewise.
7972 * recog.c (general_operand, immediate_operand): Likewise.
7973 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
7974 * reload1.c (init_eliminable_invariants): Likewise.
7975
7976 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
7977 mode argument.
7978 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
7979 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
7980 argument.
7981 (TARGET_LEGITIMATE_CONSTANT_P): Define.
7982 * config/alpha/predicates.md (input_operand): Update call to
7983 alpha_legitimate_constant_p.
7984
7985 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
7986 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
7987 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
7988 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
7989 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
7990 (arm_legitimate_constant_p): New functions.
7991 (arm_cannot_force_const_mem): Make static.
7992
7993 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
7994
7995 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
7996 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
7997 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
7998 instead of bfin_legitimate_constant_p.
7999 (bfin_legitimate_constant_p): Make static. Add a mode argument.
8000 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8001
8002 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
8003
8004 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
8005
8006 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
8007 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
8008 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8009 (frv_legitimate_constant_p): Make static. Add a mode argument.
8010
8011 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
8012 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
8013 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
8014
8015 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
8016 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
8017 * config/i386/i386.c (legitimate_constant_p): Rename to...
8018 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
8019 argument.
8020 (ix86_cannot_force_const_mem): Update accordingly.
8021 (ix86_legitimate_address_p): Likewise.
8022 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8023 * config/i386/i386.md: Update commentary.
8024
8025 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
8026 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
8027 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8028 (ia64_legitimate_constant_p): Make static. Add a mode argument.
8029
8030 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
8031
8032 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
8033 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
8034 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8035 (lm32_legitimate_constant_p): Make static. Add a mode argument.
8036
8037 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
8038 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
8039 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
8040
8041 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
8042 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8043 (m32r_legitimate_constant_p): New function.
8044
8045 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
8046 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
8047 LEGITIMATE_CONSTANT_P.
8048 (LEGITIMATE_CONSTANT_P): Delete.
8049 * config/m68k/m68k.c (m68k_expand_prologue): Call
8050 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
8051 (m68k_legitimate_constant_p): New function.
8052 * config/m68k/m68k.md: Update comments.
8053
8054 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
8055 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8056 (mcore_legitimate_constant_p): New function.
8057
8058 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
8059 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
8060 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
8061 Add a mode argument.
8062 (mep_legitimate_address): Update accordingly.
8063 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8064
8065 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
8066 Delete.
8067 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
8068 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
8069 static. Check OP's mode for VOIDmode.
8070 (microblaze_legitimate_constant_p): New function.
8071 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8072
8073 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
8074 * config/mips/mips.c (mips_legitimate_constant_p): New function.
8075 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
8076 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8077 * config/mips/predicates.md: Update comments.
8078
8079 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
8080 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
8081 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8082 (mmix_legitimate_constant_p): Make static, return a bool, and take
8083 a mode argument.
8084 (mmix_print_operand_address): Update accordingly.
8085
8086 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
8087 Delete.
8088 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
8089 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
8090 static. Add a mode argument.
1a627b35
RS
8091 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8092
8093 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
8094
8095 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
8096 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8097 (pa_legitimate_constant_p): New function.
8098
8099 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
8100
8101 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
8102 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8103 (pdp11_legitimate_constant_p): New function.
8104
8105 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
8106 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8107 (rs6000_legitimate_constant_p): New function.
8108
8109 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
8110 (rx_legitimate_constant_p): ...this.
8111 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
8112 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
8113 (rx_legitimate_constant_p): ...this.
8114 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8115 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
8116
8117 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
8118 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
8119 * config/s390/s390.c (legitimate_constant_p): Rename to...
8120 (s390_legitimate_constant_p): ...this. Make static, return a bool,
8121 and add a mode argument.
8122 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8123
8124 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
8125
8126 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
8127 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8128 (sh_legitimate_constant_p): New function.
8129
8130 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
8131 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
8132 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8133 (legitimate_constant_p): Rename to...
8134 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
8135 argument.
8136 (constant_address_p): Update accordingly.
8137
8138 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
8139 argument and return a bool.
8140 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
8141 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8142 (spu_legitimate_constant_p): Add a mode argument and return a bool.
8143 (spu_rtx_costs): Update accordingly.
8144 * config/spu/predicates.md (vec_imm_operand): Likewise.
8145
8146 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
8147
8148 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
8149 * config/v850/v850.c (v850_legitimate_constant_p): New function.
8150 (TARGET_LEGITIMATE_CONSTANT_P): Define.
8151
8152 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
8153 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
8154 * config/vax/vax.c (legitimate_constant_p): Likewise.
8155
8156 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
8157 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
8158 (xtensa_legitimate_constant_p): New function.
8159
fbbf66e7
RS
81602011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
8161
8162 * target.def (cannot_force_const_mem): Add a mode argument.
8163 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
8164 * doc/tm.texi: Regenerate.
8165 * hooks.h (hook_bool_mode_rtx_false): Declare.
8166 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
8167 (hook_bool_mode_const_rtx_true): Likewise.
8168 (hook_bool_mode_rtx_false): New function.
8169 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
8170 to be non-VOID. Update call to cannot_force_const_mem.
8171 (find_reloads): Update accordingly.
8172 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
8173 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
8174 argument.
8175 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
8176 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
8177 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
8178 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
8179 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
8180 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
8181 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
8182 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8183 (m68k_cannot_force_const_mem): ...this new function.
8184 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
8185 argument.
8186 (mips_const_insns, mips_legitimize_const_move): Update calls.
8187 (mips_secondary_reload_class): Likewise.
8188 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
8189 (pa_cannot_force_const_mem): ...this new function.
2894086e 8190 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
8191 (rs6000_cannot_force_const_mem): ...this new function.
8192 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
8193 argument.
8194 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
8195 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
8196 to...
8197 (xtensa_cannot_force_const_mem): ...this new function.
8198
b861891b
NF
81992011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8200
8201 * config/mips/mips.c (mips16_build_function_stub): Call
8202 build_function_type_list instead of build_function_type.
8203 (mips16_build_call_stub): Likewise.
8204
34149ed5
NF
82052011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8206
8207 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
8208 instead of build_function_type.
8209
12526412
NF
82102011-04-20 Nathan Froyd <froydnj@codesourcery.com>
8211
8212 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
8213 instead of build_function_type.
8214
3b84d61f
UB
82152011-04-20 Uros Bizjak <ubizjak@gmail.com>
8216
8217 PR target/48678
8218 * config/i386/i386.md (insv): Change operand 0 constraint to
8219 "register_operand". Change operand 1 and 2 constraint to
8220 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
8221 * config/i386/sse.md (sse4_1_pinsrb): Export.
8222 (sse2_pinsrw): Ditto.
8223 (sse4_1_pinsrd): Ditto.
8224 (sse4_1_pinsrq): Ditto.
8225 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
8226 * config/i386/i386.c (ix86_expand_pinsr): New.
8227
4a25752b
ER
82282011-04-20 Easwaran Raman <eraman@google.com>
8229
8230 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
8231 containing union type only with -fstrict-aliasing.
8232
04695783
JM
82332011-04-20 Jim Meyering <meyering@redhat.com>
8234
8235 Remove useless if-before-free tests.
8236 * calls.c (expand_call, save_area): Likewise.
8237 * cfgcleanup.c (try_forward_edges): Likewise.
8238 * collect2.c (collect_execute): Likewise.
8239 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
8240 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
8241 * coverage.c (coverage_checksum_string): Likewise.
8242 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
8243 * cselib.c (cselib_init): Likewise.
8244 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
8245 (df_set_clean_cfg): Likewise.
8246 * function.c (free_after_compilation): Likewise.
8247 * gcc.c (do_spec_1, main): Likewise.
8248 * gcov.c (create_file_names): Likewise.
8249 * gensupport.c (identify_predicable_attribute): Likewise.
8250 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
8251 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
8252 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
8253 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
8254 * ipa-pure-const.c (local_pure_const): Likewise.
8255 * ipa-reference.c (propagate): Likewise.
8256 * ira-costs.c (free_ira_costs): Likewise.
8257 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
8258 * matrix-reorg.c (mat_free): Likewise.
8259 * prefix.c (get_key_value): Likewise.
8260 * profile.c (compute_value_histograms): Likewise.
8261 * reload1.c (free_reg_equiv): Likewise.
8262 * sched-deps.c (free_deps): Likewise.
8263 * sel-sched-ir.c (fence_clear): Likewise.
8264 * sese.c (set_rename, if_region_set_false_region): Likewise.
8265 * tree-data-ref.c (free_rdg): Likewise.
8266 * tree-eh.c (lower_try_finally): Likewise.
8267 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
8268 * tree-ssa-live.c (delete_var_map): Likewise.
8269 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
8270 * tree-ssa-pre.c (phi_trans_add): Likewise.
8271
6788475a
JJ
82722011-04-20 Jakub Jelinek <jakub@redhat.com>
8273
8274 PR tree-optimization/48611
8275 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
8276 beyond ERT_MUST_NOT_THROW region.
8277
0eda4033
CM
82782011-04-20 Catherine Moore <clm@codesourcery.com>
8279
8280 * config/mips/mips.opt (mfix-24k): New.
8281 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
8282 * config/mips/mips.md (length): Increase by 4 for stores if
8283 fixing 24K errata.
8284 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
8285 all noreorder if fixing 24K errata.
8286 * doc/invoke.texi: Document mfix-24k.
8287
01475747
CLT
82882011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
8289
8290 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 8291 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 8292
bc2c1a60
AS
82932011-04-20 Andrew Stubbs <ams@codesourcery.com>
8294
8295 * config/arm/arm.c (arm_gen_constant): Move movw support ....
8296 (const_ok_for_op): ... to here.
8297
583722ee
KT
82982011-04-20 Kai Tietz <ktietz@redhat.com>
8299
2894086e
UB
8300 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
8301 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 8302
422c0989
AS
83032011-04-20 Andrew Stubbs <ams@codesourcery.com>
8304
8305 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
8306
d7978bff
RG
83072011-04-20 Richard Guenther <rguenther@suse.de>
8308
8309 PR tree-optimization/47892
8310 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
8311 are if-convertible.
8312
818412ba
EB
83132011-04-20 Eric Botcazou <ebotcazou@adacore.com>
8314
8315 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
8316
b501ce4e
TG
83172011-04-20 Tristan Gingold <gingold@adacore.com>
8318
8319 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
8320
516edfdd
GJL
83212011-04-20 Georg-Johann Lay <avr@gjlay.de>
8322
8323 PR target/18145
8324
8325 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
8326 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
8327 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
8328 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
8329 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
8330
8331 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
8332 New prototype.
8333
8334 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
8335 (avr_asm_named_section, avr_asm_output_aligned_common,
8336 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
8337 New functions to update...
8338 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
8339 (avr_asm_init_sections): Overwrite section callbacks for
8340 data_section, bss_section.
8341 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
8342 from here to...
8343 (avr_file_end): ...here.
8344
dafc9511
RG
83452011-04-20 Richard Guenther <rguenther@suse.de>
8346
8347 PR middle-end/48695
8348 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 8349 objects and types here. Adjust for their offset before comparing.
dafc9511 8350
1da0876c
RS
83512011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
8352
8353 * tree-vect-stmts.c (vectorizable_store): Only chain one related
8354 statement per copy.
8355
25583c4f
RS
83562011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
8357
8358 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
8359 (GIMPLE_H): Include $(INTERNAL_FN_H).
8360 (OBJS-common): Add internal-fn.o.
8361 (internal-fn.o): New rule.
8362 * internal-fn.def: New file.
8363 * internal-fn.h: Likewise.
8364 * internal-fn.c: Likewise.
8365 * gimple.h: Include internal-fn.h.
8366 (GF_CALL_INTERNAL): New gf_mask.
8367 (gimple_statement_call): Put fntype into a union with a new
8368 internal_fn field.
8369 (gimple_build_call_internal): Declare.
8370 (gimple_build_call_internal_vec): Likewise.
8371 (gimple_call_same_target_p): Likewise.
8372 (gimple_call_internal_p): New function.
8373 (gimple_call_internal_fn): Likewise.
8374 (gimple_call_fntype): Return null for internal calls.
8375 (gimple_call_set_fntype): Assert that the function is not internal.
8376 (gimple_call_set_fn): Likewise.
8377 (gimple_call_set_fndecl): Likewise.
8378 (gimple_call_set_internal_fn): New function.
8379 (gimple_call_addr_fndecl): Handle null functions.
8380 (gimple_call_return_type): Likewise null types.
8381 * gimple.c (gimple_build_call_internal_1): New function.
8382 (gimple_build_call_internal): Likewise.
8383 (gimple_build_call_internal_vec): Likewise.
8384 (gimple_call_same_target_p): Likewise.
8385 (gimple_call_flags): Handle calls to internal functions.
8386 (gimple_call_fnspec): New function.
8387 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
8388 (gimple_has_side_effects): Handle null functions.
8389 (gimple_rhs_has_side_effects): Likewise.
8390 (gimple_call_copy_skip_args): Handle calls to internal functions.
8391 * cfgexpand.c (expand_call_stmt): Likewise.
8392 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
8393 * gimple-fold.c (gimple_fold_call): Handle null functions.
8394 (gimple_fold_stmt_to_constant_1): Don't fold
8395 calls to internal functions.
8396 * gimple-low.c (gimple_check_call_args): Handle calls to internal
8397 functions.
8398 * gimple-pretty-print.c (dump_gimple_call): Likewise.
8399 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
8400 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
8401 (do_warn_unused_result): Likewise.
8402 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
8403 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
8404 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
8405 the target of a call.
8406 (initialize_hash_element): Update accordingly.
8407 (hashable_expr_equal_p): Use gimple_call_same_target_p.
8408 (iterative_hash_hashable_expr): Handle calls to internal functions.
8409 (print_expr_hash_elt): Likewise.
8410 * tree-ssa-pre.c (can_value_number_call): Likewise.
8411 (eliminate): Handle null functions.
8412 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
8413 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
8414 (find_func_aliases): Likewise.
8415 * value-prof.c (gimple_ic_transform): Likewise.
8416 (gimple_indirect_call_to_profile): Likewise.
8417 * lto-streamer-in.c (input_gimple_stmt): Likewise.
8418 * lto-streamer-out.c (output_gimple_stmt): Likewise.
8419
1a3118e9
JH
84202011-04-19 Jan Hubicka <jh@suse.cz>
8421
8422 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
8423 * ipa-inline.c (inline_small_functions): Compute summaries first,
8424 populate heap later.
1a3118e9 8425
fee8b6da
JH
84262011-04-19 Jan Hubicka <jh@suse.cz>
8427
8428 * cgraph.h (save_inline_function_body): Remove.
8429 * ipa-inline-transform.c: New file, broke out of...
8430 * ipa-inline.c: ... this one; Update toplevel comment.
8431 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
8432 make global.
8433 (update_noncloned_frequencies): Move to ipa-inline-transform.c
8434 (cgraph_mark_inline_edge): Rename to inline_call; move to
8435 ipa-inline-transform.c.
8436 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
8437 move to ipa-inline-transform.c
8438 (recursive_inlining, inline_small_functions, flatten_function,
8439 ipa_inline, inline_always_inline_functions,
8440 early_inline_small_functions): Update.
8441 (inline_transform): Move to ipa-inline-transform.c.
8442 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
8443 Declare.
8444 * Makefile.in (ipa-inline-transform.o): New file.
8445 * cgraphunit.c (save_inline_function_body): Move to
8446 ipa-inline-transform.c
8447
f0679612
DD
84482011-04-19 DJ Delorie <dj@redhat.com>
8449
8450 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
8451 registers if we already know there aren't any.
8452 (m32c_emit_epilogue): Don't emit a barrier here.
8453 (m32c_emit_eh_epilogue): Likewise.
8454 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
8455 operands at expand time.
8456 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
8457 int" wchar type.
8458 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
8459 duplicates. Provide aliases instead.
8460 * config/m32c/prologue.md (eh_return): Emit a barrier here.
8461 (eh_epilogue): Add a "(return)" here as a hint to other parts of
8462 the compiler.
8463
32257ddc
AS
84642011-04-19 Anatoly Sokolov <aesok@post.ru>
8465
8466 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
8467 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
8468 (general_or_i64_p, sparc_register_move_cost): New function.
8469
60bea929
RO
84702011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8471
8472 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 8473 Add lynx, mipssde. Sort table.
60bea929 8474
444b3995 84752011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 8476
9d12f71a
EB
8477 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
8478 not negative.
444b3995 8479
d708ce50
JJ
84802011-04-19 Jakub Jelinek <jakub@redhat.com>
8481
8482 PR target/48678
8483 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
8484 is a SUBREG with non-MODE_INT mode inside of it.
8485
49c471e3
MJ
84862011-04-19 Martin Jambor <mjambor@suse.cz>
8487
8488 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
8489 also according to actual contants.
8490 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
8491 (gimple_fold_call): Use it.
8492 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
8493
0004f992
MJ
84942011-04-19 Martin Jambor <mjambor@suse.cz>
8495
8496 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
8497 non-pointer assignments.
8498
40591473
MJ
84992011-04-19 Martin Jambor <mjambor@suse.cz>
8500
8501 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
8502 account anc_offset and otr_type from the indirect edge info.
8503 * ipa-prop.c (get_ancestor_addr_info): New function.
8504 (compute_complex_ancestor_jump_func): Assignment analysis moved to
8505 get_ancestor_addr_info, call it.
8506 (ipa_note_param_call): Do not initialize information about polymorphic
8507 calls, return the indirect call graph edge. Remove the last
8508 parameter, adjust all callers.
8509 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
8510 parameters. Initialize polymorphic information in the indirect edge.
8511
abe36b81
EB
85122011-04-19 Eric Botcazou <ebotcazou@adacore.com>
8513
8514 PR lto/48148
8515 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
8516 the types if they have different enumeration identifiers.
8517
e6416b30
JH
85182011-04-19 Jan Hubicka <jh@suse.cz>
8519
8520 * cgraph.h (cgraph_optimize_for_size_p): Declare.
8521 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
8522 * predict.c (cgraph_optimize_for_size_p): Break out from ...
8523 (optimize_function_for_size_p) ... here.
8524
d39132ea
RG
85252011-04-19 Richard Guenther <rguenther@suse.de>
8526
8527 PR lto/48207
8528 * tree.c (free_lang_data): Do not reset the decl-assembler-name
8529 langhook.
8530
ff7037dc
EB
85312011-04-19 Eric Botcazou <ebotcazou@adacore.com>
8532
8533 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
8534 if DECL_NO_INLINE_WARNING_P is set on the function.
8535
c1ee2892
BS
85362011-04-19 Bernd Schmidt <bernds@codesourcery.com>
8537
8538 PR fortran/47976
8539 * reload1.c (inc_for_reload): Return void. All callers changed.
8540 (emit_input_reload_insns): Don't try to delete previous output
8541 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
8542
85432011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
8544
8545 * gengtype.h: Updated copyright year.
8546 (struct input_file_st): Add inpisplugin field.
8547 (type_fileloc): New function.
8548 * gengtype.c
8549 (write_typed_struct_alloc_def): Add gcc_assert.
8550 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
8551 (write_typed_alloc_defns): Don't output for plugin files.
8552 (input_file_by_name): Clear inpisplugin field.
8553 (main): Set inpisplugin field for plugin files.
8554
897e0a89
NP
85552011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
8556
8557 * gengtype-state.c (string_eq): New.
8558 (read_state): Use string_eq instead of strcmp when creating the
8559 state_ident_tab.
8560
363ee90e
WG
85612011-04-19 Wei Guozhi <carrot@google.com>
8562
8563 PR target/47855
8564 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
8565 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
8566 linkage.
8567 * config/arm/constraints.md (Uu): New constraint.
8568 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
8569
18a24fed
TG
85702011-04-19 Tristan Gingold <gingold@adacore.com>
8571
8572 * config.gcc (-*-*-*vms): Added.
8573 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
8574 definitions moved.
8575 * config/vms/vms-ld.c: New file.
8576 * config/vms/vms-ar.c: New file.
8577 * config/vms/t-vmsnative: New file.
8578
1c13f168
XDL
85792011-04-18 Xinliang David Li <davidxl@google.com>
8580
8581 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
8582
84825707
JJ
85832011-04-18 Jakub Jelinek <jakub@redhat.com>
8584
8585 PR middle-end/48661
8586 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
8587 if TREE_TYPE (v) is non-NULL.
8588
8589 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
8590 gimple_get_virt_mehtod_for_binfo.
8591 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
8592 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
8593 callers.
8594 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
8595
7d4f8d02 85962011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
8597 Steve Ellcey <sje@cup.hp.com>
8598
7d4f8d02
EB
8599 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
8600 use its mode as source mode if it isn't VOIDmode.
7254cb57 8601
474e8e70
DCR
86022011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
8603
8604 * doc/passes.texi: Fill crossref nodes.
8605
cff41484
JM
86062011-04-18 Jim Meyering <meyering@redhat.com>
8607
7d4f8d02 8608 Fix doubled-word typos in comments and strings
cff41484
JM
8609 * config/alpha/vms-unwind.h: s/for for/for/
8610 * config/arm/unwind-arm.h: Likewise.
8611 * config/microblaze/microblaze.c: Likewise.
8612 * config/sh/constraints.md: s/in in/in/
8613 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
8614
f60c2554
UB
86152011-04-18 Uros Bizjak <ubizjak@gmail.com>
8616
8617 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
8618 (AVX_FLOAT_MODE_P): Ditto.
8619 (AVX128_VEC_FLOAT_MODE_P): Ditto.
8620 (AVX256_VEC_FLOAT_MODE_P): Ditto.
8621 (AVX_VEC_FLOAT_MODE_P): Ditto.
8622 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
8623 (UNSPEC_MASKSTORE): Ditto.
8624 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
8625 Merge from <sse>_movmsk<ssemodesuffix> and
8626 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
8627 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
8628 iterator.
8629 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
8630 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
8631 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
8632
09a2806f
JH
86332011-04-18 Jan Hubicka <jh@suse.cz>
8634
8a8dccb2
JH
8635 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
8636
09a2806f
JH
8637 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
8638 (want_inline_function_called_once_p): Break out the logic from
8639 ipa_inline.
8640 (edge_badness): Ensure that profile is not misupdated.
8641 (lookup_recursive_calls): Prioritize by call frequencies.
8642 (inline_small_functions): Move program size estimates here;
8643 actually process whole queue even when unit growth has been
8644 met. (to properly compute inline_failed reasons and for the
f60c2554 8645 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
8646 (ipa_inline): Remove unit summary code; first inline hot calls
8647 of functions called once, cold calls next.
8648 (order, nnodes): Remove unused variables.
8649 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
8650 (GTFILES): Remove ipa-inline.c
8651 * sel-sched.c (fill_insns): Silence uninitialized var warning.
8652
3eea52ef
EB
86532011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8654
8655 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
8656
229a1c59 86572011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 8658 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
8659
8660 * arm.c (neon_builtin_type_bits): Remove.
8661 (typedef enum neon_builtin_mode): New.
8662 (T_MAX): Don't define.
8663 (typedef enum neon_builtin_datum): Remove bits, codes[],
8664 num_vars and base_fcode. Add mode, code and fcode.
8665 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
8666 VAR10): Change accordingly.
8667 (neon_builtin_data[]): Change accordingly
8668 (arm_init_neon_builtins): Change accordingly.
8669 (neon_builtin_compare): Remove.
8670 (locate_neon_builtin_icode): Remove.
8671 (arm_expand_neon_builtin): Change accordingly.
8672
8673 * arm.h (enum arm_builtins): Move to ...
8674 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
8675
8676 * arm.c (arm_builtin_decl): Declare.
8677 (TARGET_BUILTIN_DECL): Define.
8678 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
8679 (arm_builtin_decls[]): New.
8680 (arm_init_neon_builtins): Store builtin declarations in
8681 arm_builtin_decls[].
8682 (arm_init_tls_builtins): Likewise.
8683 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
8684 (arm_builtin_decl): New.
8685
75e802cc
RG
86862011-04-18 Richard Guenther <rguenther@suse.de>
8687
8688 * tree.c (upper_bound_in_type): Build properly canonicalized
8689 INTEGER_CSTs.
8690 (lower_bound_in_type): Likewise.
8691
3b45a007
RG
86922011-04-18 Richard Guenther <rguenther@suse.de>
8693
8694 * gimple.h (gimple_call_addr_fndecl): New function.
8695 (gimple_call_fndecl): Use it.
8696 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
8697 for direct calls.
8698 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
8699 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
8700
d25a79ea
RG
87012011-04-18 Richard Guenther <rguenther@suse.de>
8702
8703 PR middle-end/48650
8704 * tree.c (build_string): STRING_CST is now derived from tree_typed.
8705
7d5fc814
EB
87062011-04-18 Eric Botcazou <ebotcazou@adacore.com>
8707
8708 PR lto/48492
8709 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
8710 DECL_IN_CONSTANT_POOL without RTL.
8711
7e7cfcf6
UW
87122011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
8713 Ira Rosen <ira.rosen@linaro.org>
8714
8715 PR target/48252
8716 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
8717 to match neon_vzip/vuzp/vtrn_internal.
8718 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
8719 outputs explicitly dependent on both inputs.
8720 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
8721
49eab32e
JJ
87222011-04-18 Jakub Jelinek <jakub@redhat.com>
8723
8724 PR tree-optimization/48616
8725 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
8726 whether the shift is by scalar or vector based on whether all SLP
8727 scalar stmts have the same rhs.
8728
e54170f4
CLT
87292011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
8730
8731 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
8732 memory operands.
8733
b14ee6c9
RS
87342011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
8735
269e0e18 8736 PR target/43700
b14ee6c9
RS
8737 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
8738 registers.
8739
10158cd3
JH
87402011-04-17 Jan Hubicka <jh@suse.cz>
8741
8742 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
8743 * cgrpahunit.c (cgraph_finalize_function): Do not set
8744 finalized_by_frontend.
10158cd3
JH
8745 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8746 finalized_by_frontend.
8747
2e9bb6ba
JH
87482011-04-17 Jan Hubicka <jh@suse.cz>
8749
8750 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
8751 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
8752 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
8753 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
8754 method.
2e9bb6ba
JH
8755 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
8756 gimple-fold.c
8757 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
8758
beb628e1
EB
87592011-04-17 Eric Botcazou <ebotcazou@adacore.com>
8760
8761 PR lto/48538
8762 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
8763 is non-null before accessing it.
8764 (input_cgraph): Remove trailing spaces.
8765
3e2fdd24
RE
87662011-04-17 Revital Eres <revital.eres@linaro.org>
8767
8768 * params.def (sms-min-sc): New param flag.
8769 * modulo-sched.c (sms_schedule): Use it.
8770 * doc/invoke.texi (sms-min-sc): Document it.
8771
4c0f7679
JH
87722011-04-17 Jan Hubicka <jh@suse.cz>
8773
8774 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
8775 present, also set gimple_call_set_cannot_inline.
8776 * ipa-inline.c: Update toplevel comment.
8777 (MAX_TIME): Remove.
8778 (cgraph_clone_inlined_nodes): Fix linebreaks.
8779 (cgraph_check_inline_limits): Restructure to ...
8780 (caller_growth_limits): ... this one; be more tolerant
8781 on growth in nested inline chains; add explanatory comment;
8782 fix stack accounting thinko introduced by previous patch.
8783 (cgraph_default_inline_p): Remove.
8784 (report_inline_failed_reason): New function.
8785 (can_inline_edge_p): New function.
8786 (can_early_inline_edge_p): New function.
8787 (leaf_node_p): Move upwards in file.
8788 (want_early_inline_function_p): New function.
8789 (want_inline_small_function_p): New function.
8790 (want_inline_self_recursive_call_p): New function.
8791 (cgraph_edge_badness): Rename to ...
8792 (edge_badness) ... this one; fix linebreaks.
8793 (update_edge_key): Update call of edge_baddness; add
8794 detailed dump about queue updates.
8795 (update_caller_keys): Use can_inline_edge_p and
8796 want_inline_small_function_p.
8797 (cgraph_decide_recursive_inlining): Rename to...
8798 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
8799 want_inline_self_recursive_call_p; simplify and remove no longer
8800 valid FIXME.
4c0f7679
JH
8801 (cgraph_set_inline_failed): Remove.
8802 (add_new_edges_to_heap): Use can_inline_edge_p and
8803 want_inline_small_function_p.
8804 (cgraph_decide_inlining_of_small_functions): Rename to ...
8805 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
8806 can/want predicates; cleanup debug ouput; work edges till fibheap
8807 is exhausted and do not stop once unit growth is reached; remove
8808 later loop processing remaining edges.
4c0f7679
JH
8809 (cgraph_flatten): Rename to ...
8810 (flatten_function): ... this one; use can_inline_edge_p
8811 and can_early_inline_edge_p predicates.
8812 (cgraph_decide_inlining): Rename to ...
8813 (ipa_inline): ... this one; remove unreachable nodes before
8814 inlining functions called once; simplify the pass.
8815 (cgraph_perform_always_inlining): Rename to ...
8816 (inline_always_inline_functions): ... this one; use
f60c2554 8817 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
8818 (cgraph_decide_inlining_incrementally): Rename to ...
8819 (early_inline_small_functions): ... this one; simplify
8820 using new predicates; cleanup; make dumps prettier.
8821 (cgraph_early_inlining): Rename to ...
8822 (early_inliner): newer inline regular functions into always-inlines;
8823 fix updating of call stmt summaries.
8824 (pass_early_inline): Update for new names.
8825 (inline_transform): Fix formating.
8826 (gate_cgraph_decide_inlining): Rename to ...
8827 (pass_ipa_inline): ... this one.
8828 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
8829 * ipa-inline-analysis.c (dump_inline_summary): Update.
8830 (compute_inline_parameters): Do not compute disregard_inline_limits;
8831 look for mismatching arguments.
8832 (estimate_growth): Fix handlig of non-trivial self recursion.
8833 (inline_read_summary): Do not read info->disregard_inline_limits.
8834 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
8835 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
8836 and move all checks into can_inline_edge_p predicate; re-enable code
8837 comparing optimization levels.
4c0f7679
JH
8838 (expand_call_inline): Do not test inline_forbidden_into_p.
8839 * Makefile.in (ipa-inline.o): Update arguments.
8840
54333b7c
RE
88412011-04-17 Revital Eres <revital.eres@linaro.org>
8842
8843 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
8844
42c2bf92
RE
88452011-04-17 Revital Eres <revital.eres@linaro.org>
8846
8847 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
8848
b183e9e0
MM
88492011-04-17 Michael Matz <matz@suse.de>
8850
8851 PR tree-optimization/48622
8852 PR lto/48645
8853 * ipa-inline-analysis.c (inline_read_summary): Read size/time
8854 in same order as they're written.
8855
b8a17fa2
JDA
88562011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8857
8858 * config/pa/predicates.md: Reorganize and simplify predicates.
8859 Eliminate duplicate code checks.
8860 (arith_operand): Rename to arith14_operand
8861 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
8862 * config/pa/pa.md: Use renamed operands.
8863 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
8864 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
8865 arith11_operand, adddi3_operand, indexed_memory_operand,
8866 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
8867 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
8868 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
8869 move_dest_operand, move_src_operand, prefetch_cc_operand,
8870 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
8871 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
8872 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
8873 div_operand, int5_operand, movb_comparison_operator,
8874 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
8875 arith_double_operand, ireg_operand, lhs_lshift_operand,
8876 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
8877 integer_store_memory_operand): Likewise.
8878 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
8879 (integer_store_memory_operand, read_only_operand,
8880 function_label_operand, borx_reg_operand,
8881 non_hard_reg_operand): Likewise.
8882 (eq_neq_comparison_operator): Delete unused operator.
8883 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
8884 function_label_operand.
8885 (emit_move_sequence): Likewise.
8886
8dfb9f16
UB
88872011-04-16 Uros Bizjak <ubizjak@gmail.com>
8888
8889 * config/i386/sse.md (sseunpackmode): New mode attribute.
8890 (ssepackmode): Ditto.
8891 (vec_pack_trunc_<mode>): Macroize expander from
8892 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
8893 (vec_unpacks_lo_<mode>): Macroize expander from
8894 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8895 (vec_unpacks_hi_<mode>): Macroize expander from
8896 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8897 (vec_unpacku_lo_<mode>): Macroize expander from
8898 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8899 (vec_unpacku_hi_<mode>): Macroize expander from
8900 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
8901 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
8902 ix86_expand_sse4_unpack.
8903 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
8904
e7f23018
JH
89052011-04-16 Jan Hubicka <jh@suse.cz>
8906
8907 * cgraphbuild.c: Include ipa-inline.h.
8908 (reset_inline_failed): Use initialize_inline_failed.
8909 * cgraph.c: Include ipa-inline.h.
8910 (cgraph_create_node_1): Do not initialize estimated_growth.
8911 (initialize_inline_failed): More to ipa-inline-analysis.c
8912 (dump_cgraph_node): Do not dump inline flags.
8913 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
8914 and disregard_inline_limits flags.
8915 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
8916 time, size, estimated_growth.
8dfb9f16
UB
8917 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
8918 Update.
e7f23018
JH
8919 * cgraphunit.c (cgraph_decide_is_function_needed): Use
8920 DECL_DISREGARD_INLINE_LIMITS.
8921 (cgraph_analyze_function): Do not initialize
8922 node->local.disregard_inline_limits.
8923 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
8924 inlinable, versionable and disregard_inline_limits.
8925 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
8926 cgraph_check_inline_limits, cgraph_default_inline_p,
8927 cgraph_edge_badness, update_caller_keys, update_callee_keys,
8928 add_new_edges_to_heap): Update.
8929 (cgraph_decide_inlining_of_small_function): Update; set
8930 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
8931 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
8932 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
8933 * ipa-inline.h (inline_summary): Add inlinable, versionable,
8934 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
8935 time, size and estimated_growth parameters.
e7f23018
JH
8936 (estimate_edge_growth): Update.
8937 (initialize_inline_failed): Declare.
8938 * ipa-split.c: Include ipa-inline.h
8939 (execute_split_functions): Update.
8940 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
8941 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
8942 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
8943 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
8944 estimated_growth to INT_MIN.
8945 (inline_node_duplication_hook): Likewise.
8946 (dump_inline_summary): Dump new fields.
8947 (compute_inline_parameters): Update.
8948 (estimate_edge_time, estimate_time_after_inlining,
8949 estimate_size_after_inlining, estimate_growth, inline_read_summary,
8950 inline_write_summary):
8951 (initialize_inline_failed): Move here from cgraph.c.
8952 * tree-sra.c: Include ipa-inline.h.
8953 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
8954 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
8955 ipa-inline.h.
e7f23018 8956
e81b8564
UB
89572011-04-16 Uros Bizjak <ubizjak@gmail.com>
8958
8959 * config/i386/sse.md (V16): New mode iterator.
8960 (VI1, VI8): Ditto.
8961 (AVXMODEQI, AVXMODEDI): Remove.
8962 (sse2, sse3): New mode attribute.
8963 (mov<mode>): Use V16 mode iterator.
8964 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
8965 (push<mode>1): Use V16 mode iterator.
8966 (movmisalign<mode>): Ditto.
8967 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
8968 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
8969 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
8970 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
8971 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
8972 avx_movdqu<avxmodesuffix>.
8973 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
8974 *avx_movdqu<avxmodesuffix>.
8975 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
8976 avx_lddqu<avxmodesuffix>.
8977 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
8978 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
8979 avx_movnt<AVXMODEDI:mode>.
8980 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
8981 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
8982
4743d438
BS
89832011-04-16 Bernd Schmidt <bernds@codesourcery.com>
8984
8985 PR target/48629
8986 * haifa-sched.c (prune_ready_list, schedule_block): Use
8987 sched_pressure_p rather than flag_sched_pressure.
8988
748f7574 89892011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
8990
8991 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
8992 cgraph_get_node instead of cgraph_get_create_node.
8993
2ba172e0
JJ
89942011-04-15 Jakub Jelinek <jakub@redhat.com>
8995
8996 * cfgexpand.c (expand_debug_expr): Use
8997 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
8998
63d2a353
MM
89992011-04-15 Michael Matz <matz@suse.de>
9000
9001 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
9002 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
9003 * function.c (gimplify_parameters): Ditto.
9004 * gimplify.c (gimplify_vla_decl): Ditto.
9005
9006 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
9007 (gimple_call_set_alloca_for_var): New inline function.
9008 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
9009 * gimple.c (gimple_build_call_from_tree): Remember
9010 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
9011 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
9012
9013 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
9014 calls if they were for VLA objects.
9015
dee74c34
MJ
90162011-04-15 Martin Jambor <mjambor@suse.cz>
9017
9018 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
9019 of ADR_EXPRs.
9020
8e5837bc
MJ
90212011-04-15 Martin Jambor <mjambor@suse.cz>
9022
9023 PR middle-end/48601
9024 * tree-emutls.c (lower_emutls_function_body): Call
9025 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
9026 result is non-NULL.
9027
0dc33c3c
NP
90282011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
9029
9030 * c-decl.c (detect_field_duplicates): Call
9031 objc_detect_field_duplicates instead of objc_get_interface_ivars.
9032
edcdea5b
NF
90332011-04-15 Nathan Froyd <froydnj@codesourcery.com>
9034
9035 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
9036 * gimple.c (gimple_asm_clobbers_memory_p): Define.
9037 * ipa-pure-const.c (check_stmt): Call it.
9038 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
9039
8456558d
RG
90402011-04-15 Richard Guenther <rguenther@suse.de>
9041
9042 PR tree-optimization/48290
9043 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
9044 Properly decide inhibiting propagation based on the valueized
9045 operand. Do loop-closed SSA form preserving here ...
9046 (init_copy_prop): ... not here.
9047
266446be
L
90482011-04-15 H.J. Lu <hongjiu.lu@intel.com>
9049
9050 PR target/48612
9051 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
9052 (*ieee_smax<mode>3): Likewise.
9053
17465c6e
AK
90542011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9055
9056 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
9057 Replace match_operand with match_dup for the third operand in
9058 these expanders.
9059
bce204e5
MK
90602011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
9061
9062 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
9063 to track processing of conditionals. Update all callers.
9064 (try_combine, simplify_if_then_else): Update.
9065
3162fdf4
MK
90662011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
9067
9068 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
9069 -fsched-pressure.
9070
79002a57 90712011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 9072
79002a57
GJL
9073 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
9074 instead of match_operand for operand 3.
9075
4fd3a105
RS
90762011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
9077
9078 * recog.h (insn_operand_data): Add an "allows_mem" field.
9079 * genoutput.c (output_operand_data): Initialize it.
9080 * optabs.c (maybe_legitimize_operand_same_code): New function.
9081 (maybe_legitimize_operand): Use it when matching the original
9082 op->value.
9083
ad19c4be
EB
90842011-04-15 Eric Botcazou <ebotcazou@adacore.com>
9085
9086 * gimplify.c: Fix issues in comments throughout.
9087 (voidify_wrapper_expr): Fix long line.
9088 (build_stack_save_restore): Likewise.
9089 (gimplify_loop_expr): Likewise.
9090 (gimplify_compound_lval): Likewise.
9091 (gimplify_init_ctor_eval): Likewise.
9092 (gimplify_modify_expr_rhs): Likewise.
9093 (omp_notice_threadprivate_variable): Likewise.
9094
b25aa0e8 90952011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 9096
b25aa0e8
EB
9097 * cfgexpand.c (expand_call_stmt): Convert the function type to the
9098 original one if this is not a builtin function.
e7925582 9099
09db7afe
JJ
91002011-04-14 Jakub Jelinek <jakub@redhat.com>
9101
9102 PR target/48605
9103 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
9104 offset it as needed based on top 2 bits in operands[3], change
9105 MEM mode to SFmode and mask those 2 bits away from operands[3].
9106
c59633d9
NP
91072011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
9108
9109 * c-parser.c (c_parser_objc_protocol_definition): Updated for
9110 change from objc_declare_protocols() to objc_declare_protocol().
9111
5e60198b
UB
91122011-04-14 Uros Bizjak <ubizjak@gmail.com>
9113
9114 * config/i386/sse.md (sse4_1): New mode attribute.
9115 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
9116 avx_blend<ssemodesuffix><avxmodesuffix> and
9117 sse4_1_blend<ssemodesuffix> using VF mode iterator.
9118 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
9119 avx_blendv<ssemodesuffix><avxmodesuffix> and
9120 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
9121 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
9122 avx_dp<ssemodesuffix><avxmodesuffix> and
9123 sse4_1_dp<ssemodesuffix> using VF mode iterator.
9124 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
9125 (sse4_1_packusdw): Merge with *avx_packusdw.
9126 (sse4_1_pblendvb): Merge with *avx_pblendvb.
9127 (sse4_1_pblendw): Merge with *avx_pblendw.
9128 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
9129 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
9130 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
9131 VF mode iterator.
9132 (sse4_1_round<ssescalarmodesuffix>): Merge with
9133 *avx_round<ssescalarmodesuffix>.
9134 (aesenc): Merge with *avx_aesenc.
9135 (aesenclast): Merge with *avx_aesenclast.
9136 (aesdec): Merge with *avx_aesdec.
9137 (aesdeclast): Merge with *avx_aesdeclast.
9138 (pclmulqdq): Merge with *pclmulqdq.
9139 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
9140 New predicate.
9141 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
9142
6f197850
L
91432011-04-14 H.J. Lu <hongjiu.lu@intel.com>
9144
9145 PR middle-end/48608
9146 * cfgexpand.c (get_decl_align_unit): Renamed to ...
9147 (align_local_variable): This. Update DECL_ALIGN.
9148 (add_stack_var): Updated.
9149 (expand_one_stack_var): Likewise.
9150
4a5ba3ed
RG
91512011-04-14 Richard Guenther <rguenther@suse.de>
9152
9153 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
9154 Remove.
9155 (dse_initialize_block_local_data, dse_leave_block,
9156 record_voperand_set, get_stmt_uid): Likewise.
9157 (dse_possible_dead_store_p): Allow any kind of killing stmt.
9158 (dse_optimize_stmt): Remove voperand set handling code.
9159 Simplify and improve to handle any kind of killing stmt.
9160 (dse_record_phi): Remove.
9161 (dse_enter_block): Simplify.
9162 (tree_ssa_dse): Likewise.
9163 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
9164
10a5dd5d
JH
91652011-04-14 Jan Hubicka <jh@suse.cz>
9166
9167 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
9168 * cgraph.h (struct inline_summary): Move to ipa-inline.h
9169 (cgraph_local_info): Remove inline_summary.
9170 * ipa-cp.c: Include ipa-inline.h.
9171 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
9172 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
9173 accesor.
9174 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
9175 (input_overwrite_node): Do not set inline summary.
9176 (input_node): Do not stream inline summary.
9177 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
9178 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
9179 growth; we do not have inline parameters computed for that anyway.
9180 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
9181 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
9182 (inline_summary_t): New type and VECtor.
9183 (debug_inline_summary, dump_inline_summaries): Declare.
9184 (inline_summary): Use VOCtor.
9185 (estimate_edge_growth): Kill hack computing call stmt size directly.
9186 * lto-section-in.c (lto_section_name): Add inline section.
9187 * ipa-inline-analysis.c: Include lto-streamer.h
9188 (node_removal_hook_holder, node_duplication_hook_holder): New holders
9189 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
9190 (inline_summary_vec): Define.
9191 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
9192 dump_inline_summaries): New functions.
5e60198b
UB
9193 (estimate_function_body_sizes): Properly compute size/time of outgoing
9194 calls.
9195 (compute_inline_parameters): Alloc inline_summary; do not compute
9196 size/time of incomming calls.
10a5dd5d
JH
9197 (estimate_edge_time): Avoid missing time summary hack.
9198 (inline_read_summary): Read inline summary info.
9199 (inline_write_summary): Write inline summary info.
9200 (inline_free_summary): Free all hooks and inline summary vector.
9201 * lto-streamer.h: Add LTO_section_inline_summary section.
9202 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
9203 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
9204
b602d918
RS
92052011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9206
9207 * tree-vectorizer.h (vect_strided_store_supported): Add a
9208 HOST_WIDE_INT argument.
9209 (vect_strided_load_supported): Likewise.
9210 (vect_permute_store_chain): Return void.
9211 (vect_transform_strided_load): Likewise.
9212 (vect_permute_load_chain): Delete.
9213 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
9214 count argument. Check that the count is a power of two.
9215 (vect_strided_load_supported): Likewise.
9216 (vect_permute_store_chain): Return void. Update after above changes.
9217 Assert that the access is supported.
9218 (vect_permute_load_chain): Likewise.
9219 (vect_transform_strided_load): Return void.
9220 * tree-vect-stmts.c (vectorizable_store): Update calls after
9221 above interface changes.
9222 (vectorizable_load): Likewise.
9223 (vect_analyze_stmt): Don't check for strided powers of two here.
9224
ab4472fa
RG
92252011-04-14 Richard Guenther <rguenther@suse.de>
9226
9227 PR tree-optimization/48590
9228 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9229 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9230 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
9231 BUILT_IN_STACK_SAVE.
9232 * tree-ssa-dce.c (propagate_necessity): Handle
9233 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
9234
32dabdaf
NP
92352011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
9236
9237 * c-parser.c (c_parser_objc_class_declaration): Updated call to
9238 objc_declare_class.
9239
daade206
RG
92402011-04-14 Richard Guenther <rguenther@suse.de>
9241
9242 * tree.h (get_object_alignment_1): Declare.
9243 * builtins.c (get_object_alignment_1): Split out worker from ...
9244 (get_object_alignment): ... here.
9245 * fold-const.c (get_pointer_modulus_and_residue): Use
9246 get_object_alignment_1.
9247
920e8172
RS
92482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9249
9250 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
9251 type parameter.
9252 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
9253 parameter. Generalise code to handle arrays as well as vectors.
9254 (vect_setup_realignment): Update accordingly.
9255 * tree-vect-stmts.c (vectorizable_store): Likewise.
9256 (vectorizable_load): Likewise.
9257
5ce1ee7f
RS
92582011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
9259
9260 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
9261 within the per-copy loop.
9262
6438fe33 92632011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
9264
9265 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
9266 in the dump file.
9267
6438fe33 92682011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
9269
9270 * doc/options.texi (Negative): Explicitly mention that the
9271 Negative chain must be circular.
9272
61e46a7d
NF
92732011-04-14 Nathan Froyd <froydnj@codesourcery.com>
9274
9275 * function.h (block_chainon): Declare.
9276 * function.c (block_chainon): Define.
9277
43ea6502 92782011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 9279 Eric Weddington <eric.weddington@atmel.com>
748f7574 9280 Georg-Johann Lay <avr@gjlay.de>
5e60198b 9281
f60c2554 9282 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
9283 New Includes
9284 (avr_init_builtins, avr_expand_builtin,
9285 avr_expand_delay_cycles, avr_expand_unop_builtin,
9286 avr_expand_binop_builtin ): New functions.
9287 (avr_builtin_id): New enum
9288 (struct avr_builtin_description): New struct
9289 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
9290 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 9291
43ea6502 9292 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 9293 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
9294 UNSPECV_DELAY_CYCLES): new enumeration values
9295 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
9296 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
9297 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
9298 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
9299 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
9300 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
9301 "fmulsu"): New insns
5e60198b 9302
43ea6502
AS
9303 * config/avr/avr-c.c: fix line endings
9304 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
9305 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
9306 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
9307 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
9308 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 9309
43ea6502
AS
9310 * doc/extend.texi (AVR Built-in Functions): New node
9311 (Target Builtins): Add documentation of AVR
9312 built-in functions.
9313
8a9b55f3
GJL
93142011-04-14 Georg-Johann Lay <avr@gjlay.de>
9315
9316 PR target/44643
9317 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
9318 alone. Error if non-const data has attribute progmem.
9319
94bd1825
NF
93202011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9321
9322 * tree.h (struct tree_constructor): Include tree_typed instead of
9323 tree_common.
9324 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
9325 TS_TYPED instead of TS_COMMON.
9326
5e60198b 93272011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
9328
9329 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
9330 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
9331 (sse2_psadbw): Merge with *avx_psadbw.
9332 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
9333 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
9334 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
9335 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
9336 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
9337 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
9338 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
9339 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
9340 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
9341 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
9342 (ssse3_palignrti): Merge with *avx_palignrti.
9343
4b1a4694
NF
93442011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9345
9346 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
9347 * tree-ssanames.c (fini_ssanames): VEC_free it.
9348 (make_ssa_name_fn): Update for VECness of free_ssanames.
9349 (release_ssa_name, release_dead_ssa_names): Likewise.
9350 * tree.h (struct tree_ssa_name): Include tree_typed instead of
9351 tree_common.
9352 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
9353 TS_TYPED instead of TS_COMMON.
9354
4da3b811
NF
93552011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9356
9357 * postreload-gcse.c (gcse_after_reload_main): Add calls to
9358 statistics_counter_event.
9359 * tree-ssa-copyrename.c (stats): Define.
9360 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
9361 statistics_counter_event.
9362 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
9363 (bswap_stats, widen_mul_stats): Define.
9364 (insert_reciprocals): Increment rdivs_inserted.
9365 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
9366 rfuncs_inserted. Add calls to statistics_counter_event.
9367 (execute_cse_sincos_1): Increment inserted.
9368 (execute_cse_sincos): Zeroize sincos_stats. Add call to
9369 statistics_counter_event.
9370 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
9371 of bswap_stats. Add calls to statistics_counter_event.
9372 (convert_mult_to_widen): Increment widen_mults_inserted.
9373 (convert_plusminus_to_widen): Increment maccs_inserted.
9374 (convert_mult_to_fma): Increment fmas_inserted.
9375 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
9376 calls to statistics_counter_event.
9377
89fa552a
VM
93782011-04-13 Vladimir Makarov <vmakarov@redhat.com>
9379
9380 PR rtl-optimization/48455
9381 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
9382 `temp_costs->mem_cost'.
9383
03dfc36d
JH
93842011-04-13 Jan Hubicka <jh@suse.cz>
9385
9386 * ipa-inline.h: New file.
9387 * ipa-inline-analysis.c: New file. Broken out of ...
9388 * ipa-inline.c: ... this file; update toplevel comment;
9389 include ipa-inline.h
9390 (inline_summary): Move to ipa-inline.h
9391 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
9392 ipa-inline-analysis.c.
7d4f8d02
EB
9393 (cgraph_estimate_time_after_inlining): Rename to
9394 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
9395 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
9396 to estimate_edge_growth.
9397 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
9398 rename to estimate_size_after_inlining.
9399 (cgraph_mark_inline_edge): Update for new naming convention.
9400 (cgraph_check_inline_limits): Likewise.
9401 (cgraph_edge_badness): Likewise.
9402 (cgraph_decide_recursive_inlining): Likewise.
9403 (cgraph_decide_inlining_of_small_functions): Likewise.
9404 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
9405 (cgraph_estimate_growth): Rename to estimate_growth; move to
9406 ipa-inline-analysis.c.
03dfc36d
JH
9407 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
9408 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
9409 (compute_inline_parameters): Likewise.
9410 (compute_inline_parameters_for_current): Likewise.
9411 (pass_inline_parameters): Likewise.
9412 (inline_indirect_intraprocedural_analysis): Likewise.
9413 (analyze_function): Rename to inline_analyze_function; likewise.
9414 (add_new_function): Move to ipa-inline-analysis.c.
9415 (inline_generate_summary): Likewise.
9416 (inline_read_summary): Likewise.
9417 (inline_write_summary): Likewise.
9418 * Makefile.in (ipa-inline-analysis.c): New file.
9419
7673c962
RO
94202011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9421
9422 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
9423 * configure: Regenerate.
9424
9698252f
NF
94252011-04-13 Nathan Froyd <froydnj@codesourcery.com>
9426
9427 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
9428 instead of tree_common.
9429 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
9430 Likewise.
9431 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
9432 TS_TYPED rather than TS_COMMON.
9433 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
9434
3a7bfdd5
GJL
94352011-04-01 Georg-Johann Lay <avr@gjlay.de>
9436
9437 PR target/45263
86d83530
GJL
9438 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
9439 r20 around calls of __tablejump_elpm__
3a7bfdd5 9440
20790697
JJ
94412011-04-13 Jakub Jelinek <jakub@redhat.com>
9442
9443 PR middle-end/48591
9444 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
9445 NULL.
9446 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
9447
094d7661
BS
94482011-04-13 Bernd Schmidt <bernds@codesourcery.com>
9449
9450 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
9451 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
9452 (cfi_vec): New typedef.
9453 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
9454 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
9455 (cie_cfi_vec): New static variable.
9456 (cie_cfi_head): Delete.
9457 (add_cfi): Accept a cfi_vec * as first argument. All callers and
9458 declaration changed. Use vector rather than list operations.
9459 (new_cfi): Don't initialize the dw_cfi_next field.
9460 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
9461 rather than list operations.
9462 (lookup_cfa): Use vector rather than list operations.
9463 (output_cfis): New argument upto. Accept a cfi_vec rather than
9464 a dw_cfi_ref list head as argument. All callers changed.
9465 Iterate over the vector using upto as a maximum index.
9466 (output_all_cfis): New static function.
9467 (output_fde): Use vector rather than list operations. Use the
9468 new upto argument for output_cfis rather than manipulating a
9469 list.
9470 (dwarf2out_begin_prologue): Change initializations to match
9471 new struct members.
9472 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
9473 from the vector length rather than searching for the end of a list.
9474 Use output_all_cfis.
9475 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
9476
673a5740
NC
94772011-04-13 Nick Clifton <nickc@redhat.com>
9478
9479 * config/rx/rx.md (movmemsi): Do not use this pattern when
9480 volatile pointers are involved.
9481
1ee8b298
UB
94822011-04-13 Uros Bizjak <ubizjak@gmail.com>
9483
9484 * config/i386/sse.md (pinsrbits): Remove.
9485 (sse2_packsswb): Merge with *avx_packsswb.
9486 (sse2_packssdw): Merge with *avx_packssdw.
9487 (sse2_packuswb): Merge with *avx_packuswb.
9488 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
9489 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
9490 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
9491 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
9492 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
9493 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
9494 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
9495 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
9496 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
9497 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
9498 (sse2_loadld): Merge with *avx_loadld.
9499 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
9500 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
9501 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
9502 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
9503 (vec_concatv2di): Merge with *vec_concatv2di_avx.
9504
81f653d6
NF
95052011-04-12 Nathan Froyd <froydnj@codesourcery.com>
9506
9507 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
9508 calling TREE_CHAIN.
9509 * print-tree.c (print_node): Likewise.
9510 * tree-inline.c (copy_tree_r): Likewise.
9511 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
9512 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
9513 instead of TS_COMMON.
9514 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
9515 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
9516 (copy_node_stat): Zero TREE_CHAIN only if necessary.
9517 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
9518 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
9519 ...and these...
9520 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
9521 * tree.h: ...here.
9522 (TREE_CHAIN): Check for a TS_COMMON structure.
9523 (TREE_TYPE): Check for a TS_TYPED structure.
9524
748f7574 95252011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
9526
9527 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
9528 cgraph_get_create_node instead of cgraph_node.
9529
eb345401
NP
95302011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
9531
9532 * c-parser.c (c_parser_initelt): Updated call to
9533 objc_build_message_expr.
9534 (c_parser_postfix_expression): Likewise.
9535
a6c46762
KT
95362011-04-12 Kai Tietz <ktietz@redhat.com>
9537
9538 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
9539 MASK_MS_BITFIELD_LAYOUT bit.
9540
b4ccfed9
JJ
95412011-04-12 Jakub Jelinek <jakub@redhat.com>
9542
9543 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
9544 assert it is always true.
9545 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
9546 moves.
9547
0d8a2528
NP
95482011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
9549
9550 * c-parser.c (c_lex_one_token): Rewritten conditional used when
9551 compiling Objective-C to be more efficient.
9552
06bd234a
AF
95532011-04-12 Axel Freyn <axel-freyn@gmx.de>
9554
9555 * opts-common.c (decode_cmdline_options_to_array): Remove variable
9556 argv_copied.
9557
28569ac3
RS
95582011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9559
9560 * recog.h, genoutput.c, optabs.c: Revert last patch.
9561
ae59e00d
RR
95622011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9563
81b1e7eb
UB
9564 PR target/48090
9565 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 9566
cff1b7e0
RS
95672011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9568
9569 * recog.h (insn_operand_data): Add an "allows_mem" field.
9570 * genoutput.c (output_operand_data): Initialize it.
9571 * optabs.c (maybe_legitimize_operand_same_code): New function.
9572 (maybe_legitimize_operand): Use it when matching the original
9573 op->value.
9574
77059241
RS
95752011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9576
9577 * genpreds.c (process_define_predicate): Move most processing
9578 to gensupport.c. Continue to validate the expression.
9579 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
9580 (process_define_predicate): Move processing to gensupport.c.
9581 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
9582 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
9583 (compute_predicate_codes): Moved from genrecog.c. Add lineno
9584 argument.
9585 (valid_predicate_name_p): New function, split out from old
9586 genpreds.c:process_define_predicate.
9587 (process_define_predicate): New function, combining code from
9588 old genpreds.c and genrecog.c functions.
9589 (process_rtx): Call it for DEFINE_PREDICATE and
9590 DEFINE_SPECIAL_PREDICATE.
9591
6308e208
RS
95922011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
9593
9594 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
9595 size of a '%A' memory reference.
9596 (T_DREG, T_QREG): New neon_builtin_type_bits.
9597 (arm_init_neon_builtins): Assert that the load and store operands
9598 are neon_struct_operands.
9599 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
9600 (NEON_ARG_MEMORY): New builtin_arg.
9601 (neon_dereference_pointer): New function.
9602 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
9603 Handle NEON_ARG_MEMORY.
9604 (arm_expand_neon_builtin): Update after above interface changes.
9605 Use NEON_ARG_MEMORY for loads and stores.
9606 * config/arm/predicates.md (neon_struct_operand): New predicate.
9607 * config/arm/iterators.md (V_two_elem): Tweak formatting.
9608 (V_three_elem): Use BLKmode for accesses that have no associated mode.
9609 (V_four_elem): Tweak formatting.
9610 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
9611 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
9612 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
9613 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
9614 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
9615 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
9616 (neon_vst4<mode>): Replace pointer operand with a memory operand.
9617 Use %A in the output template.
9618 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
9619 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
9620 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
9621 the width of the memory access. Remove post-increment.
9622 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
9623
e5db8f2f
NC
96242011-04-12 Nick Clifton <nickc@redhat.com>
9625
9626 * config/v850/v850.c (expand_prologue): Do not use the CALLT
9627 instruction for interrupt handlers if the target is the basic V850
9628 architecture.
9629 (expand_epilogue): Likewise.
9630
74f091d6
JJ
96312011-04-12 Jakub Jelinek <jakub@redhat.com>
9632
9633 PR rtl-optimization/48549
9634 * combine.c (propagate_for_debug): Also stop after BB_END of
9635 this_basic_block. Process LAST and just stop processing after it.
9636 (combine_instructions): If last_combined_insn has been deleted,
9637 set last_combined_insn to its PREV_INSN.
9638
f20ca725
RG
96392011-04-12 Richard Guenther <rguenther@suse.de>
9640
9641 PR tree-optimization/46076
9642 * gimple.h (struct gimple_statement_call): Add fntype field.
9643 (gimple_call_fntype): Adjust.
9644 (gimple_call_set_fntype): New function.
9645 * gimple.c (gimple_build_call_1): Set the call function type.
9646 * gimplify.c (gimplify_call_expr): Preserve the function
9647 type the frontend used for the call.
9648 (gimplify_modify_expr): Likewise.
9649 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
9650 function type.
9651 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
9652 function type.
9653 * tree-ssa.c (useless_type_conversion_p): Function pointer
9654 conversions are useless.
9655
a358e188
MJ
96562011-04-12 Martin Jambor <mjambor@suse.cz>
9657
9658 * cgraph.h (cgraph_node): Remove function declaration.
9659 (cgraph_create_node): Declare.
9660 (cgraph_get_create_node): Likewise.
9661 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
9662 Updated all callers.
9663 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
9664 the decl does not already exist. Call cgraph_get_create_node instead
9665 of cgraph_node.
9666 (cgraph_get_create_node): New function.
9667 (cgraph_same_body_alias): Update comment.
9668 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
9669 assert it does not return NULL.
9670 (cgraph_update_edges_for_call_stmt): Likewise.
9671 (cgraph_clone_edge): Likewise.
9672 (cgraph_create_virtual_clone): Likewise.
9673 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
9674 instead of cgraph_node.
9675 (cgraph_add_new_function): Call cgraph_create_node or
9676 cgraph_get_create_node instead of cgraph_node.
9677 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
9678 instead of cgraph_node.
9679 (record_eh_tables): Likewise.
9680 (mark_address): Likewise.
9681 (mark_load): Likewise.
9682 (build_cgraph_edges): Call cgraph_get_create_node instead
9683 of cgraph_node.
9684 (rebuild_cgraph_edges): Likewise.
9685 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
9686 instead of cgraph_node.
9687 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
9688 cgraph_node.
9689 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
9690 cgraph_create_node instead of cgraph_node.
9691 * c-decl.c (finish_function): Call cgraph_get_create_node instead
9692 of cgraph_node.
9693 * lto-cgraph.c (input_node): Likewise.
9694 * lto-streamer-in.c (input_function): Likewise.
9695 * varasm.c (mark_decl_referenced): Likewise.
9696 (assemble_alias): Likewise.
9697
fe660d7b
MJ
96982011-04-12 Martin Jambor <mjambor@suse.cz>
9699
9700 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
9701 instead of cgraph_node and assert it does not return NULL.
9702 * lto-streamer-in.c (lto_read_body): Likewise.
9703 * omp-low.c (new_omp_context): Likewise.
9704 (create_task_copyfn): Likewise.
9705 * tree-emutls.c (lower_emutls_function_body): Likewise.
9706 * matrix-reorg.c (transform_allocation_sites): Likewise.
9707
bae5cddf
JJ
97082011-04-12 Jakub Jelinek <jakub@redhat.com>
9709
9710 PR c/48552
9711 * c-typeck.c (build_asm_expr): Error out on attempts to use
9712 void type outputs or inputs for constraints that allow reg or
9713 don't allow memory.
9714
06eb52ca
CLT
97152011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
9716 Richard Earnshaw <rearnsha@arm.com>
9717
9718 PR target/48250
9719 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
9720 to use sign-magnitude offsets. Reject unsupported unaligned
9721 cases. Add detailed description in comments.
9722 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
9723 condition from TARGET_32BIT to TARGET_ARM.
9724
648a616b
NF
97252011-04-11 Nathan Froyd <froydnj@codesourcery.com>
9726
9727 * tree.h (struct typed_tree): New.
9728 (struct tree_common): Include it instead of tree_base.
9729 (TREE_TYPE): Update for new location of type field.
9730 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
9731 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
9732 (union tree_node): Add typed field.
9733 * treestruct.def (TS_TYPED): New.
9734 * lto-streamer.c (check_handled_ts_structures): Handle it.
9735 * tree.c (MARK_TS_TYPED): New macro.
9736 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
9737
1e6d1da0
EB
97382011-04-11 Eric Botcazou <ebotcazou@adacore.com>
9739
9740 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
9741 (force_nonfallthru): Do not alter the loop nest if no basic block
9742 was created.
9743
97442011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
9745
9746 * config/i386/sse.md (VI): New mode iterator.
9747 (SSEMODEI): Remove.
9748 (AVX256MODEI): Ditto.
9749 (AVXMODEF4P): Ditto.
9750 (avxvecpsmode): Ditto.
9751 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
9752 (sse2_andnot<mode>3): New expander.
9753 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
9754 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
9755 (<any_logic:code><mode>3): Use VI mode iterator.
9756 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
9757 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
9758 (*andnottf3): Handle AVX three-operand constraints.
9759 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
9760
b1372d5d 97612011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 9762 Robert Millan <rmh@gnu.org>
b1372d5d
JM
9763
9764 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
9765 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
9766 GNU_USER_DYNAMIC_LINKER64): Define.
9767 (REG_NAME): Don't undefine.
9768 (MD_UNWIND_SUPPORT): Undefine.
9769 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
9770 (REG_NAME): Don't undefine.
9771 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 9772 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 9773
761c0c6e
JM
97742011-04-11 Joseph Myers <joseph@codesourcery.com>
9775
9776 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
9777 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
9778
26e0228f
XDL
97792011-04-11 Xinliang David Li <davidxl@google.com>
9780
9781 * value-profile.c (check_ic_target): New function.
9782 (gimple_ic_transform): Sanity check indirect call target.
9783 * gimple-low.c (gimple_check_call_args): Interface change.
9784 (gimple_check_call_matching_types): New function.
9785 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
9786
97872011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
9788
9789 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
9790 tree-pretty-print.h & realmpfr.h.
9791
a58dfa49
VM
97922011-04-11 Vladimir Makarov <vmakarov@redhat.com>
9793
9794 PR middle-end/48464
9795 * ira.c (setup_pressure_classes): Fix typo in loop condition.
9796 (setup_allocno_and_important_classes): Ditto.
9797
107fd1c1
JM
97982011-04-11 Joseph Myers <joseph@codesourcery.com>
9799
9800 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
9801 GNU_USER_DYNAMIC_LINKER.
9802 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
9803 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9804 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
9805 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9806 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9807 GNU_USER_TARGET_OS_CPP_BUILTINS.
9808 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
9809 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9810 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9811 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9812 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
9813 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
9814 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9815 GNU_USER_TARGET_OS_CPP_BUILTINS.
9816 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9817 GNU_USER_DYNAMIC_LINKER.
9818 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9819 GNU_USER_TARGET_OS_CPP_BUILTINS.
9820 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
9821 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9822 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
9823 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9824 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
9825 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
9826 GNU_USER_DYNAMIC_LINKER64): Remove.
9827 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
9828 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9829 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9830 GNU_USER_DYNAMIC_LINKER.
9831 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9832 GNU_USER_TARGET_OS_CPP_BUILTINS.
9833 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9834 GNU_USER_TARGET_OS_CPP_BUILTINS.
9835 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
9836 to GNU_USER_TARGET_OS_CPP_BUILTINS.
9837 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
9838 GNU_USER_TARGET_OS_CPP_BUILTINS.
9839 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
9840 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
9841 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9842 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
9843 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9844 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9845 GNU_USER_DYNAMIC_LINKER.
9846 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
9847 GNU_USER_TARGET_OS_CPP_BUILTINS.
9848 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
9849 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9850 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9851 GNU_USER_DYNAMIC_LINKER.
9852 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9853 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9854 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
9855 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9856 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9857 GNU_USER_DYNAMIC_LINKER.
9858 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
9859 GNU_USER_DYNAMIC_LINKERN32.
9860 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
9861 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
9862 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
9863 GNU_USER_DYNAMIC_LINKER32.
9864 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
9865 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9866 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9867 GNU_USER_DYNAMIC_LINKER.
9868 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
9869 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9870 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
9871 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 9872 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
9873 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
9874 GNU_USER_DYNAMIC_LINKER32.
9875 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
9876 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
9877 GNU_USER_DYNAMIC_LINKER.
9878 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
9879 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9880 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9881 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
9882 GNU_USER_DYNAMIC_LINKER64.
9883 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
9884 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9885 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9886 GNU_USER_DYNAMIC_LINKER.
9887 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
9888 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9889 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
9890 GNU_USER_DYNAMIC_LINKER.
9891 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
9892 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9893 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
9894 GNU_USER_DYNAMIC_LINKER32.
9895 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9896 GNU_USER_DYNAMIC_LINKER64.
9897 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
9898 GNU_USER_DYNAMIC_LINKER64.
9899 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
9900 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
9901 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
9902 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 9903 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 9904
e24609cf
JM
99052011-04-11 Joseph Myers <joseph@codesourcery.com>
9906
9907 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
9908 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
9909 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
9910 GNU_USER_DYNAMIC_LINKER.
9911 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9912 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
9913 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
9914 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
9915 GNU_USER_DYNAMIC_LINKER64.
9916 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
9917 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
9918 GNU_USER_LINK_EMULATION.
9919 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
9920 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
9921 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
9922 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
9923 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
9924 CPP_SPEC, CC1_SPEC): Remove.
9925 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
9926 (GNU_USER_DYNAMIC_LINKER): Define.
9927 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
9928 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
9929 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
9930 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
9931 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
9932 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
9933 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
9934 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
9935 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
9936 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
9937 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
9938 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
9939 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
9940 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
9941 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
9942 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
9943 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9944 GNU_USER_DYNAMIC_LINKER.
9945 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9946 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9947 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9948 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9949 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
9950 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
9951 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
9952 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
9953 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 9954 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 9955
b8ce4e94
KT
99562011-04-11 Kai Tietz <ktietz@redhat.com>
9957
9958 PR target/9601
9959 PR target/11772
9960 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
9961 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
9962 comment.
9963 (ix86_is_msabi_thiscall): Removed.
9964 (ix86_is_type_thiscall): Likewise.
9965 (ix86_get_callcvt): New function.
9966 (ix86_comp_type_attributes): Simplify check.
9967 (ix86_function_regparm): Use ix86_get_callcvt for calling
9968 convention attribute checks.
9969 (ix86_return_pops_args): Likewise.
9970 (ix86_static_chain): Likewise.
9971 (x86_this_parameter): Likewise.
9972 (x86_output_mi_thunk): Likewise.
9973 (ix86_function_type_abi): Optimize check for types without attributes.
9974 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
9975 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
9976 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
9977 by flag-values.
9978 (IX86_BASE_CALLCVT): Helper macro.
9979 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9980 Use ix86_get_callcvt for calling convention attribute checks and avoid
9981 symbol-decoration for stdcall in TARGET_RTD case.
9982 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
9983 Likewise.
9984 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
9985 for declaration.
9986
798dd0ba
UB
99872011-04-11 Uros Bizjak <ubizjak@gmail.com>
9988
9989 * config/i386/sse.md (VI_128): New mode iterator.
9990 (VI12_128): Rename from SSEMODE12.
9991 (VI14_128): Rename from SSEMODE14.
9992 (VI124_128): New mode iterator.
9993 (VI24_128): Rename from SSEMODE248.
9994 (VI248_128): Rename from SSEMODE248.
9995 (SSEMODE124C8): Remove.
9996 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
9997 (*sse2_<plusminus_insn><mode>3): Merge with
9998 *avx_<plusminus_insn><mode>3.
9999 (*mulv8hi3): Merge with *avx_mulv8hi3.
10000 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
10001 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
10002 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
10003 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
10004 (ashr<mode>3): Merge with *avx_ashr<mode>3.
10005 (lshr<mode>3): Merge with *avx_lshr<mode>3.
10006 (ashl<mode>3): Merge with *avx_ashl<mode>3.
10007 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
10008 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
10009 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10010 (*<smaxmin:code>v8hi3): Ditto.
10011 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
10012 (*<smaxmin:code>v16qi3): Ditto.
10013 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
10014 (*sse2_eq<mode>3): Ditto.
10015 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
10016 (*sse2_gt<mode>3): Ditto.
10017 (vcondv2di): Split out of vcond<mode>.
10018 (vconduv2di): Split out of vcondu<mode>.
10019
956011be
RG
100202011-04-11 Richard Guenther <rguenther@suse.de>
10021
10022 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
10023 before calling tree_low_cst.
10024
e6313a78
RG
100252011-04-11 Richard Guenther <rguenther@suse.de>
10026
10027 * stor-layout.c (layout_type): Compute all array index size operations
10028 in the original type.
10029 (initialize_sizetypes): Add comment.
10030 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
10031
e69d7376
JM
100322011-04-11 Joseph Myers <joseph@codesourcery.com>
10033
10034 * common.opt (Tbss=, Tdata=, Ttext=): New options.
10035
9f9ebcdf
MJ
100362011-04-11 Martin Jambor <mjambor@suse.cz>
10037
10038 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
10039 of cgraph_node, handle NULL return value.
10040 (cgraph_global_info): Likewise.
10041 (cgraph_rtl_info): Likewise.
10042 * tree-inline.c (estimate_num_insns): Likewise.
10043 * gimplify.c (unshare_body): Likewise.
10044 (unvisit_body): Likewise.
10045 (gimplify_body): Likewise.
10046 * predict.c (optimize_function_for_size_p): Likewise.
10047 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10048 (call_may_clobber_ref_p_1): Likewise.
10049 * varasm.c (function_section_1): Likewise.
10050 (assemble_start_function): Likewise.
10051
581985d7
MJ
100522011-04-11 Martin Jambor <mjambor@suse.cz>
10053
10054 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
10055 of cgraph_node.
10056 * final.c (rest_of_clean_state): Likewise.
10057 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
10058 * passes.c (pass_init_dump_file): Likewise.
10059 (execute_all_ipa_transforms): Likewise.
10060 (function_called_by_processed_nodes_p): Likewise.
10061 * predict.c (maybe_hot_frequency_p): Likewise.
10062 (probably_never_executed_bb_p): Likewise.
10063 (compute_function_frequency): Likewise.
10064 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
10065 (unnest_nesting_tree_1): Likewise.
10066 (lower_nested_functions): Likewise.
10067 * tree-optimize.c (execute_fixup_cfg): Likewise.
10068 (tree_rest_of_compilation): Likewise.
10069 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
10070 * tree-sra.c (ipa_early_sra): Likewise.
10071 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
10072 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
10073 * ipa.c (record_cdtor_fn): Likewise.
10074 * ipa-inline.c (cgraph_early_inlining): Likewise.
10075 (compute_inline_parameters_for_current): Likewise.
10076 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10077 * ipa-pure-const.c (local_pure_const): Likewise.
10078 * ipa-split.c (split_function): Likewise.
10079 (execute_split_functions): Likewise.
10080 * cgraphbuild.c (build_cgraph_edges): Likewise.
10081 (rebuild_cgraph_edges): Likewise.
10082 (cgraph_rebuild_references): Likewise.
10083 (remove_cgraph_callee_edges): Likewise.
10084 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
10085 (verify_cgraph_node): Likewise.
10086 (cgraph_analyze_functions): Likewise.
10087 (cgraph_preserve_function_body_p): Likewise.
10088 (save_inline_function_body): Likewise.
10089 (save_inline_function_body): Likewise.
10090 * tree-inline.c (copy_bb): Likewise.
10091 (optimize_inline_calls): Likewise.
10092
57dbdc5a
MJ
100932011-04-11 Martin Jambor <mjambor@suse.cz>
10094
10095 PR tree-optimization/48195
10096 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
10097 ipa_check_create_edge_args.
10098 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
10099 ipa_check_create_edge_args.
10100 * ipa-inline.c (inline_generate_summary): Do not call
10101 ipa_check_create_node_params and ipa_check_create_edge_args.
10102 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
10103 ipa_check_create_edge_args.
10104
d108e679
AS
101052011-04-09 Anatoly Sokolov <aesok@post.ru>
10106
10107 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
10108 instead of loop.
10109 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10110 * function.c (record_hard_reg_sets): Likewise.
10111 * ira.c (compute_regs_asm_clobbered): Likewise.
10112 * sched-deps.c (sched_analyze_1): Likewise.
10113 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
10114
3411bc59
XDL
101152011-04-09 Xinliang David Li <davidxl@google.com>
10116
10117 PR tree-optimization/PR48484
10118 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
10119 has_valid_pred lazily
10120
b365495a
DS
101212011-04-09 Duncan Sands <baldrick@free.fr>
10122
10123 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
10124
68bc509a
EB
101252011-04-08 Eric Botcazou <ebotcazou@adacore.com>
10126
10127 * combine.c (combine_validate_cost): Adjust comments. Set registered
10128 cost of I0 to zero at the end, if any.
10129
041e059f
XDL
101302011-04-08 Xinliang David Li <davidxl@google.com>
10131
68bc509a
EB
10132 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
10133 to insane profile data.
041e059f 10134
444b3995
XDL
101352011-04-08 Xinliang David Li <davidxl@google.com>
10136
10137 * ipa-cp.c (ipcp_update_profiling): Correct
10138 negative scale factor due to insane profile data.
10139
6a801cf2
XDL
101402011-04-08 Xinliang David Li <davidxl@google.com>
10141
10142 * final.c (dump_basic_block_info): New function.
10143 (final): Dump basic block.
10144 (final_scan_insn): Remove old dump.
10145
d5f3624e
SK
101462011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
10147
68bc509a
EB
10148 PR target/47829
10149 * config.gcc (i386-*-freebsd): Disable unwind table generation for
10150 crtbegin/crtend.
d5f3624e 10151
42821aff
MM
101522011-04-08 Michael Matz <matz@suse.de>
10153
10154 PR middle-end/48389
10155 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
10156 functions.
10157 (rebuild_jump_labels): Call rebuild_jump_labels_1.
10158 * rtl.h (rebuild_jump_labels_chain): Declare.
10159 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
10160 insns inserted on edges.
10161
ad7be009
JM
101622011-04-08 Joseph Myers <joseph@codesourcery.com>
10163
10164 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
10165 * config/arm/arm-arches.def: New.
10166 * config/arm/arm-opts.h: New.
10167 * config/arm/genopt.sh: New.
10168 * config/arm/arm-tables.opt: New (generated).
10169 * config/arm/arm.c (arm_handle_option, arm_target_help,
10170 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
10171 (all_architectures): Get most table contents from arm-arches.def.
10172 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
10173 arm_selected_tune here.
10174 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
10175 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
10176 (march=, mcpu=, mtune=): Use Enum and Var.
10177 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
10178 (arm.o): Update dependencies.
ecbb6fb7 10179
42821aff 101802011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
10181
10182 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
10183 of header_file.
10184 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
10185 (write_typed_alloc_defns): Likewise.
10186 (main): Calls write_typed_alloc_defns with output_header.
10187
8d189b3f
VM
101882011-04-08 Vladimir Makarov <vmakarov@redhat.com>
10189
68bc509a 10190 PR inline-asm/48435
8d189b3f
VM
10191 * ira-color.c (setup_profitable_hard_regs): Add comments.
10192 Don't take prohibited hard regs into account.
10193 (setup_conflict_profitable_regs): Rename to
10194 get_conflict_profitable_regs.
10195 (check_hard_reg_p): Check prohibited hard regs.
10196
44f370bf
NF
101972011-04-08 Nathan Froyd <froydnj@codesourcery.com>
10198
10199 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
10200 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
10201 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
10202
483d7ad3
JDA
102032011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10204
10205 PR target/48366
10206 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 10207 move from floating point to shift amount register.
483d7ad3
JDA
10208 (emit_move_sequence): Remove secondary reload support for floating
10209 point to shift amount amount register copies.
10210 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
10211 amount register copies.
10212 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
10213 register, return false if mode isn't a scalar integer mode.
10214 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
10215
97e03fa1
RG
102162011-04-08 Richard Guenther <rguenther@suse.de>
10217
10218 * gimple.c (gimple_call_flags): Remove kludge.
10219
9d40778b
AM
102202011-04-08 Alexander Monakov <amonakov@ispras.ru>
10221
10222 * sel-sched.c (sel_region_init): Move call to
10223 sel_setup_region_sched_flags after setup_current_loop_nest.
10224
19ac7892
AB
102252011-04-08 Andrey Belevantsev <abel@ispras.ru>
10226
10227 PR rtl-optimization/48272
19ac7892
AB
10228 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
10229 init_insn_reg_pressure_info. Adjust a caller.
10230 * sched-int.h (init_insn_reg_pressure_info): Declare.
10231 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
10232 when sched-pressure is enabled.
10233
0f8c63cc
RG
102342011-04-08 Richard Guenther <rguenther@suse.de>
10235
10236 * gimple.c (gimple_set_modified): Do not queue calls to
10237 MODIFIED_NORETURN_CALLS here ...
10238 * tree-ssa-operands.c (update_stmt_operands): ... but here.
10239
5e5a425e
RG
102402011-04-08 Richard Guenther <rguenther@suse.de>
10241
10242 PR lto/48467
10243 * toplev.c (lang_dependent_init): Do not open asm_out_file
10244 in WPA mode, nor perform debug machinery initialization.
10245 (finalize): Do not unlink asm_out_file in WPA mode.
10246
9bfc434b
RG
102472011-04-08 Richard Guenther <rguenther@suse.de>
10248
10249 * gimple.h (gimple_call_fntype): New function.
10250 (gimple_call_return_type): Use it.
10251 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
10252 * gimple-low.c (gimple_check_call_args): Likewise.
10253 * gimple.c (gimple_call_flags): Likewise.
10254 (gimple_call_arg_flags): Likewise.
10255 (gimple_call_return_flags): Likewise.
10256 * tree-cfg.c (verify_gimple_call): Likewise.
10257 (do_warn_unused_result): Likewise.
10258 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
10259 * value-prof.c (gimple_ic_transform): Fix fndecl check.
10260
7c1f0b40
DM
102612011-04-08 Dmitry Melnik <dm@ispras.ru>
10262
10263 PR rtl-optimization/48235
10264 * sel-sched.c (code_motion_process_successors): Recompute the last
10265 insn in basic block if control flow changed.
10266 (code_motion_path_driver): Ditto. Recompute the first insn as well.
10267 Update condition for ilist_remove.
10268
ea4d630f
AM
102692011-04-08 Alexander Monakov <amonakov@ispras.ru>
10270
10271 PR rtl-optimization/48302
10272 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
10273 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
10274 it to record added preheader blocks.
10275 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
10276 on to sel_add_loop_preheaders.
10277 (sel_region_init): Move call to setup_current_loop_nest after
10278 sel_init_bbs.
10279
07643d76
AM
102802011-04-08 Alexander Monakov <amonakov@ispras.ru>
10281
10282 PR target/48273
10283 * cfgloop.h (loop_has_exit_edges): New helper.
10284 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
10285 non-clonable.
10286 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
10287 that have no exit edges.
10288
1f3b2b4e
AM
102892011-04-08 Alexander Monakov <amonakov@ispras.ru>
10290
10291 PR rtl-optimization/48442
10292 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
10293 all callers. Adjust assert.
10294
554f1948
JJ
102952011-04-08 Jakub Jelinek <jakub@redhat.com>
10296
10297 PR tree-optimization/48377
10298 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
10299 is_packed to true even for types with smaller TYPE_ALIGN than
10300 TYPE_SIZE.
10301
ddf72388
RG
103022011-04-08 Richard Guenther <rguenther@suse.de>
10303
10304 PR bootstrap/48513
10305 * doc/tm.texi: Re-generate.
10306
0c27e2d8
WG
103072011-04-08 Wei Guozhi <carrot@google.com>
10308
10309 PR target/47855
10310 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
10311 * config/arm/arm.c (arm_attr_length_push_multi): New function.
10312 * config/arm/arm.md (*push_multi): Change the length computation to
10313 call a C function.
10314
07c5f94e
AS
103152011-04-08 Anatoly Sokolov <aesok@post.ru>
10316
10317 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
10318 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
10319 * doc/tm.texi: Regenerate.
10320 * system.h (ASM_OUTPUT_BSS): Poison.
10321 * varasm.c (asm_output_bss): Remove function.
10322 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 10323
07c5f94e
AS
10324 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
10325 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
10326 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
10327 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10328 Likewise.
10329 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10330 Likewise.
10331 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
10332 Likewise.
10333 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10334
5f2c36e1
JM
103352011-04-07 Joseph Myers <joseph@codesourcery.com>
10336
10337 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
10338 EnumValue lines.
10339
39e7722b
JM
103402011-04-07 Joseph Myers <joseph@codesourcery.com>
10341
10342 * config/m68k/m68k.c (m68k_handle_option): Don't handle
10343 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
10344 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
10345 OPT_mcpu32.
10346 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10347 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
10348 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
10349 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
10350 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
10351 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
10352 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
10353 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
10354 options. Don't map other m68k options manually. Don't handle
10355 old-style options as canonical.
10356 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 10357 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 10358
cf103ca4
EB
103592011-04-07 Eric Botcazou <ebotcazou@adacore.com>
10360
10361 * basic-block.h (force_nonfallthru): Move to...
10362 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
10363 (force_nonfallthru): ...here.
10364 * cfghooks.c (force_nonfallthru): New function.
10365 * cfgrtl.c (force_nonfallthru): Rename into...
10366 (rtl_force_nonfallthru): ...this.
10367 (commit_one_edge_insertion): Do not set AUX field.
10368 (commit_edge_insertions): Do not discover new basic blocks.
10369 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
10370 (cfg_layout_rtl_cfg_hooks): Likewise.
10371 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
10372 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
10373 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
10374
14431f58
AS
103752011-04-07 Anatoly Sokolov <aesok@post.ru>
10376
10377 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10378 Remove macros.
10379
3729983c
UB
103802011-04-07 Uros Bizjak <ubizjak@gmail.com>
10381
10382 * config/i386/sse.md: Update copyright year.
10383 (avxcvtvecmode): Remove.
10384 (sse_movhlps): Merge with *avx_movhlps.
10385 (sse_movlhps): Merge with *avx_movlhps.
10386 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
10387 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
10388 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
10389 (sse_loadhps): Merge with *avx_loadhps.
10390 (sse_storelps): Merge with *avx_storelps.
10391 (sse_loadlps): Merge with *avx_loadlps.
10392 (sse_movss): Merge with *avx_movss.
10393 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
10394 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
10395 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
10396 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
10397 (vec_set<mode>_0): Ditto.
10398 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
10399 (sse4_1_insertps): Merge with *avx_insertps.
10400 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
10401 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
10402 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
10403 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
10404 (sse2_storehpd): Merge with *avx_storehpd.
10405 (sse2_loadhpd): Merge with *avx_loadhpd.
10406 (sse2_loadlpd): Merge with *avx_loadlpd.
10407 (sse2_movsd): Merge with *avx_movsd.
10408 (*vec_concatv2df): Merge with *vec_concatv2df.
10409
4e626909
JJ
104102011-04-07 Jakub Jelinek <jakub@redhat.com>
10411
10412 PR debug/48343
10413 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 10414 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
10415 (try_combine): Add last_combined_insn parameter, pass it instead of
10416 i3 to propagate_for_debug.
10417
3729983c 104182011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
10419
10420 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
10421 to handle MDR <-> data register transfers.
10422 (movhi_internal): Likewise.
10423
20c03367
AM
104242011-04-07 Alan Modra <amodra@gmail.com>
10425
10426 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
10427 previous stack info.
10428
bf22920b
TV
104292011-04-07 Tom de Vries <tom@codesourcery.com>
10430
10431 PR target/43920
10432 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
10433 flow_find_cross_jump. Swap variables to implement backward replacement.
10434 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
10435
823918ae
TV
104362011-04-07 Tom de Vries <tom@codesourcery.com>
10437
10438 PR target/43920
10439 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
10440 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
10441 and bb2.
10442 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
10443 src1 or src2. Redirect edges to the last basic block. Update
10444 frequency and count on multiple basic blocks in case of fallthru.
823918ae 10445
472c95f5
TV
104462011-04-07 Tom de Vries <tom@codesourcery.com>
10447
10448 PR target/43920
10449 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
10450 function.
3729983c
UB
10451 (old_insns_match_p): Change return type. Replace return false/true
10452 with return dir_none/dir_both. Use can_replace_by.
10453 (flow_find_cross_jump): Add dir_p parameter. Init replacement
10454 direction from dir_p. Register replacement direction in dir, last_dir
10455 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
10456 merge_dir. Return replacement direction in dir_p.
10457 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
10458 return type of old_insns_match_p.
10459 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
10460 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
10461 flow_find_cross_jump.
10462 * basic-block.h (enum replace_direction): New type.
10463 (flow_find_cross_jump): Add parameter to declaration.
10464
a95d4000
UB
104652011-04-06 Uros Bizjak <ubizjak@gmail.com>
10466
10467 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
10468 (AVXMODEDCVTPS2DQ): Ditto.
10469 (VEC_FLOAT_MODE): Ditto.
10470 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
10471 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10472 (<any_logic:code><mode>3): Use VF mode iterator.
10473 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
10474 Use VF mode iterator.
10475 (copysign<mode>3): Use VF mode iterator.
10476 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
10477 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
10478 (*<any_logic:code><MODEF:mode>3): Merge with
10479 *avx_<any_logic:code><MODEF:mode>3.
10480 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
10481 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
10482 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
10483 (avx_cvtdq2ps<avxmodesuffix>): Remove.
10484 (sse2_cvtdq2ps): Use %v modifier.
10485 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
10486 (avx_cvtps2dq<avxmodesuffix>): Remove.
10487 (sse2_cvtps2dq): Use %v modifier.
10488 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
10489 (avx_cvttps2dq<avxmodesuffix>): Remove.
10490 (sse2_cvttps2dq): Use %v modifier.
10491 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
10492 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
10493 (sse2_cvtsd2siq): Fix insn template.
10494 (sse2_cvtsd2siq_2): Ditto.
10495 (sse2_cvttsd2siq): Ditto.
10496 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
10497 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
10498
ad01c437
JM
104992011-04-06 Joseph Myers <joseph@codesourcery.com>
10500
10501 * gcov-io.c: Use GCC Runtime Library Exception.
10502
fe846284
JJ
105032011-04-06 Jakub Jelinek <jakub@redhat.com>
10504
10505 PR debug/48466
10506 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
10507 as base_reg whatever register reg has been eliminated to, instead
10508 of hardcoding STACK_POINTER_REGNUM.
10509
acce4e77
JM
105102011-04-06 Joseph Myers <joseph@codesourcery.com>
10511
10512 * doc/tm.texi.in: Document C target hooks as separate from general
10513 target hooks.
10514 * doc/tm.texi: Regenerate.
10515 * genhooks.c (struct hook_desc): Add docname field.
10516 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
10517 docname field.
10518 (hook_array): Include c-target.def.
10519 (emit_documentation): Use docname field in output.
10520 (emit_init_macros): Take docname argument. Only emit definitions
10521 for hooks matching docname.
10522 (main): Expect additional arguments in all cases. Pass argument
10523 to emit_init_macros.
10524 * target.def: Move initial macro definitions and comments to
10525 target-hooks-macros.h.
10526 (gcc_targetcm): Move to c-family/c-target.def.
10527 * target.h (targetcm): Move declaration to c-family/c-target.h.
10528 * targhooks.c (default_handle_c_option): Move to
10529 c-family/c-opts.c.
10530 * targhooks.h (default_handle_c_option): Move declaration to
10531 c-family/c-common.h.
10532 * target-hooks-macros.h: New file.
10533 * config.gcc (target_has_targetcm): Define and use to add to
10534 c_target_objs and cxx_target_objs.
10535 * config/default-c.c: New file.
10536 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
10537 of target.h and target-def.h.
10538 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
10539 (darwin_objc_construct_string, darwin_cfstring_ref_p,
10540 darwin_check_cfstring_format_arg): Make static.
10541 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10542 TARGET_STRING_OBJECT_REF_TYPE_P,
10543 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
10544 * config/darwin-protos.h (darwin_objc_construct_string,
10545 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
10546 declare.
10547 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
10548 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 10549 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
10550 * config/t-darwin (darwin-c.o): Update dependencies.
10551 * system.h (TARGET_HAS_TARGETCM): Poison.
10552 * Makefile.in (TARGET_H): Update.
10553 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
10554 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
10555 (default-c.o): New target.
10556 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 10557 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
10558 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
10559 c-target.def.
10560 (build/genhooks.o): Update dependencies.
10561
275b4baa 105622011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 10563
275b4baa
RG
10564 * ipa-inline.c (enum inlining_mode): Remove.
10565 (cgraph_flatten): Use some other token.
10566 (cgraph_edge_early_inlinable_p): New function, split out from ...
10567 (cgraph_perform_always_inlining): New function, split out from ...
10568 (cgraph_decide_inlining_incrementally): ... here.
10569 (cgraph_mark_inline_edge): Adjust.
10570 (cgraph_early_inlining): Re-structure.
10571 (pass_early_inline): Require SSA form.
10572
f15b8bdf 105732011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
10574 Julian Brown <julian@codesourcery.com>
10575 Mark Shinwell <shinwell@codesourcery.com>
10576
10577 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
10578 LO_REGS only for Thumb-1.
10579 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
10580 be used in short instructions when optimising for size on Thumb-2.
10581
516426da
EB
105822011-04-06 Eric Botcazou <ebotcazou@adacore.com>
10583
10584 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
10585 associated with user returns to be preserved.
10586
96621ebf
TG
105872011-04-06 Tristan Gingold <gingold@adacore.com>
10588
f15b8bdf
EB
10589 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
10590 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
10591 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
10592 if XCOFF_DEBUGGING_INFO.
10593
07c0852e
UB
105942011-04-06 Uros Bizjak <ubizjak@gmail.com>
10595
10596 * config/i386/i386.md (attribute isa): New.
10597 (attribute enabled): New.
10598 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
10599 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
10600 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
10601 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
10602 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
10603 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10604 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
10605 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
10606
10607 * config/i386/sse.md (VF): New mode iterator.
10608 (VF1): Ditto.
10609 (VF2): Ditto.
10610 (VF_128): Ditto.
10611 (SSEMODEF4): Remove.
10612 (attribute sse): Handle V8SF and V4DF modes.
10613 (<absneg:code><mode>2): Use VF mode iterator.
10614 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
10615 mode iterator.
10616 (<plusminus_insn><mode>3): Use VF mode iterator.
10617 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
10618 Use VF mode iterator.
10619 (<sse>_vm<plusminus_insn><mode>3): Merge with
10620 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
10621 (mul<mode>3): Use VF mode iterator.
10622 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
10623 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
10624 mode iterator.
10625 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
10626 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
10627 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
10628 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
10629 mode iterator.
10630 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
10631 Use VF1 mode iterator.
10632 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
10633 (sqrt<VF2:mode>2): New expander.
10634 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
10635 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
10636 and sqrtv2df2. Use VF mode iterator.
10637 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
10638 mode iterator.
10639 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
10640 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
10641 Use VF1 mode iterator.
10642 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
10643 (<smaxmin:code><mode>3): Use VF mode iterator.
10644 (*<smaxmin:code><mode>3_finite): Merge with
10645 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
10646 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
10647 (<sse>_vm<smaxmin:code><mode>2): Merge with
10648 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
10649 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
10650 mode iterator.
10651 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
10652 mode iterator.
10653 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
10654 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
10655 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
10656 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
10657 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
10658 VF mode iterator.
10659 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
10660 Use VF_128 mode iterator.
10661 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
10662 mode iterator.
10663 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
10664 VF_128 mode iterator.
10665 (vcond<mode>): Use VF mode iterator.
10666 * config/i386/predicates.md (sse_comparison_operator): Merge with
10667 avx_comparison_float_operator. Do not declare as special_predicate.
10668 * config/i386/i386.c (struct builtin_description): Update for renamed
10669 compare patterns.
10670 (ix86_expand_args_builtin): Ditto.
10671 (ix86_expand_sse_compare_mask): Ditto.
10672
ff5d142c
RG
106732011-04-06 Richard Guenther <rguenther@suse.de>
10674
10675 * tree-inline.c (estimate_num_insns): For calls simply account
10676 for all passed arguments and a used return value.
10677
d7d1d041 106782011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 10679
d7d1d041
RG
10680 PR tree-optimization/47663
10681 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
10682 call_stmt_time fields.
10683 (cgraph_edge_inlinable_p): Declare.
10684 (cgraph_edge_recursive_p): New inline function.
10685 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
10686 (cgraph_clone_edge): Copy it.
10687 * ipa-inline.c (cgraph_estimate_edge_time): New function.
10688 Account for call stmt time.
10689 (cgraph_estimate_time_after_inlining): Take edge argument.
10690 (cgraph_estimate_edge_growth): Account call stmt size.
10691 (cgraph_estimate_size_after_inlining): Take edge argument.
10692 (cgraph_mark_inline_edge): Adjust.
10693 (cgraph_check_inline_limits): Likewise.
10694 (cgraph_recursive_inlining_p): Remove.
10695 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
10696 (cgraph_decide_recursive_inlining): Take edge argument and
10697 adjust.
10698 (cgraph_decide_inlining_of_small_functions): Do not avoid
10699 diags for recursive inlining here.
10700 (cgraph_flatten): Adjust.
10701 (cgraph_decide_inlining_incrementally): Likewise.
10702 (estimate_function_body_sizes): Remove call cost handling.
10703 (compute_inline_parameters): Initialize caller edge call costs.
10704 (cgraph_estimate_edge_growth): New function.
10705 (cgraph_estimate_growth): Use it.
10706 (cgraph_edge_badness): Likewise.
10707 (cgraph_check_inline_limits): Take an edge argument.
10708 (cgraph_decide_inlining_of_small_functions): Adjust.
10709 (cgraph_decide_inlining): Likewise.
10710 * tree-inline.c (estimate_num_insns): Only account for call
10711 return value if it is used.
10712 (expand_call_inline): Avoid diagnostics on recursive inline
10713 functions here.
10714 * lto-cgraph.c (lto_output_edge): Output edge call costs.
10715 (input_edge): Input edge call costs.
10716
2feb95f7
RO
107172011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10718
10719 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
10720
26fbd9c2
JW
107212011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
10722
10723 * doc/invoke.texi (Spec Files): Fix typo.
10724
694dc0ca
EB
107252011-04-06 Eric Botcazou <ebotcazou@adacore.com>
10726
10727 * profile.c (branch_prob): Move declaration of local variable. Remove
10728 obsolete ??? comment. Expand the location explicitly instead of using
10729 the LOCATION_FILE and LOCATION_LINE macros.
10730
4925d0d5
WG
107312011-04-06 Wei Guozhi <carrot@google.com>
10732
10733 PR target/47855
10734 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
10735 (arm_cond_branch): Likewise.
10736 (arm_cond_branch_reversed): Likewise.
10737 (arm_jump): Likewise.
10738 (push_multi): Likewise.
10739 * config/arm/constraints.md (Py): New constraint.
10740
f55dfa2f
NF
107412011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10742
10743 PR bootstrap/48471
10744 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
10745 Move these...
10746 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
10747 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
10748 #ifdef DBX_DEBUGGING_INFO.
10749
fca96842
BS
107502011-04-05 Bernd Schmidt <bernds@codesourcery.com>
10751
10752 PR bootstrap/48403
10753 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
10754 if old and new states differ.
10755
30b83e38
JM
107562011-04-05 Joseph Myers <joseph@codesourcery.com>
10757
10758 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
10759 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
10760 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
10761 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
10762 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
10763 mcfv4e): Use Alias.
10764 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
10765 ColdFire options to -mcpu= options.
10766
277a9aa5
JL
107672011-04-05 Jeff Law <law@redhat.com>
10768
10769 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
10770 check if BB is a successor of LOOP->header and return
10771 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
10772
c1e2610e
SB
107732011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10774
10775 * cprop.c (struct reg_use): Remove.
10776 (reg_use_table): Make an array of RTX.
10777 (find_used_regs, constprop_register, local_cprop_pass,
10778 bypass_block): Simplify users of reg_use_table.
10779 (cprop_insn): Likewise. Iterate if copy propagation succeeded
10780 on one of the uses found by find_used_regs.
10781
e532f586
NF
107822011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10783
10784 PR bootstrap/48469
10785 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
10786 declaration.
10787
3fb7c055
NF
107882011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10789
10790 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
10791 as an rtx.
10792 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
10793
b71b43d9
SB
107942011-04-05 Steven Bosscher <steven@gcc.gnu.org>
10795
10796 PR middle-end/48441
10797 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
10798
b405b274
NF
107992011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10800
10801 * combine.c: Include obstack.h.
10802 (struct insn_link): Define.
10803 (uid_log_links): Adjust type.
10804 (FOR_EACH_LOG_LINK): New macro.
10805 (insn_link_obstack): Declare.
10806 (alloc_insn_link): Define.
10807 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
10808 type of link variables.
10809 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
10810 (try_combine, record_promoted_values, distribute_notes): Likewise.
10811 (distribute_links): Likewise. Tweak prototype.
10812 (clear_log_links): Delete.
10813 (adjust_for_new_dest): Call alloc_insn_link.
10814 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
10815
6409abe3
NF
108162011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10817
10818 * gcse.c (modify_mem_list): Convert to an array of VECs.
10819 (canon_modify_mem_list, compute_transp): Tweak formatting.
10820 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
10821 (load_killed_in_block_p): Likewise.
10822 (record_last_mem_set_info): Likewise.
10823 (clear_modify_mem_tables): Likewise.
10824
170d8157
TV
108252011-04-05 Tom de Vries <tom@codesourcery.com>
10826
10827 PR middle-end/48461
10828 * function.c (emit_use_return_register_into_block): Only define if
10829 HAVE_return.
10830
c5911a55
EB
108312011-04-05 Eric Botcazou <ebotcazou@adacore.com>
10832
10833 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
10834
abd016e6
JM
108352011-04-05 Joseph Myers <joseph@codesourcery.com>
10836
10837 * config/rx/rx-opts.h: New.
10838 * config/rx/rx.c (rx_cpu_type): Remove.
10839 (rx_handle_option): Don't assert that global structures are in
10840 use. Access variables via opts pointer. Defer most handling of
10841 OPT_mint_register_. Use error_at.
10842 (rx_option_override): Handle deferred OPT_mint_register_ here.
10843 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
10844 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
10845 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
10846 (rx_cpu_types): New Enum and EnumValue entries.
10847 (mint-register=): Use Defer and use Var accordingly.
10848
1ed13f83
NF
108492011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10850
10851 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
10852 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
10853 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
10854 Move these...
10855 (debug_free_queue, debug_nesting, symbol_queue_index):
10856 ...and these...
10857 * dbxout.c: ...to here. Make static.
10858
6ce1edcf
NF
108592011-04-05 Nathan Froyd <froydnj@codesourcery.com>
10860
10861 * gcse.c (modify_pair): Define. Define a VEC of it.
10862 (canon_modify_mem_list): Convert to an array of VECs.
10863 (free_insn_expr_list_list): Delete.
10864 (clear_modify_mem_tables): Call VEC_free instead.
10865 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
10866 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
10867 (canon_list_insert, compute_transp): Likewise.
10868
c201ac94
TV
108692011-04-05 Tom de Vries <tom@codesourcery.com>
10870
10871 PR target/43920
10872 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
10873 for size.
10874
4c029f40
TV
108752011-04-05 Tom de Vries <tom@codesourcery.com>
10876
10877 PR target/43920
10878 * function.c (emit_use_return_register_into_block): New function.
10879 (thread_prologue_and_epilogue_insns): Use
10880 emit_use_return_register_into_block.
10881
2a562b0a
TV
108822011-04-05 Tom de Vries <tom@codesourcery.com>
10883
10884 PR target/43920
10885 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
10886 insn.
10887
0248bceb
TV
108882011-04-05 Tom de Vries <tom@codesourcery.com>
10889
10890 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
10891
ffa94123
YZ
108922011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
10893
798dd0ba
UB
10894 * config/arm/arm.md (define_constants for unspec): Replace with
10895 define_c_enum.
10896 (define_constants for unspecv): Replace with define_c_enum.
10897 * config/arm/neon.md (define_constants for unspec): Replace with
10898 define_c_enum.
ffa94123 10899
3b8f9b46
RH
109002011-04-04 Richard Henderson <rth@redhat.com>
10901
720cf80f 10902 PR bootstrap/48400
3b8f9b46
RH
10903 * dwarf2out.c (output_line_info): Always emit line info from
10904 at least one section.
10905 (dwarf2out_init): Create text_section_line_info here ...
10906 (set_cur_line_info_table): ... not here.
10907
720cf80f 109082011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
10909
10910 PR target/48380
10911 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 10912 not called.
e5b0e1ca 10913
720cf80f 10914 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 10915
196565d4
SB
109162011-04-04 Steven Bosscher <steven@gcc.gnu.org>
10917
b77f9eab
SB
10918 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
10919 (expr_equiv_p): Remove.
10920 (insert_set_in_table): Look at <dest, src> pair instead of expr.
10921 (hash_scan_set): Update call to insert_set_in_table.
10922 (dump_hash_table): Dump <dest, src> pair.
10923 (lookup_set): Simplify. Lookup <dest, src> pair.
10924 (compute_transp): Remove, fold heavily simplified code into...
10925 (compute_local_properties): ...here. Expect COMP and TRANSP
10926 unconditionally.
10927 (find_avail_set): Take set directly from struct expr.
10928 (find_bypass-set): Likewise.
10929 (bypass_block): Likewise.
10930 (cprop_insn): Likewise. Remove redundant INSN_P test.
10931
384d7a55
SB
10932 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
10933 checks on form of COND from find_implicit_sets to here.
10934 (find_implicit_sets): Cleanup control flow. Split critical edges
10935 if it exposes implicit sets. Allocate/resize implicit_sets as
10936 necessary.
10937 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
10938 changed something. Run df_analyze after find_implicit_sets if any
10939 edges were split. Do not allocate implicit_sets here.
10940
3084ce69
SB
10941 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
10942 (gcse_obstack): Renamed to cprop_obstack.
10943 (GNEW, GNEWVEC, GNEWVAR): Remove.
10944 (gmalloc): Remove.
10945 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
10946 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
10947 (gcse_alloc): Likewise, and rename to cprop_alloc.
10948 (alloc_gcse_men, free_gcse_mem): Remove.
10949 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
10950 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
10951 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
10952
196565d4
SB
10953 * cprop.c (oprs_not_set_p): Remove.
10954 (mark_set, mark_clobber): Remove.
10955 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
10956 (reg_not_set_p): New function.
10957 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
10958 (cprop_insn): Likewise.
10959 (cprop_jump): Use FOR_EACH_EDGE.
10960
9b69cf83
BS
109612011-04-04 Bernd Schmidt <bernds@codesourcery.com>
10962
10963 PR bootstrap/48403
10964 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
10965 (rank_for_schedule): Use scheduled_insns vector instead of
10966 last_scheduled_insn.
10967 (ok_for_early_queue_removal): Likewise.
10968 (queue_to_ready): Search forward in nonscheduled_insns_begin if
10969 we have a dbg_cnt.
10970 (choose_ready): Likewise.
10971 (commit_schedule): Use VEC_iterate.
10972 (schedule_block): Initialize nonscheduled_insns_begin. If we have
10973 a dbg_cnt, use it and ensure the first insn is in the ready list.
10974 (haifa_sched_init): Allocate scheduled_insns.
10975 (sched_extend_ready_list): Don't allocate it; reserve space.
10976 (haifa_sched_finish): Free it.
10977
24f48c2f
JM
109782011-04-04 Joseph Myers <joseph@codesourcery.com>
10979
10980 * optc-gen.awk: Always remove type from Variable entry before
10981 recording in var_seen.
10982
8effe856
EB
109832011-04-04 Eric Botcazou <ebotcazou@adacore.com>
10984
10985 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
10986 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
10987 call to tidy_fallthru_edges.
10988
413519ae
JM
109892011-04-04 Joseph Myers <joseph@codesourcery.com>
10990
10991 * doc/options.texi (ToLower): Document.
3729983c 10992 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
10993 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
10994 * opts.h (cl_option): Add cl_tolower field.
10995 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
10996 arguments with lowercase strings.
10997 * config/rx/rx.opt (mcpu=): Add ToLower.
10998 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
10999 argument.
11000
7d34a1b0
RS
110012011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
11002
11003 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
11004
c30e7434
RS
110052011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
11006
11007 * config/vax/vax.c: Include reload.h.
11008
112a861d
AS
110092011-04-04 Anatoly Sokolov <aesok@post.ru>
11010
11011 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
11012 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11013 (sparc_preferred_reload_class): New function.
11014
e8c6bb74
JJ
110152011-04-04 Jakub Jelinek <jakub@redhat.com>
11016
2aeaa366 11017 PR debug/48401
e8c6bb74
JJ
11018 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11019 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
11020
2c081caf
NF
110212011-04-03 Nathan Froyd <froydnj@codesourcery.com>
11022
11023 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
11024 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
11025
53802f27
AS
110262011-04-03 Anatoly Sokolov <aesok@post.ru>
11027
11028 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
11029 (ASM_OUTPUT_ALIGNED_BSS): Define.
11030
e89964e3
MM
110312011-04-03 Michael Matz <matz@suse.de>
11032
11033 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
11034 and next_slot members.
11035 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
11036 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
11037 (lto_streamer_cache_append): Declare.
11038 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
11039 unsigned index, remove offset parameter, ensure that we append
11040 or update existing entries.
11041 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
11042 parameter, update next_slot for append.
11043 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
11044 parameter.
11045 (lto_streamer_cache_insert_at): Likewise.
11046 (lto_streamer_cache_append): New function.
11047 (lto_streamer_cache_lookup): Use unsigned index.
11048 (lto_streamer_cache_get): Likewise.
11049 (lto_record_common_node): Don't test tree_node_can_be_shared.
11050 (preload_common_node): Adjust call to lto_streamer_cache_insert.
11051 (lto_streamer_cache_delete): Don't free offsets member.
11052 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
11053 (lto_output_string_with_length): Use lto_output_data_stream.
11054 (lto_output_tree_header): Remove ix parameter, don't write it.
11055 (lto_output_builtin_tree): Likewise.
11056 (lto_write_tree): Adjust callers to above, don't track and write
11057 offset, write unsigned index.
11058 (output_unreferenced_globals): Don't emit all global vars.
11059 (write_global_references): Use unsigned indices.
11060 (lto_output_decl_state_refs): Likewise.
11061 (write_symbol): Likewise.
11062 * lto-streamer-in.c (lto_input_chain): Move earlier.
11063 (input_function): Use unsigned index.
11064 (input_alias_pairs): Don't read and then ignore all global vars.
11065 (lto_materialize_tree): Remove ix_p parameter, don't read index,
11066 don't pass it back, use lto_streamer_cache_append.
11067 (lto_register_var_decl_in_symtab): Use unsigned index.
11068 (lto_register_function_decl_in_symtab): Likewise.
11069 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
11070 index.
11071 (lto_get_builtin_tree): Don't read index, use
11072 lto_streamer_cache_append.
11073 (lto_read_tree): Adjust call to lto_materialize_tree.
11074
11075 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
11076 don't use function calls in arguments to MIN.
11077
11078 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
11079 twice.
11080
11081 * gimple.c (gimple_type_leader_entry): Mark deletable.
11082
b9a5b5b2
AM
110832011-04-03 Alan Modra <amodra@gmail.com>
11084
11085 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
11086
ac6a641b
MM
110872011-04-03 Michael Matz <matz@suse.de>
11088
11089 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
11090 an integer.
11091 * tree.h (tree_decl_non_common.vindex): Adjust comment.
11092
0038d4e0
MM
110932011-04-03 Michael Matz <matz@suse.de>
11094
e9c18386 11095 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
11096 * gimple-fold.c (canonicalize_constructor_val): Accept being called
11097 without function context.
11098 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
11099 current_function_decl and cfun.
11100
91f2fae8
MM
111012011-04-03 Michael Matz <matz@suse.de>
11102
11103 * tree.c (decl_init_priority_insert): Don't create entry for
11104 default priority.
11105 (decl_fini_priority_insert): Ditto.
11106 (fields_compatible_p, find_compatible_field): Remove.
11107 * tree.h (fields_compatible_p, find_compatible_field): Remove.
11108 * gimple.c (gimple_compare_field_offset): Adjust block comment.
11109
da29e070
EB
111102011-04-03 Eric Botcazou <ebotcazou@adacore.com>
11111
11112 * combine.c (try_combine): Remove useless local variable.
11113
4979c28b 111142011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 11115 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
11116
11117 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
11118 non-variable offsets and compare the remaining bases of the two
11119 accesses instead of looking for exact same data-ref.
11120
b4ddcaee
KT
111212011-04-02 Kai Tietz <ktietz@redhat.com>
11122
f90298e1
KT
11123 PR target/48416
11124 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
11125
b4ddcaee
KT
11126 * i386.c (ix86_is_msabi_thiscall): New helper function.
11127 (ix86_is_type_thiscall): New helper function.
11128 (ix86_comp_type_attributes): Handle thiscall for method-functions
11129 special.
11130 (init_cumulative_args): Likewise.
11131 (find_drap_reg): Likewise.
11132 (ix86_static_chain): Likewise.
11133 (x86_this_parameter): Likewise.
11134 (x86_output_mi_thunk): Likewise.
11135
2a9d769a 111362011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
11137 Nicolas Setton <setton@adacore.com>
11138 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
11139
11140 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
11141 (add_gnat_descriptive_type_attribute): New function.
11142 (gen_array_type_die): Call it.
11143 (gen_enumeration_type_die): Likewise.
11144 (gen_struct_or_union_type_die): Likewise.
11145 (modified_type_die): Likewise.
11146 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
11147 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
11148 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
11149
15a03a11
JJ
111502011-04-01 Jakub Jelinek <jakub@redhat.com>
11151
11152 PR bootstrap/48148
11153 * dwarf2out.c (resolve_addr): Don't call force_decl_die
11154 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
11155
11156 Revert:
11157 2011-03-17 Richard Guenther <rguenther@suse.de>
11158
11159 PR bootstrap/48148
11160 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11161 origin for decls in other ltrans units.
11162 (input_varpool_node): Likewise.
11163
19228b93
JJ
111642011-04-01 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR middle-end/48335
11167 * expr.c (expand_assignment): Handle all possibilities
11168 if TO_RTX is CONCAT.
e9c18386 11169 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
11170 (store_split_bit_field): If SUBREG_REG (op0) or
11171 op0 itself has smaller mode than word, return it
11172 for offset 0 and const0_rtx for out-of-bounds stores.
11173 If word is const0_rtx, skip it.
11174
88cb339e
N
111752011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
11176
11177 * config/h8300/h8300.c (print_operand_address): Rename to...
11178 (h8300_print_operand_address): ...this. Make static. Adjust comments.
11179 Call h8300_print_operand and h8300_print_operand_address instead of
11180 print_operand and print_operand_address. Declare.
11181 (print_operand): Renake to...
11182 (h8300_print_operand): ...this. Make static. Adjust comments.
11183 Call h8300_print_operand instead of print_operand. Declare.
11184 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
11185 (h8300_register_move_cost): Likewise.
11186 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
11187 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
11188 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
11189 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
11190 * config/h8300/h8300-protos.h (print_operand): Delete.
11191 (print_operand_address): Delete.
11192
756d6ee9
RH
111932011-04-01 Richard Henderson <rth@redhat.com>
11194
11195 PR 48400
11196 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
11197 in strict mode before dwarf4. Re-order tests to early out
11198 before switching sections.
11199
ceaaaeab
NF
112002011-04-01 Nathan Froyd <froydnj@codesourcery.com>
11201
11202 * config/h8300/constraints.md: New file.
11203 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
11204 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
11205 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
11206 * config/h8300/predicates.md (bit_operand): Likewise.
11207 (incdec_operand): Use satisfies_constraint_M and
11208 satisfies_constraint_O. Don't use C code block.
11209 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
11210 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
11211 (compute_mov_length): Use satisfies_constraint_G.
11212 (fix_bit_operand): Use satisfies_constraint_U.
11213 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
11214 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
11215 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
11216 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
11217 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
11218 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
11219 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11220 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
11221 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
11222 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
11223 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
11224 (EXTRA_MEMORY_CONSTRAINT): Delete.
11225
08ae38e0
AP
112262011-04-01 Andrew Pinski <pinskia@gmail.com>
11227 Michael Meissner <meissner@linux.vnet.ibm.com>
11228
11229 PR target/48262
11230 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
11231 operands, as per the specifications.
11232
11233 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
11234 (vec_extract_evenv4sf): Ditto.
11235 (vec_extract_evenv8hi): Ditto.
11236 (vec_extract_evenv16qi): Ditto.
11237 (vec_extract_oddv4si): Ditto.
11238
bdb0b0f6
MW
112392011-03-31 Mark Wielaard <mjw@redhat.com>
11240
11241 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
11242 high_pc attribute if the CU has no associated code. Only output
11243 DW_AT_entry_pc for CU if not generating strict dwarf and
11244 dwarf_version < 4.
11245
722279e4
BS
112462011-04-01 Bernd Schmidt <bernds@codesourcery.com>
11247
11248 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
11249 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
11250 out of ...
11251 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
11252 * final.c (final_start_function): Call the new function rather
11253 than using a NULL argument for dwarf2out_frame_debug.
11254
c5dd277d
BS
11255 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
11256 that contains the prologue.
11257
ec4efea9
BS
11258 * haifa-sched.c (queue_insn): New arg REASON. All callers
11259 changed. Print it in debugging output.
11260
2a6a0d80
BS
11261 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
11262
86014d07
BS
11263 * sched-ebb.c (begin_schedule_ready): Remove second argument.
11264 Split most of the code into...
11265 (begin_move_insn): ... here. New function.
11266 (ebb_sched_info): Add a pointer to it.
11267 * haifa-sched.c (scheduled_insns): New static variable.
11268 (sched_extend_ready_list): Allocate it.
11269 (schedule_block): Use it to record the order of scheduled insns.
11270 Perform RTL changes to move insns only after all scheduling
11271 decisions have been made.
11272 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
11273 begin_move_insn field.
11274 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
11275 * sched-int.h (struct haifa_sched_info): Remove second argument
11276 from begin_schedule_ready hook. Add new member begin_move_insn.
11277 * sched-rgn.c (begin_schedule_ready): Remove second argument.
11278 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
11279
9d701248
BS
11280 * haifa-sched.c (prune_ready_list): New function, broken out of
11281 schedule_block.
11282 (schedule_block): Use it.
11283
1ca1dad5
UW
112842011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11285
11286 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
11287
49568e45
KT
112882011-04-01 Kai Tietz <ktietz@redhat.com>
11289
11290 * config.gcc (*-*-mingw*): Allow as option the
11291 posix threading model.
07c0852e 11292 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
11293 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
11294 definition.
11295 (CPP_SPEC): Add pthread/no-pthread handling.
11296 (LIB_SPEC): Likewise.
11297 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
11298 (LIB_SPEC): Likewise.
11299 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
11300 flag to pass -pthread option for shared libgcc build.
11301 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
11302 for shared libgcc build.
11303 * config/i386/t-mingw-pthread: New file.
11304 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
11305 New define to enable use of library pthread by default.
11306 * config/i386/mingw.opt (pthread): New driver option.
11307 (no-pthread): New driver option.
e9c18386 11308 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
11309 * config/i386/mingw-w64.opt: Likewise.
11310
748f7574 113112011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
11312
11313 * c-decl.c (grokdeclarator): Fix formatting.
11314
f04713ee
RS
113152011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11316
11317 * expr.c (emit_block_move_via_movmem): Use n_generator_args
11318 instead of n_operands.
11319 (set_storage_via_setmem): Likewise.
11320 * optabs.c (maybe_gen_insn): Likewise.
11321 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
11322 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
11323 (mips_expand_builtin_direct): Likewise.
11324 * config/spu/spu.c (expand_builtin_args): Likewise.
11325
b29387ee
RS
113262011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11327
11328 * recog.h (insn_data_d): Add n_generator_args.
11329 * genoutput.c (data): Likewise.
11330 (output_insn_data): Print it.
11331 (max_opno, num_dups): Delete.
11332 (scan_operands): Just fill in "d->operand[...]".
11333 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
11334
e792559a
RS
113352011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
11336
11337 * gensupport.h (pattern_stats): New structure.
11338 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
11339 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
11340 (max_operand_1, max_operand_vec): Delete.
11341 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
11342
e8110d6f
NF
113432011-03-31 Nathan Froyd <froydnj@codesourcery.com>
11344
11345 * emit-rtl.c (emit_pattern_after_setloc): New function.
11346 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
11347 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
11348 (emit_pattern_after): New function.
11349 (emit_insn_after, emit_jump_insn_after): Call it.
11350 (emit_call_insn_after, emit_debug_insn_after): Likewise.
11351 (emit_pattern_before_setloc): New function.
11352 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
11353 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
11354 Likewise.
11355 (emit_pattern_before): New function.
11356 (emit_insn_before, emit_jump_insn_before): Call it.
11357 (emit_call_insn_before, emit_debug_insn_before): Likewise.
11358
576f85f1
RH
113592011-03-31 Richard Henderson <rth@redhat.com>
11360
11361 * dwarf2out.c (dw_separate_line_info_ref): Remove.
11362 (dw_separate_line_info_entry): Remove.
11363 (enum dw_line_info_opcode): New.
11364 (dw_line_info_entry): Use it.
11365 (dw_line_info_table, dw_line_info_table_p): New.
11366 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
11367 (line_info_table, line_info_label_num): Remove.
11368 (line_info_table_in_use): Remove.
11369 (separate_line_info_table): Remove.
11370 (separate_line_info_table_allocated): Remove.
11371 (separate_line_info_table_in_use): Remove.
11372 (LINE_INFO_TABLE_INCREMENT): Remove.
11373 (line_info_label_num): New.
11374 (cur_line_info_table): New.
11375 (text_section_line_info, cold_text_section_line_info): New.
11376 (separate_line_info): New.
11377 (SEPARATE_LINE_CODE_LABEL): Remove.
11378 (print_dwarf_line_table): Remove.
11379 (debug_dwarf): Don't dump it.
11380 (output_one_line_info_table): New.
11381 (output_line_info): Use it.
11382 (new_line_info_table): New.
11383 (set_cur_line_info_table): New.
11384 (dwarf2out_switch_text_section): Use it.
11385 (dwarf2out_begin_function): Likewise.
11386 (push_dw_line_info_entry): New.
11387 (dwarf2out_source_line): Rewrite for new line info tables.
11388 (dwarf2out_init): Remove dead initailizations.
11389
300d83d9
JM
113902011-03-31 Joseph Myers <joseph@codesourcery.com>
11391
11392 * opts.h (cl_option): Add comments to fields. Add bit-fields for
11393 various flags.
11394 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
11395 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
11396 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
11397 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
11398 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
11399 * opt-functions.awk (flag_init, switch_bit_fields): New.
11400 (switch_flags): Don't handle flags moved to bit-fields. Don't
11401 generate CL_MISSING_OK or CL_SAVE.
11402 * optc-gen.awk: Update to generate bit-field output as well as
11403 flags field.
11404 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
11405 bit-field instead of CL_REJECT_DRIVER flag.
11406 * opts-common.c (generate_canonical_option,
11407 decode_cmdline_option): Use bit-fields instead of CL_* flags.
11408 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
11409 instead of CL_REJECT_NEGATIVE flag.
11410 * toplev.c (print_switch_values): Use cl_report bit-field instead
11411 of CL_REPORT flag.
11412
d4d73ce2
EB
114132011-03-31 Eric Botcazou <ebotcazou@adacore.com>
11414
11415 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
11416 a zero minimum index only if it is redundant.
11417
b8faca75
VM
114182011-03-31 Vladimir Makarov <vmakarov@redhat.com>
11419
11420 PR rtl-optimization/48381
11421 * ira-color.c (assign_hard_reg): Use hard reg set intersection
11422 instead of ira_class_hard_reg_index for calculating conflicting
11423 hard registers.
11424
7d11cebe
SB
114252011-03-31 Steven Bosscher <steven@gcc.gnu.org>
11426
11427 * cprop.c: Clean up hash table building.
11428 (reg_avail_info): Remove.
11429 (oprs_available_p): Remove.
11430 (record_last_reg_set_info): Remove.
11431 (record_last_set_info): Remove.
11432 (reg_available_p): New function.
11433 (gcse_constant_p): Do not treat unfolded conditions as constants.
11434 (make_set_regs_unavailable): New function.
11435 (hash_scan_set): Simplify with new reg_available_p.
11436 (compute_hash_table_work): Traverse insns stream only once.
11437 Do not compute reg_avail_info. Traverse insns in reverse order.
11438 Record implicit sets after recording explicit sets from the block.
11439
98faf84f
MM
114402011-03-31 Michael Matz <matz@suse.de>
11441
e9c18386 11442 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 11443
f52d97da
AS
114442011-03-31 Anatoly Sokolov <aesok@post.ru>
11445
11446 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
11447 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
11448 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11449 (h8300_mode_dependent_address_p): New function.
11450 (h8300_get_index): Make static.
11451
e16b6fd0
JL
114522011-03-31 Jeff Law <law@redhat.com>
11453
10c51983
JL
11454 * reload1.c (elimination_effects): Fix typo in recent change.
11455
e9c18386 11456 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
11457 typo potentially leading to null pointer dereference.
11458
11459 * caller-save.c (new_saved_hard_reg): Eliminate return value.
11460 (setup_save_areas): Corresponding changes to avoid useless
11461 assignments.
11462
11463 * jump.c (reversed_comparison_code_parts): Avoid successive return
11464 statements when REVERSE_CONDITION is defined.
11465
11466 * expr.c (expand_assignment): Avoid useless assignments.
11467 (expand_expr_real_1): Likewise.
11468 (expand_expr_real_2): Avoid useless statements.
11469
11470 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
11471
11472 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
11473
11474 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
11475 statements.
11476
11477 * stmt.c (expand_expr_stmt): Avoid useless assignment.
11478
eb1eb914
JM
114792011-03-31 Joseph Myers <joseph@codesourcery.com>
11480
11481 PR target/47109
11482 * doc/tm.texi.in (TARGET_VERSION): Remove.
11483 * doc/tm.texi: Regenerate.
11484 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
11485 * collect2.c (main): Don't use TARGET_VERSION.
11486 * mips-tdump.c (main): Don't use TARGET_VERSION.
11487 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 11488 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
11489 * config/rs6000/vxworksae.h: Remove.
11490 * config/alpha/alpha.h (TARGET_VERSION): Remove.
11491 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
11492 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
11493 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
11494 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11495 * config/arm/arm.h (TARGET_VERSION): Remove.
11496 * config/arm/coff.h (TARGET_VERSION): Remove.
11497 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
11498 * config/arm/elf.h (TARGET_VERSION): Remove.
11499 * config/arm/freebsd.h (TARGET_VERSION): Remove.
11500 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
11501 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
11502 * config/arm/pe.h (TARGET_VERSION): Remove.
11503 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
11504 * config/arm/semi.h (TARGET_VERSION): Remove.
11505 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
11506 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
11507 * config/arm/vxworks.h (TARGET_VERSION): Remove.
11508 * config/avr/avr.h (TARGET_VERSION): Remove.
11509 * config/bfin/bfin.h (TARGET_VERSION): Remove.
11510 * config/fr30/fr30.h (TARGET_VERSION): Remove.
11511 * config/frv/frv.h (TARGET_VERSION): Remove.
11512 * config/h8300/h8300.h (TARGET_VERSION): Remove.
11513 * config/i386/cygwin.h (TARGET_VERSION): Remove.
11514 * config/i386/darwin.h (TARGET_VERSION): Remove.
11515 * config/i386/darwin64.h (TARGET_VERSION): Remove.
11516 * config/i386/djgpp.h (TARGET_VERSION): Remove.
11517 * config/i386/freebsd.h (TARGET_VERSION): Remove.
11518 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
11519 * config/i386/gnu.h (TARGET_VERSION): Remove.
11520 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
11521 * config/i386/i386elf.h (TARGET_VERSION): Remove.
11522 * config/i386/linux.h (TARGET_VERSION): Remove.
11523 * config/i386/linux64.h (TARGET_VERSION): Remove.
11524 * config/i386/lynx.h (TARGET_VERSION): Remove.
11525 * config/i386/mingw32.h (TARGET_VERSION): Remove.
11526 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
11527 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
11528 * config/i386/netware.h (TARGET_VERSION): Remove.
11529 * config/i386/nto.h (TARGET_VERSION): Remove.
11530 * config/i386/openbsd.h (TARGET_VERSION): Remove.
11531 * config/i386/vxworks.h (TARGET_VERSION): Remove.
11532 * config/ia64/elf.h (TARGET_VERSION): Remove.
11533 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
11534 * config/ia64/hpux.h (TARGET_VERSION): Remove.
11535 * config/ia64/linux.h (TARGET_VERSION): Remove.
11536 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
11537 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
11538 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11539 * config/lm32/lm32.h (TARGET_VERSION): Remove.
11540 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
11541 * config/m32c/m32c.h (TARGET_VERSION): Remove.
11542 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
11543 * config/m32r/m32r.h (TARGET_VERSION): Remove.
11544 * config/m68k/linux.h (TARGET_VERSION): Remove.
11545 * config/m68k/m68k.h (TARGET_VERSION): Remove.
11546 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
11547 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
11548 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
11549 * config/mep/mep.h (TARGET_VERSION): Remove.
11550 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
11551 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
11552 * config/mips/iris6.h (MACHINE_TYPE): Remove.
11553 * config/mips/linux.h (TARGET_VERSION): Remove.
11554 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
11555 * config/mips/vxworks.h (TARGET_VERSION): Remove.
11556 * config/mmix/mmix.h (TARGET_VERSION): Remove.
11557 * config/mn10300/linux.h (TARGET_VERSION): Remove.
11558 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
11559 * config/pa/pa.h (TARGET_VERSION): Remove.
11560 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
11561 * config/picochip/picochip.h (TARGET_VERSION): Remove.
11562 * config/rs6000/aix.h (TARGET_VERSION): Remove.
11563 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
11564 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
11565 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
11566 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
11567 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
11568 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
11569 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
11570 * config/rs6000/linux.h (TARGET_VERSION): Remove.
11571 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
11572 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
11573 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
11574 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
11575 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
11576 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
11577 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
11578 * config/s390/linux.h (TARGET_VERSION): Remove.
11579 * config/s390/s390.h (TARGET_VERSION): Remove.
11580 * config/s390/tpf.h (TARGET_VERSION): Remove.
11581 * config/score/score.h (TARGET_VERSION): Remove.
11582 * config/sh/linux.h (TARGET_VERSION): Remove.
11583 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
11584 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
11585 * config/sh/sh.h (TARGET_VERSION): Remove.
11586 * config/sh/sh64.h (TARGET_VERSION): Remove.
11587 * config/sh/superh.h (TARGET_VERSION): Remove.
11588 * config/sh/vxworks.h (TARGET_VERSION): Remove.
11589 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
11590 * config/sparc/linux.h (TARGET_VERSION): Remove.
11591 * config/sparc/linux64.h (TARGET_VERSION): Remove.
11592 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
11593 TARGET_NAME32, TARGET_NAME): Remove.
11594 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
11595 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
11596 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
11597 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
11598 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
11599 * config/spu/spu.h (TARGET_VERSION): Remove.
11600 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
11601 * config/v850/v850.h (TARGET_VERSION): Remove.
11602 * config/vax/linux.h (TARGET_VERSION): Remove.
11603 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
11604 * config/xtensa/elf.h (TARGET_VERSION): Remove.
11605 * config/xtensa/linux.h (TARGET_VERSION): Remove.
11606
ace31bca
EB
116072011-03-31 Eric Botcazou <ebotcazou@adacore.com>
11608
11609 PR target/48142
11610 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
11611 frame-related from frame-unrelated adjustments to the stack pointer.
11612
76f9db36
JJ
116132011-03-31 Jakub Jelinek <jakub@redhat.com>
11614
11615 * common.opt (fdebug-types-section): Move earlier.
11616 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
11617
b7826465
AT
116182011-03-31 Andreas Tobler <andreast@fgznet.ch>
11619
11620 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
11621 var.
11622
1290e54c
NF
116232011-03-30 Nathan Froyd <froydnj@codesourcery.com>
11624
11625 * tree.h (CASE_CHAIN): Define.
11626 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
11627 (gimple_redirect_edge_and_branch): Likewise.
11628
bddc98e1
VM
116292011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11630
11631 PR middle-end/48367
11632 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
11633 calculation.
11634
c865e437
JL
116352011-03-30 Jeff Law <law@redhat.com>
11636
b3750213 11637 * PR bootstrap/48371
c865e437
JL
11638 * reload1.c (reload): Fix botch in last change.
11639
11640 * reload.h (struct reload): Fix typo introduced in last change.
11641
2cdf9574
JM
116422011-03-30 Joseph Myers <joseph@codesourcery.com>
11643
11644 * config/arm/arm.opt (mhard-float, msoft-float): Mark
11645 Undocumented. Remove help text.
11646 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
11647 -mhard-float.
11648
666a21a2
JM
116492011-03-30 Joseph Myers <joseph@codesourcery.com>
11650
11651 * doc/options.texi (NegativeAlias): Document.
11652 (Alias): Mention NegativeAlias.
11653 * opt-functions.awk: Handle NegativeAlias.
e9c18386 11654 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
11655 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
11656 * opts.h (CL_NEGATIVE_ALIAS): Define.
11657 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
11658 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
11659 OPT_mspe_.
11660 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
11661 Alias entries.
11662 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
11663 mno-spe and mno-isel instead of mspe=no and -misel=no.
11664
0fa4e351
MW
116652011-03-29 Mark Wielaard <mjw@redhat.com>
11666
11667 * common.opt (fdebug-types-section): New flag.
11668 * doc/invoke.texi: Document new -fno-debug-types-section flag.
11669 * dwarf2out.c (use_debug_types): New define.
11670 (struct die_struct): Mark die_id with GTY desc use_debug_types.
11671 (print_die): Guard output of type unit signatures using
11672 use_debug_types.
11673 (build_abbrev_table): Replace assert of dwarf_version >= 4
11674 with assert on use_debug_types.
11675 (size_of_die): Likewise.
11676 (unmark_dies): Likewise.
11677 (value_format): Decide AT_ref_external form on use_debug_types.
11678 (output_die): Replace dwarf_version version check guard with
11679 use_debug_types where appropriate.
11680 (modified_type_die): Likewise.
11681 (gen_reference_type_die): Likewise.
11682 (dwarf2out_start_source_file): Likewise.
11683 (dwarf2out_end_source_file): Likewise.
11684 (prune_unused_types_walk_attribs): Likewise.
11685 (dwarf2out_finish): Likewise.
11686
4648deb4
VM
116872011-03-30 Vladimir Makarov <vmakarov@redhat.com>
11688
11689 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
11690
4f431835
RS
116912011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11692
11693 PR rtl-optimization/48332
11694 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
11695 mode of input operand N and modeN to its actual mode.
11696
f2034d06
JL
116972011-03-30 Jeff Law <law@redhat.com>
11698
11699 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
11700 define accessor macro.
11701 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
11702 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
11703 (reg_equiv_init): Likewise.
11704 (reg_equivs_size): New variable.
11705 (reg_equiv_init_size): Remove.
11706 (allocate_initial_values): Move prototype to here from....
11707 * integrate.h (allocate_initial_values): Remove prototype.
11708 * integrate.c: Include reload.h.
11709 (allocate_initial_values): Corresponding changes.
11710 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
11711 (fix_reg_equiv_init, no_equiv): Corresponding changes.
11712 (update_equiv_regs): Corresponding changes.
11713 (ira): Corresponding changes.
11714 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
11715 (push_secondary_reload): Corresponding changes.
11716 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
11717 (make_memloc, find_reloads_address): Corresponding changes.
11718 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
11719 (find_reloads_address_1): Corresponding changes.
11720 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
11721 (refers_to_regno_for_reload_p): Corresponding changes.
11722 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
11723 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
11724 * reload1.c: Include ggc.h.
11725 (grow_reg_equivs): New function.
11726 (replace_pseudos_in, reload): Corresponding changes.
11727 (calculate_needs_all_insns, alter_regs): Corresponding changes.
11728 (eliminate_regs_1, elimination_effects): Corresponding changes.
11729 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
11730 (delete_output_reload): Likewise.
11731 * caller-save.c (mark_referenced_regs): Corresponding changes.
11732 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
11733 * frv/predicates.md (frv_load_operand): Corresponding changes.
11734 * microblaze/microblaze.c (double_memory_operand): Corresponding
11735 changes.
11736 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
11737 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 11738 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
11739 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
11740 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
11741 changes.
11742 * pa/pa.c (emit_move_sequence): Corresponding changes.
11743 * vax/vax.c (nonindexed_address_p): Corresponding changes.
11744
159b81b0
RS
117452011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11746
11747 PR target/47551
11748 * config/arm/arm.c (coproc_secondary_reload_class): Handle
11749 structure modes. Don't check neon_vector_mem_operand for
11750 vector or structure modes.
11751
a6217191
RS
117522011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
11753 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11754
11755 PR target/43590
11756 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
11757 operand 1 and reshuffle the operands to match.
11758 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
11759
bd837408
CS
117602011-03-30 Christian Schüler <cschueler@gmx.de>
11761
6955d771 11762 PR driver/48208
bd837408 11763 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 11764
6955d771 11765 PR driver/48260
bd837408
CS
11766 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
11767 handler function.
11768 * config/darwin.opt: Added '-arch' option.
11769
e9c0470a
NC
117702011-03-30 Nick Clifton <nickc@redhat.com>
11771
11772 * config/rx/rx.md: Add peepholes and patterns to combine
11773 extending loads and simple arithmetic instructions.
11774 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
11775 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
11776 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 11777 modes to use pre-decrement and post-increment addressing.
e9c18386 11778 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 11779 addresses.
e9c18386
UB
11780 (rx_print_operand): Add support for %Q. Fix handling of %Q.
11781 (rx_memory_move_cost): Adjust cost of stores.
11782 (rx_adjust_insn_length): New function.
e9c0470a 11783
8a87e7ab
JJ
117842011-03-30 Jakub Jelinek <jakub@redhat.com>
11785
11786 PR c/48305
11787 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11788 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
11789 matching arg00/arg01 types.
11790
12486e03
EB
117912011-03-30 Eric Botcazou <ebotcazou@adacore.com>
11792
11793 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
11794 last_location to UNKNOWN_LOCATION.
11795
0b99eef6
L
117962011-03-30 H.J. Lu <hongjiu.lu@intel.com>
11797
11798 PR target/48349
11799 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
11800 FLOAT_SSE_REGS.
11801
023592aa
JM
118022011-03-30 Joseph Myers <joseph@codesourcery.com>
11803 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11804
11805 PR bootstrap/48337
11806 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
11807 Init(PROCESSOR_V7).
11808 (sparc_cpu): Likewise.
11809 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
11810 PROCESSOR_V7.
11811
ad3b266b
VM
118122011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11813
11814 PR target/48336
11815 PR middle-end/48342
11816 PR rtl-optimization/48345
11817 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
11818 hard regs for given mode from profitable regs when doing secondary
11819 allocation.
11820
633c9126
JL
118212011-03-29 Jeff Law <law@redhat.com>
11822
11823 PR bootstrap/48327
11824 * tree-ssa-threadupdate.c (struct redirection_data): Remove
11825 do_not_duplicate field.
11826 (lookup_redirection_data): Corresponding changes.
11827 (create_duplicates): Always create a template block.
11828 (redirect_edges): Remove code which reused the original block
11829 when it was going to become unreachable code.
11830 (thread_block): Don't set do_not_duplicate field.
11831
eb50f63a
JM
118322011-03-29 Joseph Myers <joseph@codesourcery.com>
11833
11834 * lto-opts.c (register_user_option_p, lto_register_user_option):
11835 Make type argument unsigned.
11836 * lto-streamer.h (lto_register_user_option): Make type argument
11837 unsigned.
11838 * opth-gen.awk: Make CL_* macros unsigned.
11839 * opts-common.c (find_opt): Make lang_mask argument unsigned.
11840 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
11841 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
11842 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
11843 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
11844 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
11845 (find_opt): Make lang_mask argument unsigned.
11846
76763a6d
VM
118472011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11848
11849 PR rtl-optimization/48331
11850 PR rtl-optimization/48334
11851 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
11852 for any used algorithm.
11853
5c82436e
VM
118542011-03-29 Vladimir Makarov <vmakarov@redhat.com>
11855
11856 * ira-conflicts.c (build_object_conflicts): Add unused attribute
11857 to parent_max.
11858
7a81008b
UB
118592011-03-29 Uros Bizjak <ubizjak@gmail.com>
11860
11861 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
11862 (alpha_option_override): Don't set alpha_sr_alias_set.
11863 (emit_frame_store_1): Use gen_frame_mem rather than calling
11864 set_mem_alias_set.
11865 (alpha_expand_epilogue): Ditto.
11866
86c8d1f6
IR
118672011-03-29 Ira Rosen <ira.rosen@linaro.org>
11868
11869 PR tree-optimization/48290
11870 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
11871 vectorization, check that relevant phis in the basic block after
11872 the inner loop are really inner loop's exit phis.
11873
0d12220f
RS
118742011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
11875
e8cf17e7 11876 PR debug/48190
0d12220f
RS
11877 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
11878 (cached_dw_loc_list_def): New structure.
11879 (cached_dw_loc_list): New typedef.
11880 (cached_dw_loc_list_table): New variable.
11881 (cached_dw_loc_list_table_hash): New function.
11882 (cached_dw_loc_list_table_eq): Likewise.
11883 (add_location_or_const_value_attribute): Take a bool cache_p.
11884 Cache the list when the parameter is true.
11885 (gen_formal_parameter_die): Update caller.
11886 (gen_variable_die): Likewise.
11887 (dwarf2out_finish): Likewise.
11888 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
11889 while generating debug info for the decl.
11890 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
11891 (dwarf2out_init): Initialize cached_dw_loc_list_table.
11892 (resolve_addr): Cache the result of resolving a chain of
11893 location lists.
11894
1756cb66
VM
118952011-03-28 Vladimir Makarov <vmakarov@redhat.com>
11896
11897 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
11898 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 11899
1756cb66
VM
11900 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
11901 after regstat_init_n_sets_and_refs.
11902
11903 * ira.c: Add more comments at the top.
11904 (setup_stack_reg_pressure_class, setup_pressure_classes):
11905 Add comments how we compute the register pressure classes.
11906 (setup_allocno_and_important_classes): Add more comments.
11907 (setup_class_translate_array, reorder_important_classes)
11908 (setup_reg_class_relations): Add comments.
11909
11910 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
11911 start of the file.
11912
11913 * ira-color.c: Add 2011 to the Copyright line.
11914 (assign_hard_reg): Add more comments.
11915 (improve_allocation): Ditto.
11916
11917 * ira-costs.c: Add 2011 to the Copyright line.
11918 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
11919 comments.
11920 (setup_regno_cost_classes_by_mode): Ditto.
11921
11922 Initial patches from ira-improv branch:
11923
11924 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
11925
f60c2554 11926 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
11927 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
11928 (ira_create_allocno): Remove initialization of
11929 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
11930 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
11931 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
11932 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
11933 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
11934 Initialize ALLOCNO_ADD_DATA.
11935 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
11936 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
11937 ALLOCNO_REG.
11938 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
11939 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
11940
11941 * ira.c (ira_reallocate): Remove.
11942 (setup_pressure_classes): Call
11943 ira_init_register_move_cost_if_necessary. Use
11944 ira_register_move_cost instead of ira_get_register_move_cost.
11945 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
11946 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
11947
11948 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
11949 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
11950 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
11951 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
11952 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
11953 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
11954 Fix formatting.
7a81008b 11955 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
11956 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
11957 (struct allocno_color_data): New.
11958 (allocno_color_data_t): New typedef.
11959 (allocno_color_data): New definition.
11960 (ALLOCNO_COLOR_DATA): New macro.
11961 (struct object_color_data): New.
11962 (object_color_data_t): New typedef.
11963 (object_color_data): New definition.
11964 (OBJECT_COLOR_DATA): New macro.
11965 (update_copy_costs, calculate_allocno_spill_cost): Call
11966 ira_init_register_move_cost_if_necessary. Use
11967 ira_register_move_cost instead of ira_get_register_move_cost.
11968 (move_spill_restore, update_curr_costs): Ditto.
11969 (allocno_spill_priority): Make it inline.
7a81008b 11970 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
11971 (struct coalesce_data, coalesce_data_t): New.
11972 (allocno_coalesce_data): New definition.
11973 (ALLOCNO_COALESCE_DATA): New macro.
11974 (merge_allocnos, coalesced_allocno_conflict_p): Use
11975 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
11976 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
11977 (coalesce_allocnos): Ditto.
11978 (setup_coalesced_allocno_costs_and_nums): Ditto.
11979 (collect_spilled_coalesced_allocnos): Ditto.
11980 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
11981 (setup_slot_coalesced_allocno_live_ranges): Ditto.
11982 (coalesce_spill_slots): Ditto.
11983 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
11984 free allocno_coalesce_data.
11985
11986 * ira-conflicts.c: Fix formatting.
11987 (process_regs_for_copy): Call
11988 ira_init_register_move_cost_if_necessary. Use
11989 ira_register_move_cost instead of ira_get_register_move_cost.
11990 (build_object_conflicts): Optimize.
11991
11992 * ira-costs.c (record_reg_classes): Optimize. Call
11993 ira_init_register_move_cost_if_necessary. Use
11994 ira_register_move_cost, ira_may_move_in_cost, and
11995 ira_may_move_out_cost instead of ira_get_register_move_cost and
11996 ira_get_may_move_cost.
11997 (record_address_regs): Ditto.
11998 (scan_one_insn): Optimize.
11999 (find_costs_and_classes): Optimize.
12000 (process_bb_node_for_hard_reg_moves): Call
12001 ira_init_register_move_cost_if_necessary. Use
12002 ira_register_move_cost instead of ira_get_register_move_cost.
12003
12004 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
12005 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
12006 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
12007 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
12008 definitions.
12009 (ira_initiate_emit_data, ira_finish_emit_data)
12010 (create_new_allocno): New functions.
7a81008b 12011 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
12012 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
12013 Use ira_register_move_cost instead of ira_get_register_move_cost.
12014
12015 * ira-int.h: Fix some comments.
7a81008b
UB
12016 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
12017 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
12018 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
12019 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
12020 add_data.
12021 (struct ira_allocno): Make mode and aclass a bitfield. Move other
12022 bitfield after mode. Make hard_regno a short int. Make
12023 hard_regno short. Remove first_coalesced_allocno and
12024 next_coalesced_allocno. Move mem_optimized_dest_p,
12025 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
12026 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
12027 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
12028 temp, colorable_p. Add new member add_data.
12029 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
12030 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
12031 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
12032 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
12033 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
12034 (ALLOCNO_ADD_DATA): New macro.
12035 (ira_emit_data_t): New typedef.
12036 (struct ira_emit_data): New. Move mem_optimized_dest_p,
12037 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
12038 from struct ira_allocno.
12039 (ALLOCNO_EMIT_DATA): New macro.
12040 (ira_allocno_emit_data, allocno_emit_reg): New.
12041 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 12042 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
12043 (OBJECT_ADD_DATA): New macro.
12044 (ira_reallocate): Remove.
12045 (ira_initiate_emit_data, ira_finish_emit_data): New.
12046 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
12047 (ira_init_register_move_cost_if_necessary): New.
12048 (ira_object_conflict_iter_next): Merge into
12049 ira_object_conflict_iter_cond.
7a81008b 12050 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 12051
f60c2554 12052 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
12053 ira_init_register_move_cost_if_necessary. Use
12054 ira_register_move_cost instead of ira_get_register_move_cost.
12055
12056 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
12057
12058 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
12059
12060 * ira-costs.c: Fix formatting.
12061 (cost_classes, cost_classes_num): Remove.
12062 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
12063 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
12064 (cost_classes_del, cost_classes_htab): New.
12065 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
12066 (initiate_regno_cost_classes, setup_cost_classes): New.
12067 (setup_regno_cost_classes_by_aclass): New.
7a81008b 12068 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
12069 (record_reg_classes): Use regno_cost_classes instead of
12070 cost_classes. Move checking opposite operand up.
12071 (record_address_regs): Use regno_cost_classes
12072 instead of cost_classes.
12073 (scan_one_insn): Ditto. Use always general register.
12074 (print_allocno_costs): Use regno_cost_classes instead of
12075 cost_classes.
12076 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
12077 (find_costs_and_classes): Set up cost classes for each registers.
12078 Use also their mode for this. Use regno_cost_classes instead of
12079 cost_classes.
12080 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
12081 cost_classes.
12082 (free_ira_costs, ira_init_costs): Don't use cost_classes.
12083 (ira_costs, ira_set_pseudo_classes): Call
12084 initiate_regno_cost_classes and finish_regno_cost_classes.
12085
12086 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
12087
12088 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
12089
12090 * target.def (ira_cover_classes): Remove.
12091
7a81008b 12092 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
12093
12094 * doc/tm.texi.in: Ditto.
12095
12096 * ira-conflicts.c: Remove mentioning cover classes from the file.
12097 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 12098 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
12099
12100 * targhooks.c (default_ira_cover_classes): Remove.
12101
12102 * targhooks.h (default_ira_cover_classes): Ditto.
12103
12104 * haifa-sched.c: Remove mentioning cover classes from the file.
12105 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
12106 ira_pressure_classes and ira_pressure_classes_num instead of
12107 ira_reg_class_cover_size and ira_reg_class_cover. Use
12108 sched_regno_pressure_class instead of sched_regno_cover_class.
12109 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
12110 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12111
12112 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
12113 classes from the file.
12114 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
12115 (struct object_hard_regs, struct object_hard_regs_node): New.
12116 (struct ira_object): New members profitable_hard_regs,
12117 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
12118 (struct ira_allocno): Rename cover_class to aclass. Rename
12119 cover_class_cost and updated_cover_class_cost to class_cost and
12120 updated_class_cost. Remove splay_removed_p and
12121 left_conflict_size. Add new members colorable_p.
12122 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
12123 (ALLOCNO_COLORABLE_P): New macro.
12124 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
12125 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
12126 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
12127 (OBJECT_...): Rename parameter C to O.
12128 (OBJECT_PROFITABLE_HARD_REGS): New macro.
12129 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
12130 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
12131 (struct target_ira_int): New members x_ira_max_memory_move_cost,
12132 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
12133 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
12134 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
12135 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
12136 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
12137 x_ira_reg_class_subunion.
12138 (ira_max_memory_move_cost, ira_max_register_move_cost)
12139 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
12140 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
12141 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 12142 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
12143 (ira_reg_class_union): Rename to ira_reg_class_subunion.
12144 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12145 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12146 (ira_tune_allocno_costs_and_cover_classes): Rename to
12147 ira_tune_allocno_costs.
12148 (ira_debug_hard_regs_forest): New.
12149 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
12150 (ira_object_conflict_iter_next): Fix comments.
7a81008b 12151 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
12152 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
12153 cover_class to aclass.
12154 (ira_allocate_and_accumulate_costs): Ditto.
12155 (ira_allocate_and_set_or_copy_costs): Ditto.
12156
12157 * opts.c (decode_options): Remove ira_cover_class check.
12158
12159 * ira-color.c: Remove mentioning cover classes from the file. Use
12160 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
12161 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
12162 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
12163 (splay-tree.h): Remove include.
12164 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
12165 before copy_freq_compare_func.
12166 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
12167 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
12168 New definitions.
12169 (hard_regs_roots, hard_regs_node_vec): Ditto.
12170 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
12171 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
12172 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
12173 (create_new_object_hard_regs_node): Ditto.
12174 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 12175 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
12176 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
12177 Ditto.
12178 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
12179 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
12180 (remove_unused_object_hard_regs_nodes): Ditto.
12181 (enumerate_object_hard_regs_nodes): Ditto.
12182 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
12183 (object_hard_regs_subnode_t): Ditto.
12184 (struct object_hard_regs_subnode): Ditto.
12185 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
12186 (setup_object_hard_regs_subnode_index): Ditto.
12187 (get_object_hard_regs_subnodes_num): Ditto.
12188 (form_object_hard_regs_nodes_forest): Ditto.
12189 (finish_object_hard_regs_nodes_tree): Ditto.
12190 (finish_object_hard_regs_nodes_forest): Ditto.
12191 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 12192 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
12193 (pseudos_have_intersected_live_ranges_p): Rename to
12194 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
12195 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
12196 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
12197 (update_copy_costs): Remove assert. Skip cost update if the hard
12198 reg does not belong the class.
12199 (assign_hard_reg): Process only profitable hard regs.
12200 (uncolorable_allocnos_num): Make it scalar.
12201 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12202 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
12203 and ira_reg_class_max_nregs.
12204 (bucket_allocno_compare_func): Check frequency first.
12205 (sort_bucket): Add compare function as a parameter.
12206 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
12207 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
12208 (push_allocno_to_stack): Rewrite for checking new allocno
12209 colorability.
7a81008b 12210 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
12211 (push_only_colorable): Pass new parameter to sort_bucket.
12212 (push_allocno_to_spill): Remove.
12213 (allocno_spill_priority_compare): Make it inline and rewrite.
12214 (splay_tree_allocate, splay_tree_free): Remove.
12215 (allocno_spill_sort_compare): New function.
12216 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
12217 build and use splay tree. Choose first allocno in uncolorable
12218 allocno bucket to spill. Remove setting spill cost.
12219 (all_conflicting_hard_regs): Remove.
12220 (setup_allocno_available_regs_num): Check only profitable hard
12221 regs. Print info about hard regs nodes.
12222 (setup_allocno_left_conflicts_size): Remove.
12223 (put_allocno_into_bucket): Don't call
7a81008b 12224 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
12225 (improve_allocation): New.
12226 (color_allocnos): Call setup_profitable_hard_regs,
12227 form_object_hard_regs_nodes_forest, improve_allocation,
12228 finish_object_hard_regs_nodes_forest. Setup spill cost.
12229 (print_loop_title): Use pressure classes.
12230 (color_allocnso): Ditto.
12231 (do_coloring): Remove allocation and freeing splay_tree_node_pool
12232 and allocnos_for_spilling.
12233 (ira_sort_regnos_for_alter_reg): Don't setup members
12234 {first,next}_coalesced_allocno.
12235 (color): Remove allocating and freeing removed_splay_allocno_vec.
12236 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
12237 prohibited_class_mode_regs.
12238
12239 * ira-lives.c: Remove mentioning cover classes from the file. Fix
12240 formatting.
12241 (update_allocno_pressure_excess_length): Use pressure classes.
12242 (inc_register_pressure, dec_register_pressure): Check for pressure
12243 class.
12244 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
12245 pressure class. Use ira_reg_class_nregs instead of
12246 ira_reg_class_max_nregs.
12247 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
12248 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
12249 (single_reg_class): Use ira_reg_class_nregs instead of
12250 ira_reg_class_max_nregs.
12251 (process_bb_node_lives): Use pressure classes.
12252
12253 * ira-emit.c: Remove mentioning cover classes from the file. Use
12254 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
12255 (change_loop): Use pressure classes.
12256 (modify_move_list): Call ira_set_allocno_class instead of
12257 ira_set_allocno_cover_class.
12258
12259 * ira-build.c: Remove mentioning cover classes from the file. Use
12260 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
12261 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
12262 ALLOCNO_UPDATED_CLASS_COST instead of
12263 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
12264 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
12265 (ira_create_allocno): Remove initialization of
12266 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
12267 ALLOCNO_COLORABLE_P.
12268 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
12269 Update conflict regs for the objects.
12270 (create_cap_allocno): Remove assert. Don't propagate
12271 ALLOCNO_AVAILABLE_REGS_NUM.
12272 (ira_free_allocno_costs): New function.
12273 (finish_allocno): Change a part of code into call of
12274 ira_free_allocno_costs.
12275 (low_pressure_loop_node_p): Use pressure classes.
12276 (object_range_compare_func): Don't compare classes.
12277 (setup_min_max_conflict_allocno_ids): Ditto.
12278
12279 * loop-invariant.c: Remove mentioning cover classes from the file.
12280 Use ira_pressure_classes and ira_pressure_classes_num instead of
12281 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
12282 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
12283 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12284 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
12285 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
12286 STACK_REG_COVER_CLASS.
12287 (get_regno_cover_class): Rename to get_regno_pressure_class.
12288 (move_loop_invariants): Initialize and finalize regstat.
12289
12290 * ira.c: Remove mentioning cover classes from the file. Add
12291 comments about coloring without cover classes. Use ALLOCNO_CLASS
12292 instead of ALLOCNO_COVER_CLASS. Fix formatting.
12293 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
12294 setup_class_subset_and_memory_move_costs.
12295 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
12296 (setup_cover_and_important_classes): Rename to
12297 setup_allocno_and_important_classes.
12298 (setup_class_translate_array): New.
12299 (setup_class_translate): Call it for allocno and pressure classes.
12300 (cover_class_order): Rename to allocno_class_order.
12301 (comp_reg_classes_func): Use ira_allocno_class_translate instead
12302 of ira_class_translate.
12303 (reorder_important_classes): Set up ira_important_class_nums.
12304 (setup_reg_class_relations): Set up ira_reg_class_superunion.
12305 (print_class_cover): Rename to print_classes. Add parameter.
12306 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
12307 Print pressure classes too.
12308 (find_reg_class_closure): Rename to find_reg_classes. Don't call
12309 setup_reg_subclasses.
7a81008b 12310 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
12311 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12312 (setup_prohibited_class_mode_regs): Use
7a81008b 12313 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
12314 (clarify_prohibited_class_mode_regs): New function.
12315 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
12316 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
12317 (ira_init_once): Initialize them.
12318 (free_register_move_costs): Process them.
12319 (ira_init): Move calls of find_reg_classes and
12320 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
12321 Call clarify_prohibited_class_mode_regs.
12322 (ira_no_alloc_reg): Remove.
12323 (too_high_register_pressure_p): Use pressure classes.
12324
12325 * sched-deps.c: Remove mentioning cover classes from the file.
12326 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
12327 ira_pressure_classes and ira_pressure_classes_num instead of
12328 ira_reg_class_cover_size and ira_reg_class_cover.
12329 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
12330 sched_regno_pressure_class instead of sched_regno_cover_class.
12331 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
12332 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
12333
12334 * ira.h: Add 2010 to Copyright.
12335 (ira_no_alloc_reg): Remove external.
12336 (struct target_ira): Rename x_ira_hard_regno_cover_class,
12337 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
12338 x_ira_class_translate to x_ira_hard_regno_allocno_class,
12339 x_ira_allocno_classes_num, x_ira_allocno_classes, and
12340 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
12341 x_ira_pressure_classes, x_ira_pressure_class_translate, and
12342 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
12343 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
12344 x_ira_no_alloc_regs.
7a81008b 12345 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
12346 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
12347 ira_allocno_classes_num and ira_allocno_classes.
12348 (ira_class_translate): Rename to ira_allocno_class_translate.
12349 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
12350 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
12351 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
12352 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
12353 (ira_no_alloc_regs): New.
12354
12355 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
12356 classes from the file. Use ALLOCNO_CLASS instead of
12357 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
12358 ALLOCNO_COVER_CLASS_COST.
12359 (regno_cover_class): Rename to regno_aclass.
12360 (record_reg_classes): Use ira_reg_class_subunion instead of
12361 ira_reg_class_union.
12362 (record_address_regs): Check overflow.
12363 (scan_one_insn): Ditto.
7a81008b 12364 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
12365 (print_pseudo_costs): Use REG_N_REFS.
12366 (find_costs_and_classes): Use classes intersected with them on the
12367 1st pass. Check overflow. Use ira_reg_class_subunion instead of
12368 ira_reg_class_union. Use ira_allocno_class_translate and
12369 regno_aclass instead of ira_class_translate and regno_cover_class.
12370 Modify code for finding regno_aclass. Setup preferred classes for
12371 the next pass.
12372 (setup_allocno_cover_class_and_costs): Rename to
12373 setup_allocno_class_and_costs. Use regno_aclass instead of
12374 regno_cover_class. Use ira_set_allocno_class instead of
12375 ira_set_allocno_cover_class.
12376 (init_costs, finish_costs): Use regno_aclass instead of
12377 regno_cover_class.
12378 (ira_costs): Use setup_allocno_class_and_costs instead of
12379 setup_allocno_cover_class_and_costs.
12380 (ira_tune_allocno_costs_and_cover_classes): Rename to
12381 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
12382 by processing objects. Use ira_reg_class_max_nregs instead of
12383 ira_reg_class_nregs.
12384
12385 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
12386
12387 * sched-int.h: Remove mentioning cover classes from the file.
12388 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
12389
12390 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
12391 classes from the file.
12392 (struct reg_pref): Rename coverclass into allocnoclass.
12393 (reg_cover_class): Rename to reg_allocno_class.
12394
7a81008b 12395 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
12396
12397 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
12398
12399 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
12400
12401 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
12402
12403 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
12404
12405 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
12406
12407 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
12408
12409 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
12410
12411 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
12412
12413 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
12414
12415 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
12416 (i386_ira_cover_classes): Ditto.
12417
12418 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
12419
12420 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
12421
12422 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
12423
12424 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
12425
12426 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
12427
12428 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
12429
12430 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
12431 (mips_ira_cover_classes): Ditto.
12432
12433 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
12434
12435 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
12436
12437 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
12438
12439 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
12440
12441 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
12442
12443 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
12444 (IRA_COVER_CLASSES_VSX): Ditto.
12445
12446 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
12447 (rs6000_ira_cover_classes): Ditto.
12448
12449 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
12450
12451 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
12452
12453 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
12454
12455 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
12456
12457 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
12458
12459 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
12460
12461 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
12462
12463 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
12464
12465 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
12466
12467 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
12468
2b80199f
JJ
124692011-03-29 Jakub Jelinek <jakub@redhat.com>
12470
71dae1fe
JJ
12471 PR debug/48253
12472 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
12473 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
12474 dw_fde_unlikely_section_end_label, cold_in_std_section,
12475 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
12476 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
12477 fields.
12478 (output_fde): Use dw_fde_second_{begin,end} if second is
12479 true, otherwise dw_fde_{begin,end}.
12480 (output_call_frame_info): Test dw_fde_second_begin != NULL
12481 instead of dw_fde_switched_sections.
12482 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
12483 fields, initialize new fields. Initialize in_std_section
12484 unconditionally from the first partition.
12485 (dwarf2out_end_epilogue): Don't override dw_fde_end when
12486 dw_fde_second_begin is non-NULL.
12487 (dwarf2out_switch_text_section): Stop initializing removed
12488 dw_fde_struct fields, initialize new fields, initialize
12489 also dw_fde_end here. Set dw_fde_switch_cfi even when
12490 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
12491 (struct var_loc_list_def): Add last_before_switch field.
12492 (arange_table, arange_table_allocated, arange_table_in_use,
12493 ARANGE_TABLE_INCREMENT, add_arange): Removed.
12494 (size_of_aranges): Count !in_std_section and !second_in_std_section
12495 hunks in fdes, instead of looking at arange_table_in_use.
12496 (output_aranges): Add aranges_length argument, don't call
12497 size_of_aranges here. Instead of using aranges_table*
12498 emit ranges for fdes when !in_std_section resp.
12499 !second_in_std_section.
12500 (dw_loc_list): Break ranges crossing section switch.
12501 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 12502 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
12503 (gen_subprogram_die): Don't call add_arange. Use
12504 dw_fde_{begin,end} for first partition and if switched
12505 section dw_fde_second_{begin,end} for the second.
12506 (var_location_switch_text_section_1,
12507 var_location_switch_text_section): New functions.
12508 (dwarf2out_begin_function): Initialize cold_text_section even
12509 when function_section () isn't text_section.
12510 (prune_unused_types): Don't walk arange_table.
12511 (dwarf2out_finish): Don't needlessly test
12512 flag_reorder_blocks_and_partition when testing cold_text_section_used.
12513 If info_section_emitted, call size_of_aranges and if it indicates
12514 non-empty .debug_aranges, call output_aranges with the computed
12515 size. Stop using removed dw_fde_struct fields, use
12516 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
12517 for second.
12518
2b80199f
JJ
12519 PR debug/48203
12520 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
12521 create ENTRY_VALUE if incoming or address of incoming's MEM
12522 is a hard REG.
12523 * dwarf2out.c (mem_loc_descriptor): Don't emit
12524 DW_OP_GNU_entry_value of DW_OP_fbreg.
12525 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
12526 on ENTRY_VALUE is able to find the canonical parameter VALUE.
12527 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
12528 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
12529 ENTRY_VALUE_EXPs.
12530 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
12531 is a REG_P or MEM_P with REG_P address, compute hash directly
12532 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
12533 (preserve_only_constants): Don't clear VALUES forwaring
12534 ENTRY_VALUE to some other VALUE.
12535
8a445129
RS
125362011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
12537
12538 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
12539 instead of GEN_INT.
12540
c82fee88
EB
125412011-03-28 Eric Botcazou <ebotcazou@adacore.com>
12542
12543 * cfgexpand.c (expand_gimple_cond): Always set the source location and
12544 block before expanding the statement.
12545 (expand_gimple_stmt_1): Likewise. Set them here...
12546 (expand_gimple_stmt): ...and not here. Tidy.
12547 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
12548 unknown.
12549
e45425ec
SB
125502011-03-28 Steven Bosscher <steven@gcc.gnu.org>
12551
12552 * Makefile.in: New rule for cprop.o.
12553 * gcse.c: Move constant/copy propagation to cprop.c.
12554 (compute_local_properties): Only handle expression tables.
12555 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
12556 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
12557 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
12558 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 12559 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
12560 compute_cprop_data, find_used_regs, try_replace_reg,
12561 find_avail_set, cprop_jump, constprop_register, cprop_insn,
12562 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
12563 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
12564 find_bypass_set, reg_killed_on_edge, bypass_block,
12565 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
12566 execute_rtl_cprop, pass_rtl_cprop): Move to...
12567 * cprop.c: ...here. New file, constant/copy propagation for RTL
12568 moved from gcse.c to here with minor cleanups in duplicated code.
12569
c09d5426
L
125702011-03-28 H.J. Lu <hongjiu.lu@intel.com>
12571
12572 * config/i386/i386.c (flag_opts): Fix a typo in
12573 -mavx256-split-unaligned-store.
12574
9eaa7740
AS
125752011-03-28 Anatoly Sokolov <aesok@post.ru>
12576
12577 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12578 LIBCALL_VALUE): Remove macros.
12579 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12580 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12581 (h8300_function_value, h8300_libcall_value,
12582 h8300_function_value_regno_p): New functions.
12583
dcec2be2
AS
125842011-03-28 Anatoly Sokolov <aesok@post.ru>
12585
12586 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
12587
520af9ec
JL
125882011-03-28 Jeff Law <law@redhat.com>
12589
12590 * tree-ssa-threadupdate.c (redirect_edges): Call
12591 create_edge_and_update_destination_phis as needed.
12592 (create_edge_and_update_destination_phis): Accept new BB argument.
12593 All callers updated.
12594 (thread_block): Do not update the profile when threading around
12595 intermediate blocks.
12596 (thread_single_edge): Likewise.
12597 (determine_bb_domination_status): If BB is not a successor of the
12598 loop header, return NONDOMINATING.
12599 (register_jump_thread): Note when we register a jump thread around
12600 an intermediate block.
12601 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
12602 (thread_across_edge): Use it.
12603
7450b54f
TG
126042011-03-28 Tristan Gingold <gingold@adacore.com>
12605
12606 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
12607 when for_return is 2.
12608
649beb33
JL
126092011-03-28 Jeff Law <law@redhat.com>
12610
12611 * var-tracking.c (canonicalize_values_mark): Delete unused
12612 lhs assignment.
12613 (canonicalize_values_star, set_variable_part): Likewise.
12614 (clobber_variable_part, delete_variable_part): Likewise.
12615
d5b8da97
SB
126162011-03-28 Steven Bosscher <steven@gcc.gnu.org>
12617
12618 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
12619
322dd859
MJ
126202011-03-28 Martin Jambor <mjambor@suse.cz>
12621
12622 * tree-inline.c (expand_call_inline): Do not check that destination
12623 node is analyzed.
12624 (optimize_inline_calls): Assert that destination node is analyzed.
12625 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
12626 not call tree_lowering_passes.
12627 * cgraph.h (cgraph_analyze_function): Declare.
12628 * cgraphunit.c (cgraph_analyze_function): Make public.
12629
aa53e58b
JM
126302011-03-28 Joseph Myers <joseph@codesourcery.com>
12631
12632 * config/sparc/sparc-opts.h: New.
12633 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
12634 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
12635 (sparc_option_override): Store processor_type enumeration rather
12636 than string in cpu_default. Remove name and enumeration from
12637 cpu_table. Directly default -mcpu then default -mtune from -mcpu
12638 without using sparc_select. Use target_flags_explicit instead of
12639 fpu_option_set.
12640 * config/sparc/sparc.h (enum processor_type): Move to
12641 sparc-opts.h.
12642 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
12643 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
12644 HeaderInclude entry.
12645 (mcpu=, mtune=): Use Var and Enum.
12646 (sparc_processor_type): New Enum and EnumValue entries.
12647
dd350eba
RO
126482011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12649 Iain Sandoe <iains@gcc.gnu.org>
12650
12651 PR target/48245
12652 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
12653
1b29f05e
EB
126542011-03-28 Eric Botcazou <ebotcazou@adacore.com>
12655
12656 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
12657 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
12658 Insert new statements at it in lieu of STMT.
12659 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
12660 * tree-vect-stmts.c (vectorizable_store): Likewise.
12661 (vectorizable_load): Likewise.
12662
506e6808
UB
126632011-03-28 Uros Bizjak <ubizjak@gmail.com>
12664
12665 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
12666 (divtf3): Ditto.
12667 (multf3): Ditto.
12668 (subtf3): Ditto.
12669
2e939ee9
L
126702011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12671
12672 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
12673 unaligned 256bit load/store.
12674 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
12675 (*avx_movdqu<avxmodesuffix>): Likewise.
12676
5e85ab88
JDA
126772011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12678
12679 PR target/48288
12680 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
12681 * config/pa/pa.md (iordi3): Use new predicate in expander.
12682 (iorsi3): Likewise.
12683
47be3d6d
AS
126842011-03-27 Anatoly Sokolov <aesok@post.ru>
12685
506e6808 12686 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 12687 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
12688 * config/mips/mips-protos.h (mips_function_value): Remove.
12689 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
12690 (mips_function_value_1): ... this. Make static. Handle receiving
12691 the function type in 'fn_decl_or_type' argument.
12692 (mips_function_value, mips_libcall_value,
12693 mips_function_value_regno_p): New function.
12694 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12695 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12696
d253656a
L
126972011-03-27 H.J. Lu <hongjiu.lu@intel.com>
12698
12699 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
12700 and -mavx256-split-unaligned-store.
12701 (ix86_option_override_internal): Split 32-byte AVX unaligned
12702 load/store by default.
12703 (ix86_avx256_split_vector_move_misalign): New.
12704 (ix86_expand_vector_move_misalign): Use it.
12705
12706 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
12707 -mavx256-split-unaligned-store.
12708
12709 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
12710 256bit load/store. Generate unaligned store on misaligned memory
12711 operand.
12712 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
12713 256bit load/store.
12714 (*avx_movdqu<avxmodesuffix>): Likewise.
12715
12716 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
12717 -mavx256-split-unaligned-store.
12718
1ea9206a
RS
127192011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12720
12721 PR target/38598
12722 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
12723 Update commentary.
12724
b99ce2a8
RS
127252011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
12726
12727 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
12728 opno arguments with an expand_operand. Use create_input_operand.
12729 (mips_prepare_builtin_target): Delete.
12730 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
12731 functions.
12732 (mips_expand_builtin_direct): Use create_output_operand and
12733 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
12734 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
12735 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
12736
69d52339
IR
127372011-03-27 Ira Rosen <ira.rosen@linaro.org>
12738
12739 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
12740 function.
12741 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
12742
ba5e9aca
EB
127432011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12744
12745 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
12746 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
12747 basic blocks and call commit_edge_insertions directly.
12748 (fixup_abnormal_edges): Move from here to...
12749 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
12750 on the edges and return whether some have actually been inserted.
12751 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
12752 compensation code.
12753
5d369d58
AB
127542011-03-26 Andrey Belevantsev <abel@ispras.ru>
12755
12756 PR rtl-optimization/48144
12757 * sel-sched-ir.c (merge_history_vect): Factor out from ...
12758 (merge_expr_data): ... here.
12759 (av_set_intersect): Rename to av_set_code_motion_filter.
12760 Update all callers. Call merge_history_vect when an expression
12761 is found in both sets.
12762 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
12763
f082c000
AM
127642011-03-26 Alan Modra <amodra@gmail.com>
12765
12766 * config/rs6000/predicates.md (word_offset_memref_op): Handle
12767 cmodel medium addresses.
12768 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
12769 64-bit gpr loads and stores.
12770 (rs6000_secondary_reload_ppc64): New function.
12771 * config/rs6000/rs6000-protos.h: Declare it.
12772 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
12773
8ac5e12e
AM
127742011-03-26 Alan Modra <amodra@gmail.com>
12775
12776 PR target/47487
12777 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
12778 GNU Go in traceback table.
12779
c2654ded
RH
127802011-03-25 Richard Henderson <rth@redhat.com>
12781
12782 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
12783 if there are exactly 6 operands.
12784 (set_storage_via_setmem): Similarly.
12785
ba78087b
KT
127862011-03-25 Kai Tietz <ktietz@redhat.com>
12787
12788 * collect2.c (write_c_file_stat): Handle backslash
12789 as right-hand directory separator.
12790 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
12791 checking just for slash.
12792 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
12793 instead of checking for trailing slash.
12794 * gcc.c (record_temp_file): Use filename_cmp instead
12795 of strcmp.
12796 (do_spec_1): Likewise.
12797 (replace_outfile_spec_function): Likewise.
12798 (is_directory): Use filename_ncmp instead of strncmp.
12799 (print_multilib_info): Likewise.
12800 * gcov.c (find_source): Use filename_cmp instead
12801 instead of strcmp.
12802 (make_gcov_file_name): Fix order of slash/backslash
12803 checks.
12804 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
12805 (add_standard_paths): Likewise.
12806 * mips-tfile.c (saber_stop): Handle backslash.
12807 * prefix.c (update_path): Use filename_ncmp instead of
12808 strncmp.
12809 * profile.c (output_location): Use filename_cmp instead
12810 of strcmp.
12811 * read-md.c (handle_toplevel_file): Handle backslash.
12812 * tlink.c (frob_extension): Likewise.
12813 * tree-cfg.c (same_line_p): Use filename_cmp instead of
12814 strcmp.
12815 * tree-dump.c (dequeue_and_dump): Handle backslash.
12816 * tree.c (get_file_function_name): Likewise.
12817 * gengtype.c (read_input_list): Likewise.
12818 (get_file_realbasename): Likewise.
12819 (get_output_file_with_visibility): Use filename_cmp
12820 instead of strcmp.
12821
75f6ec9a
RS
128222011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
12823
12824 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
12825 case to VFPv1.
12826
6c4e2997
NF
128272011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12828
12829 * fold-const.c (expr_location_or): New function.
12830 (fold_truth_not_expr): Call it.
12831
0edf1bb2
JL
128322011-03-25 Jeff Law <law@redhat.com>
12833
12834 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
12835 va_end.
12836 * c-family/c-common.c (def_fn_type): Likewise.
12837 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
12838 * emit-rtl.c (gen_rtvec): Likewise.
12839 * lto/lto-lang.c (def_fn_type): Likewise.
12840
fdc2de95
RG
128412011-03-25 Richard Guenther <rguenther@suse.de>
12842
12843 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
12844 also generate copies.
12845 (fini_copy_prop): Handle constant values properly.
12846
21385db0
JJ
128472011-03-25 Jakub Jelinek <jakub@redhat.com>
12848
12849 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
12850 mode size instead of bitsize with DWARF2_ADDR_SIZE.
12851 (hash_loc_operands, compare_loc_operands): Handle
12852 DW_OP_GNU_entry_value.
12853
6510e8bb
KT
128542011-03-25 Kai Tietz <ktietz@redhat.com>
12855
12856 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
12857 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
12858 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
12859 comment and use macro TARGET_64BIT_MS_ABI instead.
12860 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
12861 and change default behavior for 32-bit MS_ABI.
12862 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
12863 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
12864 32-bit, too.
12865 (ix86_cfun_abi): Likewise.
12866 (ix86_maybe_switch_abi): Adjust comment.
12867 (init_cumulative_args): Check for bit-ness in MS_ABI case.
12868 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
12869 instead of checking for SYSV_ABI.
12870 (ix86_nsaved_sseregs): Likewise.
12871 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
12872 to 16 bytes.
12873 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
12874 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
12875 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
12876 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
12877 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
12878
34019e28
RG
128792011-03-25 Richard Guenther <rguenther@suse.de>
12880
12881 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
12882 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12883 (verify_gimple): Remove.
12884 * tree-cfg.c (verify_gimple_call): Merge verification
12885 from verify_stmts.
12886 (verify_gimple_phi): Merge verification from verify_stmts.
12887 (verify_gimple_label): New function.
12888 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
12889 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
12890 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
12891 (verify_stmts): Rename to verify_gimple_in_cfg.
12892 (verify_gimple_in_cfg): New function.
12893 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
12894 * tree-ssa.c (verify_ssa): Likewise.
12895 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
12896
605896f5
RG
128972011-03-25 Richard Guenther <rguenther@suse.de>
12898
12899 * passes.c (init_optimization_passes): Add FRE pass after
12900 early SRA.
12901
7baa7c13
BS
129022011-03-25 Bernd Schmidt <bernds@codesourcery.com>
12903 Andrew Stubbs <ams@codesourcery.com>
12904
12905 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
12906 for Cortex-A8.
12907 (arm_movdi_vfp_cortexa8): New pattern.
12908 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
12909 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
12910 instructions when tuning for Cortex-A8. Set attribute "arch".
12911 * config/arm/arm.md: Move include arm-tune.md up a bit.
12912 (define_attr "arch"): Add "onlya8" and "nota8" values.
12913 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
12914
45dbce1b
NF
129152011-03-25 Nathan Froyd <froydnj@codesourcery.com>
12916
4ff08abf 12917 PR bootstrap/48282
45dbce1b
NF
12918 Revert:
12919 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
12920
12921 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
12922 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
12923 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
12924 * passes.c (init_optimization_passes): Move
12925 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
12926
ac9a30ae
KT
129272011-03-25 Kai Tietz <ktietz@redhat.com>
12928
12929 * c-typeck.c (comptypes_internal): Replace target
12930 hook call of comp_type_attributes by version in tree.c file.
12931 * gimple.c (gimple_types_compatible_p_1): Likewise.
12932 * tree-ssa.c (useless_type_conversion_p): Likewise.
12933 * tree.c (build_type_attribute_qual_variant): Likewise.
12934 (attribute_value_equal): New static helper function.
12935 (comp_type_attributes): New function.
12936 (merge_attributes): Use attribute_value_equal for comparison.
12937 (attribute_list_contained): Likewise.
12938 * tree.h (comp_type_attributes): New prototype.
12939
afdac116
RG
129402011-03-25 Richard Guenther <rguenther@suse.de>
12941
12942 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
12943 of complex types at -O0.
12944 (verify_gimple_assign_binary): Likewise.
12945 (verify_gimple_assign_ternary): Likewise.
12946
ec6165f8
MW
129472011-03-24 Mark Wielaard <mjw@redhat.com>
12948
12949 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
12950 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
12951
2a5ac39a
MW
129522011-03-24 Mark Wielaard <mjw@redhat.com>
12953
12954 PR debug/48041
12955 * dwarf2out.c (output_abbrev_section): Only write table when
12956 abbrev_die_table_in_use > 1.
12957
e533b2a4
RH
129582011-02-24 Richard Henderson <rth@redhat.com>
12959
12960 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
12961 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
12962 (alpha_expand_unaligned_load_words): Use extql.
12963 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
12964 (emit_insxl): Handle all modes for consistency.
12965
0b2a7367
RH
129662011-02-24 Richard Henderson <rth@redhat.com>
12967
12968 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
12969 (alpha_expand_unaligned_load): Likewise.
12970 (alpha_expand_unaligned_store): Likewise.
12971 (alpha_expand_unaligned_load_words): Likewise.
12972 (alpha_expand_unaligned_store_words): Likewise.
12973 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
12974 (alpha_split_lock_test_and_set_12): Likewise.
12975 (print_operand, alpha_fold_builtin_extxx): Likewise.
12976 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
12977 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
12978 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
12979 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
12980 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
12981 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
12982 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
12983 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
12984 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
12985 (extwl, extll, extql): Similarly.
12986 (inswh, inslh, insqh): Similarly.
12987 (mskbl, mskwl, mskll, mskql): Similarly.
12988 (mskwh, msklh, mskqh): Similarly.
12989
315b2bef
RH
129902011-02-24 Richard Henderson <rth@redhat.com>
12991
12992 * config/alpha/alpha.md (attribute isa): Add er, ner.
12993 (attribute enabled): Handle them.
12994 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
12995
67102517
RH
129962011-02-24 Richard Henderson <rth@redhat.com>
12997
12998 * config/alpha/alpha.md (attribute isa): Add vms.
12999 (attribute enabled): Handle it.
13000 (*movsf): Merge *movsf_{nofix,fix,nofp}.
13001 (*movdf): Merge *movdf_{nofix,fix,nofp}.
13002 (*movtf): Rename from *movtf_internal for consistency.
13003 (*movsi): Merge with *movsi_nt_vms.
13004 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
13005 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
13006 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
13007 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
13008
6aba5cb4
RH
130092011-02-24 Richard Henderson <rth@redhat.com>
13010
13011 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
13012 (extendqisi2, extendhisi2): Likewise.
13013 (extendqidi2): Simplify BWX/non-BWX expansions.
13014 (extendhidi2): Similarly.
13015
bdfb351b
RH
130162011-02-24 Richard Henderson <rth@redhat.com>
13017
13018 * config/alpha/alpha.md (attribute isa): New.
13019 (attribute enabled): New.
13020 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
13021 (zero_extendqisi2, zero_extendqidi2): Similarly.
13022 (zero_extendhisi2, zero_extendhidi2): Similarly.
13023 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
13024
6abe71eb
RH
130252011-02-24 Richard Henderson <rth@redhat.com>
13026
13027 * config/alpha/predicates.md (input_operand): Revert last change;
13028 update comment to mention 32-bit VMS rather than Windows.
13029
7114321e
NF
130302011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13031
13032 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
13033 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
13034 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
13035 * passes.c (init_optimization_passes): Move
13036 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
13037
c8679567
EB
130382011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13039
13040 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
13041
27173058
UB
130422011-03-24 Uros Bizjak <ubizjak@gmail.com>
13043
13044 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
13045 correctly.
13046
6f0c9f06
JJ
130472011-03-24 Jakub Jelinek <jakub@redhat.com>
13048
13049 PR debug/48204
13050 * simplify-rtx.c (simplify_const_unary_operation): Call
13051 real_convert when changing mode class with FLOAT_EXTEND.
13052
662666e5
NC
130532011-03-24 Nick Clifton <nickc@redhat.com>
13054
13055 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
13056 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
13057 * config/rx/rx.c (rx_option_override): Set align_jumps,
13058 align_loops and align_labels if not set by the user.
13059 (rx_align_for_label): New function.
13060 (rx_max_skip_for_label): New function.
13061 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
13062 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
13063 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
13064 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
13065 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
13066
2b99b2b8
RS
130672011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13068
13069 PR rtl-optimization/48263
13070 * optabs.c (expand_binop_directly): Reinstate convert_modes code
13071 and original commutative_p handling. Use maybe_gen_insn.
13072
ccecd6ea
AK
130732011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13074
13075 * reload.c (find_reloads_subreg_address): Add address_reloaded
13076 parameter and return true there if the full address has been
13077 reloaded.
13078 (find_reloads_toplev): Pass address_reloaded flag.
13079 (find_reloads_address_1): Don't use address_reloaded parameter.
13080
67295642
JL
130812011-03-24 Jeff Law <law@redhat.com>
13082
13083 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
13084 unused variable "ann".
13085 (remove_unused_locals): Likewise.
13086
13087 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
13088 statement.
13089
13090 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
13091 after it is freed.
13092
212aa74f
AK
130932011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13094
13095 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
13096 for invalid symbolic addresses.
13097 (s390_secondary_reload): Don't use s390_check_symref_alignment for
13098 larl operands.
13099
fe784e0d
EB
131002011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13101
13102 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
13103 the argument in calls to fold_truth_not_expr.
13104
63ee8641
NF
131052011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13106
13107 * tree.c (record_node_allocation_statistics): New function.
13108 (make_node_stat, copy_node_stat, build_string): Call it.
13109 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
13110 (build1_stat, build_omp_clause): Likewise.
13111
61be2a1c
RS
131122011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13113
13114 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
13115 last commit.
13116
a881aaa7
RG
131172011-03-24 Richard Guenther <rguenther@suse.de>
13118
13119 PR tree-optimization/48271
13120 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
13121 blocks that still exist.
13122
dbaa912c
RG
131232011-03-24 Richard Guenther <rguenther@suse.de>
13124
13125 PR tree-optimization/48270
13126 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
13127 not free datarefs before ddrs.
13128
1d60cc55
EB
131292011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13130
13131 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
13132 from the address built for a reference with variable offset.
13133
c78dd519
UB
131342011-03-24 Uros Bizjak <ubizjak@gmail.com>
13135
13136 PR target/48237
13137 * config/i386/i386.md (*movdf_internal_rex64): Do not split
13138 alternatives that can be handled with movq or movabsq insn.
13139 (*movdf_internal): Disable for !TARGET_64BIT.
13140 (*movdf_internal_nointeger): Ditto.
13141 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
13142
b25b9e8f
NF
131432011-03-24 Nathan Froyd <froydnj@codesourcery.com>
13144
13145 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13146 (FUNCTION_ARG_ADVANCE): Likewise.
13147 * tm.texi.in: Change references to them to hook references.
13148 * tm.texi: Regenerate.
c78dd519 13149 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
13150 (default_function_incoming_arg): Likewise.
13151 (default_function_arg_advance): Likewise.
c78dd519 13152 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
13153 (function_arg_advance): Likewise.
13154 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13155
190b2187
RG
131562011-03-24 Richard Guenther <rguenther@suse.de>
13157
13158 PR middle-end/48269
13159 * tree-object-size.c (addr_object_size): Do not double-account
13160 for MEM_REF offsets.
13161
a183b5c7
DN
131622011-03-24 Diego Novillo <dnovillo@google.com>
13163
13164 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 13165 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
13166 (lto_input_data_block): Move from lto-opts.c. Make extern.
13167 Update all users.
13168 (lto_input_string): Rename from input_string. Make extern.
13169 Update all users.
13170 * lto-streamer-out.c (lto_output_string_with_length): Rename from
13171 output_string_with_length.
13172 Output 0 to indicate a non-NULL string. Update all callers to
13173 not emit 0.
13174 (lto_output_string): Rename from output_string. Make extern.
13175 Update all users.
13176 (lto_output_decl_state_streams): Make extern.
13177 (lto_output_decl_state_refs): Make extern.
13178 * lto-streamer.h (lto_input_string): Declare.
13179 (lto_input_data_block): Declare.
13180 (lto_output_string): Declare.
13181 (lto_output_string_with_length): Declare.
13182 (lto_output_decl_state_streams): Declare.
13183 (lto_output_decl_state_refs): Declare.
13184
cfef45c8
RG
131852011-03-24 Richard Guenther <rguenther@suse.de>
13186
13187 PR tree-optimization/46562
13188 * tree.c (build_invariant_address): New function.
13189 * tree.h (build_invariant_address): Declare.
13190 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
13191 a renamed function moved ...
13192 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
13193 Take valueization callback parameter.
13194 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
13195 * gimple-fold.h: New file.
13196 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
13197 (ccp_fold, fold_const_aggregate_ref,
13198 fold_ctor_reference, fold_nonarray_ctor_reference,
13199 fold_array_ctor_reference, fold_string_cst_ctor_reference,
13200 get_base_constructor): Move ...
13201 * gimple-fold.c: ... here.
13202 (gimple_fold_stmt_to_constant_1): New function
13203 split out from ccp_fold. Take a valueization callback parameter.
13204 Valueize all operands.
13205 (gimple_fold_stmt_to_constant): New wrapper function.
13206 (fold_const_aggregate_ref_1): New function split out from
13207 fold_const_aggregate_ref. Take a valueization callback parameter.
13208 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
13209 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
13210 invariant POINTER_PLUS_EXPRs to invariant form.
13211 (vn_valueize): New function.
13212 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
13213 * tree-vrp.c (vrp_valueize): New function.
13214 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
13215 to fold statements to constants.
13216 * tree-ssa-pre.c (eliminate): Properly guard propagation of
13217 function declarations.
13218 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
13219 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
13220
5e0a7e40
RS
132212011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
13222
13223 * config/h8300/predicates.md (jump_address_operand): Fix register
13224 mode check.
13225
bfe068c3
IR
132262011-03-24 Ira Rosen <ira.rosen@linaro.org>
13227
13228 * doc/invoke.texi (max-stores-to-sink): Document.
13229 * params.h (MAX_STORES_TO_SINK): Define.
13230 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
13231 if either vectorization or if-conversion is disabled.
13232 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
13233 tree-vect-data-refs.c vect_equal_offsets.
13234 (dr_equal_offsets_p): New function.
13235 (find_data_references_in_bb): Remove static.
13236 * tree-data-ref.h (find_data_references_in_bb): Declare.
13237 (dr_equal_offsets_p): Likewise.
13238 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
13239 (vect_drs_dependent_in_basic_block): Update calls to
13240 vect_equal_offsets.
13241 (vect_check_interleaving): Likewise.
13242 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
13243 (cond_if_else_store_replacement): Rename to...
13244 (cond_if_else_store_replacement_1): ... this. Change arguments and
13245 documentation.
13246 (cond_if_else_store_replacement): New function.
13247 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
13248 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
13249
4908b0bf
CLT
132502011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
13251
13252 PR target/46934
13253 * config/arm/arm.md (casesi): Use the gen_int_mode() function
13254 to subtract lower bound instead of GEN_INT().
13255
2be478a2
JW
132562011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
13257
13258 PR other/48179
13259 PR other/48221
13260 PR other/48234
13261 * doc/extend.texi (Alignment): Move section to match order in TOC.
13262 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
13263 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
13264
0c617be4
JL
132652011-03-23 Jeff Law <law@redhat.com>
13266
13267 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
13268 before removing the edge.
13269
13270 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
13271 it may have been freed by redirect_branch_edge or
13272 redirect_edge_succ_nodup.
13273
58da96fe
RG
132742011-03-23 Richard Guenther <rguenther@suse.de>
13275
c78dd519 13276 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
13277 (check_va_list_escapes): Likewise.
13278 (check_all_va_list_escapes): Likewise.
13279
b8beb4d1
RG
132802011-03-23 Richard Guenther <rguenther@suse.de>
13281
13282 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
13283 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
13284 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
13285 (alias.o): Likewise.
13286 (ipa-type-escape.o): Remove.
13287 (ipa-struct-reorg.o): Likewise.
13288 (GTFILES): Remove ipa-struct-reorg.c.
13289 * alias.c: Do not include ipa-type-escape.h.
13290 * tree-ssa-alias.c: Likewise.
13291 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
13292 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
13293 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
13294 and ipa-type-escape passes.
13295 * tree-pass.h (pass_ipa_type_escape): Remove.
13296 (pass_ipa_struct_reorg): Likewise.
13297 * ipa-struct-reorg.h: Remove.
13298 * ipa-struct-reorg.c: Likewise.
13299 * ipa-type-escape.h: Likewise.
13300 * ipa-type-escape.c: Likewise.
13301 * doc/invoke.texi (-fipa-struct-reorg): Remove.
13302 (--param struct-reorg-cold-struct-ratio): Likewise.
13303 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13304 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
13305 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
13306
f137aa63
AK
133072011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13308
13309 * config/s390/2084.md: Enable all insn reservations also for z9_ec
13310 cpu attribute value.
13311 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
13312 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
13313 * config/s390/s390.c (processor_flags_table): New constant array.
13314 (s390_handle_arch_option): Remove.
13315 (s390_handle_option): Remove s390_handle_arch_option invocations
13316 and OPT_mwarn_framesize_ handling.
13317 (s390_option_override): Remove s390_handle_arch_option invocation.
13318 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
13319 warnings.
13320 * config/s390/s390.md (cpu attribute): Add z9_ec value.
13321 * config/s390/s390.opt (s390_tune, s390_arch)
13322 (march=): Replace s390_arch_option enum and values with
13323 processor_type. Set variable name to s390_arch. Set
13324 initialization value.
13325 (mtune=): Replace s390_arch_option with processor_type. Set
13326 variable name to s390_tune. Set initialization value.
13327
bf90208f
JB
133282011-03-23 Julian Brown <julian@codesourcery.com>
13329
13330 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
13331 accesses which are not naturally aligned.
13332
3460fdf3
RS
133332011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
13334
13335 PR target/47553
13336 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
13337
a5c7d693
RS
133382011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
13339
13340 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
13341 parameter from "int" to "enum insn_code".
13342 (expand_operand_type): New enum.
13343 (expand_operand): New structure.
13344 (create_expand_operand): New function.
13345 (create_fixed_operand, create_output_operand): Likewise
13346 (create_input_operand, create_convert_operand_to): Likewise.
13347 (create_convert_operand_from, create_address_operand): Likewise.
13348 (create_integer_operand): Likewise.
13349 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
13350 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13351 (expand_insn, expand_jump_insn): Likewise.
13352 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
13353 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
13354 (expand_movstr, expand_builtin___clear_cache): Likewise.
13355 (expand_builtin_lock_release): Likewise.
13356 * explow.c (allocate_dynamic_stack_space): Likewise.
13357 (probe_stack_range): Likewise. Allow check_stack to FAIL,
13358 and use the default handling in that case.
13359 * expmed.c (check_predicate_volatile_ok): Delete.
13360 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
13361 (emit_cstore): Likewise.
13362 * expr.c (emit_block_move_via_movmem): Likewise.
13363 (set_storage_via_setmem, expand_assignment): Likewise.
13364 (emit_storent_insn, try_casesi): Likewise.
13365 (emit_single_push_insn): Likewise. Allow the expansion to fail.
13366 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
13367 (expand_vec_shift_expr, expand_binop_directly): Likewise.
13368 (expand_twoval_unop, expand_twoval_binop): Likewise.
13369 (expand_unop_direct, emit_indirect_jump): Likewise.
13370 (emit_conditional_move, vector_compare_rtx): Likewise.
13371 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
13372 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
13373 (expand_sync_lock_test_and_set): Likewise.
13374 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
13375 (emit_unop_insn): Likewise.
13376 (expand_copysign_absneg): Change icode to an insn_code.
13377 (create_convert_operand_from_type): New function.
13378 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
13379 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
13380 (expand_insn, expand_jump_insn): Likewise.
13381 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
13382 than const_int_operand for operand 2.
13383
78fadbab
AK
133842011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13385
13386 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
13387 if possible.
13388
5f02387d
NF
133892011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13390
13391 * emit-rtl.c (emit_pattern_before_noloc): New function.
13392 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
13393 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
13394 (emit_pattern_after_noloc): New function.
13395 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
13396 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
13397
fdf3e18a
NF
133982011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13399
13400 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
13401 (__ffsDI2): Likewise.
13402
42d085c1
RH
134032011-03-22 Richard Henderson <rth@redhat.com>
13404
13405 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
13406 of !TARGET_ABI_OPEN_VMS.
13407 (alpha_trampoline_init, alpha_start_function): Likewise.
13408 (alpha_expand_epilogue, alpha_file_start): Likewise.
13409 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
13410 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
13411 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
13412 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
13413 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
13414
cabbe12a
JM
134152011-03-22 Joseph Myers <joseph@codesourcery.com>
13416
13417 * config/s390/s390-opts.h: New.
13418 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
13419 s390_arch_flags, s390_warn_framesize, s390_stack_size,
13420 s390_stack_guard): Remove.
13421 (s390_handle_arch_option): Return void. Take enum
13422 s390_arch_option value instead of string and searching array.
13423 (s390_handle_option): Don't assert that global structures are in
13424 use. Access variables via opts pointer. Use error_at. Don't use
13425 sscanf for -mstack-guard= or -mstack-size=. Update call to
13426 s390_handle_arch_option.
13427 (s390_option_override): Update call to s390_handle_arch_option.
13428 (s390_emit_prologue): Use %d format for s390_stack_size in
13429 diagnostic. Use %wd for HOST_WIDE_INT.
13430 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
13431 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
13432 * config/s390/s390.opt (config/s390/s390-opts.h): New
13433 HeaderInclude entry.
13434 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
13435 s390_arch_flags, s390_warn_framesize): New Variable entries.
13436 (s390_arch_option): New Enum and EnumValue entries.
13437 (march=): Use Enum instead of Var.
13438 (mstack-guard=, mstack-size=): Use UInteger and Var.
13439 (mtune=): Use Enum.
13440
05b12036
JM
134412011-03-22 Joseph Myers <joseph@codesourcery.com>
13442
13443 * config/score/score.c (score_handle_option): Don't assert that
13444 global structures are in use. Access target_flags via opts
13445 pointer. Use value of -march= option to determine target_flags
13446 settings.
13447 * config/score/score.opt (march=): Use Enum.
13448 (score_arch): New Enum and EnumValue entries.
13449
dd51e35a
JM
134502011-03-22 Joseph Myers <joseph@codesourcery.com>
13451
13452 * config/mep/mep.c (option_mtiny_specified): Remove.
13453 (mep_option_override): Move register handling for -mivc2 from
13454 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
13455 instead of option_mtiny_specified.
13456 (mep_handle_option): Access target_flags via opts pointer. Don't
13457 assert that global structures are in use. Defer part of -mivc2
13458 handling and move it to mep_option_override.
13459 * config/mep/mep.opt (IVC2): New Mask entry.
13460 (mivc2): Use Var and Defer instead of Mask.
13461
4a8d3d91
JM
134622011-03-22 Joseph Myers <joseph@codesourcery.com>
13463
13464 * config/v850/v850-opts.h: New.
13465 * config/v850/v850.c (small_memory): Replace with
13466 small_memory_physical_max array. Make that array static const.
13467 (v850_handle_memory_option): Take integer value of argument. Take
13468 gcc_options pointer, option text and location. Return void.
13469 Update for changes to small memory structures.
13470 (v850_handle_option): Access target_flags via opts pointer. Don't
13471 assert that global structures are in use. Update calls to
13472 v850_handle_memory_option.
c78dd519
UB
13473 (v850_encode_data_area): Update references to small memory settings.
13474 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
13475 (enum small_memory_type): Move to v850-opts.h.
13476 * config/v850/v850.opt (config/v850/v850-opts.h): New
13477 HeaderInclude entry.
13478 (small_memory_max): New Variable entry.
13479 (msda): Replace by pair of options msda= and msda-. Use UInteger.
13480 (mtda, mzda): Likewise.
13481
117fdbfa
JM
134822011-03-22 Joseph Myers <joseph@codesourcery.com>
13483
13484 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
13485 pointer. Don't assert that global structures are in use.
13486
d715091c
JM
134872011-03-22 Joseph Myers <joseph@codesourcery.com>
13488
13489 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
13490 via opts pointer. Don't assert that global structures are in use.
13491
1bb721dc
JM
134922011-03-22 Joseph Myers <joseph@codesourcery.com>
13493
13494 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
13495 (munix=93): Use Var.
13496 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
13497 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
13498 * config/pa/pa-opts.h: New.
13499 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
13500 (pa_handle_option): Don't assert that global structures are in
13501 use. Access target_flags via opts pointer. Don't handle
13502 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
13503 OPT_munix_98 here.
13504 (pa_option_override): Handle deferred OPT_mfixed_range_.
13505
cd8d8754
JM
135062011-03-22 Joseph Myers <joseph@codesourcery.com>
13507
13508 * config/mn10300/mn10300-opts.h: New.
13509 * config/mn10300/mn10300.c (mn10300_processor,
13510 mn10300_tune_string): Remove.
13511 (mn10300_handle_option): Don't assert that global structures are
13512 in use. Access mn10300_processor via opts pointer. Don't handle
13513 OPT_mtune_ here.
13514 * config/mn10300/mn10300.h (enum processor_type): Move to
13515 mn10300-opts.h.
13516 (mn10300_processor): Remove.
13517 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
13518 HeaderInclude entry.
13519 (mn10300_processor): New Variable entry.
13520 (mtune=): Use Var.
13521
24e6e6b1
JM
135222011-03-22 Joseph Myers <joseph@codesourcery.com>
13523
13524 * config/microblaze/microblaze.c: Don't include opts.h.
13525 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
13526 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
13527 (mno-clearbss): Use Var and Warn.
13528
8a784afb
JM
135292011-03-22 Joseph Myers <joseph@codesourcery.com>
13530
13531 * config/m32r/m32r-opts.h: New.
13532 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
13533 (m32r_handle_option): Don't assert that global structures are in
13534 use. Access target_flags and m32r_cache_flush_func via opts
13535 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
13536 OPT_mno_flush_trap here.
13537 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
13538 include of m32r-opts.h.
13539 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
13540 HeaderInclude entry.
13541 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
13542 (mmodel=): Use Enum and Var.
13543 (m32r_model): New Enum and EnumValue entries.
13544 (mno-flush-trap): Use Var.
13545 (msdata=): Use Enum and Var.
13546 (m32r_sdata): New Enum and EnumValue entries.
13547
bbfc9a8c
JM
135482011-03-22 Joseph Myers <joseph@codesourcery.com>
13549
13550 * config/m32c/m32c.c: Don't include opts.h.
13551 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
13552 m32c_handle_option): Remove.
13553 (m32c_option_override): Check global_options_set.x_target_memregs
13554 instead of target_memregs_set.
13555 * config/m32c/m32c.h (target_memregs): Remove.
13556 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
13557 variable.
13558
e24b8335
JM
135592011-03-22 Joseph Myers <joseph@codesourcery.com>
13560
13561 * config/iq2000/iq2000-opts.h: New.
13562 * config/iq2000/iq2000.c: Don't include opts.h.
13563 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 13564 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
13565 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
13566 HeaderInclude entry.
13567 (iq2000_tune): New Variable entry.
13568 (march=): Add comment. Use Enum.
13569 (iq2000_arch): New Enum and EnumValue entries.
13570 (mcpu=): Use Enum and Var.
13571 (iq2000_tune): New Enum and EnumValue entries.
13572
e6cc0c98
JM
135732011-03-22 Joseph Myers <joseph@codesourcery.com>
13574
13575 * config/ia64/ia64-opts.h: New.
13576 * config/ia64/ia64.c (ia64_tune): Remove.
13577 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
13578 here. Use error_at.
13579 (ia64_option_override): Handle deferred OPT_mfixed_range_.
13580 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
13581 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
13582 HeaderInclude entry.
13583 (ia64_tune): New Variable entry.
13584 (mfixed-range=): Use Defer and Var.
13585 (mtune=): Use Enum and Var.
13586 (ia64_tune): New Enum and EnumValue entries.
13587
db25893c
JM
135882011-03-22 Joseph Myers <joseph@codesourcery.com>
13589
13590 * config/frv/frv-opts.h: New.
13591 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
13592 frv-opts.h.
13593 (frv_cpu_type): Remove.
13594 * config/frv/frv.c: Don't include opts.h.
13595 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 13596 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
13597 (frv_cpu_type): New Variable entry.
13598 (frv_cpu): New Enum and EnumValue entries.
13599
6c223f5d
JM
136002011-03-22 Joseph Myers <joseph@codesourcery.com>
13601
13602 * config/cris/cris.c (cris_handle_option): Access target_flags via
13603 opts pointer. Don't assert that global structures are in use.
13604 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
13605 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
13606
bbd399cf
JM
136072011-03-22 Joseph Myers <joseph@codesourcery.com>
13608
13609 * config/bfin/bfin-opts.h: New.
13610 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
13611 bfin_si_revision, bfin_workarounds): Remove.
13612 (bfin_cpus): Make static const.
13613 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
13614 not bfin_lib_id_given.
13615 (bfin_handle_option): Don't set bfin_lib_id_given. Access
13616 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 13617 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
13618 * config/bfin/bfin.h: Include bfin-opts.h.
13619 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
13620 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
13621 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
13622 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
13623 entries.
13624
5e1b4d5a
JM
136252011-03-22 Joseph Myers <joseph@codesourcery.com>
13626
13627 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
13628 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
13629 or -msoft-float here.
13630 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
13631 -msoft-float and -mhard-float.
c78dd519 13632 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
13633 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13634 msoft-float.
13635 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
13636 -msoft-float.
13637 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
13638 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
13639 not mhard-float.
13640 (LIBGCC_SPEC): Don't handle -msoft-float.
13641 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
13642 -mhard-float.
13643 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
13644 msoft-float.
13645 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
13646 -mfloat-abi=*, not -msoft-float and -mhard-float.
13647 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
13648 -msoft-float.
13649 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
13650 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
13651 mhard-float and msoft-float.
13652 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
13653 mfloat-abi=soft in comments, not mhard-float and msoft-float.
13654 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13655 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
13656 mhard-float.
13657 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
13658 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
13659 msoft-float.
13660 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
13661 not mhard-float.
13662 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
13663 not msoft-float.
13664
800d1de1
RH
136652011-03-22 Richard Henderson <rth@redhat.com>
13666
13667 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
13668 TARGET_ABI_WINDOWS_NT.
13669 (alpha_output_function_end_prologue): Likewise.
13670 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
13671 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13672 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
13673 (trap, *movsi_nt_vms): Likewise.
13674 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
13675 (*tablejump_osf_nt_internal): Remove.
13676 * config/alpha/predicates.md (input_operand): Only test Pmode.
13677
c59ddd2b
JM
136782011-03-22 Joseph Myers <joseph@codesourcery.com>
13679
13680 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
13681 via opts pointer. Use error_at. Don't assert that global
13682 structures are in use.
13683
1333f97f
JM
136842011-03-22 Joseph Myers <joseph@codesourcery.com>
13685
13686 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
13687 (ix86_handle_option): Access ix86_isa_flags and
13688 ix86_isa_flags_explicit via opts pointer. Don't assert that
13689 global structures are in use.
13690 (ix86_function_specific_save, ix86_function_specific_restore):
13691 Update ix86_isa_flags_explicit field name.
c78dd519 13692 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
13693 (ix86_isa_flags_explicit): Rename TargetSave entry to
13694 x_ix86_isa_flags_explicit.
13695
75db85d8
RH
136962011-03-22 Richard Henderson <rth@redhat.com>
13697
13698 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
13699 (alpha_option_override, direct_return): Likewise.
13700 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
13701 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
13702 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
13703 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13704 (alpha_expand_epilogue, alpha_end_function): Likewise.
13705 (alpha_init_libfuncs): Likewise.
13706 (struct machine_function): Remove unicosmk members.
13707 (print_operand) ['t']: Remove.
13708 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
13709 unicosmk_output_module_name, unicosmk_output_common,
13710 current_section_align, unicosmk_output_text_section_asm_op,
13711 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
13712 unicosmk_section_type_flags, unicosmk_unique_section,
13713 unicosmk_asm_named_section, unicosmk_insert_attributes,
13714 unicosmk_output_align, unicosmk_defer_case_vector,
13715 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
13716 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
13717 unicosmk_output_ssib, unicosmk_add_call_info_word,
13718 unicosmk_extern_head, unicosmk_output_default_externs,
13719 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
13720 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
13721 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
13722 * config/alpha/alpha-protos.h: Update.
13723 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
13724 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
13725 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
13726 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
13727 (*mulsi_se, mulvsi3): Likewise.
13728 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
13729 (*divmodsi_internal, call, call_value, realign): Likewise.
13730 (moddi3, umoddi3): Likewise; remove duplicate expander.
13731 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
13732 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
13733 (*movdi_nofix): Remove r/U alternative.
13734 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
13735 * config/alpha/constraints.md ("U"): Remove.
13736 * config/alpha/predicates.md (call_operand"): Don't test
13737 TARGET_ABI_UNICOSMK.
13738
96e45421
JM
137392011-03-22 Joseph Myers <joseph@codesourcery.com>
13740
13741 * target.def (handle_option): Take gcc_options and
13742 cl_decoded_option pointers and location_t.
13743 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
13744 * doc/tm.texi: Regenerate.
13745 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
13746 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
13747 * lto-opts.c (lto_reissue_options): Generate option structure for
13748 targetm.handle_option call.
13749 * opts.c (target_handle_option): Update call to
13750 targetm.handle_option. Remove assertions about values now passed
13751 down to hook.
13752 * targhooks.c (default_target_handle_option): New.
13753 * targhooks.h (default_target_handle_option): Declare.
13754 * config/alpha/alpha.c: Include opts.h.
13755 (alpha_handle_option): Update to new hook interface.
13756 * config/arm/arm.c: Include opts.h.
13757 (arm_handle_option): Update to new hook interface.
13758 * config/arm/t-arm (arm.o): Update dependencies.
13759 * config/bfin/bfin.c: Include opts.h.
13760 (bfin_handle_option): Update to new hook interface.
13761 * config/cris/cris.c: Include opts.h.
13762 (cris_handle_option): Update to new hook interface.
13763 * config/frv/frv.c: Include opts.h.
13764 (frv_handle_option): Update to new hook interface.
13765 * config/i386/i386.c: Include opts.h.
13766 (ix86_handle_option): Update to new hook interface.
13767 (ix86_valid_target_attribute_inner_p): Generate option structure
13768 for call to ix86_handle_option.
13769 * config/i386/t-i386 (i386.o): Update dependencies.
13770 * config/ia64/ia64.c: Include opts.h.
13771 (ia64_handle_option): Update to new hook interface.
13772 * config/ia64/t-ia64 (ia64.o): Update dependencies.
13773 * config/iq2000/iq2000.c: Include opts.h.
13774 (iq2000_handle_option): Update to new hook interface.
13775 * config/m32c/m32c.c: Include opts.h.
13776 (m32c_handle_option): Update to new hook interface.
13777 * config/m32r/m32r.c: Include opts.h.
13778 (m32r_handle_option): Update to new hook interface.
13779 * config/m68k/m68k.c: Include opts.h.
13780 (m68k_handle_option): Update to new hook interface.
13781 * config/mep/mep.c: Include opts.h.
13782 (mep_handle_option): Update to new hook interface.
13783 * config/microblaze/microblaze.c: Include opts.h.
13784 (microblaze_handle_option): Update to new hook interface.
13785 * config/mips/mips.c: Include opts.h.
13786 (mips_handle_option): Update to new hook interface.
13787 * config/mn10300/mn10300.c: Include opts.h.
13788 (mn10300_handle_option): Update to new hook interface.
13789 * config/pa/pa.c: Include opts.h.
13790 (pa_handle_option): Update to new hook interface.
13791 * config/pdp11/pdp11.c: Include opts.h.
13792 (pdp11_handle_option): Update to new hook interface.
13793 * config/rs6000/rs6000.c: Include opts.h.
13794 (rs6000_handle_option): Update to new hook interface.
13795 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
13796 * config/rx/rx.c: Include opts.h.
13797 (rx_handle_option): Update to new hook interface.
13798 * config/s390/s390.c: Include opts.h.
13799 (s390_handle_option): Update to new hook interface.
13800 * config/score/score.c: Include opts.h.
13801 (score_handle_option): Update to new hook interface.
13802 * config/sh/sh.c: Include opts.h.
13803 (sh_handle_option): Update to new hook interface.
13804 * config/sparc/sparc.c: Include opts.h.
13805 (sparc_handle_option): Update to new hook interface.
13806 * config/v850/v850.c: Include opts.h.
13807 (v850_handle_option): Update to new hook interface.
13808
66017846
JM
138092011-03-22 Joseph Myers <joseph@codesourcery.com>
13810
13811 * gcc.c (driver_unknown_option_callback): Only permit and save
13812 unknown -Wno- options.
13813 (driver_wrong_lang_callback): Save options directly instead of via
13814 driver_unknown_option_callback.
13815
e8b97ccd
EB
138162011-03-22 Eric Botcazou <ebotcazou@adacore.com>
13817
13818 * combine.c (simplify_set): Try harder to find the best CC mode when
13819 simplifying a nested COMPARE on the RHS.
13820
ebb9f8b0
JM
138212011-03-22 Joseph Myers <joseph@codesourcery.com>
13822
13823 * config/alpha/gnu.h: Remove.
13824 * config/arc: Remove directory.
13825 * config/arm/netbsd.h: Remove.
13826 * config/arm/t-pe: Remove.
13827 * config/crx: Remove directory.
13828 * config/i386/netbsd.h: Remove.
13829 * config/m68hc11: Remove directory.
13830 * config/m68k/uclinux-oldabi.h: Remove.
13831 * config/mcore/mcore-pe.h: Remove.
13832 * config/mcore/t-mcore-pe: Remove.
13833 * config/netbsd-aout.h: Remove.
13834 * config/rs6000/gnu.h: Remove.
13835 * config/sh/sh-symbian.h: Remove.
13836 * config/sh/symbian-base.c: Remove.
13837 * config/sh/symbian-c.c: Remove.
13838 * config/sh/symbian-cxx.c: Remove.
13839 * config/sh/symbian-post.h: Remove.
13840 * config/sh/symbian-pre.h: Remove.
13841 * config/sh/t-symbian: Remove.
13842 * config/svr3.h: Remove.
13843 * config/vax/netbsd.h: Remove.
13844 * config.build: Don't handle i[34567]86-*-pe.
13845 * config.gcc: Remove handling of deprecations for most deprecated
13846 targets.
13847 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
13848 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
13849 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
13850 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
13851 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
13852 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
13853 Remove cases.
13854 * config.host: Don't handle i[34567]86-*-pe.
13855 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
13856 (ASM_SPEC32): Don't handle -mcall-gnu.
13857 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
13858 -mcall-gnu.
13859 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
13860 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
13861 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13862 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
13863 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
13864 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
13865 conditional on SYMBIAN.
13866 * configure.ac: Don't handle powerpc*-*-gnu*.
13867 * configure: Regenerate.
13868 * doc/extend.texi (interrupt attribute): Don't mention CRX.
13869 * doc/install-old.texi (m6811, m6812): Don't mention.
13870 * doc/install.texi (arc-*-elf*): Don't document multilib option.
13871 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
13872 (m68k-uclinuxoldabi): Don't mention.
13873 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
13874 Remove.
13875 (-mcall-gnu): Remove.
13876 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
13877 families): Remove constraint documentation.
13878
999a7d80
MS
138792011-03-22 Marius Strobl <marius@FreeBSD.org>
13880
13881 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
13882 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
13883 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
13884
45540bcf
MM
138852011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13886
13887 PR target/48226
13888 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
13889 vector when peeking at the next token for vector, don't expand the
13890 keywords.
13891
980a0ff4
GJL
138922011-03-21 Georg-Johann Lay <avr@gjlay.de>
13893
13894 * config/avr/avr-protos.h (expand_epilogue): Change prototype
13895 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
13896 * config/avr/avr.c (init_cumulative_args)
13897 (avr_function_arg_advance): Use it.
13898 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
13899 sibcall epilogues.
13900 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
13901 (avr_function_ok_for_sibcall): ...this new function.
13902 (avr_lookup_function_attribute1): New static Function.
13903 (avr_naked_function_p, interrupt_function_p)
13904 (signal_function_p, avr_OS_task_function_p)
13905 (avr_OS_main_function_p): Use it.
13906 * config/avr/avr.md ("sibcall", "sibcall_value")
13907 ("sibcall_epilogue"): New expander.
13908 ("*call_insn", "*call_value_insn"): New insn.
13909 ("call_insn", "call_value_insn"): Remove
13910 ("call", "call_value", "epilogue"): Change expander to handle
13911 sibling calls.
13912
49168734
NC
139132011-03-21 Nick Clifton <nickc@redhat.com>
13914
13915 * doc/invoke.texi (Overall Options): Move closing brace to end of
13916 options list.
13917 (Optimization Options): Add missing @gol.
13918 (Directory Options): Likewise.
13919 (i386 and x86-64 Options): Likewise.
13920 (RS6000 and PowerPC Options): Likewise.
13921 (i386 and x86-64 Windows Options): Likewise.
13922 (V850 Options): Add text missing from descriptions.
13923
bdfe906f
RH
139242011-03-22 Richard Henderson <rth@redhat.com>
13925
13926 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
13927 (avr_incoming_return_addr_rtx): New.
13928 (emit_push_byte): New.
13929 (expand_prologue): Use it. Remove incorrect dwarf annotation for
13930 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
13931 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
13932 (emit_pop_byte): New.
13933 (expand_epilogue): Use it. Pop frame pointer by bytes.
13934 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
13935 (INCOMING_RETURN_ADDR_RTX): New.
13936 (INCOMING_FRAME_SP_OFFSET): New.
13937 (ARG_POINTER_CFA_OFFSET): New.
13938 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
13939 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
13940 (pophi): Remove.
13941
d090a5aa
RH
13942 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
13943
fdf3e18a
NF
139442011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13945
13946 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
13947 (FUNCTION_ARG_ADVANCE): Likewise.
13948 * tm.texi.in: Change references to them to hook references.
13949 * tm.texi: Regenerate.
13950 * targhooks.c (default_function_arg): Eliminate check for target
13951 macro.
13952 (default_function_incoming_arg): Likewise.
13953 (default_function_arg_advance): Likewise.
c78dd519 13954 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
13955 (function_arg_advance): Likewise.
13956 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
13957
009d3fcf
NF
139582011-03-22 Nathan Froyd <froydnj@codesourcery.com>
13959
13960 * tree.c (build_call_1): New function.
13961 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
13962
7bec30e1
RG
139632011-03-22 Richard Guenther <rguenther@suse.de>
13964
13965 PR tree-optimization/48228
13966 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
13967 for single-arg PHIs.
13968
0b7e851b
AB
139692011-03-22 Andrey Belevantsev <abel@ispras.ru>
13970
13971 PR rtl-optimization/48143
13972 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
13973 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
13974 sse2_cvtps2pd): Likewise.
13975
d89afca5
AK
139762011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13977
13978 * recog.c (canonicalize_change_group): Use validate_unshare_change.
13979
f471fe72
RG
139802011-03-22 Richard Guenther <rguenther@suse.de>
13981
13982 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
13983 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
13984 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
13985 and REALIGN_LOAD_EXPR.
13986 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
13987 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
13988 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
13989 DOT_PROD_EXPR case ...
13990 (expand_expr_real_2): ... here.
13991 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
13992 and REALIGN_LOAD_EXPR.
13993 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
13994 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
13995 (vect_create_epilog_for_reduction): Likewise.
13996 (vectorizable_reduction): Likewise.
13997 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
13998 * tree-vect-stmts.c (vectorizable_load): Likewise.
13999
f2f81d57
EB
140002011-03-22 Eric Botcazou <ebotcazou@adacore.com>
14001
14002 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
14003
ab081dd6
AK
140042011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14005
14006 * config/s390/s390.c (s390_delegitimize_address): Fix offset
14007 handling for PLTOFF/GOTOFF.
14008
6fd5332b
NC
140092011-03-22 Nick Clifton <nickc@redhat.com>
14010
14011 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
14012 trailing backslash from the end of the macro definition.
14013
01841ac0
AK
140142011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14015
14016 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
14017 and PLT unspecs.
14018
2ef6ce06
RS
140192011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
14020
14021 * expr.h (prepare_operand): Move to...
14022 * optabs.h (prepare_operand): ...here and change the insn code
14023 parameter from "int" to "enum insn_code".
14024 (insn_operand_matches): Declare.
14025 * expr.c (init_expr_target): Use insn_operand_matches.
14026 (compress_float_constant): Likewise.
14027 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
14028 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
14029 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
14030 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
14031 Likewise.
2ef6ce06
RS
14032 (gen_cond_trap): Likewise.
14033 (prepare_operand): Likewise. Change icode to an insn_code.
14034 (insn_operand_matches): New function.
14035 * reload.c (find_reloads_address_1): Use insn_operand_matches.
14036 * reload1.c (gen_reload): Likewise.
14037 * targhooks.c (default_secondary_reload): Likewise.
14038
9e43ad68
UB
140392011-03-21 Uros Bizjak <ubizjak@gmail.com>
14040
9a96da32
UB
14041 * config/alpha/alpha.md (unspec): New define_c_enum.
14042 (unspecv): Ditto.
14043
140442011-03-21 Uros Bizjak <ubizjak@gmail.com>
14045
14046 PR debug/48214
9e43ad68
UB
14047 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
14048 between a call and its CALL_ARG_LOCATION note.
14049
31408f60
EB
140502011-03-21 Eric Botcazou <ebotcazou@adacore.com>
14051
14052 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
14053
140542011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
14055
14056 PR c/42544
14057 PR c/48197
14058 * c-common.c (shorten_compare): If primopN is first sign-extended
14059 to opN and then zero-extended to result type, set primopN to opN.
14060
9dfd55f5
DJ
140612011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
14062
14063 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
14064 for barrier handlers.
14065
f3c33d9d
MM
140662011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
14067
14068 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
14069 UNSPEC constants to be in the unspec enumeration, and redefine
14070 all UNSPECV constants to be in the unspecv enumeration, so that
14071 dumps print which unspec/unspec_volatile this is.
14072 * config/rs6000/vector.md (UNSPEC_*): Ditto.
14073 * config/rs6000/paired.md (UNSPEC_*): Ditto.
14074 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
14075 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
14076 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
14077
14078 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
14079 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
14080 UNSPECV_LWSYNC, since these are used as unspec_volatile.
14081 * config/rs6000/sync.md (isync, lwsync): Ditto.
14082
ac43f774
RG
140832011-03-21 Richard Guenther <rguenther@suse.de>
14084
14085 * params.def (lto-min-partition): Fix typo.
14086
411cdbd8
RG
140872011-03-21 Richard Guenther <rguenther@suse.de>
14088
14089 PR c/47939
14090 * c-decl.c (grokdeclarator): Drop to the main variant only
14091 for array types. Drop flag_gen_aux_info check.
14092
1cd9e416
RG
140932011-03-21 Richard Guenther <rguenther@suse.de>
14094
14095 PR translation/47911
14096 * params.def (lto-partitions): Fix typo.
14097 (lto-min-partition): Fix wording.
14098
ada5ad67
AT
140992011-03-21 Andreas Tobler <andreast@fgznet.ch>
14100
14101 * config/rs6000/t-freebsd: Remove duplication from file.
14102
f9613c9a
RG
141032011-03-21 Richard Guenther <rguenther@suse.de>
14104
14105 PR middle-end/47661
14106 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
14107
9bfbc1eb
RG
141082011-03-21 Richard Guenther <rguenther@suse.de>
14109
14110 PR lto/48210
14111 * params.def (lto-partitions): Require at least 1 partition.
14112
a2268084
RO
141132011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14114
14115 * gthr-solaris.h: Remove.
14116 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
14117 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
14118 (LIB_SPEC): Likewise.
14119 * config/sol2.opt (threads): Remove.
9e43ad68 14120 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
14121 (sparc*-*-solaris2*): Likewise.
14122 * configure.ac (enable_threads): Enable solaris support.
14123 * configure: Regenerate.
9e43ad68 14124 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
14125 * doc/install.texi (Configuration, --enable-threads=lib): Remove
14126 solaris.
14127
c43d9a1b
RO
141282011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14129
14130 * config.gcc: Obsolete *-*-solaris2.8*.
14131 * doc/install.texi (Specific, *-*-solaris2*): Document it.
14132
084239f4
RO
141332011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14134
14135 PR bootstrap/48135
14136 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
14137 reference. Solaris 8 perl works.
14138
64cadbe7
RO
141392011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14140
14141 PR bootstrap/48135
14142 * doc/install.texi (Prerequisites): Move jar etc. up.
14143 Explain support library version requirements.
14144
eb975109
RO
141452011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14146
14147 PR bootstrap/48135
14148 * doc/install.texi (Prerequisites): Move Perl to build
14149 requirements. Always necessary on Solaris 2 with Sun ld.
14150
8a509ffd
RO
141512011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14152
14153 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
14154 binutils 2.21.
14155 (Specific, i?86-*-solaris2.[89]): Likewise.
14156 (Specific, i?86-*-solaris2.10): Likewise.
14157 (Specific, mips-sgi-irix6): Likewise.
14158 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
14159 Update for binutils 2.21.
14160
8fbc58a1
RO
141612011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14162
14163 * configure.ac (gcc_cv_lto_plugin): Fix typo.
14164 Allow -fuse-linker-plugin for non-default plugin linker.
14165 * configure: Regenerate.
14166
7e84ad0b
NP
141672011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
14168
14169 PR bootstrap/48167
14170 * gengtype.c (files_rules): Added rule for cp/parser.h.
14171
2f36e14b
JJ
141722011-03-21 Jakub Jelinek <jakub@redhat.com>
14173
14174 PR target/48213
14175 * config/s390/s390.c (s390_delegitimize_address): Don't call
14176 lowpart_subreg if orig_x has BLKmode.
14177
62d784f7
KT
141782011-03-21 Kai Tietz <ktietz@redhat.com>
14179
14180 PR target/12171
9e43ad68
UB
14181 * doc/plugins.texi: Adjust documentation for plugin register_callback.
14182 * tree.h (attribute_spec): Add new member affects_type_identity.
14183 * attribs.c (empty_attribute_table): Adjust attribute_spec
14184 initializers.
62d784f7
KT
14185 * config/alpha/alpha.c: Likewise.
14186 * config/arc/arc.c: Likewise.
14187 * config/arm/arm.c: Likewise.
14188 * config/avr/avr.c: Likewise.
14189 * config/bfin/bfin.c: Likewise.
14190 * config/crx/crx.c: Likewise.
14191 * config/darwin.h: Likewise.
14192 * config/h8300/h8300.c: Likewise.
14193 * config/i386/cygming.h: Likewise.
14194 * config/i386/i386.c: Likewise.
14195 * config/ia64/ia64.c: Likewise.
14196 * config/m32c/m32c.c: Likewise.
14197 * config/m32r/m32r.c: Likewise.
14198 * config/m68hc11/m68hc11.c: Likewise.
14199 * config/m68k/m68k.c: Likewise.
14200 * config/mcore/mcore.c: Likewise.
14201 * config/mep/mep.c: Likewise.
14202 * config/microblaze/microblaze.c: Likewise.
14203 * config/mips/mips.c: Likewise.
14204 * config/rs6000/rs6000.c: Likewise.
14205 * config/rx/rx.c: Likewise.
14206 * config/sh/sh.c: Likewise.
14207 * config/sol2.h: Likewise.
14208 * config/sparc/sparc.c: Likewise.
14209 * config/spu/spu.c: Likewise.
14210 * config/stormy16/stormy16.c: Likewise.
14211 * config/v850/v850.c: Likewise.
14212
54833ec0
CLT
142132011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
14214
14215 * simplify-rtx.c (simplify_binary_operation_1): Handle
14216 (xor (and A B) C) case when B and C are both constants.
14217
14a41392
MX
142182011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
14219
14220 * tree-dfa.c (add_referenced_var): Fix typo in comment.
14221
806c3492
EB
142222011-03-20 Eric Botcazou <ebotcazou@adacore.com>
14223
14224 PR bootstrap/48168
14225 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
14226
65e0a0f3
JJ
142272011-03-20 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR rtl-optimization/48156
14230 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
14231 assume df and df_lr are not NULL.
14232
b6a75dda
RR
142332011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14234
14235 PR debug/48023
14236 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
14237 between a call and its CALL_ARG_LOCATION note.
14238
5969b52d
KK
142392011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
14240
14241 PR debug/48178
14242 * config/sh/sh.c (find_barrier): Don't emit a constant pool
14243 between a call and its corresponding CALL_ARG_LOCATION note.
14244
f773c2bd
AS
142452011-03-19 Anatoly Sokolov <aesok@post.ru>
14246
14247 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
14248 instead of loop. Use HARD_REGISTER_NUM_P predicate.
14249 * haifa-sched.c (setup_ref_regs): Ditto.
14250 * caller-save.c (add_used_regs_1): Ditto.
14251 * dse.c (look_for_hardregs): Ditto.
14252 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
14253 * sched-rgn.c (check_live_1): Ditto.
14254
8bf872f9
JM
142552011-03-18 Joseph Myers <joseph@codesourcery.com>
14256
14257 * c-decl.c (diagnose_mismatched_decls): Give an error for
14258 redefining a typedef with variably modified type.
14259
ff8e2159
JM
142602011-03-18 Joseph Myers <joseph@codesourcery.com>
14261
14262 * c-decl.c (grokfield): Don't allow typedefs for structures or
14263 unions with no tag by default.
14264 * doc/extend.texi (Unnamed Fields): Update.
14265
16cc4440
UB
142662011-03-18 Uros Bizjak <ubizjak@gmail.com>
14267
14268 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14269 Rewrite using indirect functions.
14270 (lwp_slwpcb): Ditto.
14271 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
14272 (avx_vinsertf128<mode>): Ditto.
14273
e101e12e
AK
142742011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14275
14276 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
14277 unspecs.
14278
4627c7fb
AK
142792011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14280
14281 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 14282 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 14283
2d36b47f
MK
142842011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
14285
14286 PR rtl-optimization/48170
14287 * gcse.c (hoist_code): Remove bogus asserts.
14288
2a3d7659
JL
142892011-03-18 Georg-Johann Lay <avr@gjlay.de>
14290
14291 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
14292 computation for prologue/epilogue.
14293
34c3ef05
RO
142942011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14295
14296 * Makefile.in (check-consistency): Remove.
14297
81f2b976
JJ
142982011-03-18 Jakub Jelinek <jakub@redhat.com>
14299
14300 PR debug/48176
14301 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
14302 arange_table_in_use is 0, but either text_section_used or
14303 cold_text_section_used is true. Don't call it if
14304 !info_section_emitted.
14305
68fd7765
AS
143062011-03-18 Anatoly Sokolov <aesok@post.ru>
14307
14308 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
14309 FUNCTION_VALUE_REGNO_P): Remove.
14310 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
14311 Remove.
14312 * config/avr/avr.c (avr_ret_register): Make static inline.
14313 (avr_function_value_regno_p): New function.
14314 (avr_libcall_value): Make static. Add 'func' argument.
14315 (avr_function_value): Make static. Rename 'func' argument to
14316 'fn_decl_or_type', forward it to avr_libcall_value. Call
14317 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 14318 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 14319
b4ef8aac
JM
143202011-03-18 Jason Merrill <jason@redhat.com>
14321
14322 PR c++/23372
14323 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
14324
09a52fc3
RG
143252011-03-18 Richard Guenther <rguenther@suse.de>
14326
14327 * doc/install.texi (--enable-gold): Remove.
14328 (--with-plugin-ld): Document.
14329 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
14330
2a3d7659 143312011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
14332
14333 PR middle-end/47790
14334 * expr.c (optimize_bitfield_assignment_op): Revamp to work
14335 again after expansion changes.
14336
2abbb0fe
CLT
143372011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
14338
14339 * combine.c (try_combine): Do simplification only call of
14340 subst() on i2 even when i1 is present. Update comments.
14341
2efd0aa6
KK
143422011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
14343
14344 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
14345 and UNSPEC_PCREL_SYMOFF.
14346
30a49b23
AK
143472011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14348
14349 * config/s390/s390.md: Use define_c_enum for the unspec constant
14350 definitions.
14351
419e1853
JJ
143522011-03-18 Richard Henderson <rth@redhat.com>
14353 Jakub Jelinek <jakub@redhat.com>
14354
14355 PR bootstrap/48161
14356 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
14357 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
14358
37875856
L
143592011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14360
14361 PR middle-end/47725
14362 * combine.c (cant_combine_insn_p): Don't check zero/sign
14363 extended hard registers.
14364
76069764
L
143652011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14366
14367 PR middle-end/47725
14368 * combine.c (cant_combine_insn_p): Check zero/sign extended
14369 hard registers.
14370
24da2019
AS
143712011-03-17 Anatoly Sokolov <aesok@post.ru>
14372
14373 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14374 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
14375 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
14376 Change return type to bool.
14377 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14378
a82ff31f
JJ
143792011-03-17 Jakub Jelinek <jakub@redhat.com>
14380
8b29c87a
JJ
14381 PR debug/48163
14382 * var-tracking.c (prepare_call_arguments): If CALL target
14383 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
14384 pc instead of looking it up using cselib_lookup and use
14385 Pmode for it if x has VOIDmode.
14386 * dwarf2out.c (gen_subprogram_die): If also both first and
14387 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
14388
a82ff31f
JJ
14389 PR debug/48163
14390 * function.c (assign_parms): For data.passed_pointer parms
14391 use MEM of data.entry_parm instead of data.entry_parm itself
14392 as DECL_INCOMING_RTL.
14393 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
14394 also when passed and declared mode is the same, DECL_RTL
14395 is a MEM with pseudo as address and DECL_INCOMING_RTL is
14396 a MEM too.
14397
82ce305c
JL
143982011-03-16 Jeff Law <law@redhat.com>
14399
14400 PR rtl-optimization/37273
14401 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14402 handle them like argument loads from stack slots. Do not double
14403 count memory for memory constants and argument loads from stack slots.
14404
fe58e02b
L
144052011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14406
14407 PR debug/48160
14408 * var-tracking.c (prepare_call_arguments): Check SUBREG.
14409
6fc4dbc7
L
144102011-03-17 H.J. Lu <hongjiu.lu@intel.com>
14411
14412 PR target/48171
14413 * config/i386/i386.opt: Add Save to -mavx and -mfma.
14414
db3ed0b3
JJ
144152011-03-17 Jakub Jelinek <jakub@redhat.com>
14416
8054a389
JJ
14417 PR bootstrap/48153
14418 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
14419 if dwarf_strict.
14420 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
14421 Clear call_arg_locations and call_arg_loc_last always.
14422
db3ed0b3
JJ
14423 PR middle-end/48152
14424 * var-tracking.c (prepare_call_arguments): If argument needs to be
14425 passed by reference, adjust argtype and mode.
14426
1bce4ff3
RG
144272011-03-17 Richard Guenther <rguenther@suse.de>
14428
14429 PR middle-end/48134
14430 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
14431 a value make sure to fold the statement.
14432
7c71147d
CLT
144332011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
14434
14435 PR target/43872
14436 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
14437 return condition with !cfun->calls_alloca.
14438
0e1ee172
RG
144392011-03-17 Richard Guenther <rguenther@suse.de>
14440
14441 PR bootstrap/48148
14442 * lto-cgraph.c (input_overwrite_node): Clear the abstract
14443 origin for decls in other ltrans units.
14444 (input_varpool_node): Likewise.
14445
f8bce518
RG
144462011-03-17 Richard Guenther <rguenther@suse.de>
14447
14448 PR middle-end/48165
14449 * tree-object-size.c (compute_object_offset): Properly return
14450 the offset operand of MEM_REFs as sizetype.
14451
1b6fa860
JJ
144522011-03-17 Jakub Jelinek <jakub@redhat.com>
14453
dabd47e7
JJ
14454 PR rtl-optimization/48141
14455 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
14456 * dse.c: Include params.h.
14457 (active_local_stores_len): New variable.
14458 (add_wild_read, dse_step1): Clear it when setting active_local_stores
14459 to NULL.
14460 (record_store, check_mem_read_rtx): Decrease it when removing
14461 from the chain.
14462 (scan_insn): Likewise. Increase it when adding to chain, if it
14463 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
14464 set active_local_stores to NULL before the addition.
14465 * Makefile.in (dse.o): Depend on $(PARAMS_H).
14466
1b6fa860
JJ
14467 PR rtl-optimization/48141
14468 * dse.c (record_store): If no positions are needed in an insn
14469 that cannot be deleted, at least unchain it from active_local_stores.
14470
7b5cb7d6
DS
144712011-03-16 Dodji Seketeli <dodji@redhat.com>
14472
14473 PR debug/47510
14474 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
14475 (lookup_type_die_strip_naming_typedef): ... here.
14476 (get_context_die): Use it.
14477 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
14478 the anonymous struct named by the naming typedef.
14479
585e9d9d
L
144802011-03-16 H.J. Lu <hongjiu.lu@intel.com>
14481
14482 PR target/48154
14483 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
14484 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14485
6261ab0e
JL
144862011-03-16 Jeff Law <law@redhat.com>
14487
14488 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 14489 check for operands of conditional. Allow type to be a pointer.
6261ab0e 14490
0b0081ec
RG
144912011-03-16 Richard Guenther <rguenther@suse.de>
14492
14493 PR tree-optimization/48149
14494 * fold-const.c (fold_binary_loc): Fold
14495 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
14496
64a3d647
RG
144972011-03-16 Richard Guenther <rguenther@suse.de>
14498
14499 PR tree-optimization/26134
14500 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
14501 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
14502 (non_rewritable_mem_ref_base): Handle complex type component
14503 accesses, constrain offsets for vector and complex extracts
14504 more properly.
14505
ef13324e
RG
145062011-03-16 Richard Guenther <rguenther@suse.de>
14507
14508 PR tree-optimization/48146
14509 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
14510 operands avoiding the need for renaming.
14511
f0eddb90
RG
145122011-03-16 Richard Guenther <rguenther@suse.de>
14513
14514 * gimple-fold.c (maybe_fold_reference): Open-code relevant
14515 constant folding. Move MEM_REF canonicalization first.
14516 Rely on fold_const_aggregate_ref for initializer folding.
14517 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
14518
e42348b8
JJ
145192011-03-16 Jakub Jelinek <jakub@redhat.com>
14520
29f10e71
JJ
14521 PR middle-end/48136
14522 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
14523 arg0/arg1 or their arguments are always fold converted to matching
14524 types.
14525
e42348b8
JJ
14526 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
14527 to nargs.
14528
55b46574
RO
145292011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14530
14531 PR lto/46944
14532 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
14533 Handle in-tree gold.
14534 (ld_vers): Extract binutils version for gold.
14535 (gcc_cv_ld_hidden): Handle gold here.
14536 (gcc_cv_lto_plugin): Determine level of linker plugin support.
14537 * configure: Regenerate.
14538 * config.in: Regenerate.
14539 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
14540 -fuse-linker-plugin otherwise.
14541 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
14542 (LINK_COMMAND_SPEC): Use it.
14543 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
14544
2b1c5433
JJ
145452011-03-16 Jakub Jelinek <jakub@redhat.com>
14546
c2969d8e
JJ
14547 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
14548 * calls.c: Remove debug.h include.
14549 (emit_call_1): Don't call virtual_call_token debug hook.
14550 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
14551 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
14552 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
14553 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
14554 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
14555 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
14556 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
14557 dwarf2out_virtual_call): Remove.
14558 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
14559 copy_call_info and virtual_call hooks.
14560 (dwarf2out_init): Don't initialize vcall_insn_table,
14561 debug_dcall_section and debug_vcall_section.
14562 (prune_unused_types): Don't mark nodes from dcall_table.
14563 (dwarf2out_finish): Don't output dcall or vcall tables.
14564 * final.c (final_scan_insn): Don't call direct_call or
14565 virtual_call debug hooks.
14566 * debug.h (struct gcc_debug_hooks): Remove direct_call,
14567 virtual_call_token, copy_call_info and virtual_call hooks.
14568 (debug_nothing_uid): Remove prototype.
14569 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
14570 copy_call_info and virtual_call hooks.
14571 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
14572 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
14573 * debug.c (do_nothing_debug_hooks): Likewise.
14574 (debug_nothing_uid): Remove.
14575 * doc/invoke.texi (-fenable-icf-debug): Remove.
14576 * common.opt (-fenable-icf-debug): Likewise.
14577
325f5379
JJ
14578 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
14579 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
14580 call's MEM. Handle functions returning aggregate through a hidden
14581 first pointer. For virtual calls add clobbered pc to call arguments
14582 chain.
14583 * dwarf2out.c (gen_subprogram_die): Emit
14584 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
14585 can't be emitted.
14586
a58a8e4b
JJ
14587 PR debug/45882
14588 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
14589 * rtl.h (ENTRY_VALUE_EXP): Define.
14590 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
14591 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14592 * print-rtl.c (print_rtx): Likewise.
14593 * gengtype.c (adjust_field_rtx_def): Likewise.
14594 * var-tracking.c (vt_add_function_parameter): Adjust
14595 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
14596 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
14597 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
14598 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
14599 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
14600
2b1c5433
JJ
14601 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
14602 Call var_location debug hook even on CALL_INSNs.
14603 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
14604 * rtl.def (ENTRY_VALUE): New.
14605 * dwarf2out.c: Include cfglayout.h.
14606 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
14607 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
14608 (struct call_arg_loc_node): New type.
14609 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
14610 tail_call_site_count): New variables.
14611 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
14612 DW_TAG_GNU_call_site_parameter.
14613 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
14614 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
14615 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
14616 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
14617 and DW_AT_GNU_all_source_call_sites.
14618 (mem_loc_descriptor): Handle ENTRY_VALUE.
14619 (add_src_coords_attributes): Don't add enything if
14620 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
14621 (dwarf2out_abstract_function): Save and clear call_arg_location,
14622 call_site_count and tail_call_site_count around dwarf2out_decl call.
14623 (gen_call_site_die): New function.
14624 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
14625 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
14626 (dwarf2out_function_decl): Clear call_arg_locations,
14627 call_arg_loc_last, set call_site_count and tail_call_site_count
14628 to -1 and free block_map.
14629 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
14630 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
14631 followed by any real instructions.
14632 (dwarf2out_begin_function): Set call_site_count and
14633 tail_call_site_count to 0.
14634 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
14635 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
14636 attempt to force a DIE for it and worst case remove the attribute.
14637 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
14638 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
14639 the decl itself.
14640 * var-tracking.c: Include tm_p.h.
14641 (vt_stack_adjustments): For calls call note_register_arguments.
14642 (argument_reg_set): New variable.
14643 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
14644 ensure the VALUE is resolved.
14645 (call_arguments): New variable.
14646 (prepare_call_arguments): New function.
14647 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
14648 (struct expand_loc_callback_data): Add ignore_cur_loc field.
14649 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
14650 always use the best expression.
14651 (vt_expand_loc): Add ignore_cur_loc argument.
14652 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
14653 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
14654 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
14655 note for all calls.
14656 (vt_add_function_parameter): Use cselib_lookup_from_insn.
14657 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
14658 argument. Don't call cselib_preserve_only_values and
14659 cselib_reset_table.
14660 (note_register_arguments): New function.
14661 (vt_initialize): Compute argument_reg_set. Call
14662 vt_add_function_parameters before processing basic blocks instead of
14663 afterwards. For calls call prepare_call_arguments before calling
14664 cselib_process_insn.
14665 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
14666 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
14667 (var-tracking.o): Depend on $(TM_P_H).
14668 * cfglayout.h (insn_scope): New prototype.
14669 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
14670 * cfglayout.c (insn_scope): No longer static.
14671 * insn-notes.def (CALL_ARG_LOCATION): New.
14672 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
14673 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
14674 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
14675 nothing for DECL_EXTERNAL BLOCK_VARS.
14676
9ef13bd0
AM
146772011-03-16 Alan Modra <amodra@gmail.com>
14678
14679 PR target/45844
14680 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
14681 create invalid offset address for vsx splat insn.
14682 * config/rs6000/predicates.md (splat_input_operand): New.
14683 * config/rs6000/vsx.md (vsx_splat_*): Use it.
14684
56b67510
XDL
146852011-03-15 Xinliang David Li <davidxl@google.com>
14686
14687 PR c/47837
14688 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
14689 (normalize_preds): New function.
14690 (is_use_properly_guarded): Normalize def predicates.
14691
80fffdef
RR
146922011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14693
732f37c6 14694 PR target/46788
80fffdef
RR
14695 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
14696 in the output template.
14697
930672ad
RG
146982011-03-15 Richard Guenther <rguenther@suse.de>
14699
14700 PR middle-end/47650
14701 * tree-pretty-print.c (dump_function_declaration): Properly
14702 dump unprototyped and varargs function types.
14703
c7ee7b45
RG
147042011-03-15 Richard Guenther <rguenther@suse.de>
14705
14706 PR tree-optimization/13954
14707 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
14708 and friends.
14709
b2ad5e37
RG
147102011-03-15 Richard Guenther <rguenther@suse.de>
14711
14712 PR tree-optimization/48037
14713 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
14714 selects into BIT_FIELD_REFs.
14715 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
14716 vector select.
14717
7ee93d4e
JJ
147182011-03-15 Jakub Jelinek <jakub@redhat.com>
14719
14720 PR tree-optimization/48129
14721 * builtins.c (fold_builtin_snprintf): Convert to type of
14722 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
14723 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
14724
e106efc7
RG
147252011-03-15 Richard Guenther <rguenther@suse.de>
14726
14727 PR tree-optimization/41490
14728 * tree-ssa-dce.c (propagate_necessity): Handle returns without
14729 value but with VUSE.
14730 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
14731 return statements.
14732 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
14733 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
14734 * tree-tailcall.c (find_tail_calls): Ignore returns.
14735
17dea42f
RG
147362011-03-15 Richard Guenther <rguenther@suse.de>
14737
14738 PR middle-end/48031
14739 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
14740 or variable-indexed array accesses when in gimple form.
14741
01c77a60
RG
147422011-03-15 Richard Guenther <rguenther@suse.de>
14743
16cc4440 14744 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 14745
77b0791e
AM
147462011-03-15 Alan Modra <amodra@gmail.com>
14747
14748 PR target/48032
14749 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
14750 presume symbol_refs without a symbol_ref_decl are suitably
14751 aligned, nor other trees we may see here. Handle anchor symbols.
14752 (legitimate_constant_pool_address_p): Comment. Add mode param.
14753 Check cmodel=medium addresses. Adjust all calls.
14754 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
14755 creating cmodel=medium optimized access to locals.
14756 * config/rs6000/constraints.md (R): Pass QImode to
14757 legitimate_constant_pool_address_p.
14758 * config/rs6000/predicates.md (input_operand): Pass mode to
14759 legitimate_constant_pool_address_p.
14760 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
14761 Update prototype.
14762
35f61ba4
MM
147632011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14764
14765 PR target/48053
14766 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
14767 64-bit constants being loaded into registers other than GPRs such
14768 as loading 0 into a VSX register.
14769
07332e6d
RO
147702011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14771
16cc4440 14772 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 14773
de888d90
JJ
147742011-03-14 Jakub Jelinek <jakub@redhat.com>
14775
ba3ceb2d
JJ
14776 PR middle-end/47917
14777 * builtins.c (fold_builtin_snprintf): New function.
14778 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
14779 (fold_builtin_4): Likewise.
14780
2e64f8b8
JJ
14781 PR middle-end/38878
14782 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
14783 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
14784 and C - X == X also strip nops from +/-/p+ operand.
14785 When optimizing -X == C, fold C to arg0's type.
14786
de888d90
JJ
14787 PR debug/47946
14788 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
14789 emit it as add_AT_int instead of add_AT_unsigned.
14790
147912011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
14792
14793 * unwind-dw2.c: Include sys/sdt.h if it exists.
14794 (_Unwind_DebugHook): Use STAP_PROBE2.
14795 * config.in, configure: Rebuild.
14796 * configure.ac: Check for sys/sdt.h.
14797
d34abfd2
UB
147982011-03-14 Uros Bizjak <ubizjak@gmail.com>
14799
14800 * config/i386/i386.md (ROUND_FLOOR): New constant.
14801 (ROUND_CEIL): Ditto.
14802 (ROUND_TRUNC): Ditto.
14803 (ROUND_MXCSR): Ditto.
14804 (ROUND_NO_EXC): Ditto.
14805 (rint<mode>2): Use new defines instead of numerical constants.
14806 (floor<mode>2): Ditto.
14807 (ceil<mode>2): Ditto.
14808 (btrunc<mode>2): Ditto.
14809 * config/i386/i386-builtin-types.def: Define ROUND function type
14810 aliases.
14811 * config/i386/i386.c (enum ix86_builtins): Add
14812 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
14813 (struct builtin_description): Add
14814 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
14815 (ix86_expand_sse_round): New static function.
14816 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
14817 function types.
14818 (ix86_builtin_vectorized_function): Handle
14819 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
14820
87f9e23d
TT
148212011-03-14 Tom Tromey <tromey@redhat.com>
14822
14823 * c-parser.c (c_parser_asm_string_literal): Clear
14824 warn_overlength_strings.
14825
b3ab9ea2
TT
148262011-03-14 Tom Tromey <tromey@redhat.com>
14827
14828 * c-parser.c (disable_extension_diagnostics): Save
14829 warn_overlength_strings.
14830 (restore_extension_diagnostics): Restore warn_overlength_strings.
14831
6bd73dd8
JJ
148322011-03-14 Jakub Jelinek <jakub@redhat.com>
14833
14834 * BASE-VER: Change to 4.7.0.
14835
7f4d6e1b
RG
148362011-03-14 Richard Guenther <rguenther@suse.de>
14837
14838 PR middle-end/48098
14839 * tree.c (build_vector_from_val): Adjust assert to requirements
14840 and reality.
14841
c6104ef1
JJ
148422011-03-14 Jakub Jelinek <jakub@redhat.com>
14843
14844 PR bootstrap/48102
d34abfd2 14845 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 14846
dfa95e19
AT
148472011-03-14 Andreas Tobler <andreast@fgznet.ch>
14848
f60c2554 14849 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
14850 terms of target_flags_explicit. Adjust copyright year.
14851
14852 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
14853 * config/rs6000/t-freebsd: New file. Add override for
14854 LIB2FUNCS_EXTRA.
14855
bb322018
CD
148562011-03-13 Chris Demetriou <cgd@google.com>
14857
14858 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
14859 (-fno-diagnostics-show-option): this, to reflect current default.
14860 (-Werror=): Update text about -fno-diagnostics-show-option.
14861
12b1c80b
PB
148622011-03-12 Peter Bergner <bergner@vnet.ibm.com>
14863
14864 PR target/48053
14865 * config/rs6000/predicates.md (easy_vector_constant_add_self,
14866 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
14867 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
14868 mode is not V2DImode or V2DFmode.
14869 (vspltis_constant): Do not handle V2DImode and V2DFmode.
14870 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
14871 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
14872 registers to 0.
14873 (movdi_internal64): Likewise.
14874
57d598f7
SP
148752011-03-12 Sebastian Pop <sebastian.pop@amd.com>
14876
14877 PR tree-optimization/47127
14878 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
14879 parameter.
14880 (set_cloog_options): Same.
14881 (scop_to_clast): Same.
14882 (print_clast_stmt): Do not call cloog_state_malloc and
14883 cloog_state_free.
14884 (print_generated_program): Same.
14885 (gloog): Same.
14886 * graphite-clast-to-gimple.h (cloog_state): Declared.
14887 (scop_to_clast): Adjust declaration.
14888 * graphite.c (cloog_state): Defined here.
14889 (graphite_initialize): Call cloog_state_malloc.
14890 (graphite_finalize): Call cloog_state_free.
14891
f231b5ff
JM
148922011-03-11 Jason Merrill <jason@redhat.com>
14893
14894 * attribs.c (lookup_attribute_spec): Take const_tree.
14895 * tree.h: Adjust.
14896
6a4e2bd5
JM
148972011-03-11 Joseph Myers <joseph@codesourcery.com>
14898
14899 * config/sparc/sparc.c (sparc_option_override): Use
14900 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
14901
a758fd67
RG
149022011-03-11 Richard Guenther <rguenther@suse.de>
14903
14904 PR tree-optimization/48067
14905 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
14906 multiplication result will be only used once on the target
14907 stmt.
14908
03dfda54
RG
149092011-03-11 Richard Guenther <rguenther@suse.de>
14910
14911 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
14912
5f11a50a
RG
149132011-03-11 Richard Guenther <rguenther@suse.de>
14914
14915 PR lto/48073
14916 * tree.c (find_decls_types_r): Do not walk types only reachable
14917 from IDENTIFIER_NODEs.
14918
4074f163
JJ
149192011-03-11 Jakub Jelinek <jakub@redhat.com>
14920
14921 PR middle-end/48044
14922 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
14923 all vnode->force_output nodes as needed.
14924
30f7cdcd
JM
149252011-03-11 Jason Merrill <jason@redhat.com>
14926
14927 PR c++/48069
14928 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
14929 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
14930
62ecfeb8
MJ
149312011-03-11 Martin Jambor <mjambor@suse.cz>
14932
14933 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
14934 cgraph_node.
14935
e89e03ab
JJ
149362011-03-11 Jakub Jelinek <jakub@redhat.com>
14937
14938 PR tree-optimization/48063
14939 * ipa-inline.c (cgraph_decide_inlining): Don't try to
14940 inline functions called once if !tree_can_inline_p (node->callers).
14941
efbe978b 149422011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 14943
efbe978b
EB
14944 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
14945 extra_objs.
9d6193a7
CL
14946 * config/score/score3.c: Delete.
14947 * config/score/score3.h: Delete.
14948 * config/score/mul-div.S: Delete.
14949 * config/score/sfp-machine.h: Add new file.
14950 * config/score/constraints.md: Add new file.
14951 * config/score/t-score-softfp: Add new file.
efbe978b 14952 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
14953 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
14954 (score7_extra_constraint): Delete.
efbe978b 14955 (score7_option_override): Remove unused code.
9d6193a7
CL
14956 * config/score/score.c: Remove score3 and score5 define and code.
14957 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 14958 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
14959 * config/score/score.opt: Remove score3 and score5 options.
14960
5de27cca
JDA
149612011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14962
14963 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14964 when _HPUX_SOURCE is defined.
14965 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
14966
18d92053
JM
149672011-03-10 Jason Merrill <jason@redhat.com>
14968
14969 PR c++/48029
14970 * stor-layout.c (layout_type): Don't set structural equality
14971 on arrays of incomplete type.
14972 * tree.c (type_hash_eq): Handle comparing them properly.
14973
67a2f76d
JJ
149742011-03-10 Jakub Jelinek <jakub@redhat.com>
14975
14976 PR debug/48043
18d92053 14977 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
14978 result mode matches original rtl mode.
14979
d845b2f9
NC
149802011-03-10 Nick Clifton <nickc@redhat.com>
14981
14982 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 14983 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 14984
db7ec035
JJ
149852011-03-09 Jakub Jelinek <jakub@redhat.com>
14986
14987 PR rtl-optimization/47866
14988 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
14989 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
14990 if target wasn't scalar.
14991 * function.c (assign_stack_temp_for_type): Assert that neither
14992 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
14993 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
14994 macro.
14995 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
14996
5d304e47
AK
149972011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14998
14999 * config/s390/s390-protos.h (s390_label_align): New prototype.
15000 * config/s390/s390.c (s390_label_align): New function.
15001 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
15002
93b826f0
MM
150032011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
15004
15005 PR target/47755
15006 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
15007 V2DI/V2DF constants. Only all 0's or all 1's are easy.
15008 (output_vec_const_move): Ditto.
15009
ef78aed6
AS
150102011-03-08 Anatoly Sokolov <aesok@post.ru>
15011
15012 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
15013 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
15014 * config/mips/mips.c (mips_preferred_reload_class): Make static.
15015 Change 'rclass' argument and result type to reg_class_t.
15016 (TARGET_PREFERRED_RELOAD_CLASS): Define.
15017
5f892aa0
GJL
150182011-03-08 Georg-Johann Lay <avr@gjlay.de>
15019
9e43ad68
UB
15020 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15021 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
15022 (TARGET_MEMORY_MOVE_COST): Define.
15023 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 15024
32bd2409
JJ
150252011-03-08 Jakub Jelinek <jakub@redhat.com>
15026
530a4800
JJ
15027 PR debug/47881
15028 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
15029 removed anything.
15030
32bd2409
JJ
15031 PR tree-optimization/48022
15032 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
15033 for EQ/NE_EXPR.
15034
c7148991
JJ
150352011-03-07 Jakub Jelinek <jakub@redhat.com>
15036
15037 PR debug/47991
15038 * var-tracking.c (find_use_val): Return NULL for
15039 cui->sets && cui->store_p BLKmode MEMs.
15040
43070a6e
AS
150412011-03-07 Anatoly Sokolov <aesok@post.ru>
15042
15043 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
15044 Remove.
15045 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
15046 xstormy16_print_operand_address): Remove.
15047 * config/stormy16/stormy16.c (xstormy16_print_operand,
15048 xstormy16_print_operand_address): Make static.
15049 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15050
efbe978b 150512011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
15052
15053 PR target/47862
15054 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15055 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
15056 before definition.
15057
cec8ac0b
ZD
150582011-03-07 Zdenek Dvorak <ook@ucw.cz>
15059
15060 PR bootstrap/48000
15061 * cfgloopmanip.c (fix_bb_placements): Return immediately
15062 if FROM is BASE_LOOP's header.
15063
59527282
PW
150642011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
15065
15066 * gimplify.c (gimplify_function_tree): Fix building calls
15067 to __builtin_return_address.
15068
617718f7
AM
150692011-03-07 Alan Modra <amodra@gmail.com>
15070
15071 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
15072 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
15073 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
15074 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
15075 return_mode args.
15076 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
15077 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
15078 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
15079 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
15080 * config/rs6000/rs6000.c
15081 (rs6000_elf_end_indicate_exec_stack): Rename to..
15082 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
15083 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
15084 (rs6000_file_start): ..here.
15085 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
15086 file scope variables.
15087 (call_ABI_of_interest): New function.
15088 (init_cumulative_args): Set above vars when function return value
15089 is a float, vector, or small struct.
15090 (rs6000_function_arg_advance_1): Likewise for function args.
15091 (rs6000_va_start): Set rs6000_passes_float if variable arg function
15092 references float args.
15093
38528d50
MX
150942011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
15095
15096 * doc/cfg.texi: Remove "See" before @ref.
15097 * doc/invoke.texi: Likewise.
15098
f42cf4f4
JM
150992011-03-05 Jason Merrill <jason@redhat.com>
15100
15101 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
15102
804a304d
AG
151032011-03-05 Anthony Green <green@moxielogic.com>
15104
15105 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
15106
634ee309
ZD
151072011-03-05 Zdenek Dvorak <ook@ucw.cz>
15108
15109 PR rtl-optimization/47899
15110 * cfgloopmanip.c (fix_bb_placements): Fix first argument
15111 to flow_loop_nested_p when moving the loop upward.
15112
6fe471c8
RE
151132011-03-05 Richard Earnshaw <rearnsha@arm.com>
15114
15115 PR target/47719
15116 * arm.md (movhi_insn_arch4): Accept any immediate constant.
15117
cc58ceee
JJ
151182011-03-05 Jakub Jelinek <jakub@redhat.com>
15119
15120 PR tree-optimization/47967
15121 * ipa-cp.c (build_const_val): Return NULL instead of creating
15122 VIEW_CONVERT_EXPR for mismatching sizes.
15123 (ipcp_create_replace_map): Return NULL if build_const_val failed.
15124 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
15125 give up on versioning.
15126
ea868305
AM
151272011-03-05 Alan Modra <amodra@gmail.com>
15128
15129 PR target/47986
15130 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15131 full cmodel medium/large lo_sum + high addresses.
15132
bc6ce334
AK
151332011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15134
15135 * config/s390/s390.c (s390_decompose_address): Reject non-literal
15136 pool references in UNSPEC_LTREL_OFFSET.
15137
87e7b310
JH
151382011-03-04 Jan Hubicka <jh@suse.cz>
15139
15140 PR lto/47497
15141 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
15142 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
15143 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
15144 Add node pointers.
87e7b310
JH
15145 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
15146 cgraph_add_thunk): Add node pointers.
15147 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
15148 associated to right node.
15149 (input_node): Update use of cgraph_same_body_alias
15150 and cgraph_add_thunk.
15151
d9c64246
CF
151522011-03-04 Changpeng Fang <changpeng.fang@amd.com>
15153
15154 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
15155 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
15156 modes when the flag -mprefer-avx128 is on.
d9c64246 15157
08707076
RS
151582011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
15159
15160 * dwarf2out.c (compare_loc_operands): Fix address handling.
15161
52517c81
AM
151622011-03-04 Alan Modra <amodra@gmail.com>
15163
15164 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
15165
b147c5b9
RG
151662011-03-04 Richard Guenther <rguenther@suse.de>
15167
15168 PR middle-end/47968
15169 * expmed.c (extract_bit_field_1): Prefer vector modes that
15170 vec_extract patterns can handle.
15171
8750672f
RG
151722011-03-04 Richard Guenther <rguenther@suse.de>
15173
15174 PR middle-end/47975
15175 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
15176
9eac0f2a
RH
151772011-03-04 Richard Henderson <rth@redhat.com>
15178
15179 * explow.c (emit_stack_save): Remove 'after' parameter.
15180 (emit_stack_restore): Likewise.
15181 * expr.h: Update to match.
15182 * builtins.c, calls.c, stmt.c: Likewise.
15183 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
15184 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
15185 * function.c (expand_function_end): Insert the emit_stack_save
15186 sequence before parm_birth_insn instead of after.
15187
dfee1406
UB
151882011-03-03 Uros Bizjak <ubizjak@gmail.com>
15189
15190 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
15191 (ssse3_pmaddubsw128): Ditto.
15192 (ssse3_pmaddubsw): Ditto.
15193
f1d4c3de
SE
151942011-03-03 Steve Ellcey <sje@cup.hp.com>
15195
15196 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
15197
71f3a3f5
JJ
151982011-03-03 Jakub Jelinek <jakub@redhat.com>
15199
423ed416
JJ
15200 PR c/47963
15201 * gimplify.c (omp_add_variable): Only call omp_notice_variable
15202 on TYPE_SIZE_UNIT if it is a DECL.
15203
71f3a3f5
JJ
15204 PR debug/47283
15205 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
15206 first operand is not is_gimple_mem_ref_addr, try to fold it.
15207 If the operand still isn't is_gimple_mem_ref_addr, clear
15208 MEM_EXPR on op0.
15209
4b1a5c0d
RG
152102011-03-03 Richard Guenther <rguenther@suse.de>
15211
15212 PR middle-end/47283
15213 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
15214 match comment.
15215 (refs_may_alias_p_1): For release branches return true if
15216 we are confused by our input.
15217
b46616fd
AK
152182011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15219
15220 * config/s390/s390.c (s390_function_value): Rename to ...
15221 (s390_function_and_libcall_value): ... this.
15222 (s390_function_value): New function.
15223 (s390_libcall_value): New function.
dfee1406 15224 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
15225 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
15226 target macro definitions.
15227 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
15228
46d8fabb
JM
152292011-03-02 Joseph Myers <joseph@codesourcery.com>
15230
15231 * config/i386/freebsd64.h (CC1_SPEC): Define.
15232 * config/i386/linux64.h (CC1_SPEC): Define.
15233 * config/i386/x86-64.h (CC1_SPEC): Don't define.
15234
6b1ce545
AS
152352011-03-02 Anatoly Sokolov <aesok@post.ru>
15236
15237 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15238 Remove.
15239 * config/stormy16/stormy16.c: Include reload.h.
15240 (xstormy16_memory_move_cost): New function.
15241 (TARGET_MEMORY_MOVE_COST): Define.
15242
34161e98
RS
152432011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
15244
15245 PR rtl-optimization/47925
15246 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
15247 with side effects. Remove the more-specific check for volatile asms.
15248
f60a97cf
AM
152492011-03-02 Alan Modra <amodra@gmail.com>
15250
15251 PR target/47935
15252 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
15253 toc relative addresses for valid offsets.
15254
f2ca11ca
RG
152552011-03-01 Richard Guenther <rguenther@suse.de>
15256
15257 PR tree-optimization/47890
15258 * tree-vect-loop.c (get_initial_def_for_induction): Set
15259 related stmt properly.
15260
7a00d9ea
RG
152612011-03-01 Richard Guenther <rguenther@suse.de>
15262
15263 PR lto/47924
15264 * lto-streamer.c (lto_record_common_node): Also register
15265 the canonical type.
15266
06c7edcc
RG
152672011-03-01 Richard Guenther <rguenther@suse.de>
15268
15269 PR lto/46911
15270 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15271 Do not stream DECL_ABSTRACT_ORIGIN.
15272 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15273 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15274 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15275 Do not stream DECL_ABSTRACT_ORIGIN.
15276 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
15277 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
15278
998871e9
AS
152792011-02-28 Anatoly Sokolov <aesok@post.ru>
15280
15281 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
15282 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 15283 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
15284 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
15285 Add 'outgoing' argument.
15286 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
15287 function.
15288 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15289 TARGET_FUNCTION_VALUE_REGNO_P): Define.
15290
94369251
KT
152912011-02-28 Kai Tietz <kai.tietz@onevision.com>
15292
15293 PR debug/28047
15294 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
15295 (lookup_filename): Likewise.
b2e2ea67 15296 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 15297
80a832cd
JJ
152982011-02-28 Bernd Schmidt <bernds@codesourcery.com>
15299 Jakub Jelinek <jakub@redhat.com>
15300
15301 PR middle-end/47893
15302 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
15303 (assign_stack_local_1): Change last argument type to int.
15304 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
15305 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 15306 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
15307 (assign_stack_local): Adjust caller.
15308 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
15309 of assign_stack_local, pass 0 as last argument.
15310 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
15311 callers.
15312
1b500976
JJ
153132011-02-28 Jakub Jelinek <jakub@redhat.com>
15314
f61c6f34
JJ
15315 PR debug/47283
15316 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
15317 Use target address_mode and pointer_mode hooks instead of hardcoded
15318 Pmode and ptr_mode. Handle some simple cases of extending if
15319 POINTERS_EXTEND_UNSIGNED < 0.
15320 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
15321 Call convert_debug_memory_address.
15322 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
15323 convert_debug_memory_address.
15324
1b500976
JJ
15325 PR middle-end/46790
15326 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
15327 * configure: Regenerated.
15328 * config.in: Regenerated.
15329 * varasm.c (default_function_section): Return NULL
b2e2ea67 15330 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 15331
2f2935b6
MJ
153322011-02-28 Martin Jambor <mjambor@suse.cz>
15333
15334 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
15335 the description to match the printed values.
15336
474086eb
RG
153372011-02-28 Richard Guenther <rguenther@suse.de>
15338
15339 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
15340 of the copied scope tree.
15341
15bf6f3a
RW
153422011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15343
15344 * doc/extend.texi (Function Attributes): Avoid deeply (and
15345 wrongly) nested tables.
15346
f6b439c9
JJ
153472011-02-27 Jakub Jelinek <jakub@redhat.com>
15348
15349 PR middle-end/47903
15350 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
15351 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
15352 r isn't op0 nor op1.
15353
1d8ca2c7
GJL
153542011-02-23 Georg-Johann Lay <avr@gjlay.de>
15355
15356 * config/avr/avr.md: Remove magic comment for emacs.
15357
593fca4b
GJL
153582011-02-23 Georg-Johann Lay <avr@gjlay.de>
15359
15360 PR target/45261
15361 * config/avr/avr.c (avr_option_override): Use error on bad options.
15362 (avr_help): New function.
15363 (TARGET_HELP): Define.
15364
6609216e
GJL
153652011-02-22 Georg-Johann Lay <avr@gjlay.de>
15366
15367 PR target/42240
15368 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
15369 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
15370
03d458af
GP
153712011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
15372
15373 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
15374 (ARM Options): Ditto.
15375 (i386 and x86-64 Options): Ditto.
15376 (RX Options): Ditto.
15377 (SPARC Options): Ditto.
15378
1c379b78
TC
153792011-02-26 Tijl Coosemans <tijl@coosemans.org>
15380
15381 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
15382 FreeBSD 6 and later. Generally use cpu generic.
15383
d5ed058c 153842011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 15385
d5ed058c
GP
15386 * doc/cpp.texi: Update copyright years.
15387
509d65dd 153882011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 15389
509d65dd 15390 PR target/46898
308d39cd
SB
15391 * config/lm32/lm32.md (ashrsi3): Added needed variable.
15392
509d65dd 153932011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 15394
509d65dd 15395 PR target/46898
308d39cd
SB
15396 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
15397 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
15398 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
15399 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 15400 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
15401 (gen_int_relational): Move declarations to start of function.
15402
822ba6d7
EB
154032011-02-25 Eric Botcazou <ebotcazou@adacore.com>
15404
15405 PR tree-optimization/45470
15406 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
15407 can throw internally only.
15408 * tree-vect-stmts.c (vectorizable_call): Likewise.
15409
ef795fc2
AS
154102011-02-24 Anatoly Sokolov <aesok@post.ru>
15411
15412 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
15413 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
15414 * config/stormy16/stormy16-protos.h
15415 (xstormy16_preferred_reload_class): Remove.
15416 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
15417 static. Change 'rclass' argument and return type to reg_class_t.
15418 (TARGET_PREFERRED_RELOAD_CLASS,
15419 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
15420
1c3277ee
RG
154212011-02-24 Richard Guenther <rguenther@suse.de>
15422
15423 * lto-streamer-in.c (input_bb): Do not find referenced vars
15424 in debug statements.
15425
67e18edb
JM
154262011-02-23 Jason Merrill <jason@redhat.com>
15427
15428 * common.opt (fabi-version): Document v5 and v6.
15429
b14fad9d
RG
154302011-02-23 Richard Guenther <rguenther@suse.de>
15431
15432 PR tree-optimization/47849
15433 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
15434
7fcf46f5
JZ
154352011-02-23 Jie Zhang <jie@codesourcery.com>
15436
15437 * opts-common.c (decode_cmdline_option): Print empty string
15438 argument as "" in decoded->orig_option_with_args_text.
15439 * gcc.c (execute): Print empty string argument as ""
15440 in the verbose output.
15441 (do_spec_1): Keep empty string argument.
15442
f85b70fd
NF
154432011-02-23 Nathan Froyd <froydnj@codesourcery.com>
15444
15445 * config.gcc: Declare score-* and crx-* obsolete.
15446
b152a615
JZ
154472011-02-23 Jie Zhang <jie@codesourcery.com>
15448
15449 PR rtl-optimization/47763
15450 * web.c (web_main): Ignore naked clobber when replacing register.
15451
bb6e77bc
AS
154522011-02-22 Anatoly Sokolov <aesok@post.ru>
15453
15454 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15455 Remove.
15456
68bf6491
SP
154572011-02-22 Sebastian Pop <sebastian.pop@amd.com>
15458
15459 PR doc/47848
15460 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
15461
88ee1fc7
MS
154622011-02-22 Mike Stump <mikestump@comcast.net>
15463
15464 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
15465 assembler.
15466 * configure: Regenerate.
15467
6042d1dd
CLT
154682011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
15469
15470 PR rtl-optimization/46002
15471 * ira-color.c (update_copy_costs): Change class intersection
15472 test to reg_class_contents[] test of 'hard_regno'.
15473
7de97f9e
JM
154742011-02-21 Joseph Myers <joseph@codesourcery.com>
15475
15476 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
15477 than Driver option.
15478 * config/hpux11.opt (mt): Likewise.
15479 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
15480 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
15481 * config/vax/elf.opt (mno-asm-pic): Likewise.
15482 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
15483
d1d46f9f
MS
154842011-02-21 Mike Stump <mikestump@comcast.net>
15485
15486 PR target/47822
15487 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
15488 tree so we can get save the type.
15489 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
15490 for CFString instead of trying to use past the end of the builtins.
15491 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
15492 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
15493 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
15494 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
15495 Rename to darwin_builtin_cfstring.
15496 (darwin_init_cfstring_builtins): Return the built type.
15497
23e0d930
UB
154982011-02-21 Uros Bizjak <ubizjak@gmail.com>
15499
15500 PR target/47840
15501 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
15502 (_mm256_insert_epi64): Use _mm_insert_epi64.
15503
192997cf
AS
155042011-02-21 Anatoly Sokolov <aesok@post.ru>
15505
15506 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15507 * config/stormy16/stormy16-protos.h
15508 (xstormy16_mode_dependent_address_p): Remove.
15509 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
15510 Make static. Change return type to bool. Change argument type to
15511 const_rtx. Remove dead code.
15512 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15513
e292d003
RG
155142011-02-21 Richard Guenther <rguenther@suse.de>
15515
15516 PR lto/47820
15517 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
15518 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15519 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
15520 TUs context.
23e0d930 15521 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
15522 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
15523
77f846e9
RG
155242011-02-20 Richard Guenther <rguenther@suse.de>
15525
15526 PR lto/47822
15527 * tree.c (free_lang_data_in_decl): Clean builtins from
15528 the TU decl BLOCK_VARS.
23e0d930 15529
b2cddfc8
AO
155302011-02-19 Alexandre Oliva <aoliva@redhat.com>
15531
15532 PR debug/47620
15533 PR debug/47630
15534 * haifa-sched.c (fix_tick_ready): Skip tick computation
15535 for debug insns.
15536
becf4c11
RG
155372011-02-19 Richard Guenther <rguenther@suse.de>
15538
15539 PR lto/47647
15540 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
15541 Remove lazy BLOCK_VARS streaming.
15542 (lto_input_ts_block_tree_pointers): Likewise.
15543 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
15544
27f98305
JM
155452011-02-19 Joseph Myers <joseph@codesourcery.com>
15546
15547 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
15548
064bf3f4
JM
155492011-02-19 Joseph Myers <joseph@codesourcery.com>
15550
15551 * config/i386/biarch32.h, config/i386/mach.h,
15552 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
15553
9215ddc3
JJ
155542011-02-19 Jakub Jelinek <jakub@redhat.com>
15555
15556 PR target/47800
15557 * config/i386/i386.md (peephole2 for shift and plus): Use
15558 operands[1] original mode in the first insn.
15559
8b021004
MS
155602011-02-18 Mike Stump <mikestump@comcast.net>
15561
65ded153 15562 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 15563
f84ae14c
JH
155642011-02-18 Jan Hubicka <jh@suse.cz>
15565
15566 PR middle-end/47788
65ded153
EB
15567 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
15568 to zero when the function is not inlinable at all.
f84ae14c 15569
eddabc80
JDA
155702011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15571
15572 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
15573 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15574 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
15575 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
15576 * config/pa/t-pa64: Likewise.
15577 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
15578
ca3da783
JJ
155792011-02-18 Jakub Jelinek <jakub@redhat.com>
15580
15581 PR driver/47787
15582 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
15583
430aa868
JDA
155842011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15585
15586 PR target/47792
15587 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
15588
4bf7ff7e
AS
155892011-02-18 Anatoly Sokolov <aesok@post.ru>
15590
15591 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
15592 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
15593 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
15594 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15595 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
15596 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
15597 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
15598 m32r_load_postinc_p, m32r_store_preinc_predec_p,
15599 m32r_legitimate_address_p): New functions.
15600 * config/m32r/constraints.md (constraint "S"): Don't use
15601 STORE_PREINC_PREDEC_P.
15602 (constraint "U"): Don't use LOAD_POSTINC_P.
15603
7efcf910
CLT
156042011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
15605
15606 PR rtl-optimization/46178
15607 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
15608 compute ira_hard_regno_cover_class[].
15609
237d6259
RG
156102011-02-18 Richard Guenther <rguenther@suse.de>
15611
15612 PR lto/47798
15613 * lto-streamer.h (lto_global_var_decls): Declare.
15614 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
15615 statics for global var processing.
15616
12d80acc
RG
156172011-02-18 Richard Guenther <rguenther@suse.de>
15618
15619 PR tree-optimization/47737
15620 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
15621 edge dominance check.
15622
abfea58d
JJ
156232011-02-18 Jakub Jelinek <jakub@redhat.com>
15624
15625 PR debug/47780
15626 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
15627 avoid invalid rtx sharing.
15628
f73c8882
GP
156292011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
15630
15631 * doc/cpp.texi (Obsolete Features): Add background on the
15632 origin of assertions.
15633
d764a8e6
IS
156342011-02-17 Iain Sandoe <iains@gcc.gnu.org>
15635
15636 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 15637 objc_abi == 2.
d764a8e6
IS
15638 * config/darwin.c (output_objc_section_asm_op): Added support for
15639 ABI v1 and v2.
15640 (is_objc_metadata): New.
15641 (darwin_objc2_section): New.
15642 (darwin_objc1_section): New.
15643 (machopic_select_section): Added support for ABI v1 and v2.
15644 (darwin_emit_objc_zeroed): New.
15645 (darwin_output_aligned_bss): Detect objc metadata and treat it
15646 appropriately.
15647 (darwin_asm_output_aligned_decl_common): Same.
15648 (darwin_asm_output_aligned_decl_local): Same.
15649 * config/darwin-sections.def: Updated for ABI v1 and v2.
15650 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
15651 compiling Objective-C code for the NeXT runtime, default to using
15652 ABI version 0 for 32-bit, and version 2 for 64-bit.
15653
0a8134ca
JM
156542011-02-17 Joseph Myers <joseph@codesourcery.com>
15655
15656 * common.opt (optimize_fast): New Variable.
15657 * opts.c (default_options_optimization): Use opts->x_optimize_fast
15658 instead of local variable ofast.
15659
0a256240
NP
156602011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
15661
15662 * doc/invoke.texi (fobjc-abi-version): Documented.
15663 (fobjc-nilcheck): Documented.
15664 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
15665 version.
15666
fa381cb2
JM
156672011-02-17 Joseph Myers <joseph@codesourcery.com>
15668
15669 PR driver/47390
15670 * common.opt (export-dynamic): New Driver option.
15671 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
15672
5437eaa6
JM
156732011-02-17 Joseph Myers <joseph@codesourcery.com>
15674
15675 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
15676
bb7e6d55
AO
156772011-02-17 Alexandre Oliva <aoliva@redhat.com>
15678 Jan Hubicka <jh@suse.cz>
15679
15680 PR debug/47106
15681 PR debug/47402
15682 * cfgexpand.c (account_used_vars_for_block): Remove.
15683 (estimated_stack_frame_size): Use referenced vars.
15684 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
15685 that were referenced in the original function. Test src_fn
15686 rather than cfun. Drop redundant get_var_ann.
15687 (setup_one_parameter): Drop redundant get_var_ann.
15688 (declare_return_variable): Likewise.
15689 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
15690 (copy_arguments_for_versioning): Drop redundant get_var_ann.
15691 * ipa-inline.c (compute_inline_parameters): Do not compute
15692 disregard_inline_limits here.
bb7e6d55
AO
15693 (compute_inlinable_for_current, pass_inlinable): New.
15694 (pass_inline_parameters): Require PROP_referenced_vars.
15695 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 15696 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
15697 (cgraph_analyze_function): Set .disregard_inline_limits.
15698 * tree-sra.c (convert_callers): Compute inliner parameters
15699 only for functions already in SSA form.
15700
f181a8a7
JM
157012011-02-17 Joseph Myers <joseph@codesourcery.com>
15702
15703 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
15704 -mlittle-endian-data.
15705
c6869789
JM
157062011-02-17 Joseph Myers <joseph@codesourcery.com>
15707
15708 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
15709 -mno-fpu, not -fpu and -no-fpu.
15710 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
15711 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
15712
fbf4bfd3
UB
157132011-02-17 Uros Bizjak <ubizjak@gmail.com>
15714
15715 PR target/43653
15716 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
15717 input reload with PLUS RTX.
15718
70be5dc7
JM
157192011-02-16 Joseph Myers <joseph@codesourcery.com>
15720
15721 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
15722 of InverseVar(MDMX).
15723
30b1646e
JM
157242011-02-16 Joseph Myers <joseph@codesourcery.com>
15725
15726 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
15727 --m4-340.
15728
ab7b71e9
JM
157292011-02-16 Joseph Myers <joseph@codesourcery.com>
15730
15731 * config/mn10300/mn10300.opt (mno-crt0): New.
15732
466f3f08
JM
157332011-02-16 Joseph Myers <joseph@codesourcery.com>
15734
15735 * config/m68k/uclinux.opt (static-libc): New Driver option.
15736
8226cd7b
JM
157372011-02-16 Joseph Myers <joseph@codesourcery.com>
15738
15739 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
15740
45cab1d7
JM
157412011-02-16 Joseph Myers <joseph@codesourcery.com>
15742
15743 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
15744 %{muser-extend-enabled}.
15745
65aab64f
RG
157462011-02-16 Richard Guenther <rguenther@suse.de>
15747
15748 PR tree-optimization/47738
15749 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
15750 the TODO from tree_predictive_commoning.
15751
fc2fa4fb
JL
157522011-02-15 Jeff Law <law@redhat.com>
15753
15754 Revert
15755 2011-01-25 Jeff Law <law@redhat.com>
15756
15757 PR rtl-optimization/37273
15758 * ira-costs.c (scan_one_insn): Detect constants living in memory and
15759 handle them like argument loads from stack slots. Do not double
15760 count memory for memory constants and argument loads from stack slots.
15761
4e380b8e
L
157622011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15763
15764 PR middle-end/47725
15765 * combine.c (cant_combine_insn_p): Revert the last change.
15766
e3a69bb4
MM
157672011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
15768
15769 PR target/47755
15770 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
15771 mode for vector constants. Remove code that checks for TImode.
15772
de650422
AO
157732011-02-15 Alexandre Oliva <aoliva@redhat.com>
15774
15775 PR debug/47106
15776 PR debug/47402
15777 * cgraph.h (compute_inline_parameters): Return void.
15778 * ipa-inline.c (compute_inline_parameters): Adjust.
15779
30925d94
AO
157802011-02-15 Alexandre Oliva <aoliva@redhat.com>
15781
15782 PR debug/47106
15783 PR debug/47402
15784 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
15785 rather than decl.
15786 * cfgexpand.c (estimated_stack_frame_size): Likewise.
15787 * ipa-inline.c (compute_inline_parameters): Adjust.
15788
1b9a784a
AO
157892011-02-15 Alexandre Oliva <aoliva@redhat.com>
15790
15791 PR debug/47106
15792 PR debug/47402
15793 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
15794 Adjust all users. Pass FN to...
15795 * tree-flow-inline.h (first_referenced_var): ... this. Add
15796 fn argument.
15797 * ipa-struct-reorg.c: Adjust.
15798 * tree-dfa.c: Adjust.
15799 * tree-into-ssa.c: Adjust.
15800 * tree-sra.c: Adjust.
15801 * tree-ssa-alias.c: Adjust.
15802 * tree-ssa-live.c: Adjust.
15803 * tree-ssa.c: Adjust.
15804 * tree-ssanames.c: Adjust.
15805 * tree-tailcall.c: Adjust.
15806
27c6b086
AO
158072011-02-15 Alexandre Oliva <aoliva@redhat.com>
15808
15809 PR debug/47106
15810 PR debug/47402
15811 * tree-flow.h (referenced_var_lookup): Add fn parameter.
15812 Adjust all callers.
15813 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
15814 * tree-flow-inline.h: Adjust.
15815 * gimple-pretty-print.c: Adjust.
15816 * tree-into-ssa.c: Adjust.
15817 * tree-ssa.c: Adjust.
15818 * cfgexpand.c: Adjust.
15819
679e8183
NF
158202011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15821
fbf4bfd3
UB
15822 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
15823 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15824 (EXTRA_CONSTRAINT): Delete.
15825 * config/iq2000/constraints.md: New file.
15826 * config/iq2000/iq2000.md: Include it.
679e8183
NF
15827 (define_insn ""): Delete.
15828 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
15829 unsupported constraint letters from patterns.
15830 (call_value, call_value_internal1): Likewise.
15831 (call_value_multiple_internal1): Likewise.
15832
a45d420a
NC
158332011-02-15 Nick Clifton <nickc@redhat.com>
15834
15835 * config/mn10300/mn10300.c: Include tm-constrs.h.
15836 (struct liw_data): New data structure describing an LIW candidate
15837 instruction.
15838 (extract_bundle): Use struct liw_data. Allow small integer
15839 operands for some instructions.
15840 (check_liw_constraints): Use struct liw_data. Remove swapped
15841 parameter. Add comments describing the checks. Fix bug when
15842 assigning the source of liw1 to the source of liw2.
15843 (liw_candidate): Delete. Code moved into extract_bundle.
15844 (mn10300_bundle_liw): Use struct liw_data. Check constraints
15845 before swapping.
15846 * config/mn10300/predicates.md (liw_operand): New predicate.
15847 Allows registers and small integer constants.
15848 * config/mn10300/constraints.md (O): New constraint. Accetps
15849 integers in the range -8 to +7 inclusive.
15850 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
15851 for moving a small integer into a register. Give this alternative
15852 LIW attributes.
15853 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
15854 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
15855 using the J,K,L and M constraints,
15856 (liw): Remove SI mode on second operands to allow for HI and QI
15857 mode values.
15858 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
15859 instruction.
15860
8a73faf1
L
158612011-02-15 H.J. Lu <hongjiu.lu@intel.com>
15862
15863 PR middle-end/47725
15864 * combine.c (cant_combine_insn_p): Check zero/sign extended
15865 hard registers.
15866
48feba28
RG
158672011-02-15 Richard Guenther <rguenther@suse.de>
15868
15869 PR tree-optimization/47743
15870 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
15871 for a non-type-compatible VN lookup bail out.
15872
ad1c1eeb
NF
158732011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15874
15875 * config/fr30/constraints.md: New file.
15876 * config/fr30/fr30.md: Include it.
15877 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
15878 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15879 (EXTRA_CONSTRAINT): Delete.
15880
49ac143d
NF
158812011-02-15 Nathan Froyd <froydnj@codesourcery.com>
15882
15883 * config/frv/constraints.md: New file.
15884 * config/frv/predicates.md: Include it.
15885 * config/frv/frv.c (reg_class_from_letter): Delete.
15886 (frv_option_override): Don't initialize it.
15887 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
15888 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
15889 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
15890 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
15891 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
15892 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15893 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
15894 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
15895 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
15896 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
15897 (REG_CLASS_FROM_CONSTRAINT): Delete.
15898
c95f9494
JJ
158992011-02-15 Jakub Jelinek <jakub@redhat.com>
15900
15901 PR middle-end/47581
15902 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
15903 if frame size is 0 in a leaf function.
15904
13aed611
RO
159052011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15906
15907 PR pch/14940
15908 * config/alpha/host-osf.c: New file.
15909 * config/alpha/x-osf: New file.
15910 * config.host (alpha*-dec-osf*): Use it.
15911
b09c3081
AS
159122011-02-14 Anatoly Sokolov <aesok@post.ru>
15913
15914 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15915 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
15916 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
15917 (rx_mode_dependent_address_p): ...this. Make static. Change argument
15918 type to const_rtx.
15919 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15920
d634083b
NF
159212011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15922
15923 * config/stormy16/constraints.md: New file.
15924 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
15925 Use satisfies_constraint_Q and satisfies_constraint_R.
15926 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
15927 Delete.
15928 (xstormy16_legitiamte_address_p): Declare.
15929 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
15930 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15931 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 15932 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
15933 Un-staticize.
15934 (xstormy16_extra_constraint_p): Delete.
15935
c7dd803e
EB
159362011-02-14 Eric Botcazou <ebotcazou@adacore.com>
15937
15938 PR tree-optimization/46494
15939 * loop-unroll.c (split_edge_and_insert): Adjust comment.
15940 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
15941 (pass_rtl_loop_done): Add TODO_verify_flow.
15942 * fwprop.c (pass_rtl_fwprop): Likewise.
15943 * modulo-sched.c (pass_sms): Likewise.
15944 * tree-ssa-dom.c (pass_dominator): Likewise.
15945 * tree-ssa-loop-ch.c (pass_ch): Likewise.
15946 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
15947 (pass_tree_loop_done): Likewise.
15948 * tree-ssa-pre.c (execute_pre): Likewise.
15949 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
15950 * tree-ssa-sink.c (pass_sink_code): Likewise.
15951 * tree-vrp.c (pass_vrp): Likewise.
15952
c6150df6
NF
159532011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15954
c7dd803e
EB
15955 * config/v850/constraints.md: New file.
15956 * config/v850/v850.md: Include it.
15957 * config/v850/predicates.md (reg_or_0_operand): Use
15958 satisfies_constraint_G.
15959 (special_symbolref_operand): Use satisfies_constraint_K.
15960 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
15961 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
15962 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
15963 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
15964 (EXTRA_CONSTRAINT): Delete.
15965 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
15966 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
15967 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 15968
30dd1ea3
AS
159692011-02-14 Anatoly Sokolov <aesok@post.ru>
15970
15971 PR target/47696
15972 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
15973 description.
15974
944f4bb3
NF
159752011-02-14 Nathan Froyd <froydnj@codesourcery.com>
15976
15977 * config/mcore/constraints.md: New file.
15978 * config/mcore/mcore.md: Include it.
15979 * config/mcore/mcore.c (reg_class_from_letter): Delete.
15980 * config/mcore/mcore.h (reg_class_from_letter): Delete.
15981 (REG_CLASS_FROM_LETTER): Delete.
15982 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
15983 insn_const_int_ok_for_constraint.
15984 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
15985 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
15986 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15987 (EXTRA_CONSTRAINT): Delete.
15988
ad56a54c
RO
159892011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15990
15991 PR ada/41929
15992 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
15993 (IS_SIGHANDLER): Define.
15994 (sparc64_is_sighandler): New function, split off from
15995 sparc64_fallback_frame_state.
15996 (sparc_is_sighandler): New function, split off from
15997 sparc_fallback_frame_state.
15998 (sparc64_fallback_frame_state): Merge with ...
15999 (sparc_fallback_frame_state): ... this into ...
16000 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
16001 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
16002 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
16003 stack instead of hardcoded offsets.
ad56a54c 16004
fbf4bfd3 160052011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
16006
16007 PR target/45808
16008 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
16009
029c8f3e
RW
160102011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16011
16012 * configure: Regenerate.
16013
a016dc83
JM
160142011-02-12 Joseph Myers <joseph@codesourcery.com>
16015
16016 PR driver/45731
16017 * gcc.c (asm_options): Correct spec matching --target-help.
16018
8957a0ec
MJ
160192011-02-12 Martin Jambor <mjambor@suse.cz>
16020
16021 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
16022 to gimple call error.
16023
6ef828bc
MS
160242011-02-12 Mike Stump <mikestump@comcast.net>
16025
16026 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
16027 comments in backslash regions.
16028
a4015be5
MS
160292011-02-12 Mike Stump <mikestump@comcast.net>
16030 Jakub Jelinek <jakub@redhat.com>
16031 Iain Sandoe <iains@gcc.gnu.org>
16032
16033 PR target/47324
16034 * dwarf2out.c (output_cfa_loc): When required, apply the
16035 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
16036 (output_loc_sequence): Likewise.
16037 (output_loc_operands_raw): Likewise.
16038 (output_loc_sequence_raw): Likewise.
16039 (output_cfa_loc): Likewise.
16040 (output_loc_list): Suppress register number adjustment when
16041 calling output_loc_sequence()
16042 (output_die): Likewise.
16043
5378dda2
AS
160442011-02-12 Anatoly Sokolov <aesok@post.ru>
16045
16046 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16047 Remove macros.
16048 * config/xtensa/xtensa.c (xtensa_register_move_cost,
16049 xtensa_memory_move_cost): New functions.
16050 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
16051
f3d533d3
AO
160522011-02-12 Alexandre Oliva <aoliva@redhat.com>
16053
16054 PR lto/47225
16055 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
16056 in the current directory.
16057 * configure: Rebuilt.
16058
9d53403c
IS
160592011-02-12 Iain Sandoe <iains@gcc.gnu.org>
16060
16061 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 16062 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
16063 correct indents of the preceding block.
16064
a350a6c8
IS
160652011-02-12 Iain Sandoe <iains@gcc.gnu.org>
16066
16067 * gcc.c (driver_handle_option): Concatenate the argument to -F with
16068 the switch.
16069
bab79a40
JM
160702011-02-11 Joseph Myers <joseph@codesourcery.com>
16071
16072 * common.opt (nostartfiles): New Driver option.
16073
1bbc6693
XDL
160742011-02-11 Xinliang David Li <davidxl@google.com>
16075
16076 PR tree-optimization/47707
16077 * tree-chrec.c (convert_affine_scev): Keep type precision.
16078
1da7d8c0
EB
160792011-02-11 Eric Botcazou <ebotcazou@adacore.com>
16080
16081 PR tree-optimization/47420
16082 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
16083
160842011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
16085
16086 PR rtl-optimization/47614
16087 * rtl.h (check_for_inc_dec): Declare.
16088 * dse.c (check_for_inc_dec): Externalize...
16089 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
16090 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
16091
4df47bca
JM
160922011-02-11 Joseph Myers <joseph@codesourcery.com>
16093
16094 PR driver/47678
16095 * gcc.c (main): Do not compile inputs if there were errors in
16096 option handling.
16097 * opts-common.c (read_cmdline_option): Check for wrong language
16098 after other error checks.
16099
61502ca8
NF
161002011-02-11 Nathan Froyd <froydnj@codesourcery.com>
16101
16102 * cgraph.c: Fix comment typos.
16103 * cgraph.h: Likewise.
16104 * cgraphunit.c: Likewise.
16105 * ipa-cp.c: Likewise.
16106 * ipa-inline.c: Likewise.
16107 * ipa-prop.c: Likewise.
16108 * ipa-pure-const.c: Likewise.
16109 * ipa-ref.c: Likewise.
16110 * ipa-reference.c: Likewise.
16111
b63f974e
JJ
161122011-02-11 Jakub Jelinek <jakub@redhat.com>
16113
d50c5e0c
JJ
16114 PR debug/47684
16115 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 16116
6dd2a13c
RO
161172011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16118
16119 PR testsuite/47400
16120 * doc/sourcebuild.texi (Require Support): Document
16121 dg-require-ascii-locale.
16122
4a087ccf
MX
161232011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
16124
16125 * doc/lto.texi (Write summary): Fix missing parentheses.
16126
a4403164
DD
161272011-02-10 DJ Delorie <dj@redhat.com>
16128
16129 * config/m32c/m32c.c (m32c_option_override): Disable
16130 -fcombine-stack-adjustments until flag value tracking and compare
16131 optimization can be rewritten.
16132
4fac45bd
PB
161332011-02-10 Peter Bergner <bergner@vnet.ibm.com>
16134
16135 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
16136 PROCESSOR_POWER7.
16137 (PROCESSOR_DEFAULT64): Likewise.
16138
72602cd1
RH
161392011-02-10 Richard Henderson <rth@redhat.com>
16140
16141 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
16142 change from 2011-02-03.
16143 * config/rx/rx.c (flags_from_code): Likewise.
16144 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
16145 is valid, n/pz otherwise.
16146 (rx_select_cc_mode): Return CCmode if Y is not zero.
16147
ea57f573
RG
161482011-02-10 Richard Guenther <rguenther@suse.de>
16149
ea4c3e65 16150 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 16151
92b1d23b
RG
161522011-02-10 Richard Guenther <rguenther@suse.de>
16153
16154 PR tree-optimization/47677
16155 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
16156
525a2d06
JJ
161572011-02-10 Jakub Jelinek <jakub@redhat.com>
16158
16159 PR target/47665
16160 * combine.c (make_compound_operation): Only change shifts into
16161 multiplication for SCALAR_INT_MODE_P.
16162
06c969bd
JZ
161632011-02-10 Jie Zhang <jie@codesourcery.com>
16164
16165 PR testsuite/47622
16166 Revert
16167 2011-02-05 Jie Zhang <jie@codesourcery.com>
16168 PR debug/42631
16169 * web.c (entry_register): Don't clobber the number of the
16170 first uninitialized reference in used[].
16171
282ec48e
RG
161722011-02-09 Richard Guenther <rguenther@suse.de>
16173
16174 PR tree-optimization/47664
16175 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
16176 all edges again.
16177
df98c3e8
DE
161782011-02-09 David Edelsohn <dje.gcc@gmail.com>
16179
d0f21cd6
DE
16180 PR target/46481
16181 PR target/47032
df98c3e8
DE
16182 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
16183 PROCESSOR_POWER7.
16184 (PROCESSOR_DEFAULT64): Same.
16185 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
16186
67b6839f
RO
161872011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16188
16189 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
16190
4fd73214
MJ
161912011-02-09 Martin Jambor <mjambor@suse.cz>
16192
16193 PR middle-end/45505
16194 * tree-sra.c (struct access): New flags grp_scalar_read and
16195 grp_scalar_write. Changed description of assignment read and write
16196 flags.
16197 (dump_access): Dump new flags, reorder all of them.
16198 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
16199 to detect multiple scalar reads.
16200 (analyze_access_subtree): Use the new scalar read write flags instead
16201 of the old flags. Adjusted comments.
16202
91140cd3
DD
162032011-02-08 DJ Delorie <dj@redhat.com>
16204
16205 PR target/47548
16206 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
16207 patterns.
16208
4254bbfe
JM
162092011-02-08 Joseph Myers <joseph@codesourcery.com>
16210
16211 * config/m68k/uclinux.opt: New.
16212 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
16213
f1fda84e
JM
162142011-02-08 Joseph Myers <joseph@codesourcery.com>
16215
16216 * config/cris/elf.opt (sim): New Driver option.
16217
4933ae74
JM
162182011-02-08 Joseph Myers <joseph@codesourcery.com>
16219
16220 * config/xtensa/elf.opt: New.
16221 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
16222
4ad70280
JM
162232011-02-08 Joseph Myers <joseph@codesourcery.com>
16224
16225 * config/vax/elf.opt: New.
16226 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
16227
20893707
JM
162282011-02-08 Joseph Myers <joseph@codesourcery.com>
16229
16230 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
16231
b8e7038e
JM
162322011-02-08 Joseph Myers <joseph@codesourcery.com>
16233
16234 * config/gnu-user.opt: New.
16235 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
16236 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
16237 *-*-uclinux*): Use gnu-user.opt.
16238
e1c5225a
TS
162392011-02-08 Thomas Schwinge <thomas@schwinge.name>
16240
16241 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
16242 * config/i386/gnu.h (CPP_SPEC): Likewise.
16243
5e46b0c6
ILT
162442011-02-08 Ian Lance Taylor <iant@google.com>
16245
16246 * common.opt (fcx-limited-range): Add SetByCombined flag.
16247 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
16248 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
16249 (fassociative-math, freciprocal-math): Likewise.
16250 (funsafe-math-optimizations): Likewise.
16251 * opth-gen.awk: Handle SetByCombined.
16252 * optc-gen.awk: Likewise.
ea4c3e65 16253 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
16254 (set_unsafe_math_optimizations_flags): Likewise.
16255 * doc/options.texi (Option properties): Document SetByCombined.
16256
32243d46
JM
162572011-02-08 Joseph Myers <joseph@codesourcery.com>
16258
16259 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
16260 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
16261 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
16262 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
16263 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
16264
479c1fb3
SP
162652011-02-08 Sebastian Pop <sebastian.pop@amd.com>
16266
16267 PR tree-optimization/46834
16268 PR tree-optimization/46994
16269 PR tree-optimization/46995
16270 * graphite-sese-to-poly.c (used_outside_reduction): New.
16271 (detect_commutative_reduction): Call used_outside_reduction.
16272 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
16273 translate_scalar_reduction_to_array only when at least one
16274 loop-phi/close-phi tuple has been detected.
16275
3865a06f
RG
162762011-02-08 Richard Guenther <rguenther@suse.de>
16277
16278 PR middle-end/47639
16279 * tree-vect-generic.c (expand_vector_operations_1): Update
16280 stmts here ...
16281 (expand_vector_operations): ... not here. Cleanup EH info
16282 and the CFG if required.
16283
62902f3f
RG
162842011-02-08 Richard Guenther <rguenther@suse.de>
16285
16286 PR tree-optimization/47641
16287 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
16288 require type compatibility.
16289
0efb9d64
AK
162902011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16291
16292 * gimple-low.c (lower_function_body): Don't remove the location of
16293 the return statement here.
16294 (lower_gimple_return): Do it here instead but only if the return
16295 statement is actually used twice.
16296
034b8ae4
RG
162972011-02-08 Richard Guenther <rguenther@suse.de>
16298
16299 PR tree-optimization/47632
16300 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
16301 unused up_to_stmt parameter, return whether cfg-cleanup is
16302 necessary, remove EH info properly.
16303 (forward_propagate_into_gimple_cond): Adjust caller.
16304 (forward_propagate_into_cond): Likewise.
16305 (forward_propagate_comparison): Likewise.
16306 (tree_ssa_forward_propagate_single_use_vars): Make
16307 forward_propagate_comparison case similar to the two others.
16308
298362c8
NC
163092011-02-08 Nick Clifton <nickc@redhat.com>
16310
16311 * config/mn10300/mn10300.opt (mliw): New command line option.
16312 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
16313 (liw_bundling): New automaton.
16314 (liw): New attribute.
16315 (liw_op): New attribute.
16316 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
16317 (movsi_internal): Add LIW attributes.
16318 (andsi3): Likewise.
16319 (iorsi3): Likewise.
16320 (xorsi3): Likewise.
16321 (addsi3): Separate register and immediate alternatives.
16322 Add LIW attributes.
16323 (subsi3): Likewise.
16324 (cmpsi): Likewise.
16325 (aslsi3): Likewise.
16326 (lshrsi3): Likewise.
16327 (ashrsi3): Likewise.
16328 (liw): New pattern.
16329 * config/mn10300/mn10300.c (liw_op_names): New
16330 (mn10300_print_operand): Handle 'W' operand descriptor.
16331 (extract_bundle): New function.
16332 (check_liw_constraints): New function.
16333 (liw_candidate): New function.
16334 (mn10300_bundle_liw): New function.
16335 (mn10300_reorg): New function.
16336 (TARGET_MACHINE_DEPENDENT_REORG): Define.
16337 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
16338 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
16339 __LIW__ or __NO_LIW__.
16340 * doc/invoke.texi: Describe the -mliw command line option.
16341
90488014
JDA
163422011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16343
16344 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
16345 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16346 pthread_mutex_unlock): Remove.
16347 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
16348 * config/pa/t-pa64: Likewise.
16349 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
16350 shared libc if not linking against libpthread.
16351 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
16352
689ff841
IS
163532011-02-07 Iain Sandoe <iains@gcc.gnu.org>
16354
16355 PR target/47558
16356 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
16357 on 10.6 and later to ensure that we always use the unwinder from
16358 the system. Only add -no_compact_unwind when tarteting darwin
16359 10.6 or later.
16360
821014aa
SE
163612011-02-07 Steve Ellcey <sje@cup.hp.com>
16362
16363 PR target/46997
16364 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
16365 (vec_interleave_lowv2sf): Ditto.
16366 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
16367 (vec_extract_oddv2sf): Ditto.
16368
41cf94fb
MS
163692011-02-07 Mike Stump <mikestump@comcast.net>
16370
62dea57d 16371 PR target/42333
41cf94fb
MS
16372 Add __ieee_divdc3 entry point.
16373 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
16374 entry point.
16375 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
16376 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
16377 * config/darwin.c (darwin_rename_builtins): Add.
16378 * config/darwin-protos.h (darwin_rename_builtins): Add.
16379
ee09a3dd
MM
163802011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
16381
16382 PR target/47636
16383 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
16384 for the condition.
16385
83296cd0
MS
163862011-02-07 Mike Stump <mikestump@comcast.net>
16387
ea4c3e65 16388 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 16389
0f4e946f
DC
163902011-02-07 Denis Chertykov <chertykov@gmail.com>
16391
16392 PR target/47534
16393 * config/avr/libgcc.S (exit): Move .endfunc
16394
1ec87690
RG
163952011-02-07 Richard Guenther <rguenther@suse.de>
16396
16397 PR tree-optimization/47615
16398 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
16399 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
16400 (run_scc_vn): Initialize it.
16401 (visit_reference_op_load): Use it.
16402 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
16403
b46ae6da
UW
164042011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16405
16406 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
16407 DImode trapping arithmetic libfuncs.
16408
c0aae19c
RG
164092011-02-07 Richard Guenther <rguenther@suse.de>
16410
16411 PR tree-optimization/47621
16412 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
16413 two duplicates ...
16414 (execute_update_addresses_taken): ... here. Make it more
16415 conservative in what we accept.
16416
295d926b
JM
164172011-02-06 Joseph Myers <joseph@codesourcery.com>
16418
16419 * config/sparc/freebsd.h (ASM_SPEC): Define.
16420 * config/sparc/vxworks.h (ASM_SPEC): Define.
16421
bdeb2471
JM
164222011-02-06 Joseph Myers <joseph@codesourcery.com>
16423
16424 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
16425
d5d3781a
SB
164262011-02-06 Steven Bosscher <steven@gcc.gnu.org>
16427
16428 * doc/invoke.texi: Remove reference to compiler internals from
16429 user documentation.
16430
16431 * reg-notes.def: Remove REG_VALUE_PROFILE.
16432 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
16433
c42c09fc
JJ
164342011-02-05 Jakub Jelinek <jakub@redhat.com>
16435
16436 PR middle-end/47610
16437 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 16438 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 16439
beea2755
JZ
164402011-02-05 Jie Zhang <jie@codesourcery.com>
16441
16442 PR debug/42631
16443 * web.c (entry_register): Don't clobber the number of the
16444 first uninitialized reference in used[].
16445
a130584a
SP
164462011-02-04 Sebastian Pop <sebastian.pop@amd.com>
16447
16448 PR tree-optimization/46194
16449 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
16450 (build_classic_dist_vector_1): Do not represent classic distance
16451 vectors when the access functions are variating in different loops.
16452
962101ac
JM
164532011-02-04 Joseph Myers <joseph@codesourcery.com>
16454
16455 * config/mips/iris6.opt: New.
16456 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
16457
55eaaa5b
RH
164582011-02-04 Richard Henderson <rth@redhat.com>
16459 Steve Ellcey <sje@cup.hp.com>
16460
16461 PR target/46997
16462 * config/ia64/predicates.md (mux1_brcst_element): New.
16463 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
16464 * config/ia64/ia64.c (ia64_unpack_assemble): New.
16465 (ia64_unpack_sign): New.
16466 (ia64_expand_unpack): Rewrite using new routines.
16467 (ia64_expand_widen_sum): Ditto.
16468 (ia64_expand_dot_prod_v8qi): Ditto.
16469 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
16470 routines, add endian check.
16471 (pmpy2_even): Rename from pmpy2_r, add endian check.
16472 (pmpy2_odd): Rename from pmpy2_l, add endian check.
16473 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
16474 (vec_widen_smult_hi_v4hi): Ditto.
16475 (vec_widen_umult_lo_v4hi): Ditto.
16476 (vec_widen_umult_hi_v4hi): Ditto.
16477 (mulv2si3): Change endian checks.
16478 (sdot_prodv4hi): Rewrite with new calls.
16479 (udot_prodv4hi): New.
16480 (vec_pack_ssat_v4hi): Add endian check.
16481 (vec_pack_usat_v4hi): Ditto.
16482 (vec_pack_ssat_v2si): Ditto.
16483 (max1_even): Rename from max1_r, add endian check.
16484 (max1_odd): Rename from max1_l, add endian check.
16485 (*mux1_rev): Format change.
16486 (*mux1_mix): Ditto.
16487 (*mux1_shuf): Ditto.
16488 (*mux1_alt): Ditto.
16489 (*mux1_brcst_v8qi): Use new predicate.
16490 (vec_extract_evenv8qi): Remove endian check.
16491 (vec_extract_oddv8qi): Ditto.
16492 (vec_interleave_lowv4hi): Format change.
16493 (vec_interleave_highv4hi): Ditto.
16494 (mix2_even): Rename from mix2_r, add endian check.
16495 (mix2_odd): Rename from mux2_l, add endian check.
16496 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
16497 (vec_extract_evenodd_helper): Format change.
16498 (vec_extract_evenv4hi): Remove endian check.
16499 (vec_extract_oddv4hi): Remove endian check.
16500 (vec_interleave_lowv2si): Format change.
16501 (vec_interleave_highv2si): Format change.
16502 (vec_initv2si): Remove endian check.
16503 (vecinit_v2si): Add endian check.
16504 (reduc_splus_v2sf): Add endian check.
16505 (reduc_smax_v2sf): Ditto.
16506 (reduc_smin_v2sf): Ditto.
16507 (vec_initv2sf): Remove endian check.
16508 (fpack): Add endian check.
16509 (fswap): Add endian check.
16510 (vec_interleave_highv2sf): Add endian check.
16511 (vec_interleave_lowv2sf): Add endian check.
16512 (fmix_lr): Add endian check.
16513 (vec_setv2sf): Format change.
16514 (*vec_extractv2sf_0_be): Use shift to extract operand.
16515 (*vec_extractv2sf_1_be): New.
16516 (vec_pack_trunc_v4hi): Add endian check.
16517 (vec_pack_trunc_v2si): Format change.
16518
dcde5957
JJ
165192011-02-04 Jakub Jelinek <jakub@redhat.com>
16520
16521 PR inline-asm/23200
16522 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 16523 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
16524 (stmt_is_replaceable_p): New function.
16525 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
16526 callers.
16527 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
16528 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
16529 SSA_NAME_DEF_STMT.
16530 * tree-flow.h (stmt_is_replaceable_p): New prototype.
16531
a64a8e5a
JM
165322011-02-04 Joseph Myers <joseph@codesourcery.com>
16533
16534 * config/rs6000/xilinx.opt: New.
16535 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
16536
4da2ed2f
JM
165372011-02-04 Joseph Myers <joseph@codesourcery.com>
16538
16539 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
16540
a6e508f9
AS
165412011-02-03 Anatoly Sokolov <aesok@post.ru>
16542
16543 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
16544 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
16545 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
16546 secondary_reload_info, xtensa_secondary_reload): Remove.
16547 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
16548 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
16549 (xtensa_preferred_reload_class): Make static. Change return and
16550 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
16551 Use CONST_DOUBLE_P predicate.
16552 (xtensa_preferred_output_reload_class): New function.
16553 (xtensa_secondary_reload): Make static.
16554
82dc0de3
JM
165552011-02-03 Joseph Myers <joseph@codesourcery.com>
16556
16557 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
16558 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
16559 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
16560
7fece979
JJ
165612011-02-03 Jakub Jelinek <jakub@redhat.com>
16562
16563 PR middle-end/31490
16564 * output.h (SECTION_RELRO): Define.
16565 (SECTION_MACH_DEP): Adjust.
16566 (get_variable_section): New prototype.
16567 * varpool.c (varpool_finalize_named_section_flags): New function.
16568 (varpool_assemble_pending_decls): Call it.
16569 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
16570 * cgraphunit.c (cgraph_output_in_order): Call
16571 varpool_finalize_named_section_flags.
16572 * varasm.c (get_section): Allow section flags conflicts between
16573 relro and read-only sections if the section hasn't been declared yet.
16574 Set SECTION_OVERRIDE after diagnosing section type conflict.
16575 (get_variable_section): No longer static.
16576 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
16577 readonly sections that need relocations.
16578 (decl_readonly_section_1): New function.
16579 (decl_readonly_section): Use it.
16580
16581 Revert:
509d65dd 16582 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
16583 Steve Ellcey <sje@cup.hp.com>
16584
16585 PR middle-end/31490
16586 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
16587 if section attribute used.
16588
d18d5478
JJ
165892011-02-03 Jakub Jelinek <jakub@redhat.com>
16590
16591 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
16592 * config/darwin.c (SECTION_NO_ANCHOR): Define.
16593 (darwin_init_sections): Remove assertion.
16594
6479ed4b
NC
165952011-02-03 Nick Clifton <nickc@redhat.com>
16596
16597 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
16598 lt and ge.
38be4072 16599 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
16600 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
16601 instead of "n" and "pz".
16602 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
16603 CC_FLAG_S.
16604
89843f5d
JJ
166052011-02-03 Jakub Jelinek <jakub@redhat.com>
16606
65450d64
JJ
16607 PR target/47312
16608 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
16609 fma, expand FMA_EXPR as fma{,f,l} call.
16610
7d58701c
JJ
16611 PR lto/47274
16612 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
16613 copy them into a unsigned char variable and pass address of it to
16614 lto_output_data_stream.
16615
89843f5d
JJ
16616 PR target/47564
16617 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
16618 around backend_init_target and lang_dependent_init_target calls.
16619 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
16620 (verify_cgraph_node): Don't call set_cfun here. Use
16621 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
16622 Set error_found for incorrectly represented calls to thunks.
16623
4deef538
AO
166242011-02-03 Alexandre Oliva <aoliva@redhat.com>
16625
16626 PR debug/43092
16627 PR rtl-optimization/43494
16628 * rtl.h (for_each_inc_dec_fn): New type.
16629 (for_each_inc_dec): Declare.
16630 * rtlanal.c (struct for_each_inc_dec_ops): New type.
16631 (for_each_inc_dec_find_inc_dec): New fn.
16632 (for_each_inc_dec_find_mem): New fn.
16633 (for_each_inc_dec): New fn.
16634 * dse.c (struct insn_size): Remove.
16635 (replace_inc_dec, replace_inc_dec_mem): Remove.
16636 (emit_inc_dec_insn_before): New fn.
16637 (check_for_inc_dec): Use it, along with for_each_inc_dec.
16638 (canon_address): Pass mem modes to cselib_lookup.
16639 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
16640 (cselib_lookup_from_insn): Likewise.
16641 (cselib_subst_to_values): Likewise.
16642 * cselib.c (find_slot_memmode): New var.
16643 (cselib_find_slot): New fn. Use it instead of
16644 htab_find_slot_with_hash everywhere.
16645 (entry_and_rtx_equal_p): Use find_slot_memmode.
16646 (autoinc_split): New fn.
16647 (rtx_equal_for_cselib_p): Rename and implement in terms of...
16648 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
16649 Deal with autoinc. Special-case recursion into MEMs.
16650 (cselib_hash_rtx): Likewise.
16651 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
16652 address and MEM modes.
16653 (cselib_subst_to_values): Add memmode, pass it on.
16654 Deal with autoinc.
16655 (cselib_lookup): Add memmode argument, pass it on.
16656 (cselib_lookup_from_insn): Add memmode.
16657 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
16658 (struct cselib_record_autoinc_data): New.
16659 (cselib_record_autoinc_cb): New fn.
16660 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
16661 mode to cselib_lookup. Reset autoinced REGs here instead of...
16662 (cselib_process_insn): ... here.
16663 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
16664 to cselib_lookup.
16665 (add_uses): Likewise, also to cselib_subst_to_values.
16666 (add_stores): Likewise.
16667 * sched-deps.c (add_insn_mem_dependence): Pass mode to
16668 cselib_subst_to_values.
16669 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
16670 * gcse.c (do_local_cprop): Adjusted.
16671 * postreload.c (reload_cse_simplify_set): Adjusted.
16672 (reload_cse_simplify_operands): Adjusted.
16673 * sel-sched-dump (debug_mem_addr_value): Pass mode.
16674
1551d44a
AO
166752011-02-03 Alexandre Oliva <aoliva@redhat.com>
16676
16677 PR tree-optimization/45122
16678 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
16679 unsafe assumptions when there's more than one loop exit.
16680
c9485473
MM
166812011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16682
16683 PR target/47272
16684 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
16685 Document using vector double with the load/store builtins, and
16686 that the load/store builtins always use Altivec instructions.
16687
16688 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
16689 to use altivec memory instructions, even on VSX.
16690 (vector_altivec_store_<mode>): Ditto.
16691
16692 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
16693 function.
16694
16695 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16696 V2DF, V2DI support to load/store overloaded builtins.
16697
16698 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
16699 altivec load/store builtins for V2DF/V2DI types.
16700
16701 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16702 set avoid indexed addresses on power6 if -maltivec.
16703 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
16704 vector_altivec_load/vector_altivec_store builtins.
16705 (altivec_expand_st_builtin): Ditto.
16706 (altivec_expand_builtin): Add VSX memory builtins.
16707 (rs6000_init_builtins): Add V2DI types to internal types.
16708 (altivec_init_builtins): Add support for V2DF/V2DI altivec
16709 load/store builtins.
16710 (rs6000_address_for_altivec): Insure memory address is appropriate
16711 for Altivec.
16712
16713 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
16714 vec_vsx_ld and vec_vsx_st.
16715 (vsx_store_<mode>): Ditto.
16716
16717 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
16718 variables to hold long long types for VSX vector memory builtins.
16719 (RS6000_BTI_unsigned_long_long): Ditto.
16720 (long_long_integer_type_internal_node): Ditti.
16721 (long_long_unsigned_type_internal_node): Ditti.
16722
16723 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
16724 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
16725 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
16726
16727 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
16728 short cuts.
16729 (vec_vsx_st): Ditto.
16730
b24d1acf
JM
167312011-02-02 Joseph Myers <joseph@codesourcery.com>
16732
16733 * config/pa/pa-hpux10.opt: New.
16734 * config/hpux11.opt (pthread): New Driver option.
16735 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
16736 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
16737
aa18dd0f
JM
167382011-02-02 Joseph Myers <joseph@codesourcery.com>
16739
16740 * config/ia64/vms.opt: New.
16741 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
16742
28fc3eee
MM
167432011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
16744
16745 PR target/47580
16746 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
16747 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
16748 generator functions.
16749 (vsx_floatuns<VSi><mode>2): Ditto.
16750 (vsx_fix_trunc<mode><VSi>2): Ditto.
16751 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
16752
b5838b1f
JM
167532011-02-02 Joseph Myers <joseph@codesourcery.com>
16754
16755 * config/i386/djgpp.opt (posix): New Driver option.
16756
0db8fa89
GP
167572011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
16758
16759 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
16760 Move to the unsupported targets list.
16761
9cd4f22a
PB
167622011-02-02 Peter Bergner <bergner@vnet.ibm.com>
16763
16764 PR rtl-optimization/47525
16765 * df-scan.c: Update copyright years.
16766 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
16767 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
16768
9ed8059c
RO
167692011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16770
16771 * config/i386/sysv4.h (TARGET_VERSION): Remove.
16772 (SUBTARGET_RETURN_IN_MEMORY): Remove.
16773 (ASM_OUTPUT_ASCII): Remove.
16774 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
16775
2a737389
JL
167762011-02-02 Jeff Law <law@redhat.com>
16777
16778 PR middle-end/47543
16779 * reload.c (find_reloads_address): Handle reg+d address where both
16780 components are invalid by reloading the entire address.
16781
9dac82c4
SP
167822011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16783 Richard Guenther <rguenther@suse.de>
16784
16785 PR tree-optimization/40979
16786 PR bootstrap/47044
16787 * passes.c (init_optimization_passes): After LIM call copy_prop
16788 and DCE to clean up.
16789 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
16790
14dd9aab
SP
167912011-02-02 Sebastian Pop <sebastian.pop@amd.com>
16792
16793 PR tree-optimization/47576
16794 PR tree-optimization/47555
16795 * doc/invoke.texi (scev-max-expr-complexity): Documented.
16796 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16797 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
16798 * tree-scalar-evolution.c (follow_ssa_edge): Use
16799 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
16800
5cbf5c20
RG
168012011-02-02 Richard Guenther <rguenther@suse.de>
16802
16803 PR tree-optimization/47566
16804 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
16805
83d70792
AO
168062011-02-02 Alexandre Oliva <aoliva@redhat.com>
16807
e829c321
AO
16808 PR debug/47106
16809 PR debug/47402
16810 * tree-inline.c (declare_return_variable): Remove unused caller
16811 variable.
16812
83d70792
AO
16813 PR debug/47106
16814 PR debug/47402
16815 * tree-flow-inline.h (clear_is_used, is_used_p): New.
16816 * cfgexpand.c (account_used_vars_for_block): Use them.
16817 * tree-nrv.c (tree_nrv): Likewise.
16818 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
16819 (dump_scope_block): Likewise.
16820 (remove_unused_locals): Likewise.
16821
aaa2ac93
AO
16822 PR debug/47106
16823 PR debug/47402
16824 * tree-inline.c (declare_return_variable): Add result decl to
16825 local decls only once.
16826 * gimple-low.c (record_vars_into): Mark newly-created variables
16827 as referenced.
16828
a59d15cf
AO
168292011-02-02 Alexandre Oliva <aoliva@redhat.com>
16830
16831 PR debug/47498
16832 PR debug/47501
16833 PR debug/45136
16834 PR debug/45130
16835 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
16836 debug insns.
16837 (no_real_insns_p, schedule_block, set_priorities): Drop special
16838 treatment of boundary debug insns.
38be4072 16839 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
16840 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
16841 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
16842 (BOUNDARY_DEBUG_INSN_P): Likewise.
16843 (SCHEDULE_DEBUG_INSN_P): Likewise.
16844 * sched-rgn.c (init_ready_list): Drop special treatment of
16845 boundary debug insns.
16846 * final.c (rest_of_clean_state): Clear notes' BB.
16847
6fc2f091
JM
168482011-02-01 Joseph Myers <joseph@codesourcery.com>
16849
16850 * config/openbsd.opt (assert=): New Driver option.
16851
fc523387
JM
168522011-02-01 Joseph Myers <joseph@codesourcery.com>
16853
16854 * config/i386/nto.opt: New.
16855 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
16856
6d9821e5
JM
168572011-02-01 Joseph Myers <joseph@codesourcery.com>
16858
16859 * config/i386/netware.opt: New.
16860 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
16861
cef932d4
JM
168622011-02-01 Joseph Myers <joseph@codesourcery.com>
16863
16864 * config/interix.opt (posix): New Driver option.
16865
22843acd
DD
168662011-02-01 DJ Delorie <dj@redhat.com>
16867
56490b74
DD
16868 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
16869
22843acd
DD
16870 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
16871 class for A0/A1.
16872
199c8f2f
SP
168732011-02-01 Sebastian Pop <sebastian.pop@amd.com>
16874
16875 PR tree-optimization/47561
16876 * toplev.c (process_options): Print the Graphite flags. Add
16877 flag_loop_flatten to the list of options requiring Graphite.
16878
926bcf22
JM
168792011-02-01 Joseph Myers <joseph@codesourcery.com>
16880
16881 * config/i386/cygming.opt (posix): New Driver option.
16882
59793c51
JM
168832011-02-01 Joseph Myers <joseph@codesourcery.com>
16884
16885 * config/arm/vxworks.opt: New.
16886 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
16887
183c38a4
JM
168882011-02-01 Joseph Myers <joseph@codesourcery.com>
16889
16890 * config/alpha/elf.opt: New.
16891 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
16892 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
16893
9939e416
RG
168942011-02-01 Richard Guenther <rguenther@suse.de>
16895
16896 PR tree-optimization/47559
16897 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
16898 store-motion on references that can throw.
16899
4a3c9687
BS
169002011-02-01 Bernd Schmidt <bernds@codesourcery.com>
16901
16902 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
16903 * tree-pass.h (TDF_CSELIB): New macro.
16904 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
16905 cselib_lookup): Check for it rather than for TDF_DETAILS.
16906
dd3b31fb
L
169072011-02-01 H.J. Lu <hongjiu.lu@intel.com>
16908
16909 PR driver/47547
16910 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
16911 is HOST_BIT_BUCKET.
16912
16913 * opts.c (finish_options): Don't add x_aux_base_name if it is
16914 HOST_BIT_BUCKET.
16915
34c1de79
RG
169162011-02-01 Richard Guenther <rguenther@suse.de>
16917
16918 PR tree-optimization/47555
16919 Revert
16920 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
16921
16922 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16923
dd2804d2
SB
169242011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
16925
16926 PR gcc/46692
16927 * config/lm32/t-lm32: Add multilib for all CPU options.
16928
3fd3b156
RG
169292011-02-01 Richard Guenther <rguenther@suse.de>
16930
16931 PR tree-optimization/47541
16932 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
16933 sure to have a field at offset zero.
16934
f16072b6
JM
169352011-01-31 Joseph Myers <joseph@codesourcery.com>
16936
16937 * config/arc/arc.opt (EB, EL): New Driver options.
16938
6456cf2e
JM
169392011-01-31 Joseph Myers <joseph@codesourcery.com>
16940
16941 * config/alpha/osf5.opt: New.
16942 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
16943
cdde6ab4
JM
169442011-01-31 Joseph Myers <joseph@codesourcery.com>
16945
16946 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
16947
7633415c
SP
169482011-01-31 Sebastian Pop <sebastian.pop@amd.com>
16949
16950 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
16951 -floop-interchange.
16952 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
16953 is an alias of -floop-interchange and that it requires the
16954 Graphite infrastructure.
16955 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
16956 flag_loop_interchange based on the value of flag_tree_loop_linear.
16957
0425d6f5
JJ
169582011-01-31 Jakub Jelinek <jakub@redhat.com>
16959 Richard Guenther <rguenther@suse.de>
16960
16961 PR tree-optimization/47538
16962 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
16963 type instead of r1type, except for comparisons. For right
16964 shifts and comparisons punt if there are mismatches in
16965 sizetype vs. non-sizetype types.
16966
500b16c3
RO
169672011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16968
16969 * doc/sourcebuild.texi (Effective-Target Keywords): Document
16970 avx_runtime.
16971
e279edb0
RO
169722011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16973
16974 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
16975 version number.
16976 * configure: Regenerate.
16977
c6092243
RO
169782011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16979
16980 * configure.ac (gcc_cv_ld_static_option): Define.
16981 (gcc_cv_ld_dynamic_option): Define.
16982 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
16983 instead.
16984 (HAVE_LD_STATIC_DYNAMIC): Update message.
16985 (LD_STATIC_OPTION): Define.
16986 (LD_DYNAMIC_OPTION): Define.
16987 * configure: Regenerate.
16988 * config.in: Regenerate.
16989 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
16990 HAVE_LD_STATIC_DYNAMIC]: Use them.
16991
d7862be3
NC
169922011-01-31 Nick Clifton <nickc@redhat.com>
16993
16994 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
16995 registers inside interrupt handlers if the handler is not a leaf
16996 function.
16997
ba4ec0e0
NC
169982011-01-31 Nick Clifton <nickc@redhat.com>
16999
17000 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
17001 reg_renumber returning an INVALID_REGNUM.
17002
29a63921
AO
170032011-01-31 Alexandre Oliva <aoliva@redhat.com>
17004
17005 PR libgcj/44341
17006 * doc/install.texi: Document host options discarded when cross
17007 configuring target libraries.
17008
ef591d3f
AO
170092011-01-31 Alexandre Oliva <aoliva@redhat.com>
17010
17011 Reverted:
17012 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
17013 PR debug/45136
17014 PR debug/45130
17015 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17016 debug insns.
17017 (no_real_insns_p, schedule_block, set_priorities): Drop special
17018 treatment of boundary debug insns.
38be4072 17019 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
17020 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17021 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17022 (BOUNDARY_DEBUG_INSN_P): Likewise.
17023 (SCHEDULE_DEBUG_INSN_P): Likewise.
17024 * sched-rgn.c (init_ready_list): Drop special treatment of
17025 boundary debug insns.
17026 * final.c (rest_of_clean-state): Clear notes' BB.
17027
61052244
AM
170282011-01-31 Alan Modra <amodra@gmail.com>
17029
17030 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
17031 toc relative expressions as we do in print_operand_address.
17032
c4c8962b
KH
170332011-01-30 Kazu Hirata <kazu@codesourcery.com>
17034
17035 * doc/extend.texi: Follow spelling conventions.
17036 * doc/invoke.texi: Fix a typo.
17037
e543b94c
JM
170382011-01-30 Joseph Myers <joseph@codesourcery.com>
17039
17040 * config/hpux11.opt: New.
17041 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
17042 ia64*-*-hpux*): Use hpux11.opt.
17043
509d65dd 170442011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
17045
17046 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
17047 to tmake_file.
17048
7be03a0e
GP
170492011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
17050
17051 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
17052 support sites.
17053
419d1d37
GP
170542011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
17055
b596ed64
GP
17056 * doc/install.texi (Binaries): Remove outdated reference for
17057 Motorola 68HC11/68HC12 downloads.
17058
170592011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 17060
419d1d37
GP
17061 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
17062 Drepper's paper.
17063
4406d0e9
JW
170642011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
17065
17066 PR bootstrap/47147
17067 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
17068 used by NetBSD.
17069
38be4072 170702011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
17071
17072 * value-prof.c (check_counter): Corrected error message.
17073
0cd98787
JZ
170742011-01-29 Jie Zhang <jie@codesourcery.com>
17075
17076 * config/arm/arm.c (arm_legitimize_reload_address): New.
17077 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17078 arm_legitimize_reload_address.
38be4072 17079 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 17080
9b798ac5
ILT
170812011-01-28 Ian Lance Taylor <iant@google.com>
17082
17083 * godump.c (go_define): Ignore macros whose definitions include
17084 two adjacent operands.
17085
591e29d9
JJ
170862011-01-28 Jakub Jelinek <jakub@redhat.com>
17087
17088 PR target/42894
17089 * varasm.c (force_const_mem): Store copy of x in desc->constant
17090 instead of x itself.
17091 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
17092 itself into REG_EQUAL note.
17093
62dcc44a
JM
170942011-01-28 Joseph Myers <joseph@codesourcery.com>
17095
17096 * config/freebsd.opt (posix, rdynamic): New Driver options.
17097
c9f58b9a
RO
170982011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17099
17100 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
17101 -Bstatic/-Bdynamic.
17102 * configure: Regenerate.
17103
5f02b9db
JM
171042011-01-27 Joseph Myers <joseph@codesourcery.com>
17105
17106 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
17107 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
17108
5df97412
AS
171092011-01-27 Anatoly Sokolov <aesok@post.ru>
17110
17111 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
17112 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
17113 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17114 (s390_preferred_reload_class): Make static. Change return and
17115 'rclass' argument type to reg_class_t.
17116
779d4b91
JH
171172011-01-27 Jan Hubicka <jh@suse.cz>
17118
17119 PR middle-end/46949
17120 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
17121 (process_function_and_variable_attributes): Check defined weakrefs.
17122
e80b21ed
MJ
171232011-01-27 Martin Jambor <mjambor@suse.cz>
17124
17125 PR tree-optimization/47228
17126 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
17127 build_ref_for_offset.
17128
6dcc4f31
UW
171292011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17130
17131 * config/spu/spu-elf.h (ASM_SPEC): Remove.
17132
509d65dd 171332011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
17134
17135 PR rtl-optimization/46856
17136 * postreload.c (reload_combine_recognize_const_pattern): Do not
17137 separate cc0 setter and user on cc0 targets.
17138
04af8788
NP
171392011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
17140
17141 PR c/43082
17142 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
17143 passed a VOID_TYPE expression, immediately emit an error and
17144 return error_mark_node.
17145
f7a60085
JL
171462011-01-26 Jeff Law <law@redhat.com>
17147
17148 PR rtl-optimization/47464
17149 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
17150 rather than may_trap_p as needed.
17151
5c2917ec
DD
171522011-01-26 DJ Delorie <dj@redhat.com>
17153
17154 PR rtl-optimization/46878
17155 * combine.c (insn_a_feeds_b): Check for the implicit cc0
17156 setter/user dependency as well.
17157
bef16e87
EB
171582011-01-26 Eric Botcazou <ebotcazou@adacore.com>
17159
17160 PR rtl-optimization/44469
17161 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
17162 after removing trivially dead basic blocks.
17163
c75d884b
JM
171642011-01-26 Joseph Myers <joseph@codesourcery.com>
17165
17166 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
17167 * config/frv/frv.h (LINK_SPEC): Likewise.
17168 * config/i386/netware.h (LINK_SPEC): Likewise.
17169 * config/m68k/linux.h (ASM_SPEC): Likewise.
17170 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
17171 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17172 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17173 * config/sparc/linux.h (ASM_SPEC): Likewise.
17174 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17175 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17176
d3153553
JM
171772011-01-26 Joseph Myers <joseph@codesourcery.com>
17178
17179 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
17180 * config/frv/frv.h (ASM_SPEC): Likewise.
17181 * config/m68k/linux.h (ASM_SPEC): Likewise.
17182 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17183 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
17184 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17185 * config/sparc/linux.h (ASM_SPEC): Likewise.
17186 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17187 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17188
b89b1e9d
JM
171892011-01-26 Joseph Myers <joseph@codesourcery.com>
17190
17191 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
17192 * config/frv/frv.h (LINK_SPEC): Likewise.
17193 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
17194
12eb1a9c
JM
171952011-01-26 Joseph Myers <joseph@codesourcery.com>
17196
17197 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
17198 * config/frv/frv.h (ASM_SPEC): Likewise.
17199 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
17200 * config/m68k/linux.h (ASM_SPEC): Likewise.
17201 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
17202 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
17203 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
17204 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
17205 * config/sparc/linux.h (ASM_SPEC): Likewise.
17206 * config/sparc/linux64.h (ASM_SPEC): Likewise.
17207 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
17208 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
17209
e435f098
SE
172102011-01-26 Steve Ellcey <sje@cup.hp.com>
17211
17212 PR target/46997
17213 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
17214 (*mux2): Ditto.
17215 (vec_extract_evenodd_help): Ditto.
17216 (vec_extract_evenv4hi): Ditto.
17217 (vec_extract_oddv4hi): Ditto.
17218 (vec_interleave_lowv2si): Ditto.
17219 (vec_interleave_highv2si): Ditto.
17220 (vec_extract_evenv2si): Ditto.
17221 (vec_extract_oddv2si: Ditto.
17222 (vec_pack_trunc_v2si): Ditto.
17223
34f0eee0
JH
172242011-01-22 Jan Hubicka <jh@suse.cz>
17225
17226 PR target/47237
17227 * cgraph.h (cgraph_local_info): New field can_change_signature.
17228 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
17229 signature can change.
17230 (ipcp_estimate_growth): Call sequence simplify only if calle signature
17231 can change.
17232 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
17233 (cgraph_function_versioning): We can not change signature of functions
17234 that don't allow that.
17235 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
17236 (lto_input_node): Likewise.
38be4072
UB
17237 * ipa-inline.c (compute_inline_parameters): Compute
17238 local.can_change_signature.
34f0eee0 17239 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
17240 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
17241 functions that can not change signature.
34f0eee0 17242 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
17243 init_cumulative_args): Do not use local calling conventions
17244 for functions that can not change signature.
34f0eee0 17245
980ca891
JH
172462011-01-22 Jan Hubicka <jh@suse.cz>
17247
17248 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
17249
768e3c60
RG
172502011-01-26 Richard Guenther <rguenther@suse.de>
17251
17252 PR tree-optimization/47190
61052244
AM
17253 * cgraphunit.c (process_common_attributes): New function.
17254 (process_function_and_variable_attributes): Use it.
768e3c60 17255
21d6a1c7
RG
172562011-01-26 Richard Guenther <rguenther@suse.de>
17257
17258 PR lto/47423
17259 * cgraphbuild.c (record_eh_tables): Record reference to personality
17260 function.
17261
48bb58b1
AO
172622011-01-26 Alexandre Oliva <aoliva@redhat.com>
17263
17264 PR debug/45454
17265 * sel-sched.c (moveup_expr): Don't let debug insns prevent
17266 non-debug insns from moving up.
17267
58c741a6
DK
172682011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
17269
17270 PR target/40125
17271 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
17272 t-dlldir{,-x} fragment for build and add it to tmake_file.
17273 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17274 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
17275 * config/i386/t-dlldir: New file.
17276 (SHLIB_DLLDIR): Define.
17277 * config/i386/t-dlldir-x: New file.
17278 (SHLIB_DLLDIR): Define.
17279 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
17280 (SHLIB_INSTALL): Use it.
17281
bff99262
CLT
172822011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
17283
17284 PR target/47246
17285 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
17286 lower bound of the allowed Thumb-2 coprocessor load/store
17287 index range to -256. Add explaining comment.
17288
82c03907
ILT
172892011-01-25 Ian Lance Taylor <iant@google.com>
17290
17291 * godump.c (go_define): Improve lexing of macro expansion to only
17292 accept expressions which match Go spec.
17293
47ea1edf
DK
172942011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
17295
d4dba752 17296 PR c++/43601
47ea1edf
DK
17297 * tree.c (handle_dll_attribute): Handle it.
17298 * doc/extend.texi (@item dllexport): Mention it.
17299 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
17300
744f0946
ILT
173012011-01-25 Ian Lance Taylor <iant@google.com>
17302
17303 PR tree-optimization/26854
17304 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
17305 (decl_jump_unsafe): Move higher in file, with no other change.
17306 (bind): Set has_jump_unsafe_decl if appropriate.
17307 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
17308 (check_earlier_gotos): Likewise.
17309 (c_check_switch_jump_warnings): Likewise.
17310
5734f2b3
JW
173112011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
17312
17313 * doc/invoke.texi (Warning Options): Add missing hyphen.
17314 (-fprofile-dir): Minor grammatical fixes.
17315 (-fbranch-probabilities): Likewise.
17316
9bdbdcef
AO
173172011-01-25 Alexandre Oliva <aoliva@redhat.com>
17318
17319 PR debug/45136
17320 PR debug/45130
17321 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
17322 debug insns.
17323 (no_real_insns_p, schedule_block, set_priorities): Drop special
17324 treatment of boundary debug insns.
38be4072 17325 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
17326 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
17327 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
17328 (BOUNDARY_DEBUG_INSN_P): Likewise.
17329 (SCHEDULE_DEBUG_INSN_P): Likewise.
17330 * sched-rgn.c (init_ready_list): Drop special treatment of
17331 boundary debug insns.
17332 * final.c (rest_of_clean-state): Clear notes' BB.
17333
b305e3da
SP
173342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17335
17336 * Makefile.in (LAMBDA_H): Removed.
17337 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
17338 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
17339 lambda-trans.o, and tree-loop-linear.o.
17340 (lto-symtab.o): Remove dependence on LAMBDA_H.
17341 (tree-loop-linear.o): Remove rule.
17342 (lambda-mat.o): Same.
17343 (lambda-trans.o): Same.
17344 (lambda-code.o): Same.
17345 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
17346 (tree-vect-slp.o): Same.
17347 * hwint.h (gcd): Moved here.
17348 (least_common_multiple): Same.
17349 * lambda-code.c: Removed.
17350 * lambda-mat.c: Removed.
17351 * lambda-trans.c: Removed.
17352 * lambda.h: Removed.
17353 * tree-loop-linear.c: Removed.
17354 * lto-symtab.c: Do not include lambda.h.
17355 * omega.c (gcd): Removed.
17356 * passes.c (init_optimization_passes): Remove pass_linear_transform.
17357 * tree-data-ref.c (print_lambda_vector): Moved here.
17358 (lambda_vector_copy): Same.
17359 (lambda_matrix_copy): Same.
17360 (lambda_matrix_id): Same.
17361 (lambda_vector_first_nz): Same.
17362 (lambda_matrix_row_add): Same.
17363 (lambda_matrix_row_exchange): Same.
17364 (lambda_vector_mult_const): Same.
17365 (lambda_vector_negate): Same.
17366 (lambda_matrix_row_negate): Same.
17367 (lambda_vector_equal): Same.
17368 (lambda_matrix_right_hermite): Same.
17369 * tree-data-ref.h: Do not include lambda.h.
17370 (lambda_vector): Moved here.
17371 (lambda_matrix): Same.
17372 (dependence_level): Same.
17373 (lambda_transform_legal_p): Removed declaration.
17374 (lambda_collect_parameters): Same.
17375 (lambda_compute_access_matrices): Same.
17376 (lambda_vector_gcd): Same.
17377 (lambda_vector_new): Same.
17378 (lambda_vector_clear): Same.
17379 (lambda_vector_lexico_pos): Same.
17380 (lambda_vector_zerop): Same.
17381 (lambda_matrix_new): Same.
17382 * tree-flow.h (least_common_multiple): Removed declaration.
17383 * tree-parloops.c (lambda_trans_matrix): Moved here.
17384 (LTM_MATRIX): Same.
17385 (LTM_ROWSIZE): Same.
17386 (LTM_COLSIZE): Same.
17387 (LTM_DENOMINATOR): Same.
17388 (lambda_trans_matrix_new): Same.
17389 (lambda_matrix_vector_mult): Same.
17390 (lambda_transform_legal_p): Same.
17391 * tree-pass.h (pass_linear_transform): Removed declaration.
17392 * tree-ssa-loop.c (tree_linear_transform): Removed.
17393 (gate_tree_linear_transform): Removed.
17394 (pass_linear_transform): Removed.
17395 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
17396 flag_loop_interchange.
17397
6bdfdb96
JJ
173982011-01-25 Jakub Jelinek <jakub@redhat.com>
17399
17400 PR tree-optimization/47265
17401 PR tree-optimization/47443
17402 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
17403 if name still has some uses.
17404
e4cba915
MJ
174052011-01-25 Martin Jambor <mjambor@suse.cz>
17406
17407 PR tree-optimization/47382
17408 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
17409 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
17410
509d65dd 174112011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
17412
17413 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
17414 sjlj_except_unwind_info.
17415
194313e2
RG
174162011-01-25 Richard Guenther <rguenther@suse.de>
17417
17418 PR tree-optimization/47426
17419 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
17420 visible functions results escape.
17421
147a0bcf
JJ
174222011-01-25 Jakub Jelinek <jakub@redhat.com>
17423
17424 PR target/45701
17425 * config/arm/arm.c (any_sibcall_uses_r3): New function.
17426 (arm_get_frame_offsets): Use it.
17427
db963b52
SP
174282011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17429 Jakub Jelinek <jakub@redhat.com>
17430
17431 PR tree-optimization/47271
17432 * tree-if-conv.c (bb_postdominates_preds): New.
17433 (if_convertible_bb_p): Call bb_postdominates_preds.
17434 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
17435 (predicate_scalar_phi): Call bb_postdominates_preds.
17436
bcddd3b9
NC
174372011-01-25 Nick Clifton <nickc@redhat.com>
17438
17439 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
17440 * config/rx/rx.c (rx_function_value): Likewise.
17441 (rx_promote_function_mode): Likewise.
17442 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
17443 in order to make it legitimate.
38be4072
UB
17444 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
17445 make sure that the first operand is the same as the result register.
bcddd3b9
NC
17446 (addsi3_unspec): Delete.
17447 (subdi3): Do not accept immediate operands.
17448 (subdi3_internal): Likewise.
17449
7e6cb022
JL
174502011-01-25 Jeff Law <law@redhat.com>
17451
17452 PR rtl-optimization/37273
17453 * ira-costs.c (scan_one_insn): Detect constants living in memory and
17454 handle them like argument loads from stack slots. Do not double
17455 count memory for memory constants and argument loads from stack slots.
17456
9ffa621e
JJ
174572011-01-25 Jakub Jelinek <jakub@redhat.com>
17458
17459 PR tree-optimization/47427
17460 PR tree-optimization/47428
17461 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17462 coalesce if the new root var would be TREE_READONLY.
17463
5bd6e652
RG
174642011-01-25 Richard Guenther <rguenther@suse.de>
17465
17466 PR middle-end/47414
17467 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
17468 correct type for TBAA.
17469
7c48ea69
SP
174702011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17471
17472 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
17473 (close_phi_written_to_memory): Call for_each_index with
17474 dr_indices_valid_in_loop.
17475
38013f25
SP
174762011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17477
17478 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
17479 when it is initialized.
17480
5c640e29
SP
174812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17482
17483 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
17484 call to graphite_find_data_references_in_stmt.
17485 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
17486 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
17487 call to graphite_find_data_references_in_stmt.
17488 (analyze_drs_in_stmts): Same.
17489 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
17490 in which the scalar analysis of indices is performed.
17491 (create_data_ref): Same. Update call to dr_analyze_indices.
17492 (find_data_references_in_stmt): Update call to create_data_ref.
17493 (graphite_find_data_references_in_stmt): Same.
17494 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
17495 declaration.
17496 (create_data_ref): Same.
17497 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
17498 call to create_data_ref.
17499
ac53c069
SP
175002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17501
17502 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 17503 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 17504
3d17df15
SP
175052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17506
17507 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
17508 VAR_DECL, PARM_DECL, and RESULT_DECL.
17509
c513da01
SP
175102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17511
17512 * graphite-dependences.c (reduction_dr_1): Allow several reductions
17513 in a reduction PBB.
17514 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
17515 that have already been marked as PBB_IS_REDUCTION.
17516
3a292d59
SP
175172011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17518
17519 * graphite-scop-detection.c (same_close_phi_node): New.
17520 (remove_duplicate_close_phi): New.
17521 (make_close_phi_nodes_unique): New.
17522 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
17523
ba858447
SP
175242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17525
17526 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
17527 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
17528 of both data references to be the same.
17529
8d865c56
SP
175302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17531
38be4072
UB
17532 * graphite-dependences.c (build_lexicographical_constraint): Remove
17533 the gdim parameter.
17534 (build_lexicographical_constraint): Adjust call to
17535 ppl_powerset_is_empty.
8d865c56
SP
17536 (dependence_polyhedron): Same.
17537 (graphite_legal_transform_dr): Same.
17538 (graphite_carried_dependence_level_k): Same.
38be4072
UB
17539 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
17540 parameter.
8d865c56
SP
17541 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
17542
50034a36
SP
175432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17544
17545 * graphite-sese-to-poly.c
17546 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
17547 (close_phi_written_to_memory): New.
17548 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
17549 and unshare_expr.
17550
0deada9e
SP
175512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17552
17553 * doc/install.texi: Update the expected version number of PPL to 0.11.
17554 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
17555 #if PPL_VERSION_MINOR < 11.
17556
d7d3d6af
SP
175572011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17558
17559 * graphite-dependences.c: Include graphite-cloog-util.h.
17560 (new_poly_ddr): Inlined into dependence_polyhedron.
17561 (free_poly_ddr): Moved close by new_poly_ddr.
17562 (dependence_polyhedron_1): Renamed dependence_polyhedron.
17563 Early return NULL when ppl_powerset_is_empty returns true.
17564 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
17565 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
17566 (graphite_legal_transform_dr): Call new_poly_ddr.
17567 (graphite_carried_dependence_level_k): Same.
17568 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
17569 (dot_transformed_deps_stmt_1): Removed.
17570 (dot_deps_stmt_1): Call dot_deps_stmt_2.
17571 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
17572 (dot_deps_1): Call dot_deps_2.
17573 * Makefile.in (graphite-dependences.o): Add missing dependence on
17574 graphite-cloog-util.h.
17575
28c5db57
SP
175762011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17577
17578 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
17579 (build_lexicographical_constraint): Same.
17580 (dependence_polyhedron_1): Same.
17581 (graphite_legal_transform_dr): Same.
17582 (graphite_carried_dependence_level_k): Same.
17583 * graphite-ppl.c (ppl_powerset_is_empty): New.
17584 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
17585 * tree-data-ref.c (dump_data_reference): Print the basic block index.
17586
5168d98f
SP
175872011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17588
17589 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
17590 the "a followed by b" relation and document it.
17591
4a40293a
SP
175922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17593
17594 * graphite-dependences.c (build_lexicographical_constraint): Stop the
17595 iteration when the bag of constraints is empty.
17596
271fb6fa
SP
175972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17598
17599 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
17600
92d23680
SP
176012011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17602
17603 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
17604 nest and two loop depths as parameters.
17605 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
17606 lst_perfect_nestify.
17607
2f51deff
SP
176082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17609
17610 * graphite-dependences.c (print_pddr): Call
17611 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
17612
07f3593c
SP
176132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
17614
17615 * graphite-ppl.c (debug_gmp_value): New.
17616 * graphite-ppl.h (debug_gmp_value): Declared.
17617
3fae6099
TG
176182011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
17619
17620 * doc/install.texi: Document availability of cloog-0.16.
17621
1c3ba85b
SP
176222011-01-25 Vladimir Kargov <kargov@gmail.com>
17623
17624 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
17625 invalid postdominance info.
17626
e8ba94fc
JH
176272011-01-24 Jan Hubicka <jh@suse.cz>
17628
17629 PR c/21659
17630 * doc/extend.texi (weak pragma): Drop claim that it must
17631 appear before definition.
17632 * varasm.c (merge_weak, declare_weak): Only sanity check
17633 that DECL is not output at a time it is declared weak.
17634
2b6e2d13
KZ
176352011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
17636
17637 * machmode.def: Fixed comments.
1c3ba85b 17638
9841210f
KT
176392011-01-24 Kai Tietz <kai.tietz@onevision.com>
17640
17641 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
17642
176432011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
17644
17645 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 17646 WORDS_BIG_ENDIAN.
e046112d 17647
a6c5070a
L
176482011-01-24 H.J. Lu <hongjiu.lu@intel.com>
17649
17650 PR target/46519
17651 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
17652 (block_info): Add scanned and prev.
17653 (move_or_delete_vzeroupper_2): Return if the basic block
17654 has been scanned and the upper 128bit state is unchanged
17655 from the last scan.
17656 (move_or_delete_vzeroupper_1): Return true if the exit
17657 state is changed.
17658 (move_or_delete_vzeroupper): Visit basic blocks using the
17659 work-list based algorithm based on vt_find_locations in
17660 var-tracking.c.
17661
17662 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
17663
a40d79d7
NC
176642011-01-24 Nick Clifton <nickc@redhat.com>
17665
17666 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
17667 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
17668 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
17669 then define __v850e1__.
17670 * doc/invoke.texi: Document -mv850es.
17671
440eb8de
RH
176722011-01-24 Richard Henderson <rth@redhat.com>
17673
17674 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
17675 compound unordered comparisons.
17676 * config/rx/rx.c (rx_split_fp_compare): Remove.
17677 * config/rx/rx-protos.h: Update.
17678 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
17679 (cbranchsf4): Don't call rx_split_fp_compare.
17680 (*cbranchsf4): Use rx_split_cbranch.
17681 (*cmpsf): Don't accept "i" constraint.
17682 (*conditional_branch): Only valid after reload.
17683 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
17684
3ff79f99
MM
176852011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
17686
17687 PR target/47385
17688 * config/rs6000/altivec.md (vector constant splitters): Add
17689 support for creating vector single precision constants if -mvsx is
17690 used and we would create the constant using Altivec primitives.
17691
ff3d9d08
BS
176922011-01-23 Bernd Schmidt <bernds@codesourcery.com>
17693 Richard Sandiford <rdsandiford@googlemail.com>
17694
17695 PR rtl-optimization/47166
17696 * reload1.c (emit_reload_insns): Disable the spill_reg_store
17697 mechanism for PRE_MODIFY and POST_MODIFY.
17698 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
17699 reloadreg.
17700
7fcaf152
AS
177012011-01-23 Andreas Schwab <schwab@linux-m68k.org>
17702
8788adb6 17703 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 17704
d09b58c4
JH
177052011-01-22 Jan Hubicka <jh@suse.cz>
17706
17707 PR lto/47333
17708 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
17709
e8ff8c5a
JH
177102011-01-22 Jan Hubicka <jh@suse.cz>
17711
17712 PR tree-optimization/43884
17713 PR lto/44334
8788adb6 17714 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
17715 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
17716
ccaed3ba
AS
177172011-01-22 Anatoly Sokolov <aesok@post.ru>
17718
17719 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
17720 * config/s390/s390.c (s390_register_move_cost,
17721 s390_memory_move_cost): New.
17722 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17723
0cecee06
UW
177242011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17725
17726 PR middle-end/47401
17727 * except.c (sjlj_assign_call_site_values): Move setting the
17728 crtl->uses_eh_lsda flag to ...
17729 (sjlj_mark_call_sites): ... here.
17730 (sjlj_emit_function_enter): Support NULL dispatch label.
17731 (sjlj_build_landing_pads): In a function with no landing pads
17732 that still has must-not-throw regions, generate code to register
17733 a personality function with empty LSDA.
17734
e692f276
RH
177352011-01-21 Richard Henderson <rth@redhat.com>
17736
1b7ae0b7
RH
17737 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
17738
3843787f
RH
17739 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
17740
e692f276
RH
17741 * compare-elim.c: New file.
17742 * Makefile.in (OBJS-common): Add it.
17743 (compare-elim.o): New.
17744 * common.opt (fcompare-elim): New.
17745 * opts.c (default_options_table): Add OPT_fcompare_elim.
17746 * tree-pass.h (pass_compare_elim_after_reload): New.
17747 * passes.c (init_optimization_passes): Add it.
17748 * recog.h: Protect against re-inclusion.
17749 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
17750 * doc/invoke.texi (-fcompare-elim): Document it.
17751 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
17752 * doc/tm.texi: Rebuild.
17753
9a7c2050
NC
177542011-01-22 Nick Clifton <nickc@redhat.com>
17755
17756 * config/rx/rx.md (cstoresf4): Pass comparison operator to
17757 rx_split_fp_compare.
17758
15ba5696
NC
177592011-01-22 Nick Clifton <nickc@redhat.com>
17760
17761 * config/rx/rx.md (UNSPEC_CONST): New.
17762 (deallocate_and_return): Wrap the amount popped off the stack in
17763 an UNSPEC_CONST in order to stop it being rejected by
17764 -mmax-constant-size.
17765 (pop_and_return): Add a "(return)" rtx.
17766 (call): Drop the immediate operand.
17767 (call_internal): Likewise.
17768 (call_value): Likewise.
17769 (call_value_internal): Likewise.
17770 (sibcall_internal): Likewise.
17771 (sibcall_value_internal): Likewise.
17772 (sibcall): Likewise. Generate an explicit call using
17773 sibcall_internal.
17774 (sibcall_value): Likewise.
17775 (mov<>): FAIL if a constant operand is not legitimate.
17776 (addsi3_unpsec): New pattern.
9a7c2050 17777
38be4072 17778 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
17779 (ok_for_max_constant): New function.
17780 (gen_safe_add): New function.
17781 (rx_expand_prologue): Use gen_safe_add.
17782 (rx_expand_epilogue): Likewise.
17783 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
17784 UNSPEC CONSTs.
17785
caaf13d3
JL
177862011-01-21 Jeff Law <law@redhat.com>
17787
17788 PR tree-optimization/47053
17789 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
17790 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
17791 statements are deleted.
17792 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
17793 is nonempty, then purge dead edges and cleanup the CFG.
17794
12c30f2f
AO
177952011-01-21 Alexandre Oliva <aoliva@redhat.com>
17796
17797 PR debug/47402
17798 Temporarily revert:
17799 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
17800 PR debug/47106
17801 * tree-dfa.c (create_var_ann): Mark variable as used.
17802
7360d2ac
JJ
178032011-01-21 Jakub Jelinek <jakub@redhat.com>
17804
aaa52a96
JJ
17805 PR middle-end/45566
17806 * except.c (convert_to_eh_region_ranges): Emit queued no-region
17807 notes from other section in hot/cold partitioning even if
17808 last_action is -3. Increment call_site_base.
17809
7360d2ac
JJ
17810 PR rtl-optimization/47366
17811 * fwprop.c (forward_propagate_into): Return bool. If
17812 any changes are made, -fnon-call-exceptions is used and
17813 REG_EH_REGION note is present, call purge_dead_edges
17814 and return true if it purged anything.
17815 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
17816 any EH edges were purged.
17817
e90b336f
JL
178182011-01-21 Jeff Law <law@redhat.com>
17819
17820 PR rtl-optimization/41619
17821 * caller-save.c (setup_save_areas): Break out code to determine
17822 which hard regs are live across calls by examining the reload chains
17823 so that it is always used.
17824 Eliminate code which checked REG_N_CALLS_CROSSED.
17825
3ffe07e1
JJ
178262011-01-21 Jakub Jelinek <jakub@redhat.com>
17827
17828 PR tree-optimization/47355
17829 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
17830 NOP has non-debug uses beyond PHIs in new_bb.
17831
1c7d0b34
AO
178322011-01-21 Alexandre Oliva <aoliva@redhat.com>
17833
17834 PR debug/47106
17835 * cfgexpand.c (account_used_vars_for_block): Only account vars
17836 that are annotated as used.
17837 (estimated_stack_frame_size): Don't set TREE_USED.
17838 * tree-dfa.c (create_var_ann): Mark variable as used.
17839
f99cc488
RG
178402011-01-21 Richard Guenther <rguenther@suse.de>
17841
17842 PR middle-end/47395
17843 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
17844
3bc27de7
RG
178452011-01-21 Richard Guenther <rguenther@suse.de>
17846
17847 PR tree-optimization/47365
17848 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
17849 (vn_reference_lookup_pieces): Adjust.
17850 (vn_reference_lookup): Likewise.
17851 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
17852 (vn_reference_lookup_3): Only look through kills if in
17853 VN_WALKREWRITE mode.
17854 (vn_reference_lookup_pieces): Adjust.
17855 (vn_reference_lookup): Likewise.
17856 (visit_reference_op_load): Likewise.
17857 (visit_reference_op_store): Likewise.
17858 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
17859 (compute_avail): Likewise.
17860 (eliminate): Likewise.
17861
d8debb1d
JJ
178622011-01-21 Jakub Jelinek <jakub@redhat.com>
17863
17864 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
17865 DECL_IGNORED_P non-reg vars if they are used.
17866
3a2df831
JJ
17867 PR tree-optimization/47391
17868 * varpool.c (const_value_known_p): Return false if
17869 decl is volatile.
17870
1dd584a2
KT
178712011-01-21 Kai Tietz <kai.tietz@onevision.com>
17872
17873 PR bootstrap/47215
17874 * config/i386/i386.c (ix86_local_alignment): Handle
17875 case for va_list_type_node is nil.
17876 (ix86_canonical_va_list_type): Likewise.
17877
7f9f095e
AM
178782011-01-21 Alan Modra <amodra@gmail.com>
17879
17880 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
17881 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
17882
837b01f6
RR
178832011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17884
17885 * config/arm/arm.md (define_attr type): Rename f_load
17886 and f_store to f_fpa_load and f_fpa_store. Update.
17887 (write_conflict): Deal with rename fallout.
17888 (*push_fp_multi): Likewise.
17889 * config/arm/fpa.md (f_load): Use f_fpa_load.
17890 (f_store): Use f_fpa_store.
17891 (*movsf_fpa): Likewise.
17892 (*movdf_fpa): Likewise.
17893 (*movxf_fpa): Likewise.
17894 (*thumb2_movsf_fpa): Likewise.
17895 (*thumb2_movdf_fpa): Likewise.
17896 (*thumb2_movxf_fpa): Likewise.
17897 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
17898 f_loadd and f_stored.
17899 (*thumb2_movdi_vfp): Likewise.
17900 (*thumb2_movsf_vfp): Fix attribute to f_loads.
17901 (*thumb2_movsi_vfp): Likewise.
17902 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
17903 Use f_loads instead of f_load.
17904 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
17905
a1a79768
AS
179062011-01-20 Anatoly Sokolov <aesok@post.ru>
17907
17908 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17909 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
17910 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17911 (xtensa_mode_dependent_address_p): New function.
17912 (constantpool_address_p): Make static. Change return type to bool.
17913 Change argument type to const_rtx. Use CONST_INT_P predicate.
17914
427f6cec
AO
179152011-01-20 Alexandre Oliva <aoliva@redhat.com>
17916
17917 PR debug/46583
17918 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
17919
583ac69c
JJ
179202011-01-20 Jakub Jelinek <jakub@redhat.com>
17921
17922 PR debug/47283
17923 * cfgexpand.c (expand_debug_expr): Instead of generating
17924 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
17925 etc. handling.
17926
93e452ed
RG
179272011-01-20 Richard Guenther <rguenther@suse.de>
17928
17929 PR middle-end/47370
17930 * tree-inline.c (remap_gimple_op_r): Recurse manually for
17931 the pointer operand of MEM_REFs.
17932
28fc44f3
JJ
179332011-01-20 Jakub Jelinek <jakub@redhat.com>
17934
17935 PR tree-optimization/46130
17936 * ipa-split.c (consider_split): If return_bb contains non-virtual
17937 PHIs other than for retval or if split_function would not adjust it,
17938 refuse to split.
17939
ddd268f2
RG
179402011-01-20 Richard Guenther <rguenther@suse.de>
17941
17942 PR tree-optimization/47167
17943 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
17944 Revert previous change, only avoid enumeral type changes.
17945
882020aa
MS
179462011-01-19 Mike Stump <mikestump@comcast.net>
17947
17948 * doc/tm.texi.in (BRANCH_COST): Englishify.
17949 * doc/tm.texi (BRANCH_COST): Likewise.
17950
7edb6247
DS
179512011-01-19 Dodji Seketeli <dodji@redhat.com>
17952
17953 PR c++/47291
17954 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
17955 (gen_scheduled_generic_parms_dies): New functions.
17956 (gen_struct_or_union_type_die): Schedule template parameters DIEs
17957 generation for the end of CU compilation.
17958 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 17959
23d5ed5d
AO
179602011-01-19 Alexandre Oliva <aoliva@redhat.com>
17961
17962 PR debug/46240
17963 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
17964 debug bind stmt on merge edges.
17965
37d6a488
AO
179662011-01-19 Alexandre Oliva <aoliva@redhat.com>
17967
17968 PR debug/47079
17969 PR debug/46724
17970 * function.c (instantiate_expr): Instantiate incoming rtl of
17971 implicit arguments, and recurse on VALUE_EXPRs.
17972 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
17973 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
17974
689f2c82
AO
179752011-01-19 Alexandre Oliva <aoliva@redhat.com>
17976
17977 * c-parser.c (c_parser_for_statement): Initialize
17978 collection_expression.
17979
03029de4
JM
179802011-01-19 Joseph Myers <joseph@codesourcery.com>
17981
17982 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
17983
3e03217e
JM
179842011-01-19 Joseph Myers <joseph@codesourcery.com>
17985
17986 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
17987 (LINK_SHLIB_SPEC): Don't use %(link_path).
17988 (SUBTARGET_EXTRA_SPECS): Remove link_path.
17989
5bbe9b3f
JM
179902011-01-19 Joseph Myers <joseph@codesourcery.com>
17991
17992 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
17993 (NO_SHARED_LIB_SUPPORT): Remove.
17994 (LINK_SHLIB_SPEC): Remove one conditional definition.
17995
368e0b39
JM
179962011-01-19 Joseph Myers <joseph@codesourcery.com>
17997
17998 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
17999 %{call_shared}.
18000 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
18001 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
18002 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
18003 %{call_shared} and conditionals on these options not being passed.
18004 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
18005 %{call_shared}.
18006
ed7656f6
JJ
180072011-01-19 Jakub Jelinek <jakub@redhat.com>
18008
68457901
JJ
18009 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
18010 simplify.
18011
ed7656f6
JJ
18012 * ipa-split.c: Spelling fixes.
18013
e0d1958f
RH
180142011-01-19 Richard Henderson <rth@redhat.com>
18015
18016 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
18017 (*mulsi3): Likewise.
18018
27098b6b
RH
18019 * longlong.h [__mn10300__] (count_leading_zeros): New.
18020 [__mn10300__] (umul_ppmm, smul_ppmm): New.
18021 [__mn10300__] (add_ssaaaa, subddmmss): New.
18022 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
18023 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
18024
d6be7c36
UW
180252011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18026
18027 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
18028
b1efde2a
RH
180292011-01-19 Richard Henderson <rth@redhat.com>
18030
44217823
RH
18031 * config/mn10300/mn10300.md (addsi3_flags): New.
18032 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
18033 (subsi3_flags, subc_internal, subdi3): New.
18034 (subdi3_internal, *subdi3_degenerate): New.
18035 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
18036
37a185d7
RH
18037 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
18038 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
18039 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
18040 * config/mn10300/mn10300-protos.h: Update.
18041 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
18042 (return_ret): Likewise. Rename from return_internal_regs.
18043 (return_internal): Remove.
18044
040c5757
RH
18045 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
18046 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
18047 (mn10300_legitimate_constant_p): Likewise.
18048 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
18049 (mn10300_frame_size): New.
18050 (mn10300_expand_prologue): Use it.
18051 (mn10300_expand_epilogue): Likewise.
18052 (mn10300_initial_offset): Likewise.
18053 * config/mn10300/mn10300-protos.h: Update.
18054 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
18055 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
18056 (prologue, epilogue, return_internal): Tidy output code.
18057 (mn10300_store_multiple_operation, return): Likewise.
18058 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
18059 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
18060 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
18061 (load_pic, am33_load_pic): New.
18062 (mn10300_load_pic0, mn10300_load_pic1): New.
18063
bad41521
RH
18064 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
18065 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
18066 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
18067 (cc_flags_for_mode, cc_flags_for_code): New.
18068 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
18069 overflow flag is not valid. Validate that the flags we need
18070 for the comparison are valid.
18071 (mn10300_output_cmp): Remove.
18072 (mn10300_output_add): New.
18073 (mn10300_select_cc_mode): Use cc_flags_for_code.
18074 (mn10300_split_cbranch): New.
18075 (mn10300_match_ccmode): New.
18076 (mn10300_split_and_operand_count): New.
18077 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
18078 to the function.
18079 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
18080 (addsi3): ... here. Use mn10300_output_add.
18081 (*addsi3_flags): New.
18082 (*am33_subsi3, *mn10300_subsi3): Merge...
18083 (subsi3): ... here. Use attribute isa.
18084 (*subsi3_flags): New.
18085 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
18086 when possible.
18087 (*am33_andsi3, *mn10300_andsi3): Merge...
18088 (andsi3): ... here.
18089 (*andsi3_flags): New.
18090 (andsi3 splitters): New.
18091 (*am33_iorsi3, *mn10300_iorsi3): Merge...
18092 (iorsi3): ... here.
18093 (*iorsi3_flags): New.
18094 (*am33_xorsi3, *mn10300_xorsi3): Merge...
18095 (xorsi3): ... here.
18096 (*xorsi3_flags): New.
18097 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
18098 (one_cmplsi2): ... here.
18099 (*one_cmplsi2_flags): New.
18100 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
18101 instead of "dax" in constraints. Use mn10300_split_cbranch.
18102 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
18103 use matching constraints to eliminate a self-comparison.
18104 (*integer_conditional_branch): Rename from integer_conditional_branch.
18105 Use int_mode_flags to match CC_REG.
18106 (*cbranchsi4_btst, *btstsi): New.
18107 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
18108 mn10300_split_cbranch.
18109 (*am33_cmpsf): Rename from am33_cmpsf.
18110 (*float_conditional_branch): Rename from float_conditional_branch.
18111 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
18112 (zero_extendqisi2): ... here.
18113 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
18114 (zero_extendhisi2): ... here.
18115 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
18116 (extendqisi2): ... here.
18117 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
18118 (extendhisi2): ... here.
18119 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
18120 (ashlsi3): ... here.
18121 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
18122 (lshrsi3): ... here.
18123 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
18124 (ashrsi3): ... here.
18125 (consecutive add peephole): Remove.
18126 * config/mn10300/predicates.md (label_ref_operand): New.
18127 (int_mode_flags): New.
18128 (CCZN_comparison_operator): New.
18129
9efb4993
RH
18130 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
18131 (throughput_42_latency_43): New reservation.
18132 (mulsidi3, umulsidi3): New expanders.
18133 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
18134 the MDR register to allocation; separately allocate the low and
18135 high parts of the DImode result.
18136 (umulsidi3_internal): Similarly.
18137 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
18138 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
18139 (udivsi3, umodsi3): Remove.
18140 (udivmodsi4, divmodsi4): New expanders.
18141 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
18142 (*divmodsi4): Simiarly.
18143 (ext_internal): New.
18144
c25a21f5
RH
18145 * config/mn10300/constraints.md ("z"): New constraint.
18146 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
18147 (FIXED_REGISTERS): Don't fix MDR.
18148 (CALL_USED_REGSITERS): Reformat nicely.
18149 (REG_ALLOC_ORDER): Add MDR.
18150 (enum regclass): Add MDR_REGS.
18151 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
18152 (IRA_COVER_CLASSES): Add MDR_REGS.
18153 (REGNO_REG_CLASS): Handle MDR_REG.
18154 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
18155 (mn10300_register_move_cost): Likewise.
18156 * config/mn10300/mn10300.md (MDR_REG): New.
18157 (*movsi_internal): Handle moves to/from MDR_REGS.
18158
36846b26
RH
18159 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
18160 POST_MODIFY.
18161 (mn10300_secondary_reload): Tidy combination reload classes.
18162 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
18163 addresses for AM33. Allow symbolic offsets for reg+imm.
18164 (mn10300_regno_in_class_p): New.
18165 (mn10300_legitimize_reload_address): New.
18166 * config/mn10300/mn10300.h (enum reg_class): Remove
18167 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
18168 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
18169 SP_OR_GENERAL_REGS.
18170 (REG_CLASS_NAMES): Update to match.
18171 (REG_CLASS_CONTENTS): Likewise.
18172 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
18173 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
18174 (REGNO_IN_RANGE_P): Remove.
18175 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
18176 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
18177 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
18178 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
18179 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
18180 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
18181 (REGNO_GENERAL_P): New.
18182 (HAVE_POST_MODIFY_DISP): New.
18183 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
18184 (LEGITIMIZE_RELOAD_ADDRESS): New.
18185 * config/mn10300/mn10300-protos.h: Update.
18186
8b119bb6
RH
18187 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
18188 DATA_REGS for AM33 stack-pointer destination.
18189 (mn10300_preferred_output_reload_class): Likewise.
18190 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
18191 into a form appropriate for ...
18192 (TARGET_SECONDARY_RELOAD): New.
18193 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
18194 * config/mn10300/mn10300-protos.h: Update.
18195 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
18196 reload_insi; use the "A" constraint for the scratch; handle AM33
18197 moves of sp to non-address registers.
18198
b1efde2a
RH
18199 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
18200 (*movqi_internal): ... here.
18201 (*am33_movhi, *mn10300_movhi): Merge into...
18202 (*movhi_internal): ... here.
18203 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
18204 as the source/destination of moves from/to SP.
18205 (movsf): Only allow for AM33-2.
1c3ba85b 18206 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
18207 any integer constant constraint. Only allow for AM33-2. Tidy
18208 all of the alternative outputs.
18209 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
18210 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
18211 for MN103.
18212 (udivsi3, umodsi3): New patterns for MN103 only.
18213
b899fd78
JR
182142011-01-19 Joern Rennecke <amylaar@spamcop.net>
18215
18216 * doc/tm.texi.in: Spell out that a lack of register class unions
18217 can lead to ICEs.
18218 * doc/tm.texi: Regenerate.
18219
afaaa67d
JJ
182202011-01-19 Jakub Jelinek <jakub@redhat.com>
18221
2e0642cd
JJ
18222 PR rtl-optimization/47337
18223 * dce.c (check_argument_store): New function.
18224 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
18225
afaaa67d
JJ
18226 PR tree-optimization/47290
18227 * tree-eh.c (infinite_empty_loop_p): New function.
18228 (cleanup_empty_eh): Use it.
18229
d2cd871f
SE
182302011-01-18 Steve Ellcey <sje@cup.hp.com>
18231
18232 PR target/46997
18233 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
18234 (a64_expand_widen_sum): Ditto.
18235 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
18236 (vec_extract_evenodd_help): Ditto.
18237 (vec_extract_evenv4hi): Ditto.
18238 (vec_extract_oddv4hi): Ditto.
18239 (vec_extract_evenv2si): Ditto.
18240 (vec_extract_oddv2si): Ditto.
18241 (vec_extract_evenv2sf): Ditto.
18242 (vec_extract_oddv2sf): Ditto.
18243 (vec_pack_trunc_v4hi: Ditto.
18244 (vec_pack_trunc_v2si): Ditto.
18245 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
18246 (vec_interleave_highv8qi): Ditto.
18247 (mix1_r): Ditto.
18248 (vec_extract_oddv8qi): Ditto.
18249 (vec_interleave_lowv4hi): Ditto.
18250 (vec_interleave_highv4hi): Ditto.
18251 (vec_interleave_lowv2si): Ditto.
18252 (vec_interleave_highv2si): Ditto.
18253
41a1208a
JDA
182542011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18255
18256 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
18257 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
18258 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
18259 (pa_c_mode_for_suffix): New.
18260 (TARGET_EXPAND_BUILTIN): Define.
18261 (TARGET_C_MODE_FOR_SUFFIX): Define.
18262 (pa_builtins): Define.
18263 (pa_init_builtins): Register __float128 type and init new support
18264 builtins.
18265 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
18266 * config/pa/quadlib.c (_U_Qfcopysign): New.
18267
1ecad98e
EB
182682011-01-18 Eric Botcazou <ebotcazou@adacore.com>
18269
18270 PR middle-end/46894
18271 * explow.c (allocate_dynamic_stack_space): Do not assume more than
18272 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
18273 are defined.
18274
d4f2460a
UW
182752011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18276
18277 PR tree-optimization/47179
18278 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
18279 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
18280
4994da65
RG
182812011-01-18 Richard Guenther <rguenther@suse.de>
18282
18283 PR rtl-optimization/47216
18284 * emit-rtl.c: Include tree-flow.h.
18285 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
18286 of replicating it with different semantics.
18287 * Makefile.in (emit-rtl.o): Adjust.
18288
1eb458d1
RR
182892011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18290
38be4072 18291 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 18292 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 18293
e7ef91dc
JJ
182942011-01-18 Jakub Jelinek <jakub@redhat.com>
18295
18296 PR rtl-optimization/47299
18297 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 18298 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
18299 * expmed.c (expand_widening_mult): Don't try to optimize constant
18300 multiplication if op0 has VOIDmode. Convert op1 constant to mode
18301 before using it.
18302
535b7874
RW
183032011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18304
18305 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
18306 spacing after 'e.g.', typos, comma, hyphenation.
18307
27bf36f3
RH
183082011-01-17 Richard Henderson <rth@redhat.com>
18309
8a5b5449
RH
18310 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
18311 (rx_restricted_mem_operand): New.
18312 (rx_shift_operand): Use register_operand.
18313 (rx_source_operand, rx_compare_operand): Likewise.
18314 * config/rx/rx.md (addsi3_flags): New expander.
18315 (adddi3): Rewrite as expander.
18316 (adc_internal, *adc_flags, adddi3_internal): New patterns.
18317 (subsi3_flags): New expander.
18318 (subdi3): Rewrite as expander.
18319 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
18320
784f69be
RH
18321 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
18322 (rx_init_builtins): Remove sat builtin.
18323 (rx_expand_builtin): Likewise.
18324 * config/rx/rx.md (ssaddsi3): New.
18325 (*sat): Rename from sat. Represent the CC_REG input.
18326
f033541c
RH
18327 * config/rx/predicates.md (rshift_operator): New.
18328 * config/rx/rx.c (rx_expand_insv): Remove.
18329 * config/rx/rx-protos.h: Update.
18330 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
18331 operand to the canonical position.
18332 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
18333 (*bitclr, *bitclr_in_memory): Similarly.
18334 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
18335 (insv): Retain the zero_extract in the expansion.
18336
34fee389
RH
18337 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
18338 (bswaphi2, bitinvert, revw): Likewise.
18339
265c835f
RH
18340 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
18341 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
18342 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
18343 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
18344 (bitset, bitset_in_memory): Likewise.
18345 (bitinvert, bitinvert_in_memory): Likewise.
18346 (bitclr, bitclr_in_memory): Likewise.
18347 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
18348 (rx_strend, rx_cmpstrn): Likewise.
18349 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
18350 (bitop peep2 patterns): Remove.
18351
b4d83be3
RH
18352 * config/rx/rx.c (rx_match_ccmode): New.
18353 * config/rx/rx-protos.h: Update.
18354 * config/rx/rx.md (abssi2): Clobber, don't set flags.
18355 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
18356 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
18357 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
18358 (fix_truncsfsi2, floatsisf2): Likewise.
18359 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
18360 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
18361 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
18362 (*subsi3_flags, *xorsi3_flags): New.
18363
d0acb939
RH
18364 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
18365
c06fc3d9
RH
18366 * config/rx/rx.c (rx_print_operand): Remove workaround for
18367 unsplit comparison operations.
18368
2882702b
RH
18369 * config/rx/rx.md (movsicc): Split after reload.
18370 (*movsicc): Merge *movsieq and *movsine via match_operator.
18371 (*stcc): New pattern.
18372
6f7310f2
RH
18373 * config/rx/rx.c (rx_float_compare_mode): Remove.
18374 * config/rx/rx.h (rx_float_compare_mode): Remove.
18375 * config/rx/rx.md (cstoresi4): Split after reload.
18376 (*sccc): New pattern.
18377
e963cb1a
RH
18378 * config/rx/predicates.md (label_ref_operand): New.
18379 (rx_z_comparison_operator): New.
18380 (rx_zs_comparison_operator): New.
18381 (rx_fp_comparison_operator): New.
18382 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
18383 Validate that the flags are set properly for the comparison.
18384 (rx_gen_cond_branch_template): Remove.
18385 (rx_cc_modes_compatible): Remove.
18386 (mode_from_flags): New.
18387 (flags_from_code): Rename from flags_needed_for_conditional.
18388 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
18389 (rx_select_cc_mode): Likewise.
18390 (rx_split_fp_compare): New.
18391 (rx_split_cbranch): New.
18392 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
18393 (*cbranchsi4): Use match_operator and rx_split_cbranch.
18394 (*cbranchsf4): Similarly.
18395 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
18396 match_operator and rx_split_cbranch.
18397 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
18398 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
18399 (*cmpsi): Rename from cmpsi.
18400 (*tstsi): Rename from tstsi.
18401 (*cmpsf): Rename from cmpsf; use CC_Fmode.
18402 (*conditional_branch): Rename from conditional_branch.
18403 (*reveresed_conditional_branch): Remove.
18404 (b<code>): Remove expander.
18405 * config/rx/rx-protos.h: Update.
18406
af530bb4
RH
18407 * config/rx/rx.c (rx_compare_redundant): Remove.
18408 * config/rx/rx.md (cmpsi): Don't use it.
18409 * config/rx/rx-protos.h: Update.
18410
27bf36f3
RH
18411 * config/rx/rx-modes.def (CC_F): New mode.
18412 * config/rx/rx.c (rx_select_cc_mode): New.
18413 * config/rx/rx.h (SELECT_CC_MODE): Use it.
18414 * config/rx/rx-protos.h: Update.
18415
d7fde127
RH
184162011-01-17 Richard Henderson <rth@redhat.com>
18417
18418 * except.c (dump_eh_tree): Fix stray ; after for statement.
18419
6ff38230
RG
184202011-01-17 Richard Guenther <rguenther@suse.de>
18421
18422 PR tree-optimization/47313
18423 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
18424 handling before copying the body. Properly deal with
18425 by-reference result in SSA form.
18426
114ce554
ILT
184272011-01-17 Ian Lance Taylor <iant@google.com>
18428
bf5cd92b 18429 PR target/47219
114ce554
ILT
18430 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
18431 (struct_value_alias_set): Don't define.
18432 (sparc_option_override): Don't set sparc_sr_alias_set and
18433 struct_value_alias_set.
18434 (save_or_restore_regs): Use gen_frame_mem rather than calling
18435 set_mem_alias_set.
18436 (sparc_struct_value_rtx): Likewise.
18437
98c6d93c
L
184382011-01-17 H.J. Lu <hongjiu.lu@intel.com>
18439
18440 PR target/47318
7a81008b 18441 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
18442 (_mm_maskstore_pd): Likewise.
18443 (_mm_maskload_ps): Likewise.
18444 (_mm_maskstore_ps): Likewise.
18445 (_mm256_maskload_pd): Change mask to __m256i.
18446 (_mm256_maskstore_pd): Likewise.
18447 (_mm256_maskload_ps): Likewise.
18448 (_mm256_maskstore_ps): Likewise.
18449
18450 * config/i386/i386-builtin-types.def: Updated.
18451 (ix86_expand_special_args_builtin): Likewise.
18452
18453 * config/i386/i386.c (bdesc_special_args): Update
18454 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
18455 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
18456 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
18457 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
18458
18459 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
18460 Use <avxpermvecmode> on mask register.
18461 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
18462
b9361af2 184632011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
18464 Michael Haubenwallner <michael.haubenwallner@salomon.at>
18465 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
18466
18467 PR target/46655
18468 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
18469 if <= USHRT_MAX in 32-bit mode.
18470
b7ae9eb5
RW
184712011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18472
18473 * doc/install.texi (Configuration, Specific): Wrap long
18474 lines in examples. Allow line wrapping in long options
18475 and URLs where beneficial for PDF output.
18476
4377fad9
RS
184772011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
18478
18479 * config/mips/mips.c (mips_classify_symbol): Don't return
18480 SYMBOL_PC_RELATIVE for nonlocal labels.
18481
55959ffa 184822011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 18483
55959ffa
EB
18484 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
18485
184862011-01-15 Jan Hubicka <jh@suse.cz>
18487
18488 PR tree-optimization/47276
be46831f
JH
18489 * ipa.c (function_and_variable_visibility): Do not try to mark alias
18490 declarations as needed.
18491
05842ff5
MJ
184922011-01-15 Martin Jambor <mjambor@suse.cz>
18493
18494 * common.opt (fdevirtualize): New flag.
18495 * doc/invoke.texi (Option Summary): Document it.
18496 * opts.c (default_options_table): Add devirtualize flag.
18497 * ipa-prop.c (detect_type_change): Return immediately if
18498 devirtualize flag is not set.
18499 (detect_type_change_ssa): Likewise.
18500 (compute_known_type_jump_func): Likewise.
18501 (ipa_analyze_virtual_call_uses): Likewise.
18502
f65cf2b7
MJ
185032011-01-14 Martin Jambor <mjambor@suse.cz>
18504
18505 PR tree-optimization/45934
18506 PR tree-optimization/46302
18507 * ipa-prop.c (type_change_info): New type.
18508 (stmt_may_be_vtbl_ptr_store): New function.
18509 (check_stmt_for_type_change): Likewise.
18510 (detect_type_change): Likewise.
18511 (detect_type_change_ssa): Likewise.
18512 (compute_complex_assign_jump_func): Check for dynamic type change.
18513 (compute_complex_ancestor_jump_func): Likewise.
18514 (compute_known_type_jump_func): Likewise.
18515 (compute_scalar_jump_functions): Likewise.
18516 (ipa_analyze_virtual_call_uses): Likewise.
18517 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
18518
eb5bb0fd
JM
185192011-01-14 Joseph Myers <joseph@codesourcery.com>
18520
18521 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
18522 * config/i386/i386.opt (msse5): New Alias.
18523
f2060fbe
JM
185242011-01-14 Joseph Myers <joseph@codesourcery.com>
18525
18526 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18527 * config/sparc/linux64.h (CC1_SPEC): Likewise.
18528 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18529 * config/sparc/sparc.h (CC1_SPEC): Likewise.
18530
3a7b4385
JM
185312011-01-14 Joseph Myers <joseph@codesourcery.com>
18532
18533 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
18534 -mcpu options.
18535 * config/sparc/linux64.h (CC1_SPEC): Likewise.
18536 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
18537 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
18538 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
18539 Likewise.
18540 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
18541
a7b778f8
JM
185422011-01-14 Joseph Myers <joseph@codesourcery.com>
18543
38be4072 18544 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 18545
a7edae0a
MS
185462011-01-14 Mike Stump <mikestump@comcast.net>
18547
18548 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
18549 * config/fr30/fr30.md: Likweise
18550 (movsi_push): Likewise.
18551 (movsi_pop): Likewise.
18552 (enter_func): Likewise.
18553 * config/moxie/moxie.md (movsi_push): Likewise.
18554 (movsi_pop): Likewise.
18555
cbabf03f
JM
185562011-01-14 Joseph Myers <joseph@codesourcery.com>
18557
18558 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
18559 %{no_archive} %{exact_version}.
18560 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
18561 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
18562 %{no_archive} %{exact_version}.
18563 * config/mips/openbsd.h (LINK_SPEC): Likewise.
18564 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
18565 * config/mips/vxworks.h: Likewise.
18566
438da41a
JM
185672011-01-14 Joseph Myers <joseph@codesourcery.com>
18568
38be4072 18569 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 18570
da290a42
JM
185712011-01-14 Joseph Myers <joseph@codesourcery.com>
18572
18573 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
18574 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
18575
8989d00e
JM
185762011-01-14 Joseph Myers <joseph@codesourcery.com>
18577
18578 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
18579 -nodefaultlib.
18580
a3010a69
JM
185812011-01-14 Joseph Myers <joseph@codesourcery.com>
18582
18583 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
18584 for mcpu not cpu.
18585 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
18586 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
18587 not cpu.
18588 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
18589 Don't handle -shlib.
18590
e7f2f537
JM
185912011-01-14 Joseph Myers <joseph@codesourcery.com>
18592
18593 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
18594 (CC1_SPEC): Don't handle -profile.
18595
34830bfd
JM
185962011-01-14 Joseph Myers <joseph@codesourcery.com>
18597
18598 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
18599 * config/mips/mips.h (CC1_SPEC): Likewise.
18600
b2d36e74
JM
186012011-01-14 Joseph Myers <joseph@codesourcery.com>
18602
18603 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
18604 * config/mips/mips.h (CC1_SPEC): Likewise.
18605
dabadc52
JM
186062011-01-14 Joseph Myers <joseph@codesourcery.com>
18607
18608 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
18609 * config/m32r/linux.h (LINK_SPEC): Likewise.
18610 * config/mips/linux.h (LINK_SPEC): Likewise.
18611 * config/mips/linux64.h (LINK_SPEC): Likewise.
18612 * config/sparc/linux.h (LINK_SPEC): Likewise.
18613 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
18614 LINK_SPEC): Likewise.
18615 * config/xtensa/linux.h (LINK_SPEC): Likewise.
18616
43ee6785
JM
186172011-01-14 Joseph Myers <joseph@codesourcery.com>
18618
18619 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
18620 %{version:-v}.
18621 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
18622
45e79dfd
JM
186232011-01-14 Joseph Myers <joseph@codesourcery.com>
18624
18625 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
18626 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
18627
37e9e71d
JM
186282011-01-14 Joseph Myers <joseph@codesourcery.com>
18629
18630 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
18631
bb127cd8
RO
186322011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18633
18634 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
18635 supports -Bstatic/-Bdynamic.
18636 * configure: Regenerate.
18637
89a012ea 186382011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 18639 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
18640
18641 PR target/46037
18642 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
18643 when checking debug_info_level. Test write_symbols instead of
18644 debug_hooks->var_location when setting flag_var_tracking_uninit.
18645
7352c013
RG
186462011-01-14 Richard Guenther <rguenther@suse.de>
18647
18648 PR tree-optimization/47179
18649 * target.def (ref_may_alias_errno): New target hook.
18650 * targhooks.h (default_ref_may_alias_errno): Declare.
18651 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
18652 (default_ref_may_alias_errno): New function.
18653 * target.h (struct ao_ref_s): Declare.
18654 * tree-ssa-alias.c: Include target.h.
18655 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
18656 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
18657 (targhooks.o): Likewise.
18658 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
18659 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
18660
9a6c9288
RG
186612011-01-14 Richard Guenther <rguenther@suse.de>
18662
18663 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
18664
0fdb0d27
RG
186652011-01-14 Richard Guenther <rguenther@suse.de>
18666
18667 PR tree-optimization/47280
18668 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
18669 return CFG changes.
18670 (tree_ssa_forward_propagate_single_use_vars): Deal with
18671 CFG changes from associate_plusminus.
18672
8f66db3b
RG
186732011-01-14 Richard Guenther <rguenther@suse.de>
18674
18675 PR middle-end/47281
18676 Revert
18677 2011-01-11 Richard Guenther <rguenther@suse.de>
18678
280d9630
EB
18679 PR tree-optimization/46076
18680 * tree-ssa.c (useless_type_conversion_p): Conversions from
18681 unprototyped to empty argument list function types are useless.
8f66db3b 18682
6c0c92e6
RG
186832011-01-14 Richard Guenther <rguenther@suse.de>
18684
18685 PR tree-optimization/47286
280d9630 18686 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 18687
db09f943
MJ
186882011-01-14 Martin Jambor <mjambor@suse.cz>
18689
18690 PR middle-end/46823
18691 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
18692
dde8a3a4
AS
186932011-01-13 Anatoly Sokolov <aesok@post.ru>
18694
18695 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
18696 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18697 * config/xtensa/xtensa.c (xtensa_libcall_value,
18698 xtensa_function_value_regno_p): New functions.
18699 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18700
a2b63a20
KT
187012011-01-13 Kai Tietz <kai.tietz@onevision.com>
18702
18703 PR c++/47213
18704 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
18705 PE specific hook.
18706 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
18707 New function prototype.
18708 * config/i386/winnt.c (i386_pe_assemble_visibility):
18709 Warn only if attribute was specified by user.
18710
b41f0b34
MM
187112011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
18712
18713 PR target/47251
18714 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
18715 floating point.
18716 (floatunsdidf2_fcfidu): Ditto.
18717
3f3c098d
AK
187182011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18719
18720 * config/s390/s390.c (print_operand_address): Replace 'error' with
18721 'output_operand_lossage'.
18722 (print_operand): Likewise.
18723
29fa95ed
JL
187242011-01-13 Jeff Law <law@redhat.com>
18725
280d9630 18726 PR rtl-optimization/39077
29fa95ed
JL
18727 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
18728 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
18729 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
18730 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
18731 * gcse.c (prune_insertions_deletions): New function.
18732 (compute_pre_data): Use it.
18733
71d12276
DS
187342011-01-13 Dodji Seketeli <dodji@redhat.com>
18735
18736 PR debug/PR46973
18737 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
18738 static function.
61052244 18739 (prune_unused_types_mark): Use it.
71d12276 18740
9b0f04e7
AB
187412011-01-13 Andrey Belevantsev <abel@ispras.ru>
18742
18743 PR rtl-optimization/45352
1c3ba85b 18744 * sel-sched.c: Update copyright years.
9b0f04e7 18745 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 18746 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 18747
d6a3e264
RH
187482011-01-12 Richard Henderson <rth@redhat.com>
18749
a49b692a
RH
18750 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
18751 (TARGET_MD_ASM_CLOBBERS): New.
18752
126b1483
RH
18753 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
18754 (TARGET_DELEGITIMIZE_ADDRESS): New.
18755
f3d9d2e0
RH
18756 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
18757 (clzsi2, *bsch): New patterns.
18758
d84760c9
RH
18759 * config/mn10300/mn10300.md (INT): New mode iterator.
18760 (*mov<INT>_clr): New pattern, and peep2 to generate it.
18761
ec815d65
RH
18762 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
18763 flag_split_wide_types.
18764
d6a3e264
RH
18765 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
18766 (mn10300_trampoline_init): Rewrite without a template, an immediate
18767 load and a direct branch.
18768 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
18769
0f8ab434
AS
187702011-01-12 Anatoly Sokolov <aesok@post.ru>
18771
18772 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18773 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
18774 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
18775 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18776
d8a24b65
KT
187772011-01-12 Kai Tietz <kai.tietz@onevision.com>
18778
18779 PR debug/47209
18780 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
18781 of type.
18782
56e22cab
JH
187832011-01-12 Jan Hubicka <jh@suse.cz>
18784
18785 PR driver/47244
18786 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
18787 (PLUGIN_COND_CLOSE): New macro.
18788 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
18789
4b18b3c2
RG
187902011-01-12 Richard Guenther <rguenther@suse.de>
18791
18792 PR lto/47259
18793 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
18794 register variables in a MEM_REF.
18795
8e38461c
JM
187962011-01-12 Joseph Myers <joseph@codesourcery.com>
18797
18798 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
18799 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
18800 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
18801 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
18802 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
18803 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
18804 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
18805 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
18806 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
18807 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
18808 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
18809 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
18810 * config/gnu-user.h: New. Copied from linux.h.
18811 (LINUX_TARGET_STARTFILE_SPEC): Rename to
18812 GNU_USER_TARGET_STARTFILE_SPEC.
18813 (LINUX_TARGET_ENDFILE_SPEC): Rename to
18814 GNU_USER_TARGET_ENDFILE_SPEC.
18815 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
18816 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
18817 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
18818 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
18819 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
18820 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
18821 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
18822 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
18823 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
18824 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
18825 * config/arm/linux-eabi.h (CC1_SPEC): Use
18826 GNU_USER_TARGET_CC1_SPEC.
18827 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
18828 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
18829 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
18830 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
18831 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
18832 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
18833 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
18834 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
18835
a570fc16
RG
188362011-01-12 Richard Guenther <rguenther@suse.de>
18837
18838 PR other/46946
18839 * doc/invoke.texi (ffast-math): Document it is turned on
18840 with -Ofast.
18841
b0223c3e
JH
188422011-01-12 Jan Hubicka <jh@suse.cz>
18843
18844 PR tree-optimization/47233
ca1e00b3
EB
18845 * opts.c (common_handle_option): Disable ipa-reference with profile
18846 feedback.
b0223c3e 18847
1c3ba85b 188482011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
18849
18850 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
18851 error message.
18852
d853ee42
NP
188532011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
18854
18855 * c-parser.c (c_lex_one_token): Updated and reindented some
18856 comments. No changes in code.
18857
4053a5a0
ILT
188582011-01-11 Ian Lance Taylor <iant@google.com>
18859
18860 * godump.c (go_output_var): Don't output the variable if there is
18861 already a type with the same name.
18862
fa3e04d2
ILT
188632011-01-11 Ian Lance Taylor <iant@google.com>
18864
18865 * godump.c (go_format_type): Don't generate float80.
18866
885fe07c
RH
188672011-01-11 Richard Henderson <rth@redhat.com>
18868
72d6e3c5
RH
18869 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
18870 declaration. Rewrite for both speed and size.
18871 (mn10300_address_cost_1): Remove.
18872 (mn10300_register_move_cost): New.
18873 (mn10300_memory_move_cost): New.
18874 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
18875 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
18876 extensions, shifts, BSWAP, CLZ.
18877 (mn10300_wide_const_load_uses_clr): Remove.
18878 (TARGET_REGISTER_MOVE_COST): New.
18879 (TARGET_MEMORY_MOVE_COST): New.
18880 * config/mn10300/mn10300-protos.h: Update.
18881 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
18882
df37c023
RH
18883 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
18884 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
18885 * config/mn10300/mn10300-protos.h: Update.
18886 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
18887 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
18888 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
18889 (*test_int_bitfield, *test_byte_bitfield): Remove.
18890 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 18891 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 18892
85a337b5
RH
18893 * config/mn10300/constraints.md ("c"): Rename from "A".
18894 ("A", "D"): New constraint letters.
18895 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
18896 (fmssf4, fnmasf4, fnmssf4): Likewise.
18897
a5c727e3
RH
18898 * config/mn10300/mn10300.md (isa): New attribute.
18899 (enabled): New attribute.
18900
0d9e23f4
RH
18901 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
18902 (abssf2, negsf2): Define only for hardware fp.
18903 (sqrtsf2): Reformat.
18904 (addsf3, subsf3, mulsf3): Merge expander and insn.
18905
c157b3f0
RH
18906 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
18907 (DEBUGGER_AUTO_OFFSET): Remove.
18908 (DEBUGGER_ARG_OFFSET): Remove.
18909
cc909bba
RH
18910 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
18911 Emit register stores with the same offsets as the hardware.
18912 (mn10300_store_multiple_operation): Don't check that the register
18913 save offsets are monotonic.
18914 * config/mn10300/mn10300-protos.h: Update.
18915
e3b5c2f3
RH
18916 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
18917
885fe07c
RH
18918 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
18919 in terms of the value on the stack, not the MDR register.
18920
6e701822
JH
189212011-01-11 Jan Hubicka <jh@suse.cz>
18922
18923 PR lto/45721
18924 PR lto/45375
18925 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
18926 (symbol_alias_set_destroy, symbol_alias_set_contains,
18927 propagate_aliases_backward): Declare.
18928 * lto-streamer-out.c (struct sets): New sturcture.
18929 (trivally_defined_alias): New function.
18930 (output_alias_pair_p): Rewrite.
18931 (output_unreferenced_globals): Fix output of alias pairs.
18932 (produce_symtab): Likewise.
18933 * ipa.c (function_and_variable_visibility): Set weak alias destination
18934 as needed in lto.
18935 * varasm.c (symbol_alias_set_t): Remove.
18936 (symbol_alias_set_destroy): Export.
18937 (propagate_aliases_forward, propagate_aliases_backward): New functions
18938 based on ...
18939 (compute_visible_aliases): ... this one; remove.
18940 (trivially_visible_alias): New
18941 (trivially_defined_alias): New.
18942 (remove_unreachable_alias_pairs): Rewrite.
18943 (finish_aliases_1): Reorganize code checking if alias is defined.
18944 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
18945 in LTO mode.
18946
1b248907
RG
189472011-01-11 Richard Guenther <rguenther@suse.de>
18948
18949 PR tree-optimization/46076
18950 * tree-ssa.c (useless_type_conversion_p): Conversions from
18951 unprototyped to empty argument list function types are useless.
18952
b1923f0a
RG
189532011-01-11 Richard Guenther <rguenther@suse.de>
18954
18955 PR middle-end/45235
18956 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
18957 volatile MEMs as MEM_READONLY_P.
18958
e98965af
RG
189592011-01-11 Richard Guenther <rguenther@suse.de>
18960
18961 PR tree-optimization/47239
18962 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
18963
9f9ca914
JL
189642011-01-11 Jeff Law <law@redhat.com>
18965
1ee3ea05 18966 PR tree-optimization/47086
9f9ca914
JL
18967 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
18968 IVs from statements that might throw.
18969
345fdcb7
JH
189702011-01-10 Jan Hubicka <jh@suse.cz>
18971
18972 PR lto/45375
18973 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
18974
c459c97b
JH
189752011-01-10 Jan Hubicka <jh@suse.cz>
18976
18977 PR lto/45375
18978 * profile.c (read_profile_edge_counts): Ignore profile inconistency
18979 when correcting profile.
18980
06c9eb51
JH
189812011-01-10 Jan Hubicka <jh@suse.cz>
18982
18983 PR lto/46083
18984 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
18985 DECL_FINI_PRIORITY.
18986 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
18987 Restore DECL_FINI_PRIORITY.
18988
ae9fd815
RW
189892011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18990
18991 * doc/gimple.texi: Fix quoting of multi-word return values in
18992 @deftypefn statements. Ensure presence of return value. Wrap
18993 overlong @deftypefn lines.
18994 (is_gimple_operand, is_gimple_min_invariant_address): Remove
18995 descriptions of removed functions.
18996 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
18997 of multi-word return value in @deftypefn statement.
18998
0ecb4a7c
RW
189992011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19000
19001 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
19002 (Conditional Expressions, Logical Operators)
19003 (Statement and operand traversals): Do not indent smallexample
19004 code. Fix duplicate function argument in example.
19005
2e5e346d
JL
190062011-01-10 Jeff Law <law@redhat.com>
19007
1ee3ea05 19008 PR tree-optimization/47141
2e5e346d
JL
19009 * ipa-split.c (split_function): Handle case where we are
19010 returning a value and the return block has a virtual operand phi.
19011
cf9712cc
JH
190122011-01-10 Jan Hubicka <jh@suse.cz>
19013
1c3ba85b 19014 PR tree-optimization/47234
cf9712cc
JH
19015 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
19016 (pass_feedback_split_functions): Declare.
19017 * passes.c (init_optimization_passes): Add ipa-split as subpass of
19018 tree-profile.
19019 * ipa-split.c (gate_split_functions): Update comments; disable
19020 split-functions for profile_arc_flag and branch_probabilities.
19021 (gate_feedback_split_functions): New function.
19022 (execute_feedback_split_functions): New function.
19023 (pass_feedback_split_functions): New global var.
19024
94cd932c
L
190252011-01-10 H.J. Lu <hongjiu.lu@intel.com>
19026
19027 PR lto/46760
19028 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
19029 calling gimple_call_set_cannot_inline.
19030
fbbfcaf1
IS
190312011-01-10 Iain Sandoe <iains@gcc.gnu.org>
19032
19033 * config/darwin-sections.def: Remove unused section.
19034
d06865bf
DK
190352011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
19036
19037 PR c++/47218
19038 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
19039
96bbfbac
NP
190402011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
19041
19042 PR objc/47232
19043 * c-parser.c (c_parser_declaration_or_fndef): Improved
19044 error message.
19045
1ba6516f
KT
190462011-01-09 Kai Tietz <kai.tietz@onevision.com>
19047
19048 * config/i386/winnt.c (i386_pe_start_function): Make sure
19049 to switch back to function's section.
19050
0c5d770e
IS
190512011-01-09 Iain Sandoe <iains@gcc.gnu.org>
19052
19053 PR gcc/46902
19054 PR testsuite/46912
19055 * plugin.c: Move include of dlfcn.h from here...
19056 * system.h: ... to here.
19057
190582011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
19059
19060 * doc/cpp.texi (C++ Named Operators): Fix markup for header
19061 file name.
19062 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
19063 two extra empty pages in PDF output.
19064
046608a3
NP
190652011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
19066
19067 PR objc/47078
19068 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
19069 for error recovery purposes behave as if it was not specified so
19070 that the default type is usd.
19071
8cb114b9
JH
190722011-01-07 Jan Hubicka <jh@suse.cz>
19073
19074 PR tree-optmization/46469
19075 * ipa.c (function_and_variable_visibility): Clear needed flags on
19076 nodes with external decls; handle weakrefs merging correctly.
19077
b294a75e
JM
190782011-01-07 Joseph Myers <joseph@codesourcery.com>
19079
19080 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
19081 not false.
19082
96bdf9b4
JH
190832011-01-07 Jan Hubicka <jh@suse.cz>
19084
f60c2554 19085 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
19086 and no longer claim that gold is required for linker plugin.
19087 * configure: Regenerate.
19088 * gcc.c (PLUGIN_COND): New macro.
19089 (LINK_COMMAND_SPEC): Use it.
19090 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
19091 * config.in (HAVE_LTO_PLUGIN): New.
19092 * configure.ac (--with-lto-plugin): New parameter; autodetect
19093 HAVE_LTO_PLUGIN.
19094
17afc0fe
JH
190952011-01-07 Jan Hubicka <jh@suse.cz>
19096
19097 PR tree-optimization/46367
19098 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
19099 when we can update original.
19100 (cgraph_mark_inline_edge): Sanity check.
19101 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
19102
d4c48c0f
UW
191032011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19104
19105 * config/spu/spu.h (ASM_COMMENT_START): Define.
19106
96f5b137
L
191072011-01-07 H.J. Lu <hongjiu.lu@intel.com>
19108
19109 PR driver/42445
19110 * gcc.c (%>S): New.
19111 (SWITCH_KEEP_FOR_GCC): Likewise.
19112 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
19113 (do_spec_1): Handle "%>".
19114
19115 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
19116
c6a8f6de
JJ
191172011-01-07 Jakub Jelinek <jakub@redhat.com>
19118
c21bbd7a
JJ
19119 PR target/47201
19120 * config/i386/i386.c (ix86_delegitimize_address): If
19121 simplify_gen_subreg fails, return orig_x.
19122
c6a8f6de
JJ
19123 PR bootstrap/47187
19124 * value-prof.c (gimple_stringop_fixed_value): Handle
19125 lhs of the call properly.
19126
fe95fbf9
JH
191272011-01-07 Jan Hubicka <jh@suse.cz>
19128
19129 PR lto/45375
19130 * lto-opt.c (lto_reissue_options): Set flag_shlib.
19131
14d11d40
IS
191322011-01-07 Iain Sandoe <iains@gcc.gnu.org>
19133
72e961c8
EB
19134 * target.def (function_switched_text_sections): New hook.
19135 * doc/tm.texi: Regenerated.
19136 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 19137 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
19138 (final_scan_insn): Call function_switched_text_sections when a
19139 mid-function section change occurs.
14d11d40 19140 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
19141 * config/darwin-protos.h (darwin_function_switched_text_sections):
19142 Likewise.
14d11d40 19143 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 19144 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 19145
0b764288
IS
191462011-01-07 Iain Sandoe <iains@gcc.gnu.org>
19147
19148 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
19149 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
19150 the secondary code fragment when outputting for DWARF == 2.
19151
2ac6bb04
AS
191522011-01-07 Anatoly Sokolov <aesok@post.ru>
19153
19154 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19155 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
19156 Remove.
19157 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
19158 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19159
9f82de11
EB
191602011-01-06 Eric Botcazou <ebotcazou@adacore.com>
19161
19162 PR debug/46704
280d9630
EB
19163 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
19164 when it is not empty.
9f82de11
EB
19165
191662011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 19167
1ed72abf 19168 Bobcat Enablement
14b52538 19169 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 19170 (case ${target}): Add btver1.
14b52538 19171 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 19172 -march=native recognize btver1 processors.
14b52538 19173 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 19174 btver1 def_and_undef
14b52538 19175 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
19176 btver1 cost table.
19177 (m_BTVER1): New definition.
19178 (m_AMD_MULTIPLE): Includes m_BTVER1.
19179 (initial_ix86_tune_features): Add btver1 tune.
19180 (processor_target_table): Add btver1 entry.
19181 (static const char *const cpu_names): Add btver1 entry.
19182 (software_prefetching_beneficial_p): Add btver1.
19183 (ix86_option_override_internal): Add btver1 instruction sets.
19184 (ix86_issue_rate): Add btver1.
19185 (ix86_adjust_cost): Add btver1.
14b52538 19186 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
19187 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
19188 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
19189 * config/i386/i386.md (define_attr "cpu"): Add btver1.
19190
e1a973d8
RO
191912011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19192
19193 PR target/43309
19194 * config/i386/i386.c (legitimize_tls_address)
19195 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
19196 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
19197 (tls_initial_exec_64_sun): New pattern.
19198
c73f67c5
GP
191992011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
19200
19201 * doc/invoke.texi (Overall Options): Improve wording and markup
19202 of the description of -wrapper.
19203
bc4c6f9c
JM
192042011-01-06 Joseph Myers <joseph@codesourcery.com>
19205
19206 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
19207 rdynamic, threads): New Driver options.
19208
adb75db0
RO
192092011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19210
19211 PR target/38118
19212 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
19213 if coming from .tdata.
19214 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
19215
402c1cb4
JH
192162011-01-06 Jan Hubicka <jh@suse.cz>
19217
19218 PR lto/47188
19219 * collect2.c (main): Do not enable LTOmode when plugin is active.
19220
a4da6485
RO
192212011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19222
19223 PR other/45915
19224 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
19225 --version output if supported.
19226 * configure: Regenerate.
19227
028dbdf4
JM
192282011-01-06 Joseph Myers <joseph@codesourcery.com>
19229
19230 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
19231 Driver options.
19232
dfe776dd
JJ
192332011-01-06 Jakub Jelinek <jakub@redhat.com>
19234
19235 PR c/47150
19236 * c-convert.c (convert): When converting a complex expression
19237 other than COMPLEX_EXPR to a different complex type, ensure
19238 c_save_expr is called instead of save_expr, unless in_late_binary_op.
19239 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
19240 when converting COMPLEX_TYPE.
19241
210dedfe
IR
192422011-01-06 Ira Rosen <irar@il.ibm.com>
19243
19244 PR tree-optimization/47139
19245 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
19246 only the last reduction value is used outside the loop. Update
19247 documentation.
19248
cd33a412
JM
192492011-01-05 Joseph Myers <joseph@codesourcery.com>
19250
19251 * config/rtems.opt: New.
19252 * config.gcc (*-*-rtems*): Use rtems.opt.
19253
819edd94
CF
192542011-01-05 Changpeng Fang <changpeng.fang@amd.com>
19255
19256 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
19257 processors do not support 3DNow instructions.
19258
dc242c4a
UW
192592011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19260
19261 * config/spu/spu.c (spu_option_override): Set parameter
19262 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
19263
be286227
JH
192642011-01-05 Jan Hubicka <jh@suse.cz>
19265
19266 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
19267 at the command line.
19268
644e637f
MJ
192692011-01-05 Martin Jambor <mjambor@suse.cz>
19270
19271 PR lto/47162
19272 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
19273 deltas on streamed outgoing edges.
19274 (output_node_opt_summary): Output info for outgoing edges only when
19275 the node is in new parameter set.
19276 (output_cgraph_opt_summary): New parameter set, passed to the two
19277 aforementioned functions. Update its forward declaration and its
19278 callee too.
19279
7bd11157
TT
192802011-01-05 Tom Tromey <tromey@redhat.com>
19281
19282 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
19283 operator to c_finish_omp_atomic.
19284 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
19285 (build_unary_op): Update.
19286 (build_modify_expr): Update.
19287 (build_asm_expr): Update.
19288
f626b979
UW
192892011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19290
19291 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
19292 newly inserted insns.
19293 (pad_bb): Likewise.
19294 (spu_emit_branch_hint): Likewise.
19295 (insert_hbrp_for_ilb_runout): Likewise.
19296 (spu_machine_dependent_reorg): Call df_finish_pass after
19297 schedule_insns returns.
19298
4c825c02
UW
192992011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19300
19301 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
19302
5e9fba51
EB
193032011-01-05 Eric Botcazou <ebotcazou@adacore.com>
19304
19305 PR tree-optimization/47005
19306 * tree-sra.c (struct access): Add 'non_addressable' bit.
19307 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
19308 (decide_one_param_reduction): Return 0 if the parameter is passed by
19309 reference and one of the accesses in the group is non_addressable.
19310
3ebb5ca6
EB
193112011-01-04 Eric Botcazou <ebotcazou@adacore.com>
19312
19313 PR tree-optimization/47056
19314 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
19315 (mark_load): Likewise. Handle FUNCTION_DECL specially.
19316 (mark_store): Likewise. Pass STMT to ipa_record_reference.
19317
d5d4d14e
EB
193182011-01-04 Eric Botcazou <ebotcazou@adacore.com>
19319
19320 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
19321 initializer. Skip view conversions from aggregate types.
19322
d996ef70
KT
193232011-01-04 Kai Tietz <kai.tietz@onevision.com>
19324
19325 PR bootstrap/47055
19326 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
19327
509d65dd 193282011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
19329
19330 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
19331 obvious typo.
19332
55c623b5
UW
193332011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19334
19335 * function.c (thread_prologue_and_epilogue_insns): Do not crash
19336 on empty epilogue sequences.
19337
b98d6b35
JM
193382011-01-04 Joseph Myers <joseph@codesourcery.com>
19339
19340 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
19341 non-static): New Driver options.
19342
a0d43bac
JZ
193432011-01-04 Jie Zhang <jie@codesourcery.com>
19344
19345 PR driver/47137
19346 * gcc.c (default_compilers[]): Set combinable field to 0
19347 for all assembly languages.
19348
2b18eb32
MX
193492011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
19350
19351 * config/mips/loongson3a.md: New file.
19352 * config/mips/mips.md: Include loongson3a.md.
19353 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
19354 TUNE_LOONGSON_3A.
19355
42a48c4f
EB
193562011-01-03 Eric Botcazou <ebotcazou@adacore.com>
19357
19358 PR middle-end/47017
19359 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
19360 instead of convert_memory_address_addr_space on the base expression.
19361
9c1732c4
UW
193622011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19363
19364 * config/spu/spu.c (spu_option_override): Update error text
19365 for bad -march= / -mtune= values.
19366
aa474365
UW
193672011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19368
19369 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
19370 if branch-hint optimization will be performed.
19371
9766135b
JJ
193722011-01-03 Jakub Jelinek <jakub@redhat.com>
19373
371556ee
JJ
19374 PR tree-optimization/47148
19375 * ipa-split.c (split_function): Convert arguments to
19376 DECL_ARG_TYPE if possible.
19377
1ac12fa2
JJ
19378 PR tree-optimization/47155
19379 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
19380 when computing uns.
19381
9766135b
JJ
19382 PR rtl-optimization/47157
19383 * combine.c (try_combine): If undobuf.other_insn becomes
19384 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
19385 and set *new_direct_jump_p too.
19386
f4a2e571
SP
193872011-01-03 Sebastian Pop <sebastian.pop@amd.com>
19388
19389 PR tree-optimization/47021
19390 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
19391
9f8e43c0
JJ
193922011-01-03 Jakub Jelinek <jakub@redhat.com>
19393
19394 * gcc.c (process_command): Update copyright notice dates.
19395 * gcov.c (print_version): Likewise.
19396 * gcov-dump.c (print_version): Likewise.
19397 * mips-tfile.c (main): Likewise.
19398 * mips-tdump.c (main): Likewise.
19399
1a2e38f3
MJ
194002011-01-03 Martin Jambor <mjambor@suse.cz>
19401
19402 PR tree-optimization/46801
19403 * tree-sra.c (type_internals_preclude_sra_p): Check whether
19404 aggregate fields start at byte boundary instead of the bit-field flag.
19405
56b721c5
L
194062011-01-03 H.J. Lu <hongjiu.lu@intel.com>
19407
19408 PR driver/47137
19409 * gcc.c (main): Revert revision 168407.
19410
839d549b
MJ
194112011-01-03 Martin Jambor <mjambor@suse.cz>
19412
19413 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
19414
4ce99a20 194152011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
19416
19417 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
19418 vector optab to expand vector/scalar shift, update gimple to vector.
19419
76df0ae6
MJ
194202011-01-03 Martin Jambor <mjambor@suse.cz>
19421
19422 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
19423 a thunk.
19424
ce47fda3
MJ
194252011-01-03 Martin Jambor <mjambor@suse.cz>
19426
19427 PR tree-optimization/46984
19428 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
19429 HOST_WIDE_INT.
19430 (cgraph_create_indirect_edge): Fixed line length.
19431 (cgraph_indirect_call_info): Declare.
19432 (cgraph_make_edge_direct) Update declaration.
19433 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
19434 (cgraph_create_indirect_edge): Use it.
19435 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
19436 callees.
19437 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
19438 the new thunk_delta representation.
19439 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
19440 HOST_WIDE_INT.
19441 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
19442 (ipa_read_indirect_edge_info): Likewise.
19443 * lto-cgraph.c (output_edge_opt_summary): New function.
19444 (output_node_opt_summary): Call it on all outgoing edges.
19445 (input_edge_opt_summary): New function.
19446 (input_node_opt_summary): Call it on all outgoing edges.
19447
1e67fa1f
L
194482011-01-02 H.J. Lu <hongjiu.lu@intel.com>
19449
19450 PR driver/47137
19451 * gcc.c (main): Don't check have_o when settting combine_inputs.
19452
6656b2ac
EB
194532011-01-02 Eric Botcazou <ebotcazou@adacore.com>
19454
19455 * regrename.c: Add general comment describing the pass.
19456 (struct du_head): Remove 'length' field.
19457 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
19458 (regrename_optimize): Do not sort chains. Rework comments, add others.
19459 Force renaming to the preferred class (if any) in the first pass and do
19460 not consider registers that belong to it in the second pass.
19461 (create_new_chain): Do not set 'length' field.
19462 (scan_rtx_reg): Likewise.
19463
bc470c24
JJ
194642011-01-02 Jakub Jelinek <jakub@redhat.com>
19465
4e996296
JJ
19466 PR tree-optimization/47140
19467 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
19468 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
19469 to bit_value_binop.
19470
bc470c24 19471 PR rtl-optimization/47028
6656b2ac
EB
19472 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
19473 parm_birth_insn instead of at the beginning of first bb.
bc470c24 19474
5af62fcd 194752011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
19476
19477 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
19478 Remove the word "see" before "@pxref".
19479 * doc/rtl.texi: Remove the word "see" before "@pxref".
19480
0e20c89f
JH
194812011-01-01 Jan Hubicka <jh@suse.cz>
19482
6656b2ac
EB
19483 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
19484 memory.
0e20c89f 19485
220e83ca
KT
194862011-01-01 Kai Tietz <kai.tietz@onevision.com>
19487
19488 PR target/38662
6656b2ac 19489 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 19490
ad41bd84 19491\f
797103eb 19492Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
19493
19494Copying and distribution of this file, with or without modification,
19495are permitted in any medium without royalty provided the copyright
19496notice and this notice are preserved.