]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gcc_release (adjust_dirs, [...]): Remove.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
e38fdc94
IR
12011-05-22 Ira Rosen <ira.rosen@linaro.org>
2
3 PR tree-optimization/49087
4 * tree-vect-loop.c (vect_is_slp_reduction): Fail if
5 LHS has no uses.
6
5b018c65
JM
72011-05-21 Jason Merrill <jason@redhat.com>
8
9 PR c++/49092
10 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
11 static storage duration.
12
abd9a770
EB
132011-05-21 Eric Botcazou <ebotcazou@adacore.com>
14
15 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
16 frame pointer.
17
bd9a3248
EB
182011-05-21 Eric Botcazou <ebotcazou@adacore.com>
19
20 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
21 false if there are call-saved registers here...
22 (sparc_can_use_return_insn_p): ...but here instead.
23 (save_or_restore_regs): Fix thinko.
24 (sparc_expand_prologue): Use current_function_is_leaf.
25 (sparc_frame_pointer_required): Likewise.
26
a5dfec9a
NC
272011-05-21 Nick Clifton <nickc@redhat.com>
28
29 PR target/49098
30 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
31
555c3771
NP
322011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
33
34 * gengtype.c (walk_type): Implemented "atomic" GTY option.
35 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
36
86fa5de4
JM
372011-05-21 Joseph Myers <joseph@codesourcery.com>
38
39 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
40 * optc-gen.awk: Move common code to opt-read.awk.
41 * opth-gen.awk: Likewise.
42 * Makefile.in (options.c, s-options-h): Update to use
43 opt-read.awk.
44
bce33ab2
NF
452011-05-20 Nathan Froyd <froydnj@codesourcery.com>
46
47 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
48
e6450c11
TV
492011-05-20 Tom de Vries <tom@codesourcery.com>
50
51 PR target/45098
52 * tree-ssa-loop-ivopts.c: Include expmed.h.
53 (get_shiftadd_cost): New function.
54 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
55
0e8b84ec
JJ
562011-05-20 Jakub Jelinek <jakub@redhat.com>
57
58 PR bootstrap/49086
59 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
60 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
61
946bdf67
JM
622011-05-20 Joseph Myers <joseph@codesourcery.com>
63
64 * Makefile.in: Update comment referring to $(OBJS-common).
65
c53aafdf
ILT
662011-05-20 Ian Lance Taylor <iant@google.com>
67
68 * godump.c (go_output_typedef): Put enum constants in the macro
69 hash table to avoid duplicate Go const definitions.
70
2691e6d7
JM
712011-05-20 Joseph Myers <joseph@codesourcery.com>
72
73 * Makefile.in (LIBDEPS): Add libcommon.a.
74 (LIBS): Likewise.
75 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
76 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
77 pretty-print.o and version.o.
78 (OBJS-libcommon): New.
79 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
80 (BACKEND): Add libcommon.a.
81 (MOSTLYCLEANFILES): Likewise.
82 (libcommon.a): New.
83 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
84 (cpp$(exeext)): Likewise.
85 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
86 pretty-print.o and input.o.
87 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
88 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
89 (errors.o): Remove.
90 (mips-tfile): Don't explicitly use version.o.
91 (mips-tdump): Likewise.
92 (gcov.o): Depend on $(DIAGNOSTIC_H).
93 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
94 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
95 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
96 * gcov-dump.c: Include intl.h and diagnostic.h.
97 (main): Initialize diagnostics.
98 * gcov.c: Include diagnostic.h.
99 (fnotice): Remove.
100 (main): Initialize diagnostics.
101 * lto-wrapper.c: Include diagnostic.h.
102 (main): Initialize diagnostics.
103
252b3e8c
MM
1042011-05-20 Michael Matz <matz@suse.de>
105
106 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
107
2ee36ba6
MM
1082011-05-20 Michael Matz <matz@suse.de>
109 Richard Guenther <rguenther@suse.de>
110
111 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
112 use lto_streamer_cache_append directly instead of returning a VEC.
113 (preload_common_node): Remove.
114 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
115 track seen nodes.
116 (lto_streamer_cache_create): Call lto_preload_common_nodes.
117
90ff582f
RG
1182011-05-20 Richard Guenther <rguenther@suse.de>
119
120 PR tree-optimization/49079
121 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
122 MEM_REFs correctly for the trailing array access detection.
123 Special case constants the same way as decls for overall size
124 constraining.
125
3cda91d8
UB
1262011-05-20 Uros Bizjak <ubizjak@gmail.com>
127
128 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
129 argument expansion.
130
6c66f733
JJ
1312011-05-20 Jakub Jelinek <jakub@redhat.com>
132
133 PR tree-optimization/49073
3cda91d8
UB
134 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
135 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
136 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
137
0ea80a16
RG
1382011-05-20 Richard Guenther <rguenther@suse.de>
139
140 PR middle-end/48849
141 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
142 of pointer types the same way the middle-end does.
143
fb291a1e
RG
1442011-05-20 Richard Guenther <rguenther@suse.de>
145
3cda91d8
UB
146 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
147 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 148
37cb25ed
QN
1492011-05-19 Quentin Neill <quentin.neill@amd.com>
150
151 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
152 (fma4_fmaddsub): Likewise
153
a30726a4
JH
1542011-05-19 Jan Hubicka <jh@suse.cz>
155
156 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
157 (GIMPLE_TYPE_PAIR_SIZE): New macro.
158 (type_pair_cache): New static var.
159 (lookup_type_pair): Use fixed sized custom hash; make inline.
160 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
161 calls of lookup_type_pair.
162 (print_gimple_types_stats): Remove cache stats.
163 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
164 and gtc_ob.
165
0955cf61
UB
1662011-05-19 Uros Bizjak <ubizjak@gmail.com>
167
168 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
169 when TARGET_RDRND is active.
170 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
171 Generate dummy SImode target register when target is NULL.
172
12d844c8
JM
1732011-05-19 Joseph Myers <joseph@codesourcery.com>
174
175 * config/arm/arm-fpus.def: New.
176 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
177 arm-fpus.def.
178 * config/arm/arm-tables.opt: Regenerate.
179 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
180 (arm_option_override): Don't decode FPU name to string here.
181 * config/arm/arm.opt (mfpu=): Use Enum.
182 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
183 Update dependencies.
184
9e350e99
JM
1852011-05-19 Joseph Myers <joseph@codesourcery.com>
186
187 * collect2.c: Include diagnostic.h.
188 (fatal_perror, fatal, error, fancy_abort): Remove.
189 (main): Set progname. Call xmalloc_set_program_name and
190 diagnostic_initialize.
191 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
192 scan_libraries, resolve_lib_name): Call fatal_error instead of
193 fatal and fatal_perror.
194 * collect2.h (error, fatal, fatal_perror): Don't declare.
195 * tlink.c: Include diagnostic-core.h.
196 (recompile_files): Call fatal_error instead of fatal_perror.
197 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
198 pretty-print.o and input.o.
199 (collect2.o, tlink.o): Update dependencies.
200
86ff4081
RO
2012011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
202
203 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
204
2ca48caa
RO
2052011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
206
207 PR target/40483
208 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
209 COMDAT group syntax, both SPARC and x86 variants.
210 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
211 * configure: Regenerate.
212 * config/sol2.h (TARGET_SOLARIS): Define.
213 (PUSHSECTION_FORMAT): Remove.
214 (SECTION_NAME_FORMAT): Define.
215 * config/sol2.c: Include hashtab.h.
216 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
217 expansion, using SECTION_NAME_FORMAT.
218 (solaris_comdat_htab): New variable.
219 (struct comdat_entry): Define.
220 (comdat_hash): New function.
221 (comdat_eq): New function.
222 (solaris_elf_asm_comdat_section): New function.
223 (solaris_define_comdat_signature): New function.
224 (solaris_code_end): New function.
225 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
226 (solaris_code_end): Declare.
227 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
228 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
229 solaris_code_end.
230 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
231 Remove ATTRIBUTE_UNUSED.
232 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
233 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 234 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
235 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
236 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
237 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
238 (PUSHSECTION_FORMAT): Remove.
239 (SECTION_NAME_FORMAT): Redefine.
240
da5fb469
KT
2412011-05-19 Kai Tietz <ktietz@redhat.com>
242
243 * tree-cfg.c (verify_gimple_assign_binary): Barf on
244 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
245 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
246
0967b228
AS
2472011-05-19 Anatoly Sokolov <aesok@post.ru>
248 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
249
250 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
251
e497b9bd
RG
2522011-05-19 Richard Guenther <rguenther@suse.de>
253
254 PR middle-end/48985
255 * tree-object-size.c (addr_object_size): If the pointed-to
256 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
257
31b3ca64
RG
2582011-05-19 Richard Guenther <rguenther@suse.de>
259
260 * gimple.c (gimple_types_compatible_p_1): Compare names of
261 the types themselves.
262 (iterative_hash_gimple_type): And hash them that way.
263 (gimple_register_type_1): If we register a main variant properly
264 initialize the leader to ourselves.
265
bb8d292d
TV
2662011-05-19 Tom de Vries <tom@codesourcery.com>
267
268 PR target/45098
269 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
270 get_loop_invariant_expr_id.
271 (get_loop_invariant_expr_id): Use get_expr_id.
272 (parm_decl_cost): New function.
273 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
274 Improve bound cost estimation. Use different inv_expr_id for elim and
275 express cases.
276
a53c5024
TV
2772011-05-19 Tom de Vries <tom@codesourcery.com>
278
279 PR target/45098
280 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
281 cost_base.cost == 0.
282
31f9eb59
L
2832011-05-18 H.J. Lu <hongjiu.lu@intel.com>
284
285 PR target/49002
286 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
287 Properly handle load cast.
288
681056ae
JJ
2892011-05-18 Jakub Jelinek <jakub@redhat.com>
290
291 PR tree-optimization/49039
292 * tree-vrp.c (extract_range_from_binary_expr): For
293 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
294 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
295
b5ee6752
TV
2962011-05-18 Tom de Vries <tom@codesourcery.com>
297
298 PR target/45098
299 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
300
0bda47a3
UB
3012011-05-18 Uros Bizjak <ubizjak@gmail.com>
302
303 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
304 (*tls_global_dynamic_64): Ditto.
305 (*tls_local_dynamic_base_32_gnu): Ditto.
306 (*tls_local_dynamic_base_64): Ditto.
307 (tls_initial_exec_64_sun): Ditto.
308
033b0805
SH
3092011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
310
311 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
312 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
313 bf592-none.
314 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
315 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
316 * config/bfin/bfin.c (bfin_cpus): Add bf592.
317 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 318 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
319 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
320 * config/bfin/elf.h (LIB_SPEC): Add bf592.
321
ba163417
JM
3222011-05-18 Joseph Myers <joseph@codesourcery.com>
323
324 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 325 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
326 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
327 target_thread_pointer, arm_structure_size_boundary, struct
328 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
329 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
330 (arm_option_override) Don't process most enumerated option values here.
331 Don't process target_fpe_name here. Work with integer not string for
332 structure size boundary; use separate diagnostics for each case.
ba163417
JM
333 * config/arm/arm.h (enum float_abi_type, enum
334 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
335 to arm-opts.h.
336 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
337 arm_structure_size_boundary): Remove.
338 * config/arm/arm.opt (mabi=): Use Enum and Init.
339 (arm_abi_type): New Enum and EnumValue entries.
340 (mfloat-abi=): Use Enum and Init.
341 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 342 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
343 (mfp16-format=): Use Enum and Init.
344 (arm_fp16_format_type): New Enum and EnumValue entries.
345 (mstructure-size-boundary=): Use UInteger and Init.
346 (mtp=): Use Enum and Init.
347 (arm_tp_type): New Enum and EnumValue entries.
348
179184e3
RG
3492011-05-18 Richard Guenther <rguenther@suse.de>
350
351 PR tree-optimization/49018
352 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
353 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
354 gimple_has_side_effects.
355
93b2a207
RG
3562011-05-18 Richard Guenther <rguenther@suse.de>
357
358 * gimple.c (gimple_register_type_1): New function, split out from ...
359 (gimple_register_type): ... here. Avoid infinite recursion.
360
b010117a
IR
3612011-05-18 Ira Rosen <ira.rosen@linaro.org>
362
363 PR tree-optimization/41881
364 * tree-vectorizer.h (struct _loop_vec_info): Add new field
365 reduction_chains along with a macro for its access.
366 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
367 (destroy_loop_vec_info): Free reduction chains.
368 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
369 (vect_is_slp_reduction): New function.
370 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
371 (vect_create_epilog_for_reduction): Support SLP reduction chains.
372 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
373 definition types for reduction chains.
374 (vect_supported_load_permutation_p): Don't allow permutations for
375 reduction chains.
376 (vect_analyze_slp_instance): Support reduction chains.
377 (vect_analyze_slp): Try to build SLP instance from reduction chains.
378 (vect_get_constant_vectors): Handle reduction chains.
379 (vect_schedule_slp_instance): Mark the first statement of the
380 reduction chain as reduction.
381
e14c1050
IR
3822011-05-18 Ira Rosen <ira.rosen@linaro.org>
383
384 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
385 names for group elements access.
386 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
387 reduction chains as well. Remove data reference and interleaving
388 related words from the fields names.
389 * tree-vect-loop.c (vect_transform_loop): Use new names for group
390 elements access.
391 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
392 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
393 vect_update_interleaving_chain, vect_same_range_drs,
394 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
395 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
396 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
397 vect_analyze_group_access, vect_analyze_data_ref_access,
398 vect_create_data_ref_ptr, vect_transform_strided_load,
399 vect_record_strided_load_vectors): Likewise.
400 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
401 vect_model_load_cost, vectorizable_store, vectorizable_load,
402 vect_remove_stores, new_stmt_vec_info): Likewise.
403 * tree-vect-slp.c (vect_build_slp_tree,
404 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
405
51c213f7
RG
4062011-05-18 Richard Guenther <rguenther@suse.de>
407
408 PR middle-end/48989
409 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
410 operand verification.
411 (verify_gimple_assign_binary): Likewise.
412 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
413 to non-1-precision BOOLEAN_TYPEs.
414
8f5e5434
TV
4152011-05-18 Tom de Vries <tom@codesourcery.com>
416
417 PR target/45098
418 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
419
116bc3a4
JJ
4202011-05-18 Jakub Jelinek <jakub@redhat.com>
421
422 PR tree-optimization/49000
423 * tree-ssa.c (execute_update_addresses_taken): Call
424 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
425 be rewritten and decl has been marked for renaming, reset
426 the debug stmt.
427
26a8964c
JM
4282011-05-17 Joseph Myers <joseph@codesourcery.com>
429
430 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
431 enum_opts_set when testing if attributes have set -mfpmath=.
432
82bd45d7
RS
4332011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
434
435 * config/mips/mips.c (mips_handle_option): Remove unused variable.
436
267ffce3
UB
4372011-05-17 Uros Bizjak <ubizjak@gmail.com>
438
439 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
440 info->entry with 0
441 * tree-inline.c (maybe_inline_call_in_expr): Initialize
442 id.transform_lang_insert_block with NULL.
443
4442011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
445
446 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
447 (output_fp_compare): Change args 3 and 4 to bool.
448 (ix86_expand_call): Change arg 6 to bool.
449 (ix86_attr_length_immediate_default): Change arg 2 to bool.
450 (ix86_attr_length_vex_default): Change arg 3 to bool.
451 * config/i386/i386.md: Update all uses.
452 * config/i386/i386.c: Ditto.
453 (ix86_flags_dependent): Change return type to bool.
454
5beaf664
RG
4552011-05-17 Richard Guenther <rguenther@suse.de>
456
457 * gimple.c (type_hash_pair_compare): Fix comparison.
458
008bad7a
RG
4592011-05-17 Richard Guenther <rguenther@suse.de>
460
461 * gimple.c (iterative_hash_gimple_type): Simplify singleton
462 case some more, fix final hash value of the non-singleton case.
463
36461340
RG
4642011-05-17 Richard Guenther <rguenther@suse.de>
465
466 PR bootstrap/49013
467 Revert
468 2011-05-16 Richard Guenther <rguenther@suse.de>
469
470 * gimple.c (gimple_types_compatible_p_1): Use names of the
471 type itself, not its main variant.
472 (iterative_hash_gimple_type): Likewise.
473
6b6a59f3
RG
4742011-05-17 Richard Guenther <rguenther@suse.de>
475
476 * gimple.c (gimple_register_canonical_type): Use the main-variant
477 leader for computing the canonical type.
478
4ffc4134
NC
4792011-05-17 Nick Clifton <nickc@redhat.com>
480
a1d8754e
NC
481 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
482 moves.
483
4ffc4134
NC
484 * config/rx/rx.md: Add peephole to remove redundant extensions
485 after loads.
39960f7a
NC
486 (bitset_in_memory): Use rx_restricted_mem_operand.
487 (bitinvert_in_memory): Likewise.
488 (bitclr_in_memory): Likewise.
4ffc4134 489
b3db92ac
KI
4902011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
491 Nick Clifton <nickc@redhat.com>
492
493 * config/rx/rx.md: Add peepholes to match a register move followed
494 by a comparison of the moved register. Replace these with an
495 addition of zero that does both actions in one instruction.
496
8637e32a
JJ
4972011-05-17 Jakub Jelinek <jakub@redhat.com>
498
499 PR target/48986
500 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
501 predicate to allow CONST_INT.
502 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
503
8023568e
JM
5042011-05-16 Joseph Myers <joseph@codesourcery.com>
505
506 * opts-common.c (opt_enum_arg_to_value): New.
507 * opts.h (opt_enum_arg_to_value): Declare.
508 * config/i386/i386.opt (fpmath): Remove.
509 (mfpmath=): Use Enum, Init and Save.
510 (fpmath_unit): New Enum and EnumValue entries.
511 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
512 name for function fpmath state.
513 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
514 * config/i386/i386.c: Include diagnostic.h.
515 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 516 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 517 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 518 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
519 (x86_function_specific_save, ix86_function_specific_restore):
520 Don't handle fpmath state specially.
521 (ix86_function_specific_print): Pass fpmath state to
522 ix86_target_string instead of printing in this function.
523 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
524 Handle enum attributes.
525 (IX86_ATTR_ENUM, ix86_opt_enum): New.
526 (ix86_valid_target_attribute_tree): Update option_strings
527 handling. Handle fpmath as enum option.
528 (ix86_can_inline_p): Update field names for function fpmath state.
529 (ix86_expand_builtin): Update call to ix86_target_string.
530 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
531 (ix86_fpmath): Remove.
532 * config/i386/t-i386 (i386.o): Update dependencies.
533
9e8d926e
JM
5342011-05-16 Joseph Myers <joseph@codesourcery.com>
535
536 PR preprocessor/48677
537 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
538 from decoded_options[0], not from itself.
539
f6449011
UB
5402011-05-16 Uros Bizjak <ubizjak@gmail.com>
541
542 * config/i386/constraints.md (z): New constraint.
543 * config/i386/i386.c (c): New mode attribute.
544 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
545 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
546 constraint for operand 0.
547 (*call_vzeroupper): Ditto.
548 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
549 (*call_rex64_ms_sysv_vzeroupper): Ditto.
550 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
551 Use "lzm" constraint for operand 0.
552 (*call_pop_vzeroupper): Ditto.
553 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
554 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
555 constraint for operand 0.
556 (*sibcall_vzeroupper): Ditto.
557 (*sibcall_rex64_ms_sysv): Ditto.
558 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
559 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
560 *sibcall_pop_1. Use "Uz" constraint for operand 0.
561 (*sibcall_pop_vzeroupper): Ditto.
562 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
563 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
564 mode iterator. Use "<c>zm" constraint for operand 1.
565 (*call_value_vzeroupper): Ditto.
566 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 567 for operand 1.
f6449011
UB
568 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
569 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
570 *call_value_pop_1. Use "lzm" constraint for operand 1.
571 (*call_value_pop_vzeroupper): Ditto.
572 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
573 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
574 mode iterator. Use "Uz" constraint for operand 1.
575 (*sibcall_value_vzeroupper): Ditto.
576 (*sibcall_value_rex64_ms_sysv): Ditto.
577 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
578 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
579 constraint for operand 1.
580 (*sibcall_value_pop_vzeroupper): Ditto.
581 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
582 and "z" constraint for operand 2.
583 (*tls_global_dynamic_32_gnu): Ditto.
584 (*tls_local_dynamic_base_32_gnu): Ditto.
585 (*tls_local_dynamic_base_64): Ditto.
586 (*tls_local_dynamic_32_once): Ditto.
587 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
588 Update all callers.
589 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
590
c11b6902
RG
5912011-05-16 Richard Guenther <rguenther@suse.de>
592
593 * gimple.c (gimple_types_compatible_p_1): Use names of the
594 type itself, not its main variant.
595 (iterative_hash_gimple_type): Likewise.
596
1e83b5f1
RG
5972011-05-16 Richard Guenther <rguenther@suse.de>
598
f6449011
UB
599 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
600 always visit pointer target and function result and argument types.
1e83b5f1 601
62e36382
JM
6022011-05-16 Jason Merrill <jason@redhat.com>
603
604 PR c++/48999
605 * tree-inline.c (copy_statement_list): Put back recursion.
606
687027a4
GJL
6072011-05-16 Georg-Johann Lay <avr@gjlay.de>
608
609 PR target/27663
610 PR target/41076
611 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
612 * config/avr/avr.md ("*ior<mode>qi.byte0",
613 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
614
f24a5190
GJL
6152011-05-16 Georg-Johann Lay <avr@gjlay.de>
616
617 PR target/45099
618 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
619 register is needed for a function argument.
620
3066f593
RG
6212011-05-16 Richard Guenther <rguenther@suse.de>
622
623 * gimple.c (struct type_hash_pair): New type.
624 (type_hash_pair_compare): New function.
f6449011 625 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 626
b2ab2cf4
RE
6272011-05-16 Revital Eres <revital.eres@linaro.org>
628
f6449011 629 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 630
dfb737fc
UB
6312011-05-15 Uros Bizjak <ubizjak@gmail.com>
632
633 * config/i386/i386.md (floating point move splitters): Fix
634 usage of standard_80387_constant_p.
f6449011 635 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 636
8caa1de0
UB
6372011-05-15 Uros Bizjak <ubizjak@gmail.com>
638
639 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
640
8a519095
EB
6412011-05-14 Eric Botcazou <ebotcazou@adacore.com>
642
643 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
644 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
645 (tree_ssa_lim_finalize): Likewise.
646
479fecd3
UB
6472011-05-14 Uros Bizjak <ubizjak@gmail.com>
648
649 * config/i386/constraint.md (Yd, Yx): New register constraints.
650 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
651 Yd conditional register constraint.
652 (*movtf_internal): Use standard_sse_constant_opcode.
653 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
654 Yx conditional register constraint.
655 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
656 Yd conditional register constraint. Use standard_sse_constant_p to
657 check for valid SSE constants and call standard_sse_constant_opcode to
658 output SSE insn.
659 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
660 constants and call standard_sse_constant_opcode to output SSE insn.
661 * config/i386/i386.c (ix86_option_ovverride_internal): Set
662 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
663 optimize_size is set.
664 (standard_sse_constant_opcode): Output conditional AVX insn templates.
665
2d8c9ad5
TB
6662011-05-14 Tobias Burnus <burnus@net-b.de>
667
668 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
669
411a20d6
MJ
6702011-05-13 Martin Jambor <mjambor@suse.cz>
671
672 * ipa-prop.c (ipa_cst_from_jfunc): New function.
673 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
674 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
675 (evaluate_conditions_for_ipcp_clone): Removed.
676 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
677 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
678 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
679
dc764d10
EB
6802011-05-13 Eric Botcazou <ebotcazou@adacore.com>
681
682 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
683 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
684 lieu of MAY_HAVE_DEBUG_STMTS.
685 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
686 debug statements if !MAY_HAVE_DEBUG_STMTS.
687
9f47a24e
MT
6882011-05-13 Martin Thuresson <martint@google.com>
689
690 PR gcov-profile/47793
691 * libgcov.c (gcov_exit): Support relative profile paths.
692 * doc/invoke.texi (-fprofile-dir): Update for above change.
693
b8a71aed
RG
6942011-05-13 Richard Guenther <rguenther@suse.de>
695
696 * gimple.c (gimple_canonical_types_compatible_p): Do not use
697 type-pair caching, do not compare hashes.
698
eb9f9259
NF
6992011-05-13 Nathan Froyd <froydnj@codesourcery.com>
700
701 PR middle-end/48965
702 * tree-cfg.c (edge_to_cases_cleanup): Return true.
703 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
704
3c6cbf7a
KT
7052011-05-13 Kai Tietz <ktietz@redhat.com>
706
707 * gimplify.c (gimplify_expr): Make sure operand is boolified.
708 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
709 compatible type for TRUTH_NOT_EXPR.
710
2e7f5dc0
L
7112011-05-13 H.J. Lu <hongjiu.lu@intel.com>
712
dc764d10 713 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
714 (ix86_hard_regno_mode_ok): Change return value to bool. Use
715 can_create_pseudo_p ().
716
e834e95c
RG
7172011-05-13 Richard Guenther <rguenther@suse.de>
718
719 PR lto/48978
720 * gimple.c (iterative_hash_gimple_type): Revert change in
721 pointer target and function result and argument hashing.
722
34203483
UB
7232011-05-13 Uros Bizjak <ubizjak@gmail.com>
724
725 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
726 (*movxf_internal_nointeger): Ditto.
727 (*movdf_internal_rex64): Ditto.
728 (*movdf_internal): Ditto.
729 (*movdf_internal_nointeger): Ditto.
730 (*movsf_internal): Ditto.
731 (sincos splitters): Use can_create_pseudo ().
732
7eb68c06
JM
7332011-05-13 Joseph Myers <joseph@codesourcery.com>
734
735 * config/i386/i386-opts.h: New.
736 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
737 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
738 ix86_section_threshold): Remove.
739 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
740 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
741 OPT_mbranch_cost_.
742 (ix86_option_override_internal): Don't decode strings for options
743 other than -march=, -mtune= and -mfpmath=. Don't allow for
744 __attribute__ uses in remaining diagnostics for options with
34203483 745 string arguments. Don't check for integer arguments being negative.
7eb68c06 746 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 747 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
748 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
749 ix86_branch_cost, ix86_section_threshold): Remove.
750 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
751 HeaderInclude.
752 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
753 but not Var.
754 (masm=): Use Enum and Init.
755 (asm_dialect): New Enum and EnumValue entries.
756 (mbranch-cost=): Use UInteger.
757 (mlarge-data-threshold=): Use UInteger and Init.
758 (mcmodel=): Use Enum and Init.
759 (cmodel): New Enum and EnumValue entries.
760 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
761 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
762 mregparm=): Use UInteger.
763 (mstringop-strategy=): Use Enum and Init.
764 (stringop_alg): New Enum and EnumValue entries.
765 (mtls-dialect=): Use Enum and Init.
766 (tls_dialect): New Enum and EnumValue entries.
767 (mabi=): Use Enum and Init.
768 (calling_abi): New Enum and EnumValue entries.
769 (mveclibabi=): Use Enum and Init.
770 (ix86_veclibabi): New Enum and EnumValue entries.
771
f67e203c
NC
7722011-05-13 Nick Clifton <nickc@redhat.com>
773
34203483
UB
774 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
775 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 776
221df0b6
KT
7772011-05-13 Kai Tietz <ktietz@redhat.com>
778
779 PR middle-end/48984
780 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
781 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
782 (gimple_boolify): Check for cast for boolean_type_node instead for
783 BOOLEAN_TYPE.
784
208cb8cb
RG
7852011-05-13 Richard Guenther <rguenther@suse.de>
786
787 PR tree-optimization/48172
788 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
789 multiplying by number of iterations for equal step.
790 (vect_create_cond_for_alias_checks): Likewise.
791
b88ecf55
AS
7922011-05-13 Andreas Schwab <schwab@redhat.com>
793
794 * configure.ac: Use AS_HELP_STRING throughout.
795 * configure: Regenerate.
796
569b527e
L
7972011-05-12 H.J. Lu <hongjiu.lu@intel.com>
798
34203483 799 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
800 (ix86_emit_restore_regs_using_mov): Likewise.
801 (ix86_emit_restore_sse_regs_using_mov): Likewise.
802
8b9a1428
AS
8032011-05-12 Anatoly Sokolov <aesok@post.ru>
804
805 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
806 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
807 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
808 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
809 RTX_OK_FOR_OLO10_P): ...here.
810 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
811 SYMBOLIC_CONST.
812
1d15f620
KT
8132011-05-12 Kai Tietz <ktietz@redhat.com>
814
815 * gimplify.c (gimple_boolify): Re-boolify expression
816 arguments even if expression type is of kind BOOLEAN_TYPE.
817 (gimplify_boolean_expr): Removed.
818 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
819 and XOR. Additional take care that we keep expression's type.
820 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
821 of TRUTH_AND|OR|XOR_EXPR.
822
c2b5fc8d
JJ
8232011-05-12 Jakub Jelinek <jakub@redhat.com>
824
825 PR tree-optimization/48975
826 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
827 on all bbs here and free and clear ifc_bbs at the end.
828
61332f77
RG
8292011-05-12 Richard Guenther <rguenther@suse.de>
830
831 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
832 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
833 until after simple checks.
834 (gimple_types_compatible_p): Likewise.
835 (iterative_hash_gimple_type): Always hash pointer targets
836 and function return and argument types.
837 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
838 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
839 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
840 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
841 completely in the simple compare section.
842 (gimple_register_canonical_type): Query the cache again after
843 registering.
844
e2a3a5f1
RG
8452011-05-12 Richard Guenther <rguenther@suse.de>
846
847 PR tree-optimization/48172
848 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
849 the number of iterations from the segment size calculation.
850 (vect_create_cond_for_alias_checks): Adjust.
851
2c703f3a
JJ
8522011-05-12 Jakub Jelinek <jakub@redhat.com>
853
854 PR debug/48967
855 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
856 if validate_subreg fails.
857
8582011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
859
860 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
861 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
862 early.
863
87e91fca
DD
8642011-05-12 DJ Delorie <dj@redhat.com>
865
d53903d6 866 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
867 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
868 created builtin into rx_builtins array.
869 (rx_builtin_decl): New function.
34203483 870 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 871
5f2f13fd
DD
8722011-05-12 DJ Delorie <dj@redhat.com>
873 Nick Clifton <nickc@redhat.com>
874
875 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
876 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
877 (rx_is_legitimate_address): Add pre-decrement and post-increment
878 addressing in HImode and QImode. Fix test for out of range
879 REG+INT addressing.
87e91fca 880 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 881 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 882 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 883 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 884
57421f45
JM
8852011-05-11 Jason Merrill <jason@redhat.com>
886
887 * tree.c (type_hash_canon): Use struct tree_type_non_common.
888
898c90c0
EB
8892011-05-11 Eric Botcazou <ebotcazou@adacore.com>
890
891 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
892 reindent the subsequent block.
893
79bec923
ST
8942011-05-11 Satoru Takabayashi <satorux@google.com>
895 Paul Pluzhnikov <ppluzhnikov@google.com>
896
34203483 897 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
898 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
899 * config.in: Add LINKER_HASH_STYLE.
900 * configure.ac: Add --with-linker-hash-style.
901 * configure: Regenerate.
79bec923 902
d0340959
RG
9032011-05-11 Richard Guenther <rguenther@suse.de>
904
905 PR middle-end/48964
906 * gimple.c (iterative_hash_canonical_type): Fix typo.
907
cb032fee
UB
9082011-05-11 Uros Bizjak <ubizjak@gmail.com>
909
910 * config/i386/i386.c (legitimize_tls_address)
479fecd3 911 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
912 expanders directly for TARGET_GNU2_TLS. Determine pic and
913 __tls_get_addr symbol reference here. Update call to
914 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 915 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
916 expanders directly for TARGET_GNU2_TLS. Determine
917 __tls_get_addr symbol reference here. Update call to
918 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
919 unique UNSPEC REG_EQUIV to libcall block.
920 (ix86_tls_get_addr): Declare static.
921 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
922 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
923 Do not determine pic and __tls_get_addr symbol reference here. Do not
924 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
925 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
926 (tls_global_dynamic_64): Add operand 2. Do not determine
927 __tls_get_addr symbol reference here. Do not call
928 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
929 (tls_local_dynamic_base64): Ditto for operand 1.
930
6d3cc8f0
EB
9312011-05-11 Eric Botcazou <ebotcazou@adacore.com>
932
933 * function.c (expand_function_start): Initialize stack_check_probe_note
934 only if the generic stack checking mechanism is used.
935
51e020fc
RG
9362011-05-11 Richard Guenther <rguenther@suse.de>
937
938 PR tree-optimization/15256
939 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
940 (A & B) | C, combine (A op CST1) op CST2.
941 (tree_ssa_forward_propagate_single_use_vars): Only bother to
942 visit assigns that have uses.
943
51545682
NF
9442011-05-11 Nathan Froyd <froydnj@codesourcery.com>
945
cb032fee 946 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
947 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
948 (unpack_ts_type_common_value_fields): ...this. Update comment.
949 (unpack_value_fields): Adjust for renaming.
950 (lto_input_ts_type_tree_pointers): Split into...
951 (lto_input_ts_type_common_tree_pointer): ...this and...
952 (lto_input_ts_type_non_common_tree_pointers): ...this.
953 (lto_input_tree_pointers): Adjust for above split.
954 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
955 (pack_ts_type_common_value_fields): ...this. Update comment.
956 (lto_output_ts_type_tree_pointers): Split into...
957 (lto_output_ts_type_common_tree_pointers): ...this and...
958 (lto_output_ts_type_non_common_tree_pointers): ...this.
959 (lto_output_tree_pointers): Adjust for above split.
960 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
961 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
962 * stor-layout.c (vector_type_mode): Adjust location of mode field.
963 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
964 Define.
965 (struct tree_type): Split into...
966 (struct tree_type_common: ...this and...
967 (struct tree_type_with_lang_specific): ...this and...
968 (struct tree_type_non_common): ...this. Adjust accessor macros
969 accordingly.
970 (TYPE_VALUES_RAW): Define.
971 (union tree_node): Update for above changes.
972 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
973 TS_TYPE_NON_COMMON.
974 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
975 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
976 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
977 * treestructu.def (TS_TYPE): Remove.
978 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
979 Define.
980
b03c3082
JJ
9812011-05-11 Jakub Jelinek <jakub@redhat.com>
982
983 PR debug/48159
984 * tree-ssa.c (reset_debug_uses): New function.
985 * tree-flow.h (reset_debug_uses): New prototype.
986 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
987 * tree-loop-distribution.c (generate_loops_for_partition): Call
988 reset_debug_uses on the stmts that will be removed. Keep around
989 all debug stmts, don't count them as bits in partition bitmap.
990 (generate_builtin): Don't count debug stmts or labels as bits in
991 partition bitmap.
992
b5e04de5
RG
9932011-05-11 Richard Guenther <rguenther@suse.de>
994
995 * gimple.c (gimple_type_hash_1): Merge with ...
996 (gimple_type_hash): ... this.
997 (gtc_visit): Remove mode parameter and simplify accordingly.
998 (gimple_types_compatible_p_1): Likewise.
999 (gimple_types_compatible_p): Likewise.
1000 (iterative_hash_gimple_type): Likewise.
1001 (visit): Likewise.
1002 (gimple_type_eq): Adjust.
1003
fc6970e4
RE
10042011-05-11 Revital Eres <revital.eres@linaro.org>
1005
1006 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1007 enters the branch create an anti edge in the opposite direction
1008 to prevent the creation of reg-moves.
1009 * modulo-sched.c: Adjust comment to reflect the fact we are
1010 scheduling closing branch.
1011 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1012 (stage_count): New field in struct partial_schedule.
1013 (calculate_stage_count): New function.
1014 (normalize_sched_times): Rename to reset_sched_times and handle
1015 incrementing the sched time of the nodes by a constant value
1016 passed as parameter.
1017 (duplicate_insns_of_cycles): Skip closing branch.
1018 (sms_schedule_by_order): Schedule closing branch.
1019 (ps_insn_find_column): Handle closing branch.
1020 (sms_schedule): Call reset_sched_times and adjust the code to
1021 support scheduling of the closing branch.
1022 (ps_insert_empty_row): Update calls to normalize_sched_times
1023 and rotate_partial_schedule functions.
1024
41a58a92
RG
10252011-05-11 Richard Guenther <rguenther@suse.de>
1026
1027 PR middle-end/48953
1028 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1029
e9f8dcf9
JM
10302011-05-11 Joseph Myers <joseph@codesourcery.com>
1031
cb032fee
UB
1032 * opts.c (finish_options): Move warning settings from process_options.
1033 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 1034
10c224a9
RG
10352011-05-11 Richard Guenther <rguenther@suse.de>
1036
1037 PR tree-optimization/18041
1038 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1039 (simplify_bitwise_binary): ... this. Handle operand conversions
1040 by applying them to the result instead.
1041 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
1042
825b27de
RG
10432011-05-11 Richard Guenther <rguenther@suse.de>
1044
1045 * gimple.c (gimple_canonical_types_compatible_p): Split out
1046 from gimple_types_compatible_p and friends. Do not recurse
1047 to pointed-to types.
1048 (gimple_canonical_type_eq): Use it.
1049 (iterative_hash_canonical_type): Split out from
1050 iterative_hash_gimple_type and friends. Do not recurse
1051 to pointed-to types.
1052 (gimple_canonical_type_hash): Use it, allocate the hash here.
1053
ca756625
RE
10542011-05-11 Revital Eres <revital.eres@linaro.org>
1055
1056 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1057 recognizing doloop.
1058
b8abece3
RE
10592011-05-11 Revital Eres <revital.eres@linaro.org>
1060
1061 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1062 instead of PREV_INSN.
1063
ce7b3761
RE
10642011-05-11 Revital Eres <revital.eres@linaro.org>
1065
1066 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1067 * loop-doloop.c (doloop_condition_get): Likewise.
1068 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1069 (doloop_end): New.
1070 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1071
a9dc9d37
NF
10722011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1073
1074 * tree.def (CASE_LABEL_EXPR): Add an operand.
1075 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1076
96703596
JM
10772011-05-10 Joseph Myers <joseph@codesourcery.com>
1078
1079 * c-decl.c (c_override_global_bindings_to_false): Remove.
1080 (global_bindings_p): Don't check
1081 c_override_global_bindings_to_false.
1082 * c-tree.h (c_override_global_bindings_to_false): Remove.
1083 * c-typeck.c (composite_type): Don't set
1084 c_override_global_bindings_to_false.
1085
dbcc9f08
MM
10862011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1087
1088 PR target/48857, 48495
1089 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1090 (VSX_MODE): Ditto.
1091 (VSX_MOVE_MODE): Ditto.
1092 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1093 VSX vector types. Add V2DImode.
1094 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1095 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1096 (MODES_TIEABLE_P): Ditto.
1097
1098 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1099 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1100 VSX_VECTOR_MODE.
1101 (init_cumulative_args): Ditto.
1102 (rs6000_function_arg_boundary): Ditto.
1103 (rs6000_function_arg_advance_1): Ditto.
1104 (rs6000_function_arg): Ditto.
1105 (rs6000_function_ok_for_sibcall): Ditto.
1106 (emit_frame_save): Ditto.
1107 (rs6000_function_value): Ditto.
1108 (rs6000_libcall_value): Ditto.
1109
4a68b4ca
JM
11102011-05-10 Joseph Myers <joseph@codesourcery.com>
1111
1112 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1113 i386/darwin-lib.h to $libgcc_tm_file.
1114 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1115
bcb521e9
JM
11162011-05-10 Joseph Myers <joseph@codesourcery.com>
1117
1118 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1119
f10d3ac9
JM
11202011-05-10 Joseph Myers <joseph@codesourcery.com>
1121
cb032fee 1122 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
1123 * config/rs6000/rs6000-tables.opt: New file (generated).
1124 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1125 rs6000/rs6000-tables.opt to extra_options.
1126 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1127 * config/rs6000/rs6000.c (rs6000_select): Remove.
1128 (processor_target_table): Move contents to rs6000-cpus.def.
1129 (darwin_rs6000_override_options): Check
1130 global_options_set.x_rs6000_cpu_index instead of
1131 rs6000_select[1].string.
1132 (rs6000_option_override_internal): Likewise.
1133 (rs6000_handle_option): Don't assert that global structures are in
1134 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1135 (rs6000_default_cpu): New variable.
1136 (rs6000_file_start): Set it instead of local default_cpu. Check
1137 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1138 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1139 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1140 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1141 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1142 rs6000_select): Remove.
1143 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1144 Remove.
1145 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1146 * config/rs6000/t-rs6000
1147 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1148 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1149 global_options_set.x_rs6000_cpu_index instead of
1150 rs6000_select[1].string.
1151 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1152 global_options_set.x_rs6000_cpu_index instead of
1153 rs6000_select[1].string.
1154
80cf2e08
JM
11552011-05-10 Joseph Myers <joseph@codesourcery.com>
1156
1157 * config.gcc (libgcc_tm_file): Define instead of including files
1158 from ../../libgcc/config/ in tm_file.
cb032fee 1159 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
1160 * configure: Regenerate.
1161 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1162 libgcc_tm.h, cs-libgcc_tm.h): New.
1163 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1164 (clean): Remove libgcc_tm.h.
1165 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1166 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1167 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1168
fd01a351
GJL
11692011-05-10 Georg-Johann Lay <avr@gjlay.de>
1170
1171 PR target/48896
1172 * config/avr/avr.c (avr_ret_register): Return unsigned int
1173 instead of int.
1174 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1175 it to avr_libcall_value.
1176 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1177 expand_expr.
1178 (avr_expand_binop_builtin): Ditto.
1179 (avr_expand_unop_builtin): Ditto.
1180
34cc3c86
DD
11812011-05-10 DJ Delorie <dj@redhat.com>
1182
1183 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1184 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1185 * config/rx/rx.c (rx_align_for_label): Add label and
1186 uses_threshold parameters. Do not align when the label is not
1187 used enough.
1188 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1189
be173289
RG
11902011-05-10 Richard Guenther <rguenther@suse.de>
1191
1192 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1193 a series of conversions and apply foldings similar to what
1194 fold-const does.
1195 (tree_ssa_forward_propagate_single_use_vars): Call it.
1196
e7f78021
JJ
11972011-05-10 Jakub Jelinek <jakub@redhat.com>
1198
6ae70ea2
JJ
1199 PR tree-optimization/48611
1200 PR tree-optimization/48794
1201 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1202 referenced from RESX or EH_DISPATCH arguments.
1203
e7f78021
JJ
1204 PR debug/48928
1205 * dfp.c (decimal_to_decnumber): Handle conversion from
1206 dconst{1,2,m1,half}.
1207
fca132b9
UB
12082011-05-09 Uros Bizjak <ubizjak@gmail.com>
1209
1210 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1211 for !flag_prefer_avx128.
1212 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1213
e4c03378
EB
12142011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1215
1216 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1217 (fold_ternary_loc): Use expr_location_or.
1218
805d6a75
L
12192011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1220
1221 PR debug/48853
1222 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1223 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1224 Pmode and mem_mode is not VOIDmode.
1225
e4c03378 12262011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 1227
e4c03378
EB
1228 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1229 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 1230
51e7f377
UB
12312011-05-09 Uros Bizjak <ubizjak@gmail.com>
1232
1233 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1234 (const_pow2_1_to_8_operand): Ditto.
1235 (const_pow2_1_to_128_operand): Ditto.
1236 (const_pow2_1_to_32768_operand): Ditto.
1237 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1238 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1239 in insn constraint to check integer value of operand 3.
1240 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1241
1242 (PINSR_MODE): New mode iterator.
1243 (sse2p4_1): New mode attribute.
1244 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1245 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1246 iterator. Use const_int_operand instead of
1247 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1248 exact_log2 in insn constraint to check integer value of operand 3.
1249
12502011-05-09 Uros Bizjak <ubizjak@gmail.com>
1251
1252 * config/i386/sse.md (blendbits): Remove mode attribute.
1253 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1254 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1255 Check integer value of operand 3 in insn constraint.
1256
0ca8de87
RG
12572011-05-09 Richard Guenther <rguenther@suse.de>
1258
1259 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1260 for diagnostics.
1261 (lto_symtab_merge): Likewise. Do not register types here.
1262 (lto_symtab_merge_decls_2): Likewise.
1263 (lto_symtab_merge_decls_1): Likewise.
1264 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1265 * gimple.c (enum gtc_mode): Declare.
1266 (gimple_types_compatible_p): Make static.
1267
a9e6994a
AK
12682011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1269
1270 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1271 temporary register to match Pmode.
1272
fb55d62e
UB
12732011-05-09 Uros Bizjak <ubizjak@gmail.com>
1274
1275 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1276 and *vec_concatv4si_1_avx.
1277
eb1485a6
UB
12782011-05-09 Uros Bizjak <ubizjak@gmail.com>
1279
1280 PR rtl-optimization/48927
1281 * ira-conflicts.c (commutative_constraint_p): Use
1282 recog_data.alternative_enabled_p to disable alternatives where
1283 "enabled" attribute is false.
1284 (get_dup_num): Ditto.
1285 * ira-lives.c (single_reg_class): Ditto.
1286 (ira_implicitly_set_insn_hard_regs): Ditto.
1287
c46d001a
EB
12882011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1289
1290 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1291 (dataflow_set_preserve_mem_locs): Likewise.
1292
12932011-05-09 Philipp Thomas <pth@suse.de>
1294
6d9e7c41
PT
1295 * config/mep/mep.c (mep_validate_vliw): Syntax description
1296 should not be translated.
1297
d371df6f
JM
12982011-05-09 Joseph Myers <joseph@codesourcery.com>
1299
1300 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1301 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 1302 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
1303 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1304 MIPS_ARCH_OPTION_NATIVE): Define.
1305 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1306 mips-cpus.def.
1307 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1308 mips_parse_cpu): Remove.
1309 (mips_cpu_info_from_opt, mips_default_arch): New.
1310 (mips_handle_option): Don't assert that global structures are in
1311 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1312 (mips_option_override): Use new variables and functions to set
eb1485a6 1313 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
1314 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1315 definition.
1316 * config/mips/mips.opt (march=): Use ToLower and Enum.
1317 (mips): Use ToLower, Enum and Var.
1318 (mtune=): Use ToLower and Enum.
1319 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1320
4fc07af9
JH
13212011-05-08 Jan Hubicka <jh@suse.cz>
1322
1323 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1324 Arrange type pairs to be UID ordered.
1325 (gimple_lookup_type_leader): Make inline.
1326
2cf320a8
NC
13272011-05-09 Nick Clifton <nickc@redhat.com>
1328
61d6def5
NC
1329 PR target/48899
1330 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1331 PROCESSOR_DEFAULT.
1332
2cf320a8
NC
1333 PR target/48897
1334 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1335 variable 's'.
1336
4f82319d
CLT
13372011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1338
1339 * combine.c (simplify_comparison): Abstract out parts into...
1340 (simplify_compare_const): ... new function.
1341 (try_combine): Generalize parallel arithmetic/compare combining
1342 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1343
74605a11
JH
13442011-05-08 Jan Hubicka <jh@suse.cz>
1345
1346 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
1347 (cgraph_create_virtual_clone): Call hooks once virtual clone
1348 is finished.
74605a11 1349 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
1350 * ipa-cp.c (ipcp_estimate_growth): Use
1351 estimate_ipcp_clone_size_and_time.
74605a11
JH
1352 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1353 * lto-cgraph.c (input_node): Update.
1354 * ipa-inline.c (recursive_inlining): Update.
1355 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1356 (evaluate_conditions_for_known_args): Break out from ...
1357 (evaluate_conditions_for_edge): ... here.
1358 (evaluate_conditions_for_ipcp_clone): New function.
1359 (inline_node_duplication_hook): Update clone summary based
1360 on parameter map.
1361 (estimate_callee_size_and_time): Rename to ...
1362 (estimate_node_size_and_time): take NODE instead of EDGE;
1363 take POSSIBLE_TRUTHS as argument.
1364 (estimate_callee_size_and_time): Update.
1365 (estimate_ipcp_clone_size_and_time): New function.
1366 (do_estimate_edge_time): Update.
1367
5c049507
RG
13682011-05-08 Richard Guenther <rguenther@suse.de>
1369
1370 PR middle-end/48908
1371 PR middle-end/48905
1372 * expmed.c (expand_shift_1): Compute adjusted constant shift
1373 amount manually.
1374
f64c36ba
EB
13752011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1376
1377 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1378
c461a957
EB
13792011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1380
1381 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1382
7c74e556
JW
13832011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1384
1385 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1386
b4c0a884
JH
13872011-05-07 Jan Hubicka <jh@suse.cz>
1388
a9bcb3f0
EB
1389 * ipa-inline-transform.c (inline_call): Account when program size
1390 decreases.
b4c0a884 1391 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
1392 (edge_badness): Reorganize to be power 2 based; fix thinko when
1393 computing badness for negative growth; update comments to match
1394 reality; better dumps.
b4c0a884 1395
c99c0026
EB
13962011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1397
1398 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1399 type to bool and adjust comment.
1400 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1401 (fold_mathfn_compare): Remove calls to global_bindings_p.
1402 (fold_inf_compare): Likewise.
1403 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1404 * c-tree.h (global_bindings_p): Adjust prototype.
1405 * c-decl.c (global_bindings_p): Return bool and simplify.
1406
1400c8e5
ZD
14072011-05-07 Zdenek Dvorak <ook@ucw.cz>
1408
1409 PR tree-optimization/48837
1410 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1411 when accumulator transformation is performed.
1412
5d0878e7
JH
14132011-05-06 Jan Hubicka <jh@suse.cz>
1414
a9bcb3f0
EB
1415 * i386.h (ix86_tune_indices): Add
1416 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 1417 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
1418 * i386.c (initial_ix86_tune_features): Add
1419 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
1420 (software_prefetching_beneficial_p): Remove predicate.
1421 (ix86_option_override_internal): Use new macro.
1422
58696ce5
JH
14232011-05-06 Jan Hubicka <jh@suse.cz>
1424
1425 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1426
c47d0034
JH
14272011-05-06 Jan Hubicka <jh@suse.cz>
1428
1429 * cgraph.c (cgraph_add_thunk): Create real function node instead
1430 of alias node; finalize it and mark needed/reachale; arrange visibility
1431 to be right and add it into the corresponding same comdat group list.
1432 (dump_cgraph_node): Dump thunks.
1433 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
1434 cgraph_function_with_gimple_body_p,
1435 cgraph_first_function_with_gimple_body,
c47d0034
JH
1436 cgraph_next_function_with_gimple_body): New functions.
1437 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1438 New macros.
1439 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1440 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1441 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1442 devirtualization when optimizing.
1443 (verify_cgraph_node): Verify thunks.
1444 (cgraph_analyze_function): Analyze thunks.
1445 (cgraph_mark_functions_to_output): Output thunks only in combination
1446 with function they are assigned to.
1447 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1448 alias into normal node.
1449 (assemble_thunks): New functoin.
1450 (cgraph_expand_function): Use it.
1451 * lto-cgraph.c (lto_output_node): Stream thunks.
1452 (input_overwrite_node): Stream in thunks.
1453 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1454 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1455 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1456 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1457 (inline_analyze_function): Do not care about thunk jump functions.
1458 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
1459 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1460 cgraph_function_with_gimple_body_p.
1461 * passes.c (do_per_function_toporder): Use
1462 cgraph_function_with_gimple_body_p.
c47d0034
JH
1463 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1464 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1465 (function_called_by_processed_nodes_p): Likewise.
1466
d8f426ec
JM
14672011-05-06 Joseph Myers <joseph@codesourcery.com>
1468
1469 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1470 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1471 entries.
1472 (mabi=): Replace with separate entries for mabi=altivec,
1473 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1474 mabi=ieeelongdouble and mabi=ibmlongdouble.
1475 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1476 check for -mabi=spe without SPE ABI support here.
1477 (rs6000_handle_option): Replace OPT_mabi_ handling with
1478 OPT_mabi_altivec and OPT_mabi_spe handling.
1479
80bde45b
CC
14802011-05-06 Cary Coutant <ccoutant@google.com>
1481
1482 * dwarf2out.c (contains_subprogram_definition): New function.
1483 (should_move_die_to_comdat): Call it.
1484
a91926b9
JL
14852011-05-06 Jeff Law <law@redhat.com>
1486
1487 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1488 remove_ctrl_stmt_and_useless_edges.
1489 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1490 (fixup_template_block, thread_single_edge): Likewise.
1491 (mark_threaded_blocks): Use THREAD_TARGET.
1492
1fc1b66d
AM
14932011-05-06 Alan Modra <amodra@gmail.com>
1494
1495 PR target/48900
1496 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1497 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1498
e194de64
UB
14992011-05-06 Uros Bizjak <ubizjak@gmail.com>
1500
1501 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1502 constraint modifier to "r".
1503
d740dc9e
JM
15042011-05-06 Joseph Myers <joseph@codesourcery.com>
1505
1506 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1507 fall through for OPT_mcmodel_.
1508
cab78b15
AK
15092011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1510
1511 * config/s390/s390.c (s390_asm_trampoline_template): Comment
1512 instruction sizes.
e194de64 1513 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 1514
ee6824ae
RR
15152011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1516
eb1485a6
UB
1517 PR target/47930
1518 * config/arm/arm.opt (marm): Document it.
1519 (mthumb): Reject negative variant.
ee6824ae 1520
9ef58464
UB
15212011-05-06 Uros Bizjak <ubizjak@gmail.com>
1522
1523 PR target/48898
1524 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1525 Fix typo in "ccvt" variable name.
1526
155b6176
TG
15272011-05-06 Tristan Gingold <gingold@adacore.com>
1528
1529 PR target/48895
1530 * config/vms/vms-ar.c (main): Remove cwd variable.
1531
3becc47b
JJ
15322011-05-06 Jakub Jelinek <jakub@redhat.com>
1533
1534 PR debug/48902
1535 * var-tracking.c (prepare_call_arguments): Move else before #endif.
1536
3d528853
NF
15372011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1538
1539 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1540 * gimplify.c (gimplify_switch_expr): Likewise.
1541 * omp-low.c (expand_omp_sections): Likewise.
1542 * tree-eh.c (lower_try_finally_switch): Likewise.
1543 (lower_eh_dispatch): Likewise.
1544 * tree.h (build_case_label): Declare.
1545 * tree.c (build_case_label): Define.
1546
deb5046b
JM
15472011-05-05 Jason Merrill <jason@redhat.com>
1548
1549 PR c++/40975
1550 * tree-inline.c (copy_tree_r): Use copy_statement_list.
1551 (copy_statement_list): Don't recurse.
1552 * stor-layout.c (copy_self_referential_tree_r): Don't allow
1553 STATEMENT_LIST.
1554
013c0411
JM
15552011-05-05 Joseph Myers <joseph@codesourcery.com>
1556
1557 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1558 through from -mfpu= handling.
1559 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1560
a0905f8b
BS
15612011-05-05 Bernd Schmidt <bernds@codesourcery.com>
1562
1563 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1564 POST_MODIFY.
1565
fc4538e4
SE
15662011-05-05 Steve Ellcey <sje@cup.hp.com>
1567
1568 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1569 for 11.31.
1570 (hppa[12]*-*-hpux11*): Ditto.
1571 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1572 * config/ia64/hpux-unix2003.h: New.
1573 * config/pa/pa-hpux1131.opt: New.
1574 * config/pa/pa-hpux1131.h: New.
1575 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1576 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 1577 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 1578
1e30c578
JJ
15792011-05-05 Jakub Jelinek <jakub@redhat.com>
1580
1581 PR debug/48853
1582 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1583 instead of mode as 3rd argument to recursive call.
1584 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1585 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1586 VOIDmode.
1587 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1588 don't give up if mode is Pmode and mem_mode is not VOIDmode.
1589 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1590 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1591
d19eb620
JB
15922011-05-05 Julian Brown <julian@codesourcery.com>
1593
1594 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1595 parenthesis in D-register case.
1596
c860fe8c
JM
15972011-05-05 Joseph Myers <joseph@codesourcery.com>
1598
1599 * opt-functions.awk (var_type_struct): Handle Enum options.
1600 * optc-gen.awk: Don't check range of variables of character type.
1601 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1602 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1603 rs6000_sdata_name, rs6000_explicit_options): Remove.
1604 (rs6000_option_override_internal): Check for -malign-power here.
1605 Use global_options_set instead of rs6000_explicit_options.
1606 (rs6000_parse_fpu_option): Remove.
1607 (rs6000_handle_option): Access variables via opts and opts_set
1608 pointers. Use error_at and warning_at. Add fall-through
1609 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1610 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1611 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1612 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1613 here. Don't use rs6000_parse_fpu_option.
1614 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1615 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1616 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1617 (mrecip=): Use Var.
1618 (mspe): Use Var and Save.
1619 (mtraceback=): Use Enum and Var.
1620 (rs6000_traceback_type): New Enum and EnumValue entries.
1621 (mfloat-gprs=): Use Enum, Var and Save.
1622 (rs6000_float_gprs): New Enum and EnumValue entries.
1623 (mlong-double-): use Var and Save.
1624 (msched-costly-dep=, minsert-sched-nops=): Use Var.
1625 (malign-): Use Enum and Var.
1626 (rs6000_alignment_flags): New Enum and EnumValue entries.
1627 (mfpu=): Use Enum.
1628 (fpu_type_t): New Enum and EnumValue entries.
1629 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1630 global_options_set instead of rs6000_explicit_options.
1631 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1632 global_options_set instead of rs6000_explicit_options.
1633 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1634 global_options_set instead of rs6000_explicit_options.
1635 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1636 global_options_set instead of rs6000_explicit_options.
1637 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1638 global_options_set instead of rs6000_explicit_options.
1639 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1640 global_options_set instead of rs6000_explicit_options.
1641 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1642 definition.
1643 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1644 global_options_set instead of rs6000_explicit_options.
1645 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1646 (rs6000_cmodel): New Enum and EnumValue entries.
1647 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1648 global_options_set instead of rs6000_explicit_options.
1649 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1650 (mtls-size=): Use Enum and Var.
1651 (rs6000_tls_size): New Enum and EnumValue entries.
1652
0691dde9
MM
16532011-05-05 Michael Matz <matz@suse.de>
1654
1655 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1656 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1657 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1658 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1659 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1660 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1661 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1662 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1663 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1664 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1665 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1666 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1667 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1668 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1669 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1670 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1671
86529a49
RG
16722011-05-05 Richard Guenther <rguenther@suse.de>
1673
1674 * expmed.c (expand_variable_shift): Rename to ...
1675 (expand_shift_1): ... this. Take an expanded shift amount.
1676 For rotates recurse directly not building trees for the shift amount.
1677 (expand_variable_shift): Wrap around expand_shift_1.
1678 (expand_shift): Adjust.
1679
d0228c2e
JJ
16802011-05-05 Jakub Jelinek <jakub@redhat.com>
1681
1682 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1683
907a08d9
EB
16842011-05-05 Eric Botcazou <ebotcazou@adacore.com>
1685
1686 * tree.h (get_pending_sizes): Remove prototype.
1687 (put_pending_size): Likewise.
1688 (put_pending_sizes): Likewise.
1689 * stor-layout.c (pending_sizes): Delete.
1690 (get_pending_sizes): Likewise.
1691 (put_pending_size): Likewise.
1692 (put_pending_sizes): Likewise.
1693 (variable_size): Do not call put_pending_size and tidy up.
1694 * function.h (struct function): Remove dont_save_pending_sizes_p.
1695 * lto-streamer-in.c (input_function): Do not stream it.
1696 * lto-streamer-out.c (output_function): Likewise.
1697 * tree-inline.c (initialize_cfun): Do not copy it.
1698 * c-decl.c (store_parm_decls): Do not set it.
1699 * omp-low.c (create_task_copyfn): Likewise.
1700 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1701
386d9c57
UB
17022011-05-05 Uros Bizjak <ubizjak@gmail.com>
1703
1704 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1705 conditions.
1706 (*movdf_internal): Ditto.
1707 (*movdf_internal_nointeger): Ditto.
1708 (*movsf_internal): Ditto.
1709
a04a722b
JM
17102011-05-05 Joseph Myers <joseph@codesourcery.com>
1711
1712 * c-decl.c (finish_decl): Don't call get_pending_sizes.
1713 (grokparm): Add parameter expr. Pass it to grokdeclarator.
1714 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
1715 (c_variable_size): Remove.
1716 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
1717 call put_pending_sizes.
1718 (get_parm_info): Add parameter expr. Use it to set
1719 arg_info->pending_sizes.
1720 (store_parm_decls): Use arg_info->pending_sizes instead or calling
1721 get_pending_sizes.
1722 * c-parser.c (c_parser_parms_declarator): Update call to
1723 c_parser_parms_list_declarator.
1724 (c_parser_parms_list_declarator): Take parameter expr. Update
1725 call to push_parm_decl. Update recursive call. Don't call
1726 get_pending_sizes. Update calls to get_parm_info.
1727 (c_parser_objc_method_definition): Update calls to
1728 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 1729 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
1730 (c_parser_objc_method_decl): Add parameter expr. Update call to
1731 grokparm.
386d9c57 1732 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
1733 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1734 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1735
c92a6f97
MH
17362011-05-05 Michael Hope <michael.hope@linaro.org>
1737
386d9c57
UB
1738 PR pch/45979
1739 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1740 __ARM_EABI__ hosts.
c92a6f97 1741
07ea0048
UW
17422011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1743
1744 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1745 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1746 (spu_output_mi_thunk): New function.
1747
d634bfa1
RO
17482011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1749
1750 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1751 targetm.asm_out.print_operand.
1752 * config/sol2.c: Include target.h.
1753
40fda55b
JH
17542011-05-04 Jan Hubicka <jh@suse.cz>
1755
1756 * ipa-inline.c (reset_edge_caches): New function.
1757 (update_caller_keys): Add check_inlinablity_for; do not
1758 reset edge caches; remove now unnecesary loop.
386d9c57 1759 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
1760 (update_all_callee_keys): Likewise.
1761 (inline_small_functions): Sanity check cache; update code
1762 recomputing it.
1763
0360f70d
BS
17642011-05-04 Bernd Schmidt <bernds@codesourcery.com>
1765
1766 PR rtl-optimization/47612
1767 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1768 as the last insn of the sequence to be moved.
1769
7a994646
TB
17702011-05-04 Tobias Burnus <burnus@net-b.de>
1771
1772 PR fortran/48864
1773 * doc/invoke.texi (Ofast): Document that it
1774 enables Fortran's -fno-protect-parens.
1775
7a2f7208
UB
17762011-05-04 Uros Bizjak <ubizjak@gmail.com>
1777
1778 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1779
a2d42931
EB
17802011-05-04 Eric Botcazou <ebotcazou@adacore.com>
1781
1782 * stor-layout.c (variable_size): Do not issue errors.
1783
f81b1a3d
RG
17842011-05-04 Richard Guenther <rguenther@suse.de>
1785
1786 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1787 for array-ref indices.
1788 (tree_coverage_counter_addr): Likewise.
1789 (build_fn_info_type): Use size_int for index types.
1790 (build_gcov_info): Likewise.
1791
c62c040f
RG
17922011-05-04 Richard Guenther <rguenther@suse.de>
1793
1794 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1795 to build_int_cst.
1796 * c-typeck.c (really_start_incremental_init): Use bitsize_int
1797 for constructor indices.
1798 (push_init_level): Likewise.
1799
1e3287d0
RG
18002011-05-04 Richard Guenther <rguenther@suse.de>
1801
1802 * explow.c (promote_mode): Move variable declarations before code.
1803
6c32445b
NF
18042011-05-04 Nathan Froyd <froydnj@codesourcery.com>
1805
1806 * tree.h (build_function_type_array): Declare.
1807 (build_varargs_function_type_array): Declare.
1808 (build_function_type_vec, build_varargs_function_type_vec): Define.
1809 * tree.c (build_function_type_array_1): New function.
1810 (build_function_type_array): New function.
1811 (build_varargs_function_type_array): New function.
1812
fdabf269
RS
18132011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
1814
1815 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1816 before setting STMT_VINFO_TYPE.
1817
a207915a
UW
18182011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1819
1820 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1821 instead of spu_pass_by_reference.
1822
5e617be8
AK
18232011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1824
1825 * calls.c (emit_library_call_value_1): Invoke
1826 promote_function_mode hook on libcall arguments.
1827 * explow.c (promote_function_mode, promote_mode): Handle TYPE
1828 argument being NULL.
1829 * targhooks.c (default_promote_function_mode): Lisewise.
1830 * config/s390/s390.c (s390_promote_function_mode): Likewise.
1831 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1832
1833 * doc/tm.texi: Document that TYPE argument might be NULL.
1834
486d04be
SH
18352011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1836
1837 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1838
9b19b026
SH
18392011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1840
1841 From Bernd Schmidt
1842 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1843
502bc3df
RO
18442011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1845
1846 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1847 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1848 Move ...
1849 * mips-tfile.c: ... here.
1850 Don't include coretypes.h, tm.h, filenames.h.
1851 (saber_stop): Remove definition and all calls.
1852 [__SABER__]: Remove.
1853 (__LINE__): Remove default.
1854 (Size_t, Ptrdiff_t): Remove definitions.
1855 Replace by size_t, ptrdiff_t.
1856 [!MIPS_DEBUGGING_INFO]: Remove.
1857 (SHASH_SIZE, THASH_SIZE): Remove defaults.
1858 (progname): Add const.
1859 (STATIC): Remove.
1860 Replace all uses by static.
1861 (ALIGN_SYMTABLE_OFFSET): Remove default.
1862 * mips-tdump.c: Don't include coretypes.h, tm.h.
1863 Remove !MIPS_IS_STAB guard.
1864 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1865 $(TM_H), filenames.h dependencies.
1866 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1867
991eb6ef
SH
18682011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1869
1870 From Jie Zhang
1871 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1872 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1873
420ccc84
SH
18742011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1875
1876 From Bernd Schmidt
1877 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1878 account and save/restore RETS.
1879 (PROFILE_BEFORE_PROLOGUE): Define.
1880 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
1881 the push insn to use predecrement.
1882
9f8d69ee
SH
18832011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1884
1885 From Jie Zhang
1886 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1887
662c03f4
NC
18882011-05-04 Nick Clifton <nickc@redhat.com>
1889
1890 * config/mn10300/mn10300.c: Include cfgloop.h.
1891 (DUMP): New macro.
1892 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
1893 Lcc or a FLcc insn into the instruction stream.
1894 (mn10300_block_contains_call): New function. Returns true if the
1895 given basic block contains a CALL insn.
1896 (mn10300_loop_contains_call_insn): New function. Returns true if
1897 the given loop contains a CALL insn.
1898 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
1899 to use the SETLB and Lcc or FLcc insns.
1900 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1901 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1902 * config/mn10300/mn10300.opt (msetlb): New option. Used to
1903 disable the SETLB optimization.
1904 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1905 __SETLB__ or __NO_SETLB__.
1906 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1907 (movsf_internal): Handle MDR register.
1908 (cmpsi): Make visible.
1909 (setlb): New pattern.
1910 (Lcc): New pattern.
1911 (FLcc): New pattern.
1912
843b6915
UB
19132011-05-04 Uros Bizjak <ubizjak@gmail.com>
1914
1915 PR target/48860
1916 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1917 for reg<->xmm moves.
1918 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1919 (vec_concatv2di_rex64_sse): Ditto.
1920 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1921 (*vec_extractv2di_1_rex64): Ditto.
1922
1923 Revert:
1924 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
1925
1926 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1927 reg<->xmm moves.
1928 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1929
d35936ab
RG
19302011-05-04 Richard Guenther <rguenther@suse.de>
1931
1932 * tree.h (int_const_binop): Remove notrunc argument.
1933 * fold-const.c (int_const_binop): Remove notrunc argument. Always
1934 create integer constants that are properly truncated.
1935 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1936 (const_binop): Remove zero notrunc argument to int_const_binop.
1937 (size_binop_loc): Likewise.
1938 (fold_div_compare): Likewise.
1939 (maybe_canonicalize_comparison_1): Likewise.
1940 (fold_comparison): Likewise.
1941 (fold_binary_loc): Likewise.
1942 (multiple_of_p): Likewise.
1943 * expr.c (store_constructor): Likewise.
1944 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1945 (maybe_fold_stmt_addition): Likewise.
1946 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1947 * stor-layout.c (layout_type): Likewise.
1948 * tree-data-ref.c (tree_fold_divides_p): Likewise.
1949 * tree-sra.c (build_ref_for_offset): Likewise.
1950 (build_user_friendly_ref_for_offset): Likewise.
1951 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1952 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1953 * tree-ssa-loop-niter.c (inverse): Likewise.
1954 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1955 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1956 * tree-switch-conversion.c (check_range): Likewise.
1957 (build_constructors): Likewise.
1958 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1959 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1960 (extract_range_from_assert): Likewise.
1961 (vrp_int_const_binop): Likewise.
1962 (extract_range_from_binary_expr): Likewise.
1963 (extract_range_from_unary_expr): Likewise.
1964 (check_array_ref): Likewise.
1965 (find_case_label_range): Likewise.
1966 (simplify_div_or_mod_using_ranges): Likewise.
1967 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1968 comparing case labels for merging.
1969
8992c063
MW
19702011-05-03 Mark Wielaard <mjw@redhat.com>
1971
1972 * dwarf2out.c (debug_str_hash_forced): Removed.
1973 (gen_label_for_indirect_string): Removed.
1974 (get_debug_string_label): Removed.
1975 (AT_string_form): Generate label directly.
1976 (output_indirect_string): Test indirect_string_node for
1977 DW_FORM_strp instead of checking label and refcount.
1978 (prune_indirect_string): Removed.
1979 (prune_unused_types): Don't check debug_str_hash_forced or
1980 call prune_indirect_string.
1981
4868e6ea
AO
19822011-05-04 Alexandre Oliva <aoliva@redhat.com>
1983
1984 PR other/48093
1985 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1986
01a5c0ab
AO
19872011-05-04 Alexandre Oliva <aoliva@redhat.com>
1988
1989 PR debug/47994
1990 PR debug/47919
1991 * combine.c (try_combine): Skip debug insns at m_split tests.
1992
6ac00218
MW
19932011-04-26 Mark Wielaard <mjw@redhat.com>
1994
1995 PR42288
1996 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1997 when info_section_emitted.
1998
3af42a7b
JM
19992011-05-03 Joseph Myers <joseph@codesourcery.com>
2000
2001 * config/mips/mips-opts.h: New.
2002 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2003 to mips-opts.h.
2004 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2005 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2006 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
2007 via opts pointer.
2008 * config/mips/mips.h (enum mips_code_readable_setting): Move to
2009 mips-opts.h.
2010 (mips_abi, mips_code_readable): Don't declare.
843b6915 2011 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
2012 (mabi=): Use Enum and Var.
2013 (mips_abi): New Enum and EnumValue entries.
2014 (mcode-readable=): Use Enum and Var.
2015 (mips_code_readable_setting): New Enum and EnumValue entries.
2016 (mr10k-cache-barrier=): Use Enum and Var.
2017 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2018
1cb1a99f
JH
20192011-05-03 Jan Hubicka <jh@suse.cz>
2020
2021 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2022 replace hash by pointer map.
2023 (cgraph_node_set_element_def, cgraph_node_set_element,
2024 const_cgraph_node_set_element, varpool_node_set_element_def,
2025 varpool_node_set_element, const_varpool_node_set_element): Remove.
2026 (free_cgraph_node_set, free_varpool_node_set): New function.
2027 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2028 * tree-emutls.c: Free varpool node set.
2029 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2030 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2031 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2032 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2033 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2034 Move here from ipa.c; implement using pointer_map
2035 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2036 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2037 debug_cgraph_node_set, varpool_node_set_new,
2038 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2039 dump_varpool_node_set, debug_varpool_node_set):
2040 Move to ipa-uitls.c.
2041 * passes.c (ipa_write_summaries): Update.
2042
7f31f4db
SH
20432011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2044
7a2f7208
UB
2045 From Mike Frysinger:
2046 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2047 bf542/bf544/bf547/bf548/bf549.
7f31f4db 2048
b70fce6d
UB
20492011-05-03 Uros Bizjak <ubizjak@gmail.com>
2050
2051 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2052
265b1d82
SH
20532011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2054
2055 From Bernd Schmidt:
2056 * config/bfin/bfin.md (MOVCC): New mode_macro.
2057 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2058 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2059 comments from generated assembly.
2060
f0b568f3
SH
20612011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2062
2063 From Bernd Schmidt
2064 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2065 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2066 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2067 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2068 * config/bfin/lib1funcs.asm (___muldi3): New function.
2069
2c67cf6e
NF
20702011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2071
2072 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2073 build_function_type_list instead of build_function_type.
2074 Rearrange initialization of `args' to do so.
2075
f9ac28ad
NF
20762011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2077
2078 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2079 instead of build_function_type.
2080
22b8798c
NF
20812011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2082
2083 * config/rs6000/rs6000.c (spe_init_builtins): Call
2084 build_function_type_list instead of build_function_type.
2085 (paired_init_builtins, altivec_init_builtins): Likewise.
2086 (builtin_function_type): Likewise.
2087
4cb44528
NF
20882011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2089
2090 * config/sh/sh.c (sh_media_init_builtins): Call
2091 build_function_type_list instead of build_function_type.
2092
4c203a6a
NF
20932011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2094
2095 * config/sparc/sparc.c (sparc_file_end): Call
2096 build_function_type_list instead of build_function_type.
2097
d6a3d62b
NF
20982011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2099
2100 * config/alpha/alpha.c (alpha_init_builtins): Call
2101 build_function_type_list instead of build_function_type.
2102
de530b86
NF
21032011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2104
2105 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2106 build_function_type_list instead of build_function_type.
2107
baeec5f2
NF
21082011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2109
2110 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2111 build_function_type_list instead of build_function_type.
2112 Delete `endlink' variable.
2113
c19afe52
NF
21142011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2115
2116 * config/avr/avr.c (avr_init_builtins): Call
2117 build_function_type_list instead of build_function_type.
2118
a341df0a
NF
21192011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2120
2121 * config/picochip/picochip.c (picochip_init_builtins): Call
2122 build_function_type_list instead of build_function_type.
2123 Delete `endlink' variable.
2124
2102b1e1
NF
21252011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2126
2127 * config/bfin/bfin.c (bfin_init_builtins): Call
2128 build_function_type_list instead of build_function_type.
2129
9f111209
SH
21302011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2131
2132 From Bernd Schmidt
2133 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2134 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2135
7071d064
SH
21362011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2137
2138 From Jie Zhang:
2139 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2140 libbffastfp overrides libgcc when -mfast-fp.
2141
748f7574 21422011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
2143
2144 Originally from Bernd Schmidt
2145 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2146 * config/bfin/bfin.c (override_options): Test it and error if
2147 TARGET_FDPIC.
2148
1a3a9152
SH
21492011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2150
2151 Originally From Bernd Schmidt
2152 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2153 FD-PIC.
2154
7134c090
JL
21552011-05-03 Jeff Law <law@redhat.com>
2156
2157 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2158 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2159 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
2160 than accessing AUX field directly. Free the AUX field before
2161 clearing it.
7134c090
JL
2162 (thread_block, thread_through_loop_header): Likewise.
2163 (thread_single_edge, mark_threaded_blocks): Likewise.
2164 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2165 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 2166
2c7eebae
BS
21672011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2168
2169 * function.c (init_function_start): Call decide_function_section.
2170 * varasm.c (decide_function_section): New function.
2171 (assemble_start_function): When not using
2172 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2173 or first_function_block_is_cold.
2174 * rtl.h (decide_function_section): Declare.
2175
17038fcf
JJ
21762011-05-03 Uros Bizjak <ubizjak@gmail.com>
2177 Jakub Jelinek <jakub@redhat.com>
2178
2179 PR target/48774
2180 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2181 only succeed if req_mode is the same as set_mode.
2182
3810076b
BS
21832011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2184
2185 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2186 * genemit.c (gen_exp): Handle RETURN.
2187 * emit-rtl.c (verify_rtx_sharing): Likewise.
2188 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2189 * rtl.c (copy_rtx): RETURN is shared.
2190 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2191 (ret_rtx): New.
2192 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2193 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2194 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2195 * config/cris/cris.c (cris_expand_return): Likewise.
2196 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2197 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2198 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2199 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2200 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2201 Likewise.
2202 * config/v850/v850.c (expand_epilogue): Likewise.
2203 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2204 * config/arm/arm.md (epilogue): Likewise.
2205 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2206 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2207 variable to ret_reg.
2208
9efdb4ad
RG
22092011-05-03 Richard Guenther <rguenther@suse.de>
2210
2211 PR lto/48846
2212 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2213 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2214 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2215
60a45536
RG
22162011-05-03 Richard Guenther <rguenther@suse.de>
2217
2218 * c-decl.c (grokdeclarator): Instead of looking at
2219 TREE_OVERFLOW check if the constant fits in the index type.
2220
3188ed59
RS
22212011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2222
2223 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2224 (vec_store_lanes<mode><mode>): Likewise.
2225
272c6793
RS
22262011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2227
2228 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2229 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2230 convert_optab_index values.
2231 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2232 * genopinit.c (optabs): Initialize the new optabs.
2233 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2234 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2235 (expand_STORE_LANES): New functions.
2236 * tree.h (build_array_type_nelts): Declare.
2237 * tree.c (build_array_type_nelts): New function.
2238 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2239 (vect_model_load_cost): Likewise.
2240 (vect_store_lanes_supported, vect_load_lanes_supported)
2241 (vect_record_strided_load_vectors): Declare.
2242 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2243 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2244 (vect_transform_strided_load): Split out statement recording into...
2245 (vect_record_strided_load_vectors): ...this new function.
2246 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2247 (write_vector_array, create_array_ref): New functions.
2248 (vect_model_store_cost): Add store_lanes_p argument.
2249 (vect_model_load_cost): Add load_lanes_p argument.
2250 (vectorizable_store): Try to use store-lanes functions for
2251 interleaved stores.
2252 (vectorizable_load): Likewise load-lanes and loads.
2253 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2254 to vect_model_store_cost.
2255 (vect_build_slp_tree): Likewise vect_model_load_cost.
2256
0f6d54f7
RS
22572011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2258
2259 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2260 * hooks.c (hook_bool_mode_uhwi_false): New function.
2261 * target.def (array_mode_supported_p): New hook.
2262 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2263 * doc/tm.texi: Regenerate.
2264 * stor-layout.c (mode_for_array): New function.
2265 (layout_type): Use it.
2266 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2267 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2268
b15eacc7
EB
22692011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2270
2271 PR target/48723
2272 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2273 for -fstack-check if the size to allocate is negative.
2274
575bfb00
LC
22752011-05-02 Lawrence Crowl <crowl@google.com>
2276
2277 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2278 (timevar_cond_start): New for starting a timer only when it is not
2279 already running.
2280 (timevar_cond_stop): New for stopping a timer when it was not already
2281 running.
2282
2283 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2284 (timevar_cond_start): New as above.
2285 (timevar_cond_stop): New as above.
2286
2287 * timevar.def: Add start/stop timers for compiler phases,
2288 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2289 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2290 and TV_PHASE_FINALIZE.
2291 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2292 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2293 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2294 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2295 Make unused TV_OVERLOAD into a start/stop timer.
2296
2297 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2298 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2299 to indicate that they are start/stop timers.
2300
2301 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2302 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2303 Move initialization to do_compile.
2304 (do_compile): Add initialization from above.
2305 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2306
2307 * c-decl.c (c_write_global_declarations): Add start/stop of
2308 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2309
2310 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2311 or TV_PARSE_INLINE, as appropriate.
2312 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2313 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2314
3533b943
JM
23152011-05-02 Jason Merrill <jason@redhat.com>
2316
2317 PR c++/40975
2318 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2319
2609a0ce
SM
23202011-05-02 Simon Martin <simartin@users.sourceforge.net>
2321
2322 PR c/35445
2323 * c-decl.c (finish_decl): Only create a composite if the types are
2324 compatible.
2325
6b0e4cbb
JM
23262011-05-02 Joseph Myers <joseph@codesourcery.com>
2327
2328 * config/fr30/fr30-protos.h (Mmode): Don't define.
2329 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2330 definition where used.
2331 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2332 define. Expand definitions where used.
2333 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2334 Expand definitions where used.
2335 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2336 rx_function_arg, rx_function_arg_advance,
2337 rx_function_arg_boundary): Expand definitions of those macros.
2338 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2339 definition where used.
2340
4e938ce6
UB
23412011-05-02 Uros Bizjak <ubizjak@gmail.com>
2342
2343 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2344 reg<->xmm moves.
2345 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2346 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2347 with *movv2sf_internal_rex64_avx.
2348 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2349 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2350 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2351 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2352 "vex" in "prefix" attribute calculation.
2353 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2354
36019c19
SH
23552011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2356
7a2f7208
UB
2357 PR target/47951
2358 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2359 inputs match the output.
36019c19 2360
f69ea688
AS
23612011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2362
2363 PR target/47955
2364 * config/m68k/m68k.c (m68k_expand_prologue): Set
2365 current_function_static_stack_size.
2366
c33406f5
JH
23672011-05-02 Jan Hubicka <jh@suse.cz>
2368
2369 * lto-streamer.c (lto_streamer_cache_insert_1,
2370 lto_streamer_cache_lookup, lto_streamer_cache_create,
2371 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2372 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2373
47c94d21
JM
23742011-05-02 Joseph Myers <joseph@codesourcery.com>
2375
2376 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2377 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2378 config/m68k/t-opts: New files.
2379 * config/m68k/m68k-tables.opt: New file (generated).
2380 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2381 extra_options and m68k/t-opts to tmake_file.
2382 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2383 (all_isas): Initialize using m68k-isas.def.
2384 (all_microarchs): Initialize using m68k-microarchs.def.
2385 (m68k_find_selection): Remove.
2386 (m68k_handle_option): Don't assert that global structures are in
2387 use. Use error_at. Access variables via opts pointer. Don't
2388 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2389 directly for -m68020-40 and -m68020-60.
2390 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2391 m68k_tune_entry here.
2392 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2393 to m68k-opts.h.
2394 (m68k_library_id_string): Remove declaration.
4e938ce6 2395 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
2396 (m68k_library_id_string): New Variable.
2397 (march=, mcpu=, mtune=): Use Enum and Var.
2398
e562bf36
RG
23992011-05-02 Richard Guenther <rguenther@suse.de>
2400
2401 * varasm.c (output_constructor_regular_field): Compute zero-based
2402 index with double-ints. Make sure to ICE instead of producing
2403 wrong code.
2404 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2405 in asserts. Properly use a signed type.
2406
6bec6c98
UB
24072011-05-02 Uros Bizjak <ubizjak@gmail.com>
2408
2409 * config/i386/sse.md (V): New mode iterator.
2410 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2411 TARGET_SSE2.
2412 (V_256): Rename from AVX256MODE.
2413 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2414 condition to all users.
2415 (VF1): Ditto.
2416 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2417 condition to all users.
2418 (VF_128): Make V4SF mode unconditional.
2419 (VF_256): Rename from AVX256MODEF2P.
2420 (VI4F_128): Rename from SSEMODE4S.
2421 (VI8F_128): Rename from SSEMODE2D.
2422 (VI4F_256): Rename from AVX256MODE8P.
2423 (VI8F_256): Rename from AVX256MODE4P.
2424 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2425 (ssescalarmodesuffix): Remove SF and DF modes.
2426 (SSEMODE124): Remove.
2427 (SSEMODE1248): Ditto.
2428 (SSEMODEF2P): Ditto.
2429 (AVXMODEF2P): Ditto.
2430 (AVXMODEFDP): Ditto.
2431 (AVXMODEFSP): Ditto.
2432 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2433 unconditional.
2434 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2435 unconditional.
2436 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2437 xop_pcmov_<mode>256. Use V mode iterator.
2438
2439 Adjust RTX patterns globally for renamed mode attributes.
2440
2dfdcb4b
UW
24412011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2442
2443 * haifa-sched.c (sched_emit_insn): Emit insn before first
2444 non-scheduled insn. Inform back-end about new insn. Add
2445 new insn to scheduled_insns list.
2446
90bc4623
RG
24472011-05-02 Richard Guenther <rguenther@suse.de>
2448
2449 PR tree-optimization/48822
2450 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2451 (process_scc): Indicate which iteration we start.
2452
bc0fe8cb
JH
24532011-05-02 Jan Hubicka <jh@suse.cz>
2454
2455 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2456 (lto_section_overrun): New.
2457 * lto-section-out.c (append_block): Rename to ...
2458 (lto_append_block): ... this one; export.
2459 (lto_output_1_stream): Move lto lto-streamer.h
2460 (lto_output_data_stream): Update.
2461 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2462 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2463 functions.
2464
f070a9d1
RG
24652011-05-02 Richard Guenther <rguenther@suse.de>
2466
2467 * tree.c (tree_code_counts): New global array.
2468 (record_node_allocation_statistics): Count individual tree codes.
2469 (dump_tree_statistics): Dump individual code stats.
2470
09dfe187
JH
24712011-05-01 Jan Hubicka <jh@suse.cz>
2472
2473 * ipa-inline.c (caller_growth_limits): Fix thinko when
2474 looking for largest stack frame.
2475 * ipa-inline.h (dump_inline_summary): Declare.
2476 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2477 on stack usage.
2478 (dump_inline_summary): Export.
2479 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2480
6f76a878
AS
24812011-05-01 Anatoly Sokolov <aesok@post.ru>
2482
2483 * reginfo.c (memory_move_cost): Change rclass argument type form
2484 'enum reg_class' to reg_class_t.
2485 * reload.h (memory_move_cost): Update prototype.
2486 * postreload.c reload_cse_simplify_set): Change type dclass var to
2487 reg_class_t.
2488 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2489 Update prototype.
2490 (ira_allocate_and_set_costs): Change aclass argument type form
2491 'enum reg_class' to reg_class_t.
6bec6c98 2492 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
2493 Change aclass argument type to reg_class_t.
2494 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2495 to reg_class_t.
2496 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2497 memory_move_cost call.
2498
2499 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2500 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2501 Change type tmp var to reg_class_t.
2502
9a4ac625
JH
25032011-04-30 Jan Hubicka <jh@suse.cz>
2504
2505 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2506 inlining into function with flatten attribute.
2507 (want_inline_small_function_p): Be more realistic about inlining
2508 cold calls where callee size grows.
2509
dd8352ee
JH
25102011-04-30 Jan Hubicka <jh@suse.cz>
2511
2512 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2513 flags.
2514
46e43d2b
AS
25152011-04-30 Anatoly Sokolov <aesok@post.ru>
2516
2517 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2518 PRINT_OPERAND_PUNCT_VALID_P): Remove.
2519 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2520 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2521 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2522 (print_operand): Rename to...
2523 (sparc_print_operand): ...this. Make static. Adjust
2524 sparc_print_operand function call.
2525 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2526 functions.
2527
ecb62563
JH
25282011-04-30 Jan Hubicka <jh@suse.cz>
2529
6bec6c98 2530 PR middle-end/48752
ecb62563
JH
2531 * ipa-inline.c (early_inliner): Disable when doing late
2532 addition of function.
2533
edb9b69e
JJ
25342011-04-30 Jakub Jelinek <jakub@redhat.com>
2535
be80a87e
JJ
2536 * dwarf2out.c (get_address_mode): New inline.
2537 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2538 if not dwarf_strict emit
2539 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2540 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2541 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
2542 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2543 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2544 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2545 mem_loc_descriptor callers.
2546 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2547 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2548 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2549 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2550 (base_types): New variable.
2551 (get_base_type_offset, calc_base_type_die_sizes,
2552 base_type_for_mode, mark_base_types, base_type_cmp,
2553 move_marked_base_types): New functions.
2554 (calc_die_sizes): Assert that die_offset is 0 or equal to
2555 next_die_offset.
2556 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2557 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
2558 callers. If not dwarf_strict, call mem_loc_descriptor even for
2559 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2560 (gen_subprogram_die): Don't give up on call site parameters
2561 with non-integral or large integral modes. Adjust
2562 mem_loc_descriptor callers.
2563 (prune_unused_types): Call prune_unused_types_mark on base_types
2564 vector entries.
2565 (resolve_addr): Call mark_base_types.
2566 (dwarf2out_finish): Call move_marked_base_types.
2567
edb9b69e
JJ
2568 PR tree-optimization/48809
2569 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2570 type.
2571 (gen_inbound_check): Don't compute index_expr - range_min in utype
2572 again, instead reuse SSA_NAME initialized in build_arrays.
2573 Remove two useless gsi_for_stmt calls.
2574
a6545a3d
JL
25752011-04-29 Jeff Law <law@redhat.com>
2576
2577 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2578
af8bca3c
MJ
25792011-04-29 Martin Jambor <mjambor@suse.cz>
2580
2581 * cgraph.h (cgraph_postorder): Remove declaration.
2582 * ipa-utils.h (ipa_free_postorder_info): Declare.
2583 (ipa_reverse_postorder): Likewise.
2584 * cgraphunit.c: Include ipa-utils.h.
2585 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2586 * ipa-inline.c: Include ipa-utils.h.
2587 (ipa_inline): Update call to ipa_reverse_postorder.
2588 * ipa-pure-const.c (propagate_pure_const): Update call to
2589 ipa_reduced_postorder and ipa_print_order. Call
2590 ipa_free_postorder_info to clean up.
2591 (propagate_nothrow): Likewise.
2592 * ipa-reference.c (propagate): Removed a useless call to
2593 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2594 and ipa_print_order. Call ipa_free_postorder_info to clean up.
2595 * ipa.c: Include ipa-utils.h.
2596 (ipa_profile): Update call to ipa_reverse_postorder.
2597 (cgraph_postorder): Moved to...
2598 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2599 (ipa_utils_print_order): Renamed to ipa_print_order.
2600 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2601 comments.
2602 (ipa_free_postorder_info): New function.
2603 * passes.c: Include ipa-utils.h.
2604 (do_per_function_toporder): Update call to ipa_reverse_postorder.
2605 (ipa_write_summaries): Likewise.
2606 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2607 (cgraphunit.o): Likewise.
2608 (ipa.o): Likewise.
2609 (ipa-inline.o): Likewise.
2610
b15c64ee
JH
26112011-04-29 Jan Hubicka <jh@suse.cz>
2612
2613 * gcc.dg/tree-ssa/inline-10.c: New testcase.
2614 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2615 * ipa-inline.h (clause_t): Turn into unsigned int.
2616 * ipa-inline-analysis.c (add_clause): Do more simplification.
2617 (and_predicates): Shortcut more cases.
2618 (predicates_equal_p): Move forward; check that clauses are properly
2619 ordered.
2620 (or_predicates): Shortcut more cases.
2621 (edge_execution_predicate): Rewrite as...
2622 (set_cond_stmt_execution_predicate): ... this function; handle
2623 __builtin_constant_p.
2624 (set_switch_stmt_execution_predicate): New .
2625 (compute_bb_predicates): New.
2626 (will_be_nonconstant_predicate): Update TODO.
2627 (estimate_function_body_sizes): Use compute_bb_predicates
2628 and free them later, always try to estimate if stmt is constant.
2629 (estimate_time_after_inlining, estimate_size_after_inlining):
2630 Gracefully handle optimized out edges.
2631 (read_predicate): Fix off by one error.
2632
a88fdc2a
NP
26332011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
2634
2635 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2636
d984c8ef
XDL
26372011-04-27 Xinliang David Li <davidxl@google.com>
2638
2639 * tree-profile.c (init_ic_make_global_vars): Set
2640 tls attribute on ic vars.
2641 * coverage.c (coverage_end_function): Initialize
2642 function_list with zero.
2643
45a2c477
RG
26442011-04-29 Richard Guenther <rguenther@suse.de>
2645
2646 * builtins.c (fold_builtin_classify_type): Use integer_type_node
2647 for the type of the result.
2648 (fold_builtin_isascii): Likewise.
2649 (fold_builtin_toascii): Use integer_type_node where appropriate.
2650 (fold_builtin_logb): Likewise.
2651 (fold_builtin_frexp): Likewise.
2652 (fold_builtin_strstr): Likewise.
2653 (fold_builtin_strpbrk): Likewise.
2654 (fold_builtin_fputs): Likewise.
2655 (fold_builtin_sprintf): Likewise.
2656 (fold_builtin_snprintf): Likewise.
2657 (fold_builtin_printf): Likewise.
2658 (do_mpfr_remquo): Use a proper type for the assigned constant.
2659 (do_mpfr_lgamma_r): Likewise.
2660 * dwarf2out.c (resolve_one_addr): Use size_int.
2661 * except.c (init_eh): Likewise.
2662 (assign_filter_values): Use integer_type_node for filter values.
2663 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2664 indices.
2665 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2666 for EH region numbers.
2667 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2668 for the shift amount.
2669
eb6c3df1
RG
26702011-04-29 Richard Guenther <rguenther@suse.de>
2671
2672 * expr.h (expand_shift): Rename to ...
2673 (expand_variable_shift): ... this.
2674 (expand_shift): Take a constant shift amount.
2675 * expmed.c (expand_shift): Rename to ...
2676 (expand_variable_shift): ... this.
2677 (expand_shift): New wrapper around expand_variable_shift.
2678 * expr.c (convert_move, emit_group_load_1, emit_group_store,
2679 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2680 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2681 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2682 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2683 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2684 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2685 emit_store_flag_1, emit_store_flag): Likewise.
2686 * builtins.c (expand_builtin_signbit): Likewise.
2687 * calls.c (load_register_parameters): Likewise.
2688 * function.c (assign_parm_setup_block): Likewise.
2689 * lower-subreg.c (resolve_shift_zext): Likewise.
2690 * optabs.c (widen_bswap, expand_abs_nojump,
2691 expand_one_cmpl_abs_nojump, expand_float): Likewise.
2692 * spu/spu.c (spu_expand_extv): Likewise.
2693 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2694
9f616812
RG
26952011-04-29 Richard Guenther <rguenther@suse.de>
2696
2697 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2698 for the remapped region number.
2699 * predict.c (build_predict_expr): Use integer_type_node for the
2700 predict kind.
2701 * fold-const.c (fold_binary_loc): Use integer_type_node for
2702 the shift amount. Use a proper type for the PLUS_EXPR operand.
2703
b823cdfe
MM
27042011-04-29 Michael Matz <matz@suse.de>
2705
2706 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2707 other trees that just builtins.
2708 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2709
413581ba
RG
27102011-04-29 Richard Guenther <rguenther@suse.de>
2711
2712 * tree-nested.c (get_trampoline_type): Use size_int.
2713 (get_nl_goto_field): Likewise.
2714 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2715 for all indexes.
2716 (lower_eh_constructs_2): Likewise.
2717 (lower_resx): Likewise.
2718 (lower_eh_dispatch): Likewise.
2719 * tree-mudflap.c (mf_build_string): Use size_int.
2720 (mudflap_register_call): Use integer_type_node for the flag.
2721 (mudflap_enqueue_constant): Use size_int.
2722 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2723 instead of rebuilding it.
2724
5c04e9f4
RG
27252011-04-29 Richard Guenther <rguenther@suse.de>
2726
2727 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2728 Handle OBJ_TYPE_REF.
2729 (find_func_aliases_for_call): Use it more consistently.
2730
5c24671b
AO
27312011-04-29 Alexandre Oliva <aoliva@redhat.com>
2732
2733 * haifa-sched.c (last_nondebug_scheduled_insn): New.
2734 (rank_for_schedule): Use it.
2735 (schedule_block): Set it.
2736
10adac51
XDL
27372011-04-28 David Li <davidxl@google.com>
2738
2739 * tree.c (crc32_string): Use crc32_byte.
2740 (crc32_byte): New function.
2741 * tree.h (crc32_byte): New function.
2742 * gcov.c (read_graph_file): Handle new cfg_cksum.
2743 (read_count_file): Ditto.
2744 * profile.c (instrument_values): Ditto.
2745 (get_exec_counts): Ditto.
2746 (read_profile_edge_counts): Ditto.
2747 (compute_branch_probabilities): Ditto.
2748 (compute_value_histograms): Ditto.
2749 (branch_prob): Ditto.
2750 (end_branch_prob): Ditto.
2751 * coverage.c (read_counts_file): Ditto.
2752 (get_coverage_counts): Ditto.
2753 (tree_coverage_counter_addr): Ditto.
2754 (coverage_checksum_string): Ditto.
2755 (coverage_begin_output): Ditto.
2756 (coverage_end_function): Ditto.
2757 (build_fn_info_type): Ditto.
2758 (build_fn_info_value): Ditto.
2759 * libgcov.c (gcov_exit): Ditto.
2760 * gcov-dump.c (tag_function): Ditto.
2761 (compute_checksum): Remove.
2762
5d6358a5
AM
27632011-04-29 Alan Modra <amodra@gmail.com>
2764
2765 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2766 unspec plus offset. Tidy macho code.
2767
85ad2ef5
MJ
27682011-04-29 Martin Jambor <mjambor@suse.cz>
2769
2770 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2771 node instead of a decl. Update all callers.
2772 * cgraph.h: Update declaration.
2773
437f4a00
IR
27742011-04-28 Ira Rosen <ira.rosen@linaro.org>
2775
2776 PR tree-optimization/48765
2777 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2778 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2779 to indicate if loop aware SLP is being used. Scan the statements
2780 and update the vectorization factor according to the type of
2781 vectorization before statement analysis.
2782 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2783 pass it to vect_analyze_loop_operations.
2784 (vectorizable_reduction): Set number of copies to 1 in case of pure
2785 SLP statement.
2786 * tree-vect-stmts.c (vectorizable_conversion,
2787 vectorizable_assignment, vectorizable_shift,
2788 vectorizable_operation, vectorizable_type_demotion,
2789 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2790 Likewise.
2791 (vectorizable_condition): Move the check that it is not SLP
2792 vectorization before the number of copies check.
2793 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2794 to vectorize the loop using SLP.
2795
c6fc44f3
JJ
27962011-04-28 Jakub Jelinek <jakub@redhat.com>
2797
2798 PR middle-end/48597
2799 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2800 inline asm.
2801
6c0170ea
JM
28022011-04-28 Joseph Myers <joseph@codesourcery.com>
2803
2804 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2805 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2806 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2807 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2808 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2809 linux*.h headers.
6bec6c98 2810 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
2811 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2812 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2813 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 2814 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
2815 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2816 REG_NAME.
2817 * config/i386/linux.h (REG_NAME): Don't define.
2818 * config/i386/linux64.h (REG_NAME): Don't define.
2819 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2820 Undefine before defining.
2821
970dabbd
JH
28222011-04-28 Jan Hubicka <jh@suse.cz>
2823
6bec6c98
UB
2824 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2825 nonconstant_names array.
970dabbd
JH
2826 (estimate_function_body_sizes): Build nonconstant_names array; handle
2827 BUILT_IN_CONSTANT_P.
2828
8d3e3924
RG
28292011-04-28 Richard Guenther <rguenther@suse.de>
2830
2831 PR bootstrap/48804
2832 Revert
2833 2011-04-28 Richard Guenther <rguenther@suse.de>
2834
2835 * tree-ssa-structalias.c (solve_constraints): Build succ graph
2836 as late as possible.
6bec6c98 2837
8576f20a
RG
28382011-04-28 Richard Guenther <rguenther@suse.de>
2839
2840 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2841 (debug_constraint): Do it here.
2842 (dump_constraints): And here.
2843 (rewrite_constraints): And here.
2844 (dump_constraint_edge): Remove.
2845 (dump_constraint_graph): Rewrite to produce DOT output.
2846 (solve_constraints): Build succ graph as late as possible.
2847 Dump constraint graphs before and after solving.
2848
e38811ce
RG
28492011-04-28 Richard Guenther <rguenther@suse.de>
2850
2851 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2852 New function split out from ...
2853 (find_func_aliases): ... here. Call it.
2854 (find_func_aliases_for_call): Likewise.
2855
fbaf0d0c
GDR
28562011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
2857
2858 * internal-fn.h (internal_fn_name_array): Declare.
2859 (internal_fn_flags_array): Likewise.
2860
cbb734aa
UB
28612011-04-27 Uros Bizjak <ubizjak@gmail.com>
2862
2863 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
2864 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2865 Move from sse.md.
2866 (ssemodefsuffix): Remove.
2867 (ssevecmodesuffix): New mode attribute.
2868 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2869 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2870 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2871 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2872 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2873 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2874 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2875 ssemodesuffix mode attribute.
2876 (float splitters): Use ssevecmodesuffix mode attribute.
2877 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2878 (sseinsmode): Rename from avxvecmode.
2879 (avxsizesuffix): Rename from avxmodesuffix.
2880 (sseintvecmode): Rename from avxpermvecmode.
2881 (ssedoublevecmode): Rename from ssedoublesizemode.
2882 (ssehalfvecmode): Rename from avxhalfvecmode.
2883 (ssescalarmode): Rename from avxscalarmode.
2884 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2885 templates for ssemodesuffix mode attribute.
2886 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2887 mode attribute.
2888
2889 Adjust RTX patterns globally for renamed mode attributes.
2890
991278ab
JH
28912011-04-27 Jan Hubcika <jh@suse.cz>
2892
2893 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2894 * ipa-inline-analysis.c: Include alloc-pool.h.
2895 (edge_predicate_pool): New.
2896 (trye_predicate_p): New function
2897 (false_predicate_p): New function.
2898 (add_clause): Sanity check that false clauses are "optimized";
2899 never add clauses to predicate that is already known to be false.
2900 (and_predicate): Use flase_predicate_p.
2901 (evaulate_predicate): Rename to ...
2902 (evaluate_predicate): ... this one; update all callers; assert
2903 that false is not listed among possible truths.
2904 (dump_predicate): Use true_predicate_p.
2905 (account_size_time): Use false_predicate_p.
2906 (evaulate_conditions_for_edge): Rename to ...
2907 (evaluate_conditions_for_edge) ... this one.
2908 (edge_set_predicate): New function.
2909 (inline_edge_duplication_hook): Duplicate edge predicates.
2910 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 2911 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
2912 (dump_inline_summary): Update.
2913 (estimate_function_body_sizes): Set edge predicates.
2914 (estimate_calls_size_and_time): Handle predicates.
2915 (estimate_callee_size_and_time): Update.
2916 (remap_predicate): Add toplev_predicate; update comment.
2917 (remap_edge_predicates): New function.
2918 (inline_merge_summary): Compute toplev predicate; update.
2919 (read_predicate): New function.
2920 (read_inline_edge_summary): Use it.
2921 (inline_read_section): Likewise.
2922 (write_predicate): New function.
2923 (write_inline_edge_summary): Use it.
2924 (inline_write_summary): Likewise.
2925 (inline_free_summary): Free alloc pool and edge summary vec.
2926
648b5f85
RG
29272011-04-27 Richard Guenther <rguenther@suse.de>
2928
2929 * tree-ssa-structalias.c (changed_count): Remove.
2930 (changed): Use a bitmap.
2931 (unify_nodes): Adjust.
2932 (do_sd_constraint): Likewise.
2933 (do_ds_constraint): Likewise.
2934 (do_complex_constraint): Likewise.
2935 (solve_graph): Likewise.
2936
4d5dcfb2
JH
29372011-04-27 Jan Hubicka <jh@suse.cz>
2938
2939 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2940
200eb7d2
UB
29412011-04-27 Uros Bizjak <ubizjak@gmail.com>
2942
2943 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2944 (avx_vperm2f128_*_operand): Ditto.
2945 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2946 Use avx_vpermilp_parallel in insn condition.
2947 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2948 Use avx_vperm2f128_parallel in insn condition.
2949
7d6e2521
RG
29502011-04-27 Richard Guenther <rguenther@suse.de>
2951
2952 * Makefile.in (tree-ssa-structalias.o): Remove
2953 gt-tree-ssa-structalias.h dependency.
2954 (GTFILES): Remove tree-ssa-structalias.c.
2955 * tree.c (allocate_decl_uid): New function.
2956 (make_node_stat): Use it.
2957 (copy_node_stat): Likewise.
2958 * tree.h (allocate_decl_uid): Declare.
2959 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2960 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2961 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 2962 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
2963 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2964 (struct heapvar_map): Likewise.
2965 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2966 heapvar_insert): Likewise.
2967 (make_heapvar_for): Rename to ...
2968 (make_heapvar): ... this. Simplify.
2969 (fake_var_decl_obstack): New global var.
2970 (build_fake_var_decl): New function.
2971 (make_constraint_from_heapvar): Adjust.
2972 (handle_lhs_call): Likewise.
2973 (create_function_info_for): Likewise.
2974 (intra_create_variable_infos): Likewise.
2975 (init_alias_vars): Allocate fake_var_decl_obstack.
2976 (init_alias_heapvars, delete_alias_heapvars): Remove.
2977 (compute_points_to_sets): Do not call init_alias_heapvars.
2978 (ipa_pta_execute): Likewise.
2979 (delete_points_to_sets): Free fake_var_decl_obstack.
2980
526ed6c2
UW
29812011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2982
2983 * config/spu/divmovti4.c (union qword_UTItype): New data type.
2984 (si_from_UTItype, si_to_UTItype): New functions.
2985 (__udivmodti4): Use them to implement type-punning.
2986 * config/spu/multi3.c (union qword_TItype): New data type.
2987 (si_from_TItype, si_to_TItype): New functions.
2988 (__multi3): Use them to implement type-punning.
2989
c187d33c
UW
29902011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2991
2992 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2993
40982661
JH
29942011-04-27 Jan Hubicka <jh@suse.cz>
2995
2996 * ipa-prop.c (function_insertion_hook_holder): New holder.
2997 (ipa_add_new_function): New function.
200eb7d2
UB
2998 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2999 Register/deregister holder.
40982661 3000
9aef53ee
RG
30012011-04-27 Richard Guenther <rguenther@suse.de>
3002
3003 PR tree-optimization/48772
200eb7d2 3004 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 3005
f63d806d
RG
30062011-04-27 Richard Guenther <rguenther@suse.de>
3007
3008 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3009 TARGET_MEM_REF handling.
3010
e1ea7451
NC
30112011-04-27 Nick Clifton <nickc@redhat.com>
3012
9b5db25d
NC
3013 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3014 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3015 (REG_CLASS_NAMES): Likewise.
3016 (REG_CLASS_CONTENTS): Likewise.
3017 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3018 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3019 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
3020 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
3021 (EVEN_REGS): New macro. Alias for QUAD_REGS.
3022 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3023 duplicate register classes.
97d20907 3024 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
3025 (frv_register_move_cost): Likewise.
3026
e1ea7451
NC
3027 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3028 end of the regno_reg_class array.
3029
5c2f94b4
JJ
30302011-04-27 Jakub Jelinek <jakub@redhat.com>
3031
3032 PR c/48742
3033 * c-typeck.c (build_binary_op): Don't wrap arguments if
3034 int_operands is true.
3035
57a944d7
KK
30362011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
3037
3038 PR target/48767
3039 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3040 targetm.calls.must_pass_in_stack for void type.
3041
898b8927
JH
30422011-04-26 Jan Hubicka <jh@suse.cz>
3043
3044 * cgraphbuild.c (build_cgraph_edges): Update call
3045 of cgraph_create_edge and cgraph_create_indirect_edge.
3046 * cgraph.c (cgraph_create_edge_including_clones,
3047 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3048 cgraph_update_edges_for_call_stmt_node): Do not take nest
3049 argument; do not initialize call_stmt_size/time.
3050 (dump_cgraph_node): Do not dump nest.
3051 (cgraph_clone_edge): Do not take loop_nest argument;
3052 do not propagate it; do not clone call_stmt_size/time.
3053 (cgraph_clone_node): Likewise.
3054 (cgraph_create_virtual_clone): Update.
3055 * cgraph.h (struct cgraph_edge): Remove
3056 call_stmt_size/call_stmt_time/loop_nest.
3057 (cgraph_create_edge, cgraph_create_indirect_edge,
3058 cgraph_create_edge_including_clones, cgraph_clone_node): Update
3059 prototype.
3060 * tree-emutls.c (gen_emutls_addr): Update.
3061 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3062 loop_nest; handle indirect calls, too.
3063 (clone_inlined_nodes): Do not care about updating inline summaries.
3064 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3065 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3066 stream call_stmt_size/call_stmt_time/loop_nest.
3067 * ipa-inline.c (edge_badness): Update.
3068 (ipa_inline): dump summaries after inlining.
3069 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 3070 New.
898b8927
JH
3071 (inline_edge_summary): New function.
3072 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3073 (inline_edge_removal_hook): Handle edge summaries.
3074 (inline_edge_duplication_hook): New hook.
3075 (inline_summary_alloc): Alloc hooks.
3076 (initialize_growth_caches): Do not register removal hooks.
3077 (free_growth_caches); Do not free removal hook.
3078 (dump_inline_edge_summary): New function.
3079 (dump_inline_summary): Use it.
3080 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3081 (inline_update_callee_summaries): New function.
3082 (inline_merge_summary): Use it.
3083 (do_estimate_edge_time, do_estimate_edge_growth): Update.
3084 (read_inline_edge_summary): New function.
3085 (inline_read_section): Use it.
3086 (write_inline_edge_summary): New function.
3087 (inline_write_summary): Use it.
3088 (inline_free_summary): Free edge new holders.
3089 * tree-inline.c (copy_bb): Update.
3090
ffa03772
JM
30912011-04-26 Jason Merrill <jason@redhat.com>
3092
3093 * tree-eh.c (lower_try_finally_switch): Create the label along with
3094 the CASE_LABEL_EXPR.
3095
6d7b45ad
DM
30962011-04-26 David S. Miller <davem@davemloft.net>
3097 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3098
3099 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3100 * configure: Regenerate.
3101
df10b6d4
MM
31022011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3103
3104 PR target/48258
3105 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3106 reduction.
3107 (VEC_reduc): New code iterator and splitters for vector reduction.
3108 (VEC_reduc_name): Ditto.
3109 (VEC_reduc_rtx): Ditto.
3110 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3111 (reduc_<VEC_reduc_name>_v4sf): Ditto.
3112
3113 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3114 support for extracting SF on VSX.
3115
3116 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3117 generating xscvspdp.
3118 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3119 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3120 double add, minimum, maximum vector reduction.
3121 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3122 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3123 optimize double vector reduction.
3124 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3125
35a5db04
JM
31262011-04-26 Joseph Myers <joseph@codesourcery.com>
3127
3128 * config/fr30/fr30.h (inhibit_libc): Don't define.
3129 * config/m32r/m32r-protos.h: Correct comment.
3130 * config/v850/v850.h (GHS_default_section_names,
3131 GHS_current_section_names): Use tree, not union tree_node *.
3132
2f964ad6
XDL
31332011-04-26 Xinliang David Li <davidxl@google.com>
3134
200eb7d2 3135 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
3136 * c-family/c-opts.c (c_common_handle_option): Set
3137 warn_maybe_uninitialized.
3138 * opts.c (common_handle_option): Ditto.
3139 * common.opt: New option.
3140 * tree-ssa.c (warn_uninit): Add one more parameter.
3141 (warn_uninitialized_var): Pass warning code.
3142 * tree-flow.h: Interface change.
3143
3144
9c7bd91a
RO
31452011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3146
200eb7d2 3147 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
3148 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3149 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3150
c2f36e21
RO
31512011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3152
3153 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3154 * config/mips/mips.opt (mmips-tfile): Remove.
3155
3156 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3157 mips-tdump reference to ...
200eb7d2 3158 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
3159 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3160 reference by Tru64 UNIX.
3161
2c9da85b
JJ
31622011-04-26 Jakub Jelinek <jakub@redhat.com>
3163
0c5f6539
JJ
3164 PR debug/48768
3165 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3166 is error_mark_node, set value to NULL.
3167
2c9da85b
JJ
3168 PR tree-optimization/48734
3169 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3170 if return value from maybe_fold_*_comparsions isn't something
3171 the code is prepared to handle.
3172
77fa1d54
UB
31732011-04-26 Uros Bizjak <ubizjak@gmail.com>
3174
3175 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3176 mode check.
3177 (ext_QIreg_nomode_operands): Remove.
3178 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3179 (*andsi_1): Ditto.
3180 (*andhi_1): Ditto.
3181
0e2a6c2b
AS
31822011-04-26 Andrew Stubbs <ams@codesourcery.com>
3183
3184 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3185
961562d8
RB
31862011-04-26 Richard Guenther <rguenther@suse.de>
3187
3188 * c-typeck.c (build_unary_op): Do not expand array-refs via
3189 pointer arithmetic. Only adjust qualifiers for function types.
3190
31912011-04-26 Richard Guenther <rguenther@suse.de>
3192
3193 PR middle-end/48694
3194 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3195 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
3196 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
3197 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 3198
a0d260fc
PC
31992011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
3200
6bec6c98 3201 * doc/extend.texi: Document __underlying_type.
a0d260fc 3202
4d583bb9
SB
32032011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
3204
3205 * config/rs6000/titan.md (automata_option "progress"): Remove.
3206
1f3fcdc3
JL
32072011-04-25 Jeff Law <law@redhat.com>
3208
3209 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3210
e5b0dad8
JK
32112011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3212
3213 * system.h (ENUM_BITFIELD): Remove.
3214
5157a881 32152011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 3216 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
3217
3218 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3219 for STORE_FLAG_VALUE==-1 case.
3220
ed4c109e
RS
32212011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
3222
3223 PR target/43804
3224 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3225 LEGITIMATE_PIC_OPERAND_P.
3226
f3181aa2
JH
32272011-04-24 Jan Hubicka <jh@suse.cz>
3228
3229 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3230 WPA hack.
77fa1d54
UB
3231 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3232 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3233 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
3234 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3235 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3236 Sanity check predicate length.
3237 (remap_predicate): Likewise; sanity check jump functions.
3238 (inline_read_section, inline_write_summary): Sanity check
3239 predicate length.
3240
5307cbaa
PC
32412011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3242
3243 PR other/48748
3244 * doc/extend.texi (Type Traits): Document __is_standard_layout,
3245 __is_literal_type, and __is_trivial; update throughout about
3246 possibly cv-qualified void types.
3247
bebd5f99
GP
32482011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
3249
3250 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3251 testsuite and make it version agnostic.
3252
7ee28a74
JH
32532011-04-22 Jan Hubicka <jh@suse.cz>
3254
3255 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3256
16997bc0
JJ
32572011-04-23 Jakub Jelinek <jakub@redhat.com>
3258
3259 PR c/48685
3260 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3261 to VOID_TYPE even around MODIFY_EXPR.
3262
f94d4ab1
MS
32632011-04-22 Mike Stump <mikestump@comcast.net>
3264
1a84c183 3265 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
3266 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3267 comment.
3268
632b4f8e
JH
32692011-04-22 Jan Hubicka <jh@suse.cz>
3270
3271 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
3272 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3273 ipa-prop.c; update all uses.
632b4f8e 3274 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
3275 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3276 merge summary of inlined function into former caller.
632b4f8e
JH
3277 * ipa-inline.c (max_benefit): Remove.
3278 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
3279 (update_caller_keys): Use
3280 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
3281 (update_callee_keys): Likewise.
3282 (update_all_callee_keys): Likewise.
77fa1d54
UB
3283 (inline_small_functions): Do not collect max_benefit; do not reset
3284 estimated_growth; call free_growth_caches and initialize_growth_caches.
3285 * ipa-inline.h (struct condition, type clause_t, struct predicate,
3286 struct size_time_entry): New structures.
632b4f8e 3287 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
3288 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3289 and estimated_growth.
632b4f8e
JH
3290 (edge_growth_cache_entry): New structure.
3291 (node_growth_cache, edge_growth_cache): New global vars.
3292 (estimate_growth): Turn into inline.
3293 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3294 initialize_growth_caches, free_growth_caches): Declare.
3295 (estimate_edge_growth): Rewrite.
3296 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
3297 (reset_node_growth_cache, reset_edge_growth_cache): New inline
3298 functions.
632b4f8e
JH
3299 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3300 (NUM_CONDITIONS): New constant.
3301 (predicate_conditions): New enum.
3302 (IS_NOT_CONSTANT): New constant.
3303 (edge_removal_hook_holder): New var.
3304 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
3305 (true_predicate, single_cond_predicate, false_predicate,
3306 not_inlined_predicate, add_condition, add_clause, and_predicates,
3307 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3308 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
3309 evaulate_conditions_for_edge): New functions.
3310 (inline_summary_alloc): Move to heap.
3311 (inline_node_removal_hook): Clear condition and entry vectors.
3312 (inline_edge_removal_hook): New function.
3313 (initialize_growth_caches, free_growth_caches): New function.
3314 (dump_inline_summary): Update.
3315 (edge_execution_predicate): New function.
3316 (will_be_nonconstant_predicate): New function.
3317 (estimate_function_body_sizes): Compute BB and constantness predicates.
3318 (compute_inline_parameters): Do not clear estimated_growth.
3319 (estimate_edge_size_and_time): New function.
3320 (estimate_calls_size_and_time): New function.
3321 (estimate_callee_size_and_time): New function.
3322 (remap_predicate): New function.
3323 (inline_merge_summary): New function.
3324 (do_estimate_edge_time): New function based on...
3325 (estimate_edge_time): ... this one.
3326 (do_estimate_edge_growth): New function.
3327 (do_estimate_growth): New function based on....
3328 (estimate_growth): ... this one.
3329 (inline_analyze_function): Analyze after deciding on jump functions.
3330 (inline_read_section): New function.
3331 (inline_read_summary): Use it.
3332 (inline_write_summary): Write all the new data.
3333 * ipa-prop.c (ipa_get_param_decl_index): Export.
3334 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
3335 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3336 Declare.
3337 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
3338 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3339 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3340 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3341 cgraph_edge_inlinable_p): Remove.
3342 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
3343 (cgraph_process_new_functions): Update call of
3344 compute_inline_parameters.
632b4f8e 3345
1df5b0db
RG
33462011-04-22 Richard Guenther <rguenther@suse.de>
3347
3348 * tree.c (build_int_cst): Properly create canonicalized integer
3349 constants.
3350 (build_int_cst_type): Remove scary comments.
3351
ae01169c
XDL
33522011-04-22 Xinliang David Li <davidxl@google.com>
3353
3354 * toplev.c (process_options): Enable -Werror=coverage-mismatch
3355 by default when -Wno-error is not specified.
3356 * opts-global.c (decode_options): Remove call to
3357 control_warning_options.
3358
93dfac24
JJ
33592011-04-22 Jakub Jelinek <jakub@redhat.com>
3360
3361 PR tree-optimization/48717
3362 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3363 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3364
1b5f5069
JM
33652011-04-22 Joseph Myers <joseph@codesourcery.com>
3366
3367 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
3368 definition where used.
3369
144f4153
JJ
33702011-04-22 Jakub Jelinek <jakub@redhat.com>
3371
3372 PR c/48716
3373 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3374 TREE_STATIC variables declared inside of some OpenMP construct.
3375
f9fd305b
MJ
33762011-04-22 Martin Jambor <mjambor@suse.cz>
3377
3378 PR middle-end/48585
1d284ec5 3379 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 3380
49819fef
AM
33812011-04-22 Alexander Monakov <amonakov@ispras.ru>
3382
3383 PR c/36750
3384 * c-typeck.c (pop_init_level): Do not warn about initializing
3385 with ` = {0}'.
3386
401f6699
AM
33872011-04-22 Alan Modra <amodra@gmail.com>
3388
3389 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3390 when returning call_cookie.
3391 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3392 pointers, to functions with no more vector args than the current
3393 function, and some non-local calls for ABI_V4.
3394 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3395 sibcall_nonlocal_aix64): Combine to ..
3396 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
3397 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3398 (sibcall_value_nonlocal_aix<mode>): ..likewise.
3399 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3400 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
3401 operand.
3402 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3403 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3404 sibcall_value_symbolic_64): Delete.
3405
903d1e67
XDL
34062011-04-21 Xinliang David Li <davidxl@google.com>
3407
3408 * cgraph.h: Remove pid.
3409 * cgraph.c: Remove pid.
3410 * value-prof.c (init_node_map): New function.
3411 (del_node_map): New function.
3412 (find_func_by_funcdef_no): New function.
3413 (gimple_ic_transform): Call new function.
3414 * cgraphunit.c (cgraph_finalize_function): Remove pid.
3415 * function.c (get_last_funcdef_no): New function.
3416 * function.h (get_last_funcdef_no): New function.
3417 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3418 to libgcov function.
3419 (tree-profiling): Call node map init and delete function.
3420
7378e95f
ILT
34212011-04-21 Ian Lance Taylor <iant@google.com>
3422
3423 * godump.c (go_format_type): Use exported Go name for anonymous
3424 field name.
3425
e84a6fcf
NF
34262011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3427
3428 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3429 Call builtin_function_type_list instead of builtin_function_type.
3430 (UNARY, BINARY, TRINARY, QUAD): Likewise.
3431
4fe058e2
NF
34322011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3433
3434 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3435 build_function_type_list instead of build_function_type.
3436 Delete variable `endlink'.
3437
1ba0a2d2
NF
34382011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3439
3440 * config/s390/s390.c (s390_init_builtins): Call
3441 build_function_type_list instead of build_function_type.
3442
c0676219
NF
34432011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3444
3445 * config/ia64/ia64.c (ia64_init_builtins): Call
3446 build_function_type_list instead of builtin_function_type.
3447
6ddfda8a
ER
34482011-04-21 Easwaran Raman <eraman@google.com>
3449
3a6448ea 3450 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
3451 (add_stack_var): ...and its reference here...
3452 (expand_stack_vars): ...and here.
3453 (stack_var_cmp): Sort by descending order of size.
3454 (partition_stack_vars): Change heuristic.
1d284ec5 3455 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
3456 (dump_stack_var_partition): Add newline after each partition.
3457
23756963
DA
34582011-04-21 Dimitrios Apostolou <jimis@gmx.net>
3459 Jeff Law <law@redhat.com>
3460
77fa1d54 3461 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
3462 * gengtype.c (matching_file_name_substitute): Likewise.
3463
aa2a43d2
RG
34642011-04-21 Richard Guenther <rguenther@suse.de>
3465
3466 PR lto/48703
1d284ec5 3467 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 3468
4d931f41
EB
34692011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3470
3471 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3472
f103fa7a
RG
34732011-04-21 Richard Guenther <rguenther@suse.de>
3474
3475 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3476 file name.
3477
e19f6650
RG
34782011-04-21 Richard Guenther <rguenther@suse.de>
3479
3480 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3481 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3482 Use DECL_P, not SSA_VAR_P.
3483 (ptr_derefs_may_alias_p): Likewise.
3484 (ptr_deref_may_alias_ref_p_1): Likewise.
3485 (decl_refs_may_alias_p): Likewise.
3486 (refs_may_alias_p_1): Likewise.
3487 (ref_maybe_used_by_call_p_1): Likewise.
3488 (call_may_clobber_ref_p_1): Likewise.
3489 (indirect_ref_may_alias_decl_p): Assume indirect refrences
3490 are either MEM_REF or TARGET_MEM_REF.
3491 (indirect_refs_may_alias_p): Likewise.
3492 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3493 for MEM_EXPR of indirect calls.
3494
9d1831bb
TG
34952011-04-21 Tristan Gingold <gingold@adacore.com>
3496
3497 * vmsdbgout.c (write_srccorr): Compute file length from the string.
3498 (dst_file_info_struct): Remove flen field.
3499 (lookup_filename): Remove code that set flen field.
3500
f199c029
TG
35012011-04-21 Tristan Gingold <gingold@adacore.com>
3502
3503 * config/ia64/ia64.c (ia64_start_function): Add a guard.
3504
2894086e
UB
35052011-04-21 Uros Bizjak <ubizjak@gmail.com>
3506
3507 PR target/48708
3508 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3509 vec_extract and vec_concat for non-SSE4_1 targets.
3510
53f94a5c
RG
35112011-04-21 Richard Guenther <rguenther@suse.de>
3512
3513 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3514 return statements.
3515
f0dca5ba
JM
35162011-04-21 Joseph Myers <joseph@codesourcery.com>
3517
3518 * config/i386/cygming.h (union tree_node, TREE): Don't define or
3519 undefine.
3520 (FILE): Don't undefine.
3521
984514ac
JM
35222011-04-21 Joseph Myers <joseph@codesourcery.com>
3523
3524 * config/alpha/alpha.c (struct machine_function): Use rtx, not
3525 struct rtx_def *.
3526 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3527 struct rtx_def *.
3528 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 3529 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
3530 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3531 rtx_def *.
3532 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
3533 definitions where used.
3534 * config/microblaze/microblaze.h (struct microblaze_args): Use
3535 rtx, not struct rtx_def *.
3536 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3537 rtx_def *.
2894086e
UB
3538 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3539 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
3540 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3541 not struct rtx_def *.
3542 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3543 struct rtx_def *.
3544 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3545 rtx_def *.
2894086e 3546 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 3547
0b5a2724
RS
35482011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3549
3550 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3551 operand_equal_p to compare DR_BASE_ADDRESSes.
3552 (vect_check_interleaving): Likewise.
3553
4b18d683
RS
35542011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3555
3556 PR target/46329
3557 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3558 for all Neon struct constants.
3559
1a627b35
RS
35602011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3561
3562 * target.def (legitimate_constant_p): New hook.
3563 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3564 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3565 * doc/tm.texi: Regenerate.
3566 * hooks.h (hook_bool_mode_rtx_true): Declare.
3567 * hooks.c (hook_bool_mode_rtx_true): Define.
3568 * system.h (LEGITIMATE_CONSTANT_P): Poison.
3569 * calls.c (precompute_register_parameters): Replace uses of
3570 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3571 (emit_library_call_value_1): Likewise.
3572 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3573 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3574 * ira-costs.c (scan_one_insn): Likewise.
3575 * recog.c (general_operand, immediate_operand): Likewise.
3576 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3577 * reload1.c (init_eliminable_invariants): Likewise.
3578
3579 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3580 mode argument.
3581 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3582 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3583 argument.
3584 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3585 * config/alpha/predicates.md (input_operand): Update call to
3586 alpha_legitimate_constant_p.
3587
3588 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3589 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3590 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3591 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3592 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3593 (arm_legitimate_constant_p): New functions.
3594 (arm_cannot_force_const_mem): Make static.
3595
3596 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3597
3598 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3599 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3600 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3601 instead of bfin_legitimate_constant_p.
3602 (bfin_legitimate_constant_p): Make static. Add a mode argument.
3603 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3604
3605 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3606
3607 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3608
3609 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3610 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3611 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3612 (frv_legitimate_constant_p): Make static. Add a mode argument.
3613
3614 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3615 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3616 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3617
3618 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3619 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3620 * config/i386/i386.c (legitimate_constant_p): Rename to...
3621 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
3622 argument.
3623 (ix86_cannot_force_const_mem): Update accordingly.
3624 (ix86_legitimate_address_p): Likewise.
3625 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3626 * config/i386/i386.md: Update commentary.
3627
3628 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3629 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3630 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3631 (ia64_legitimate_constant_p): Make static. Add a mode argument.
3632
3633 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3634
3635 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3636 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3637 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3638 (lm32_legitimate_constant_p): Make static. Add a mode argument.
3639
3640 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3641 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3642 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3643
3644 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3645 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3646 (m32r_legitimate_constant_p): New function.
3647
3648 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3649 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3650 LEGITIMATE_CONSTANT_P.
3651 (LEGITIMATE_CONSTANT_P): Delete.
3652 * config/m68k/m68k.c (m68k_expand_prologue): Call
3653 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3654 (m68k_legitimate_constant_p): New function.
3655 * config/m68k/m68k.md: Update comments.
3656
3657 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3658 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3659 (mcore_legitimate_constant_p): New function.
3660
3661 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3662 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3663 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3664 Add a mode argument.
3665 (mep_legitimate_address): Update accordingly.
3666 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3667
3668 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3669 Delete.
3670 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3671 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3672 static. Check OP's mode for VOIDmode.
3673 (microblaze_legitimate_constant_p): New function.
3674 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3675
3676 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3677 * config/mips/mips.c (mips_legitimate_constant_p): New function.
3678 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3679 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3680 * config/mips/predicates.md: Update comments.
3681
3682 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3683 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3684 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3685 (mmix_legitimate_constant_p): Make static, return a bool, and take
3686 a mode argument.
3687 (mmix_print_operand_address): Update accordingly.
3688
3689 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3690 Delete.
3691 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
3692 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3693 static. Add a mode argument.
1a627b35
RS
3694 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3695
3696 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3697
3698 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3699 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3700 (pa_legitimate_constant_p): New function.
3701
3702 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3703
3704 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3705 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3706 (pdp11_legitimate_constant_p): New function.
3707
3708 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3709 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3710 (rs6000_legitimate_constant_p): New function.
3711
3712 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3713 (rx_legitimate_constant_p): ...this.
3714 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3715 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3716 (rx_legitimate_constant_p): ...this.
3717 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3718 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3719
3720 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3721 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3722 * config/s390/s390.c (legitimate_constant_p): Rename to...
3723 (s390_legitimate_constant_p): ...this. Make static, return a bool,
3724 and add a mode argument.
3725 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3726
3727 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3728
3729 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3730 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3731 (sh_legitimate_constant_p): New function.
3732
3733 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3734 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3735 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3736 (legitimate_constant_p): Rename to...
3737 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
3738 argument.
3739 (constant_address_p): Update accordingly.
3740
3741 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3742 argument and return a bool.
3743 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3744 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3745 (spu_legitimate_constant_p): Add a mode argument and return a bool.
3746 (spu_rtx_costs): Update accordingly.
3747 * config/spu/predicates.md (vec_imm_operand): Likewise.
3748
3749 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3750
3751 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3752 * config/v850/v850.c (v850_legitimate_constant_p): New function.
3753 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3754
3755 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3756 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3757 * config/vax/vax.c (legitimate_constant_p): Likewise.
3758
3759 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3760 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3761 (xtensa_legitimate_constant_p): New function.
3762
fbbf66e7
RS
37632011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3764
3765 * target.def (cannot_force_const_mem): Add a mode argument.
3766 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3767 * doc/tm.texi: Regenerate.
3768 * hooks.h (hook_bool_mode_rtx_false): Declare.
3769 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3770 (hook_bool_mode_const_rtx_true): Likewise.
3771 (hook_bool_mode_rtx_false): New function.
3772 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3773 to be non-VOID. Update call to cannot_force_const_mem.
3774 (find_reloads): Update accordingly.
3775 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3776 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3777 argument.
3778 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3779 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3780 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3781 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3782 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3783 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3784 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3785 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3786 (m68k_cannot_force_const_mem): ...this new function.
3787 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3788 argument.
3789 (mips_const_insns, mips_legitimize_const_move): Update calls.
3790 (mips_secondary_reload_class): Likewise.
3791 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3792 (pa_cannot_force_const_mem): ...this new function.
2894086e 3793 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
3794 (rs6000_cannot_force_const_mem): ...this new function.
3795 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3796 argument.
3797 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3798 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3799 to...
3800 (xtensa_cannot_force_const_mem): ...this new function.
3801
b861891b
NF
38022011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3803
3804 * config/mips/mips.c (mips16_build_function_stub): Call
3805 build_function_type_list instead of build_function_type.
3806 (mips16_build_call_stub): Likewise.
3807
34149ed5
NF
38082011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3809
3810 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3811 instead of build_function_type.
3812
12526412
NF
38132011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3814
3815 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3816 instead of build_function_type.
3817
3b84d61f
UB
38182011-04-20 Uros Bizjak <ubizjak@gmail.com>
3819
3820 PR target/48678
3821 * config/i386/i386.md (insv): Change operand 0 constraint to
3822 "register_operand". Change operand 1 and 2 constraint to
3823 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
3824 * config/i386/sse.md (sse4_1_pinsrb): Export.
3825 (sse2_pinsrw): Ditto.
3826 (sse4_1_pinsrd): Ditto.
3827 (sse4_1_pinsrq): Ditto.
3828 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3829 * config/i386/i386.c (ix86_expand_pinsr): New.
3830
4a25752b
ER
38312011-04-20 Easwaran Raman <eraman@google.com>
3832
3833 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3834 containing union type only with -fstrict-aliasing.
3835
04695783
JM
38362011-04-20 Jim Meyering <meyering@redhat.com>
3837
3838 Remove useless if-before-free tests.
3839 * calls.c (expand_call, save_area): Likewise.
3840 * cfgcleanup.c (try_forward_edges): Likewise.
3841 * collect2.c (collect_execute): Likewise.
3842 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3843 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3844 * coverage.c (coverage_checksum_string): Likewise.
3845 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3846 * cselib.c (cselib_init): Likewise.
3847 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3848 (df_set_clean_cfg): Likewise.
3849 * function.c (free_after_compilation): Likewise.
3850 * gcc.c (do_spec_1, main): Likewise.
3851 * gcov.c (create_file_names): Likewise.
3852 * gensupport.c (identify_predicable_attribute): Likewise.
3853 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3854 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3855 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3856 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3857 * ipa-pure-const.c (local_pure_const): Likewise.
3858 * ipa-reference.c (propagate): Likewise.
3859 * ira-costs.c (free_ira_costs): Likewise.
3860 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3861 * matrix-reorg.c (mat_free): Likewise.
3862 * prefix.c (get_key_value): Likewise.
3863 * profile.c (compute_value_histograms): Likewise.
3864 * reload1.c (free_reg_equiv): Likewise.
3865 * sched-deps.c (free_deps): Likewise.
3866 * sel-sched-ir.c (fence_clear): Likewise.
3867 * sese.c (set_rename, if_region_set_false_region): Likewise.
3868 * tree-data-ref.c (free_rdg): Likewise.
3869 * tree-eh.c (lower_try_finally): Likewise.
3870 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3871 * tree-ssa-live.c (delete_var_map): Likewise.
3872 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3873 * tree-ssa-pre.c (phi_trans_add): Likewise.
3874
6788475a
JJ
38752011-04-20 Jakub Jelinek <jakub@redhat.com>
3876
3877 PR tree-optimization/48611
3878 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3879 beyond ERT_MUST_NOT_THROW region.
3880
0eda4033
CM
38812011-04-20 Catherine Moore <clm@codesourcery.com>
3882
3883 * config/mips/mips.opt (mfix-24k): New.
3884 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3885 * config/mips/mips.md (length): Increase by 4 for stores if
3886 fixing 24K errata.
3887 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3888 all noreorder if fixing 24K errata.
3889 * doc/invoke.texi: Document mfix-24k.
3890
01475747
CLT
38912011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
3892
3893 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 3894 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 3895
bc2c1a60
AS
38962011-04-20 Andrew Stubbs <ams@codesourcery.com>
3897
3898 * config/arm/arm.c (arm_gen_constant): Move movw support ....
3899 (const_ok_for_op): ... to here.
3900
583722ee
KT
39012011-04-20 Kai Tietz <ktietz@redhat.com>
3902
2894086e
UB
3903 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3904 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 3905
422c0989
AS
39062011-04-20 Andrew Stubbs <ams@codesourcery.com>
3907
3908 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3909
d7978bff
RG
39102011-04-20 Richard Guenther <rguenther@suse.de>
3911
3912 PR tree-optimization/47892
3913 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3914 are if-convertible.
3915
818412ba
EB
39162011-04-20 Eric Botcazou <ebotcazou@adacore.com>
3917
3918 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3919
b501ce4e
TG
39202011-04-20 Tristan Gingold <gingold@adacore.com>
3921
3922 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3923
516edfdd
GJL
39242011-04-20 Georg-Johann Lay <avr@gjlay.de>
3925
3926 PR target/18145
3927
3928 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3929 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3930 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3931 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3932 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3933
3934 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3935 New prototype.
3936
3937 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3938 (avr_asm_named_section, avr_asm_output_aligned_common,
3939 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3940 New functions to update...
3941 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3942 (avr_asm_init_sections): Overwrite section callbacks for
3943 data_section, bss_section.
3944 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3945 from here to...
3946 (avr_file_end): ...here.
3947
dafc9511
RG
39482011-04-20 Richard Guenther <rguenther@suse.de>
3949
3950 PR middle-end/48695
3951 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 3952 objects and types here. Adjust for their offset before comparing.
dafc9511 3953
1da0876c
RS
39542011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3955
3956 * tree-vect-stmts.c (vectorizable_store): Only chain one related
3957 statement per copy.
3958
25583c4f
RS
39592011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3960
3961 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3962 (GIMPLE_H): Include $(INTERNAL_FN_H).
3963 (OBJS-common): Add internal-fn.o.
3964 (internal-fn.o): New rule.
3965 * internal-fn.def: New file.
3966 * internal-fn.h: Likewise.
3967 * internal-fn.c: Likewise.
3968 * gimple.h: Include internal-fn.h.
3969 (GF_CALL_INTERNAL): New gf_mask.
3970 (gimple_statement_call): Put fntype into a union with a new
3971 internal_fn field.
3972 (gimple_build_call_internal): Declare.
3973 (gimple_build_call_internal_vec): Likewise.
3974 (gimple_call_same_target_p): Likewise.
3975 (gimple_call_internal_p): New function.
3976 (gimple_call_internal_fn): Likewise.
3977 (gimple_call_fntype): Return null for internal calls.
3978 (gimple_call_set_fntype): Assert that the function is not internal.
3979 (gimple_call_set_fn): Likewise.
3980 (gimple_call_set_fndecl): Likewise.
3981 (gimple_call_set_internal_fn): New function.
3982 (gimple_call_addr_fndecl): Handle null functions.
3983 (gimple_call_return_type): Likewise null types.
3984 * gimple.c (gimple_build_call_internal_1): New function.
3985 (gimple_build_call_internal): Likewise.
3986 (gimple_build_call_internal_vec): Likewise.
3987 (gimple_call_same_target_p): Likewise.
3988 (gimple_call_flags): Handle calls to internal functions.
3989 (gimple_call_fnspec): New function.
3990 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3991 (gimple_has_side_effects): Handle null functions.
3992 (gimple_rhs_has_side_effects): Likewise.
3993 (gimple_call_copy_skip_args): Handle calls to internal functions.
3994 * cfgexpand.c (expand_call_stmt): Likewise.
3995 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3996 * gimple-fold.c (gimple_fold_call): Handle null functions.
3997 (gimple_fold_stmt_to_constant_1): Don't fold
3998 calls to internal functions.
3999 * gimple-low.c (gimple_check_call_args): Handle calls to internal
4000 functions.
4001 * gimple-pretty-print.c (dump_gimple_call): Likewise.
4002 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4003 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4004 (do_warn_unused_result): Likewise.
4005 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4006 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4007 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4008 the target of a call.
4009 (initialize_hash_element): Update accordingly.
4010 (hashable_expr_equal_p): Use gimple_call_same_target_p.
4011 (iterative_hash_hashable_expr): Handle calls to internal functions.
4012 (print_expr_hash_elt): Likewise.
4013 * tree-ssa-pre.c (can_value_number_call): Likewise.
4014 (eliminate): Handle null functions.
4015 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4016 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4017 (find_func_aliases): Likewise.
4018 * value-prof.c (gimple_ic_transform): Likewise.
4019 (gimple_indirect_call_to_profile): Likewise.
4020 * lto-streamer-in.c (input_gimple_stmt): Likewise.
4021 * lto-streamer-out.c (output_gimple_stmt): Likewise.
4022
1a3118e9
JH
40232011-04-19 Jan Hubicka <jh@suse.cz>
4024
4025 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
4026 * ipa-inline.c (inline_small_functions): Compute summaries first,
4027 populate heap later.
1a3118e9 4028
fee8b6da
JH
40292011-04-19 Jan Hubicka <jh@suse.cz>
4030
4031 * cgraph.h (save_inline_function_body): Remove.
4032 * ipa-inline-transform.c: New file, broke out of...
4033 * ipa-inline.c: ... this one; Update toplevel comment.
4034 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4035 make global.
4036 (update_noncloned_frequencies): Move to ipa-inline-transform.c
4037 (cgraph_mark_inline_edge): Rename to inline_call; move to
4038 ipa-inline-transform.c.
4039 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4040 move to ipa-inline-transform.c
4041 (recursive_inlining, inline_small_functions, flatten_function,
4042 ipa_inline, inline_always_inline_functions,
4043 early_inline_small_functions): Update.
4044 (inline_transform): Move to ipa-inline-transform.c.
4045 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4046 Declare.
4047 * Makefile.in (ipa-inline-transform.o): New file.
4048 * cgraphunit.c (save_inline_function_body): Move to
4049 ipa-inline-transform.c
4050
f0679612
DD
40512011-04-19 DJ Delorie <dj@redhat.com>
4052
4053 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4054 registers if we already know there aren't any.
4055 (m32c_emit_epilogue): Don't emit a barrier here.
4056 (m32c_emit_eh_epilogue): Likewise.
4057 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4058 operands at expand time.
4059 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4060 int" wchar type.
4061 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4062 duplicates. Provide aliases instead.
4063 * config/m32c/prologue.md (eh_return): Emit a barrier here.
4064 (eh_epilogue): Add a "(return)" here as a hint to other parts of
4065 the compiler.
4066
32257ddc
AS
40672011-04-19 Anatoly Sokolov <aesok@post.ru>
4068
4069 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4070 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4071 (general_or_i64_p, sparc_register_move_cost): New function.
4072
60bea929
RO
40732011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4074
4075 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 4076 Add lynx, mipssde. Sort table.
60bea929 4077
444b3995 40782011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 4079
9d12f71a
EB
4080 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4081 not negative.
444b3995 4082
d708ce50
JJ
40832011-04-19 Jakub Jelinek <jakub@redhat.com>
4084
4085 PR target/48678
4086 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4087 is a SUBREG with non-MODE_INT mode inside of it.
4088
49c471e3
MJ
40892011-04-19 Martin Jambor <mjambor@suse.cz>
4090
4091 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4092 also according to actual contants.
4093 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4094 (gimple_fold_call): Use it.
4095 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4096
0004f992
MJ
40972011-04-19 Martin Jambor <mjambor@suse.cz>
4098
4099 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4100 non-pointer assignments.
4101
40591473
MJ
41022011-04-19 Martin Jambor <mjambor@suse.cz>
4103
4104 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4105 account anc_offset and otr_type from the indirect edge info.
4106 * ipa-prop.c (get_ancestor_addr_info): New function.
4107 (compute_complex_ancestor_jump_func): Assignment analysis moved to
4108 get_ancestor_addr_info, call it.
4109 (ipa_note_param_call): Do not initialize information about polymorphic
4110 calls, return the indirect call graph edge. Remove the last
4111 parameter, adjust all callers.
4112 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4113 parameters. Initialize polymorphic information in the indirect edge.
4114
abe36b81
EB
41152011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4116
4117 PR lto/48148
4118 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4119 the types if they have different enumeration identifiers.
4120
e6416b30
JH
41212011-04-19 Jan Hubicka <jh@suse.cz>
4122
4123 * cgraph.h (cgraph_optimize_for_size_p): Declare.
4124 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4125 * predict.c (cgraph_optimize_for_size_p): Break out from ...
4126 (optimize_function_for_size_p) ... here.
4127
d39132ea
RG
41282011-04-19 Richard Guenther <rguenther@suse.de>
4129
4130 PR lto/48207
4131 * tree.c (free_lang_data): Do not reset the decl-assembler-name
4132 langhook.
4133
ff7037dc
EB
41342011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4135
4136 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4137 if DECL_NO_INLINE_WARNING_P is set on the function.
4138
c1ee2892
BS
41392011-04-19 Bernd Schmidt <bernds@codesourcery.com>
4140
4141 PR fortran/47976
4142 * reload1.c (inc_for_reload): Return void. All callers changed.
4143 (emit_input_reload_insns): Don't try to delete previous output
4144 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
4145
41462011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
4147
4148 * gengtype.h: Updated copyright year.
4149 (struct input_file_st): Add inpisplugin field.
4150 (type_fileloc): New function.
4151 * gengtype.c
4152 (write_typed_struct_alloc_def): Add gcc_assert.
4153 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4154 (write_typed_alloc_defns): Don't output for plugin files.
4155 (input_file_by_name): Clear inpisplugin field.
4156 (main): Set inpisplugin field for plugin files.
4157
897e0a89
NP
41582011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
4159
4160 * gengtype-state.c (string_eq): New.
4161 (read_state): Use string_eq instead of strcmp when creating the
4162 state_ident_tab.
4163
363ee90e
WG
41642011-04-19 Wei Guozhi <carrot@google.com>
4165
4166 PR target/47855
4167 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4168 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4169 linkage.
4170 * config/arm/constraints.md (Uu): New constraint.
4171 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4172
18a24fed
TG
41732011-04-19 Tristan Gingold <gingold@adacore.com>
4174
4175 * config.gcc (-*-*-*vms): Added.
4176 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4177 definitions moved.
4178 * config/vms/vms-ld.c: New file.
4179 * config/vms/vms-ar.c: New file.
4180 * config/vms/t-vmsnative: New file.
4181
1c13f168
XDL
41822011-04-18 Xinliang David Li <davidxl@google.com>
4183
4184 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4185
84825707
JJ
41862011-04-18 Jakub Jelinek <jakub@redhat.com>
4187
4188 PR middle-end/48661
4189 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4190 if TREE_TYPE (v) is non-NULL.
4191
4192 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4193 gimple_get_virt_mehtod_for_binfo.
4194 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4195 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4196 callers.
4197 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4198
7d4f8d02 41992011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
4200 Steve Ellcey <sje@cup.hp.com>
4201
7d4f8d02
EB
4202 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4203 use its mode as source mode if it isn't VOIDmode.
7254cb57 4204
474e8e70
DCR
42052011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
4206
4207 * doc/passes.texi: Fill crossref nodes.
4208
cff41484
JM
42092011-04-18 Jim Meyering <meyering@redhat.com>
4210
7d4f8d02 4211 Fix doubled-word typos in comments and strings
cff41484
JM
4212 * config/alpha/vms-unwind.h: s/for for/for/
4213 * config/arm/unwind-arm.h: Likewise.
4214 * config/microblaze/microblaze.c: Likewise.
4215 * config/sh/constraints.md: s/in in/in/
4216 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4217
f60c2554
UB
42182011-04-18 Uros Bizjak <ubizjak@gmail.com>
4219
4220 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4221 (AVX_FLOAT_MODE_P): Ditto.
4222 (AVX128_VEC_FLOAT_MODE_P): Ditto.
4223 (AVX256_VEC_FLOAT_MODE_P): Ditto.
4224 (AVX_VEC_FLOAT_MODE_P): Ditto.
4225 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4226 (UNSPEC_MASKSTORE): Ditto.
4227 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4228 Merge from <sse>_movmsk<ssemodesuffix> and
4229 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
4230 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
4231 iterator.
4232 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4233 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4234 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4235
09a2806f
JH
42362011-04-18 Jan Hubicka <jh@suse.cz>
4237
8a8dccb2
JH
4238 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4239
09a2806f
JH
4240 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4241 (want_inline_function_called_once_p): Break out the logic from
4242 ipa_inline.
4243 (edge_badness): Ensure that profile is not misupdated.
4244 (lookup_recursive_calls): Prioritize by call frequencies.
4245 (inline_small_functions): Move program size estimates here;
4246 actually process whole queue even when unit growth has been
4247 met. (to properly compute inline_failed reasons and for the
f60c2554 4248 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
4249 (ipa_inline): Remove unit summary code; first inline hot calls
4250 of functions called once, cold calls next.
4251 (order, nnodes): Remove unused variables.
4252 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4253 (GTFILES): Remove ipa-inline.c
4254 * sel-sched.c (fill_insns): Silence uninitialized var warning.
4255
3eea52ef
EB
42562011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4257
4258 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4259
229a1c59 42602011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 4261 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
4262
4263 * arm.c (neon_builtin_type_bits): Remove.
4264 (typedef enum neon_builtin_mode): New.
4265 (T_MAX): Don't define.
4266 (typedef enum neon_builtin_datum): Remove bits, codes[],
4267 num_vars and base_fcode. Add mode, code and fcode.
4268 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4269 VAR10): Change accordingly.
4270 (neon_builtin_data[]): Change accordingly
4271 (arm_init_neon_builtins): Change accordingly.
4272 (neon_builtin_compare): Remove.
4273 (locate_neon_builtin_icode): Remove.
4274 (arm_expand_neon_builtin): Change accordingly.
4275
4276 * arm.h (enum arm_builtins): Move to ...
4277 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4278
4279 * arm.c (arm_builtin_decl): Declare.
4280 (TARGET_BUILTIN_DECL): Define.
4281 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4282 (arm_builtin_decls[]): New.
4283 (arm_init_neon_builtins): Store builtin declarations in
4284 arm_builtin_decls[].
4285 (arm_init_tls_builtins): Likewise.
4286 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
4287 (arm_builtin_decl): New.
4288
75e802cc
RG
42892011-04-18 Richard Guenther <rguenther@suse.de>
4290
4291 * tree.c (upper_bound_in_type): Build properly canonicalized
4292 INTEGER_CSTs.
4293 (lower_bound_in_type): Likewise.
4294
3b45a007
RG
42952011-04-18 Richard Guenther <rguenther@suse.de>
4296
4297 * gimple.h (gimple_call_addr_fndecl): New function.
4298 (gimple_call_fndecl): Use it.
4299 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4300 for direct calls.
4301 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4302 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4303
d25a79ea
RG
43042011-04-18 Richard Guenther <rguenther@suse.de>
4305
4306 PR middle-end/48650
4307 * tree.c (build_string): STRING_CST is now derived from tree_typed.
4308
7d5fc814
EB
43092011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4310
4311 PR lto/48492
4312 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4313 DECL_IN_CONSTANT_POOL without RTL.
4314
7e7cfcf6
UW
43152011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
4316 Ira Rosen <ira.rosen@linaro.org>
4317
4318 PR target/48252
4319 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4320 to match neon_vzip/vuzp/vtrn_internal.
4321 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4322 outputs explicitly dependent on both inputs.
4323 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4324
49eab32e
JJ
43252011-04-18 Jakub Jelinek <jakub@redhat.com>
4326
4327 PR tree-optimization/48616
4328 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4329 whether the shift is by scalar or vector based on whether all SLP
4330 scalar stmts have the same rhs.
4331
e54170f4
CLT
43322011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
4333
4334 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4335 memory operands.
4336
b14ee6c9
RS
43372011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4338
4339 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4340 registers.
4341
10158cd3
JH
43422011-04-17 Jan Hubicka <jh@suse.cz>
4343
4344 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
4345 * cgrpahunit.c (cgraph_finalize_function): Do not set
4346 finalized_by_frontend.
10158cd3
JH
4347 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4348 finalized_by_frontend.
4349
2e9bb6ba
JH
43502011-04-17 Jan Hubicka <jh@suse.cz>
4351
4352 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4353 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4354 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
4355 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4356 method.
2e9bb6ba
JH
4357 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4358 gimple-fold.c
4359 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4360
beb628e1
EB
43612011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4362
4363 PR lto/48538
4364 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4365 is non-null before accessing it.
4366 (input_cgraph): Remove trailing spaces.
4367
3e2fdd24
RE
43682011-04-17 Revital Eres <revital.eres@linaro.org>
4369
4370 * params.def (sms-min-sc): New param flag.
4371 * modulo-sched.c (sms_schedule): Use it.
4372 * doc/invoke.texi (sms-min-sc): Document it.
4373
4c0f7679
JH
43742011-04-17 Jan Hubicka <jh@suse.cz>
4375
4376 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4377 present, also set gimple_call_set_cannot_inline.
4378 * ipa-inline.c: Update toplevel comment.
4379 (MAX_TIME): Remove.
4380 (cgraph_clone_inlined_nodes): Fix linebreaks.
4381 (cgraph_check_inline_limits): Restructure to ...
4382 (caller_growth_limits): ... this one; be more tolerant
4383 on growth in nested inline chains; add explanatory comment;
4384 fix stack accounting thinko introduced by previous patch.
4385 (cgraph_default_inline_p): Remove.
4386 (report_inline_failed_reason): New function.
4387 (can_inline_edge_p): New function.
4388 (can_early_inline_edge_p): New function.
4389 (leaf_node_p): Move upwards in file.
4390 (want_early_inline_function_p): New function.
4391 (want_inline_small_function_p): New function.
4392 (want_inline_self_recursive_call_p): New function.
4393 (cgraph_edge_badness): Rename to ...
4394 (edge_badness) ... this one; fix linebreaks.
4395 (update_edge_key): Update call of edge_baddness; add
4396 detailed dump about queue updates.
4397 (update_caller_keys): Use can_inline_edge_p and
4398 want_inline_small_function_p.
4399 (cgraph_decide_recursive_inlining): Rename to...
4400 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
4401 want_inline_self_recursive_call_p; simplify and remove no longer
4402 valid FIXME.
4c0f7679
JH
4403 (cgraph_set_inline_failed): Remove.
4404 (add_new_edges_to_heap): Use can_inline_edge_p and
4405 want_inline_small_function_p.
4406 (cgraph_decide_inlining_of_small_functions): Rename to ...
4407 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
4408 can/want predicates; cleanup debug ouput; work edges till fibheap
4409 is exhausted and do not stop once unit growth is reached; remove
4410 later loop processing remaining edges.
4c0f7679
JH
4411 (cgraph_flatten): Rename to ...
4412 (flatten_function): ... this one; use can_inline_edge_p
4413 and can_early_inline_edge_p predicates.
4414 (cgraph_decide_inlining): Rename to ...
4415 (ipa_inline): ... this one; remove unreachable nodes before
4416 inlining functions called once; simplify the pass.
4417 (cgraph_perform_always_inlining): Rename to ...
4418 (inline_always_inline_functions): ... this one; use
f60c2554 4419 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
4420 (cgraph_decide_inlining_incrementally): Rename to ...
4421 (early_inline_small_functions): ... this one; simplify
4422 using new predicates; cleanup; make dumps prettier.
4423 (cgraph_early_inlining): Rename to ...
4424 (early_inliner): newer inline regular functions into always-inlines;
4425 fix updating of call stmt summaries.
4426 (pass_early_inline): Update for new names.
4427 (inline_transform): Fix formating.
4428 (gate_cgraph_decide_inlining): Rename to ...
4429 (pass_ipa_inline): ... this one.
4430 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4431 * ipa-inline-analysis.c (dump_inline_summary): Update.
4432 (compute_inline_parameters): Do not compute disregard_inline_limits;
4433 look for mismatching arguments.
4434 (estimate_growth): Fix handlig of non-trivial self recursion.
4435 (inline_read_summary): Do not read info->disregard_inline_limits.
4436 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
4437 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4438 and move all checks into can_inline_edge_p predicate; re-enable code
4439 comparing optimization levels.
4c0f7679
JH
4440 (expand_call_inline): Do not test inline_forbidden_into_p.
4441 * Makefile.in (ipa-inline.o): Update arguments.
4442
54333b7c
RE
44432011-04-17 Revital Eres <revital.eres@linaro.org>
4444
4445 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4446
42c2bf92
RE
44472011-04-17 Revital Eres <revital.eres@linaro.org>
4448
4449 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4450
b183e9e0
MM
44512011-04-17 Michael Matz <matz@suse.de>
4452
4453 PR tree-optimization/48622
4454 PR lto/48645
4455 * ipa-inline-analysis.c (inline_read_summary): Read size/time
4456 in same order as they're written.
4457
b8a17fa2
JDA
44582011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4459
4460 * config/pa/predicates.md: Reorganize and simplify predicates.
4461 Eliminate duplicate code checks.
4462 (arith_operand): Rename to arith14_operand
4463 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4464 * config/pa/pa.md: Use renamed operands.
4465 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4466 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4467 arith11_operand, adddi3_operand, indexed_memory_operand,
4468 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4469 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4470 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4471 move_dest_operand, move_src_operand, prefetch_cc_operand,
4472 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4473 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4474 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4475 div_operand, int5_operand, movb_comparison_operator,
4476 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4477 arith_double_operand, ireg_operand, lhs_lshift_operand,
4478 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4479 integer_store_memory_operand): Likewise.
4480 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4481 (integer_store_memory_operand, read_only_operand,
4482 function_label_operand, borx_reg_operand,
4483 non_hard_reg_operand): Likewise.
4484 (eq_neq_comparison_operator): Delete unused operator.
4485 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4486 function_label_operand.
4487 (emit_move_sequence): Likewise.
4488
8dfb9f16
UB
44892011-04-16 Uros Bizjak <ubizjak@gmail.com>
4490
4491 * config/i386/sse.md (sseunpackmode): New mode attribute.
4492 (ssepackmode): Ditto.
4493 (vec_pack_trunc_<mode>): Macroize expander from
4494 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4495 (vec_unpacks_lo_<mode>): Macroize expander from
4496 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4497 (vec_unpacks_hi_<mode>): Macroize expander from
4498 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4499 (vec_unpacku_lo_<mode>): Macroize expander from
4500 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4501 (vec_unpacku_hi_<mode>): Macroize expander from
4502 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4503 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4504 ix86_expand_sse4_unpack.
4505 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4506
e7f23018
JH
45072011-04-16 Jan Hubicka <jh@suse.cz>
4508
4509 * cgraphbuild.c: Include ipa-inline.h.
4510 (reset_inline_failed): Use initialize_inline_failed.
4511 * cgraph.c: Include ipa-inline.h.
4512 (cgraph_create_node_1): Do not initialize estimated_growth.
4513 (initialize_inline_failed): More to ipa-inline-analysis.c
4514 (dump_cgraph_node): Do not dump inline flags.
4515 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4516 and disregard_inline_limits flags.
4517 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4518 time, size, estimated_growth.
8dfb9f16
UB
4519 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4520 Update.
e7f23018
JH
4521 * cgraphunit.c (cgraph_decide_is_function_needed): Use
4522 DECL_DISREGARD_INLINE_LIMITS.
4523 (cgraph_analyze_function): Do not initialize
4524 node->local.disregard_inline_limits.
4525 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4526 inlinable, versionable and disregard_inline_limits.
4527 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
4528 cgraph_check_inline_limits, cgraph_default_inline_p,
4529 cgraph_edge_badness, update_caller_keys, update_callee_keys,
4530 add_new_edges_to_heap): Update.
4531 (cgraph_decide_inlining_of_small_function): Update; set
4532 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
4533 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4534 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
4535 * ipa-inline.h (inline_summary): Add inlinable, versionable,
4536 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4537 time, size and estimated_growth parameters.
e7f23018
JH
4538 (estimate_edge_growth): Update.
4539 (initialize_inline_failed): Declare.
4540 * ipa-split.c: Include ipa-inline.h
4541 (execute_split_functions): Update.
4542 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4543 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4544 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4545 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4546 estimated_growth to INT_MIN.
4547 (inline_node_duplication_hook): Likewise.
4548 (dump_inline_summary): Dump new fields.
4549 (compute_inline_parameters): Update.
4550 (estimate_edge_time, estimate_time_after_inlining,
4551 estimate_size_after_inlining, estimate_growth, inline_read_summary,
4552 inline_write_summary):
4553 (initialize_inline_failed): Move here from cgraph.c.
4554 * tree-sra.c: Include ipa-inline.h.
4555 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
4556 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4557 ipa-inline.h.
e7f23018 4558
e81b8564
UB
45592011-04-16 Uros Bizjak <ubizjak@gmail.com>
4560
4561 * config/i386/sse.md (V16): New mode iterator.
4562 (VI1, VI8): Ditto.
4563 (AVXMODEQI, AVXMODEDI): Remove.
4564 (sse2, sse3): New mode attribute.
4565 (mov<mode>): Use V16 mode iterator.
4566 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4567 (push<mode>1): Use V16 mode iterator.
4568 (movmisalign<mode>): Ditto.
4569 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4570 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4571 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4572 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4573 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4574 avx_movdqu<avxmodesuffix>.
4575 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4576 *avx_movdqu<avxmodesuffix>.
4577 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4578 avx_lddqu<avxmodesuffix>.
4579 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4580 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4581 avx_movnt<AVXMODEDI:mode>.
4582 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4583 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4584
4743d438
BS
45852011-04-16 Bernd Schmidt <bernds@codesourcery.com>
4586
4587 PR target/48629
4588 * haifa-sched.c (prune_ready_list, schedule_block): Use
4589 sched_pressure_p rather than flag_sched_pressure.
4590
748f7574 45912011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
4592
4593 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4594 cgraph_get_node instead of cgraph_get_create_node.
4595
2ba172e0
JJ
45962011-04-15 Jakub Jelinek <jakub@redhat.com>
4597
4598 * cfgexpand.c (expand_debug_expr): Use
4599 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4600
63d2a353
MM
46012011-04-15 Michael Matz <matz@suse.de>
4602
4603 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4604 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4605 * function.c (gimplify_parameters): Ditto.
4606 * gimplify.c (gimplify_vla_decl): Ditto.
4607
4608 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4609 (gimple_call_set_alloca_for_var): New inline function.
4610 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
4611 * gimple.c (gimple_build_call_from_tree): Remember
4612 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
4613 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4614
4615 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4616 calls if they were for VLA objects.
4617
dee74c34
MJ
46182011-04-15 Martin Jambor <mjambor@suse.cz>
4619
4620 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4621 of ADR_EXPRs.
4622
8e5837bc
MJ
46232011-04-15 Martin Jambor <mjambor@suse.cz>
4624
4625 PR middle-end/48601
4626 * tree-emutls.c (lower_emutls_function_body): Call
4627 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
4628 result is non-NULL.
4629
0dc33c3c
NP
46302011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
4631
4632 * c-decl.c (detect_field_duplicates): Call
4633 objc_detect_field_duplicates instead of objc_get_interface_ivars.
4634
edcdea5b
NF
46352011-04-15 Nathan Froyd <froydnj@codesourcery.com>
4636
4637 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4638 * gimple.c (gimple_asm_clobbers_memory_p): Define.
4639 * ipa-pure-const.c (check_stmt): Call it.
4640 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4641
8456558d
RG
46422011-04-15 Richard Guenther <rguenther@suse.de>
4643
4644 PR tree-optimization/48290
4645 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4646 Properly decide inhibiting propagation based on the valueized
4647 operand. Do loop-closed SSA form preserving here ...
4648 (init_copy_prop): ... not here.
4649
266446be
L
46502011-04-15 H.J. Lu <hongjiu.lu@intel.com>
4651
4652 PR target/48612
4653 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4654 (*ieee_smax<mode>3): Likewise.
4655
17465c6e
AK
46562011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4657
4658 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4659 Replace match_operand with match_dup for the third operand in
4660 these expanders.
4661
bce204e5
MK
46622011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4663
4664 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4665 to track processing of conditionals. Update all callers.
4666 (try_combine, simplify_if_then_else): Update.
4667
3162fdf4
MK
46682011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4669
4670 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4671 -fsched-pressure.
4672
79002a57 46732011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 4674
79002a57
GJL
4675 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4676 instead of match_operand for operand 3.
4677
4fd3a105
RS
46782011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
4679
4680 * recog.h (insn_operand_data): Add an "allows_mem" field.
4681 * genoutput.c (output_operand_data): Initialize it.
4682 * optabs.c (maybe_legitimize_operand_same_code): New function.
4683 (maybe_legitimize_operand): Use it when matching the original
4684 op->value.
4685
ad19c4be
EB
46862011-04-15 Eric Botcazou <ebotcazou@adacore.com>
4687
4688 * gimplify.c: Fix issues in comments throughout.
4689 (voidify_wrapper_expr): Fix long line.
4690 (build_stack_save_restore): Likewise.
4691 (gimplify_loop_expr): Likewise.
4692 (gimplify_compound_lval): Likewise.
4693 (gimplify_init_ctor_eval): Likewise.
4694 (gimplify_modify_expr_rhs): Likewise.
4695 (omp_notice_threadprivate_variable): Likewise.
4696
b25aa0e8 46972011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 4698
b25aa0e8
EB
4699 * cfgexpand.c (expand_call_stmt): Convert the function type to the
4700 original one if this is not a builtin function.
e7925582 4701
09db7afe
JJ
47022011-04-14 Jakub Jelinek <jakub@redhat.com>
4703
4704 PR target/48605
4705 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4706 offset it as needed based on top 2 bits in operands[3], change
4707 MEM mode to SFmode and mask those 2 bits away from operands[3].
4708
c59633d9
NP
47092011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4710
4711 * c-parser.c (c_parser_objc_protocol_definition): Updated for
4712 change from objc_declare_protocols() to objc_declare_protocol().
4713
5e60198b
UB
47142011-04-14 Uros Bizjak <ubizjak@gmail.com>
4715
4716 * config/i386/sse.md (sse4_1): New mode attribute.
4717 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4718 avx_blend<ssemodesuffix><avxmodesuffix> and
4719 sse4_1_blend<ssemodesuffix> using VF mode iterator.
4720 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4721 avx_blendv<ssemodesuffix><avxmodesuffix> and
4722 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4723 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4724 avx_dp<ssemodesuffix><avxmodesuffix> and
4725 sse4_1_dp<ssemodesuffix> using VF mode iterator.
4726 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4727 (sse4_1_packusdw): Merge with *avx_packusdw.
4728 (sse4_1_pblendvb): Merge with *avx_pblendvb.
4729 (sse4_1_pblendw): Merge with *avx_pblendw.
4730 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4731 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4732 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4733 VF mode iterator.
4734 (sse4_1_round<ssescalarmodesuffix>): Merge with
4735 *avx_round<ssescalarmodesuffix>.
4736 (aesenc): Merge with *avx_aesenc.
4737 (aesenclast): Merge with *avx_aesenclast.
4738 (aesdec): Merge with *avx_aesdec.
4739 (aesdeclast): Merge with *avx_aesdeclast.
4740 (pclmulqdq): Merge with *pclmulqdq.
4741 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4742 New predicate.
4743 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4744
6f197850
L
47452011-04-14 H.J. Lu <hongjiu.lu@intel.com>
4746
4747 PR middle-end/48608
4748 * cfgexpand.c (get_decl_align_unit): Renamed to ...
4749 (align_local_variable): This. Update DECL_ALIGN.
4750 (add_stack_var): Updated.
4751 (expand_one_stack_var): Likewise.
4752
4a5ba3ed
RG
47532011-04-14 Richard Guenther <rguenther@suse.de>
4754
4755 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4756 Remove.
4757 (dse_initialize_block_local_data, dse_leave_block,
4758 record_voperand_set, get_stmt_uid): Likewise.
4759 (dse_possible_dead_store_p): Allow any kind of killing stmt.
4760 (dse_optimize_stmt): Remove voperand set handling code.
4761 Simplify and improve to handle any kind of killing stmt.
4762 (dse_record_phi): Remove.
4763 (dse_enter_block): Simplify.
4764 (tree_ssa_dse): Likewise.
4765 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4766
10a5dd5d
JH
47672011-04-14 Jan Hubicka <jh@suse.cz>
4768
4769 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4770 * cgraph.h (struct inline_summary): Move to ipa-inline.h
4771 (cgraph_local_info): Remove inline_summary.
4772 * ipa-cp.c: Include ipa-inline.h.
4773 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4774 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4775 accesor.
4776 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4777 (input_overwrite_node): Do not set inline summary.
4778 (input_node): Do not stream inline summary.
4779 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4780 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4781 growth; we do not have inline parameters computed for that anyway.
4782 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4783 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4784 (inline_summary_t): New type and VECtor.
4785 (debug_inline_summary, dump_inline_summaries): Declare.
4786 (inline_summary): Use VOCtor.
4787 (estimate_edge_growth): Kill hack computing call stmt size directly.
4788 * lto-section-in.c (lto_section_name): Add inline section.
4789 * ipa-inline-analysis.c: Include lto-streamer.h
4790 (node_removal_hook_holder, node_duplication_hook_holder): New holders
4791 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4792 (inline_summary_vec): Define.
4793 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4794 dump_inline_summaries): New functions.
5e60198b
UB
4795 (estimate_function_body_sizes): Properly compute size/time of outgoing
4796 calls.
4797 (compute_inline_parameters): Alloc inline_summary; do not compute
4798 size/time of incomming calls.
10a5dd5d
JH
4799 (estimate_edge_time): Avoid missing time summary hack.
4800 (inline_read_summary): Read inline summary info.
4801 (inline_write_summary): Write inline summary info.
4802 (inline_free_summary): Free all hooks and inline summary vector.
4803 * lto-streamer.h: Add LTO_section_inline_summary section.
4804 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4805 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4806
b602d918
RS
48072011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4808
4809 * tree-vectorizer.h (vect_strided_store_supported): Add a
4810 HOST_WIDE_INT argument.
4811 (vect_strided_load_supported): Likewise.
4812 (vect_permute_store_chain): Return void.
4813 (vect_transform_strided_load): Likewise.
4814 (vect_permute_load_chain): Delete.
4815 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4816 count argument. Check that the count is a power of two.
4817 (vect_strided_load_supported): Likewise.
4818 (vect_permute_store_chain): Return void. Update after above changes.
4819 Assert that the access is supported.
4820 (vect_permute_load_chain): Likewise.
4821 (vect_transform_strided_load): Return void.
4822 * tree-vect-stmts.c (vectorizable_store): Update calls after
4823 above interface changes.
4824 (vectorizable_load): Likewise.
4825 (vect_analyze_stmt): Don't check for strided powers of two here.
4826
ab4472fa
RG
48272011-04-14 Richard Guenther <rguenther@suse.de>
4828
4829 PR tree-optimization/48590
4830 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4831 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4832 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4833 BUILT_IN_STACK_SAVE.
4834 * tree-ssa-dce.c (propagate_necessity): Handle
4835 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4836
32dabdaf
NP
48372011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4838
4839 * c-parser.c (c_parser_objc_class_declaration): Updated call to
4840 objc_declare_class.
4841
daade206
RG
48422011-04-14 Richard Guenther <rguenther@suse.de>
4843
4844 * tree.h (get_object_alignment_1): Declare.
4845 * builtins.c (get_object_alignment_1): Split out worker from ...
4846 (get_object_alignment): ... here.
4847 * fold-const.c (get_pointer_modulus_and_residue): Use
4848 get_object_alignment_1.
4849
920e8172
RS
48502011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4851
4852 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4853 type parameter.
4854 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4855 parameter. Generalise code to handle arrays as well as vectors.
4856 (vect_setup_realignment): Update accordingly.
4857 * tree-vect-stmts.c (vectorizable_store): Likewise.
4858 (vectorizable_load): Likewise.
4859
5ce1ee7f
RS
48602011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4861
4862 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4863 within the per-copy loop.
4864
6438fe33 48652011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
4866
4867 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4868 in the dump file.
4869
6438fe33 48702011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
4871
4872 * doc/options.texi (Negative): Explicitly mention that the
4873 Negative chain must be circular.
4874
61e46a7d
NF
48752011-04-14 Nathan Froyd <froydnj@codesourcery.com>
4876
4877 * function.h (block_chainon): Declare.
4878 * function.c (block_chainon): Define.
4879
43ea6502 48802011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 4881 Eric Weddington <eric.weddington@atmel.com>
748f7574 4882 Georg-Johann Lay <avr@gjlay.de>
5e60198b 4883
f60c2554 4884 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
4885 New Includes
4886 (avr_init_builtins, avr_expand_builtin,
4887 avr_expand_delay_cycles, avr_expand_unop_builtin,
4888 avr_expand_binop_builtin ): New functions.
4889 (avr_builtin_id): New enum
4890 (struct avr_builtin_description): New struct
4891 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4892 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 4893
43ea6502 4894 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 4895 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
4896 UNSPECV_DELAY_CYCLES): new enumeration values
4897 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4898 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4899 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4900 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4901 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4902 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4903 "fmulsu"): New insns
5e60198b 4904
43ea6502
AS
4905 * config/avr/avr-c.c: fix line endings
4906 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4907 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4908 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4909 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4910 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 4911
43ea6502
AS
4912 * doc/extend.texi (AVR Built-in Functions): New node
4913 (Target Builtins): Add documentation of AVR
4914 built-in functions.
4915
8a9b55f3
GJL
49162011-04-14 Georg-Johann Lay <avr@gjlay.de>
4917
4918 PR target/44643
4919 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4920 alone. Error if non-const data has attribute progmem.
4921
94bd1825
NF
49222011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4923
4924 * tree.h (struct tree_constructor): Include tree_typed instead of
4925 tree_common.
4926 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4927 TS_TYPED instead of TS_COMMON.
4928
5e60198b 49292011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
4930
4931 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4932 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4933 (sse2_psadbw): Merge with *avx_psadbw.
4934 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4935 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4936 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4937 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4938 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4939 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4940 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4941 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4942 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4943 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4944 (ssse3_palignrti): Merge with *avx_palignrti.
4945
4b1a4694
NF
49462011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4947
4948 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4949 * tree-ssanames.c (fini_ssanames): VEC_free it.
4950 (make_ssa_name_fn): Update for VECness of free_ssanames.
4951 (release_ssa_name, release_dead_ssa_names): Likewise.
4952 * tree.h (struct tree_ssa_name): Include tree_typed instead of
4953 tree_common.
4954 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4955 TS_TYPED instead of TS_COMMON.
4956
4da3b811
NF
49572011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4958
4959 * postreload-gcse.c (gcse_after_reload_main): Add calls to
4960 statistics_counter_event.
4961 * tree-ssa-copyrename.c (stats): Define.
4962 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
4963 statistics_counter_event.
4964 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4965 (bswap_stats, widen_mul_stats): Define.
4966 (insert_reciprocals): Increment rdivs_inserted.
4967 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
4968 rfuncs_inserted. Add calls to statistics_counter_event.
4969 (execute_cse_sincos_1): Increment inserted.
4970 (execute_cse_sincos): Zeroize sincos_stats. Add call to
4971 statistics_counter_event.
4972 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
4973 of bswap_stats. Add calls to statistics_counter_event.
4974 (convert_mult_to_widen): Increment widen_mults_inserted.
4975 (convert_plusminus_to_widen): Increment maccs_inserted.
4976 (convert_mult_to_fma): Increment fmas_inserted.
4977 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
4978 calls to statistics_counter_event.
4979
89fa552a
VM
49802011-04-13 Vladimir Makarov <vmakarov@redhat.com>
4981
4982 PR rtl-optimization/48455
4983 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4984 `temp_costs->mem_cost'.
4985
03dfc36d
JH
49862011-04-13 Jan Hubicka <jh@suse.cz>
4987
4988 * ipa-inline.h: New file.
4989 * ipa-inline-analysis.c: New file. Broken out of ...
4990 * ipa-inline.c: ... this file; update toplevel comment;
4991 include ipa-inline.h
4992 (inline_summary): Move to ipa-inline.h
4993 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4994 ipa-inline-analysis.c.
7d4f8d02
EB
4995 (cgraph_estimate_time_after_inlining): Rename to
4996 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
4997 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4998 to estimate_edge_growth.
4999 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5000 rename to estimate_size_after_inlining.
5001 (cgraph_mark_inline_edge): Update for new naming convention.
5002 (cgraph_check_inline_limits): Likewise.
5003 (cgraph_edge_badness): Likewise.
5004 (cgraph_decide_recursive_inlining): Likewise.
5005 (cgraph_decide_inlining_of_small_functions): Likewise.
5006 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
5007 (cgraph_estimate_growth): Rename to estimate_growth; move to
5008 ipa-inline-analysis.c.
03dfc36d
JH
5009 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5010 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5011 (compute_inline_parameters): Likewise.
5012 (compute_inline_parameters_for_current): Likewise.
5013 (pass_inline_parameters): Likewise.
5014 (inline_indirect_intraprocedural_analysis): Likewise.
5015 (analyze_function): Rename to inline_analyze_function; likewise.
5016 (add_new_function): Move to ipa-inline-analysis.c.
5017 (inline_generate_summary): Likewise.
5018 (inline_read_summary): Likewise.
5019 (inline_write_summary): Likewise.
5020 * Makefile.in (ipa-inline-analysis.c): New file.
5021
7673c962
RO
50222011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5023
5024 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5025 * configure: Regenerate.
5026
9698252f
NF
50272011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5028
5029 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5030 instead of tree_common.
5031 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5032 Likewise.
5033 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5034 TS_TYPED rather than TS_COMMON.
5035 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5036
3a7bfdd5
GJL
50372011-04-01 Georg-Johann Lay <avr@gjlay.de>
5038
5039 PR target/45263
86d83530
GJL
5040 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5041 r20 around calls of __tablejump_elpm__
3a7bfdd5 5042
20790697
JJ
50432011-04-13 Jakub Jelinek <jakub@redhat.com>
5044
5045 PR middle-end/48591
5046 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5047 NULL.
5048 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5049
094d7661
BS
50502011-04-13 Bernd Schmidt <bernds@codesourcery.com>
5051
5052 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5053 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5054 (cfi_vec): New typedef.
5055 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5056 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5057 (cie_cfi_vec): New static variable.
5058 (cie_cfi_head): Delete.
5059 (add_cfi): Accept a cfi_vec * as first argument. All callers and
5060 declaration changed. Use vector rather than list operations.
5061 (new_cfi): Don't initialize the dw_cfi_next field.
5062 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5063 rather than list operations.
5064 (lookup_cfa): Use vector rather than list operations.
5065 (output_cfis): New argument upto. Accept a cfi_vec rather than
5066 a dw_cfi_ref list head as argument. All callers changed.
5067 Iterate over the vector using upto as a maximum index.
5068 (output_all_cfis): New static function.
5069 (output_fde): Use vector rather than list operations. Use the
5070 new upto argument for output_cfis rather than manipulating a
5071 list.
5072 (dwarf2out_begin_prologue): Change initializations to match
5073 new struct members.
5074 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5075 from the vector length rather than searching for the end of a list.
5076 Use output_all_cfis.
5077 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5078
673a5740
NC
50792011-04-13 Nick Clifton <nickc@redhat.com>
5080
5081 * config/rx/rx.md (movmemsi): Do not use this pattern when
5082 volatile pointers are involved.
5083
1ee8b298
UB
50842011-04-13 Uros Bizjak <ubizjak@gmail.com>
5085
5086 * config/i386/sse.md (pinsrbits): Remove.
5087 (sse2_packsswb): Merge with *avx_packsswb.
5088 (sse2_packssdw): Merge with *avx_packssdw.
5089 (sse2_packuswb): Merge with *avx_packuswb.
5090 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5091 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5092 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5093 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5094 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5095 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5096 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5097 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5098 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5099 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5100 (sse2_loadld): Merge with *avx_loadld.
5101 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5102 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5103 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5104 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5105 (vec_concatv2di): Merge with *vec_concatv2di_avx.
5106
81f653d6
NF
51072011-04-12 Nathan Froyd <froydnj@codesourcery.com>
5108
5109 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5110 calling TREE_CHAIN.
5111 * print-tree.c (print_node): Likewise.
5112 * tree-inline.c (copy_tree_r): Likewise.
5113 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5114 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5115 instead of TS_COMMON.
5116 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5117 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5118 (copy_node_stat): Zero TREE_CHAIN only if necessary.
5119 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5120 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5121 ...and these...
5122 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5123 * tree.h: ...here.
5124 (TREE_CHAIN): Check for a TS_COMMON structure.
5125 (TREE_TYPE): Check for a TS_TYPED structure.
5126
748f7574 51272011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
5128
5129 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5130 cgraph_get_create_node instead of cgraph_node.
5131
eb345401
NP
51322011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5133
5134 * c-parser.c (c_parser_initelt): Updated call to
5135 objc_build_message_expr.
5136 (c_parser_postfix_expression): Likewise.
5137
a6c46762
KT
51382011-04-12 Kai Tietz <ktietz@redhat.com>
5139
5140 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5141 MASK_MS_BITFIELD_LAYOUT bit.
5142
b4ccfed9
JJ
51432011-04-12 Jakub Jelinek <jakub@redhat.com>
5144
5145 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5146 assert it is always true.
5147 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5148 moves.
5149
0d8a2528
NP
51502011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5151
5152 * c-parser.c (c_lex_one_token): Rewritten conditional used when
5153 compiling Objective-C to be more efficient.
5154
06bd234a
AF
51552011-04-12 Axel Freyn <axel-freyn@gmx.de>
5156
5157 * opts-common.c (decode_cmdline_options_to_array): Remove variable
5158 argv_copied.
5159
28569ac3
RS
51602011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5161
5162 * recog.h, genoutput.c, optabs.c: Revert last patch.
5163
ae59e00d
RR
51642011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5165
81b1e7eb
UB
5166 PR target/48090
5167 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 5168
cff1b7e0
RS
51692011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5170
5171 * recog.h (insn_operand_data): Add an "allows_mem" field.
5172 * genoutput.c (output_operand_data): Initialize it.
5173 * optabs.c (maybe_legitimize_operand_same_code): New function.
5174 (maybe_legitimize_operand): Use it when matching the original
5175 op->value.
5176
77059241
RS
51772011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5178
5179 * genpreds.c (process_define_predicate): Move most processing
5180 to gensupport.c. Continue to validate the expression.
5181 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5182 (process_define_predicate): Move processing to gensupport.c.
5183 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5184 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5185 (compute_predicate_codes): Moved from genrecog.c. Add lineno
5186 argument.
5187 (valid_predicate_name_p): New function, split out from old
5188 genpreds.c:process_define_predicate.
5189 (process_define_predicate): New function, combining code from
5190 old genpreds.c and genrecog.c functions.
5191 (process_rtx): Call it for DEFINE_PREDICATE and
5192 DEFINE_SPECIAL_PREDICATE.
5193
6308e208
RS
51942011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5195
5196 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5197 size of a '%A' memory reference.
5198 (T_DREG, T_QREG): New neon_builtin_type_bits.
5199 (arm_init_neon_builtins): Assert that the load and store operands
5200 are neon_struct_operands.
5201 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5202 (NEON_ARG_MEMORY): New builtin_arg.
5203 (neon_dereference_pointer): New function.
5204 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5205 Handle NEON_ARG_MEMORY.
5206 (arm_expand_neon_builtin): Update after above interface changes.
5207 Use NEON_ARG_MEMORY for loads and stores.
5208 * config/arm/predicates.md (neon_struct_operand): New predicate.
5209 * config/arm/iterators.md (V_two_elem): Tweak formatting.
5210 (V_three_elem): Use BLKmode for accesses that have no associated mode.
5211 (V_four_elem): Tweak formatting.
5212 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5213 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5214 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5215 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5216 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5217 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5218 (neon_vst4<mode>): Replace pointer operand with a memory operand.
5219 Use %A in the output template.
5220 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5221 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5222 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5223 the width of the memory access. Remove post-increment.
5224 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5225
e5db8f2f
NC
52262011-04-12 Nick Clifton <nickc@redhat.com>
5227
5228 * config/v850/v850.c (expand_prologue): Do not use the CALLT
5229 instruction for interrupt handlers if the target is the basic V850
5230 architecture.
5231 (expand_epilogue): Likewise.
5232
74f091d6
JJ
52332011-04-12 Jakub Jelinek <jakub@redhat.com>
5234
5235 PR rtl-optimization/48549
5236 * combine.c (propagate_for_debug): Also stop after BB_END of
5237 this_basic_block. Process LAST and just stop processing after it.
5238 (combine_instructions): If last_combined_insn has been deleted,
5239 set last_combined_insn to its PREV_INSN.
5240
f20ca725
RG
52412011-04-12 Richard Guenther <rguenther@suse.de>
5242
5243 PR tree-optimization/46076
5244 * gimple.h (struct gimple_statement_call): Add fntype field.
5245 (gimple_call_fntype): Adjust.
5246 (gimple_call_set_fntype): New function.
5247 * gimple.c (gimple_build_call_1): Set the call function type.
5248 * gimplify.c (gimplify_call_expr): Preserve the function
5249 type the frontend used for the call.
5250 (gimplify_modify_expr): Likewise.
5251 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5252 function type.
5253 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5254 function type.
5255 * tree-ssa.c (useless_type_conversion_p): Function pointer
5256 conversions are useless.
5257
a358e188
MJ
52582011-04-12 Martin Jambor <mjambor@suse.cz>
5259
5260 * cgraph.h (cgraph_node): Remove function declaration.
5261 (cgraph_create_node): Declare.
5262 (cgraph_get_create_node): Likewise.
5263 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5264 Updated all callers.
5265 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5266 the decl does not already exist. Call cgraph_get_create_node instead
5267 of cgraph_node.
5268 (cgraph_get_create_node): New function.
5269 (cgraph_same_body_alias): Update comment.
5270 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5271 assert it does not return NULL.
5272 (cgraph_update_edges_for_call_stmt): Likewise.
5273 (cgraph_clone_edge): Likewise.
5274 (cgraph_create_virtual_clone): Likewise.
5275 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5276 instead of cgraph_node.
5277 (cgraph_add_new_function): Call cgraph_create_node or
5278 cgraph_get_create_node instead of cgraph_node.
5279 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5280 instead of cgraph_node.
5281 (record_eh_tables): Likewise.
5282 (mark_address): Likewise.
5283 (mark_load): Likewise.
5284 (build_cgraph_edges): Call cgraph_get_create_node instead
5285 of cgraph_node.
5286 (rebuild_cgraph_edges): Likewise.
5287 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5288 instead of cgraph_node.
5289 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5290 cgraph_node.
5291 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5292 cgraph_create_node instead of cgraph_node.
5293 * c-decl.c (finish_function): Call cgraph_get_create_node instead
5294 of cgraph_node.
5295 * lto-cgraph.c (input_node): Likewise.
5296 * lto-streamer-in.c (input_function): Likewise.
5297 * varasm.c (mark_decl_referenced): Likewise.
5298 (assemble_alias): Likewise.
5299
fe660d7b
MJ
53002011-04-12 Martin Jambor <mjambor@suse.cz>
5301
5302 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5303 instead of cgraph_node and assert it does not return NULL.
5304 * lto-streamer-in.c (lto_read_body): Likewise.
5305 * omp-low.c (new_omp_context): Likewise.
5306 (create_task_copyfn): Likewise.
5307 * tree-emutls.c (lower_emutls_function_body): Likewise.
5308 * matrix-reorg.c (transform_allocation_sites): Likewise.
5309
bae5cddf
JJ
53102011-04-12 Jakub Jelinek <jakub@redhat.com>
5311
5312 PR c/48552
5313 * c-typeck.c (build_asm_expr): Error out on attempts to use
5314 void type outputs or inputs for constraints that allow reg or
5315 don't allow memory.
5316
06eb52ca
CLT
53172011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
5318 Richard Earnshaw <rearnsha@arm.com>
5319
5320 PR target/48250
5321 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5322 to use sign-magnitude offsets. Reject unsupported unaligned
5323 cases. Add detailed description in comments.
5324 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5325 condition from TARGET_32BIT to TARGET_ARM.
5326
648a616b
NF
53272011-04-11 Nathan Froyd <froydnj@codesourcery.com>
5328
5329 * tree.h (struct typed_tree): New.
5330 (struct tree_common): Include it instead of tree_base.
5331 (TREE_TYPE): Update for new location of type field.
5332 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5333 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5334 (union tree_node): Add typed field.
5335 * treestruct.def (TS_TYPED): New.
5336 * lto-streamer.c (check_handled_ts_structures): Handle it.
5337 * tree.c (MARK_TS_TYPED): New macro.
5338 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5339
1e6d1da0
EB
53402011-04-11 Eric Botcazou <ebotcazou@adacore.com>
5341
5342 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5343 (force_nonfallthru): Do not alter the loop nest if no basic block
5344 was created.
5345
53462011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
5347
5348 * config/i386/sse.md (VI): New mode iterator.
5349 (SSEMODEI): Remove.
5350 (AVX256MODEI): Ditto.
5351 (AVXMODEF4P): Ditto.
5352 (avxvecpsmode): Ditto.
5353 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
5354 (sse2_andnot<mode>3): New expander.
5355 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5356 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
5357 (<any_logic:code><mode>3): Use VI mode iterator.
5358 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5359 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
5360 (*andnottf3): Handle AVX three-operand constraints.
5361 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5362
b1372d5d 53632011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 5364 Robert Millan <rmh@gnu.org>
b1372d5d
JM
5365
5366 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5367 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5368 GNU_USER_DYNAMIC_LINKER64): Define.
5369 (REG_NAME): Don't undefine.
5370 (MD_UNWIND_SUPPORT): Undefine.
5371 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5372 (REG_NAME): Don't undefine.
5373 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 5374 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 5375
761c0c6e
JM
53762011-04-11 Joseph Myers <joseph@codesourcery.com>
5377
5378 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5379 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5380
26e0228f
XDL
53812011-04-11 Xinliang David Li <davidxl@google.com>
5382
5383 * value-profile.c (check_ic_target): New function.
5384 (gimple_ic_transform): Sanity check indirect call target.
5385 * gimple-low.c (gimple_check_call_args): Interface change.
5386 (gimple_check_call_matching_types): New function.
5387 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
5388
53892011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
5390
5391 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5392 tree-pretty-print.h & realmpfr.h.
5393
a58dfa49
VM
53942011-04-11 Vladimir Makarov <vmakarov@redhat.com>
5395
5396 PR middle-end/48464
5397 * ira.c (setup_pressure_classes): Fix typo in loop condition.
5398 (setup_allocno_and_important_classes): Ditto.
5399
107fd1c1
JM
54002011-04-11 Joseph Myers <joseph@codesourcery.com>
5401
5402 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5403 GNU_USER_DYNAMIC_LINKER.
5404 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5405 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5406 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5407 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5408 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5409 GNU_USER_TARGET_OS_CPP_BUILTINS.
5410 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5411 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5412 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5413 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5414 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5415 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5416 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5417 GNU_USER_TARGET_OS_CPP_BUILTINS.
5418 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5419 GNU_USER_DYNAMIC_LINKER.
5420 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5421 GNU_USER_TARGET_OS_CPP_BUILTINS.
5422 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5423 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5424 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5425 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5426 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5427 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5428 GNU_USER_DYNAMIC_LINKER64): Remove.
5429 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5430 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5431 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5432 GNU_USER_DYNAMIC_LINKER.
5433 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5434 GNU_USER_TARGET_OS_CPP_BUILTINS.
5435 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5436 GNU_USER_TARGET_OS_CPP_BUILTINS.
5437 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5438 to GNU_USER_TARGET_OS_CPP_BUILTINS.
5439 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5440 GNU_USER_TARGET_OS_CPP_BUILTINS.
5441 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5442 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5443 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5444 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5445 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5446 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5447 GNU_USER_DYNAMIC_LINKER.
5448 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5449 GNU_USER_TARGET_OS_CPP_BUILTINS.
5450 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5451 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5452 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5453 GNU_USER_DYNAMIC_LINKER.
5454 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5455 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5456 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5457 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5458 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5459 GNU_USER_DYNAMIC_LINKER.
5460 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5461 GNU_USER_DYNAMIC_LINKERN32.
5462 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5463 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
5464 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
5465 GNU_USER_DYNAMIC_LINKER32.
5466 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5467 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5468 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5469 GNU_USER_DYNAMIC_LINKER.
5470 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5471 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5472 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5473 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5474 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
5475 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5476 GNU_USER_DYNAMIC_LINKER32.
5477 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5478 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5479 GNU_USER_DYNAMIC_LINKER.
5480 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5481 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5482 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5483 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
5484 GNU_USER_DYNAMIC_LINKER64.
5485 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5486 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5487 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5488 GNU_USER_DYNAMIC_LINKER.
5489 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5490 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5491 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5492 GNU_USER_DYNAMIC_LINKER.
5493 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5494 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5495 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5496 GNU_USER_DYNAMIC_LINKER32.
5497 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5498 GNU_USER_DYNAMIC_LINKER64.
5499 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5500 GNU_USER_DYNAMIC_LINKER64.
5501 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5502 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5503 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5504 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5505 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 5506
e24609cf
JM
55072011-04-11 Joseph Myers <joseph@codesourcery.com>
5508
5509 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
5510 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5511 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5512 GNU_USER_DYNAMIC_LINKER.
5513 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5514 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
5515 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5516 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5517 GNU_USER_DYNAMIC_LINKER64.
5518 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5519 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5520 GNU_USER_LINK_EMULATION.
5521 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5522 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5523 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5524 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5525 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5526 CPP_SPEC, CC1_SPEC): Remove.
5527 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5528 (GNU_USER_DYNAMIC_LINKER): Define.
5529 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5530 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5531 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5532 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5533 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5534 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5535 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5536 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5537 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5538 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5539 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5540 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5541 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5542 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5543 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5544 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5545 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5546 GNU_USER_DYNAMIC_LINKER.
5547 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5548 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5549 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5550 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5551 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5552 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5553 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5554 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5555 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 5556 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 5557
b8ce4e94
KT
55582011-04-11 Kai Tietz <ktietz@redhat.com>
5559
5560 PR target/9601
5561 PR target/11772
5562 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5563 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5564 comment.
5565 (ix86_is_msabi_thiscall): Removed.
5566 (ix86_is_type_thiscall): Likewise.
5567 (ix86_get_callcvt): New function.
5568 (ix86_comp_type_attributes): Simplify check.
5569 (ix86_function_regparm): Use ix86_get_callcvt for calling
5570 convention attribute checks.
5571 (ix86_return_pops_args): Likewise.
5572 (ix86_static_chain): Likewise.
5573 (x86_this_parameter): Likewise.
5574 (x86_output_mi_thunk): Likewise.
5575 (ix86_function_type_abi): Optimize check for types without attributes.
5576 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5577 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5578 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5579 by flag-values.
5580 (IX86_BASE_CALLCVT): Helper macro.
5581 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5582 Use ix86_get_callcvt for calling convention attribute checks and avoid
5583 symbol-decoration for stdcall in TARGET_RTD case.
5584 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5585 Likewise.
5586 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5587 for declaration.
5588
798dd0ba
UB
55892011-04-11 Uros Bizjak <ubizjak@gmail.com>
5590
5591 * config/i386/sse.md (VI_128): New mode iterator.
5592 (VI12_128): Rename from SSEMODE12.
5593 (VI14_128): Rename from SSEMODE14.
5594 (VI124_128): New mode iterator.
5595 (VI24_128): Rename from SSEMODE248.
5596 (VI248_128): Rename from SSEMODE248.
5597 (SSEMODE124C8): Remove.
5598 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5599 (*sse2_<plusminus_insn><mode>3): Merge with
5600 *avx_<plusminus_insn><mode>3.
5601 (*mulv8hi3): Merge with *avx_mulv8hi3.
5602 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5603 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5604 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5605 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5606 (ashr<mode>3): Merge with *avx_ashr<mode>3.
5607 (lshr<mode>3): Merge with *avx_lshr<mode>3.
5608 (ashl<mode>3): Merge with *avx_ashl<mode>3.
5609 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5610 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5611 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5612 (*<smaxmin:code>v8hi3): Ditto.
5613 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5614 (*<smaxmin:code>v16qi3): Ditto.
5615 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5616 (*sse2_eq<mode>3): Ditto.
5617 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5618 (*sse2_gt<mode>3): Ditto.
5619 (vcondv2di): Split out of vcond<mode>.
5620 (vconduv2di): Split out of vcondu<mode>.
5621
956011be
RG
56222011-04-11 Richard Guenther <rguenther@suse.de>
5623
5624 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5625 before calling tree_low_cst.
5626
e6313a78
RG
56272011-04-11 Richard Guenther <rguenther@suse.de>
5628
5629 * stor-layout.c (layout_type): Compute all array index size operations
5630 in the original type.
5631 (initialize_sizetypes): Add comment.
5632 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5633
e69d7376
JM
56342011-04-11 Joseph Myers <joseph@codesourcery.com>
5635
5636 * common.opt (Tbss=, Tdata=, Ttext=): New options.
5637
9f9ebcdf
MJ
56382011-04-11 Martin Jambor <mjambor@suse.cz>
5639
5640 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5641 of cgraph_node, handle NULL return value.
5642 (cgraph_global_info): Likewise.
5643 (cgraph_rtl_info): Likewise.
5644 * tree-inline.c (estimate_num_insns): Likewise.
5645 * gimplify.c (unshare_body): Likewise.
5646 (unvisit_body): Likewise.
5647 (gimplify_body): Likewise.
5648 * predict.c (optimize_function_for_size_p): Likewise.
5649 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5650 (call_may_clobber_ref_p_1): Likewise.
5651 * varasm.c (function_section_1): Likewise.
5652 (assemble_start_function): Likewise.
5653
581985d7
MJ
56542011-04-11 Martin Jambor <mjambor@suse.cz>
5655
5656 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5657 of cgraph_node.
5658 * final.c (rest_of_clean_state): Likewise.
5659 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5660 * passes.c (pass_init_dump_file): Likewise.
5661 (execute_all_ipa_transforms): Likewise.
5662 (function_called_by_processed_nodes_p): Likewise.
5663 * predict.c (maybe_hot_frequency_p): Likewise.
5664 (probably_never_executed_bb_p): Likewise.
5665 (compute_function_frequency): Likewise.
5666 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5667 (unnest_nesting_tree_1): Likewise.
5668 (lower_nested_functions): Likewise.
5669 * tree-optimize.c (execute_fixup_cfg): Likewise.
5670 (tree_rest_of_compilation): Likewise.
5671 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5672 * tree-sra.c (ipa_early_sra): Likewise.
5673 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5674 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5675 * ipa.c (record_cdtor_fn): Likewise.
5676 * ipa-inline.c (cgraph_early_inlining): Likewise.
5677 (compute_inline_parameters_for_current): Likewise.
5678 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5679 * ipa-pure-const.c (local_pure_const): Likewise.
5680 * ipa-split.c (split_function): Likewise.
5681 (execute_split_functions): Likewise.
5682 * cgraphbuild.c (build_cgraph_edges): Likewise.
5683 (rebuild_cgraph_edges): Likewise.
5684 (cgraph_rebuild_references): Likewise.
5685 (remove_cgraph_callee_edges): Likewise.
5686 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5687 (verify_cgraph_node): Likewise.
5688 (cgraph_analyze_functions): Likewise.
5689 (cgraph_preserve_function_body_p): Likewise.
5690 (save_inline_function_body): Likewise.
5691 (save_inline_function_body): Likewise.
5692 * tree-inline.c (copy_bb): Likewise.
5693 (optimize_inline_calls): Likewise.
5694
57dbdc5a
MJ
56952011-04-11 Martin Jambor <mjambor@suse.cz>
5696
5697 PR tree-optimization/48195
5698 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5699 ipa_check_create_edge_args.
5700 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5701 ipa_check_create_edge_args.
5702 * ipa-inline.c (inline_generate_summary): Do not call
5703 ipa_check_create_node_params and ipa_check_create_edge_args.
5704 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5705 ipa_check_create_edge_args.
5706
d108e679
AS
57072011-04-09 Anatoly Sokolov <aesok@post.ru>
5708
5709 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5710 instead of loop.
5711 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5712 * function.c (record_hard_reg_sets): Likewise.
5713 * ira.c (compute_regs_asm_clobbered): Likewise.
5714 * sched-deps.c (sched_analyze_1): Likewise.
5715 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5716
3411bc59
XDL
57172011-04-09 Xinliang David Li <davidxl@google.com>
5718
5719 PR tree-optimization/PR48484
5720 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5721 has_valid_pred lazily
5722
b365495a
DS
57232011-04-09 Duncan Sands <baldrick@free.fr>
5724
5725 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5726
68bc509a
EB
57272011-04-08 Eric Botcazou <ebotcazou@adacore.com>
5728
5729 * combine.c (combine_validate_cost): Adjust comments. Set registered
5730 cost of I0 to zero at the end, if any.
5731
041e059f
XDL
57322011-04-08 Xinliang David Li <davidxl@google.com>
5733
68bc509a
EB
5734 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5735 to insane profile data.
041e059f 5736
444b3995
XDL
57372011-04-08 Xinliang David Li <davidxl@google.com>
5738
5739 * ipa-cp.c (ipcp_update_profiling): Correct
5740 negative scale factor due to insane profile data.
5741
6a801cf2
XDL
57422011-04-08 Xinliang David Li <davidxl@google.com>
5743
5744 * final.c (dump_basic_block_info): New function.
5745 (final): Dump basic block.
5746 (final_scan_insn): Remove old dump.
5747
d5f3624e
SK
57482011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
5749
68bc509a
EB
5750 PR target/47829
5751 * config.gcc (i386-*-freebsd): Disable unwind table generation for
5752 crtbegin/crtend.
d5f3624e 5753
42821aff
MM
57542011-04-08 Michael Matz <matz@suse.de>
5755
5756 PR middle-end/48389
5757 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5758 functions.
5759 (rebuild_jump_labels): Call rebuild_jump_labels_1.
5760 * rtl.h (rebuild_jump_labels_chain): Declare.
5761 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5762 insns inserted on edges.
5763
ad7be009
JM
57642011-04-08 Joseph Myers <joseph@codesourcery.com>
5765
5766 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5767 * config/arm/arm-arches.def: New.
5768 * config/arm/arm-opts.h: New.
5769 * config/arm/genopt.sh: New.
5770 * config/arm/arm-tables.opt: New (generated).
5771 * config/arm/arm.c (arm_handle_option, arm_target_help,
5772 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5773 (all_architectures): Get most table contents from arm-arches.def.
5774 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5775 arm_selected_tune here.
5776 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5777 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5778 (march=, mcpu=, mtune=): Use Enum and Var.
5779 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5780 (arm.o): Update dependencies.
ecbb6fb7 5781
42821aff 57822011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
5783
5784 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5785 of header_file.
5786 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5787 (write_typed_alloc_defns): Likewise.
5788 (main): Calls write_typed_alloc_defns with output_header.
5789
8d189b3f
VM
57902011-04-08 Vladimir Makarov <vmakarov@redhat.com>
5791
68bc509a 5792 PR inline-asm/48435
8d189b3f
VM
5793 * ira-color.c (setup_profitable_hard_regs): Add comments.
5794 Don't take prohibited hard regs into account.
5795 (setup_conflict_profitable_regs): Rename to
5796 get_conflict_profitable_regs.
5797 (check_hard_reg_p): Check prohibited hard regs.
5798
44f370bf
NF
57992011-04-08 Nathan Froyd <froydnj@codesourcery.com>
5800
5801 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5802 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5803 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5804
483d7ad3
JDA
58052011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5806
5807 PR target/48366
5808 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 5809 move from floating point to shift amount register.
483d7ad3
JDA
5810 (emit_move_sequence): Remove secondary reload support for floating
5811 point to shift amount amount register copies.
5812 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5813 amount register copies.
5814 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5815 register, return false if mode isn't a scalar integer mode.
5816 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5817
97e03fa1
RG
58182011-04-08 Richard Guenther <rguenther@suse.de>
5819
5820 * gimple.c (gimple_call_flags): Remove kludge.
5821
9d40778b
AM
58222011-04-08 Alexander Monakov <amonakov@ispras.ru>
5823
5824 * sel-sched.c (sel_region_init): Move call to
5825 sel_setup_region_sched_flags after setup_current_loop_nest.
5826
19ac7892
AB
58272011-04-08 Andrey Belevantsev <abel@ispras.ru>
5828
5829 PR rtl-optimization/48272
19ac7892
AB
5830 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5831 init_insn_reg_pressure_info. Adjust a caller.
5832 * sched-int.h (init_insn_reg_pressure_info): Declare.
5833 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5834 when sched-pressure is enabled.
5835
0f8c63cc
RG
58362011-04-08 Richard Guenther <rguenther@suse.de>
5837
5838 * gimple.c (gimple_set_modified): Do not queue calls to
5839 MODIFIED_NORETURN_CALLS here ...
5840 * tree-ssa-operands.c (update_stmt_operands): ... but here.
5841
5e5a425e
RG
58422011-04-08 Richard Guenther <rguenther@suse.de>
5843
5844 PR lto/48467
5845 * toplev.c (lang_dependent_init): Do not open asm_out_file
5846 in WPA mode, nor perform debug machinery initialization.
5847 (finalize): Do not unlink asm_out_file in WPA mode.
5848
9bfc434b
RG
58492011-04-08 Richard Guenther <rguenther@suse.de>
5850
5851 * gimple.h (gimple_call_fntype): New function.
5852 (gimple_call_return_type): Use it.
5853 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5854 * gimple-low.c (gimple_check_call_args): Likewise.
5855 * gimple.c (gimple_call_flags): Likewise.
5856 (gimple_call_arg_flags): Likewise.
5857 (gimple_call_return_flags): Likewise.
5858 * tree-cfg.c (verify_gimple_call): Likewise.
5859 (do_warn_unused_result): Likewise.
5860 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5861 * value-prof.c (gimple_ic_transform): Fix fndecl check.
5862
7c1f0b40
DM
58632011-04-08 Dmitry Melnik <dm@ispras.ru>
5864
5865 PR rtl-optimization/48235
5866 * sel-sched.c (code_motion_process_successors): Recompute the last
5867 insn in basic block if control flow changed.
5868 (code_motion_path_driver): Ditto. Recompute the first insn as well.
5869 Update condition for ilist_remove.
5870
ea4d630f
AM
58712011-04-08 Alexander Monakov <amonakov@ispras.ru>
5872
5873 PR rtl-optimization/48302
5874 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5875 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
5876 it to record added preheader blocks.
5877 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
5878 on to sel_add_loop_preheaders.
5879 (sel_region_init): Move call to setup_current_loop_nest after
5880 sel_init_bbs.
5881
07643d76
AM
58822011-04-08 Alexander Monakov <amonakov@ispras.ru>
5883
5884 PR target/48273
5885 * cfgloop.h (loop_has_exit_edges): New helper.
5886 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5887 non-clonable.
5888 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5889 that have no exit edges.
5890
1f3b2b4e
AM
58912011-04-08 Alexander Monakov <amonakov@ispras.ru>
5892
5893 PR rtl-optimization/48442
5894 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
5895 all callers. Adjust assert.
5896
554f1948
JJ
58972011-04-08 Jakub Jelinek <jakub@redhat.com>
5898
5899 PR tree-optimization/48377
5900 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5901 is_packed to true even for types with smaller TYPE_ALIGN than
5902 TYPE_SIZE.
5903
ddf72388
RG
59042011-04-08 Richard Guenther <rguenther@suse.de>
5905
5906 PR bootstrap/48513
5907 * doc/tm.texi: Re-generate.
5908
0c27e2d8
WG
59092011-04-08 Wei Guozhi <carrot@google.com>
5910
5911 PR target/47855
5912 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5913 * config/arm/arm.c (arm_attr_length_push_multi): New function.
5914 * config/arm/arm.md (*push_multi): Change the length computation to
5915 call a C function.
5916
07c5f94e
AS
59172011-04-08 Anatoly Sokolov <aesok@post.ru>
5918
5919 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5920 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5921 * doc/tm.texi: Regenerate.
5922 * system.h (ASM_OUTPUT_BSS): Poison.
5923 * varasm.c (asm_output_bss): Remove function.
5924 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 5925
07c5f94e
AS
5926 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5927 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5928 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5929 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5930 Likewise.
5931 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5932 Likewise.
5933 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5934 Likewise.
5935 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5936
5f2c36e1
JM
59372011-04-07 Joseph Myers <joseph@codesourcery.com>
5938
5939 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5940 EnumValue lines.
5941
39e7722b
JM
59422011-04-07 Joseph Myers <joseph@codesourcery.com>
5943
5944 * config/m68k/m68k.c (m68k_handle_option): Don't handle
5945 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5946 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5947 OPT_mcpu32.
5948 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5949 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5950 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5951 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5952 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5953 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5954 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5955 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5956 options. Don't map other m68k options manually. Don't handle
5957 old-style options as canonical.
5958 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 5959 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 5960
cf103ca4
EB
59612011-04-07 Eric Botcazou <ebotcazou@adacore.com>
5962
5963 * basic-block.h (force_nonfallthru): Move to...
5964 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5965 (force_nonfallthru): ...here.
5966 * cfghooks.c (force_nonfallthru): New function.
5967 * cfgrtl.c (force_nonfallthru): Rename into...
5968 (rtl_force_nonfallthru): ...this.
5969 (commit_one_edge_insertion): Do not set AUX field.
5970 (commit_edge_insertions): Do not discover new basic blocks.
5971 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5972 (cfg_layout_rtl_cfg_hooks): Likewise.
5973 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5974 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
5975 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5976
14431f58
AS
59772011-04-07 Anatoly Sokolov <aesok@post.ru>
5978
5979 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5980 Remove macros.
5981
3729983c
UB
59822011-04-07 Uros Bizjak <ubizjak@gmail.com>
5983
5984 * config/i386/sse.md: Update copyright year.
5985 (avxcvtvecmode): Remove.
5986 (sse_movhlps): Merge with *avx_movhlps.
5987 (sse_movlhps): Merge with *avx_movlhps.
5988 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5989 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5990 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5991 (sse_loadhps): Merge with *avx_loadhps.
5992 (sse_storelps): Merge with *avx_storelps.
5993 (sse_loadlps): Merge with *avx_loadlps.
5994 (sse_movss): Merge with *avx_movss.
5995 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5996 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5997 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5998 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5999 (vec_set<mode>_0): Ditto.
6000 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6001 (sse4_1_insertps): Merge with *avx_insertps.
6002 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6003 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6004 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6005 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6006 (sse2_storehpd): Merge with *avx_storehpd.
6007 (sse2_loadhpd): Merge with *avx_loadhpd.
6008 (sse2_loadlpd): Merge with *avx_loadlpd.
6009 (sse2_movsd): Merge with *avx_movsd.
6010 (*vec_concatv2df): Merge with *vec_concatv2df.
6011
4e626909
JJ
60122011-04-07 Jakub Jelinek <jakub@redhat.com>
6013
6014 PR debug/48343
6015 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 6016 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
6017 (try_combine): Add last_combined_insn parameter, pass it instead of
6018 i3 to propagate_for_debug.
6019
3729983c 60202011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
6021
6022 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6023 to handle MDR <-> data register transfers.
6024 (movhi_internal): Likewise.
6025
20c03367
AM
60262011-04-07 Alan Modra <amodra@gmail.com>
6027
6028 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6029 previous stack info.
6030
bf22920b
TV
60312011-04-07 Tom de Vries <tom@codesourcery.com>
6032
6033 PR target/43920
6034 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
6035 flow_find_cross_jump. Swap variables to implement backward replacement.
6036 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6037
823918ae
TV
60382011-04-07 Tom de Vries <tom@codesourcery.com>
6039
6040 PR target/43920
6041 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
6042 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
6043 and bb2.
6044 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6045 src1 or src2. Redirect edges to the last basic block. Update
6046 frequency and count on multiple basic blocks in case of fallthru.
823918ae 6047
472c95f5
TV
60482011-04-07 Tom de Vries <tom@codesourcery.com>
6049
6050 PR target/43920
6051 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6052 function.
3729983c
UB
6053 (old_insns_match_p): Change return type. Replace return false/true
6054 with return dir_none/dir_both. Use can_replace_by.
6055 (flow_find_cross_jump): Add dir_p parameter. Init replacement
6056 direction from dir_p. Register replacement direction in dir, last_dir
6057 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
6058 merge_dir. Return replacement direction in dir_p.
6059 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6060 return type of old_insns_match_p.
6061 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6062 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6063 flow_find_cross_jump.
6064 * basic-block.h (enum replace_direction): New type.
6065 (flow_find_cross_jump): Add parameter to declaration.
6066
a95d4000
UB
60672011-04-06 Uros Bizjak <ubizjak@gmail.com>
6068
6069 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6070 (AVXMODEDCVTPS2DQ): Ditto.
6071 (VEC_FLOAT_MODE): Ditto.
6072 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
6073 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6074 (<any_logic:code><mode>3): Use VF mode iterator.
6075 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6076 Use VF mode iterator.
6077 (copysign<mode>3): Use VF mode iterator.
6078 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
6079 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6080 (*<any_logic:code><MODEF:mode>3): Merge with
6081 *avx_<any_logic:code><MODEF:mode>3.
6082 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6083 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6084 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6085 (avx_cvtdq2ps<avxmodesuffix>): Remove.
6086 (sse2_cvtdq2ps): Use %v modifier.
6087 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6088 (avx_cvtps2dq<avxmodesuffix>): Remove.
6089 (sse2_cvtps2dq): Use %v modifier.
6090 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6091 (avx_cvttps2dq<avxmodesuffix>): Remove.
6092 (sse2_cvttps2dq): Use %v modifier.
6093 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6094 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6095 (sse2_cvtsd2siq): Fix insn template.
6096 (sse2_cvtsd2siq_2): Ditto.
6097 (sse2_cvttsd2siq): Ditto.
6098 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6099 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6100
ad01c437
JM
61012011-04-06 Joseph Myers <joseph@codesourcery.com>
6102
6103 * gcov-io.c: Use GCC Runtime Library Exception.
6104
fe846284
JJ
61052011-04-06 Jakub Jelinek <jakub@redhat.com>
6106
6107 PR debug/48466
6108 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6109 as base_reg whatever register reg has been eliminated to, instead
6110 of hardcoding STACK_POINTER_REGNUM.
6111
acce4e77
JM
61122011-04-06 Joseph Myers <joseph@codesourcery.com>
6113
6114 * doc/tm.texi.in: Document C target hooks as separate from general
6115 target hooks.
6116 * doc/tm.texi: Regenerate.
6117 * genhooks.c (struct hook_desc): Add docname field.
6118 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
6119 docname field.
6120 (hook_array): Include c-target.def.
6121 (emit_documentation): Use docname field in output.
6122 (emit_init_macros): Take docname argument. Only emit definitions
6123 for hooks matching docname.
6124 (main): Expect additional arguments in all cases. Pass argument
6125 to emit_init_macros.
6126 * target.def: Move initial macro definitions and comments to
6127 target-hooks-macros.h.
6128 (gcc_targetcm): Move to c-family/c-target.def.
6129 * target.h (targetcm): Move declaration to c-family/c-target.h.
6130 * targhooks.c (default_handle_c_option): Move to
6131 c-family/c-opts.c.
6132 * targhooks.h (default_handle_c_option): Move declaration to
6133 c-family/c-common.h.
6134 * target-hooks-macros.h: New file.
6135 * config.gcc (target_has_targetcm): Define and use to add to
6136 c_target_objs and cxx_target_objs.
6137 * config/default-c.c: New file.
6138 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6139 of target.h and target-def.h.
6140 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6141 (darwin_objc_construct_string, darwin_cfstring_ref_p,
6142 darwin_check_cfstring_format_arg): Make static.
6143 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6144 TARGET_STRING_OBJECT_REF_TYPE_P,
6145 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6146 * config/darwin-protos.h (darwin_objc_construct_string,
6147 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6148 declare.
6149 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6150 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 6151 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
6152 * config/t-darwin (darwin-c.o): Update dependencies.
6153 * system.h (TARGET_HAS_TARGETCM): Poison.
6154 * Makefile.in (TARGET_H): Update.
6155 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6156 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6157 (default-c.o): New target.
6158 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 6159 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
6160 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
6161 c-target.def.
6162 (build/genhooks.o): Update dependencies.
6163
275b4baa 61642011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 6165
275b4baa
RG
6166 * ipa-inline.c (enum inlining_mode): Remove.
6167 (cgraph_flatten): Use some other token.
6168 (cgraph_edge_early_inlinable_p): New function, split out from ...
6169 (cgraph_perform_always_inlining): New function, split out from ...
6170 (cgraph_decide_inlining_incrementally): ... here.
6171 (cgraph_mark_inline_edge): Adjust.
6172 (cgraph_early_inlining): Re-structure.
6173 (pass_early_inline): Require SSA form.
6174
f15b8bdf 61752011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
6176 Julian Brown <julian@codesourcery.com>
6177 Mark Shinwell <shinwell@codesourcery.com>
6178
6179 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6180 LO_REGS only for Thumb-1.
6181 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6182 be used in short instructions when optimising for size on Thumb-2.
6183
516426da
EB
61842011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6185
6186 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6187 associated with user returns to be preserved.
6188
96621ebf
TG
61892011-04-06 Tristan Gingold <gingold@adacore.com>
6190
f15b8bdf
EB
6191 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6192 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
6193 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6194 if XCOFF_DEBUGGING_INFO.
6195
07c0852e
UB
61962011-04-06 Uros Bizjak <ubizjak@gmail.com>
6197
6198 * config/i386/i386.md (attribute isa): New.
6199 (attribute enabled): New.
6200 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6201 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6202 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6203 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6204 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6205 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6206 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6207 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6208
6209 * config/i386/sse.md (VF): New mode iterator.
6210 (VF1): Ditto.
6211 (VF2): Ditto.
6212 (VF_128): Ditto.
6213 (SSEMODEF4): Remove.
6214 (attribute sse): Handle V8SF and V4DF modes.
6215 (<absneg:code><mode>2): Use VF mode iterator.
6216 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
6217 mode iterator.
6218 (<plusminus_insn><mode>3): Use VF mode iterator.
6219 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6220 Use VF mode iterator.
6221 (<sse>_vm<plusminus_insn><mode>3): Merge with
6222 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
6223 (mul<mode>3): Use VF mode iterator.
6224 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
6225 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
6226 mode iterator.
6227 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6228 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6229 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
6230 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
6231 mode iterator.
6232 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6233 Use VF1 mode iterator.
6234 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6235 (sqrt<VF2:mode>2): New expander.
6236 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6237 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6238 and sqrtv2df2. Use VF mode iterator.
6239 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
6240 mode iterator.
6241 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6242 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6243 Use VF1 mode iterator.
6244 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6245 (<smaxmin:code><mode>3): Use VF mode iterator.
6246 (*<smaxmin:code><mode>3_finite): Merge with
6247 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
6248 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6249 (<sse>_vm<smaxmin:code><mode>2): Merge with
6250 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
6251 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
6252 mode iterator.
6253 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
6254 mode iterator.
6255 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6256 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6257 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6258 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6259 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
6260 VF mode iterator.
6261 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6262 Use VF_128 mode iterator.
6263 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
6264 mode iterator.
6265 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
6266 VF_128 mode iterator.
6267 (vcond<mode>): Use VF mode iterator.
6268 * config/i386/predicates.md (sse_comparison_operator): Merge with
6269 avx_comparison_float_operator. Do not declare as special_predicate.
6270 * config/i386/i386.c (struct builtin_description): Update for renamed
6271 compare patterns.
6272 (ix86_expand_args_builtin): Ditto.
6273 (ix86_expand_sse_compare_mask): Ditto.
6274
ff5d142c
RG
62752011-04-06 Richard Guenther <rguenther@suse.de>
6276
6277 * tree-inline.c (estimate_num_insns): For calls simply account
6278 for all passed arguments and a used return value.
6279
d7d1d041 62802011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 6281
d7d1d041
RG
6282 PR tree-optimization/47663
6283 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6284 call_stmt_time fields.
6285 (cgraph_edge_inlinable_p): Declare.
6286 (cgraph_edge_recursive_p): New inline function.
6287 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6288 (cgraph_clone_edge): Copy it.
6289 * ipa-inline.c (cgraph_estimate_edge_time): New function.
6290 Account for call stmt time.
6291 (cgraph_estimate_time_after_inlining): Take edge argument.
6292 (cgraph_estimate_edge_growth): Account call stmt size.
6293 (cgraph_estimate_size_after_inlining): Take edge argument.
6294 (cgraph_mark_inline_edge): Adjust.
6295 (cgraph_check_inline_limits): Likewise.
6296 (cgraph_recursive_inlining_p): Remove.
6297 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6298 (cgraph_decide_recursive_inlining): Take edge argument and
6299 adjust.
6300 (cgraph_decide_inlining_of_small_functions): Do not avoid
6301 diags for recursive inlining here.
6302 (cgraph_flatten): Adjust.
6303 (cgraph_decide_inlining_incrementally): Likewise.
6304 (estimate_function_body_sizes): Remove call cost handling.
6305 (compute_inline_parameters): Initialize caller edge call costs.
6306 (cgraph_estimate_edge_growth): New function.
6307 (cgraph_estimate_growth): Use it.
6308 (cgraph_edge_badness): Likewise.
6309 (cgraph_check_inline_limits): Take an edge argument.
6310 (cgraph_decide_inlining_of_small_functions): Adjust.
6311 (cgraph_decide_inlining): Likewise.
6312 * tree-inline.c (estimate_num_insns): Only account for call
6313 return value if it is used.
6314 (expand_call_inline): Avoid diagnostics on recursive inline
6315 functions here.
6316 * lto-cgraph.c (lto_output_edge): Output edge call costs.
6317 (input_edge): Input edge call costs.
6318
2feb95f7
RO
63192011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6320
6321 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6322
26fbd9c2
JW
63232011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6324
6325 * doc/invoke.texi (Spec Files): Fix typo.
6326
694dc0ca
EB
63272011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6328
6329 * profile.c (branch_prob): Move declaration of local variable. Remove
6330 obsolete ??? comment. Expand the location explicitly instead of using
6331 the LOCATION_FILE and LOCATION_LINE macros.
6332
4925d0d5
WG
63332011-04-06 Wei Guozhi <carrot@google.com>
6334
6335 PR target/47855
6336 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6337 (arm_cond_branch): Likewise.
6338 (arm_cond_branch_reversed): Likewise.
6339 (arm_jump): Likewise.
6340 (push_multi): Likewise.
6341 * config/arm/constraints.md (Py): New constraint.
6342
f55dfa2f
NF
63432011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6344
6345 PR bootstrap/48471
6346 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6347 Move these...
6348 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6349 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6350 #ifdef DBX_DEBUGGING_INFO.
6351
fca96842
BS
63522011-04-05 Bernd Schmidt <bernds@codesourcery.com>
6353
6354 PR bootstrap/48403
6355 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6356 if old and new states differ.
6357
30b83e38
JM
63582011-04-05 Joseph Myers <joseph@codesourcery.com>
6359
6360 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6361 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6362 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6363 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6364 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6365 mcfv4e): Use Alias.
6366 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6367 ColdFire options to -mcpu= options.
6368
277a9aa5
JL
63692011-04-05 Jeff Law <law@redhat.com>
6370
6371 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6372 check if BB is a successor of LOOP->header and return
6373 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6374
c1e2610e
SB
63752011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6376
6377 * cprop.c (struct reg_use): Remove.
6378 (reg_use_table): Make an array of RTX.
6379 (find_used_regs, constprop_register, local_cprop_pass,
6380 bypass_block): Simplify users of reg_use_table.
6381 (cprop_insn): Likewise. Iterate if copy propagation succeeded
6382 on one of the uses found by find_used_regs.
6383
e532f586
NF
63842011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6385
6386 PR bootstrap/48469
6387 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6388 declaration.
6389
3fb7c055
NF
63902011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6391
6392 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6393 as an rtx.
6394 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6395
b71b43d9
SB
63962011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6397
6398 PR middle-end/48441
6399 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6400
b405b274
NF
64012011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6402
6403 * combine.c: Include obstack.h.
6404 (struct insn_link): Define.
6405 (uid_log_links): Adjust type.
6406 (FOR_EACH_LOG_LINK): New macro.
6407 (insn_link_obstack): Declare.
6408 (alloc_insn_link): Define.
6409 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
6410 type of link variables.
6411 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6412 (try_combine, record_promoted_values, distribute_notes): Likewise.
6413 (distribute_links): Likewise. Tweak prototype.
6414 (clear_log_links): Delete.
6415 (adjust_for_new_dest): Call alloc_insn_link.
6416 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6417
6409abe3
NF
64182011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6419
6420 * gcse.c (modify_mem_list): Convert to an array of VECs.
6421 (canon_modify_mem_list, compute_transp): Tweak formatting.
6422 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
6423 (load_killed_in_block_p): Likewise.
6424 (record_last_mem_set_info): Likewise.
6425 (clear_modify_mem_tables): Likewise.
6426
170d8157
TV
64272011-04-05 Tom de Vries <tom@codesourcery.com>
6428
6429 PR middle-end/48461
6430 * function.c (emit_use_return_register_into_block): Only define if
6431 HAVE_return.
6432
c5911a55
EB
64332011-04-05 Eric Botcazou <ebotcazou@adacore.com>
6434
6435 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6436
abd016e6
JM
64372011-04-05 Joseph Myers <joseph@codesourcery.com>
6438
6439 * config/rx/rx-opts.h: New.
6440 * config/rx/rx.c (rx_cpu_type): Remove.
6441 (rx_handle_option): Don't assert that global structures are in
6442 use. Access variables via opts pointer. Defer most handling of
6443 OPT_mint_register_. Use error_at.
6444 (rx_option_override): Handle deferred OPT_mint_register_ here.
6445 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6446 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6447 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6448 (rx_cpu_types): New Enum and EnumValue entries.
6449 (mint-register=): Use Defer and use Var accordingly.
6450
1ed13f83
NF
64512011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6452
6453 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6454 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6455 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6456 Move these...
6457 (debug_free_queue, debug_nesting, symbol_queue_index):
6458 ...and these...
6459 * dbxout.c: ...to here. Make static.
6460
6ce1edcf
NF
64612011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6462
6463 * gcse.c (modify_pair): Define. Define a VEC of it.
6464 (canon_modify_mem_list): Convert to an array of VECs.
6465 (free_insn_expr_list_list): Delete.
6466 (clear_modify_mem_tables): Call VEC_free instead.
6467 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6468 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6469 (canon_list_insert, compute_transp): Likewise.
6470
c201ac94
TV
64712011-04-05 Tom de Vries <tom@codesourcery.com>
6472
6473 PR target/43920
6474 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6475 for size.
6476
4c029f40
TV
64772011-04-05 Tom de Vries <tom@codesourcery.com>
6478
6479 PR target/43920
6480 * function.c (emit_use_return_register_into_block): New function.
6481 (thread_prologue_and_epilogue_insns): Use
6482 emit_use_return_register_into_block.
6483
2a562b0a
TV
64842011-04-05 Tom de Vries <tom@codesourcery.com>
6485
6486 PR target/43920
6487 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6488 insn.
6489
0248bceb
TV
64902011-04-05 Tom de Vries <tom@codesourcery.com>
6491
6492 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6493
ffa94123
YZ
64942011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
6495
798dd0ba
UB
6496 * config/arm/arm.md (define_constants for unspec): Replace with
6497 define_c_enum.
6498 (define_constants for unspecv): Replace with define_c_enum.
6499 * config/arm/neon.md (define_constants for unspec): Replace with
6500 define_c_enum.
ffa94123 6501
3b8f9b46
RH
65022011-04-04 Richard Henderson <rth@redhat.com>
6503
720cf80f 6504 PR bootstrap/48400
3b8f9b46
RH
6505 * dwarf2out.c (output_line_info): Always emit line info from
6506 at least one section.
6507 (dwarf2out_init): Create text_section_line_info here ...
6508 (set_cur_line_info_table): ... not here.
6509
720cf80f 65102011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
6511
6512 PR target/48380
6513 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 6514 not called.
e5b0e1ca 6515
720cf80f 6516 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 6517
196565d4
SB
65182011-04-04 Steven Bosscher <steven@gcc.gnu.org>
6519
b77f9eab
SB
6520 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6521 (expr_equiv_p): Remove.
6522 (insert_set_in_table): Look at <dest, src> pair instead of expr.
6523 (hash_scan_set): Update call to insert_set_in_table.
6524 (dump_hash_table): Dump <dest, src> pair.
6525 (lookup_set): Simplify. Lookup <dest, src> pair.
6526 (compute_transp): Remove, fold heavily simplified code into...
6527 (compute_local_properties): ...here. Expect COMP and TRANSP
6528 unconditionally.
6529 (find_avail_set): Take set directly from struct expr.
6530 (find_bypass-set): Likewise.
6531 (bypass_block): Likewise.
6532 (cprop_insn): Likewise. Remove redundant INSN_P test.
6533
384d7a55
SB
6534 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6535 checks on form of COND from find_implicit_sets to here.
6536 (find_implicit_sets): Cleanup control flow. Split critical edges
6537 if it exposes implicit sets. Allocate/resize implicit_sets as
6538 necessary.
6539 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6540 changed something. Run df_analyze after find_implicit_sets if any
6541 edges were split. Do not allocate implicit_sets here.
6542
3084ce69
SB
6543 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6544 (gcse_obstack): Renamed to cprop_obstack.
6545 (GNEW, GNEWVEC, GNEWVAR): Remove.
6546 (gmalloc): Remove.
6547 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6548 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6549 (gcse_alloc): Likewise, and rename to cprop_alloc.
6550 (alloc_gcse_men, free_gcse_mem): Remove.
6551 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6552 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6553 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6554
196565d4
SB
6555 * cprop.c (oprs_not_set_p): Remove.
6556 (mark_set, mark_clobber): Remove.
6557 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6558 (reg_not_set_p): New function.
6559 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6560 (cprop_insn): Likewise.
6561 (cprop_jump): Use FOR_EACH_EDGE.
6562
9b69cf83
BS
65632011-04-04 Bernd Schmidt <bernds@codesourcery.com>
6564
6565 PR bootstrap/48403
6566 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6567 (rank_for_schedule): Use scheduled_insns vector instead of
6568 last_scheduled_insn.
6569 (ok_for_early_queue_removal): Likewise.
6570 (queue_to_ready): Search forward in nonscheduled_insns_begin if
6571 we have a dbg_cnt.
6572 (choose_ready): Likewise.
6573 (commit_schedule): Use VEC_iterate.
6574 (schedule_block): Initialize nonscheduled_insns_begin. If we have
6575 a dbg_cnt, use it and ensure the first insn is in the ready list.
6576 (haifa_sched_init): Allocate scheduled_insns.
6577 (sched_extend_ready_list): Don't allocate it; reserve space.
6578 (haifa_sched_finish): Free it.
6579
24f48c2f
JM
65802011-04-04 Joseph Myers <joseph@codesourcery.com>
6581
6582 * optc-gen.awk: Always remove type from Variable entry before
6583 recording in var_seen.
6584
8effe856
EB
65852011-04-04 Eric Botcazou <ebotcazou@adacore.com>
6586
6587 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6588 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6589 call to tidy_fallthru_edges.
6590
413519ae
JM
65912011-04-04 Joseph Myers <joseph@codesourcery.com>
6592
6593 * doc/options.texi (ToLower): Document.
3729983c 6594 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
6595 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6596 * opts.h (cl_option): Add cl_tolower field.
6597 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6598 arguments with lowercase strings.
6599 * config/rx/rx.opt (mcpu=): Add ToLower.
6600 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6601 argument.
6602
7d34a1b0
RS
66032011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6604
6605 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6606
c30e7434
RS
66072011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6608
6609 * config/vax/vax.c: Include reload.h.
6610
112a861d
AS
66112011-04-04 Anatoly Sokolov <aesok@post.ru>
6612
6613 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6614 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6615 (sparc_preferred_reload_class): New function.
6616
e8c6bb74
JJ
66172011-04-04 Jakub Jelinek <jakub@redhat.com>
6618
2aeaa366 6619 PR debug/48401
e8c6bb74
JJ
6620 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6621 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6622
2c081caf
NF
66232011-04-03 Nathan Froyd <froydnj@codesourcery.com>
6624
6625 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6626 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6627
53802f27
AS
66282011-04-03 Anatoly Sokolov <aesok@post.ru>
6629
6630 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6631 (ASM_OUTPUT_ALIGNED_BSS): Define.
6632
e89964e3
MM
66332011-04-03 Michael Matz <matz@suse.de>
6634
6635 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6636 and next_slot members.
6637 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6638 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6639 (lto_streamer_cache_append): Declare.
6640 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6641 unsigned index, remove offset parameter, ensure that we append
6642 or update existing entries.
6643 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6644 parameter, update next_slot for append.
6645 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6646 parameter.
6647 (lto_streamer_cache_insert_at): Likewise.
6648 (lto_streamer_cache_append): New function.
6649 (lto_streamer_cache_lookup): Use unsigned index.
6650 (lto_streamer_cache_get): Likewise.
6651 (lto_record_common_node): Don't test tree_node_can_be_shared.
6652 (preload_common_node): Adjust call to lto_streamer_cache_insert.
6653 (lto_streamer_cache_delete): Don't free offsets member.
6654 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6655 (lto_output_string_with_length): Use lto_output_data_stream.
6656 (lto_output_tree_header): Remove ix parameter, don't write it.
6657 (lto_output_builtin_tree): Likewise.
6658 (lto_write_tree): Adjust callers to above, don't track and write
6659 offset, write unsigned index.
6660 (output_unreferenced_globals): Don't emit all global vars.
6661 (write_global_references): Use unsigned indices.
6662 (lto_output_decl_state_refs): Likewise.
6663 (write_symbol): Likewise.
6664 * lto-streamer-in.c (lto_input_chain): Move earlier.
6665 (input_function): Use unsigned index.
6666 (input_alias_pairs): Don't read and then ignore all global vars.
6667 (lto_materialize_tree): Remove ix_p parameter, don't read index,
6668 don't pass it back, use lto_streamer_cache_append.
6669 (lto_register_var_decl_in_symtab): Use unsigned index.
6670 (lto_register_function_decl_in_symtab): Likewise.
6671 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6672 index.
6673 (lto_get_builtin_tree): Don't read index, use
6674 lto_streamer_cache_append.
6675 (lto_read_tree): Adjust call to lto_materialize_tree.
6676
6677 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6678 don't use function calls in arguments to MIN.
6679
6680 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6681 twice.
6682
6683 * gimple.c (gimple_type_leader_entry): Mark deletable.
6684
b9a5b5b2
AM
66852011-04-03 Alan Modra <amodra@gmail.com>
6686
6687 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6688
ac6a641b
MM
66892011-04-03 Michael Matz <matz@suse.de>
6690
6691 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6692 an integer.
6693 * tree.h (tree_decl_non_common.vindex): Adjust comment.
6694
0038d4e0
MM
66952011-04-03 Michael Matz <matz@suse.de>
6696
e9c18386 6697 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
6698 * gimple-fold.c (canonicalize_constructor_val): Accept being called
6699 without function context.
6700 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6701 current_function_decl and cfun.
6702
91f2fae8
MM
67032011-04-03 Michael Matz <matz@suse.de>
6704
6705 * tree.c (decl_init_priority_insert): Don't create entry for
6706 default priority.
6707 (decl_fini_priority_insert): Ditto.
6708 (fields_compatible_p, find_compatible_field): Remove.
6709 * tree.h (fields_compatible_p, find_compatible_field): Remove.
6710 * gimple.c (gimple_compare_field_offset): Adjust block comment.
6711
da29e070
EB
67122011-04-03 Eric Botcazou <ebotcazou@adacore.com>
6713
6714 * combine.c (try_combine): Remove useless local variable.
6715
4979c28b 67162011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 6717 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
6718
6719 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6720 non-variable offsets and compare the remaining bases of the two
6721 accesses instead of looking for exact same data-ref.
6722
b4ddcaee
KT
67232011-04-02 Kai Tietz <ktietz@redhat.com>
6724
f90298e1
KT
6725 PR target/48416
6726 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6727
b4ddcaee
KT
6728 * i386.c (ix86_is_msabi_thiscall): New helper function.
6729 (ix86_is_type_thiscall): New helper function.
6730 (ix86_comp_type_attributes): Handle thiscall for method-functions
6731 special.
6732 (init_cumulative_args): Likewise.
6733 (find_drap_reg): Likewise.
6734 (ix86_static_chain): Likewise.
6735 (x86_this_parameter): Likewise.
6736 (x86_output_mi_thunk): Likewise.
6737
2a9d769a 67382011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
6739 Nicolas Setton <setton@adacore.com>
6740 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
6741
6742 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6743 (add_gnat_descriptive_type_attribute): New function.
6744 (gen_array_type_die): Call it.
6745 (gen_enumeration_type_die): Likewise.
6746 (gen_struct_or_union_type_die): Likewise.
6747 (modified_type_die): Likewise.
6748 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6749 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6750 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6751
15a03a11
JJ
67522011-04-01 Jakub Jelinek <jakub@redhat.com>
6753
6754 PR bootstrap/48148
6755 * dwarf2out.c (resolve_addr): Don't call force_decl_die
6756 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6757
6758 Revert:
6759 2011-03-17 Richard Guenther <rguenther@suse.de>
6760
6761 PR bootstrap/48148
6762 * lto-cgraph.c (input_overwrite_node): Clear the abstract
6763 origin for decls in other ltrans units.
6764 (input_varpool_node): Likewise.
6765
19228b93
JJ
67662011-04-01 Jakub Jelinek <jakub@redhat.com>
6767
6768 PR middle-end/48335
6769 * expr.c (expand_assignment): Handle all possibilities
6770 if TO_RTX is CONCAT.
e9c18386 6771 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
6772 (store_split_bit_field): If SUBREG_REG (op0) or
6773 op0 itself has smaller mode than word, return it
6774 for offset 0 and const0_rtx for out-of-bounds stores.
6775 If word is const0_rtx, skip it.
6776
88cb339e
N
67772011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
6778
6779 * config/h8300/h8300.c (print_operand_address): Rename to...
6780 (h8300_print_operand_address): ...this. Make static. Adjust comments.
6781 Call h8300_print_operand and h8300_print_operand_address instead of
6782 print_operand and print_operand_address. Declare.
6783 (print_operand): Renake to...
6784 (h8300_print_operand): ...this. Make static. Adjust comments.
6785 Call h8300_print_operand instead of print_operand. Declare.
6786 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6787 (h8300_register_move_cost): Likewise.
6788 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6789 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6790 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6791 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6792 * config/h8300/h8300-protos.h (print_operand): Delete.
6793 (print_operand_address): Delete.
6794
756d6ee9
RH
67952011-04-01 Richard Henderson <rth@redhat.com>
6796
6797 PR 48400
6798 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6799 in strict mode before dwarf4. Re-order tests to early out
6800 before switching sections.
6801
ceaaaeab
NF
68022011-04-01 Nathan Froyd <froydnj@codesourcery.com>
6803
6804 * config/h8300/constraints.md: New file.
6805 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
6806 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6807 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6808 * config/h8300/predicates.md (bit_operand): Likewise.
6809 (incdec_operand): Use satisfies_constraint_M and
6810 satisfies_constraint_O. Don't use C code block.
6811 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6812 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6813 (compute_mov_length): Use satisfies_constraint_G.
6814 (fix_bit_operand): Use satisfies_constraint_U.
6815 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6816 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6817 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6818 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6819 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6820 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6821 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6822 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6823 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6824 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6825 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6826 (EXTRA_MEMORY_CONSTRAINT): Delete.
6827
08ae38e0
AP
68282011-04-01 Andrew Pinski <pinskia@gmail.com>
6829 Michael Meissner <meissner@linux.vnet.ibm.com>
6830
6831 PR target/48262
6832 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6833 operands, as per the specifications.
6834
6835 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6836 (vec_extract_evenv4sf): Ditto.
6837 (vec_extract_evenv8hi): Ditto.
6838 (vec_extract_evenv16qi): Ditto.
6839 (vec_extract_oddv4si): Ditto.
6840
bdb0b0f6
MW
68412011-03-31 Mark Wielaard <mjw@redhat.com>
6842
6843 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6844 high_pc attribute if the CU has no associated code. Only output
6845 DW_AT_entry_pc for CU if not generating strict dwarf and
6846 dwarf_version < 4.
6847
722279e4
BS
68482011-04-01 Bernd Schmidt <bernds@codesourcery.com>
6849
6850 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6851 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6852 out of ...
6853 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6854 * final.c (final_start_function): Call the new function rather
6855 than using a NULL argument for dwarf2out_frame_debug.
6856
c5dd277d
BS
6857 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6858 that contains the prologue.
6859
ec4efea9
BS
6860 * haifa-sched.c (queue_insn): New arg REASON. All callers
6861 changed. Print it in debugging output.
6862
2a6a0d80
BS
6863 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6864
86014d07
BS
6865 * sched-ebb.c (begin_schedule_ready): Remove second argument.
6866 Split most of the code into...
6867 (begin_move_insn): ... here. New function.
6868 (ebb_sched_info): Add a pointer to it.
6869 * haifa-sched.c (scheduled_insns): New static variable.
6870 (sched_extend_ready_list): Allocate it.
6871 (schedule_block): Use it to record the order of scheduled insns.
6872 Perform RTL changes to move insns only after all scheduling
6873 decisions have been made.
6874 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6875 begin_move_insn field.
6876 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6877 * sched-int.h (struct haifa_sched_info): Remove second argument
6878 from begin_schedule_ready hook. Add new member begin_move_insn.
6879 * sched-rgn.c (begin_schedule_ready): Remove second argument.
6880 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6881
9d701248
BS
6882 * haifa-sched.c (prune_ready_list): New function, broken out of
6883 schedule_block.
6884 (schedule_block): Use it.
6885
1ca1dad5
UW
68862011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6887
6888 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6889
49568e45
KT
68902011-04-01 Kai Tietz <ktietz@redhat.com>
6891
6892 * config.gcc (*-*-mingw*): Allow as option the
6893 posix threading model.
07c0852e 6894 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
6895 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6896 definition.
6897 (CPP_SPEC): Add pthread/no-pthread handling.
6898 (LIB_SPEC): Likewise.
6899 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6900 (LIB_SPEC): Likewise.
6901 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6902 flag to pass -pthread option for shared libgcc build.
6903 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6904 for shared libgcc build.
6905 * config/i386/t-mingw-pthread: New file.
6906 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6907 New define to enable use of library pthread by default.
6908 * config/i386/mingw.opt (pthread): New driver option.
6909 (no-pthread): New driver option.
e9c18386 6910 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
6911 * config/i386/mingw-w64.opt: Likewise.
6912
748f7574 69132011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
6914
6915 * c-decl.c (grokdeclarator): Fix formatting.
6916
f04713ee
RS
69172011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6918
6919 * expr.c (emit_block_move_via_movmem): Use n_generator_args
6920 instead of n_operands.
6921 (set_storage_via_setmem): Likewise.
6922 * optabs.c (maybe_gen_insn): Likewise.
6923 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6924 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6925 (mips_expand_builtin_direct): Likewise.
6926 * config/spu/spu.c (expand_builtin_args): Likewise.
6927
b29387ee
RS
69282011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6929
6930 * recog.h (insn_data_d): Add n_generator_args.
6931 * genoutput.c (data): Likewise.
6932 (output_insn_data): Print it.
6933 (max_opno, num_dups): Delete.
6934 (scan_operands): Just fill in "d->operand[...]".
6935 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6936
e792559a
RS
69372011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6938
6939 * gensupport.h (pattern_stats): New structure.
6940 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6941 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6942 (max_operand_1, max_operand_vec): Delete.
6943 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6944
e8110d6f
NF
69452011-03-31 Nathan Froyd <froydnj@codesourcery.com>
6946
6947 * emit-rtl.c (emit_pattern_after_setloc): New function.
6948 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6949 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6950 (emit_pattern_after): New function.
6951 (emit_insn_after, emit_jump_insn_after): Call it.
6952 (emit_call_insn_after, emit_debug_insn_after): Likewise.
6953 (emit_pattern_before_setloc): New function.
6954 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6955 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6956 Likewise.
6957 (emit_pattern_before): New function.
6958 (emit_insn_before, emit_jump_insn_before): Call it.
6959 (emit_call_insn_before, emit_debug_insn_before): Likewise.
6960
576f85f1
RH
69612011-03-31 Richard Henderson <rth@redhat.com>
6962
6963 * dwarf2out.c (dw_separate_line_info_ref): Remove.
6964 (dw_separate_line_info_entry): Remove.
6965 (enum dw_line_info_opcode): New.
6966 (dw_line_info_entry): Use it.
6967 (dw_line_info_table, dw_line_info_table_p): New.
6968 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6969 (line_info_table, line_info_label_num): Remove.
6970 (line_info_table_in_use): Remove.
6971 (separate_line_info_table): Remove.
6972 (separate_line_info_table_allocated): Remove.
6973 (separate_line_info_table_in_use): Remove.
6974 (LINE_INFO_TABLE_INCREMENT): Remove.
6975 (line_info_label_num): New.
6976 (cur_line_info_table): New.
6977 (text_section_line_info, cold_text_section_line_info): New.
6978 (separate_line_info): New.
6979 (SEPARATE_LINE_CODE_LABEL): Remove.
6980 (print_dwarf_line_table): Remove.
6981 (debug_dwarf): Don't dump it.
6982 (output_one_line_info_table): New.
6983 (output_line_info): Use it.
6984 (new_line_info_table): New.
6985 (set_cur_line_info_table): New.
6986 (dwarf2out_switch_text_section): Use it.
6987 (dwarf2out_begin_function): Likewise.
6988 (push_dw_line_info_entry): New.
6989 (dwarf2out_source_line): Rewrite for new line info tables.
6990 (dwarf2out_init): Remove dead initailizations.
6991
300d83d9
JM
69922011-03-31 Joseph Myers <joseph@codesourcery.com>
6993
6994 * opts.h (cl_option): Add comments to fields. Add bit-fields for
6995 various flags.
6996 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6997 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6998 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6999 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7000 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7001 * opt-functions.awk (flag_init, switch_bit_fields): New.
7002 (switch_flags): Don't handle flags moved to bit-fields. Don't
7003 generate CL_MISSING_OK or CL_SAVE.
7004 * optc-gen.awk: Update to generate bit-field output as well as
7005 flags field.
7006 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7007 bit-field instead of CL_REJECT_DRIVER flag.
7008 * opts-common.c (generate_canonical_option,
7009 decode_cmdline_option): Use bit-fields instead of CL_* flags.
7010 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7011 instead of CL_REJECT_NEGATIVE flag.
7012 * toplev.c (print_switch_values): Use cl_report bit-field instead
7013 of CL_REPORT flag.
7014
d4d73ce2
EB
70152011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7016
7017 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7018 a zero minimum index only if it is redundant.
7019
b8faca75
VM
70202011-03-31 Vladimir Makarov <vmakarov@redhat.com>
7021
7022 PR rtl-optimization/48381
7023 * ira-color.c (assign_hard_reg): Use hard reg set intersection
7024 instead of ira_class_hard_reg_index for calculating conflicting
7025 hard registers.
7026
7d11cebe
SB
70272011-03-31 Steven Bosscher <steven@gcc.gnu.org>
7028
7029 * cprop.c: Clean up hash table building.
7030 (reg_avail_info): Remove.
7031 (oprs_available_p): Remove.
7032 (record_last_reg_set_info): Remove.
7033 (record_last_set_info): Remove.
7034 (reg_available_p): New function.
7035 (gcse_constant_p): Do not treat unfolded conditions as constants.
7036 (make_set_regs_unavailable): New function.
7037 (hash_scan_set): Simplify with new reg_available_p.
7038 (compute_hash_table_work): Traverse insns stream only once.
7039 Do not compute reg_avail_info. Traverse insns in reverse order.
7040 Record implicit sets after recording explicit sets from the block.
7041
98faf84f
MM
70422011-03-31 Michael Matz <matz@suse.de>
7043
e9c18386 7044 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 7045
f52d97da
AS
70462011-03-31 Anatoly Sokolov <aesok@post.ru>
7047
7048 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7049 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7050 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7051 (h8300_mode_dependent_address_p): New function.
7052 (h8300_get_index): Make static.
7053
e16b6fd0
JL
70542011-03-31 Jeff Law <law@redhat.com>
7055
10c51983
JL
7056 * reload1.c (elimination_effects): Fix typo in recent change.
7057
e9c18386 7058 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
7059 typo potentially leading to null pointer dereference.
7060
7061 * caller-save.c (new_saved_hard_reg): Eliminate return value.
7062 (setup_save_areas): Corresponding changes to avoid useless
7063 assignments.
7064
7065 * jump.c (reversed_comparison_code_parts): Avoid successive return
7066 statements when REVERSE_CONDITION is defined.
7067
7068 * expr.c (expand_assignment): Avoid useless assignments.
7069 (expand_expr_real_1): Likewise.
7070 (expand_expr_real_2): Avoid useless statements.
7071
7072 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7073
7074 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7075
7076 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7077 statements.
7078
7079 * stmt.c (expand_expr_stmt): Avoid useless assignment.
7080
eb1eb914
JM
70812011-03-31 Joseph Myers <joseph@codesourcery.com>
7082
7083 PR target/47109
7084 * doc/tm.texi.in (TARGET_VERSION): Remove.
7085 * doc/tm.texi: Regenerate.
7086 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7087 * collect2.c (main): Don't use TARGET_VERSION.
7088 * mips-tdump.c (main): Don't use TARGET_VERSION.
7089 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 7090 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
7091 * config/rs6000/vxworksae.h: Remove.
7092 * config/alpha/alpha.h (TARGET_VERSION): Remove.
7093 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7094 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7095 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7096 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7097 * config/arm/arm.h (TARGET_VERSION): Remove.
7098 * config/arm/coff.h (TARGET_VERSION): Remove.
7099 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7100 * config/arm/elf.h (TARGET_VERSION): Remove.
7101 * config/arm/freebsd.h (TARGET_VERSION): Remove.
7102 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7103 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7104 * config/arm/pe.h (TARGET_VERSION): Remove.
7105 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7106 * config/arm/semi.h (TARGET_VERSION): Remove.
7107 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7108 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7109 * config/arm/vxworks.h (TARGET_VERSION): Remove.
7110 * config/avr/avr.h (TARGET_VERSION): Remove.
7111 * config/bfin/bfin.h (TARGET_VERSION): Remove.
7112 * config/fr30/fr30.h (TARGET_VERSION): Remove.
7113 * config/frv/frv.h (TARGET_VERSION): Remove.
7114 * config/h8300/h8300.h (TARGET_VERSION): Remove.
7115 * config/i386/cygwin.h (TARGET_VERSION): Remove.
7116 * config/i386/darwin.h (TARGET_VERSION): Remove.
7117 * config/i386/darwin64.h (TARGET_VERSION): Remove.
7118 * config/i386/djgpp.h (TARGET_VERSION): Remove.
7119 * config/i386/freebsd.h (TARGET_VERSION): Remove.
7120 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7121 * config/i386/gnu.h (TARGET_VERSION): Remove.
7122 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7123 * config/i386/i386elf.h (TARGET_VERSION): Remove.
7124 * config/i386/linux.h (TARGET_VERSION): Remove.
7125 * config/i386/linux64.h (TARGET_VERSION): Remove.
7126 * config/i386/lynx.h (TARGET_VERSION): Remove.
7127 * config/i386/mingw32.h (TARGET_VERSION): Remove.
7128 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7129 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7130 * config/i386/netware.h (TARGET_VERSION): Remove.
7131 * config/i386/nto.h (TARGET_VERSION): Remove.
7132 * config/i386/openbsd.h (TARGET_VERSION): Remove.
7133 * config/i386/vxworks.h (TARGET_VERSION): Remove.
7134 * config/ia64/elf.h (TARGET_VERSION): Remove.
7135 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7136 * config/ia64/hpux.h (TARGET_VERSION): Remove.
7137 * config/ia64/linux.h (TARGET_VERSION): Remove.
7138 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7139 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7140 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7141 * config/lm32/lm32.h (TARGET_VERSION): Remove.
7142 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7143 * config/m32c/m32c.h (TARGET_VERSION): Remove.
7144 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7145 * config/m32r/m32r.h (TARGET_VERSION): Remove.
7146 * config/m68k/linux.h (TARGET_VERSION): Remove.
7147 * config/m68k/m68k.h (TARGET_VERSION): Remove.
7148 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7149 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7150 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7151 * config/mep/mep.h (TARGET_VERSION): Remove.
7152 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7153 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7154 * config/mips/iris6.h (MACHINE_TYPE): Remove.
7155 * config/mips/linux.h (TARGET_VERSION): Remove.
7156 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7157 * config/mips/vxworks.h (TARGET_VERSION): Remove.
7158 * config/mmix/mmix.h (TARGET_VERSION): Remove.
7159 * config/mn10300/linux.h (TARGET_VERSION): Remove.
7160 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7161 * config/pa/pa.h (TARGET_VERSION): Remove.
7162 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7163 * config/picochip/picochip.h (TARGET_VERSION): Remove.
7164 * config/rs6000/aix.h (TARGET_VERSION): Remove.
7165 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7166 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7167 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7168 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7169 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7170 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7171 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7172 * config/rs6000/linux.h (TARGET_VERSION): Remove.
7173 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7174 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7175 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7176 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7177 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7178 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7179 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7180 * config/s390/linux.h (TARGET_VERSION): Remove.
7181 * config/s390/s390.h (TARGET_VERSION): Remove.
7182 * config/s390/tpf.h (TARGET_VERSION): Remove.
7183 * config/score/score.h (TARGET_VERSION): Remove.
7184 * config/sh/linux.h (TARGET_VERSION): Remove.
7185 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7186 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7187 * config/sh/sh.h (TARGET_VERSION): Remove.
7188 * config/sh/sh64.h (TARGET_VERSION): Remove.
7189 * config/sh/superh.h (TARGET_VERSION): Remove.
7190 * config/sh/vxworks.h (TARGET_VERSION): Remove.
7191 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7192 * config/sparc/linux.h (TARGET_VERSION): Remove.
7193 * config/sparc/linux64.h (TARGET_VERSION): Remove.
7194 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7195 TARGET_NAME32, TARGET_NAME): Remove.
7196 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7197 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7198 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7199 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7200 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7201 * config/spu/spu.h (TARGET_VERSION): Remove.
7202 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7203 * config/v850/v850.h (TARGET_VERSION): Remove.
7204 * config/vax/linux.h (TARGET_VERSION): Remove.
7205 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7206 * config/xtensa/elf.h (TARGET_VERSION): Remove.
7207 * config/xtensa/linux.h (TARGET_VERSION): Remove.
7208
ace31bca
EB
72092011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7210
7211 PR target/48142
7212 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7213 frame-related from frame-unrelated adjustments to the stack pointer.
7214
76f9db36
JJ
72152011-03-31 Jakub Jelinek <jakub@redhat.com>
7216
7217 * common.opt (fdebug-types-section): Move earlier.
7218 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7219
b7826465
AT
72202011-03-31 Andreas Tobler <andreast@fgznet.ch>
7221
7222 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7223 var.
7224
1290e54c
NF
72252011-03-30 Nathan Froyd <froydnj@codesourcery.com>
7226
7227 * tree.h (CASE_CHAIN): Define.
7228 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7229 (gimple_redirect_edge_and_branch): Likewise.
7230
bddc98e1
VM
72312011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7232
7233 PR middle-end/48367
7234 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7235 calculation.
7236
c865e437
JL
72372011-03-30 Jeff Law <law@redhat.com>
7238
b3750213 7239 * PR bootstrap/48371
c865e437
JL
7240 * reload1.c (reload): Fix botch in last change.
7241
7242 * reload.h (struct reload): Fix typo introduced in last change.
7243
2cdf9574
JM
72442011-03-30 Joseph Myers <joseph@codesourcery.com>
7245
7246 * config/arm/arm.opt (mhard-float, msoft-float): Mark
7247 Undocumented. Remove help text.
7248 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7249 -mhard-float.
7250
666a21a2
JM
72512011-03-30 Joseph Myers <joseph@codesourcery.com>
7252
7253 * doc/options.texi (NegativeAlias): Document.
7254 (Alias): Mention NegativeAlias.
7255 * opt-functions.awk: Handle NegativeAlias.
e9c18386 7256 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
7257 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7258 * opts.h (CL_NEGATIVE_ALIAS): Define.
7259 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7260 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7261 OPT_mspe_.
7262 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7263 Alias entries.
7264 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7265 mno-spe and mno-isel instead of mspe=no and -misel=no.
7266
0fa4e351
MW
72672011-03-29 Mark Wielaard <mjw@redhat.com>
7268
7269 * common.opt (fdebug-types-section): New flag.
7270 * doc/invoke.texi: Document new -fno-debug-types-section flag.
7271 * dwarf2out.c (use_debug_types): New define.
7272 (struct die_struct): Mark die_id with GTY desc use_debug_types.
7273 (print_die): Guard output of type unit signatures using
7274 use_debug_types.
7275 (build_abbrev_table): Replace assert of dwarf_version >= 4
7276 with assert on use_debug_types.
7277 (size_of_die): Likewise.
7278 (unmark_dies): Likewise.
7279 (value_format): Decide AT_ref_external form on use_debug_types.
7280 (output_die): Replace dwarf_version version check guard with
7281 use_debug_types where appropriate.
7282 (modified_type_die): Likewise.
7283 (gen_reference_type_die): Likewise.
7284 (dwarf2out_start_source_file): Likewise.
7285 (dwarf2out_end_source_file): Likewise.
7286 (prune_unused_types_walk_attribs): Likewise.
7287 (dwarf2out_finish): Likewise.
7288
4648deb4
VM
72892011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7290
7291 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7292
4f431835
RS
72932011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7294
7295 PR rtl-optimization/48332
7296 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7297 mode of input operand N and modeN to its actual mode.
7298
f2034d06
JL
72992011-03-30 Jeff Law <law@redhat.com>
7300
7301 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7302 define accessor macro.
7303 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7304 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7305 (reg_equiv_init): Likewise.
7306 (reg_equivs_size): New variable.
7307 (reg_equiv_init_size): Remove.
7308 (allocate_initial_values): Move prototype to here from....
7309 * integrate.h (allocate_initial_values): Remove prototype.
7310 * integrate.c: Include reload.h.
7311 (allocate_initial_values): Corresponding changes.
7312 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7313 (fix_reg_equiv_init, no_equiv): Corresponding changes.
7314 (update_equiv_regs): Corresponding changes.
7315 (ira): Corresponding changes.
7316 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7317 (push_secondary_reload): Corresponding changes.
7318 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7319 (make_memloc, find_reloads_address): Corresponding changes.
7320 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7321 (find_reloads_address_1): Corresponding changes.
7322 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7323 (refers_to_regno_for_reload_p): Corresponding changes.
7324 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7325 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7326 * reload1.c: Include ggc.h.
7327 (grow_reg_equivs): New function.
7328 (replace_pseudos_in, reload): Corresponding changes.
7329 (calculate_needs_all_insns, alter_regs): Corresponding changes.
7330 (eliminate_regs_1, elimination_effects): Corresponding changes.
7331 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7332 (delete_output_reload): Likewise.
7333 * caller-save.c (mark_referenced_regs): Corresponding changes.
7334 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7335 * frv/predicates.md (frv_load_operand): Corresponding changes.
7336 * microblaze/microblaze.c (double_memory_operand): Corresponding
7337 changes.
7338 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7339 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 7340 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
7341 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7342 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7343 changes.
7344 * pa/pa.c (emit_move_sequence): Corresponding changes.
7345 * vax/vax.c (nonindexed_address_p): Corresponding changes.
7346
159b81b0
RS
73472011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7348
7349 PR target/47551
7350 * config/arm/arm.c (coproc_secondary_reload_class): Handle
7351 structure modes. Don't check neon_vector_mem_operand for
7352 vector or structure modes.
7353
a6217191
RS
73542011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7355 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7356
7357 PR target/43590
7358 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7359 operand 1 and reshuffle the operands to match.
7360 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7361
bd837408
CS
73622011-03-30 Christian Schüler <cschueler@gmx.de>
7363
6955d771 7364 PR driver/48208
bd837408 7365 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 7366
6955d771 7367 PR driver/48260
bd837408
CS
7368 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7369 handler function.
7370 * config/darwin.opt: Added '-arch' option.
7371
e9c0470a
NC
73722011-03-30 Nick Clifton <nickc@redhat.com>
7373
7374 * config/rx/rx.md: Add peepholes and patterns to combine
7375 extending loads and simple arithmetic instructions.
7376 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
7377 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7378 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 7379 modes to use pre-decrement and post-increment addressing.
e9c18386 7380 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 7381 addresses.
e9c18386
UB
7382 (rx_print_operand): Add support for %Q. Fix handling of %Q.
7383 (rx_memory_move_cost): Adjust cost of stores.
7384 (rx_adjust_insn_length): New function.
e9c0470a 7385
8a87e7ab
JJ
73862011-03-30 Jakub Jelinek <jakub@redhat.com>
7387
7388 PR c/48305
7389 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7390 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7391 matching arg00/arg01 types.
7392
12486e03
EB
73932011-03-30 Eric Botcazou <ebotcazou@adacore.com>
7394
7395 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7396 last_location to UNKNOWN_LOCATION.
7397
0b99eef6
L
73982011-03-30 H.J. Lu <hongjiu.lu@intel.com>
7399
7400 PR target/48349
7401 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7402 FLOAT_SSE_REGS.
7403
023592aa
JM
74042011-03-30 Joseph Myers <joseph@codesourcery.com>
7405 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7406
7407 PR bootstrap/48337
7408 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7409 Init(PROCESSOR_V7).
7410 (sparc_cpu): Likewise.
7411 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7412 PROCESSOR_V7.
7413
ad3b266b
VM
74142011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7415
7416 PR target/48336
7417 PR middle-end/48342
7418 PR rtl-optimization/48345
7419 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7420 hard regs for given mode from profitable regs when doing secondary
7421 allocation.
7422
633c9126
JL
74232011-03-29 Jeff Law <law@redhat.com>
7424
7425 PR bootstrap/48327
7426 * tree-ssa-threadupdate.c (struct redirection_data): Remove
7427 do_not_duplicate field.
7428 (lookup_redirection_data): Corresponding changes.
7429 (create_duplicates): Always create a template block.
7430 (redirect_edges): Remove code which reused the original block
7431 when it was going to become unreachable code.
7432 (thread_block): Don't set do_not_duplicate field.
7433
eb50f63a
JM
74342011-03-29 Joseph Myers <joseph@codesourcery.com>
7435
7436 * lto-opts.c (register_user_option_p, lto_register_user_option):
7437 Make type argument unsigned.
7438 * lto-streamer.h (lto_register_user_option): Make type argument
7439 unsigned.
7440 * opth-gen.awk: Make CL_* macros unsigned.
7441 * opts-common.c (find_opt): Make lang_mask argument unsigned.
7442 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7443 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7444 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7445 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7446 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7447 (find_opt): Make lang_mask argument unsigned.
7448
76763a6d
VM
74492011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7450
7451 PR rtl-optimization/48331
7452 PR rtl-optimization/48334
7453 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7454 for any used algorithm.
7455
5c82436e
VM
74562011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7457
7458 * ira-conflicts.c (build_object_conflicts): Add unused attribute
7459 to parent_max.
7460
7a81008b
UB
74612011-03-29 Uros Bizjak <ubizjak@gmail.com>
7462
7463 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7464 (alpha_option_override): Don't set alpha_sr_alias_set.
7465 (emit_frame_store_1): Use gen_frame_mem rather than calling
7466 set_mem_alias_set.
7467 (alpha_expand_epilogue): Ditto.
7468
86c8d1f6
IR
74692011-03-29 Ira Rosen <ira.rosen@linaro.org>
7470
7471 PR tree-optimization/48290
7472 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7473 vectorization, check that relevant phis in the basic block after
7474 the inner loop are really inner loop's exit phis.
7475
0d12220f
RS
74762011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
7477
e8cf17e7 7478 PR debug/48190
0d12220f
RS
7479 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7480 (cached_dw_loc_list_def): New structure.
7481 (cached_dw_loc_list): New typedef.
7482 (cached_dw_loc_list_table): New variable.
7483 (cached_dw_loc_list_table_hash): New function.
7484 (cached_dw_loc_list_table_eq): Likewise.
7485 (add_location_or_const_value_attribute): Take a bool cache_p.
7486 Cache the list when the parameter is true.
7487 (gen_formal_parameter_die): Update caller.
7488 (gen_variable_die): Likewise.
7489 (dwarf2out_finish): Likewise.
7490 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7491 while generating debug info for the decl.
7492 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7493 (dwarf2out_init): Initialize cached_dw_loc_list_table.
7494 (resolve_addr): Cache the result of resolving a chain of
7495 location lists.
7496
1756cb66
VM
74972011-03-28 Vladimir Makarov <vmakarov@redhat.com>
7498
7499 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7500 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 7501
1756cb66
VM
7502 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7503 after regstat_init_n_sets_and_refs.
7504
7505 * ira.c: Add more comments at the top.
7506 (setup_stack_reg_pressure_class, setup_pressure_classes):
7507 Add comments how we compute the register pressure classes.
7508 (setup_allocno_and_important_classes): Add more comments.
7509 (setup_class_translate_array, reorder_important_classes)
7510 (setup_reg_class_relations): Add comments.
7511
7512 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
7513 start of the file.
7514
7515 * ira-color.c: Add 2011 to the Copyright line.
7516 (assign_hard_reg): Add more comments.
7517 (improve_allocation): Ditto.
7518
7519 * ira-costs.c: Add 2011 to the Copyright line.
7520 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7521 comments.
7522 (setup_regno_cost_classes_by_mode): Ditto.
7523
7524 Initial patches from ira-improv branch:
7525
7526 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7527
f60c2554 7528 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
7529 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
7530 (ira_create_allocno): Remove initialization of
7531 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7532 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7533 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7534 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7535 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7536 Initialize ALLOCNO_ADD_DATA.
7537 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7538 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7539 ALLOCNO_REG.
7540 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
7541 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7542
7543 * ira.c (ira_reallocate): Remove.
7544 (setup_pressure_classes): Call
7545 ira_init_register_move_cost_if_necessary. Use
7546 ira_register_move_cost instead of ira_get_register_move_cost.
7547 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7548 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7549
7550 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7551 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7552 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7553 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7554 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7555 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7556 Fix formatting.
7a81008b 7557 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
7558 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7559 (struct allocno_color_data): New.
7560 (allocno_color_data_t): New typedef.
7561 (allocno_color_data): New definition.
7562 (ALLOCNO_COLOR_DATA): New macro.
7563 (struct object_color_data): New.
7564 (object_color_data_t): New typedef.
7565 (object_color_data): New definition.
7566 (OBJECT_COLOR_DATA): New macro.
7567 (update_copy_costs, calculate_allocno_spill_cost): Call
7568 ira_init_register_move_cost_if_necessary. Use
7569 ira_register_move_cost instead of ira_get_register_move_cost.
7570 (move_spill_restore, update_curr_costs): Ditto.
7571 (allocno_spill_priority): Make it inline.
7a81008b 7572 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
7573 (struct coalesce_data, coalesce_data_t): New.
7574 (allocno_coalesce_data): New definition.
7575 (ALLOCNO_COALESCE_DATA): New macro.
7576 (merge_allocnos, coalesced_allocno_conflict_p): Use
7577 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7578 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7579 (coalesce_allocnos): Ditto.
7580 (setup_coalesced_allocno_costs_and_nums): Ditto.
7581 (collect_spilled_coalesced_allocnos): Ditto.
7582 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7583 (setup_slot_coalesced_allocno_live_ranges): Ditto.
7584 (coalesce_spill_slots): Ditto.
7585 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
7586 free allocno_coalesce_data.
7587
7588 * ira-conflicts.c: Fix formatting.
7589 (process_regs_for_copy): Call
7590 ira_init_register_move_cost_if_necessary. Use
7591 ira_register_move_cost instead of ira_get_register_move_cost.
7592 (build_object_conflicts): Optimize.
7593
7594 * ira-costs.c (record_reg_classes): Optimize. Call
7595 ira_init_register_move_cost_if_necessary. Use
7596 ira_register_move_cost, ira_may_move_in_cost, and
7597 ira_may_move_out_cost instead of ira_get_register_move_cost and
7598 ira_get_may_move_cost.
7599 (record_address_regs): Ditto.
7600 (scan_one_insn): Optimize.
7601 (find_costs_and_classes): Optimize.
7602 (process_bb_node_for_hard_reg_moves): Call
7603 ira_init_register_move_cost_if_necessary. Use
7604 ira_register_move_cost instead of ira_get_register_move_cost.
7605
7606 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7607 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7608 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7609 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7610 definitions.
7611 (ira_initiate_emit_data, ira_finish_emit_data)
7612 (create_new_allocno): New functions.
7a81008b 7613 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
7614 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7615 Use ira_register_move_cost instead of ira_get_register_move_cost.
7616
7617 * ira-int.h: Fix some comments.
7a81008b
UB
7618 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7619 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
7620 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7621 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
7622 add_data.
7623 (struct ira_allocno): Make mode and aclass a bitfield. Move other
7624 bitfield after mode. Make hard_regno a short int. Make
7625 hard_regno short. Remove first_coalesced_allocno and
7626 next_coalesced_allocno. Move mem_optimized_dest_p,
7627 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7628 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
7629 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7630 temp, colorable_p. Add new member add_data.
7631 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7632 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7633 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7634 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7635 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7636 (ALLOCNO_ADD_DATA): New macro.
7637 (ira_emit_data_t): New typedef.
7638 (struct ira_emit_data): New. Move mem_optimized_dest_p,
7639 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7640 from struct ira_allocno.
7641 (ALLOCNO_EMIT_DATA): New macro.
7642 (ira_allocno_emit_data, allocno_emit_reg): New.
7643 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 7644 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
7645 (OBJECT_ADD_DATA): New macro.
7646 (ira_reallocate): Remove.
7647 (ira_initiate_emit_data, ira_finish_emit_data): New.
7648 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7649 (ira_init_register_move_cost_if_necessary): New.
7650 (ira_object_conflict_iter_next): Merge into
7651 ira_object_conflict_iter_cond.
7a81008b 7652 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 7653
f60c2554 7654 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
7655 ira_init_register_move_cost_if_necessary. Use
7656 ira_register_move_cost instead of ira_get_register_move_cost.
7657
7658 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7659
7660 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7661
7662 * ira-costs.c: Fix formatting.
7663 (cost_classes, cost_classes_num): Remove.
7664 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7665 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7666 (cost_classes_del, cost_classes_htab): New.
7667 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7668 (initiate_regno_cost_classes, setup_cost_classes): New.
7669 (setup_regno_cost_classes_by_aclass): New.
7a81008b 7670 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
7671 (record_reg_classes): Use regno_cost_classes instead of
7672 cost_classes. Move checking opposite operand up.
7673 (record_address_regs): Use regno_cost_classes
7674 instead of cost_classes.
7675 (scan_one_insn): Ditto. Use always general register.
7676 (print_allocno_costs): Use regno_cost_classes instead of
7677 cost_classes.
7678 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
7679 (find_costs_and_classes): Set up cost classes for each registers.
7680 Use also their mode for this. Use regno_cost_classes instead of
7681 cost_classes.
7682 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7683 cost_classes.
7684 (free_ira_costs, ira_init_costs): Don't use cost_classes.
7685 (ira_costs, ira_set_pseudo_classes): Call
7686 initiate_regno_cost_classes and finish_regno_cost_classes.
7687
7688 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
7689
7690 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7691
7692 * target.def (ira_cover_classes): Remove.
7693
7a81008b 7694 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
7695
7696 * doc/tm.texi.in: Ditto.
7697
7698 * ira-conflicts.c: Remove mentioning cover classes from the file.
7699 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 7700 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
7701
7702 * targhooks.c (default_ira_cover_classes): Remove.
7703
7704 * targhooks.h (default_ira_cover_classes): Ditto.
7705
7706 * haifa-sched.c: Remove mentioning cover classes from the file.
7707 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7708 ira_pressure_classes and ira_pressure_classes_num instead of
7709 ira_reg_class_cover_size and ira_reg_class_cover. Use
7710 sched_regno_pressure_class instead of sched_regno_cover_class.
7711 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7712 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7713
7714 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
7715 classes from the file.
7716 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7717 (struct object_hard_regs, struct object_hard_regs_node): New.
7718 (struct ira_object): New members profitable_hard_regs,
7719 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7720 (struct ira_allocno): Rename cover_class to aclass. Rename
7721 cover_class_cost and updated_cover_class_cost to class_cost and
7722 updated_class_cost. Remove splay_removed_p and
7723 left_conflict_size. Add new members colorable_p.
7724 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7725 (ALLOCNO_COLORABLE_P): New macro.
7726 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7727 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7728 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7729 (OBJECT_...): Rename parameter C to O.
7730 (OBJECT_PROFITABLE_HARD_REGS): New macro.
7731 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7732 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7733 (struct target_ira_int): New members x_ira_max_memory_move_cost,
7734 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7735 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7736 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7737 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
7738 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
7739 x_ira_reg_class_subunion.
7740 (ira_max_memory_move_cost, ira_max_register_move_cost)
7741 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7742 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7743 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 7744 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
7745 (ira_reg_class_union): Rename to ira_reg_class_subunion.
7746 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7747 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7748 (ira_tune_allocno_costs_and_cover_classes): Rename to
7749 ira_tune_allocno_costs.
7750 (ira_debug_hard_regs_forest): New.
7751 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7752 (ira_object_conflict_iter_next): Fix comments.
7a81008b 7753 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
7754 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7755 cover_class to aclass.
7756 (ira_allocate_and_accumulate_costs): Ditto.
7757 (ira_allocate_and_set_or_copy_costs): Ditto.
7758
7759 * opts.c (decode_options): Remove ira_cover_class check.
7760
7761 * ira-color.c: Remove mentioning cover classes from the file. Use
7762 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7763 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7764 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7765 (splay-tree.h): Remove include.
7766 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7767 before copy_freq_compare_func.
7768 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7769 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7770 New definitions.
7771 (hard_regs_roots, hard_regs_node_vec): Ditto.
7772 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7773 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7774 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7775 (create_new_object_hard_regs_node): Ditto.
7776 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 7777 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
7778 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7779 Ditto.
7780 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7781 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7782 (remove_unused_object_hard_regs_nodes): Ditto.
7783 (enumerate_object_hard_regs_nodes): Ditto.
7784 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7785 (object_hard_regs_subnode_t): Ditto.
7786 (struct object_hard_regs_subnode): Ditto.
7787 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7788 (setup_object_hard_regs_subnode_index): Ditto.
7789 (get_object_hard_regs_subnodes_num): Ditto.
7790 (form_object_hard_regs_nodes_forest): Ditto.
7791 (finish_object_hard_regs_nodes_tree): Ditto.
7792 (finish_object_hard_regs_nodes_forest): Ditto.
7793 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 7794 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
7795 (pseudos_have_intersected_live_ranges_p): Rename to
7796 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
7797 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7798 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7799 (update_copy_costs): Remove assert. Skip cost update if the hard
7800 reg does not belong the class.
7801 (assign_hard_reg): Process only profitable hard regs.
7802 (uncolorable_allocnos_num): Make it scalar.
7803 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7804 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7805 and ira_reg_class_max_nregs.
7806 (bucket_allocno_compare_func): Check frequency first.
7807 (sort_bucket): Add compare function as a parameter.
7808 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7809 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7810 (push_allocno_to_stack): Rewrite for checking new allocno
7811 colorability.
7a81008b 7812 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
7813 (push_only_colorable): Pass new parameter to sort_bucket.
7814 (push_allocno_to_spill): Remove.
7815 (allocno_spill_priority_compare): Make it inline and rewrite.
7816 (splay_tree_allocate, splay_tree_free): Remove.
7817 (allocno_spill_sort_compare): New function.
7818 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
7819 build and use splay tree. Choose first allocno in uncolorable
7820 allocno bucket to spill. Remove setting spill cost.
7821 (all_conflicting_hard_regs): Remove.
7822 (setup_allocno_available_regs_num): Check only profitable hard
7823 regs. Print info about hard regs nodes.
7824 (setup_allocno_left_conflicts_size): Remove.
7825 (put_allocno_into_bucket): Don't call
7a81008b 7826 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
7827 (improve_allocation): New.
7828 (color_allocnos): Call setup_profitable_hard_regs,
7829 form_object_hard_regs_nodes_forest, improve_allocation,
7830 finish_object_hard_regs_nodes_forest. Setup spill cost.
7831 (print_loop_title): Use pressure classes.
7832 (color_allocnso): Ditto.
7833 (do_coloring): Remove allocation and freeing splay_tree_node_pool
7834 and allocnos_for_spilling.
7835 (ira_sort_regnos_for_alter_reg): Don't setup members
7836 {first,next}_coalesced_allocno.
7837 (color): Remove allocating and freeing removed_splay_allocno_vec.
7838 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7839 prohibited_class_mode_regs.
7840
7841 * ira-lives.c: Remove mentioning cover classes from the file. Fix
7842 formatting.
7843 (update_allocno_pressure_excess_length): Use pressure classes.
7844 (inc_register_pressure, dec_register_pressure): Check for pressure
7845 class.
7846 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7847 pressure class. Use ira_reg_class_nregs instead of
7848 ira_reg_class_max_nregs.
7849 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7850 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7851 (single_reg_class): Use ira_reg_class_nregs instead of
7852 ira_reg_class_max_nregs.
7853 (process_bb_node_lives): Use pressure classes.
7854
7855 * ira-emit.c: Remove mentioning cover classes from the file. Use
7856 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
7857 (change_loop): Use pressure classes.
7858 (modify_move_list): Call ira_set_allocno_class instead of
7859 ira_set_allocno_cover_class.
7860
7861 * ira-build.c: Remove mentioning cover classes from the file. Use
7862 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7863 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
7864 ALLOCNO_UPDATED_CLASS_COST instead of
7865 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7866 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7867 (ira_create_allocno): Remove initialization of
7868 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
7869 ALLOCNO_COLORABLE_P.
7870 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7871 Update conflict regs for the objects.
7872 (create_cap_allocno): Remove assert. Don't propagate
7873 ALLOCNO_AVAILABLE_REGS_NUM.
7874 (ira_free_allocno_costs): New function.
7875 (finish_allocno): Change a part of code into call of
7876 ira_free_allocno_costs.
7877 (low_pressure_loop_node_p): Use pressure classes.
7878 (object_range_compare_func): Don't compare classes.
7879 (setup_min_max_conflict_allocno_ids): Ditto.
7880
7881 * loop-invariant.c: Remove mentioning cover classes from the file.
7882 Use ira_pressure_classes and ira_pressure_classes_num instead of
7883 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
7884 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7885 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7886 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
7887 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7888 STACK_REG_COVER_CLASS.
7889 (get_regno_cover_class): Rename to get_regno_pressure_class.
7890 (move_loop_invariants): Initialize and finalize regstat.
7891
7892 * ira.c: Remove mentioning cover classes from the file. Add
7893 comments about coloring without cover classes. Use ALLOCNO_CLASS
7894 instead of ALLOCNO_COVER_CLASS. Fix formatting.
7895 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7896 setup_class_subset_and_memory_move_costs.
7897 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7898 (setup_cover_and_important_classes): Rename to
7899 setup_allocno_and_important_classes.
7900 (setup_class_translate_array): New.
7901 (setup_class_translate): Call it for allocno and pressure classes.
7902 (cover_class_order): Rename to allocno_class_order.
7903 (comp_reg_classes_func): Use ira_allocno_class_translate instead
7904 of ira_class_translate.
7905 (reorder_important_classes): Set up ira_important_class_nums.
7906 (setup_reg_class_relations): Set up ira_reg_class_superunion.
7907 (print_class_cover): Rename to print_classes. Add parameter.
7908 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7909 Print pressure classes too.
7910 (find_reg_class_closure): Rename to find_reg_classes. Don't call
7911 setup_reg_subclasses.
7a81008b 7912 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7913 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7914 (setup_prohibited_class_mode_regs): Use
7a81008b 7915 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
7916 (clarify_prohibited_class_mode_regs): New function.
7917 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7918 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7919 (ira_init_once): Initialize them.
7920 (free_register_move_costs): Process them.
7921 (ira_init): Move calls of find_reg_classes and
7922 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7923 Call clarify_prohibited_class_mode_regs.
7924 (ira_no_alloc_reg): Remove.
7925 (too_high_register_pressure_p): Use pressure classes.
7926
7927 * sched-deps.c: Remove mentioning cover classes from the file.
7928 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7929 ira_pressure_classes and ira_pressure_classes_num instead of
7930 ira_reg_class_cover_size and ira_reg_class_cover.
7931 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7932 sched_regno_pressure_class instead of sched_regno_cover_class.
7933 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
7934 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7935
7936 * ira.h: Add 2010 to Copyright.
7937 (ira_no_alloc_reg): Remove external.
7938 (struct target_ira): Rename x_ira_hard_regno_cover_class,
7939 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7940 x_ira_class_translate to x_ira_hard_regno_allocno_class,
7941 x_ira_allocno_classes_num, x_ira_allocno_classes, and
7942 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
7943 x_ira_pressure_classes, x_ira_pressure_class_translate, and
7944 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
7945 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
7946 x_ira_no_alloc_regs.
7a81008b 7947 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7948 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7949 ira_allocno_classes_num and ira_allocno_classes.
7950 (ira_class_translate): Rename to ira_allocno_class_translate.
7951 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7952 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7953 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7954 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7955 (ira_no_alloc_regs): New.
7956
7957 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
7958 classes from the file. Use ALLOCNO_CLASS instead of
7959 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
7960 ALLOCNO_COVER_CLASS_COST.
7961 (regno_cover_class): Rename to regno_aclass.
7962 (record_reg_classes): Use ira_reg_class_subunion instead of
7963 ira_reg_class_union.
7964 (record_address_regs): Check overflow.
7965 (scan_one_insn): Ditto.
7a81008b 7966 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
7967 (print_pseudo_costs): Use REG_N_REFS.
7968 (find_costs_and_classes): Use classes intersected with them on the
7969 1st pass. Check overflow. Use ira_reg_class_subunion instead of
7970 ira_reg_class_union. Use ira_allocno_class_translate and
7971 regno_aclass instead of ira_class_translate and regno_cover_class.
7972 Modify code for finding regno_aclass. Setup preferred classes for
7973 the next pass.
7974 (setup_allocno_cover_class_and_costs): Rename to
7975 setup_allocno_class_and_costs. Use regno_aclass instead of
7976 regno_cover_class. Use ira_set_allocno_class instead of
7977 ira_set_allocno_cover_class.
7978 (init_costs, finish_costs): Use regno_aclass instead of
7979 regno_cover_class.
7980 (ira_costs): Use setup_allocno_class_and_costs instead of
7981 setup_allocno_cover_class_and_costs.
7982 (ira_tune_allocno_costs_and_cover_classes): Rename to
7983 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
7984 by processing objects. Use ira_reg_class_max_nregs instead of
7985 ira_reg_class_nregs.
7986
7987 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7988
7989 * sched-int.h: Remove mentioning cover classes from the file.
7990 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7991
7992 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
7993 classes from the file.
7994 (struct reg_pref): Rename coverclass into allocnoclass.
7995 (reg_cover_class): Rename to reg_allocno_class.
7996
7a81008b 7997 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
7998
7999 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8000
8001 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8002
8003 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8004
8005 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8006
8007 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8008
8009 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8010
8011 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8012
8013 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8014
8015 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8016
8017 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8018 (i386_ira_cover_classes): Ditto.
8019
8020 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8021
8022 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8023
8024 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8025
8026 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8027
8028 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8029
8030 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8031
8032 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8033 (mips_ira_cover_classes): Ditto.
8034
8035 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8036
8037 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8038
8039 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8040
8041 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8042
8043 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8044
8045 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8046 (IRA_COVER_CLASSES_VSX): Ditto.
8047
8048 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8049 (rs6000_ira_cover_classes): Ditto.
8050
8051 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8052
8053 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8054
8055 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8056
8057 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8058
8059 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8060
8061 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8062
8063 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8064
8065 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8066
8067 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8068
8069 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8070
2b80199f
JJ
80712011-03-29 Jakub Jelinek <jakub@redhat.com>
8072
71dae1fe
JJ
8073 PR debug/48253
8074 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8075 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8076 dw_fde_unlikely_section_end_label, cold_in_std_section,
8077 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8078 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8079 fields.
8080 (output_fde): Use dw_fde_second_{begin,end} if second is
8081 true, otherwise dw_fde_{begin,end}.
8082 (output_call_frame_info): Test dw_fde_second_begin != NULL
8083 instead of dw_fde_switched_sections.
8084 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8085 fields, initialize new fields. Initialize in_std_section
8086 unconditionally from the first partition.
8087 (dwarf2out_end_epilogue): Don't override dw_fde_end when
8088 dw_fde_second_begin is non-NULL.
8089 (dwarf2out_switch_text_section): Stop initializing removed
8090 dw_fde_struct fields, initialize new fields, initialize
8091 also dw_fde_end here. Set dw_fde_switch_cfi even when
8092 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
8093 (struct var_loc_list_def): Add last_before_switch field.
8094 (arange_table, arange_table_allocated, arange_table_in_use,
8095 ARANGE_TABLE_INCREMENT, add_arange): Removed.
8096 (size_of_aranges): Count !in_std_section and !second_in_std_section
8097 hunks in fdes, instead of looking at arange_table_in_use.
8098 (output_aranges): Add aranges_length argument, don't call
8099 size_of_aranges here. Instead of using aranges_table*
8100 emit ranges for fdes when !in_std_section resp.
8101 !second_in_std_section.
8102 (dw_loc_list): Break ranges crossing section switch.
8103 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 8104 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
8105 (gen_subprogram_die): Don't call add_arange. Use
8106 dw_fde_{begin,end} for first partition and if switched
8107 section dw_fde_second_{begin,end} for the second.
8108 (var_location_switch_text_section_1,
8109 var_location_switch_text_section): New functions.
8110 (dwarf2out_begin_function): Initialize cold_text_section even
8111 when function_section () isn't text_section.
8112 (prune_unused_types): Don't walk arange_table.
8113 (dwarf2out_finish): Don't needlessly test
8114 flag_reorder_blocks_and_partition when testing cold_text_section_used.
8115 If info_section_emitted, call size_of_aranges and if it indicates
8116 non-empty .debug_aranges, call output_aranges with the computed
8117 size. Stop using removed dw_fde_struct fields, use
8118 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8119 for second.
8120
2b80199f
JJ
8121 PR debug/48203
8122 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8123 create ENTRY_VALUE if incoming or address of incoming's MEM
8124 is a hard REG.
8125 * dwarf2out.c (mem_loc_descriptor): Don't emit
8126 DW_OP_GNU_entry_value of DW_OP_fbreg.
8127 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8128 on ENTRY_VALUE is able to find the canonical parameter VALUE.
8129 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8130 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8131 ENTRY_VALUE_EXPs.
8132 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8133 is a REG_P or MEM_P with REG_P address, compute hash directly
8134 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8135 (preserve_only_constants): Don't clear VALUES forwaring
8136 ENTRY_VALUE to some other VALUE.
8137
8a445129
RS
81382011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
8139
8140 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8141 instead of GEN_INT.
8142
c82fee88
EB
81432011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8144
8145 * cfgexpand.c (expand_gimple_cond): Always set the source location and
8146 block before expanding the statement.
8147 (expand_gimple_stmt_1): Likewise. Set them here...
8148 (expand_gimple_stmt): ...and not here. Tidy.
8149 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8150 unknown.
8151
e45425ec
SB
81522011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8153
8154 * Makefile.in: New rule for cprop.o.
8155 * gcse.c: Move constant/copy propagation to cprop.c.
8156 (compute_local_properties): Only handle expression tables.
8157 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8158 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8159 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8160 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 8161 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
8162 compute_cprop_data, find_used_regs, try_replace_reg,
8163 find_avail_set, cprop_jump, constprop_register, cprop_insn,
8164 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8165 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8166 find_bypass_set, reg_killed_on_edge, bypass_block,
8167 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8168 execute_rtl_cprop, pass_rtl_cprop): Move to...
8169 * cprop.c: ...here. New file, constant/copy propagation for RTL
8170 moved from gcse.c to here with minor cleanups in duplicated code.
8171
c09d5426
L
81722011-03-28 H.J. Lu <hongjiu.lu@intel.com>
8173
8174 * config/i386/i386.c (flag_opts): Fix a typo in
8175 -mavx256-split-unaligned-store.
8176
9eaa7740
AS
81772011-03-28 Anatoly Sokolov <aesok@post.ru>
8178
8179 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8180 LIBCALL_VALUE): Remove macros.
8181 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8182 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8183 (h8300_function_value, h8300_libcall_value,
8184 h8300_function_value_regno_p): New functions.
8185
dcec2be2
AS
81862011-03-28 Anatoly Sokolov <aesok@post.ru>
8187
8188 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8189
520af9ec
JL
81902011-03-28 Jeff Law <law@redhat.com>
8191
8192 * tree-ssa-threadupdate.c (redirect_edges): Call
8193 create_edge_and_update_destination_phis as needed.
8194 (create_edge_and_update_destination_phis): Accept new BB argument.
8195 All callers updated.
8196 (thread_block): Do not update the profile when threading around
8197 intermediate blocks.
8198 (thread_single_edge): Likewise.
8199 (determine_bb_domination_status): If BB is not a successor of the
8200 loop header, return NONDOMINATING.
8201 (register_jump_thread): Note when we register a jump thread around
8202 an intermediate block.
8203 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8204 (thread_across_edge): Use it.
8205
7450b54f
TG
82062011-03-28 Tristan Gingold <gingold@adacore.com>
8207
8208 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8209 when for_return is 2.
8210
649beb33
JL
82112011-03-28 Jeff Law <law@redhat.com>
8212
8213 * var-tracking.c (canonicalize_values_mark): Delete unused
8214 lhs assignment.
8215 (canonicalize_values_star, set_variable_part): Likewise.
8216 (clobber_variable_part, delete_variable_part): Likewise.
8217
d5b8da97
SB
82182011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8219
8220 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8221
322dd859
MJ
82222011-03-28 Martin Jambor <mjambor@suse.cz>
8223
8224 * tree-inline.c (expand_call_inline): Do not check that destination
8225 node is analyzed.
8226 (optimize_inline_calls): Assert that destination node is analyzed.
8227 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8228 not call tree_lowering_passes.
8229 * cgraph.h (cgraph_analyze_function): Declare.
8230 * cgraphunit.c (cgraph_analyze_function): Make public.
8231
aa53e58b
JM
82322011-03-28 Joseph Myers <joseph@codesourcery.com>
8233
8234 * config/sparc/sparc-opts.h: New.
8235 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8236 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8237 (sparc_option_override): Store processor_type enumeration rather
8238 than string in cpu_default. Remove name and enumeration from
8239 cpu_table. Directly default -mcpu then default -mtune from -mcpu
8240 without using sparc_select. Use target_flags_explicit instead of
8241 fpu_option_set.
8242 * config/sparc/sparc.h (enum processor_type): Move to
8243 sparc-opts.h.
8244 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8245 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8246 HeaderInclude entry.
8247 (mcpu=, mtune=): Use Var and Enum.
8248 (sparc_processor_type): New Enum and EnumValue entries.
8249
dd350eba
RO
82502011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8251 Iain Sandoe <iains@gcc.gnu.org>
8252
8253 PR target/48245
8254 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8255
1b29f05e
EB
82562011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8257
8258 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8259 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8260 Insert new statements at it in lieu of STMT.
8261 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8262 * tree-vect-stmts.c (vectorizable_store): Likewise.
8263 (vectorizable_load): Likewise.
8264
506e6808
UB
82652011-03-28 Uros Bizjak <ubizjak@gmail.com>
8266
8267 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8268 (divtf3): Ditto.
8269 (multf3): Ditto.
8270 (subtf3): Ditto.
8271
2e939ee9
L
82722011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8273
8274 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8275 unaligned 256bit load/store.
8276 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8277 (*avx_movdqu<avxmodesuffix>): Likewise.
8278
5e85ab88
JDA
82792011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8280
8281 PR target/48288
8282 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8283 * config/pa/pa.md (iordi3): Use new predicate in expander.
8284 (iorsi3): Likewise.
8285
47be3d6d
AS
82862011-03-27 Anatoly Sokolov <aesok@post.ru>
8287
506e6808 8288 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 8289 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
8290 * config/mips/mips-protos.h (mips_function_value): Remove.
8291 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
8292 (mips_function_value_1): ... this. Make static. Handle receiving
8293 the function type in 'fn_decl_or_type' argument.
8294 (mips_function_value, mips_libcall_value,
8295 mips_function_value_regno_p): New function.
8296 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8297 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8298
d253656a
L
82992011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8300
8301 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8302 and -mavx256-split-unaligned-store.
8303 (ix86_option_override_internal): Split 32-byte AVX unaligned
8304 load/store by default.
8305 (ix86_avx256_split_vector_move_misalign): New.
8306 (ix86_expand_vector_move_misalign): Use it.
8307
8308 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8309 -mavx256-split-unaligned-store.
8310
8311 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8312 256bit load/store. Generate unaligned store on misaligned memory
8313 operand.
8314 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8315 256bit load/store.
8316 (*avx_movdqu<avxmodesuffix>): Likewise.
8317
8318 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8319 -mavx256-split-unaligned-store.
8320
1ea9206a
RS
83212011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8322
8323 PR target/38598
8324 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8325 Update commentary.
8326
b99ce2a8
RS
83272011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8328
8329 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8330 opno arguments with an expand_operand. Use create_input_operand.
8331 (mips_prepare_builtin_target): Delete.
8332 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8333 functions.
8334 (mips_expand_builtin_direct): Use create_output_operand and
8335 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
8336 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
8337 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8338
69d52339
IR
83392011-03-27 Ira Rosen <ira.rosen@linaro.org>
8340
8341 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8342 function.
8343 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8344
ba5e9aca
EB
83452011-03-26 Eric Botcazou <ebotcazou@adacore.com>
8346
8347 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8348 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
8349 basic blocks and call commit_edge_insertions directly.
8350 (fixup_abnormal_edges): Move from here to...
8351 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
8352 on the edges and return whether some have actually been inserted.
8353 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8354 compensation code.
8355
5d369d58
AB
83562011-03-26 Andrey Belevantsev <abel@ispras.ru>
8357
8358 PR rtl-optimization/48144
8359 * sel-sched-ir.c (merge_history_vect): Factor out from ...
8360 (merge_expr_data): ... here.
8361 (av_set_intersect): Rename to av_set_code_motion_filter.
8362 Update all callers. Call merge_history_vect when an expression
8363 is found in both sets.
8364 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8365
f082c000
AM
83662011-03-26 Alan Modra <amodra@gmail.com>
8367
8368 * config/rs6000/predicates.md (word_offset_memref_op): Handle
8369 cmodel medium addresses.
8370 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8371 64-bit gpr loads and stores.
8372 (rs6000_secondary_reload_ppc64): New function.
8373 * config/rs6000/rs6000-protos.h: Declare it.
8374 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8375
8ac5e12e
AM
83762011-03-26 Alan Modra <amodra@gmail.com>
8377
8378 PR target/47487
8379 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8380 GNU Go in traceback table.
8381
c2654ded
RH
83822011-03-25 Richard Henderson <rth@redhat.com>
8383
8384 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8385 if there are exactly 6 operands.
8386 (set_storage_via_setmem): Similarly.
8387
ba78087b
KT
83882011-03-25 Kai Tietz <ktietz@redhat.com>
8389
8390 * collect2.c (write_c_file_stat): Handle backslash
8391 as right-hand directory separator.
8392 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8393 checking just for slash.
8394 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8395 instead of checking for trailing slash.
8396 * gcc.c (record_temp_file): Use filename_cmp instead
8397 of strcmp.
8398 (do_spec_1): Likewise.
8399 (replace_outfile_spec_function): Likewise.
8400 (is_directory): Use filename_ncmp instead of strncmp.
8401 (print_multilib_info): Likewise.
8402 * gcov.c (find_source): Use filename_cmp instead
8403 instead of strcmp.
8404 (make_gcov_file_name): Fix order of slash/backslash
8405 checks.
8406 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8407 (add_standard_paths): Likewise.
8408 * mips-tfile.c (saber_stop): Handle backslash.
8409 * prefix.c (update_path): Use filename_ncmp instead of
8410 strncmp.
8411 * profile.c (output_location): Use filename_cmp instead
8412 of strcmp.
8413 * read-md.c (handle_toplevel_file): Handle backslash.
8414 * tlink.c (frob_extension): Likewise.
8415 * tree-cfg.c (same_line_p): Use filename_cmp instead of
8416 strcmp.
8417 * tree-dump.c (dequeue_and_dump): Handle backslash.
8418 * tree.c (get_file_function_name): Likewise.
8419 * gengtype.c (read_input_list): Likewise.
8420 (get_file_realbasename): Likewise.
8421 (get_output_file_with_visibility): Use filename_cmp
8422 instead of strcmp.
8423
75f6ec9a
RS
84242011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
8425
8426 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8427 case to VFPv1.
8428
6c4e2997
NF
84292011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8430
8431 * fold-const.c (expr_location_or): New function.
8432 (fold_truth_not_expr): Call it.
8433
0edf1bb2
JL
84342011-03-25 Jeff Law <law@redhat.com>
8435
8436 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8437 va_end.
8438 * c-family/c-common.c (def_fn_type): Likewise.
8439 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8440 * emit-rtl.c (gen_rtvec): Likewise.
8441 * lto/lto-lang.c (def_fn_type): Likewise.
8442
fdc2de95
RG
84432011-03-25 Richard Guenther <rguenther@suse.de>
8444
8445 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8446 also generate copies.
8447 (fini_copy_prop): Handle constant values properly.
8448
21385db0
JJ
84492011-03-25 Jakub Jelinek <jakub@redhat.com>
8450
8451 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8452 mode size instead of bitsize with DWARF2_ADDR_SIZE.
8453 (hash_loc_operands, compare_loc_operands): Handle
8454 DW_OP_GNU_entry_value.
8455
6510e8bb
KT
84562011-03-25 Kai Tietz <ktietz@redhat.com>
8457
8458 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8459 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8460 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8461 comment and use macro TARGET_64BIT_MS_ABI instead.
8462 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8463 and change default behavior for 32-bit MS_ABI.
8464 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8465 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8466 32-bit, too.
8467 (ix86_cfun_abi): Likewise.
8468 (ix86_maybe_switch_abi): Adjust comment.
8469 (init_cumulative_args): Check for bit-ness in MS_ABI case.
8470 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8471 instead of checking for SYSV_ABI.
8472 (ix86_nsaved_sseregs): Likewise.
8473 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8474 to 16 bytes.
8475 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8476 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8477 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8478 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8479 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8480
34019e28
RG
84812011-03-25 Richard Guenther <rguenther@suse.de>
8482
8483 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8484 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8485 (verify_gimple): Remove.
8486 * tree-cfg.c (verify_gimple_call): Merge verification
8487 from verify_stmts.
8488 (verify_gimple_phi): Merge verification from verify_stmts.
8489 (verify_gimple_label): New function.
8490 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8491 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8492 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8493 (verify_stmts): Rename to verify_gimple_in_cfg.
8494 (verify_gimple_in_cfg): New function.
8495 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8496 * tree-ssa.c (verify_ssa): Likewise.
8497 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8498
605896f5
RG
84992011-03-25 Richard Guenther <rguenther@suse.de>
8500
8501 * passes.c (init_optimization_passes): Add FRE pass after
8502 early SRA.
8503
7baa7c13
BS
85042011-03-25 Bernd Schmidt <bernds@codesourcery.com>
8505 Andrew Stubbs <ams@codesourcery.com>
8506
8507 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8508 for Cortex-A8.
8509 (arm_movdi_vfp_cortexa8): New pattern.
8510 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8511 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8512 instructions when tuning for Cortex-A8. Set attribute "arch".
8513 * config/arm/arm.md: Move include arm-tune.md up a bit.
8514 (define_attr "arch"): Add "onlya8" and "nota8" values.
8515 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8516
45dbce1b
NF
85172011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8518
4ff08abf 8519 PR bootstrap/48282
45dbce1b
NF
8520 Revert:
8521 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8522
8523 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8524 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8525 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8526 * passes.c (init_optimization_passes): Move
8527 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8528
ac9a30ae
KT
85292011-03-25 Kai Tietz <ktietz@redhat.com>
8530
8531 * c-typeck.c (comptypes_internal): Replace target
8532 hook call of comp_type_attributes by version in tree.c file.
8533 * gimple.c (gimple_types_compatible_p_1): Likewise.
8534 * tree-ssa.c (useless_type_conversion_p): Likewise.
8535 * tree.c (build_type_attribute_qual_variant): Likewise.
8536 (attribute_value_equal): New static helper function.
8537 (comp_type_attributes): New function.
8538 (merge_attributes): Use attribute_value_equal for comparison.
8539 (attribute_list_contained): Likewise.
8540 * tree.h (comp_type_attributes): New prototype.
8541
afdac116
RG
85422011-03-25 Richard Guenther <rguenther@suse.de>
8543
8544 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8545 of complex types at -O0.
8546 (verify_gimple_assign_binary): Likewise.
8547 (verify_gimple_assign_ternary): Likewise.
8548
ec6165f8
MW
85492011-03-24 Mark Wielaard <mjw@redhat.com>
8550
8551 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8552 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8553
2a5ac39a
MW
85542011-03-24 Mark Wielaard <mjw@redhat.com>
8555
8556 PR debug/48041
8557 * dwarf2out.c (output_abbrev_section): Only write table when
8558 abbrev_die_table_in_use > 1.
8559
e533b2a4
RH
85602011-02-24 Richard Henderson <rth@redhat.com>
8561
8562 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8563 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8564 (alpha_expand_unaligned_load_words): Use extql.
8565 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8566 (emit_insxl): Handle all modes for consistency.
8567
0b2a7367
RH
85682011-02-24 Richard Henderson <rth@redhat.com>
8569
8570 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8571 (alpha_expand_unaligned_load): Likewise.
8572 (alpha_expand_unaligned_store): Likewise.
8573 (alpha_expand_unaligned_load_words): Likewise.
8574 (alpha_expand_unaligned_store_words): Likewise.
8575 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8576 (alpha_split_lock_test_and_set_12): Likewise.
8577 (print_operand, alpha_fold_builtin_extxx): Likewise.
8578 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8579 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8580 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8581 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8582 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8583 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8584 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8585 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8586 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8587 (extwl, extll, extql): Similarly.
8588 (inswh, inslh, insqh): Similarly.
8589 (mskbl, mskwl, mskll, mskql): Similarly.
8590 (mskwh, msklh, mskqh): Similarly.
8591
315b2bef
RH
85922011-02-24 Richard Henderson <rth@redhat.com>
8593
8594 * config/alpha/alpha.md (attribute isa): Add er, ner.
8595 (attribute enabled): Handle them.
8596 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8597
67102517
RH
85982011-02-24 Richard Henderson <rth@redhat.com>
8599
8600 * config/alpha/alpha.md (attribute isa): Add vms.
8601 (attribute enabled): Handle it.
8602 (*movsf): Merge *movsf_{nofix,fix,nofp}.
8603 (*movdf): Merge *movdf_{nofix,fix,nofp}.
8604 (*movtf): Rename from *movtf_internal for consistency.
8605 (*movsi): Merge with *movsi_nt_vms.
8606 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8607 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8608 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8609 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8610
6aba5cb4
RH
86112011-02-24 Richard Henderson <rth@redhat.com>
8612
8613 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8614 (extendqisi2, extendhisi2): Likewise.
8615 (extendqidi2): Simplify BWX/non-BWX expansions.
8616 (extendhidi2): Similarly.
8617
bdfb351b
RH
86182011-02-24 Richard Henderson <rth@redhat.com>
8619
8620 * config/alpha/alpha.md (attribute isa): New.
8621 (attribute enabled): New.
8622 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8623 (zero_extendqisi2, zero_extendqidi2): Similarly.
8624 (zero_extendhisi2, zero_extendhidi2): Similarly.
8625 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8626
6abe71eb
RH
86272011-02-24 Richard Henderson <rth@redhat.com>
8628
8629 * config/alpha/predicates.md (input_operand): Revert last change;
8630 update comment to mention 32-bit VMS rather than Windows.
8631
7114321e
NF
86322011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8633
8634 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8635 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8636 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8637 * passes.c (init_optimization_passes): Move
8638 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8639
c8679567
EB
86402011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8641
8642 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8643
27173058
UB
86442011-03-24 Uros Bizjak <ubizjak@gmail.com>
8645
8646 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8647 correctly.
8648
6f0c9f06
JJ
86492011-03-24 Jakub Jelinek <jakub@redhat.com>
8650
8651 PR debug/48204
8652 * simplify-rtx.c (simplify_const_unary_operation): Call
8653 real_convert when changing mode class with FLOAT_EXTEND.
8654
662666e5
NC
86552011-03-24 Nick Clifton <nickc@redhat.com>
8656
8657 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8658 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8659 * config/rx/rx.c (rx_option_override): Set align_jumps,
8660 align_loops and align_labels if not set by the user.
8661 (rx_align_for_label): New function.
8662 (rx_max_skip_for_label): New function.
8663 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8664 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8665 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8666 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8667 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8668
2b99b2b8
RS
86692011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8670
8671 PR rtl-optimization/48263
8672 * optabs.c (expand_binop_directly): Reinstate convert_modes code
8673 and original commutative_p handling. Use maybe_gen_insn.
8674
ccecd6ea
AK
86752011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8676
8677 * reload.c (find_reloads_subreg_address): Add address_reloaded
8678 parameter and return true there if the full address has been
8679 reloaded.
8680 (find_reloads_toplev): Pass address_reloaded flag.
8681 (find_reloads_address_1): Don't use address_reloaded parameter.
8682
67295642
JL
86832011-03-24 Jeff Law <law@redhat.com>
8684
8685 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8686 unused variable "ann".
8687 (remove_unused_locals): Likewise.
8688
8689 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8690 statement.
8691
8692 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8693 after it is freed.
8694
212aa74f
AK
86952011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8696
8697 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8698 for invalid symbolic addresses.
8699 (s390_secondary_reload): Don't use s390_check_symref_alignment for
8700 larl operands.
8701
fe784e0d
EB
87022011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8703
8704 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8705 the argument in calls to fold_truth_not_expr.
8706
63ee8641
NF
87072011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8708
8709 * tree.c (record_node_allocation_statistics): New function.
8710 (make_node_stat, copy_node_stat, build_string): Call it.
8711 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8712 (build1_stat, build_omp_clause): Likewise.
8713
61be2a1c
RS
87142011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8715
8716 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8717 last commit.
8718
a881aaa7
RG
87192011-03-24 Richard Guenther <rguenther@suse.de>
8720
8721 PR tree-optimization/48271
8722 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8723 blocks that still exist.
8724
dbaa912c
RG
87252011-03-24 Richard Guenther <rguenther@suse.de>
8726
8727 PR tree-optimization/48270
8728 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8729 not free datarefs before ddrs.
8730
1d60cc55
EB
87312011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8732
8733 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8734 from the address built for a reference with variable offset.
8735
c78dd519
UB
87362011-03-24 Uros Bizjak <ubizjak@gmail.com>
8737
8738 PR target/48237
8739 * config/i386/i386.md (*movdf_internal_rex64): Do not split
8740 alternatives that can be handled with movq or movabsq insn.
8741 (*movdf_internal): Disable for !TARGET_64BIT.
8742 (*movdf_internal_nointeger): Ditto.
8743 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8744
b25b9e8f
NF
87452011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8746
8747 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8748 (FUNCTION_ARG_ADVANCE): Likewise.
8749 * tm.texi.in: Change references to them to hook references.
8750 * tm.texi: Regenerate.
c78dd519 8751 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
8752 (default_function_incoming_arg): Likewise.
8753 (default_function_arg_advance): Likewise.
c78dd519 8754 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
8755 (function_arg_advance): Likewise.
8756 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8757
190b2187
RG
87582011-03-24 Richard Guenther <rguenther@suse.de>
8759
8760 PR middle-end/48269
8761 * tree-object-size.c (addr_object_size): Do not double-account
8762 for MEM_REF offsets.
8763
a183b5c7
DN
87642011-03-24 Diego Novillo <dnovillo@google.com>
8765
8766 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 8767 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
8768 (lto_input_data_block): Move from lto-opts.c. Make extern.
8769 Update all users.
8770 (lto_input_string): Rename from input_string. Make extern.
8771 Update all users.
8772 * lto-streamer-out.c (lto_output_string_with_length): Rename from
8773 output_string_with_length.
8774 Output 0 to indicate a non-NULL string. Update all callers to
8775 not emit 0.
8776 (lto_output_string): Rename from output_string. Make extern.
8777 Update all users.
8778 (lto_output_decl_state_streams): Make extern.
8779 (lto_output_decl_state_refs): Make extern.
8780 * lto-streamer.h (lto_input_string): Declare.
8781 (lto_input_data_block): Declare.
8782 (lto_output_string): Declare.
8783 (lto_output_string_with_length): Declare.
8784 (lto_output_decl_state_streams): Declare.
8785 (lto_output_decl_state_refs): Declare.
8786
cfef45c8
RG
87872011-03-24 Richard Guenther <rguenther@suse.de>
8788
8789 PR tree-optimization/46562
8790 * tree.c (build_invariant_address): New function.
8791 * tree.h (build_invariant_address): Declare.
8792 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8793 a renamed function moved ...
8794 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8795 Take valueization callback parameter.
8796 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8797 * gimple-fold.h: New file.
8798 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8799 (ccp_fold, fold_const_aggregate_ref,
8800 fold_ctor_reference, fold_nonarray_ctor_reference,
8801 fold_array_ctor_reference, fold_string_cst_ctor_reference,
8802 get_base_constructor): Move ...
8803 * gimple-fold.c: ... here.
8804 (gimple_fold_stmt_to_constant_1): New function
8805 split out from ccp_fold. Take a valueization callback parameter.
8806 Valueize all operands.
8807 (gimple_fold_stmt_to_constant): New wrapper function.
8808 (fold_const_aggregate_ref_1): New function split out from
8809 fold_const_aggregate_ref. Take a valueization callback parameter.
8810 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8811 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8812 invariant POINTER_PLUS_EXPRs to invariant form.
8813 (vn_valueize): New function.
8814 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8815 * tree-vrp.c (vrp_valueize): New function.
8816 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8817 to fold statements to constants.
8818 * tree-ssa-pre.c (eliminate): Properly guard propagation of
8819 function declarations.
8820 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8821 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8822
5e0a7e40
RS
88232011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8824
8825 * config/h8300/predicates.md (jump_address_operand): Fix register
8826 mode check.
8827
bfe068c3
IR
88282011-03-24 Ira Rosen <ira.rosen@linaro.org>
8829
8830 * doc/invoke.texi (max-stores-to-sink): Document.
8831 * params.h (MAX_STORES_TO_SINK): Define.
8832 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8833 if either vectorization or if-conversion is disabled.
8834 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8835 tree-vect-data-refs.c vect_equal_offsets.
8836 (dr_equal_offsets_p): New function.
8837 (find_data_references_in_bb): Remove static.
8838 * tree-data-ref.h (find_data_references_in_bb): Declare.
8839 (dr_equal_offsets_p): Likewise.
8840 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8841 (vect_drs_dependent_in_basic_block): Update calls to
8842 vect_equal_offsets.
8843 (vect_check_interleaving): Likewise.
8844 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8845 (cond_if_else_store_replacement): Rename to...
8846 (cond_if_else_store_replacement_1): ... this. Change arguments and
8847 documentation.
8848 (cond_if_else_store_replacement): New function.
8849 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8850 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8851
4908b0bf
CLT
88522011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
8853
8854 PR target/46934
8855 * config/arm/arm.md (casesi): Use the gen_int_mode() function
8856 to subtract lower bound instead of GEN_INT().
8857
2be478a2
JW
88582011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
8859
8860 PR other/48179
8861 PR other/48221
8862 PR other/48234
8863 * doc/extend.texi (Alignment): Move section to match order in TOC.
8864 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8865 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8866
0c617be4
JL
88672011-03-23 Jeff Law <law@redhat.com>
8868
8869 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8870 before removing the edge.
8871
8872 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8873 it may have been freed by redirect_branch_edge or
8874 redirect_edge_succ_nodup.
8875
58da96fe
RG
88762011-03-23 Richard Guenther <rguenther@suse.de>
8877
c78dd519 8878 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
8879 (check_va_list_escapes): Likewise.
8880 (check_all_va_list_escapes): Likewise.
8881
b8beb4d1
RG
88822011-03-23 Richard Guenther <rguenther@suse.de>
8883
8884 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8885 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8886 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8887 (alias.o): Likewise.
8888 (ipa-type-escape.o): Remove.
8889 (ipa-struct-reorg.o): Likewise.
8890 (GTFILES): Remove ipa-struct-reorg.c.
8891 * alias.c: Do not include ipa-type-escape.h.
8892 * tree-ssa-alias.c: Likewise.
8893 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8894 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8895 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8896 and ipa-type-escape passes.
8897 * tree-pass.h (pass_ipa_type_escape): Remove.
8898 (pass_ipa_struct_reorg): Likewise.
8899 * ipa-struct-reorg.h: Remove.
8900 * ipa-struct-reorg.c: Likewise.
8901 * ipa-type-escape.h: Likewise.
8902 * ipa-type-escape.c: Likewise.
8903 * doc/invoke.texi (-fipa-struct-reorg): Remove.
8904 (--param struct-reorg-cold-struct-ratio): Likewise.
8905 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8906 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8907 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8908
f137aa63
AK
89092011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8910
8911 * config/s390/2084.md: Enable all insn reservations also for z9_ec
8912 cpu attribute value.
8913 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8914 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8915 * config/s390/s390.c (processor_flags_table): New constant array.
8916 (s390_handle_arch_option): Remove.
8917 (s390_handle_option): Remove s390_handle_arch_option invocations
8918 and OPT_mwarn_framesize_ handling.
8919 (s390_option_override): Remove s390_handle_arch_option invocation.
8920 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8921 warnings.
8922 * config/s390/s390.md (cpu attribute): Add z9_ec value.
8923 * config/s390/s390.opt (s390_tune, s390_arch)
8924 (march=): Replace s390_arch_option enum and values with
8925 processor_type. Set variable name to s390_arch. Set
8926 initialization value.
8927 (mtune=): Replace s390_arch_option with processor_type. Set
8928 variable name to s390_tune. Set initialization value.
8929
bf90208f
JB
89302011-03-23 Julian Brown <julian@codesourcery.com>
8931
8932 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8933 accesses which are not naturally aligned.
8934
3460fdf3
RS
89352011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8936
8937 PR target/47553
8938 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8939
a5c7d693
RS
89402011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8941
8942 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8943 parameter from "int" to "enum insn_code".
8944 (expand_operand_type): New enum.
8945 (expand_operand): New structure.
8946 (create_expand_operand): New function.
8947 (create_fixed_operand, create_output_operand): Likewise
8948 (create_input_operand, create_convert_operand_to): Likewise.
8949 (create_convert_operand_from, create_address_operand): Likewise.
8950 (create_integer_operand): Likewise.
8951 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8952 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8953 (expand_insn, expand_jump_insn): Likewise.
8954 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8955 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8956 (expand_movstr, expand_builtin___clear_cache): Likewise.
8957 (expand_builtin_lock_release): Likewise.
8958 * explow.c (allocate_dynamic_stack_space): Likewise.
8959 (probe_stack_range): Likewise. Allow check_stack to FAIL,
8960 and use the default handling in that case.
8961 * expmed.c (check_predicate_volatile_ok): Delete.
8962 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8963 (emit_cstore): Likewise.
8964 * expr.c (emit_block_move_via_movmem): Likewise.
8965 (set_storage_via_setmem, expand_assignment): Likewise.
8966 (emit_storent_insn, try_casesi): Likewise.
8967 (emit_single_push_insn): Likewise. Allow the expansion to fail.
8968 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8969 (expand_vec_shift_expr, expand_binop_directly): Likewise.
8970 (expand_twoval_unop, expand_twoval_binop): Likewise.
8971 (expand_unop_direct, emit_indirect_jump): Likewise.
8972 (emit_conditional_move, vector_compare_rtx): Likewise.
8973 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8974 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8975 (expand_sync_lock_test_and_set): Likewise.
8976 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
8977 (emit_unop_insn): Likewise.
8978 (expand_copysign_absneg): Change icode to an insn_code.
8979 (create_convert_operand_from_type): New function.
8980 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8981 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8982 (expand_insn, expand_jump_insn): Likewise.
8983 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8984 than const_int_operand for operand 2.
8985
78fadbab
AK
89862011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8987
8988 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8989 if possible.
8990
5f02387d
NF
89912011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8992
8993 * emit-rtl.c (emit_pattern_before_noloc): New function.
8994 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8995 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8996 (emit_pattern_after_noloc): New function.
8997 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8998 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8999
fdf3e18a
NF
90002011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9001
9002 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9003 (__ffsDI2): Likewise.
9004
42d085c1
RH
90052011-03-22 Richard Henderson <rth@redhat.com>
9006
9007 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9008 of !TARGET_ABI_OPEN_VMS.
9009 (alpha_trampoline_init, alpha_start_function): Likewise.
9010 (alpha_expand_epilogue, alpha_file_start): Likewise.
9011 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9012 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9013 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9014 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9015 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9016
cabbe12a
JM
90172011-03-22 Joseph Myers <joseph@codesourcery.com>
9018
9019 * config/s390/s390-opts.h: New.
9020 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9021 s390_arch_flags, s390_warn_framesize, s390_stack_size,
9022 s390_stack_guard): Remove.
9023 (s390_handle_arch_option): Return void. Take enum
9024 s390_arch_option value instead of string and searching array.
9025 (s390_handle_option): Don't assert that global structures are in
9026 use. Access variables via opts pointer. Use error_at. Don't use
9027 sscanf for -mstack-guard= or -mstack-size=. Update call to
9028 s390_handle_arch_option.
9029 (s390_option_override): Update call to s390_handle_arch_option.
9030 (s390_emit_prologue): Use %d format for s390_stack_size in
9031 diagnostic. Use %wd for HOST_WIDE_INT.
9032 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9033 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9034 * config/s390/s390.opt (config/s390/s390-opts.h): New
9035 HeaderInclude entry.
9036 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9037 s390_arch_flags, s390_warn_framesize): New Variable entries.
9038 (s390_arch_option): New Enum and EnumValue entries.
9039 (march=): Use Enum instead of Var.
9040 (mstack-guard=, mstack-size=): Use UInteger and Var.
9041 (mtune=): Use Enum.
9042
05b12036
JM
90432011-03-22 Joseph Myers <joseph@codesourcery.com>
9044
9045 * config/score/score.c (score_handle_option): Don't assert that
9046 global structures are in use. Access target_flags via opts
9047 pointer. Use value of -march= option to determine target_flags
9048 settings.
9049 * config/score/score.opt (march=): Use Enum.
9050 (score_arch): New Enum and EnumValue entries.
9051
dd51e35a
JM
90522011-03-22 Joseph Myers <joseph@codesourcery.com>
9053
9054 * config/mep/mep.c (option_mtiny_specified): Remove.
9055 (mep_option_override): Move register handling for -mivc2 from
9056 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
9057 instead of option_mtiny_specified.
9058 (mep_handle_option): Access target_flags via opts pointer. Don't
9059 assert that global structures are in use. Defer part of -mivc2
9060 handling and move it to mep_option_override.
9061 * config/mep/mep.opt (IVC2): New Mask entry.
9062 (mivc2): Use Var and Defer instead of Mask.
9063
4a8d3d91
JM
90642011-03-22 Joseph Myers <joseph@codesourcery.com>
9065
9066 * config/v850/v850-opts.h: New.
9067 * config/v850/v850.c (small_memory): Replace with
9068 small_memory_physical_max array. Make that array static const.
9069 (v850_handle_memory_option): Take integer value of argument. Take
9070 gcc_options pointer, option text and location. Return void.
9071 Update for changes to small memory structures.
9072 (v850_handle_option): Access target_flags via opts pointer. Don't
9073 assert that global structures are in use. Update calls to
9074 v850_handle_memory_option.
c78dd519
UB
9075 (v850_encode_data_area): Update references to small memory settings.
9076 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
9077 (enum small_memory_type): Move to v850-opts.h.
9078 * config/v850/v850.opt (config/v850/v850-opts.h): New
9079 HeaderInclude entry.
9080 (small_memory_max): New Variable entry.
9081 (msda): Replace by pair of options msda= and msda-. Use UInteger.
9082 (mtda, mzda): Likewise.
9083
117fdbfa
JM
90842011-03-22 Joseph Myers <joseph@codesourcery.com>
9085
9086 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9087 pointer. Don't assert that global structures are in use.
9088
d715091c
JM
90892011-03-22 Joseph Myers <joseph@codesourcery.com>
9090
9091 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9092 via opts pointer. Don't assert that global structures are in use.
9093
1bb721dc
JM
90942011-03-22 Joseph Myers <joseph@codesourcery.com>
9095
9096 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9097 (munix=93): Use Var.
9098 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9099 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9100 * config/pa/pa-opts.h: New.
9101 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9102 (pa_handle_option): Don't assert that global structures are in
9103 use. Access target_flags via opts pointer. Don't handle
9104 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9105 OPT_munix_98 here.
9106 (pa_option_override): Handle deferred OPT_mfixed_range_.
9107
cd8d8754
JM
91082011-03-22 Joseph Myers <joseph@codesourcery.com>
9109
9110 * config/mn10300/mn10300-opts.h: New.
9111 * config/mn10300/mn10300.c (mn10300_processor,
9112 mn10300_tune_string): Remove.
9113 (mn10300_handle_option): Don't assert that global structures are
9114 in use. Access mn10300_processor via opts pointer. Don't handle
9115 OPT_mtune_ here.
9116 * config/mn10300/mn10300.h (enum processor_type): Move to
9117 mn10300-opts.h.
9118 (mn10300_processor): Remove.
9119 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9120 HeaderInclude entry.
9121 (mn10300_processor): New Variable entry.
9122 (mtune=): Use Var.
9123
24e6e6b1
JM
91242011-03-22 Joseph Myers <joseph@codesourcery.com>
9125
9126 * config/microblaze/microblaze.c: Don't include opts.h.
9127 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9128 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9129 (mno-clearbss): Use Var and Warn.
9130
8a784afb
JM
91312011-03-22 Joseph Myers <joseph@codesourcery.com>
9132
9133 * config/m32r/m32r-opts.h: New.
9134 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9135 (m32r_handle_option): Don't assert that global structures are in
9136 use. Access target_flags and m32r_cache_flush_func via opts
9137 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
9138 OPT_mno_flush_trap here.
9139 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9140 include of m32r-opts.h.
9141 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9142 HeaderInclude entry.
9143 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9144 (mmodel=): Use Enum and Var.
9145 (m32r_model): New Enum and EnumValue entries.
9146 (mno-flush-trap): Use Var.
9147 (msdata=): Use Enum and Var.
9148 (m32r_sdata): New Enum and EnumValue entries.
9149
bbfc9a8c
JM
91502011-03-22 Joseph Myers <joseph@codesourcery.com>
9151
9152 * config/m32c/m32c.c: Don't include opts.h.
9153 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9154 m32c_handle_option): Remove.
9155 (m32c_option_override): Check global_options_set.x_target_memregs
9156 instead of target_memregs_set.
9157 * config/m32c/m32c.h (target_memregs): Remove.
9158 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9159 variable.
9160
e24b8335
JM
91612011-03-22 Joseph Myers <joseph@codesourcery.com>
9162
9163 * config/iq2000/iq2000-opts.h: New.
9164 * config/iq2000/iq2000.c: Don't include opts.h.
9165 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9166 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
9167 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9168 HeaderInclude entry.
9169 (iq2000_tune): New Variable entry.
9170 (march=): Add comment. Use Enum.
9171 (iq2000_arch): New Enum and EnumValue entries.
9172 (mcpu=): Use Enum and Var.
9173 (iq2000_tune): New Enum and EnumValue entries.
9174
e6cc0c98
JM
91752011-03-22 Joseph Myers <joseph@codesourcery.com>
9176
9177 * config/ia64/ia64-opts.h: New.
9178 * config/ia64/ia64.c (ia64_tune): Remove.
9179 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9180 here. Use error_at.
9181 (ia64_option_override): Handle deferred OPT_mfixed_range_.
9182 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9183 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9184 HeaderInclude entry.
9185 (ia64_tune): New Variable entry.
9186 (mfixed-range=): Use Defer and Var.
9187 (mtune=): Use Enum and Var.
9188 (ia64_tune): New Enum and EnumValue entries.
9189
db25893c
JM
91902011-03-22 Joseph Myers <joseph@codesourcery.com>
9191
9192 * config/frv/frv-opts.h: New.
9193 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9194 frv-opts.h.
9195 (frv_cpu_type): Remove.
9196 * config/frv/frv.c: Don't include opts.h.
9197 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9198 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
9199 (frv_cpu_type): New Variable entry.
9200 (frv_cpu): New Enum and EnumValue entries.
9201
6c223f5d
JM
92022011-03-22 Joseph Myers <joseph@codesourcery.com>
9203
9204 * config/cris/cris.c (cris_handle_option): Access target_flags via
9205 opts pointer. Don't assert that global structures are in use.
9206 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9207 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9208
bbd399cf
JM
92092011-03-22 Joseph Myers <joseph@codesourcery.com>
9210
9211 * config/bfin/bfin-opts.h: New.
9212 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9213 bfin_si_revision, bfin_workarounds): Remove.
9214 (bfin_cpus): Make static const.
9215 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9216 not bfin_lib_id_given.
9217 (bfin_handle_option): Don't set bfin_lib_id_given. Access
9218 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 9219 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
9220 * config/bfin/bfin.h: Include bfin-opts.h.
9221 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9222 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9223 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9224 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9225 entries.
9226
5e1b4d5a
JM
92272011-03-22 Joseph Myers <joseph@codesourcery.com>
9228
9229 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9230 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9231 or -msoft-float here.
9232 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9233 -msoft-float and -mhard-float.
c78dd519 9234 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
9235 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9236 msoft-float.
9237 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9238 -msoft-float.
9239 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9240 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9241 not mhard-float.
9242 (LIBGCC_SPEC): Don't handle -msoft-float.
9243 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9244 -mhard-float.
9245 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9246 msoft-float.
9247 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9248 -mfloat-abi=*, not -msoft-float and -mhard-float.
9249 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9250 -msoft-float.
9251 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9252 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9253 mhard-float and msoft-float.
9254 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9255 mfloat-abi=soft in comments, not mhard-float and msoft-float.
9256 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9257 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9258 mhard-float.
9259 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9260 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9261 msoft-float.
9262 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9263 not mhard-float.
9264 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9265 not msoft-float.
9266
800d1de1
RH
92672011-03-22 Richard Henderson <rth@redhat.com>
9268
9269 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9270 TARGET_ABI_WINDOWS_NT.
9271 (alpha_output_function_end_prologue): Likewise.
9272 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9273 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9274 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9275 (trap, *movsi_nt_vms): Likewise.
9276 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9277 (*tablejump_osf_nt_internal): Remove.
9278 * config/alpha/predicates.md (input_operand): Only test Pmode.
9279
c59ddd2b
JM
92802011-03-22 Joseph Myers <joseph@codesourcery.com>
9281
9282 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9283 via opts pointer. Use error_at. Don't assert that global
9284 structures are in use.
9285
1333f97f
JM
92862011-03-22 Joseph Myers <joseph@codesourcery.com>
9287
9288 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9289 (ix86_handle_option): Access ix86_isa_flags and
9290 ix86_isa_flags_explicit via opts pointer. Don't assert that
9291 global structures are in use.
9292 (ix86_function_specific_save, ix86_function_specific_restore):
9293 Update ix86_isa_flags_explicit field name.
c78dd519 9294 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
9295 (ix86_isa_flags_explicit): Rename TargetSave entry to
9296 x_ix86_isa_flags_explicit.
9297
75db85d8
RH
92982011-03-22 Richard Henderson <rth@redhat.com>
9299
9300 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9301 (alpha_option_override, direct_return): Likewise.
9302 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9303 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9304 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9305 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9306 (alpha_expand_epilogue, alpha_end_function): Likewise.
9307 (alpha_init_libfuncs): Likewise.
9308 (struct machine_function): Remove unicosmk members.
9309 (print_operand) ['t']: Remove.
9310 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9311 unicosmk_output_module_name, unicosmk_output_common,
9312 current_section_align, unicosmk_output_text_section_asm_op,
9313 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9314 unicosmk_section_type_flags, unicosmk_unique_section,
9315 unicosmk_asm_named_section, unicosmk_insert_attributes,
9316 unicosmk_output_align, unicosmk_defer_case_vector,
9317 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9318 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9319 unicosmk_output_ssib, unicosmk_add_call_info_word,
9320 unicosmk_extern_head, unicosmk_output_default_externs,
9321 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9322 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9323 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9324 * config/alpha/alpha-protos.h: Update.
9325 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9326 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9327 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9328 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9329 (*mulsi_se, mulvsi3): Likewise.
9330 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9331 (*divmodsi_internal, call, call_value, realign): Likewise.
9332 (moddi3, umoddi3): Likewise; remove duplicate expander.
9333 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9334 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9335 (*movdi_nofix): Remove r/U alternative.
9336 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9337 * config/alpha/constraints.md ("U"): Remove.
9338 * config/alpha/predicates.md (call_operand"): Don't test
9339 TARGET_ABI_UNICOSMK.
9340
96e45421
JM
93412011-03-22 Joseph Myers <joseph@codesourcery.com>
9342
9343 * target.def (handle_option): Take gcc_options and
9344 cl_decoded_option pointers and location_t.
9345 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9346 * doc/tm.texi: Regenerate.
9347 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9348 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9349 * lto-opts.c (lto_reissue_options): Generate option structure for
9350 targetm.handle_option call.
9351 * opts.c (target_handle_option): Update call to
9352 targetm.handle_option. Remove assertions about values now passed
9353 down to hook.
9354 * targhooks.c (default_target_handle_option): New.
9355 * targhooks.h (default_target_handle_option): Declare.
9356 * config/alpha/alpha.c: Include opts.h.
9357 (alpha_handle_option): Update to new hook interface.
9358 * config/arm/arm.c: Include opts.h.
9359 (arm_handle_option): Update to new hook interface.
9360 * config/arm/t-arm (arm.o): Update dependencies.
9361 * config/bfin/bfin.c: Include opts.h.
9362 (bfin_handle_option): Update to new hook interface.
9363 * config/cris/cris.c: Include opts.h.
9364 (cris_handle_option): Update to new hook interface.
9365 * config/frv/frv.c: Include opts.h.
9366 (frv_handle_option): Update to new hook interface.
9367 * config/i386/i386.c: Include opts.h.
9368 (ix86_handle_option): Update to new hook interface.
9369 (ix86_valid_target_attribute_inner_p): Generate option structure
9370 for call to ix86_handle_option.
9371 * config/i386/t-i386 (i386.o): Update dependencies.
9372 * config/ia64/ia64.c: Include opts.h.
9373 (ia64_handle_option): Update to new hook interface.
9374 * config/ia64/t-ia64 (ia64.o): Update dependencies.
9375 * config/iq2000/iq2000.c: Include opts.h.
9376 (iq2000_handle_option): Update to new hook interface.
9377 * config/m32c/m32c.c: Include opts.h.
9378 (m32c_handle_option): Update to new hook interface.
9379 * config/m32r/m32r.c: Include opts.h.
9380 (m32r_handle_option): Update to new hook interface.
9381 * config/m68k/m68k.c: Include opts.h.
9382 (m68k_handle_option): Update to new hook interface.
9383 * config/mep/mep.c: Include opts.h.
9384 (mep_handle_option): Update to new hook interface.
9385 * config/microblaze/microblaze.c: Include opts.h.
9386 (microblaze_handle_option): Update to new hook interface.
9387 * config/mips/mips.c: Include opts.h.
9388 (mips_handle_option): Update to new hook interface.
9389 * config/mn10300/mn10300.c: Include opts.h.
9390 (mn10300_handle_option): Update to new hook interface.
9391 * config/pa/pa.c: Include opts.h.
9392 (pa_handle_option): Update to new hook interface.
9393 * config/pdp11/pdp11.c: Include opts.h.
9394 (pdp11_handle_option): Update to new hook interface.
9395 * config/rs6000/rs6000.c: Include opts.h.
9396 (rs6000_handle_option): Update to new hook interface.
9397 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9398 * config/rx/rx.c: Include opts.h.
9399 (rx_handle_option): Update to new hook interface.
9400 * config/s390/s390.c: Include opts.h.
9401 (s390_handle_option): Update to new hook interface.
9402 * config/score/score.c: Include opts.h.
9403 (score_handle_option): Update to new hook interface.
9404 * config/sh/sh.c: Include opts.h.
9405 (sh_handle_option): Update to new hook interface.
9406 * config/sparc/sparc.c: Include opts.h.
9407 (sparc_handle_option): Update to new hook interface.
9408 * config/v850/v850.c: Include opts.h.
9409 (v850_handle_option): Update to new hook interface.
9410
66017846
JM
94112011-03-22 Joseph Myers <joseph@codesourcery.com>
9412
9413 * gcc.c (driver_unknown_option_callback): Only permit and save
9414 unknown -Wno- options.
9415 (driver_wrong_lang_callback): Save options directly instead of via
9416 driver_unknown_option_callback.
9417
e8b97ccd
EB
94182011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9419
9420 * combine.c (simplify_set): Try harder to find the best CC mode when
9421 simplifying a nested COMPARE on the RHS.
9422
ebb9f8b0
JM
94232011-03-22 Joseph Myers <joseph@codesourcery.com>
9424
9425 * config/alpha/gnu.h: Remove.
9426 * config/arc: Remove directory.
9427 * config/arm/netbsd.h: Remove.
9428 * config/arm/t-pe: Remove.
9429 * config/crx: Remove directory.
9430 * config/i386/netbsd.h: Remove.
9431 * config/m68hc11: Remove directory.
9432 * config/m68k/uclinux-oldabi.h: Remove.
9433 * config/mcore/mcore-pe.h: Remove.
9434 * config/mcore/t-mcore-pe: Remove.
9435 * config/netbsd-aout.h: Remove.
9436 * config/rs6000/gnu.h: Remove.
9437 * config/sh/sh-symbian.h: Remove.
9438 * config/sh/symbian-base.c: Remove.
9439 * config/sh/symbian-c.c: Remove.
9440 * config/sh/symbian-cxx.c: Remove.
9441 * config/sh/symbian-post.h: Remove.
9442 * config/sh/symbian-pre.h: Remove.
9443 * config/sh/t-symbian: Remove.
9444 * config/svr3.h: Remove.
9445 * config/vax/netbsd.h: Remove.
9446 * config.build: Don't handle i[34567]86-*-pe.
9447 * config.gcc: Remove handling of deprecations for most deprecated
9448 targets.
9449 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9450 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9451 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9452 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9453 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9454 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9455 Remove cases.
9456 * config.host: Don't handle i[34567]86-*-pe.
9457 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9458 (ASM_SPEC32): Don't handle -mcall-gnu.
9459 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9460 -mcall-gnu.
9461 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9462 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9463 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9464 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9465 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9466 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9467 conditional on SYMBIAN.
9468 * configure.ac: Don't handle powerpc*-*-gnu*.
9469 * configure: Regenerate.
9470 * doc/extend.texi (interrupt attribute): Don't mention CRX.
9471 * doc/install-old.texi (m6811, m6812): Don't mention.
9472 * doc/install.texi (arc-*-elf*): Don't document multilib option.
9473 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9474 (m68k-uclinuxoldabi): Don't mention.
9475 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9476 Remove.
9477 (-mcall-gnu): Remove.
9478 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9479 families): Remove constraint documentation.
9480
999a7d80
MS
94812011-03-22 Marius Strobl <marius@FreeBSD.org>
9482
9483 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9484 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9485 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9486
45540bcf
MM
94872011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9488
9489 PR target/48226
9490 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9491 vector when peeking at the next token for vector, don't expand the
9492 keywords.
9493
980a0ff4
GJL
94942011-03-21 Georg-Johann Lay <avr@gjlay.de>
9495
9496 * config/avr/avr-protos.h (expand_epilogue): Change prototype
9497 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9498 * config/avr/avr.c (init_cumulative_args)
9499 (avr_function_arg_advance): Use it.
9500 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9501 sibcall epilogues.
9502 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9503 (avr_function_ok_for_sibcall): ...this new function.
9504 (avr_lookup_function_attribute1): New static Function.
9505 (avr_naked_function_p, interrupt_function_p)
9506 (signal_function_p, avr_OS_task_function_p)
9507 (avr_OS_main_function_p): Use it.
9508 * config/avr/avr.md ("sibcall", "sibcall_value")
9509 ("sibcall_epilogue"): New expander.
9510 ("*call_insn", "*call_value_insn"): New insn.
9511 ("call_insn", "call_value_insn"): Remove
9512 ("call", "call_value", "epilogue"): Change expander to handle
9513 sibling calls.
9514
49168734
NC
95152011-03-21 Nick Clifton <nickc@redhat.com>
9516
9517 * doc/invoke.texi (Overall Options): Move closing brace to end of
9518 options list.
9519 (Optimization Options): Add missing @gol.
9520 (Directory Options): Likewise.
9521 (i386 and x86-64 Options): Likewise.
9522 (RS6000 and PowerPC Options): Likewise.
9523 (i386 and x86-64 Windows Options): Likewise.
9524 (V850 Options): Add text missing from descriptions.
9525
bdfe906f
RH
95262011-03-22 Richard Henderson <rth@redhat.com>
9527
9528 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9529 (avr_incoming_return_addr_rtx): New.
9530 (emit_push_byte): New.
9531 (expand_prologue): Use it. Remove incorrect dwarf annotation for
9532 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
9533 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
9534 (emit_pop_byte): New.
9535 (expand_epilogue): Use it. Pop frame pointer by bytes.
9536 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9537 (INCOMING_RETURN_ADDR_RTX): New.
9538 (INCOMING_FRAME_SP_OFFSET): New.
9539 (ARG_POINTER_CFA_OFFSET): New.
9540 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9541 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9542 (pophi): Remove.
9543
d090a5aa
RH
9544 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9545
fdf3e18a
NF
95462011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9547
9548 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9549 (FUNCTION_ARG_ADVANCE): Likewise.
9550 * tm.texi.in: Change references to them to hook references.
9551 * tm.texi: Regenerate.
9552 * targhooks.c (default_function_arg): Eliminate check for target
9553 macro.
9554 (default_function_incoming_arg): Likewise.
9555 (default_function_arg_advance): Likewise.
c78dd519 9556 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
9557 (function_arg_advance): Likewise.
9558 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9559
009d3fcf
NF
95602011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9561
9562 * tree.c (build_call_1): New function.
9563 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9564
7bec30e1
RG
95652011-03-22 Richard Guenther <rguenther@suse.de>
9566
9567 PR tree-optimization/48228
9568 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9569 for single-arg PHIs.
9570
0b7e851b
AB
95712011-03-22 Andrey Belevantsev <abel@ispras.ru>
9572
9573 PR rtl-optimization/48143
9574 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9575 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9576 sse2_cvtps2pd): Likewise.
9577
d89afca5
AK
95782011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9579
9580 * recog.c (canonicalize_change_group): Use validate_unshare_change.
9581
f471fe72
RG
95822011-03-22 Richard Guenther <rguenther@suse.de>
9583
9584 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9585 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9586 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9587 and REALIGN_LOAD_EXPR.
9588 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9589 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9590 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9591 DOT_PROD_EXPR case ...
9592 (expand_expr_real_2): ... here.
9593 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9594 and REALIGN_LOAD_EXPR.
9595 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9596 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9597 (vect_create_epilog_for_reduction): Likewise.
9598 (vectorizable_reduction): Likewise.
9599 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9600 * tree-vect-stmts.c (vectorizable_load): Likewise.
9601
f2f81d57
EB
96022011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9603
9604 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9605
ab081dd6
AK
96062011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9607
9608 * config/s390/s390.c (s390_delegitimize_address): Fix offset
9609 handling for PLTOFF/GOTOFF.
9610
6fd5332b
NC
96112011-03-22 Nick Clifton <nickc@redhat.com>
9612
9613 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9614 trailing backslash from the end of the macro definition.
9615
01841ac0
AK
96162011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9617
9618 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9619 and PLT unspecs.
9620
2ef6ce06
RS
96212011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
9622
9623 * expr.h (prepare_operand): Move to...
9624 * optabs.h (prepare_operand): ...here and change the insn code
9625 parameter from "int" to "enum insn_code".
9626 (insn_operand_matches): Declare.
9627 * expr.c (init_expr_target): Use insn_operand_matches.
9628 (compress_float_constant): Likewise.
9629 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9630 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9631 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
9632 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9633 Likewise.
2ef6ce06
RS
9634 (gen_cond_trap): Likewise.
9635 (prepare_operand): Likewise. Change icode to an insn_code.
9636 (insn_operand_matches): New function.
9637 * reload.c (find_reloads_address_1): Use insn_operand_matches.
9638 * reload1.c (gen_reload): Likewise.
9639 * targhooks.c (default_secondary_reload): Likewise.
9640
9e43ad68
UB
96412011-03-21 Uros Bizjak <ubizjak@gmail.com>
9642
9a96da32
UB
9643 * config/alpha/alpha.md (unspec): New define_c_enum.
9644 (unspecv): Ditto.
9645
96462011-03-21 Uros Bizjak <ubizjak@gmail.com>
9647
9648 PR debug/48214
9e43ad68
UB
9649 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9650 between a call and its CALL_ARG_LOCATION note.
9651
31408f60
EB
96522011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9653
9654 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9655
96562011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
9657
9658 PR c/42544
9659 PR c/48197
9660 * c-common.c (shorten_compare): If primopN is first sign-extended
9661 to opN and then zero-extended to result type, set primopN to opN.
9662
9dfd55f5
DJ
96632011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
9664
9665 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9666 for barrier handlers.
9667
f3c33d9d
MM
96682011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9669
9670 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9671 UNSPEC constants to be in the unspec enumeration, and redefine
9672 all UNSPECV constants to be in the unspecv enumeration, so that
9673 dumps print which unspec/unspec_volatile this is.
9674 * config/rs6000/vector.md (UNSPEC_*): Ditto.
9675 * config/rs6000/paired.md (UNSPEC_*): Ditto.
9676 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9677 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9678 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9679
9680 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9681 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9682 UNSPECV_LWSYNC, since these are used as unspec_volatile.
9683 * config/rs6000/sync.md (isync, lwsync): Ditto.
9684
ac43f774
RG
96852011-03-21 Richard Guenther <rguenther@suse.de>
9686
9687 * params.def (lto-min-partition): Fix typo.
9688
411cdbd8
RG
96892011-03-21 Richard Guenther <rguenther@suse.de>
9690
9691 PR c/47939
9692 * c-decl.c (grokdeclarator): Drop to the main variant only
9693 for array types. Drop flag_gen_aux_info check.
9694
1cd9e416
RG
96952011-03-21 Richard Guenther <rguenther@suse.de>
9696
9697 PR translation/47911
9698 * params.def (lto-partitions): Fix typo.
9699 (lto-min-partition): Fix wording.
9700
ada5ad67
AT
97012011-03-21 Andreas Tobler <andreast@fgznet.ch>
9702
9703 * config/rs6000/t-freebsd: Remove duplication from file.
9704
f9613c9a
RG
97052011-03-21 Richard Guenther <rguenther@suse.de>
9706
9707 PR middle-end/47661
9708 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9709
9bfbc1eb
RG
97102011-03-21 Richard Guenther <rguenther@suse.de>
9711
9712 PR lto/48210
9713 * params.def (lto-partitions): Require at least 1 partition.
9714
a2268084
RO
97152011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9716
9717 * gthr-solaris.h: Remove.
9718 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9719 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9720 (LIB_SPEC): Likewise.
9721 * config/sol2.opt (threads): Remove.
9e43ad68 9722 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
9723 (sparc*-*-solaris2*): Likewise.
9724 * configure.ac (enable_threads): Enable solaris support.
9725 * configure: Regenerate.
9e43ad68 9726 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
9727 * doc/install.texi (Configuration, --enable-threads=lib): Remove
9728 solaris.
9729
c43d9a1b
RO
97302011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9731
9732 * config.gcc: Obsolete *-*-solaris2.8*.
9733 * doc/install.texi (Specific, *-*-solaris2*): Document it.
9734
084239f4
RO
97352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9736
9737 PR bootstrap/48135
9738 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9739 reference. Solaris 8 perl works.
9740
64cadbe7
RO
97412011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9742
9743 PR bootstrap/48135
9744 * doc/install.texi (Prerequisites): Move jar etc. up.
9745 Explain support library version requirements.
9746
eb975109
RO
97472011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9748
9749 PR bootstrap/48135
9750 * doc/install.texi (Prerequisites): Move Perl to build
9751 requirements. Always necessary on Solaris 2 with Sun ld.
9752
8a509ffd
RO
97532011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9754
9755 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9756 binutils 2.21.
9757 (Specific, i?86-*-solaris2.[89]): Likewise.
9758 (Specific, i?86-*-solaris2.10): Likewise.
9759 (Specific, mips-sgi-irix6): Likewise.
9760 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9761 Update for binutils 2.21.
9762
8fbc58a1
RO
97632011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9764
9765 * configure.ac (gcc_cv_lto_plugin): Fix typo.
9766 Allow -fuse-linker-plugin for non-default plugin linker.
9767 * configure: Regenerate.
9768
7e84ad0b
NP
97692011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
9770
9771 PR bootstrap/48167
9772 * gengtype.c (files_rules): Added rule for cp/parser.h.
9773
2f36e14b
JJ
97742011-03-21 Jakub Jelinek <jakub@redhat.com>
9775
9776 PR target/48213
9777 * config/s390/s390.c (s390_delegitimize_address): Don't call
9778 lowpart_subreg if orig_x has BLKmode.
9779
62d784f7
KT
97802011-03-21 Kai Tietz <ktietz@redhat.com>
9781
9782 PR target/12171
9e43ad68
UB
9783 * doc/plugins.texi: Adjust documentation for plugin register_callback.
9784 * tree.h (attribute_spec): Add new member affects_type_identity.
9785 * attribs.c (empty_attribute_table): Adjust attribute_spec
9786 initializers.
62d784f7
KT
9787 * config/alpha/alpha.c: Likewise.
9788 * config/arc/arc.c: Likewise.
9789 * config/arm/arm.c: Likewise.
9790 * config/avr/avr.c: Likewise.
9791 * config/bfin/bfin.c: Likewise.
9792 * config/crx/crx.c: Likewise.
9793 * config/darwin.h: Likewise.
9794 * config/h8300/h8300.c: Likewise.
9795 * config/i386/cygming.h: Likewise.
9796 * config/i386/i386.c: Likewise.
9797 * config/ia64/ia64.c: Likewise.
9798 * config/m32c/m32c.c: Likewise.
9799 * config/m32r/m32r.c: Likewise.
9800 * config/m68hc11/m68hc11.c: Likewise.
9801 * config/m68k/m68k.c: Likewise.
9802 * config/mcore/mcore.c: Likewise.
9803 * config/mep/mep.c: Likewise.
9804 * config/microblaze/microblaze.c: Likewise.
9805 * config/mips/mips.c: Likewise.
9806 * config/rs6000/rs6000.c: Likewise.
9807 * config/rx/rx.c: Likewise.
9808 * config/sh/sh.c: Likewise.
9809 * config/sol2.h: Likewise.
9810 * config/sparc/sparc.c: Likewise.
9811 * config/spu/spu.c: Likewise.
9812 * config/stormy16/stormy16.c: Likewise.
9813 * config/v850/v850.c: Likewise.
9814
54833ec0
CLT
98152011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
9816
9817 * simplify-rtx.c (simplify_binary_operation_1): Handle
9818 (xor (and A B) C) case when B and C are both constants.
9819
14a41392
MX
98202011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
9821
9822 * tree-dfa.c (add_referenced_var): Fix typo in comment.
9823
806c3492
EB
98242011-03-20 Eric Botcazou <ebotcazou@adacore.com>
9825
9826 PR bootstrap/48168
9827 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9828
65e0a0f3
JJ
98292011-03-20 Jakub Jelinek <jakub@redhat.com>
9830
9831 PR rtl-optimization/48156
9832 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9833 assume df and df_lr are not NULL.
9834
b6a75dda
RR
98352011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9836
9837 PR debug/48023
9838 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9839 between a call and its CALL_ARG_LOCATION note.
9840
5969b52d
KK
98412011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
9842
9843 PR debug/48178
9844 * config/sh/sh.c (find_barrier): Don't emit a constant pool
9845 between a call and its corresponding CALL_ARG_LOCATION note.
9846
f773c2bd
AS
98472011-03-19 Anatoly Sokolov <aesok@post.ru>
9848
9849 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9850 instead of loop. Use HARD_REGISTER_NUM_P predicate.
9851 * haifa-sched.c (setup_ref_regs): Ditto.
9852 * caller-save.c (add_used_regs_1): Ditto.
9853 * dse.c (look_for_hardregs): Ditto.
9854 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9855 * sched-rgn.c (check_live_1): Ditto.
9856
8bf872f9
JM
98572011-03-18 Joseph Myers <joseph@codesourcery.com>
9858
9859 * c-decl.c (diagnose_mismatched_decls): Give an error for
9860 redefining a typedef with variably modified type.
9861
ff8e2159
JM
98622011-03-18 Joseph Myers <joseph@codesourcery.com>
9863
9864 * c-decl.c (grokfield): Don't allow typedefs for structures or
9865 unions with no tag by default.
9866 * doc/extend.texi (Unnamed Fields): Update.
9867
16cc4440
UB
98682011-03-18 Uros Bizjak <ubizjak@gmail.com>
9869
9870 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9871 Rewrite using indirect functions.
9872 (lwp_slwpcb): Ditto.
9873 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9874 (avx_vinsertf128<mode>): Ditto.
9875
e101e12e
AK
98762011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9877
9878 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9879 unspecs.
9880
4627c7fb
AK
98812011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9882
9883 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 9884 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 9885
2d36b47f
MK
98862011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9887
9888 PR rtl-optimization/48170
9889 * gcse.c (hoist_code): Remove bogus asserts.
9890
2a3d7659
JL
98912011-03-18 Georg-Johann Lay <avr@gjlay.de>
9892
9893 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9894 computation for prologue/epilogue.
9895
34c3ef05
RO
98962011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9897
9898 * Makefile.in (check-consistency): Remove.
9899
81f2b976
JJ
99002011-03-18 Jakub Jelinek <jakub@redhat.com>
9901
9902 PR debug/48176
9903 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9904 arange_table_in_use is 0, but either text_section_used or
9905 cold_text_section_used is true. Don't call it if
9906 !info_section_emitted.
9907
68fd7765
AS
99082011-03-18 Anatoly Sokolov <aesok@post.ru>
9909
9910 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9911 FUNCTION_VALUE_REGNO_P): Remove.
9912 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9913 Remove.
9914 * config/avr/avr.c (avr_ret_register): Make static inline.
9915 (avr_function_value_regno_p): New function.
9916 (avr_libcall_value): Make static. Add 'func' argument.
9917 (avr_function_value): Make static. Rename 'func' argument to
9918 'fn_decl_or_type', forward it to avr_libcall_value. Call
9919 avr_ret_register function instead of RET_REGISTER macro.
9920 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9921
b4ef8aac
JM
99222011-03-18 Jason Merrill <jason@redhat.com>
9923
9924 PR c++/23372
9925 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9926
09a52fc3
RG
99272011-03-18 Richard Guenther <rguenther@suse.de>
9928
9929 * doc/install.texi (--enable-gold): Remove.
9930 (--with-plugin-ld): Document.
9931 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9932
2a3d7659 99332011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
9934
9935 PR middle-end/47790
9936 * expr.c (optimize_bitfield_assignment_op): Revamp to work
9937 again after expansion changes.
9938
2abbb0fe
CLT
99392011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
9940
9941 * combine.c (try_combine): Do simplification only call of
9942 subst() on i2 even when i1 is present. Update comments.
9943
2efd0aa6
KK
99442011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
9945
9946 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9947 and UNSPEC_PCREL_SYMOFF.
9948
30a49b23
AK
99492011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9950
9951 * config/s390/s390.md: Use define_c_enum for the unspec constant
9952 definitions.
9953
419e1853
JJ
99542011-03-18 Richard Henderson <rth@redhat.com>
9955 Jakub Jelinek <jakub@redhat.com>
9956
9957 PR bootstrap/48161
9958 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9959 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9960
37875856
L
99612011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9962
9963 PR middle-end/47725
9964 * combine.c (cant_combine_insn_p): Don't check zero/sign
9965 extended hard registers.
9966
76069764
L
99672011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9968
9969 PR middle-end/47725
9970 * combine.c (cant_combine_insn_p): Check zero/sign extended
9971 hard registers.
9972
24da2019
AS
99732011-03-17 Anatoly Sokolov <aesok@post.ru>
9974
9975 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9976 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9977 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9978 Change return type to bool.
9979 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9980
a82ff31f
JJ
99812011-03-17 Jakub Jelinek <jakub@redhat.com>
9982
8b29c87a
JJ
9983 PR debug/48163
9984 * var-tracking.c (prepare_call_arguments): If CALL target
9985 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9986 pc instead of looking it up using cselib_lookup and use
9987 Pmode for it if x has VOIDmode.
9988 * dwarf2out.c (gen_subprogram_die): If also both first and
9989 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9990
a82ff31f
JJ
9991 PR debug/48163
9992 * function.c (assign_parms): For data.passed_pointer parms
9993 use MEM of data.entry_parm instead of data.entry_parm itself
9994 as DECL_INCOMING_RTL.
9995 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9996 also when passed and declared mode is the same, DECL_RTL
9997 is a MEM with pseudo as address and DECL_INCOMING_RTL is
9998 a MEM too.
9999
82ce305c
JL
100002011-03-16 Jeff Law <law@redhat.com>
10001
10002 PR rtl-optimization/37273
10003 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10004 handle them like argument loads from stack slots. Do not double
10005 count memory for memory constants and argument loads from stack slots.
10006
fe58e02b
L
100072011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10008
10009 PR debug/48160
10010 * var-tracking.c (prepare_call_arguments): Check SUBREG.
10011
6fc4dbc7
L
100122011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10013
10014 PR target/48171
10015 * config/i386/i386.opt: Add Save to -mavx and -mfma.
10016
db3ed0b3
JJ
100172011-03-17 Jakub Jelinek <jakub@redhat.com>
10018
8054a389
JJ
10019 PR bootstrap/48153
10020 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10021 if dwarf_strict.
10022 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10023 Clear call_arg_locations and call_arg_loc_last always.
10024
db3ed0b3
JJ
10025 PR middle-end/48152
10026 * var-tracking.c (prepare_call_arguments): If argument needs to be
10027 passed by reference, adjust argtype and mode.
10028
1bce4ff3
RG
100292011-03-17 Richard Guenther <rguenther@suse.de>
10030
10031 PR middle-end/48134
10032 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10033 a value make sure to fold the statement.
10034
7c71147d
CLT
100352011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
10036
10037 PR target/43872
10038 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10039 return condition with !cfun->calls_alloca.
10040
0e1ee172
RG
100412011-03-17 Richard Guenther <rguenther@suse.de>
10042
10043 PR bootstrap/48148
10044 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10045 origin for decls in other ltrans units.
10046 (input_varpool_node): Likewise.
10047
f8bce518
RG
100482011-03-17 Richard Guenther <rguenther@suse.de>
10049
10050 PR middle-end/48165
10051 * tree-object-size.c (compute_object_offset): Properly return
10052 the offset operand of MEM_REFs as sizetype.
10053
1b6fa860
JJ
100542011-03-17 Jakub Jelinek <jakub@redhat.com>
10055
dabd47e7
JJ
10056 PR rtl-optimization/48141
10057 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10058 * dse.c: Include params.h.
10059 (active_local_stores_len): New variable.
10060 (add_wild_read, dse_step1): Clear it when setting active_local_stores
10061 to NULL.
10062 (record_store, check_mem_read_rtx): Decrease it when removing
10063 from the chain.
10064 (scan_insn): Likewise. Increase it when adding to chain, if it
10065 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10066 set active_local_stores to NULL before the addition.
10067 * Makefile.in (dse.o): Depend on $(PARAMS_H).
10068
1b6fa860
JJ
10069 PR rtl-optimization/48141
10070 * dse.c (record_store): If no positions are needed in an insn
10071 that cannot be deleted, at least unchain it from active_local_stores.
10072
7b5cb7d6
DS
100732011-03-16 Dodji Seketeli <dodji@redhat.com>
10074
10075 PR debug/47510
10076 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10077 (lookup_type_die_strip_naming_typedef): ... here.
10078 (get_context_die): Use it.
10079 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10080 the anonymous struct named by the naming typedef.
10081
585e9d9d
L
100822011-03-16 H.J. Lu <hongjiu.lu@intel.com>
10083
10084 PR target/48154
10085 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10086 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10087
6261ab0e
JL
100882011-03-16 Jeff Law <law@redhat.com>
10089
10090 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 10091 check for operands of conditional. Allow type to be a pointer.
6261ab0e 10092
0b0081ec
RG
100932011-03-16 Richard Guenther <rguenther@suse.de>
10094
10095 PR tree-optimization/48149
10096 * fold-const.c (fold_binary_loc): Fold
10097 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10098
64a3d647
RG
100992011-03-16 Richard Guenther <rguenther@suse.de>
10100
10101 PR tree-optimization/26134
10102 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10103 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10104 (non_rewritable_mem_ref_base): Handle complex type component
10105 accesses, constrain offsets for vector and complex extracts
10106 more properly.
10107
ef13324e
RG
101082011-03-16 Richard Guenther <rguenther@suse.de>
10109
10110 PR tree-optimization/48146
10111 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10112 operands avoiding the need for renaming.
10113
f0eddb90
RG
101142011-03-16 Richard Guenther <rguenther@suse.de>
10115
10116 * gimple-fold.c (maybe_fold_reference): Open-code relevant
10117 constant folding. Move MEM_REF canonicalization first.
10118 Rely on fold_const_aggregate_ref for initializer folding.
10119 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10120
e42348b8
JJ
101212011-03-16 Jakub Jelinek <jakub@redhat.com>
10122
29f10e71
JJ
10123 PR middle-end/48136
10124 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10125 arg0/arg1 or their arguments are always fold converted to matching
10126 types.
10127
e42348b8
JJ
10128 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10129 to nargs.
10130
55b46574
RO
101312011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10132
10133 PR lto/46944
10134 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10135 Handle in-tree gold.
10136 (ld_vers): Extract binutils version for gold.
10137 (gcc_cv_ld_hidden): Handle gold here.
10138 (gcc_cv_lto_plugin): Determine level of linker plugin support.
10139 * configure: Regenerate.
10140 * config.in: Regenerate.
10141 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10142 -fuse-linker-plugin otherwise.
10143 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
10144 (LINK_COMMAND_SPEC): Use it.
10145 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10146
2b1c5433
JJ
101472011-03-16 Jakub Jelinek <jakub@redhat.com>
10148
c2969d8e
JJ
10149 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10150 * calls.c: Remove debug.h include.
10151 (emit_call_1): Don't call virtual_call_token debug hook.
10152 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10153 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10154 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10155 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10156 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10157 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10158 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10159 dwarf2out_virtual_call): Remove.
10160 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10161 copy_call_info and virtual_call hooks.
10162 (dwarf2out_init): Don't initialize vcall_insn_table,
10163 debug_dcall_section and debug_vcall_section.
10164 (prune_unused_types): Don't mark nodes from dcall_table.
10165 (dwarf2out_finish): Don't output dcall or vcall tables.
10166 * final.c (final_scan_insn): Don't call direct_call or
10167 virtual_call debug hooks.
10168 * debug.h (struct gcc_debug_hooks): Remove direct_call,
10169 virtual_call_token, copy_call_info and virtual_call hooks.
10170 (debug_nothing_uid): Remove prototype.
10171 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10172 copy_call_info and virtual_call hooks.
10173 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10174 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10175 * debug.c (do_nothing_debug_hooks): Likewise.
10176 (debug_nothing_uid): Remove.
10177 * doc/invoke.texi (-fenable-icf-debug): Remove.
10178 * common.opt (-fenable-icf-debug): Likewise.
10179
325f5379
JJ
10180 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10181 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10182 call's MEM. Handle functions returning aggregate through a hidden
10183 first pointer. For virtual calls add clobbered pc to call arguments
10184 chain.
10185 * dwarf2out.c (gen_subprogram_die): Emit
10186 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10187 can't be emitted.
10188
a58a8e4b
JJ
10189 PR debug/45882
10190 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10191 * rtl.h (ENTRY_VALUE_EXP): Define.
10192 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10193 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10194 * print-rtl.c (print_rtx): Likewise.
10195 * gengtype.c (adjust_field_rtx_def): Likewise.
10196 * var-tracking.c (vt_add_function_parameter): Adjust
10197 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10198 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10199 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10200 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10201 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10202
2b1c5433
JJ
10203 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10204 Call var_location debug hook even on CALL_INSNs.
10205 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10206 * rtl.def (ENTRY_VALUE): New.
10207 * dwarf2out.c: Include cfglayout.h.
10208 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10209 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10210 (struct call_arg_loc_node): New type.
10211 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10212 tail_call_site_count): New variables.
10213 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10214 DW_TAG_GNU_call_site_parameter.
10215 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10216 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10217 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10218 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10219 and DW_AT_GNU_all_source_call_sites.
10220 (mem_loc_descriptor): Handle ENTRY_VALUE.
10221 (add_src_coords_attributes): Don't add enything if
10222 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10223 (dwarf2out_abstract_function): Save and clear call_arg_location,
10224 call_site_count and tail_call_site_count around dwarf2out_decl call.
10225 (gen_call_site_die): New function.
10226 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10227 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10228 (dwarf2out_function_decl): Clear call_arg_locations,
10229 call_arg_loc_last, set call_site_count and tail_call_site_count
10230 to -1 and free block_map.
10231 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10232 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
10233 followed by any real instructions.
10234 (dwarf2out_begin_function): Set call_site_count and
10235 tail_call_site_count to 0.
10236 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10237 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10238 attempt to force a DIE for it and worst case remove the attribute.
10239 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10240 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10241 the decl itself.
10242 * var-tracking.c: Include tm_p.h.
10243 (vt_stack_adjustments): For calls call note_register_arguments.
10244 (argument_reg_set): New variable.
10245 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10246 ensure the VALUE is resolved.
10247 (call_arguments): New variable.
10248 (prepare_call_arguments): New function.
10249 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10250 (struct expand_loc_callback_data): Add ignore_cur_loc field.
10251 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10252 always use the best expression.
10253 (vt_expand_loc): Add ignore_cur_loc argument.
10254 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10255 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10256 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10257 note for all calls.
10258 (vt_add_function_parameter): Use cselib_lookup_from_insn.
10259 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10260 argument. Don't call cselib_preserve_only_values and
10261 cselib_reset_table.
10262 (note_register_arguments): New function.
10263 (vt_initialize): Compute argument_reg_set. Call
10264 vt_add_function_parameters before processing basic blocks instead of
10265 afterwards. For calls call prepare_call_arguments before calling
10266 cselib_process_insn.
10267 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10268 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10269 (var-tracking.o): Depend on $(TM_P_H).
10270 * cfglayout.h (insn_scope): New prototype.
10271 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10272 * cfglayout.c (insn_scope): No longer static.
10273 * insn-notes.def (CALL_ARG_LOCATION): New.
10274 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10275 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10276 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10277 nothing for DECL_EXTERNAL BLOCK_VARS.
10278
9ef13bd0
AM
102792011-03-16 Alan Modra <amodra@gmail.com>
10280
10281 PR target/45844
10282 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10283 create invalid offset address for vsx splat insn.
10284 * config/rs6000/predicates.md (splat_input_operand): New.
10285 * config/rs6000/vsx.md (vsx_splat_*): Use it.
10286
56b67510
XDL
102872011-03-15 Xinliang David Li <davidxl@google.com>
10288
10289 PR c/47837
10290 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10291 (normalize_preds): New function.
10292 (is_use_properly_guarded): Normalize def predicates.
10293
80fffdef
RR
102942011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10295
732f37c6 10296 PR target/46788
80fffdef
RR
10297 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10298 in the output template.
10299
930672ad
RG
103002011-03-15 Richard Guenther <rguenther@suse.de>
10301
10302 PR middle-end/47650
10303 * tree-pretty-print.c (dump_function_declaration): Properly
10304 dump unprototyped and varargs function types.
10305
c7ee7b45
RG
103062011-03-15 Richard Guenther <rguenther@suse.de>
10307
10308 PR tree-optimization/13954
10309 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10310 and friends.
10311
b2ad5e37
RG
103122011-03-15 Richard Guenther <rguenther@suse.de>
10313
10314 PR tree-optimization/48037
10315 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10316 selects into BIT_FIELD_REFs.
10317 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10318 vector select.
10319
7ee93d4e
JJ
103202011-03-15 Jakub Jelinek <jakub@redhat.com>
10321
10322 PR tree-optimization/48129
10323 * builtins.c (fold_builtin_snprintf): Convert to type of
10324 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10325 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10326
e106efc7
RG
103272011-03-15 Richard Guenther <rguenther@suse.de>
10328
10329 PR tree-optimization/41490
10330 * tree-ssa-dce.c (propagate_necessity): Handle returns without
10331 value but with VUSE.
10332 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10333 return statements.
10334 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10335 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10336 * tree-tailcall.c (find_tail_calls): Ignore returns.
10337
17dea42f
RG
103382011-03-15 Richard Guenther <rguenther@suse.de>
10339
10340 PR middle-end/48031
10341 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10342 or variable-indexed array accesses when in gimple form.
10343
01c77a60
RG
103442011-03-15 Richard Guenther <rguenther@suse.de>
10345
16cc4440 10346 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 10347
77b0791e
AM
103482011-03-15 Alan Modra <amodra@gmail.com>
10349
10350 PR target/48032
10351 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10352 presume symbol_refs without a symbol_ref_decl are suitably
10353 aligned, nor other trees we may see here. Handle anchor symbols.
10354 (legitimate_constant_pool_address_p): Comment. Add mode param.
10355 Check cmodel=medium addresses. Adjust all calls.
10356 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10357 creating cmodel=medium optimized access to locals.
10358 * config/rs6000/constraints.md (R): Pass QImode to
10359 legitimate_constant_pool_address_p.
10360 * config/rs6000/predicates.md (input_operand): Pass mode to
10361 legitimate_constant_pool_address_p.
10362 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10363 Update prototype.
10364
35f61ba4
MM
103652011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10366
10367 PR target/48053
10368 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10369 64-bit constants being loaded into registers other than GPRs such
10370 as loading 0 into a VSX register.
10371
07332e6d
RO
103722011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10373
16cc4440 10374 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 10375
de888d90
JJ
103762011-03-14 Jakub Jelinek <jakub@redhat.com>
10377
ba3ceb2d
JJ
10378 PR middle-end/47917
10379 * builtins.c (fold_builtin_snprintf): New function.
10380 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10381 (fold_builtin_4): Likewise.
10382
2e64f8b8
JJ
10383 PR middle-end/38878
10384 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10385 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
10386 and C - X == X also strip nops from +/-/p+ operand.
10387 When optimizing -X == C, fold C to arg0's type.
10388
de888d90
JJ
10389 PR debug/47946
10390 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10391 emit it as add_AT_int instead of add_AT_unsigned.
10392
103932011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
10394
10395 * unwind-dw2.c: Include sys/sdt.h if it exists.
10396 (_Unwind_DebugHook): Use STAP_PROBE2.
10397 * config.in, configure: Rebuild.
10398 * configure.ac: Check for sys/sdt.h.
10399
d34abfd2
UB
104002011-03-14 Uros Bizjak <ubizjak@gmail.com>
10401
10402 * config/i386/i386.md (ROUND_FLOOR): New constant.
10403 (ROUND_CEIL): Ditto.
10404 (ROUND_TRUNC): Ditto.
10405 (ROUND_MXCSR): Ditto.
10406 (ROUND_NO_EXC): Ditto.
10407 (rint<mode>2): Use new defines instead of numerical constants.
10408 (floor<mode>2): Ditto.
10409 (ceil<mode>2): Ditto.
10410 (btrunc<mode>2): Ditto.
10411 * config/i386/i386-builtin-types.def: Define ROUND function type
10412 aliases.
10413 * config/i386/i386.c (enum ix86_builtins): Add
10414 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10415 (struct builtin_description): Add
10416 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10417 (ix86_expand_sse_round): New static function.
10418 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10419 function types.
10420 (ix86_builtin_vectorized_function): Handle
10421 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10422
87f9e23d
TT
104232011-03-14 Tom Tromey <tromey@redhat.com>
10424
10425 * c-parser.c (c_parser_asm_string_literal): Clear
10426 warn_overlength_strings.
10427
b3ab9ea2
TT
104282011-03-14 Tom Tromey <tromey@redhat.com>
10429
10430 * c-parser.c (disable_extension_diagnostics): Save
10431 warn_overlength_strings.
10432 (restore_extension_diagnostics): Restore warn_overlength_strings.
10433
6bd73dd8
JJ
104342011-03-14 Jakub Jelinek <jakub@redhat.com>
10435
10436 * BASE-VER: Change to 4.7.0.
10437
7f4d6e1b
RG
104382011-03-14 Richard Guenther <rguenther@suse.de>
10439
10440 PR middle-end/48098
10441 * tree.c (build_vector_from_val): Adjust assert to requirements
10442 and reality.
10443
c6104ef1
JJ
104442011-03-14 Jakub Jelinek <jakub@redhat.com>
10445
10446 PR bootstrap/48102
d34abfd2 10447 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 10448
dfa95e19
AT
104492011-03-14 Andreas Tobler <andreast@fgznet.ch>
10450
f60c2554 10451 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
10452 terms of target_flags_explicit. Adjust copyright year.
10453
10454 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10455 * config/rs6000/t-freebsd: New file. Add override for
10456 LIB2FUNCS_EXTRA.
10457
bb322018
CD
104582011-03-13 Chris Demetriou <cgd@google.com>
10459
10460 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10461 (-fno-diagnostics-show-option): this, to reflect current default.
10462 (-Werror=): Update text about -fno-diagnostics-show-option.
10463
12b1c80b
PB
104642011-03-12 Peter Bergner <bergner@vnet.ibm.com>
10465
10466 PR target/48053
10467 * config/rs6000/predicates.md (easy_vector_constant_add_self,
10468 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10469 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10470 mode is not V2DImode or V2DFmode.
10471 (vspltis_constant): Do not handle V2DImode and V2DFmode.
10472 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10473 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10474 registers to 0.
10475 (movdi_internal64): Likewise.
10476
57d598f7
SP
104772011-03-12 Sebastian Pop <sebastian.pop@amd.com>
10478
10479 PR tree-optimization/47127
10480 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10481 parameter.
10482 (set_cloog_options): Same.
10483 (scop_to_clast): Same.
10484 (print_clast_stmt): Do not call cloog_state_malloc and
10485 cloog_state_free.
10486 (print_generated_program): Same.
10487 (gloog): Same.
10488 * graphite-clast-to-gimple.h (cloog_state): Declared.
10489 (scop_to_clast): Adjust declaration.
10490 * graphite.c (cloog_state): Defined here.
10491 (graphite_initialize): Call cloog_state_malloc.
10492 (graphite_finalize): Call cloog_state_free.
10493
f231b5ff
JM
104942011-03-11 Jason Merrill <jason@redhat.com>
10495
10496 * attribs.c (lookup_attribute_spec): Take const_tree.
10497 * tree.h: Adjust.
10498
6a4e2bd5
JM
104992011-03-11 Joseph Myers <joseph@codesourcery.com>
10500
10501 * config/sparc/sparc.c (sparc_option_override): Use
10502 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10503
a758fd67
RG
105042011-03-11 Richard Guenther <rguenther@suse.de>
10505
10506 PR tree-optimization/48067
10507 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10508 multiplication result will be only used once on the target
10509 stmt.
10510
03dfda54
RG
105112011-03-11 Richard Guenther <rguenther@suse.de>
10512
10513 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10514
5f11a50a
RG
105152011-03-11 Richard Guenther <rguenther@suse.de>
10516
10517 PR lto/48073
10518 * tree.c (find_decls_types_r): Do not walk types only reachable
10519 from IDENTIFIER_NODEs.
10520
4074f163
JJ
105212011-03-11 Jakub Jelinek <jakub@redhat.com>
10522
10523 PR middle-end/48044
10524 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10525 all vnode->force_output nodes as needed.
10526
30f7cdcd
JM
105272011-03-11 Jason Merrill <jason@redhat.com>
10528
10529 PR c++/48069
10530 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10531 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10532
62ecfeb8
MJ
105332011-03-11 Martin Jambor <mjambor@suse.cz>
10534
10535 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10536 cgraph_node.
10537
e89e03ab
JJ
105382011-03-11 Jakub Jelinek <jakub@redhat.com>
10539
10540 PR tree-optimization/48063
10541 * ipa-inline.c (cgraph_decide_inlining): Don't try to
10542 inline functions called once if !tree_can_inline_p (node->callers).
10543
efbe978b 105442011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 10545
efbe978b
EB
10546 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10547 extra_objs.
9d6193a7
CL
10548 * config/score/score3.c: Delete.
10549 * config/score/score3.h: Delete.
10550 * config/score/mul-div.S: Delete.
10551 * config/score/sfp-machine.h: Add new file.
10552 * config/score/constraints.md: Add new file.
10553 * config/score/t-score-softfp: Add new file.
efbe978b 10554 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
10555 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10556 (score7_extra_constraint): Delete.
efbe978b 10557 (score7_option_override): Remove unused code.
9d6193a7
CL
10558 * config/score/score.c: Remove score3 and score5 define and code.
10559 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 10560 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
10561 * config/score/score.opt: Remove score3 and score5 options.
10562
5de27cca
JDA
105632011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10564
10565 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10566 when _HPUX_SOURCE is defined.
10567 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10568
18d92053
JM
105692011-03-10 Jason Merrill <jason@redhat.com>
10570
10571 PR c++/48029
10572 * stor-layout.c (layout_type): Don't set structural equality
10573 on arrays of incomplete type.
10574 * tree.c (type_hash_eq): Handle comparing them properly.
10575
67a2f76d
JJ
105762011-03-10 Jakub Jelinek <jakub@redhat.com>
10577
10578 PR debug/48043
18d92053 10579 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
10580 result mode matches original rtl mode.
10581
d845b2f9
NC
105822011-03-10 Nick Clifton <nickc@redhat.com>
10583
10584 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 10585 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 10586
db7ec035
JJ
105872011-03-09 Jakub Jelinek <jakub@redhat.com>
10588
10589 PR rtl-optimization/47866
10590 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10591 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10592 if target wasn't scalar.
10593 * function.c (assign_stack_temp_for_type): Assert that neither
10594 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10595 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10596 macro.
10597 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10598
5d304e47
AK
105992011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10600
10601 * config/s390/s390-protos.h (s390_label_align): New prototype.
10602 * config/s390/s390.c (s390_label_align): New function.
10603 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10604
93b826f0
MM
106052011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10606
10607 PR target/47755
10608 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10609 V2DI/V2DF constants. Only all 0's or all 1's are easy.
10610 (output_vec_const_move): Ditto.
10611
ef78aed6
AS
106122011-03-08 Anatoly Sokolov <aesok@post.ru>
10613
10614 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10615 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10616 * config/mips/mips.c (mips_preferred_reload_class): Make static.
10617 Change 'rclass' argument and result type to reg_class_t.
10618 (TARGET_PREFERRED_RELOAD_CLASS): Define.
10619
5f892aa0
GJL
106202011-03-08 Georg-Johann Lay <avr@gjlay.de>
10621
9e43ad68
UB
10622 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10623 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10624 (TARGET_MEMORY_MOVE_COST): Define.
10625 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 10626
32bd2409
JJ
106272011-03-08 Jakub Jelinek <jakub@redhat.com>
10628
530a4800
JJ
10629 PR debug/47881
10630 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10631 removed anything.
10632
32bd2409
JJ
10633 PR tree-optimization/48022
10634 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10635 for EQ/NE_EXPR.
10636
c7148991
JJ
106372011-03-07 Jakub Jelinek <jakub@redhat.com>
10638
10639 PR debug/47991
10640 * var-tracking.c (find_use_val): Return NULL for
10641 cui->sets && cui->store_p BLKmode MEMs.
10642
43070a6e
AS
106432011-03-07 Anatoly Sokolov <aesok@post.ru>
10644
10645 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10646 Remove.
10647 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10648 xstormy16_print_operand_address): Remove.
10649 * config/stormy16/stormy16.c (xstormy16_print_operand,
10650 xstormy16_print_operand_address): Make static.
10651 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10652
efbe978b 106532011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
10654
10655 PR target/47862
10656 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10657 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10658 before definition.
10659
cec8ac0b
ZD
106602011-03-07 Zdenek Dvorak <ook@ucw.cz>
10661
10662 PR bootstrap/48000
10663 * cfgloopmanip.c (fix_bb_placements): Return immediately
10664 if FROM is BASE_LOOP's header.
10665
59527282
PW
106662011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
10667
10668 * gimplify.c (gimplify_function_tree): Fix building calls
10669 to __builtin_return_address.
10670
617718f7
AM
106712011-03-07 Alan Modra <amodra@gmail.com>
10672
10673 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10674 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10675 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10676 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10677 return_mode args.
10678 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10679 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10680 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10681 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10682 * config/rs6000/rs6000.c
10683 (rs6000_elf_end_indicate_exec_stack): Rename to..
10684 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
10685 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
10686 (rs6000_file_start): ..here.
10687 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10688 file scope variables.
10689 (call_ABI_of_interest): New function.
10690 (init_cumulative_args): Set above vars when function return value
10691 is a float, vector, or small struct.
10692 (rs6000_function_arg_advance_1): Likewise for function args.
10693 (rs6000_va_start): Set rs6000_passes_float if variable arg function
10694 references float args.
10695
38528d50
MX
106962011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
10697
10698 * doc/cfg.texi: Remove "See" before @ref.
10699 * doc/invoke.texi: Likewise.
10700
f42cf4f4
JM
107012011-03-05 Jason Merrill <jason@redhat.com>
10702
10703 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10704
804a304d
AG
107052011-03-05 Anthony Green <green@moxielogic.com>
10706
10707 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10708
634ee309
ZD
107092011-03-05 Zdenek Dvorak <ook@ucw.cz>
10710
10711 PR rtl-optimization/47899
10712 * cfgloopmanip.c (fix_bb_placements): Fix first argument
10713 to flow_loop_nested_p when moving the loop upward.
10714
6fe471c8
RE
107152011-03-05 Richard Earnshaw <rearnsha@arm.com>
10716
10717 PR target/47719
10718 * arm.md (movhi_insn_arch4): Accept any immediate constant.
10719
cc58ceee
JJ
107202011-03-05 Jakub Jelinek <jakub@redhat.com>
10721
10722 PR tree-optimization/47967
10723 * ipa-cp.c (build_const_val): Return NULL instead of creating
10724 VIEW_CONVERT_EXPR for mismatching sizes.
10725 (ipcp_create_replace_map): Return NULL if build_const_val failed.
10726 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10727 give up on versioning.
10728
ea868305
AM
107292011-03-05 Alan Modra <amodra@gmail.com>
10730
10731 PR target/47986
10732 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10733 full cmodel medium/large lo_sum + high addresses.
10734
bc6ce334
AK
107352011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10736
10737 * config/s390/s390.c (s390_decompose_address): Reject non-literal
10738 pool references in UNSPEC_LTREL_OFFSET.
10739
87e7b310
JH
107402011-03-04 Jan Hubicka <jh@suse.cz>
10741
10742 PR lto/47497
10743 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10744 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
10745 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10746 Add node pointers.
87e7b310
JH
10747 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10748 cgraph_add_thunk): Add node pointers.
10749 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10750 associated to right node.
10751 (input_node): Update use of cgraph_same_body_alias
10752 and cgraph_add_thunk.
10753
d9c64246
CF
107542011-03-04 Changpeng Fang <changpeng.fang@amd.com>
10755
10756 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
10757 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10758 modes when the flag -mprefer-avx128 is on.
d9c64246 10759
08707076
RS
107602011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
10761
10762 * dwarf2out.c (compare_loc_operands): Fix address handling.
10763
52517c81
AM
107642011-03-04 Alan Modra <amodra@gmail.com>
10765
10766 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10767
b147c5b9
RG
107682011-03-04 Richard Guenther <rguenther@suse.de>
10769
10770 PR middle-end/47968
10771 * expmed.c (extract_bit_field_1): Prefer vector modes that
10772 vec_extract patterns can handle.
10773
8750672f
RG
107742011-03-04 Richard Guenther <rguenther@suse.de>
10775
10776 PR middle-end/47975
10777 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10778
9eac0f2a
RH
107792011-03-04 Richard Henderson <rth@redhat.com>
10780
10781 * explow.c (emit_stack_save): Remove 'after' parameter.
10782 (emit_stack_restore): Likewise.
10783 * expr.h: Update to match.
10784 * builtins.c, calls.c, stmt.c: Likewise.
10785 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10786 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10787 * function.c (expand_function_end): Insert the emit_stack_save
10788 sequence before parm_birth_insn instead of after.
10789
dfee1406
UB
107902011-03-03 Uros Bizjak <ubizjak@gmail.com>
10791
10792 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10793 (ssse3_pmaddubsw128): Ditto.
10794 (ssse3_pmaddubsw): Ditto.
10795
f1d4c3de
SE
107962011-03-03 Steve Ellcey <sje@cup.hp.com>
10797
10798 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10799
71f3a3f5
JJ
108002011-03-03 Jakub Jelinek <jakub@redhat.com>
10801
423ed416
JJ
10802 PR c/47963
10803 * gimplify.c (omp_add_variable): Only call omp_notice_variable
10804 on TYPE_SIZE_UNIT if it is a DECL.
10805
71f3a3f5
JJ
10806 PR debug/47283
10807 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10808 first operand is not is_gimple_mem_ref_addr, try to fold it.
10809 If the operand still isn't is_gimple_mem_ref_addr, clear
10810 MEM_EXPR on op0.
10811
4b1a5c0d
RG
108122011-03-03 Richard Guenther <rguenther@suse.de>
10813
10814 PR middle-end/47283
10815 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10816 match comment.
10817 (refs_may_alias_p_1): For release branches return true if
10818 we are confused by our input.
10819
b46616fd
AK
108202011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10821
10822 * config/s390/s390.c (s390_function_value): Rename to ...
10823 (s390_function_and_libcall_value): ... this.
10824 (s390_function_value): New function.
10825 (s390_libcall_value): New function.
dfee1406 10826 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
10827 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10828 target macro definitions.
10829 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10830
46d8fabb
JM
108312011-03-02 Joseph Myers <joseph@codesourcery.com>
10832
10833 * config/i386/freebsd64.h (CC1_SPEC): Define.
10834 * config/i386/linux64.h (CC1_SPEC): Define.
10835 * config/i386/x86-64.h (CC1_SPEC): Don't define.
10836
6b1ce545
AS
108372011-03-02 Anatoly Sokolov <aesok@post.ru>
10838
10839 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10840 Remove.
10841 * config/stormy16/stormy16.c: Include reload.h.
10842 (xstormy16_memory_move_cost): New function.
10843 (TARGET_MEMORY_MOVE_COST): Define.
10844
34161e98
RS
108452011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
10846
10847 PR rtl-optimization/47925
10848 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10849 with side effects. Remove the more-specific check for volatile asms.
10850
f60a97cf
AM
108512011-03-02 Alan Modra <amodra@gmail.com>
10852
10853 PR target/47935
10854 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10855 toc relative addresses for valid offsets.
10856
f2ca11ca
RG
108572011-03-01 Richard Guenther <rguenther@suse.de>
10858
10859 PR tree-optimization/47890
10860 * tree-vect-loop.c (get_initial_def_for_induction): Set
10861 related stmt properly.
10862
7a00d9ea
RG
108632011-03-01 Richard Guenther <rguenther@suse.de>
10864
10865 PR lto/47924
10866 * lto-streamer.c (lto_record_common_node): Also register
10867 the canonical type.
10868
06c7edcc
RG
108692011-03-01 Richard Guenther <rguenther@suse.de>
10870
10871 PR lto/46911
10872 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10873 Do not stream DECL_ABSTRACT_ORIGIN.
10874 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10875 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10876 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10877 Do not stream DECL_ABSTRACT_ORIGIN.
10878 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10879 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10880
998871e9
AS
108812011-02-28 Anatoly Sokolov <aesok@post.ru>
10882
10883 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10884 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 10885 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
10886 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10887 Add 'outgoing' argument.
10888 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10889 function.
10890 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10891 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10892
94369251
KT
108932011-02-28 Kai Tietz <kai.tietz@onevision.com>
10894
10895 PR debug/28047
10896 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10897 (lookup_filename): Likewise.
b2e2ea67 10898 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 10899
80a832cd
JJ
109002011-02-28 Bernd Schmidt <bernds@codesourcery.com>
10901 Jakub Jelinek <jakub@redhat.com>
10902
10903 PR middle-end/47893
10904 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10905 (assign_stack_local_1): Change last argument type to int.
10906 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10907 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 10908 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
10909 (assign_stack_local): Adjust caller.
10910 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10911 of assign_stack_local, pass 0 as last argument.
10912 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10913 callers.
10914
1b500976
JJ
109152011-02-28 Jakub Jelinek <jakub@redhat.com>
10916
f61c6f34
JJ
10917 PR debug/47283
10918 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10919 Use target address_mode and pointer_mode hooks instead of hardcoded
10920 Pmode and ptr_mode. Handle some simple cases of extending if
10921 POINTERS_EXTEND_UNSIGNED < 0.
10922 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10923 Call convert_debug_memory_address.
10924 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10925 convert_debug_memory_address.
10926
1b500976
JJ
10927 PR middle-end/46790
10928 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10929 * configure: Regenerated.
10930 * config.in: Regenerated.
10931 * varasm.c (default_function_section): Return NULL
b2e2ea67 10932 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 10933
2f2935b6
MJ
109342011-02-28 Martin Jambor <mjambor@suse.cz>
10935
10936 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10937 the description to match the printed values.
10938
474086eb
RG
109392011-02-28 Richard Guenther <rguenther@suse.de>
10940
10941 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10942 of the copied scope tree.
10943
15bf6f3a
RW
109442011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10945
10946 * doc/extend.texi (Function Attributes): Avoid deeply (and
10947 wrongly) nested tables.
10948
f6b439c9
JJ
109492011-02-27 Jakub Jelinek <jakub@redhat.com>
10950
10951 PR middle-end/47903
10952 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10953 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10954 r isn't op0 nor op1.
10955
1d8ca2c7
GJL
109562011-02-23 Georg-Johann Lay <avr@gjlay.de>
10957
10958 * config/avr/avr.md: Remove magic comment for emacs.
10959
593fca4b
GJL
109602011-02-23 Georg-Johann Lay <avr@gjlay.de>
10961
10962 PR target/45261
10963 * config/avr/avr.c (avr_option_override): Use error on bad options.
10964 (avr_help): New function.
10965 (TARGET_HELP): Define.
10966
6609216e
GJL
109672011-02-22 Georg-Johann Lay <avr@gjlay.de>
10968
10969 PR target/42240
10970 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10971 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10972
03d458af
GP
109732011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
10974
10975 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10976 (ARM Options): Ditto.
10977 (i386 and x86-64 Options): Ditto.
10978 (RX Options): Ditto.
10979 (SPARC Options): Ditto.
10980
1c379b78
TC
109812011-02-26 Tijl Coosemans <tijl@coosemans.org>
10982
10983 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10984 FreeBSD 6 and later. Generally use cpu generic.
10985
d5ed058c 109862011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 10987
d5ed058c
GP
10988 * doc/cpp.texi: Update copyright years.
10989
509d65dd 109902011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 10991
509d65dd 10992 PR target/46898
308d39cd
SB
10993 * config/lm32/lm32.md (ashrsi3): Added needed variable.
10994
509d65dd 109952011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 10996
509d65dd 10997 PR target/46898
308d39cd
SB
10998 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10999 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11000 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11001 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 11002 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
11003 (gen_int_relational): Move declarations to start of function.
11004
822ba6d7
EB
110052011-02-25 Eric Botcazou <ebotcazou@adacore.com>
11006
11007 PR tree-optimization/45470
11008 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11009 can throw internally only.
11010 * tree-vect-stmts.c (vectorizable_call): Likewise.
11011
ef795fc2
AS
110122011-02-24 Anatoly Sokolov <aesok@post.ru>
11013
11014 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11015 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11016 * config/stormy16/stormy16-protos.h
11017 (xstormy16_preferred_reload_class): Remove.
11018 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11019 static. Change 'rclass' argument and return type to reg_class_t.
11020 (TARGET_PREFERRED_RELOAD_CLASS,
11021 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11022
1c3277ee
RG
110232011-02-24 Richard Guenther <rguenther@suse.de>
11024
11025 * lto-streamer-in.c (input_bb): Do not find referenced vars
11026 in debug statements.
11027
67e18edb
JM
110282011-02-23 Jason Merrill <jason@redhat.com>
11029
11030 * common.opt (fabi-version): Document v5 and v6.
11031
b14fad9d
RG
110322011-02-23 Richard Guenther <rguenther@suse.de>
11033
11034 PR tree-optimization/47849
11035 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11036
7fcf46f5
JZ
110372011-02-23 Jie Zhang <jie@codesourcery.com>
11038
11039 * opts-common.c (decode_cmdline_option): Print empty string
11040 argument as "" in decoded->orig_option_with_args_text.
11041 * gcc.c (execute): Print empty string argument as ""
11042 in the verbose output.
11043 (do_spec_1): Keep empty string argument.
11044
f85b70fd
NF
110452011-02-23 Nathan Froyd <froydnj@codesourcery.com>
11046
11047 * config.gcc: Declare score-* and crx-* obsolete.
11048
b152a615
JZ
110492011-02-23 Jie Zhang <jie@codesourcery.com>
11050
11051 PR rtl-optimization/47763
11052 * web.c (web_main): Ignore naked clobber when replacing register.
11053
bb6e77bc
AS
110542011-02-22 Anatoly Sokolov <aesok@post.ru>
11055
11056 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11057 Remove.
11058
68bf6491
SP
110592011-02-22 Sebastian Pop <sebastian.pop@amd.com>
11060
11061 PR doc/47848
11062 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11063
88ee1fc7
MS
110642011-02-22 Mike Stump <mikestump@comcast.net>
11065
11066 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11067 assembler.
11068 * configure: Regenerate.
11069
6042d1dd
CLT
110702011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
11071
11072 PR rtl-optimization/46002
11073 * ira-color.c (update_copy_costs): Change class intersection
11074 test to reg_class_contents[] test of 'hard_regno'.
11075
7de97f9e
JM
110762011-02-21 Joseph Myers <joseph@codesourcery.com>
11077
11078 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11079 than Driver option.
11080 * config/hpux11.opt (mt): Likewise.
11081 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11082 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11083 * config/vax/elf.opt (mno-asm-pic): Likewise.
11084 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11085
d1d46f9f
MS
110862011-02-21 Mike Stump <mikestump@comcast.net>
11087
11088 PR target/47822
11089 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11090 tree so we can get save the type.
11091 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11092 for CFString instead of trying to use past the end of the builtins.
11093 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11094 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11095 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11096 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11097 Rename to darwin_builtin_cfstring.
11098 (darwin_init_cfstring_builtins): Return the built type.
11099
23e0d930
UB
111002011-02-21 Uros Bizjak <ubizjak@gmail.com>
11101
11102 PR target/47840
11103 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11104 (_mm256_insert_epi64): Use _mm_insert_epi64.
11105
192997cf
AS
111062011-02-21 Anatoly Sokolov <aesok@post.ru>
11107
11108 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11109 * config/stormy16/stormy16-protos.h
11110 (xstormy16_mode_dependent_address_p): Remove.
11111 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11112 Make static. Change return type to bool. Change argument type to
11113 const_rtx. Remove dead code.
11114 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11115
e292d003
RG
111162011-02-21 Richard Guenther <rguenther@suse.de>
11117
11118 PR lto/47820
11119 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11120 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11121 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11122 TUs context.
23e0d930 11123 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
11124 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11125
77f846e9
RG
111262011-02-20 Richard Guenther <rguenther@suse.de>
11127
11128 PR lto/47822
11129 * tree.c (free_lang_data_in_decl): Clean builtins from
11130 the TU decl BLOCK_VARS.
23e0d930 11131
b2cddfc8
AO
111322011-02-19 Alexandre Oliva <aoliva@redhat.com>
11133
11134 PR debug/47620
11135 PR debug/47630
11136 * haifa-sched.c (fix_tick_ready): Skip tick computation
11137 for debug insns.
11138
becf4c11
RG
111392011-02-19 Richard Guenther <rguenther@suse.de>
11140
11141 PR lto/47647
11142 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11143 Remove lazy BLOCK_VARS streaming.
11144 (lto_input_ts_block_tree_pointers): Likewise.
11145 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11146
27f98305
JM
111472011-02-19 Joseph Myers <joseph@codesourcery.com>
11148
11149 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11150
064bf3f4
JM
111512011-02-19 Joseph Myers <joseph@codesourcery.com>
11152
11153 * config/i386/biarch32.h, config/i386/mach.h,
11154 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11155
9215ddc3
JJ
111562011-02-19 Jakub Jelinek <jakub@redhat.com>
11157
11158 PR target/47800
11159 * config/i386/i386.md (peephole2 for shift and plus): Use
11160 operands[1] original mode in the first insn.
11161
8b021004
MS
111622011-02-18 Mike Stump <mikestump@comcast.net>
11163
65ded153 11164 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 11165
f84ae14c
JH
111662011-02-18 Jan Hubicka <jh@suse.cz>
11167
11168 PR middle-end/47788
65ded153
EB
11169 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11170 to zero when the function is not inlinable at all.
f84ae14c 11171
eddabc80
JDA
111722011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11173
11174 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11175 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11176 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11177 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11178 * config/pa/t-pa64: Likewise.
11179 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11180
ca3da783
JJ
111812011-02-18 Jakub Jelinek <jakub@redhat.com>
11182
11183 PR driver/47787
11184 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11185
430aa868
JDA
111862011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11187
11188 PR target/47792
11189 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11190
4bf7ff7e
AS
111912011-02-18 Anatoly Sokolov <aesok@post.ru>
11192
11193 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11194 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11195 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11196 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11197 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11198 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11199 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11200 m32r_load_postinc_p, m32r_store_preinc_predec_p,
11201 m32r_legitimate_address_p): New functions.
11202 * config/m32r/constraints.md (constraint "S"): Don't use
11203 STORE_PREINC_PREDEC_P.
11204 (constraint "U"): Don't use LOAD_POSTINC_P.
11205
7efcf910
CLT
112062011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
11207
11208 PR rtl-optimization/46178
11209 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11210 compute ira_hard_regno_cover_class[].
11211
237d6259
RG
112122011-02-18 Richard Guenther <rguenther@suse.de>
11213
11214 PR lto/47798
11215 * lto-streamer.h (lto_global_var_decls): Declare.
11216 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11217 statics for global var processing.
11218
12d80acc
RG
112192011-02-18 Richard Guenther <rguenther@suse.de>
11220
11221 PR tree-optimization/47737
11222 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11223 edge dominance check.
11224
abfea58d
JJ
112252011-02-18 Jakub Jelinek <jakub@redhat.com>
11226
11227 PR debug/47780
11228 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11229 avoid invalid rtx sharing.
11230
f73c8882
GP
112312011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
11232
11233 * doc/cpp.texi (Obsolete Features): Add background on the
11234 origin of assertions.
11235
d764a8e6
IS
112362011-02-17 Iain Sandoe <iains@gcc.gnu.org>
11237
11238 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 11239 objc_abi == 2.
d764a8e6
IS
11240 * config/darwin.c (output_objc_section_asm_op): Added support for
11241 ABI v1 and v2.
11242 (is_objc_metadata): New.
11243 (darwin_objc2_section): New.
11244 (darwin_objc1_section): New.
11245 (machopic_select_section): Added support for ABI v1 and v2.
11246 (darwin_emit_objc_zeroed): New.
11247 (darwin_output_aligned_bss): Detect objc metadata and treat it
11248 appropriately.
11249 (darwin_asm_output_aligned_decl_common): Same.
11250 (darwin_asm_output_aligned_decl_local): Same.
11251 * config/darwin-sections.def: Updated for ABI v1 and v2.
11252 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11253 compiling Objective-C code for the NeXT runtime, default to using
11254 ABI version 0 for 32-bit, and version 2 for 64-bit.
11255
0a8134ca
JM
112562011-02-17 Joseph Myers <joseph@codesourcery.com>
11257
11258 * common.opt (optimize_fast): New Variable.
11259 * opts.c (default_options_optimization): Use opts->x_optimize_fast
11260 instead of local variable ofast.
11261
0a256240
NP
112622011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
11263
11264 * doc/invoke.texi (fobjc-abi-version): Documented.
11265 (fobjc-nilcheck): Documented.
11266 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11267 version.
11268
fa381cb2
JM
112692011-02-17 Joseph Myers <joseph@codesourcery.com>
11270
11271 PR driver/47390
11272 * common.opt (export-dynamic): New Driver option.
11273 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11274
5437eaa6
JM
112752011-02-17 Joseph Myers <joseph@codesourcery.com>
11276
11277 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11278
bb7e6d55
AO
112792011-02-17 Alexandre Oliva <aoliva@redhat.com>
11280 Jan Hubicka <jh@suse.cz>
11281
11282 PR debug/47106
11283 PR debug/47402
11284 * cfgexpand.c (account_used_vars_for_block): Remove.
11285 (estimated_stack_frame_size): Use referenced vars.
11286 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11287 that were referenced in the original function. Test src_fn
11288 rather than cfun. Drop redundant get_var_ann.
11289 (setup_one_parameter): Drop redundant get_var_ann.
11290 (declare_return_variable): Likewise.
11291 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11292 (copy_arguments_for_versioning): Drop redundant get_var_ann.
11293 * ipa-inline.c (compute_inline_parameters): Do not compute
11294 disregard_inline_limits here.
bb7e6d55
AO
11295 (compute_inlinable_for_current, pass_inlinable): New.
11296 (pass_inline_parameters): Require PROP_referenced_vars.
11297 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 11298 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
11299 (cgraph_analyze_function): Set .disregard_inline_limits.
11300 * tree-sra.c (convert_callers): Compute inliner parameters
11301 only for functions already in SSA form.
11302
f181a8a7
JM
113032011-02-17 Joseph Myers <joseph@codesourcery.com>
11304
11305 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11306 -mlittle-endian-data.
11307
c6869789
JM
113082011-02-17 Joseph Myers <joseph@codesourcery.com>
11309
11310 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11311 -mno-fpu, not -fpu and -no-fpu.
11312 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11313 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11314
fbf4bfd3
UB
113152011-02-17 Uros Bizjak <ubizjak@gmail.com>
11316
11317 PR target/43653
11318 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11319 input reload with PLUS RTX.
11320
70be5dc7
JM
113212011-02-16 Joseph Myers <joseph@codesourcery.com>
11322
11323 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11324 of InverseVar(MDMX).
11325
30b1646e
JM
113262011-02-16 Joseph Myers <joseph@codesourcery.com>
11327
11328 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11329 --m4-340.
11330
ab7b71e9
JM
113312011-02-16 Joseph Myers <joseph@codesourcery.com>
11332
11333 * config/mn10300/mn10300.opt (mno-crt0): New.
11334
466f3f08
JM
113352011-02-16 Joseph Myers <joseph@codesourcery.com>
11336
11337 * config/m68k/uclinux.opt (static-libc): New Driver option.
11338
8226cd7b
JM
113392011-02-16 Joseph Myers <joseph@codesourcery.com>
11340
11341 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11342
45cab1d7
JM
113432011-02-16 Joseph Myers <joseph@codesourcery.com>
11344
11345 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11346 %{muser-extend-enabled}.
11347
65aab64f
RG
113482011-02-16 Richard Guenther <rguenther@suse.de>
11349
11350 PR tree-optimization/47738
11351 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11352 the TODO from tree_predictive_commoning.
11353
fc2fa4fb
JL
113542011-02-15 Jeff Law <law@redhat.com>
11355
11356 Revert
11357 2011-01-25 Jeff Law <law@redhat.com>
11358
11359 PR rtl-optimization/37273
11360 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11361 handle them like argument loads from stack slots. Do not double
11362 count memory for memory constants and argument loads from stack slots.
11363
4e380b8e
L
113642011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11365
11366 PR middle-end/47725
11367 * combine.c (cant_combine_insn_p): Revert the last change.
11368
e3a69bb4
MM
113692011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11370
11371 PR target/47755
11372 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11373 mode for vector constants. Remove code that checks for TImode.
11374
de650422
AO
113752011-02-15 Alexandre Oliva <aoliva@redhat.com>
11376
11377 PR debug/47106
11378 PR debug/47402
11379 * cgraph.h (compute_inline_parameters): Return void.
11380 * ipa-inline.c (compute_inline_parameters): Adjust.
11381
30925d94
AO
113822011-02-15 Alexandre Oliva <aoliva@redhat.com>
11383
11384 PR debug/47106
11385 PR debug/47402
11386 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11387 rather than decl.
11388 * cfgexpand.c (estimated_stack_frame_size): Likewise.
11389 * ipa-inline.c (compute_inline_parameters): Adjust.
11390
1b9a784a
AO
113912011-02-15 Alexandre Oliva <aoliva@redhat.com>
11392
11393 PR debug/47106
11394 PR debug/47402
11395 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11396 Adjust all users. Pass FN to...
11397 * tree-flow-inline.h (first_referenced_var): ... this. Add
11398 fn argument.
11399 * ipa-struct-reorg.c: Adjust.
11400 * tree-dfa.c: Adjust.
11401 * tree-into-ssa.c: Adjust.
11402 * tree-sra.c: Adjust.
11403 * tree-ssa-alias.c: Adjust.
11404 * tree-ssa-live.c: Adjust.
11405 * tree-ssa.c: Adjust.
11406 * tree-ssanames.c: Adjust.
11407 * tree-tailcall.c: Adjust.
11408
27c6b086
AO
114092011-02-15 Alexandre Oliva <aoliva@redhat.com>
11410
11411 PR debug/47106
11412 PR debug/47402
11413 * tree-flow.h (referenced_var_lookup): Add fn parameter.
11414 Adjust all callers.
11415 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11416 * tree-flow-inline.h: Adjust.
11417 * gimple-pretty-print.c: Adjust.
11418 * tree-into-ssa.c: Adjust.
11419 * tree-ssa.c: Adjust.
11420 * cfgexpand.c: Adjust.
11421
679e8183
NF
114222011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11423
fbf4bfd3
UB
11424 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11425 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11426 (EXTRA_CONSTRAINT): Delete.
11427 * config/iq2000/constraints.md: New file.
11428 * config/iq2000/iq2000.md: Include it.
679e8183
NF
11429 (define_insn ""): Delete.
11430 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11431 unsupported constraint letters from patterns.
11432 (call_value, call_value_internal1): Likewise.
11433 (call_value_multiple_internal1): Likewise.
11434
a45d420a
NC
114352011-02-15 Nick Clifton <nickc@redhat.com>
11436
11437 * config/mn10300/mn10300.c: Include tm-constrs.h.
11438 (struct liw_data): New data structure describing an LIW candidate
11439 instruction.
11440 (extract_bundle): Use struct liw_data. Allow small integer
11441 operands for some instructions.
11442 (check_liw_constraints): Use struct liw_data. Remove swapped
11443 parameter. Add comments describing the checks. Fix bug when
11444 assigning the source of liw1 to the source of liw2.
11445 (liw_candidate): Delete. Code moved into extract_bundle.
11446 (mn10300_bundle_liw): Use struct liw_data. Check constraints
11447 before swapping.
11448 * config/mn10300/predicates.md (liw_operand): New predicate.
11449 Allows registers and small integer constants.
11450 * config/mn10300/constraints.md (O): New constraint. Accetps
11451 integers in the range -8 to +7 inclusive.
11452 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11453 for moving a small integer into a register. Give this alternative
11454 LIW attributes.
11455 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11456 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11457 using the J,K,L and M constraints,
11458 (liw): Remove SI mode on second operands to allow for HI and QI
11459 mode values.
11460 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
11461 instruction.
11462
8a73faf1
L
114632011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11464
11465 PR middle-end/47725
11466 * combine.c (cant_combine_insn_p): Check zero/sign extended
11467 hard registers.
11468
48feba28
RG
114692011-02-15 Richard Guenther <rguenther@suse.de>
11470
11471 PR tree-optimization/47743
11472 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11473 for a non-type-compatible VN lookup bail out.
11474
ad1c1eeb
NF
114752011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11476
11477 * config/fr30/constraints.md: New file.
11478 * config/fr30/fr30.md: Include it.
11479 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11480 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11481 (EXTRA_CONSTRAINT): Delete.
11482
49ac143d
NF
114832011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11484
11485 * config/frv/constraints.md: New file.
11486 * config/frv/predicates.md: Include it.
11487 * config/frv/frv.c (reg_class_from_letter): Delete.
11488 (frv_option_override): Don't initialize it.
11489 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11490 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11491 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11492 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11493 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11494 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11495 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11496 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11497 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11498 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11499 (REG_CLASS_FROM_CONSTRAINT): Delete.
11500
c95f9494
JJ
115012011-02-15 Jakub Jelinek <jakub@redhat.com>
11502
11503 PR middle-end/47581
11504 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11505 if frame size is 0 in a leaf function.
11506
13aed611
RO
115072011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11508
11509 PR pch/14940
11510 * config/alpha/host-osf.c: New file.
11511 * config/alpha/x-osf: New file.
11512 * config.host (alpha*-dec-osf*): Use it.
11513
b09c3081
AS
115142011-02-14 Anatoly Sokolov <aesok@post.ru>
11515
11516 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11517 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11518 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11519 (rx_mode_dependent_address_p): ...this. Make static. Change argument
11520 type to const_rtx.
11521 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11522
d634083b
NF
115232011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11524
11525 * config/stormy16/constraints.md: New file.
11526 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11527 Use satisfies_constraint_Q and satisfies_constraint_R.
11528 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11529 Delete.
11530 (xstormy16_legitiamte_address_p): Declare.
11531 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11532 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11533 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 11534 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
11535 Un-staticize.
11536 (xstormy16_extra_constraint_p): Delete.
11537
c7dd803e
EB
115382011-02-14 Eric Botcazou <ebotcazou@adacore.com>
11539
11540 PR tree-optimization/46494
11541 * loop-unroll.c (split_edge_and_insert): Adjust comment.
11542 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11543 (pass_rtl_loop_done): Add TODO_verify_flow.
11544 * fwprop.c (pass_rtl_fwprop): Likewise.
11545 * modulo-sched.c (pass_sms): Likewise.
11546 * tree-ssa-dom.c (pass_dominator): Likewise.
11547 * tree-ssa-loop-ch.c (pass_ch): Likewise.
11548 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11549 (pass_tree_loop_done): Likewise.
11550 * tree-ssa-pre.c (execute_pre): Likewise.
11551 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11552 * tree-ssa-sink.c (pass_sink_code): Likewise.
11553 * tree-vrp.c (pass_vrp): Likewise.
11554
c6150df6
NF
115552011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11556
c7dd803e
EB
11557 * config/v850/constraints.md: New file.
11558 * config/v850/v850.md: Include it.
11559 * config/v850/predicates.md (reg_or_0_operand): Use
11560 satisfies_constraint_G.
11561 (special_symbolref_operand): Use satisfies_constraint_K.
11562 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11563 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11564 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11565 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11566 (EXTRA_CONSTRAINT): Delete.
11567 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11568 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11569 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 11570
30dd1ea3
AS
115712011-02-14 Anatoly Sokolov <aesok@post.ru>
11572
11573 PR target/47696
11574 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11575 description.
11576
944f4bb3
NF
115772011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11578
11579 * config/mcore/constraints.md: New file.
11580 * config/mcore/mcore.md: Include it.
11581 * config/mcore/mcore.c (reg_class_from_letter): Delete.
11582 * config/mcore/mcore.h (reg_class_from_letter): Delete.
11583 (REG_CLASS_FROM_LETTER): Delete.
11584 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11585 insn_const_int_ok_for_constraint.
11586 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11587 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11588 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11589 (EXTRA_CONSTRAINT): Delete.
11590
ad56a54c
RO
115912011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11592
11593 PR ada/41929
11594 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11595 (IS_SIGHANDLER): Define.
11596 (sparc64_is_sighandler): New function, split off from
11597 sparc64_fallback_frame_state.
11598 (sparc_is_sighandler): New function, split off from
11599 sparc_fallback_frame_state.
11600 (sparc64_fallback_frame_state): Merge with ...
11601 (sparc_fallback_frame_state): ... this into ...
11602 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
11603 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
11604 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
11605 stack instead of hardcoded offsets.
ad56a54c 11606
fbf4bfd3 116072011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
11608
11609 PR target/45808
11610 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11611
029c8f3e
RW
116122011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11613
11614 * configure: Regenerate.
11615
a016dc83
JM
116162011-02-12 Joseph Myers <joseph@codesourcery.com>
11617
11618 PR driver/45731
11619 * gcc.c (asm_options): Correct spec matching --target-help.
11620
8957a0ec
MJ
116212011-02-12 Martin Jambor <mjambor@suse.cz>
11622
11623 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11624 to gimple call error.
11625
6ef828bc
MS
116262011-02-12 Mike Stump <mikestump@comcast.net>
11627
11628 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11629 comments in backslash regions.
11630
a4015be5
MS
116312011-02-12 Mike Stump <mikestump@comcast.net>
11632 Jakub Jelinek <jakub@redhat.com>
11633 Iain Sandoe <iains@gcc.gnu.org>
11634
11635 PR target/47324
11636 * dwarf2out.c (output_cfa_loc): When required, apply the
11637 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11638 (output_loc_sequence): Likewise.
11639 (output_loc_operands_raw): Likewise.
11640 (output_loc_sequence_raw): Likewise.
11641 (output_cfa_loc): Likewise.
11642 (output_loc_list): Suppress register number adjustment when
11643 calling output_loc_sequence()
11644 (output_die): Likewise.
11645
5378dda2
AS
116462011-02-12 Anatoly Sokolov <aesok@post.ru>
11647
11648 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11649 Remove macros.
11650 * config/xtensa/xtensa.c (xtensa_register_move_cost,
11651 xtensa_memory_move_cost): New functions.
11652 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11653
f3d533d3
AO
116542011-02-12 Alexandre Oliva <aoliva@redhat.com>
11655
11656 PR lto/47225
11657 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11658 in the current directory.
11659 * configure: Rebuilt.
11660
9d53403c
IS
116612011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11662
11663 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 11664 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
11665 correct indents of the preceding block.
11666
a350a6c8
IS
116672011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11668
11669 * gcc.c (driver_handle_option): Concatenate the argument to -F with
11670 the switch.
11671
bab79a40
JM
116722011-02-11 Joseph Myers <joseph@codesourcery.com>
11673
11674 * common.opt (nostartfiles): New Driver option.
11675
1bbc6693
XDL
116762011-02-11 Xinliang David Li <davidxl@google.com>
11677
11678 PR tree-optimization/47707
11679 * tree-chrec.c (convert_affine_scev): Keep type precision.
11680
1da7d8c0
EB
116812011-02-11 Eric Botcazou <ebotcazou@adacore.com>
11682
11683 PR tree-optimization/47420
11684 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11685
116862011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
11687
11688 PR rtl-optimization/47614
11689 * rtl.h (check_for_inc_dec): Declare.
11690 * dse.c (check_for_inc_dec): Externalize...
11691 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11692 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11693
4df47bca
JM
116942011-02-11 Joseph Myers <joseph@codesourcery.com>
11695
11696 PR driver/47678
11697 * gcc.c (main): Do not compile inputs if there were errors in
11698 option handling.
11699 * opts-common.c (read_cmdline_option): Check for wrong language
11700 after other error checks.
11701
61502ca8
NF
117022011-02-11 Nathan Froyd <froydnj@codesourcery.com>
11703
11704 * cgraph.c: Fix comment typos.
11705 * cgraph.h: Likewise.
11706 * cgraphunit.c: Likewise.
11707 * ipa-cp.c: Likewise.
11708 * ipa-inline.c: Likewise.
11709 * ipa-prop.c: Likewise.
11710 * ipa-pure-const.c: Likewise.
11711 * ipa-ref.c: Likewise.
11712 * ipa-reference.c: Likewise.
11713
b63f974e
JJ
117142011-02-11 Jakub Jelinek <jakub@redhat.com>
11715
d50c5e0c
JJ
11716 PR debug/47684
11717 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 11718
6dd2a13c
RO
117192011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11720
11721 PR testsuite/47400
11722 * doc/sourcebuild.texi (Require Support): Document
11723 dg-require-ascii-locale.
11724
4a087ccf
MX
117252011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
11726
11727 * doc/lto.texi (Write summary): Fix missing parentheses.
11728
a4403164
DD
117292011-02-10 DJ Delorie <dj@redhat.com>
11730
11731 * config/m32c/m32c.c (m32c_option_override): Disable
11732 -fcombine-stack-adjustments until flag value tracking and compare
11733 optimization can be rewritten.
11734
4fac45bd
PB
117352011-02-10 Peter Bergner <bergner@vnet.ibm.com>
11736
11737 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11738 PROCESSOR_POWER7.
11739 (PROCESSOR_DEFAULT64): Likewise.
11740
72602cd1
RH
117412011-02-10 Richard Henderson <rth@redhat.com>
11742
11743 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11744 change from 2011-02-03.
11745 * config/rx/rx.c (flags_from_code): Likewise.
11746 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11747 is valid, n/pz otherwise.
11748 (rx_select_cc_mode): Return CCmode if Y is not zero.
11749
ea57f573
RG
117502011-02-10 Richard Guenther <rguenther@suse.de>
11751
ea4c3e65 11752 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 11753
92b1d23b
RG
117542011-02-10 Richard Guenther <rguenther@suse.de>
11755
11756 PR tree-optimization/47677
11757 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11758
525a2d06
JJ
117592011-02-10 Jakub Jelinek <jakub@redhat.com>
11760
11761 PR target/47665
11762 * combine.c (make_compound_operation): Only change shifts into
11763 multiplication for SCALAR_INT_MODE_P.
11764
06c969bd
JZ
117652011-02-10 Jie Zhang <jie@codesourcery.com>
11766
11767 PR testsuite/47622
11768 Revert
11769 2011-02-05 Jie Zhang <jie@codesourcery.com>
11770 PR debug/42631
11771 * web.c (entry_register): Don't clobber the number of the
11772 first uninitialized reference in used[].
11773
282ec48e
RG
117742011-02-09 Richard Guenther <rguenther@suse.de>
11775
11776 PR tree-optimization/47664
11777 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11778 all edges again.
11779
df98c3e8
DE
117802011-02-09 David Edelsohn <dje.gcc@gmail.com>
11781
d0f21cd6
DE
11782 PR target/46481
11783 PR target/47032
df98c3e8
DE
11784 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11785 PROCESSOR_POWER7.
11786 (PROCESSOR_DEFAULT64): Same.
11787 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11788
67b6839f
RO
117892011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11790
11791 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11792
4fd73214
MJ
117932011-02-09 Martin Jambor <mjambor@suse.cz>
11794
11795 PR middle-end/45505
11796 * tree-sra.c (struct access): New flags grp_scalar_read and
11797 grp_scalar_write. Changed description of assignment read and write
11798 flags.
11799 (dump_access): Dump new flags, reorder all of them.
11800 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11801 to detect multiple scalar reads.
11802 (analyze_access_subtree): Use the new scalar read write flags instead
11803 of the old flags. Adjusted comments.
11804
91140cd3
DD
118052011-02-08 DJ Delorie <dj@redhat.com>
11806
11807 PR target/47548
11808 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11809 patterns.
11810
4254bbfe
JM
118112011-02-08 Joseph Myers <joseph@codesourcery.com>
11812
11813 * config/m68k/uclinux.opt: New.
11814 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11815
f1fda84e
JM
118162011-02-08 Joseph Myers <joseph@codesourcery.com>
11817
11818 * config/cris/elf.opt (sim): New Driver option.
11819
4933ae74
JM
118202011-02-08 Joseph Myers <joseph@codesourcery.com>
11821
11822 * config/xtensa/elf.opt: New.
11823 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11824
4ad70280
JM
118252011-02-08 Joseph Myers <joseph@codesourcery.com>
11826
11827 * config/vax/elf.opt: New.
11828 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11829
20893707
JM
118302011-02-08 Joseph Myers <joseph@codesourcery.com>
11831
11832 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11833
b8e7038e
JM
118342011-02-08 Joseph Myers <joseph@codesourcery.com>
11835
11836 * config/gnu-user.opt: New.
11837 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11838 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11839 *-*-uclinux*): Use gnu-user.opt.
11840
e1c5225a
TS
118412011-02-08 Thomas Schwinge <thomas@schwinge.name>
11842
11843 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11844 * config/i386/gnu.h (CPP_SPEC): Likewise.
11845
5e46b0c6
ILT
118462011-02-08 Ian Lance Taylor <iant@google.com>
11847
11848 * common.opt (fcx-limited-range): Add SetByCombined flag.
11849 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11850 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11851 (fassociative-math, freciprocal-math): Likewise.
11852 (funsafe-math-optimizations): Likewise.
11853 * opth-gen.awk: Handle SetByCombined.
11854 * optc-gen.awk: Likewise.
ea4c3e65 11855 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
11856 (set_unsafe_math_optimizations_flags): Likewise.
11857 * doc/options.texi (Option properties): Document SetByCombined.
11858
32243d46
JM
118592011-02-08 Joseph Myers <joseph@codesourcery.com>
11860
11861 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11862 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11863 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11864 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11865 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11866
479c1fb3
SP
118672011-02-08 Sebastian Pop <sebastian.pop@amd.com>
11868
11869 PR tree-optimization/46834
11870 PR tree-optimization/46994
11871 PR tree-optimization/46995
11872 * graphite-sese-to-poly.c (used_outside_reduction): New.
11873 (detect_commutative_reduction): Call used_outside_reduction.
11874 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11875 translate_scalar_reduction_to_array only when at least one
11876 loop-phi/close-phi tuple has been detected.
11877
3865a06f
RG
118782011-02-08 Richard Guenther <rguenther@suse.de>
11879
11880 PR middle-end/47639
11881 * tree-vect-generic.c (expand_vector_operations_1): Update
11882 stmts here ...
11883 (expand_vector_operations): ... not here. Cleanup EH info
11884 and the CFG if required.
11885
62902f3f
RG
118862011-02-08 Richard Guenther <rguenther@suse.de>
11887
11888 PR tree-optimization/47641
11889 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11890 require type compatibility.
11891
0efb9d64
AK
118922011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11893
11894 * gimple-low.c (lower_function_body): Don't remove the location of
11895 the return statement here.
11896 (lower_gimple_return): Do it here instead but only if the return
11897 statement is actually used twice.
11898
034b8ae4
RG
118992011-02-08 Richard Guenther <rguenther@suse.de>
11900
11901 PR tree-optimization/47632
11902 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11903 unused up_to_stmt parameter, return whether cfg-cleanup is
11904 necessary, remove EH info properly.
11905 (forward_propagate_into_gimple_cond): Adjust caller.
11906 (forward_propagate_into_cond): Likewise.
11907 (forward_propagate_comparison): Likewise.
11908 (tree_ssa_forward_propagate_single_use_vars): Make
11909 forward_propagate_comparison case similar to the two others.
11910
298362c8
NC
119112011-02-08 Nick Clifton <nickc@redhat.com>
11912
11913 * config/mn10300/mn10300.opt (mliw): New command line option.
11914 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11915 (liw_bundling): New automaton.
11916 (liw): New attribute.
11917 (liw_op): New attribute.
11918 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11919 (movsi_internal): Add LIW attributes.
11920 (andsi3): Likewise.
11921 (iorsi3): Likewise.
11922 (xorsi3): Likewise.
11923 (addsi3): Separate register and immediate alternatives.
11924 Add LIW attributes.
11925 (subsi3): Likewise.
11926 (cmpsi): Likewise.
11927 (aslsi3): Likewise.
11928 (lshrsi3): Likewise.
11929 (ashrsi3): Likewise.
11930 (liw): New pattern.
11931 * config/mn10300/mn10300.c (liw_op_names): New
11932 (mn10300_print_operand): Handle 'W' operand descriptor.
11933 (extract_bundle): New function.
11934 (check_liw_constraints): New function.
11935 (liw_candidate): New function.
11936 (mn10300_bundle_liw): New function.
11937 (mn10300_reorg): New function.
11938 (TARGET_MACHINE_DEPENDENT_REORG): Define.
11939 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11940 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11941 __LIW__ or __NO_LIW__.
11942 * doc/invoke.texi: Describe the -mliw command line option.
11943
90488014
JDA
119442011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11945
11946 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11947 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11948 pthread_mutex_unlock): Remove.
11949 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11950 * config/pa/t-pa64: Likewise.
11951 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11952 shared libc if not linking against libpthread.
11953 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11954
689ff841
IS
119552011-02-07 Iain Sandoe <iains@gcc.gnu.org>
11956
11957 PR target/47558
11958 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11959 on 10.6 and later to ensure that we always use the unwinder from
11960 the system. Only add -no_compact_unwind when tarteting darwin
11961 10.6 or later.
11962
821014aa
SE
119632011-02-07 Steve Ellcey <sje@cup.hp.com>
11964
11965 PR target/46997
11966 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11967 (vec_interleave_lowv2sf): Ditto.
11968 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11969 (vec_extract_oddv2sf): Ditto.
11970
41cf94fb
MS
119712011-02-07 Mike Stump <mikestump@comcast.net>
11972
62dea57d 11973 PR target/42333
41cf94fb
MS
11974 Add __ieee_divdc3 entry point.
11975 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11976 entry point.
11977 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11978 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11979 * config/darwin.c (darwin_rename_builtins): Add.
11980 * config/darwin-protos.h (darwin_rename_builtins): Add.
11981
ee09a3dd
MM
119822011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11983
11984 PR target/47636
11985 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11986 for the condition.
11987
83296cd0
MS
119882011-02-07 Mike Stump <mikestump@comcast.net>
11989
ea4c3e65 11990 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 11991
0f4e946f
DC
119922011-02-07 Denis Chertykov <chertykov@gmail.com>
11993
11994 PR target/47534
11995 * config/avr/libgcc.S (exit): Move .endfunc
11996
1ec87690
RG
119972011-02-07 Richard Guenther <rguenther@suse.de>
11998
11999 PR tree-optimization/47615
12000 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12001 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12002 (run_scc_vn): Initialize it.
12003 (visit_reference_op_load): Use it.
12004 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12005
b46ae6da
UW
120062011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12007
12008 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12009 DImode trapping arithmetic libfuncs.
12010
c0aae19c
RG
120112011-02-07 Richard Guenther <rguenther@suse.de>
12012
12013 PR tree-optimization/47621
12014 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12015 two duplicates ...
12016 (execute_update_addresses_taken): ... here. Make it more
12017 conservative in what we accept.
12018
295d926b
JM
120192011-02-06 Joseph Myers <joseph@codesourcery.com>
12020
12021 * config/sparc/freebsd.h (ASM_SPEC): Define.
12022 * config/sparc/vxworks.h (ASM_SPEC): Define.
12023
bdeb2471
JM
120242011-02-06 Joseph Myers <joseph@codesourcery.com>
12025
12026 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12027
d5d3781a
SB
120282011-02-06 Steven Bosscher <steven@gcc.gnu.org>
12029
12030 * doc/invoke.texi: Remove reference to compiler internals from
12031 user documentation.
12032
12033 * reg-notes.def: Remove REG_VALUE_PROFILE.
12034 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12035
c42c09fc
JJ
120362011-02-05 Jakub Jelinek <jakub@redhat.com>
12037
12038 PR middle-end/47610
12039 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 12040 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 12041
beea2755
JZ
120422011-02-05 Jie Zhang <jie@codesourcery.com>
12043
12044 PR debug/42631
12045 * web.c (entry_register): Don't clobber the number of the
12046 first uninitialized reference in used[].
12047
a130584a
SP
120482011-02-04 Sebastian Pop <sebastian.pop@amd.com>
12049
12050 PR tree-optimization/46194
12051 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12052 (build_classic_dist_vector_1): Do not represent classic distance
12053 vectors when the access functions are variating in different loops.
12054
962101ac
JM
120552011-02-04 Joseph Myers <joseph@codesourcery.com>
12056
12057 * config/mips/iris6.opt: New.
12058 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12059
55eaaa5b
RH
120602011-02-04 Richard Henderson <rth@redhat.com>
12061 Steve Ellcey <sje@cup.hp.com>
12062
12063 PR target/46997
12064 * config/ia64/predicates.md (mux1_brcst_element): New.
12065 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12066 * config/ia64/ia64.c (ia64_unpack_assemble): New.
12067 (ia64_unpack_sign): New.
12068 (ia64_expand_unpack): Rewrite using new routines.
12069 (ia64_expand_widen_sum): Ditto.
12070 (ia64_expand_dot_prod_v8qi): Ditto.
12071 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12072 routines, add endian check.
12073 (pmpy2_even): Rename from pmpy2_r, add endian check.
12074 (pmpy2_odd): Rename from pmpy2_l, add endian check.
12075 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12076 (vec_widen_smult_hi_v4hi): Ditto.
12077 (vec_widen_umult_lo_v4hi): Ditto.
12078 (vec_widen_umult_hi_v4hi): Ditto.
12079 (mulv2si3): Change endian checks.
12080 (sdot_prodv4hi): Rewrite with new calls.
12081 (udot_prodv4hi): New.
12082 (vec_pack_ssat_v4hi): Add endian check.
12083 (vec_pack_usat_v4hi): Ditto.
12084 (vec_pack_ssat_v2si): Ditto.
12085 (max1_even): Rename from max1_r, add endian check.
12086 (max1_odd): Rename from max1_l, add endian check.
12087 (*mux1_rev): Format change.
12088 (*mux1_mix): Ditto.
12089 (*mux1_shuf): Ditto.
12090 (*mux1_alt): Ditto.
12091 (*mux1_brcst_v8qi): Use new predicate.
12092 (vec_extract_evenv8qi): Remove endian check.
12093 (vec_extract_oddv8qi): Ditto.
12094 (vec_interleave_lowv4hi): Format change.
12095 (vec_interleave_highv4hi): Ditto.
12096 (mix2_even): Rename from mix2_r, add endian check.
12097 (mix2_odd): Rename from mux2_l, add endian check.
12098 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12099 (vec_extract_evenodd_helper): Format change.
12100 (vec_extract_evenv4hi): Remove endian check.
12101 (vec_extract_oddv4hi): Remove endian check.
12102 (vec_interleave_lowv2si): Format change.
12103 (vec_interleave_highv2si): Format change.
12104 (vec_initv2si): Remove endian check.
12105 (vecinit_v2si): Add endian check.
12106 (reduc_splus_v2sf): Add endian check.
12107 (reduc_smax_v2sf): Ditto.
12108 (reduc_smin_v2sf): Ditto.
12109 (vec_initv2sf): Remove endian check.
12110 (fpack): Add endian check.
12111 (fswap): Add endian check.
12112 (vec_interleave_highv2sf): Add endian check.
12113 (vec_interleave_lowv2sf): Add endian check.
12114 (fmix_lr): Add endian check.
12115 (vec_setv2sf): Format change.
12116 (*vec_extractv2sf_0_be): Use shift to extract operand.
12117 (*vec_extractv2sf_1_be): New.
12118 (vec_pack_trunc_v4hi): Add endian check.
12119 (vec_pack_trunc_v2si): Format change.
12120
dcde5957
JJ
121212011-02-04 Jakub Jelinek <jakub@redhat.com>
12122
12123 PR inline-asm/23200
12124 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 12125 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
12126 (stmt_is_replaceable_p): New function.
12127 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12128 callers.
12129 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12130 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12131 SSA_NAME_DEF_STMT.
12132 * tree-flow.h (stmt_is_replaceable_p): New prototype.
12133
a64a8e5a
JM
121342011-02-04 Joseph Myers <joseph@codesourcery.com>
12135
12136 * config/rs6000/xilinx.opt: New.
12137 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12138
4da2ed2f
JM
121392011-02-04 Joseph Myers <joseph@codesourcery.com>
12140
12141 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12142
a6e508f9
AS
121432011-02-03 Anatoly Sokolov <aesok@post.ru>
12144
12145 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12146 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12147 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12148 secondary_reload_info, xtensa_secondary_reload): Remove.
12149 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12150 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12151 (xtensa_preferred_reload_class): Make static. Change return and
12152 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12153 Use CONST_DOUBLE_P predicate.
12154 (xtensa_preferred_output_reload_class): New function.
12155 (xtensa_secondary_reload): Make static.
12156
82dc0de3
JM
121572011-02-03 Joseph Myers <joseph@codesourcery.com>
12158
12159 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12160 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12161 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12162
7fece979
JJ
121632011-02-03 Jakub Jelinek <jakub@redhat.com>
12164
12165 PR middle-end/31490
12166 * output.h (SECTION_RELRO): Define.
12167 (SECTION_MACH_DEP): Adjust.
12168 (get_variable_section): New prototype.
12169 * varpool.c (varpool_finalize_named_section_flags): New function.
12170 (varpool_assemble_pending_decls): Call it.
12171 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12172 * cgraphunit.c (cgraph_output_in_order): Call
12173 varpool_finalize_named_section_flags.
12174 * varasm.c (get_section): Allow section flags conflicts between
12175 relro and read-only sections if the section hasn't been declared yet.
12176 Set SECTION_OVERRIDE after diagnosing section type conflict.
12177 (get_variable_section): No longer static.
12178 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12179 readonly sections that need relocations.
12180 (decl_readonly_section_1): New function.
12181 (decl_readonly_section): Use it.
12182
12183 Revert:
509d65dd 12184 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
12185 Steve Ellcey <sje@cup.hp.com>
12186
12187 PR middle-end/31490
12188 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12189 if section attribute used.
12190
d18d5478
JJ
121912011-02-03 Jakub Jelinek <jakub@redhat.com>
12192
12193 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12194 * config/darwin.c (SECTION_NO_ANCHOR): Define.
12195 (darwin_init_sections): Remove assertion.
12196
6479ed4b
NC
121972011-02-03 Nick Clifton <nickc@redhat.com>
12198
12199 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12200 lt and ge.
38be4072 12201 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
12202 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12203 instead of "n" and "pz".
12204 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12205 CC_FLAG_S.
12206
89843f5d
JJ
122072011-02-03 Jakub Jelinek <jakub@redhat.com>
12208
65450d64
JJ
12209 PR target/47312
12210 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12211 fma, expand FMA_EXPR as fma{,f,l} call.
12212
7d58701c
JJ
12213 PR lto/47274
12214 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12215 copy them into a unsigned char variable and pass address of it to
12216 lto_output_data_stream.
12217
89843f5d
JJ
12218 PR target/47564
12219 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12220 around backend_init_target and lang_dependent_init_target calls.
12221 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12222 (verify_cgraph_node): Don't call set_cfun here. Use
12223 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12224 Set error_found for incorrectly represented calls to thunks.
12225
4deef538
AO
122262011-02-03 Alexandre Oliva <aoliva@redhat.com>
12227
12228 PR debug/43092
12229 PR rtl-optimization/43494
12230 * rtl.h (for_each_inc_dec_fn): New type.
12231 (for_each_inc_dec): Declare.
12232 * rtlanal.c (struct for_each_inc_dec_ops): New type.
12233 (for_each_inc_dec_find_inc_dec): New fn.
12234 (for_each_inc_dec_find_mem): New fn.
12235 (for_each_inc_dec): New fn.
12236 * dse.c (struct insn_size): Remove.
12237 (replace_inc_dec, replace_inc_dec_mem): Remove.
12238 (emit_inc_dec_insn_before): New fn.
12239 (check_for_inc_dec): Use it, along with for_each_inc_dec.
12240 (canon_address): Pass mem modes to cselib_lookup.
12241 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
12242 (cselib_lookup_from_insn): Likewise.
12243 (cselib_subst_to_values): Likewise.
12244 * cselib.c (find_slot_memmode): New var.
12245 (cselib_find_slot): New fn. Use it instead of
12246 htab_find_slot_with_hash everywhere.
12247 (entry_and_rtx_equal_p): Use find_slot_memmode.
12248 (autoinc_split): New fn.
12249 (rtx_equal_for_cselib_p): Rename and implement in terms of...
12250 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
12251 Deal with autoinc. Special-case recursion into MEMs.
12252 (cselib_hash_rtx): Likewise.
12253 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
12254 address and MEM modes.
12255 (cselib_subst_to_values): Add memmode, pass it on.
12256 Deal with autoinc.
12257 (cselib_lookup): Add memmode argument, pass it on.
12258 (cselib_lookup_from_insn): Add memmode.
12259 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12260 (struct cselib_record_autoinc_data): New.
12261 (cselib_record_autoinc_cb): New fn.
12262 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
12263 mode to cselib_lookup. Reset autoinced REGs here instead of...
12264 (cselib_process_insn): ... here.
12265 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12266 to cselib_lookup.
12267 (add_uses): Likewise, also to cselib_subst_to_values.
12268 (add_stores): Likewise.
12269 * sched-deps.c (add_insn_mem_dependence): Pass mode to
12270 cselib_subst_to_values.
12271 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
12272 * gcse.c (do_local_cprop): Adjusted.
12273 * postreload.c (reload_cse_simplify_set): Adjusted.
12274 (reload_cse_simplify_operands): Adjusted.
12275 * sel-sched-dump (debug_mem_addr_value): Pass mode.
12276
1551d44a
AO
122772011-02-03 Alexandre Oliva <aoliva@redhat.com>
12278
12279 PR tree-optimization/45122
12280 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12281 unsafe assumptions when there's more than one loop exit.
12282
c9485473
MM
122832011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12284
12285 PR target/47272
12286 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12287 Document using vector double with the load/store builtins, and
12288 that the load/store builtins always use Altivec instructions.
12289
12290 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12291 to use altivec memory instructions, even on VSX.
12292 (vector_altivec_store_<mode>): Ditto.
12293
12294 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12295 function.
12296
12297 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12298 V2DF, V2DI support to load/store overloaded builtins.
12299
12300 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12301 altivec load/store builtins for V2DF/V2DI types.
12302
12303 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12304 set avoid indexed addresses on power6 if -maltivec.
12305 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12306 vector_altivec_load/vector_altivec_store builtins.
12307 (altivec_expand_st_builtin): Ditto.
12308 (altivec_expand_builtin): Add VSX memory builtins.
12309 (rs6000_init_builtins): Add V2DI types to internal types.
12310 (altivec_init_builtins): Add support for V2DF/V2DI altivec
12311 load/store builtins.
12312 (rs6000_address_for_altivec): Insure memory address is appropriate
12313 for Altivec.
12314
12315 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12316 vec_vsx_ld and vec_vsx_st.
12317 (vsx_store_<mode>): Ditto.
12318
12319 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12320 variables to hold long long types for VSX vector memory builtins.
12321 (RS6000_BTI_unsigned_long_long): Ditto.
12322 (long_long_integer_type_internal_node): Ditti.
12323 (long_long_unsigned_type_internal_node): Ditti.
12324
12325 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12326 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12327 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12328
12329 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12330 short cuts.
12331 (vec_vsx_st): Ditto.
12332
b24d1acf
JM
123332011-02-02 Joseph Myers <joseph@codesourcery.com>
12334
12335 * config/pa/pa-hpux10.opt: New.
12336 * config/hpux11.opt (pthread): New Driver option.
12337 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12338 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12339
aa18dd0f
JM
123402011-02-02 Joseph Myers <joseph@codesourcery.com>
12341
12342 * config/ia64/vms.opt: New.
12343 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12344
28fc3eee
MM
123452011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12346
12347 PR target/47580
12348 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12349 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12350 generator functions.
12351 (vsx_floatuns<VSi><mode>2): Ditto.
12352 (vsx_fix_trunc<mode><VSi>2): Ditto.
12353 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12354
b5838b1f
JM
123552011-02-02 Joseph Myers <joseph@codesourcery.com>
12356
12357 * config/i386/djgpp.opt (posix): New Driver option.
12358
0db8fa89
GP
123592011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
12360
12361 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12362 Move to the unsupported targets list.
12363
9cd4f22a
PB
123642011-02-02 Peter Bergner <bergner@vnet.ibm.com>
12365
12366 PR rtl-optimization/47525
12367 * df-scan.c: Update copyright years.
12368 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12369 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12370
9ed8059c
RO
123712011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12372
12373 * config/i386/sysv4.h (TARGET_VERSION): Remove.
12374 (SUBTARGET_RETURN_IN_MEMORY): Remove.
12375 (ASM_OUTPUT_ASCII): Remove.
12376 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12377
2a737389
JL
123782011-02-02 Jeff Law <law@redhat.com>
12379
12380 PR middle-end/47543
12381 * reload.c (find_reloads_address): Handle reg+d address where both
12382 components are invalid by reloading the entire address.
12383
9dac82c4
SP
123842011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12385 Richard Guenther <rguenther@suse.de>
12386
12387 PR tree-optimization/40979
12388 PR bootstrap/47044
12389 * passes.c (init_optimization_passes): After LIM call copy_prop
12390 and DCE to clean up.
12391 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12392
14dd9aab
SP
123932011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12394
12395 PR tree-optimization/47576
12396 PR tree-optimization/47555
12397 * doc/invoke.texi (scev-max-expr-complexity): Documented.
12398 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12399 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12400 * tree-scalar-evolution.c (follow_ssa_edge): Use
12401 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12402
5cbf5c20
RG
124032011-02-02 Richard Guenther <rguenther@suse.de>
12404
12405 PR tree-optimization/47566
12406 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12407
83d70792
AO
124082011-02-02 Alexandre Oliva <aoliva@redhat.com>
12409
e829c321
AO
12410 PR debug/47106
12411 PR debug/47402
12412 * tree-inline.c (declare_return_variable): Remove unused caller
12413 variable.
12414
83d70792
AO
12415 PR debug/47106
12416 PR debug/47402
12417 * tree-flow-inline.h (clear_is_used, is_used_p): New.
12418 * cfgexpand.c (account_used_vars_for_block): Use them.
12419 * tree-nrv.c (tree_nrv): Likewise.
12420 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12421 (dump_scope_block): Likewise.
12422 (remove_unused_locals): Likewise.
12423
aaa2ac93
AO
12424 PR debug/47106
12425 PR debug/47402
12426 * tree-inline.c (declare_return_variable): Add result decl to
12427 local decls only once.
12428 * gimple-low.c (record_vars_into): Mark newly-created variables
12429 as referenced.
12430
a59d15cf
AO
124312011-02-02 Alexandre Oliva <aoliva@redhat.com>
12432
12433 PR debug/47498
12434 PR debug/47501
12435 PR debug/45136
12436 PR debug/45130
12437 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12438 debug insns.
12439 (no_real_insns_p, schedule_block, set_priorities): Drop special
12440 treatment of boundary debug insns.
38be4072 12441 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
12442 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12443 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12444 (BOUNDARY_DEBUG_INSN_P): Likewise.
12445 (SCHEDULE_DEBUG_INSN_P): Likewise.
12446 * sched-rgn.c (init_ready_list): Drop special treatment of
12447 boundary debug insns.
12448 * final.c (rest_of_clean_state): Clear notes' BB.
12449
6fc2f091
JM
124502011-02-01 Joseph Myers <joseph@codesourcery.com>
12451
12452 * config/openbsd.opt (assert=): New Driver option.
12453
fc523387
JM
124542011-02-01 Joseph Myers <joseph@codesourcery.com>
12455
12456 * config/i386/nto.opt: New.
12457 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12458
6d9821e5
JM
124592011-02-01 Joseph Myers <joseph@codesourcery.com>
12460
12461 * config/i386/netware.opt: New.
12462 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12463
cef932d4
JM
124642011-02-01 Joseph Myers <joseph@codesourcery.com>
12465
12466 * config/interix.opt (posix): New Driver option.
12467
22843acd
DD
124682011-02-01 DJ Delorie <dj@redhat.com>
12469
56490b74
DD
12470 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12471
22843acd
DD
12472 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12473 class for A0/A1.
12474
199c8f2f
SP
124752011-02-01 Sebastian Pop <sebastian.pop@amd.com>
12476
12477 PR tree-optimization/47561
12478 * toplev.c (process_options): Print the Graphite flags. Add
12479 flag_loop_flatten to the list of options requiring Graphite.
12480
926bcf22
JM
124812011-02-01 Joseph Myers <joseph@codesourcery.com>
12482
12483 * config/i386/cygming.opt (posix): New Driver option.
12484
59793c51
JM
124852011-02-01 Joseph Myers <joseph@codesourcery.com>
12486
12487 * config/arm/vxworks.opt: New.
12488 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12489
183c38a4
JM
124902011-02-01 Joseph Myers <joseph@codesourcery.com>
12491
12492 * config/alpha/elf.opt: New.
12493 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12494 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12495
9939e416
RG
124962011-02-01 Richard Guenther <rguenther@suse.de>
12497
12498 PR tree-optimization/47559
12499 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12500 store-motion on references that can throw.
12501
4a3c9687
BS
125022011-02-01 Bernd Schmidt <bernds@codesourcery.com>
12503
12504 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12505 * tree-pass.h (TDF_CSELIB): New macro.
12506 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12507 cselib_lookup): Check for it rather than for TDF_DETAILS.
12508
dd3b31fb
L
125092011-02-01 H.J. Lu <hongjiu.lu@intel.com>
12510
12511 PR driver/47547
12512 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12513 is HOST_BIT_BUCKET.
12514
12515 * opts.c (finish_options): Don't add x_aux_base_name if it is
12516 HOST_BIT_BUCKET.
12517
34c1de79
RG
125182011-02-01 Richard Guenther <rguenther@suse.de>
12519
12520 PR tree-optimization/47555
12521 Revert
12522 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
12523
12524 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12525
dd2804d2
SB
125262011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
12527
12528 PR gcc/46692
12529 * config/lm32/t-lm32: Add multilib for all CPU options.
12530
3fd3b156
RG
125312011-02-01 Richard Guenther <rguenther@suse.de>
12532
12533 PR tree-optimization/47541
12534 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12535 sure to have a field at offset zero.
12536
f16072b6
JM
125372011-01-31 Joseph Myers <joseph@codesourcery.com>
12538
12539 * config/arc/arc.opt (EB, EL): New Driver options.
12540
6456cf2e
JM
125412011-01-31 Joseph Myers <joseph@codesourcery.com>
12542
12543 * config/alpha/osf5.opt: New.
12544 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12545
cdde6ab4
JM
125462011-01-31 Joseph Myers <joseph@codesourcery.com>
12547
12548 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12549
7633415c
SP
125502011-01-31 Sebastian Pop <sebastian.pop@amd.com>
12551
12552 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12553 -floop-interchange.
12554 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12555 is an alias of -floop-interchange and that it requires the
12556 Graphite infrastructure.
12557 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12558 flag_loop_interchange based on the value of flag_tree_loop_linear.
12559
0425d6f5
JJ
125602011-01-31 Jakub Jelinek <jakub@redhat.com>
12561 Richard Guenther <rguenther@suse.de>
12562
12563 PR tree-optimization/47538
12564 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12565 type instead of r1type, except for comparisons. For right
12566 shifts and comparisons punt if there are mismatches in
12567 sizetype vs. non-sizetype types.
12568
500b16c3
RO
125692011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12570
12571 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12572 avx_runtime.
12573
e279edb0
RO
125742011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12575
12576 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12577 version number.
12578 * configure: Regenerate.
12579
c6092243
RO
125802011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12581
12582 * configure.ac (gcc_cv_ld_static_option): Define.
12583 (gcc_cv_ld_dynamic_option): Define.
12584 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12585 instead.
12586 (HAVE_LD_STATIC_DYNAMIC): Update message.
12587 (LD_STATIC_OPTION): Define.
12588 (LD_DYNAMIC_OPTION): Define.
12589 * configure: Regenerate.
12590 * config.in: Regenerate.
12591 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12592 HAVE_LD_STATIC_DYNAMIC]: Use them.
12593
d7862be3
NC
125942011-01-31 Nick Clifton <nickc@redhat.com>
12595
12596 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12597 registers inside interrupt handlers if the handler is not a leaf
12598 function.
12599
ba4ec0e0
NC
126002011-01-31 Nick Clifton <nickc@redhat.com>
12601
12602 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12603 reg_renumber returning an INVALID_REGNUM.
12604
29a63921
AO
126052011-01-31 Alexandre Oliva <aoliva@redhat.com>
12606
12607 PR libgcj/44341
12608 * doc/install.texi: Document host options discarded when cross
12609 configuring target libraries.
12610
ef591d3f
AO
126112011-01-31 Alexandre Oliva <aoliva@redhat.com>
12612
12613 Reverted:
12614 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
12615 PR debug/45136
12616 PR debug/45130
12617 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12618 debug insns.
12619 (no_real_insns_p, schedule_block, set_priorities): Drop special
12620 treatment of boundary debug insns.
38be4072 12621 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
12622 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12623 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12624 (BOUNDARY_DEBUG_INSN_P): Likewise.
12625 (SCHEDULE_DEBUG_INSN_P): Likewise.
12626 * sched-rgn.c (init_ready_list): Drop special treatment of
12627 boundary debug insns.
12628 * final.c (rest_of_clean-state): Clear notes' BB.
12629
61052244
AM
126302011-01-31 Alan Modra <amodra@gmail.com>
12631
12632 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12633 toc relative expressions as we do in print_operand_address.
12634
c4c8962b
KH
126352011-01-30 Kazu Hirata <kazu@codesourcery.com>
12636
12637 * doc/extend.texi: Follow spelling conventions.
12638 * doc/invoke.texi: Fix a typo.
12639
e543b94c
JM
126402011-01-30 Joseph Myers <joseph@codesourcery.com>
12641
12642 * config/hpux11.opt: New.
12643 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12644 ia64*-*-hpux*): Use hpux11.opt.
12645
509d65dd 126462011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
12647
12648 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12649 to tmake_file.
12650
7be03a0e
GP
126512011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12652
12653 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12654 support sites.
12655
419d1d37
GP
126562011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12657
b596ed64
GP
12658 * doc/install.texi (Binaries): Remove outdated reference for
12659 Motorola 68HC11/68HC12 downloads.
12660
126612011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 12662
419d1d37
GP
12663 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12664 Drepper's paper.
12665
4406d0e9
JW
126662011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
12667
12668 PR bootstrap/47147
12669 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12670 used by NetBSD.
12671
38be4072 126722011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
12673
12674 * value-prof.c (check_counter): Corrected error message.
12675
0cd98787
JZ
126762011-01-29 Jie Zhang <jie@codesourcery.com>
12677
12678 * config/arm/arm.c (arm_legitimize_reload_address): New.
12679 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12680 arm_legitimize_reload_address.
38be4072 12681 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 12682
9b798ac5
ILT
126832011-01-28 Ian Lance Taylor <iant@google.com>
12684
12685 * godump.c (go_define): Ignore macros whose definitions include
12686 two adjacent operands.
12687
591e29d9
JJ
126882011-01-28 Jakub Jelinek <jakub@redhat.com>
12689
12690 PR target/42894
12691 * varasm.c (force_const_mem): Store copy of x in desc->constant
12692 instead of x itself.
12693 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12694 itself into REG_EQUAL note.
12695
62dcc44a
JM
126962011-01-28 Joseph Myers <joseph@codesourcery.com>
12697
12698 * config/freebsd.opt (posix, rdynamic): New Driver options.
12699
c9f58b9a
RO
127002011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12701
12702 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12703 -Bstatic/-Bdynamic.
12704 * configure: Regenerate.
12705
5f02b9db
JM
127062011-01-27 Joseph Myers <joseph@codesourcery.com>
12707
12708 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12709 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12710
5df97412
AS
127112011-01-27 Anatoly Sokolov <aesok@post.ru>
12712
12713 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12714 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12715 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12716 (s390_preferred_reload_class): Make static. Change return and
12717 'rclass' argument type to reg_class_t.
12718
779d4b91
JH
127192011-01-27 Jan Hubicka <jh@suse.cz>
12720
12721 PR middle-end/46949
12722 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12723 (process_function_and_variable_attributes): Check defined weakrefs.
12724
e80b21ed
MJ
127252011-01-27 Martin Jambor <mjambor@suse.cz>
12726
12727 PR tree-optimization/47228
12728 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12729 build_ref_for_offset.
12730
6dcc4f31
UW
127312011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12732
12733 * config/spu/spu-elf.h (ASM_SPEC): Remove.
12734
509d65dd 127352011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
12736
12737 PR rtl-optimization/46856
12738 * postreload.c (reload_combine_recognize_const_pattern): Do not
12739 separate cc0 setter and user on cc0 targets.
12740
04af8788
NP
127412011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
12742
12743 PR c/43082
12744 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12745 passed a VOID_TYPE expression, immediately emit an error and
12746 return error_mark_node.
12747
f7a60085
JL
127482011-01-26 Jeff Law <law@redhat.com>
12749
12750 PR rtl-optimization/47464
12751 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12752 rather than may_trap_p as needed.
12753
5c2917ec
DD
127542011-01-26 DJ Delorie <dj@redhat.com>
12755
12756 PR rtl-optimization/46878
12757 * combine.c (insn_a_feeds_b): Check for the implicit cc0
12758 setter/user dependency as well.
12759
bef16e87
EB
127602011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12761
12762 PR rtl-optimization/44469
12763 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12764 after removing trivially dead basic blocks.
12765
c75d884b
JM
127662011-01-26 Joseph Myers <joseph@codesourcery.com>
12767
12768 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12769 * config/frv/frv.h (LINK_SPEC): Likewise.
12770 * config/i386/netware.h (LINK_SPEC): Likewise.
12771 * config/m68k/linux.h (ASM_SPEC): Likewise.
12772 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12773 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12774 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12775 * config/sparc/linux.h (ASM_SPEC): Likewise.
12776 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12777 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12778
d3153553
JM
127792011-01-26 Joseph Myers <joseph@codesourcery.com>
12780
12781 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12782 * config/frv/frv.h (ASM_SPEC): Likewise.
12783 * config/m68k/linux.h (ASM_SPEC): Likewise.
12784 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12785 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12786 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12787 * config/sparc/linux.h (ASM_SPEC): Likewise.
12788 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12789 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12790
b89b1e9d
JM
127912011-01-26 Joseph Myers <joseph@codesourcery.com>
12792
12793 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12794 * config/frv/frv.h (LINK_SPEC): Likewise.
12795 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12796
12eb1a9c
JM
127972011-01-26 Joseph Myers <joseph@codesourcery.com>
12798
12799 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12800 * config/frv/frv.h (ASM_SPEC): Likewise.
12801 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12802 * config/m68k/linux.h (ASM_SPEC): Likewise.
12803 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12804 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12805 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12806 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12807 * config/sparc/linux.h (ASM_SPEC): Likewise.
12808 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12809 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12810 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12811
e435f098
SE
128122011-01-26 Steve Ellcey <sje@cup.hp.com>
12813
12814 PR target/46997
12815 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12816 (*mux2): Ditto.
12817 (vec_extract_evenodd_help): Ditto.
12818 (vec_extract_evenv4hi): Ditto.
12819 (vec_extract_oddv4hi): Ditto.
12820 (vec_interleave_lowv2si): Ditto.
12821 (vec_interleave_highv2si): Ditto.
12822 (vec_extract_evenv2si): Ditto.
12823 (vec_extract_oddv2si: Ditto.
12824 (vec_pack_trunc_v2si): Ditto.
12825
34f0eee0
JH
128262011-01-22 Jan Hubicka <jh@suse.cz>
12827
12828 PR target/47237
12829 * cgraph.h (cgraph_local_info): New field can_change_signature.
12830 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12831 signature can change.
12832 (ipcp_estimate_growth): Call sequence simplify only if calle signature
12833 can change.
12834 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12835 (cgraph_function_versioning): We can not change signature of functions
12836 that don't allow that.
12837 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12838 (lto_input_node): Likewise.
38be4072
UB
12839 * ipa-inline.c (compute_inline_parameters): Compute
12840 local.can_change_signature.
34f0eee0 12841 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
12842 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12843 functions that can not change signature.
34f0eee0 12844 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
12845 init_cumulative_args): Do not use local calling conventions
12846 for functions that can not change signature.
34f0eee0 12847
980ca891
JH
128482011-01-22 Jan Hubicka <jh@suse.cz>
12849
12850 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12851
768e3c60
RG
128522011-01-26 Richard Guenther <rguenther@suse.de>
12853
12854 PR tree-optimization/47190
61052244
AM
12855 * cgraphunit.c (process_common_attributes): New function.
12856 (process_function_and_variable_attributes): Use it.
768e3c60 12857
21d6a1c7
RG
128582011-01-26 Richard Guenther <rguenther@suse.de>
12859
12860 PR lto/47423
12861 * cgraphbuild.c (record_eh_tables): Record reference to personality
12862 function.
12863
48bb58b1
AO
128642011-01-26 Alexandre Oliva <aoliva@redhat.com>
12865
12866 PR debug/45454
12867 * sel-sched.c (moveup_expr): Don't let debug insns prevent
12868 non-debug insns from moving up.
12869
58c741a6
DK
128702011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12871
12872 PR target/40125
12873 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12874 t-dlldir{,-x} fragment for build and add it to tmake_file.
12875 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12876 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12877 * config/i386/t-dlldir: New file.
12878 (SHLIB_DLLDIR): Define.
12879 * config/i386/t-dlldir-x: New file.
12880 (SHLIB_DLLDIR): Define.
12881 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12882 (SHLIB_INSTALL): Use it.
12883
bff99262
CLT
128842011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
12885
12886 PR target/47246
12887 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12888 lower bound of the allowed Thumb-2 coprocessor load/store
12889 index range to -256. Add explaining comment.
12890
82c03907
ILT
128912011-01-25 Ian Lance Taylor <iant@google.com>
12892
12893 * godump.c (go_define): Improve lexing of macro expansion to only
12894 accept expressions which match Go spec.
12895
47ea1edf
DK
128962011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12897
d4dba752 12898 PR c++/43601
47ea1edf
DK
12899 * tree.c (handle_dll_attribute): Handle it.
12900 * doc/extend.texi (@item dllexport): Mention it.
12901 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12902
744f0946
ILT
129032011-01-25 Ian Lance Taylor <iant@google.com>
12904
12905 PR tree-optimization/26854
12906 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12907 (decl_jump_unsafe): Move higher in file, with no other change.
12908 (bind): Set has_jump_unsafe_decl if appropriate.
12909 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12910 (check_earlier_gotos): Likewise.
12911 (c_check_switch_jump_warnings): Likewise.
12912
5734f2b3
JW
129132011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
12914
12915 * doc/invoke.texi (Warning Options): Add missing hyphen.
12916 (-fprofile-dir): Minor grammatical fixes.
12917 (-fbranch-probabilities): Likewise.
12918
9bdbdcef
AO
129192011-01-25 Alexandre Oliva <aoliva@redhat.com>
12920
12921 PR debug/45136
12922 PR debug/45130
12923 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12924 debug insns.
12925 (no_real_insns_p, schedule_block, set_priorities): Drop special
12926 treatment of boundary debug insns.
38be4072 12927 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
12928 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12929 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12930 (BOUNDARY_DEBUG_INSN_P): Likewise.
12931 (SCHEDULE_DEBUG_INSN_P): Likewise.
12932 * sched-rgn.c (init_ready_list): Drop special treatment of
12933 boundary debug insns.
12934 * final.c (rest_of_clean-state): Clear notes' BB.
12935
b305e3da
SP
129362011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12937
12938 * Makefile.in (LAMBDA_H): Removed.
12939 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12940 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12941 lambda-trans.o, and tree-loop-linear.o.
12942 (lto-symtab.o): Remove dependence on LAMBDA_H.
12943 (tree-loop-linear.o): Remove rule.
12944 (lambda-mat.o): Same.
12945 (lambda-trans.o): Same.
12946 (lambda-code.o): Same.
12947 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12948 (tree-vect-slp.o): Same.
12949 * hwint.h (gcd): Moved here.
12950 (least_common_multiple): Same.
12951 * lambda-code.c: Removed.
12952 * lambda-mat.c: Removed.
12953 * lambda-trans.c: Removed.
12954 * lambda.h: Removed.
12955 * tree-loop-linear.c: Removed.
12956 * lto-symtab.c: Do not include lambda.h.
12957 * omega.c (gcd): Removed.
12958 * passes.c (init_optimization_passes): Remove pass_linear_transform.
12959 * tree-data-ref.c (print_lambda_vector): Moved here.
12960 (lambda_vector_copy): Same.
12961 (lambda_matrix_copy): Same.
12962 (lambda_matrix_id): Same.
12963 (lambda_vector_first_nz): Same.
12964 (lambda_matrix_row_add): Same.
12965 (lambda_matrix_row_exchange): Same.
12966 (lambda_vector_mult_const): Same.
12967 (lambda_vector_negate): Same.
12968 (lambda_matrix_row_negate): Same.
12969 (lambda_vector_equal): Same.
12970 (lambda_matrix_right_hermite): Same.
12971 * tree-data-ref.h: Do not include lambda.h.
12972 (lambda_vector): Moved here.
12973 (lambda_matrix): Same.
12974 (dependence_level): Same.
12975 (lambda_transform_legal_p): Removed declaration.
12976 (lambda_collect_parameters): Same.
12977 (lambda_compute_access_matrices): Same.
12978 (lambda_vector_gcd): Same.
12979 (lambda_vector_new): Same.
12980 (lambda_vector_clear): Same.
12981 (lambda_vector_lexico_pos): Same.
12982 (lambda_vector_zerop): Same.
12983 (lambda_matrix_new): Same.
12984 * tree-flow.h (least_common_multiple): Removed declaration.
12985 * tree-parloops.c (lambda_trans_matrix): Moved here.
12986 (LTM_MATRIX): Same.
12987 (LTM_ROWSIZE): Same.
12988 (LTM_COLSIZE): Same.
12989 (LTM_DENOMINATOR): Same.
12990 (lambda_trans_matrix_new): Same.
12991 (lambda_matrix_vector_mult): Same.
12992 (lambda_transform_legal_p): Same.
12993 * tree-pass.h (pass_linear_transform): Removed declaration.
12994 * tree-ssa-loop.c (tree_linear_transform): Removed.
12995 (gate_tree_linear_transform): Removed.
12996 (pass_linear_transform): Removed.
12997 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12998 flag_loop_interchange.
12999
6bdfdb96
JJ
130002011-01-25 Jakub Jelinek <jakub@redhat.com>
13001
13002 PR tree-optimization/47265
13003 PR tree-optimization/47443
13004 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13005 if name still has some uses.
13006
e4cba915
MJ
130072011-01-25 Martin Jambor <mjambor@suse.cz>
13008
13009 PR tree-optimization/47382
13010 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13011 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13012
509d65dd 130132011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
13014
13015 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13016 sjlj_except_unwind_info.
13017
194313e2
RG
130182011-01-25 Richard Guenther <rguenther@suse.de>
13019
13020 PR tree-optimization/47426
13021 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13022 visible functions results escape.
13023
147a0bcf
JJ
130242011-01-25 Jakub Jelinek <jakub@redhat.com>
13025
13026 PR target/45701
13027 * config/arm/arm.c (any_sibcall_uses_r3): New function.
13028 (arm_get_frame_offsets): Use it.
13029
db963b52
SP
130302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13031 Jakub Jelinek <jakub@redhat.com>
13032
13033 PR tree-optimization/47271
13034 * tree-if-conv.c (bb_postdominates_preds): New.
13035 (if_convertible_bb_p): Call bb_postdominates_preds.
13036 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13037 (predicate_scalar_phi): Call bb_postdominates_preds.
13038
bcddd3b9
NC
130392011-01-25 Nick Clifton <nickc@redhat.com>
13040
13041 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13042 * config/rx/rx.c (rx_function_value): Likewise.
13043 (rx_promote_function_mode): Likewise.
13044 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13045 in order to make it legitimate.
38be4072
UB
13046 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13047 make sure that the first operand is the same as the result register.
bcddd3b9
NC
13048 (addsi3_unspec): Delete.
13049 (subdi3): Do not accept immediate operands.
13050 (subdi3_internal): Likewise.
13051
7e6cb022
JL
130522011-01-25 Jeff Law <law@redhat.com>
13053
13054 PR rtl-optimization/37273
13055 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13056 handle them like argument loads from stack slots. Do not double
13057 count memory for memory constants and argument loads from stack slots.
13058
9ffa621e
JJ
130592011-01-25 Jakub Jelinek <jakub@redhat.com>
13060
13061 PR tree-optimization/47427
13062 PR tree-optimization/47428
13063 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13064 coalesce if the new root var would be TREE_READONLY.
13065
5bd6e652
RG
130662011-01-25 Richard Guenther <rguenther@suse.de>
13067
13068 PR middle-end/47414
13069 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13070 correct type for TBAA.
13071
7c48ea69
SP
130722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13073
13074 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13075 (close_phi_written_to_memory): Call for_each_index with
13076 dr_indices_valid_in_loop.
13077
38013f25
SP
130782011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13079
13080 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13081 when it is initialized.
13082
5c640e29
SP
130832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13084
13085 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13086 call to graphite_find_data_references_in_stmt.
13087 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13088 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
13089 call to graphite_find_data_references_in_stmt.
13090 (analyze_drs_in_stmts): Same.
13091 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13092 in which the scalar analysis of indices is performed.
13093 (create_data_ref): Same. Update call to dr_analyze_indices.
13094 (find_data_references_in_stmt): Update call to create_data_ref.
13095 (graphite_find_data_references_in_stmt): Same.
13096 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13097 declaration.
13098 (create_data_ref): Same.
13099 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13100 call to create_data_ref.
13101
ac53c069
SP
131022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13103
13104 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 13105 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 13106
3d17df15
SP
131072011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13108
13109 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13110 VAR_DECL, PARM_DECL, and RESULT_DECL.
13111
c513da01
SP
131122011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13113
13114 * graphite-dependences.c (reduction_dr_1): Allow several reductions
13115 in a reduction PBB.
13116 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13117 that have already been marked as PBB_IS_REDUCTION.
13118
3a292d59
SP
131192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13120
13121 * graphite-scop-detection.c (same_close_phi_node): New.
13122 (remove_duplicate_close_phi): New.
13123 (make_close_phi_nodes_unique): New.
13124 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13125
ba858447
SP
131262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13127
13128 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13129 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13130 of both data references to be the same.
13131
8d865c56
SP
131322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13133
38be4072
UB
13134 * graphite-dependences.c (build_lexicographical_constraint): Remove
13135 the gdim parameter.
13136 (build_lexicographical_constraint): Adjust call to
13137 ppl_powerset_is_empty.
8d865c56
SP
13138 (dependence_polyhedron): Same.
13139 (graphite_legal_transform_dr): Same.
13140 (graphite_carried_dependence_level_k): Same.
38be4072
UB
13141 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13142 parameter.
8d865c56
SP
13143 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13144
50034a36
SP
131452011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13146
13147 * graphite-sese-to-poly.c
13148 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13149 (close_phi_written_to_memory): New.
13150 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13151 and unshare_expr.
13152
0deada9e
SP
131532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13154
13155 * doc/install.texi: Update the expected version number of PPL to 0.11.
13156 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13157 #if PPL_VERSION_MINOR < 11.
13158
d7d3d6af
SP
131592011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13160
13161 * graphite-dependences.c: Include graphite-cloog-util.h.
13162 (new_poly_ddr): Inlined into dependence_polyhedron.
13163 (free_poly_ddr): Moved close by new_poly_ddr.
13164 (dependence_polyhedron_1): Renamed dependence_polyhedron.
13165 Early return NULL when ppl_powerset_is_empty returns true.
13166 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
13167 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
13168 (graphite_legal_transform_dr): Call new_poly_ddr.
13169 (graphite_carried_dependence_level_k): Same.
13170 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
13171 (dot_transformed_deps_stmt_1): Removed.
13172 (dot_deps_stmt_1): Call dot_deps_stmt_2.
13173 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
13174 (dot_deps_1): Call dot_deps_2.
13175 * Makefile.in (graphite-dependences.o): Add missing dependence on
13176 graphite-cloog-util.h.
13177
28c5db57
SP
131782011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13179
13180 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13181 (build_lexicographical_constraint): Same.
13182 (dependence_polyhedron_1): Same.
13183 (graphite_legal_transform_dr): Same.
13184 (graphite_carried_dependence_level_k): Same.
13185 * graphite-ppl.c (ppl_powerset_is_empty): New.
13186 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13187 * tree-data-ref.c (dump_data_reference): Print the basic block index.
13188
5168d98f
SP
131892011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13190
13191 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13192 the "a followed by b" relation and document it.
13193
4a40293a
SP
131942011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13195
13196 * graphite-dependences.c (build_lexicographical_constraint): Stop the
13197 iteration when the bag of constraints is empty.
13198
271fb6fa
SP
131992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13200
13201 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13202
92d23680
SP
132032011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13204
13205 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13206 nest and two loop depths as parameters.
13207 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13208 lst_perfect_nestify.
13209
2f51deff
SP
132102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13211
13212 * graphite-dependences.c (print_pddr): Call
13213 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13214
07f3593c
SP
132152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13216
13217 * graphite-ppl.c (debug_gmp_value): New.
13218 * graphite-ppl.h (debug_gmp_value): Declared.
13219
3fae6099
TG
132202011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
13221
13222 * doc/install.texi: Document availability of cloog-0.16.
13223
1c3ba85b
SP
132242011-01-25 Vladimir Kargov <kargov@gmail.com>
13225
13226 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13227 invalid postdominance info.
13228
e8ba94fc
JH
132292011-01-24 Jan Hubicka <jh@suse.cz>
13230
13231 PR c/21659
13232 * doc/extend.texi (weak pragma): Drop claim that it must
13233 appear before definition.
13234 * varasm.c (merge_weak, declare_weak): Only sanity check
13235 that DECL is not output at a time it is declared weak.
13236
2b6e2d13
KZ
132372011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
13238
13239 * machmode.def: Fixed comments.
1c3ba85b 13240
9841210f
KT
132412011-01-24 Kai Tietz <kai.tietz@onevision.com>
13242
13243 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13244
132452011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
13246
13247 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 13248 WORDS_BIG_ENDIAN.
e046112d 13249
a6c5070a
L
132502011-01-24 H.J. Lu <hongjiu.lu@intel.com>
13251
13252 PR target/46519
13253 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13254 (block_info): Add scanned and prev.
13255 (move_or_delete_vzeroupper_2): Return if the basic block
13256 has been scanned and the upper 128bit state is unchanged
13257 from the last scan.
13258 (move_or_delete_vzeroupper_1): Return true if the exit
13259 state is changed.
13260 (move_or_delete_vzeroupper): Visit basic blocks using the
13261 work-list based algorithm based on vt_find_locations in
13262 var-tracking.c.
13263
13264 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13265
a40d79d7
NC
132662011-01-24 Nick Clifton <nickc@redhat.com>
13267
13268 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13269 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13270 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
13271 then define __v850e1__.
13272 * doc/invoke.texi: Document -mv850es.
13273
440eb8de
RH
132742011-01-24 Richard Henderson <rth@redhat.com>
13275
13276 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13277 compound unordered comparisons.
13278 * config/rx/rx.c (rx_split_fp_compare): Remove.
13279 * config/rx/rx-protos.h: Update.
13280 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13281 (cbranchsf4): Don't call rx_split_fp_compare.
13282 (*cbranchsf4): Use rx_split_cbranch.
13283 (*cmpsf): Don't accept "i" constraint.
13284 (*conditional_branch): Only valid after reload.
13285 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
13286
3ff79f99
MM
132872011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13288
13289 PR target/47385
13290 * config/rs6000/altivec.md (vector constant splitters): Add
13291 support for creating vector single precision constants if -mvsx is
13292 used and we would create the constant using Altivec primitives.
13293
ff3d9d08
BS
132942011-01-23 Bernd Schmidt <bernds@codesourcery.com>
13295 Richard Sandiford <rdsandiford@googlemail.com>
13296
13297 PR rtl-optimization/47166
13298 * reload1.c (emit_reload_insns): Disable the spill_reg_store
13299 mechanism for PRE_MODIFY and POST_MODIFY.
13300 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13301 reloadreg.
13302
7fcaf152
AS
133032011-01-23 Andreas Schwab <schwab@linux-m68k.org>
13304
8788adb6 13305 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 13306
d09b58c4
JH
133072011-01-22 Jan Hubicka <jh@suse.cz>
13308
13309 PR lto/47333
13310 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13311
e8ff8c5a
JH
133122011-01-22 Jan Hubicka <jh@suse.cz>
13313
13314 PR tree-optimization/43884
13315 PR lto/44334
8788adb6 13316 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
13317 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13318
ccaed3ba
AS
133192011-01-22 Anatoly Sokolov <aesok@post.ru>
13320
13321 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13322 * config/s390/s390.c (s390_register_move_cost,
13323 s390_memory_move_cost): New.
13324 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13325
0cecee06
UW
133262011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13327
13328 PR middle-end/47401
13329 * except.c (sjlj_assign_call_site_values): Move setting the
13330 crtl->uses_eh_lsda flag to ...
13331 (sjlj_mark_call_sites): ... here.
13332 (sjlj_emit_function_enter): Support NULL dispatch label.
13333 (sjlj_build_landing_pads): In a function with no landing pads
13334 that still has must-not-throw regions, generate code to register
13335 a personality function with empty LSDA.
13336
e692f276
RH
133372011-01-21 Richard Henderson <rth@redhat.com>
13338
1b7ae0b7
RH
13339 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13340
3843787f
RH
13341 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13342
e692f276
RH
13343 * compare-elim.c: New file.
13344 * Makefile.in (OBJS-common): Add it.
13345 (compare-elim.o): New.
13346 * common.opt (fcompare-elim): New.
13347 * opts.c (default_options_table): Add OPT_fcompare_elim.
13348 * tree-pass.h (pass_compare_elim_after_reload): New.
13349 * passes.c (init_optimization_passes): Add it.
13350 * recog.h: Protect against re-inclusion.
13351 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13352 * doc/invoke.texi (-fcompare-elim): Document it.
13353 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13354 * doc/tm.texi: Rebuild.
13355
9a7c2050
NC
133562011-01-22 Nick Clifton <nickc@redhat.com>
13357
13358 * config/rx/rx.md (cstoresf4): Pass comparison operator to
13359 rx_split_fp_compare.
13360
15ba5696
NC
133612011-01-22 Nick Clifton <nickc@redhat.com>
13362
13363 * config/rx/rx.md (UNSPEC_CONST): New.
13364 (deallocate_and_return): Wrap the amount popped off the stack in
13365 an UNSPEC_CONST in order to stop it being rejected by
13366 -mmax-constant-size.
13367 (pop_and_return): Add a "(return)" rtx.
13368 (call): Drop the immediate operand.
13369 (call_internal): Likewise.
13370 (call_value): Likewise.
13371 (call_value_internal): Likewise.
13372 (sibcall_internal): Likewise.
13373 (sibcall_value_internal): Likewise.
13374 (sibcall): Likewise. Generate an explicit call using
13375 sibcall_internal.
13376 (sibcall_value): Likewise.
13377 (mov<>): FAIL if a constant operand is not legitimate.
13378 (addsi3_unpsec): New pattern.
9a7c2050 13379
38be4072 13380 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
13381 (ok_for_max_constant): New function.
13382 (gen_safe_add): New function.
13383 (rx_expand_prologue): Use gen_safe_add.
13384 (rx_expand_epilogue): Likewise.
13385 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
13386 UNSPEC CONSTs.
13387
caaf13d3
JL
133882011-01-21 Jeff Law <law@redhat.com>
13389
13390 PR tree-optimization/47053
13391 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13392 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13393 statements are deleted.
13394 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
13395 is nonempty, then purge dead edges and cleanup the CFG.
13396
12c30f2f
AO
133972011-01-21 Alexandre Oliva <aoliva@redhat.com>
13398
13399 PR debug/47402
13400 Temporarily revert:
13401 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
13402 PR debug/47106
13403 * tree-dfa.c (create_var_ann): Mark variable as used.
13404
7360d2ac
JJ
134052011-01-21 Jakub Jelinek <jakub@redhat.com>
13406
aaa52a96
JJ
13407 PR middle-end/45566
13408 * except.c (convert_to_eh_region_ranges): Emit queued no-region
13409 notes from other section in hot/cold partitioning even if
13410 last_action is -3. Increment call_site_base.
13411
7360d2ac
JJ
13412 PR rtl-optimization/47366
13413 * fwprop.c (forward_propagate_into): Return bool. If
13414 any changes are made, -fnon-call-exceptions is used and
13415 REG_EH_REGION note is present, call purge_dead_edges
13416 and return true if it purged anything.
13417 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13418 any EH edges were purged.
13419
e90b336f
JL
134202011-01-21 Jeff Law <law@redhat.com>
13421
13422 PR rtl-optimization/41619
13423 * caller-save.c (setup_save_areas): Break out code to determine
13424 which hard regs are live across calls by examining the reload chains
13425 so that it is always used.
13426 Eliminate code which checked REG_N_CALLS_CROSSED.
13427
3ffe07e1
JJ
134282011-01-21 Jakub Jelinek <jakub@redhat.com>
13429
13430 PR tree-optimization/47355
13431 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13432 NOP has non-debug uses beyond PHIs in new_bb.
13433
1c7d0b34
AO
134342011-01-21 Alexandre Oliva <aoliva@redhat.com>
13435
13436 PR debug/47106
13437 * cfgexpand.c (account_used_vars_for_block): Only account vars
13438 that are annotated as used.
13439 (estimated_stack_frame_size): Don't set TREE_USED.
13440 * tree-dfa.c (create_var_ann): Mark variable as used.
13441
f99cc488
RG
134422011-01-21 Richard Guenther <rguenther@suse.de>
13443
13444 PR middle-end/47395
13445 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13446
3bc27de7
RG
134472011-01-21 Richard Guenther <rguenther@suse.de>
13448
13449 PR tree-optimization/47365
13450 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13451 (vn_reference_lookup_pieces): Adjust.
13452 (vn_reference_lookup): Likewise.
13453 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13454 (vn_reference_lookup_3): Only look through kills if in
13455 VN_WALKREWRITE mode.
13456 (vn_reference_lookup_pieces): Adjust.
13457 (vn_reference_lookup): Likewise.
13458 (visit_reference_op_load): Likewise.
13459 (visit_reference_op_store): Likewise.
13460 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13461 (compute_avail): Likewise.
13462 (eliminate): Likewise.
13463
d8debb1d
JJ
134642011-01-21 Jakub Jelinek <jakub@redhat.com>
13465
13466 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13467 DECL_IGNORED_P non-reg vars if they are used.
13468
3a2df831
JJ
13469 PR tree-optimization/47391
13470 * varpool.c (const_value_known_p): Return false if
13471 decl is volatile.
13472
1dd584a2
KT
134732011-01-21 Kai Tietz <kai.tietz@onevision.com>
13474
13475 PR bootstrap/47215
13476 * config/i386/i386.c (ix86_local_alignment): Handle
13477 case for va_list_type_node is nil.
13478 (ix86_canonical_va_list_type): Likewise.
13479
7f9f095e
AM
134802011-01-21 Alan Modra <amodra@gmail.com>
13481
13482 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13483 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13484
837b01f6
RR
134852011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13486
13487 * config/arm/arm.md (define_attr type): Rename f_load
13488 and f_store to f_fpa_load and f_fpa_store. Update.
13489 (write_conflict): Deal with rename fallout.
13490 (*push_fp_multi): Likewise.
13491 * config/arm/fpa.md (f_load): Use f_fpa_load.
13492 (f_store): Use f_fpa_store.
13493 (*movsf_fpa): Likewise.
13494 (*movdf_fpa): Likewise.
13495 (*movxf_fpa): Likewise.
13496 (*thumb2_movsf_fpa): Likewise.
13497 (*thumb2_movdf_fpa): Likewise.
13498 (*thumb2_movxf_fpa): Likewise.
13499 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13500 f_loadd and f_stored.
13501 (*thumb2_movdi_vfp): Likewise.
13502 (*thumb2_movsf_vfp): Fix attribute to f_loads.
13503 (*thumb2_movsi_vfp): Likewise.
13504 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13505 Use f_loads instead of f_load.
13506 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13507
a1a79768
AS
135082011-01-20 Anatoly Sokolov <aesok@post.ru>
13509
13510 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13511 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13512 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13513 (xtensa_mode_dependent_address_p): New function.
13514 (constantpool_address_p): Make static. Change return type to bool.
13515 Change argument type to const_rtx. Use CONST_INT_P predicate.
13516
427f6cec
AO
135172011-01-20 Alexandre Oliva <aoliva@redhat.com>
13518
13519 PR debug/46583
13520 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13521
583ac69c
JJ
135222011-01-20 Jakub Jelinek <jakub@redhat.com>
13523
13524 PR debug/47283
13525 * cfgexpand.c (expand_debug_expr): Instead of generating
13526 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13527 etc. handling.
13528
93e452ed
RG
135292011-01-20 Richard Guenther <rguenther@suse.de>
13530
13531 PR middle-end/47370
13532 * tree-inline.c (remap_gimple_op_r): Recurse manually for
13533 the pointer operand of MEM_REFs.
13534
28fc44f3
JJ
135352011-01-20 Jakub Jelinek <jakub@redhat.com>
13536
13537 PR tree-optimization/46130
13538 * ipa-split.c (consider_split): If return_bb contains non-virtual
13539 PHIs other than for retval or if split_function would not adjust it,
13540 refuse to split.
13541
ddd268f2
RG
135422011-01-20 Richard Guenther <rguenther@suse.de>
13543
13544 PR tree-optimization/47167
13545 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13546 Revert previous change, only avoid enumeral type changes.
13547
882020aa
MS
135482011-01-19 Mike Stump <mikestump@comcast.net>
13549
13550 * doc/tm.texi.in (BRANCH_COST): Englishify.
13551 * doc/tm.texi (BRANCH_COST): Likewise.
13552
7edb6247
DS
135532011-01-19 Dodji Seketeli <dodji@redhat.com>
13554
13555 PR c++/47291
13556 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
13557 (gen_scheduled_generic_parms_dies): New functions.
13558 (gen_struct_or_union_type_die): Schedule template parameters DIEs
13559 generation for the end of CU compilation.
13560 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 13561
23d5ed5d
AO
135622011-01-19 Alexandre Oliva <aoliva@redhat.com>
13563
13564 PR debug/46240
13565 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13566 debug bind stmt on merge edges.
13567
37d6a488
AO
135682011-01-19 Alexandre Oliva <aoliva@redhat.com>
13569
13570 PR debug/47079
13571 PR debug/46724
13572 * function.c (instantiate_expr): Instantiate incoming rtl of
13573 implicit arguments, and recurse on VALUE_EXPRs.
13574 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13575 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13576
689f2c82
AO
135772011-01-19 Alexandre Oliva <aoliva@redhat.com>
13578
13579 * c-parser.c (c_parser_for_statement): Initialize
13580 collection_expression.
13581
03029de4
JM
135822011-01-19 Joseph Myers <joseph@codesourcery.com>
13583
13584 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13585
3e03217e
JM
135862011-01-19 Joseph Myers <joseph@codesourcery.com>
13587
13588 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13589 (LINK_SHLIB_SPEC): Don't use %(link_path).
13590 (SUBTARGET_EXTRA_SPECS): Remove link_path.
13591
5bbe9b3f
JM
135922011-01-19 Joseph Myers <joseph@codesourcery.com>
13593
13594 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13595 (NO_SHARED_LIB_SUPPORT): Remove.
13596 (LINK_SHLIB_SPEC): Remove one conditional definition.
13597
368e0b39
JM
135982011-01-19 Joseph Myers <joseph@codesourcery.com>
13599
13600 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13601 %{call_shared}.
13602 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13603 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13604 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13605 %{call_shared} and conditionals on these options not being passed.
13606 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13607 %{call_shared}.
13608
ed7656f6
JJ
136092011-01-19 Jakub Jelinek <jakub@redhat.com>
13610
68457901
JJ
13611 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13612 simplify.
13613
ed7656f6
JJ
13614 * ipa-split.c: Spelling fixes.
13615
e0d1958f
RH
136162011-01-19 Richard Henderson <rth@redhat.com>
13617
13618 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13619 (*mulsi3): Likewise.
13620
27098b6b
RH
13621 * longlong.h [__mn10300__] (count_leading_zeros): New.
13622 [__mn10300__] (umul_ppmm, smul_ppmm): New.
13623 [__mn10300__] (add_ssaaaa, subddmmss): New.
13624 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13625 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13626
d6be7c36
UW
136272011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13628
13629 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13630
b1efde2a
RH
136312011-01-19 Richard Henderson <rth@redhat.com>
13632
44217823
RH
13633 * config/mn10300/mn10300.md (addsi3_flags): New.
13634 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13635 (subsi3_flags, subc_internal, subdi3): New.
13636 (subdi3_internal, *subdi3_degenerate): New.
13637 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13638
37a185d7
RH
13639 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13640 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13641 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
13642 * config/mn10300/mn10300-protos.h: Update.
13643 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13644 (return_ret): Likewise. Rename from return_internal_regs.
13645 (return_internal): Remove.
13646
040c5757
RH
13647 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13648 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13649 (mn10300_legitimate_constant_p): Likewise.
13650 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13651 (mn10300_frame_size): New.
13652 (mn10300_expand_prologue): Use it.
13653 (mn10300_expand_epilogue): Likewise.
13654 (mn10300_initial_offset): Likewise.
13655 * config/mn10300/mn10300-protos.h: Update.
13656 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13657 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13658 (prologue, epilogue, return_internal): Tidy output code.
13659 (mn10300_store_multiple_operation, return): Likewise.
13660 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13661 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13662 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13663 (load_pic, am33_load_pic): New.
13664 (mn10300_load_pic0, mn10300_load_pic1): New.
13665
bad41521
RH
13666 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13667 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13668 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13669 (cc_flags_for_mode, cc_flags_for_code): New.
13670 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13671 overflow flag is not valid. Validate that the flags we need
13672 for the comparison are valid.
13673 (mn10300_output_cmp): Remove.
13674 (mn10300_output_add): New.
13675 (mn10300_select_cc_mode): Use cc_flags_for_code.
13676 (mn10300_split_cbranch): New.
13677 (mn10300_match_ccmode): New.
13678 (mn10300_split_and_operand_count): New.
13679 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13680 to the function.
13681 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13682 (addsi3): ... here. Use mn10300_output_add.
13683 (*addsi3_flags): New.
13684 (*am33_subsi3, *mn10300_subsi3): Merge...
13685 (subsi3): ... here. Use attribute isa.
13686 (*subsi3_flags): New.
13687 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
13688 when possible.
13689 (*am33_andsi3, *mn10300_andsi3): Merge...
13690 (andsi3): ... here.
13691 (*andsi3_flags): New.
13692 (andsi3 splitters): New.
13693 (*am33_iorsi3, *mn10300_iorsi3): Merge...
13694 (iorsi3): ... here.
13695 (*iorsi3_flags): New.
13696 (*am33_xorsi3, *mn10300_xorsi3): Merge...
13697 (xorsi3): ... here.
13698 (*xorsi3_flags): New.
13699 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13700 (one_cmplsi2): ... here.
13701 (*one_cmplsi2_flags): New.
13702 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
13703 instead of "dax" in constraints. Use mn10300_split_cbranch.
13704 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
13705 use matching constraints to eliminate a self-comparison.
13706 (*integer_conditional_branch): Rename from integer_conditional_branch.
13707 Use int_mode_flags to match CC_REG.
13708 (*cbranchsi4_btst, *btstsi): New.
13709 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
13710 mn10300_split_cbranch.
13711 (*am33_cmpsf): Rename from am33_cmpsf.
13712 (*float_conditional_branch): Rename from float_conditional_branch.
13713 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13714 (zero_extendqisi2): ... here.
13715 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13716 (zero_extendhisi2): ... here.
13717 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13718 (extendqisi2): ... here.
13719 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13720 (extendhisi2): ... here.
13721 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13722 (ashlsi3): ... here.
13723 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13724 (lshrsi3): ... here.
13725 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13726 (ashrsi3): ... here.
13727 (consecutive add peephole): Remove.
13728 * config/mn10300/predicates.md (label_ref_operand): New.
13729 (int_mode_flags): New.
13730 (CCZN_comparison_operator): New.
13731
9efb4993
RH
13732 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13733 (throughput_42_latency_43): New reservation.
13734 (mulsidi3, umulsidi3): New expanders.
13735 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
13736 the MDR register to allocation; separately allocate the low and
13737 high parts of the DImode result.
13738 (umulsidi3_internal): Similarly.
13739 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13740 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
13741 (udivsi3, umodsi3): Remove.
13742 (udivmodsi4, divmodsi4): New expanders.
13743 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
13744 (*divmodsi4): Simiarly.
13745 (ext_internal): New.
13746
c25a21f5
RH
13747 * config/mn10300/constraints.md ("z"): New constraint.
13748 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13749 (FIXED_REGISTERS): Don't fix MDR.
13750 (CALL_USED_REGSITERS): Reformat nicely.
13751 (REG_ALLOC_ORDER): Add MDR.
13752 (enum regclass): Add MDR_REGS.
13753 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13754 (IRA_COVER_CLASSES): Add MDR_REGS.
13755 (REGNO_REG_CLASS): Handle MDR_REG.
13756 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13757 (mn10300_register_move_cost): Likewise.
13758 * config/mn10300/mn10300.md (MDR_REG): New.
13759 (*movsi_internal): Handle moves to/from MDR_REGS.
13760
36846b26
RH
13761 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13762 POST_MODIFY.
13763 (mn10300_secondary_reload): Tidy combination reload classes.
13764 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13765 addresses for AM33. Allow symbolic offsets for reg+imm.
13766 (mn10300_regno_in_class_p): New.
13767 (mn10300_legitimize_reload_address): New.
13768 * config/mn10300/mn10300.h (enum reg_class): Remove
13769 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13770 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
13771 SP_OR_GENERAL_REGS.
13772 (REG_CLASS_NAMES): Update to match.
13773 (REG_CLASS_CONTENTS): Likewise.
13774 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13775 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13776 (REGNO_IN_RANGE_P): Remove.
13777 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13778 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13779 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13780 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13781 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13782 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13783 (REGNO_GENERAL_P): New.
13784 (HAVE_POST_MODIFY_DISP): New.
13785 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13786 (LEGITIMIZE_RELOAD_ADDRESS): New.
13787 * config/mn10300/mn10300-protos.h: Update.
13788
8b119bb6
RH
13789 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13790 DATA_REGS for AM33 stack-pointer destination.
13791 (mn10300_preferred_output_reload_class): Likewise.
13792 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13793 into a form appropriate for ...
13794 (TARGET_SECONDARY_RELOAD): New.
13795 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13796 * config/mn10300/mn10300-protos.h: Update.
13797 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13798 reload_insi; use the "A" constraint for the scratch; handle AM33
13799 moves of sp to non-address registers.
13800
b1efde2a
RH
13801 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13802 (*movqi_internal): ... here.
13803 (*am33_movhi, *mn10300_movhi): Merge into...
13804 (*movhi_internal): ... here.
13805 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
13806 as the source/destination of moves from/to SP.
13807 (movsf): Only allow for AM33-2.
1c3ba85b 13808 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
13809 any integer constant constraint. Only allow for AM33-2. Tidy
13810 all of the alternative outputs.
13811 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13812 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
13813 for MN103.
13814 (udivsi3, umodsi3): New patterns for MN103 only.
13815
b899fd78
JR
138162011-01-19 Joern Rennecke <amylaar@spamcop.net>
13817
13818 * doc/tm.texi.in: Spell out that a lack of register class unions
13819 can lead to ICEs.
13820 * doc/tm.texi: Regenerate.
13821
afaaa67d
JJ
138222011-01-19 Jakub Jelinek <jakub@redhat.com>
13823
2e0642cd
JJ
13824 PR rtl-optimization/47337
13825 * dce.c (check_argument_store): New function.
13826 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
13827
afaaa67d
JJ
13828 PR tree-optimization/47290
13829 * tree-eh.c (infinite_empty_loop_p): New function.
13830 (cleanup_empty_eh): Use it.
13831
d2cd871f
SE
138322011-01-18 Steve Ellcey <sje@cup.hp.com>
13833
13834 PR target/46997
13835 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13836 (a64_expand_widen_sum): Ditto.
13837 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13838 (vec_extract_evenodd_help): Ditto.
13839 (vec_extract_evenv4hi): Ditto.
13840 (vec_extract_oddv4hi): Ditto.
13841 (vec_extract_evenv2si): Ditto.
13842 (vec_extract_oddv2si): Ditto.
13843 (vec_extract_evenv2sf): Ditto.
13844 (vec_extract_oddv2sf): Ditto.
13845 (vec_pack_trunc_v4hi: Ditto.
13846 (vec_pack_trunc_v2si): Ditto.
13847 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13848 (vec_interleave_highv8qi): Ditto.
13849 (mix1_r): Ditto.
13850 (vec_extract_oddv8qi): Ditto.
13851 (vec_interleave_lowv4hi): Ditto.
13852 (vec_interleave_highv4hi): Ditto.
13853 (vec_interleave_lowv2si): Ditto.
13854 (vec_interleave_highv2si): Ditto.
13855
41a1208a
JDA
138562011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13857
13858 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13859 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13860 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
13861 (pa_c_mode_for_suffix): New.
13862 (TARGET_EXPAND_BUILTIN): Define.
13863 (TARGET_C_MODE_FOR_SUFFIX): Define.
13864 (pa_builtins): Define.
13865 (pa_init_builtins): Register __float128 type and init new support
13866 builtins.
13867 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13868 * config/pa/quadlib.c (_U_Qfcopysign): New.
13869
1ecad98e
EB
138702011-01-18 Eric Botcazou <ebotcazou@adacore.com>
13871
13872 PR middle-end/46894
13873 * explow.c (allocate_dynamic_stack_space): Do not assume more than
13874 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13875 are defined.
13876
d4f2460a
UW
138772011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13878
13879 PR tree-optimization/47179
13880 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13881 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13882
4994da65
RG
138832011-01-18 Richard Guenther <rguenther@suse.de>
13884
13885 PR rtl-optimization/47216
13886 * emit-rtl.c: Include tree-flow.h.
13887 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13888 of replicating it with different semantics.
13889 * Makefile.in (emit-rtl.o): Adjust.
13890
1eb458d1
RR
138912011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13892
38be4072 13893 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 13894 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 13895
e7ef91dc
JJ
138962011-01-18 Jakub Jelinek <jakub@redhat.com>
13897
13898 PR rtl-optimization/47299
13899 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 13900 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
13901 * expmed.c (expand_widening_mult): Don't try to optimize constant
13902 multiplication if op0 has VOIDmode. Convert op1 constant to mode
13903 before using it.
13904
535b7874
RW
139052011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13906
13907 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
13908 spacing after 'e.g.', typos, comma, hyphenation.
13909
27bf36f3
RH
139102011-01-17 Richard Henderson <rth@redhat.com>
13911
8a5b5449
RH
13912 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13913 (rx_restricted_mem_operand): New.
13914 (rx_shift_operand): Use register_operand.
13915 (rx_source_operand, rx_compare_operand): Likewise.
13916 * config/rx/rx.md (addsi3_flags): New expander.
13917 (adddi3): Rewrite as expander.
13918 (adc_internal, *adc_flags, adddi3_internal): New patterns.
13919 (subsi3_flags): New expander.
13920 (subdi3): Rewrite as expander.
13921 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13922
784f69be
RH
13923 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13924 (rx_init_builtins): Remove sat builtin.
13925 (rx_expand_builtin): Likewise.
13926 * config/rx/rx.md (ssaddsi3): New.
13927 (*sat): Rename from sat. Represent the CC_REG input.
13928
f033541c
RH
13929 * config/rx/predicates.md (rshift_operator): New.
13930 * config/rx/rx.c (rx_expand_insv): Remove.
13931 * config/rx/rx-protos.h: Update.
13932 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
13933 operand to the canonical position.
13934 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13935 (*bitclr, *bitclr_in_memory): Similarly.
13936 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13937 (insv): Retain the zero_extract in the expansion.
13938
34fee389
RH
13939 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13940 (bswaphi2, bitinvert, revw): Likewise.
13941
265c835f
RH
13942 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13943 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13944 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13945 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13946 (bitset, bitset_in_memory): Likewise.
13947 (bitinvert, bitinvert_in_memory): Likewise.
13948 (bitclr, bitclr_in_memory): Likewise.
13949 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13950 (rx_strend, rx_cmpstrn): Likewise.
13951 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
13952 (bitop peep2 patterns): Remove.
13953
b4d83be3
RH
13954 * config/rx/rx.c (rx_match_ccmode): New.
13955 * config/rx/rx-protos.h: Update.
13956 * config/rx/rx.md (abssi2): Clobber, don't set flags.
13957 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13958 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13959 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13960 (fix_truncsfsi2, floatsisf2): Likewise.
13961 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13962 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13963 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13964 (*subsi3_flags, *xorsi3_flags): New.
13965
d0acb939
RH
13966 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13967
c06fc3d9
RH
13968 * config/rx/rx.c (rx_print_operand): Remove workaround for
13969 unsplit comparison operations.
13970
2882702b
RH
13971 * config/rx/rx.md (movsicc): Split after reload.
13972 (*movsicc): Merge *movsieq and *movsine via match_operator.
13973 (*stcc): New pattern.
13974
6f7310f2
RH
13975 * config/rx/rx.c (rx_float_compare_mode): Remove.
13976 * config/rx/rx.h (rx_float_compare_mode): Remove.
13977 * config/rx/rx.md (cstoresi4): Split after reload.
13978 (*sccc): New pattern.
13979
e963cb1a
RH
13980 * config/rx/predicates.md (label_ref_operand): New.
13981 (rx_z_comparison_operator): New.
13982 (rx_zs_comparison_operator): New.
13983 (rx_fp_comparison_operator): New.
13984 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13985 Validate that the flags are set properly for the comparison.
13986 (rx_gen_cond_branch_template): Remove.
13987 (rx_cc_modes_compatible): Remove.
13988 (mode_from_flags): New.
13989 (flags_from_code): Rename from flags_needed_for_conditional.
13990 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13991 (rx_select_cc_mode): Likewise.
13992 (rx_split_fp_compare): New.
13993 (rx_split_cbranch): New.
13994 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13995 (*cbranchsi4): Use match_operator and rx_split_cbranch.
13996 (*cbranchsf4): Similarly.
13997 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
13998 match_operator and rx_split_cbranch.
13999 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14000 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
14001 (*cmpsi): Rename from cmpsi.
14002 (*tstsi): Rename from tstsi.
14003 (*cmpsf): Rename from cmpsf; use CC_Fmode.
14004 (*conditional_branch): Rename from conditional_branch.
14005 (*reveresed_conditional_branch): Remove.
14006 (b<code>): Remove expander.
14007 * config/rx/rx-protos.h: Update.
14008
af530bb4
RH
14009 * config/rx/rx.c (rx_compare_redundant): Remove.
14010 * config/rx/rx.md (cmpsi): Don't use it.
14011 * config/rx/rx-protos.h: Update.
14012
27bf36f3
RH
14013 * config/rx/rx-modes.def (CC_F): New mode.
14014 * config/rx/rx.c (rx_select_cc_mode): New.
14015 * config/rx/rx.h (SELECT_CC_MODE): Use it.
14016 * config/rx/rx-protos.h: Update.
14017
d7fde127
RH
140182011-01-17 Richard Henderson <rth@redhat.com>
14019
14020 * except.c (dump_eh_tree): Fix stray ; after for statement.
14021
6ff38230
RG
140222011-01-17 Richard Guenther <rguenther@suse.de>
14023
14024 PR tree-optimization/47313
14025 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14026 handling before copying the body. Properly deal with
14027 by-reference result in SSA form.
14028
114ce554
ILT
140292011-01-17 Ian Lance Taylor <iant@google.com>
14030
bf5cd92b 14031 PR target/47219
114ce554
ILT
14032 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14033 (struct_value_alias_set): Don't define.
14034 (sparc_option_override): Don't set sparc_sr_alias_set and
14035 struct_value_alias_set.
14036 (save_or_restore_regs): Use gen_frame_mem rather than calling
14037 set_mem_alias_set.
14038 (sparc_struct_value_rtx): Likewise.
14039
98c6d93c
L
140402011-01-17 H.J. Lu <hongjiu.lu@intel.com>
14041
14042 PR target/47318
7a81008b 14043 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
14044 (_mm_maskstore_pd): Likewise.
14045 (_mm_maskload_ps): Likewise.
14046 (_mm_maskstore_ps): Likewise.
14047 (_mm256_maskload_pd): Change mask to __m256i.
14048 (_mm256_maskstore_pd): Likewise.
14049 (_mm256_maskload_ps): Likewise.
14050 (_mm256_maskstore_ps): Likewise.
14051
14052 * config/i386/i386-builtin-types.def: Updated.
14053 (ix86_expand_special_args_builtin): Likewise.
14054
14055 * config/i386/i386.c (bdesc_special_args): Update
14056 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14057 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14058 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14059 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14060
14061 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14062 Use <avxpermvecmode> on mask register.
14063 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14064
b9361af2 140652011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
14066 Michael Haubenwallner <michael.haubenwallner@salomon.at>
14067 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
14068
14069 PR target/46655
14070 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14071 if <= USHRT_MAX in 32-bit mode.
14072
b7ae9eb5
RW
140732011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14074
14075 * doc/install.texi (Configuration, Specific): Wrap long
14076 lines in examples. Allow line wrapping in long options
14077 and URLs where beneficial for PDF output.
14078
4377fad9
RS
140792011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
14080
14081 * config/mips/mips.c (mips_classify_symbol): Don't return
14082 SYMBOL_PC_RELATIVE for nonlocal labels.
14083
55959ffa 140842011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 14085
55959ffa
EB
14086 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14087
140882011-01-15 Jan Hubicka <jh@suse.cz>
14089
14090 PR tree-optimization/47276
be46831f
JH
14091 * ipa.c (function_and_variable_visibility): Do not try to mark alias
14092 declarations as needed.
14093
05842ff5
MJ
140942011-01-15 Martin Jambor <mjambor@suse.cz>
14095
14096 * common.opt (fdevirtualize): New flag.
14097 * doc/invoke.texi (Option Summary): Document it.
14098 * opts.c (default_options_table): Add devirtualize flag.
14099 * ipa-prop.c (detect_type_change): Return immediately if
14100 devirtualize flag is not set.
14101 (detect_type_change_ssa): Likewise.
14102 (compute_known_type_jump_func): Likewise.
14103 (ipa_analyze_virtual_call_uses): Likewise.
14104
f65cf2b7
MJ
141052011-01-14 Martin Jambor <mjambor@suse.cz>
14106
14107 PR tree-optimization/45934
14108 PR tree-optimization/46302
14109 * ipa-prop.c (type_change_info): New type.
14110 (stmt_may_be_vtbl_ptr_store): New function.
14111 (check_stmt_for_type_change): Likewise.
14112 (detect_type_change): Likewise.
14113 (detect_type_change_ssa): Likewise.
14114 (compute_complex_assign_jump_func): Check for dynamic type change.
14115 (compute_complex_ancestor_jump_func): Likewise.
14116 (compute_known_type_jump_func): Likewise.
14117 (compute_scalar_jump_functions): Likewise.
14118 (ipa_analyze_virtual_call_uses): Likewise.
14119 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14120
eb5bb0fd
JM
141212011-01-14 Joseph Myers <joseph@codesourcery.com>
14122
14123 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14124 * config/i386/i386.opt (msse5): New Alias.
14125
f2060fbe
JM
141262011-01-14 Joseph Myers <joseph@codesourcery.com>
14127
14128 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14129 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14130 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14131 * config/sparc/sparc.h (CC1_SPEC): Likewise.
14132
3a7b4385
JM
141332011-01-14 Joseph Myers <joseph@codesourcery.com>
14134
14135 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14136 -mcpu options.
14137 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14138 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14139 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14140 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14141 Likewise.
14142 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14143
a7b778f8
JM
141442011-01-14 Joseph Myers <joseph@codesourcery.com>
14145
38be4072 14146 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 14147
a7edae0a
MS
141482011-01-14 Mike Stump <mikestump@comcast.net>
14149
14150 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14151 * config/fr30/fr30.md: Likweise
14152 (movsi_push): Likewise.
14153 (movsi_pop): Likewise.
14154 (enter_func): Likewise.
14155 * config/moxie/moxie.md (movsi_push): Likewise.
14156 (movsi_pop): Likewise.
14157
cbabf03f
JM
141582011-01-14 Joseph Myers <joseph@codesourcery.com>
14159
14160 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14161 %{no_archive} %{exact_version}.
14162 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14163 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14164 %{no_archive} %{exact_version}.
14165 * config/mips/openbsd.h (LINK_SPEC): Likewise.
14166 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14167 * config/mips/vxworks.h: Likewise.
14168
438da41a
JM
141692011-01-14 Joseph Myers <joseph@codesourcery.com>
14170
38be4072 14171 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 14172
da290a42
JM
141732011-01-14 Joseph Myers <joseph@codesourcery.com>
14174
14175 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14176 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14177
8989d00e
JM
141782011-01-14 Joseph Myers <joseph@codesourcery.com>
14179
14180 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14181 -nodefaultlib.
14182
a3010a69
JM
141832011-01-14 Joseph Myers <joseph@codesourcery.com>
14184
14185 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14186 for mcpu not cpu.
14187 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14188 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14189 not cpu.
14190 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14191 Don't handle -shlib.
14192
e7f2f537
JM
141932011-01-14 Joseph Myers <joseph@codesourcery.com>
14194
14195 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14196 (CC1_SPEC): Don't handle -profile.
14197
34830bfd
JM
141982011-01-14 Joseph Myers <joseph@codesourcery.com>
14199
14200 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14201 * config/mips/mips.h (CC1_SPEC): Likewise.
14202
b2d36e74
JM
142032011-01-14 Joseph Myers <joseph@codesourcery.com>
14204
14205 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14206 * config/mips/mips.h (CC1_SPEC): Likewise.
14207
dabadc52
JM
142082011-01-14 Joseph Myers <joseph@codesourcery.com>
14209
14210 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14211 * config/m32r/linux.h (LINK_SPEC): Likewise.
14212 * config/mips/linux.h (LINK_SPEC): Likewise.
14213 * config/mips/linux64.h (LINK_SPEC): Likewise.
14214 * config/sparc/linux.h (LINK_SPEC): Likewise.
14215 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14216 LINK_SPEC): Likewise.
14217 * config/xtensa/linux.h (LINK_SPEC): Likewise.
14218
43ee6785
JM
142192011-01-14 Joseph Myers <joseph@codesourcery.com>
14220
14221 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14222 %{version:-v}.
14223 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14224
45e79dfd
JM
142252011-01-14 Joseph Myers <joseph@codesourcery.com>
14226
14227 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14228 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14229
37e9e71d
JM
142302011-01-14 Joseph Myers <joseph@codesourcery.com>
14231
14232 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14233
bb127cd8
RO
142342011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14235
14236 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14237 supports -Bstatic/-Bdynamic.
14238 * configure: Regenerate.
14239
89a012ea 142402011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 14241 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
14242
14243 PR target/46037
14244 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14245 when checking debug_info_level. Test write_symbols instead of
14246 debug_hooks->var_location when setting flag_var_tracking_uninit.
14247
7352c013
RG
142482011-01-14 Richard Guenther <rguenther@suse.de>
14249
14250 PR tree-optimization/47179
14251 * target.def (ref_may_alias_errno): New target hook.
14252 * targhooks.h (default_ref_may_alias_errno): Declare.
14253 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14254 (default_ref_may_alias_errno): New function.
14255 * target.h (struct ao_ref_s): Declare.
14256 * tree-ssa-alias.c: Include target.h.
14257 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14258 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14259 (targhooks.o): Likewise.
14260 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14261 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14262
9a6c9288
RG
142632011-01-14 Richard Guenther <rguenther@suse.de>
14264
14265 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
14266
0fdb0d27
RG
142672011-01-14 Richard Guenther <rguenther@suse.de>
14268
14269 PR tree-optimization/47280
14270 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14271 return CFG changes.
14272 (tree_ssa_forward_propagate_single_use_vars): Deal with
14273 CFG changes from associate_plusminus.
14274
8f66db3b
RG
142752011-01-14 Richard Guenther <rguenther@suse.de>
14276
14277 PR middle-end/47281
14278 Revert
14279 2011-01-11 Richard Guenther <rguenther@suse.de>
14280
280d9630
EB
14281 PR tree-optimization/46076
14282 * tree-ssa.c (useless_type_conversion_p): Conversions from
14283 unprototyped to empty argument list function types are useless.
8f66db3b 14284
6c0c92e6
RG
142852011-01-14 Richard Guenther <rguenther@suse.de>
14286
14287 PR tree-optimization/47286
280d9630 14288 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 14289
db09f943
MJ
142902011-01-14 Martin Jambor <mjambor@suse.cz>
14291
14292 PR middle-end/46823
14293 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14294
dde8a3a4
AS
142952011-01-13 Anatoly Sokolov <aesok@post.ru>
14296
14297 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14298 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14299 * config/xtensa/xtensa.c (xtensa_libcall_value,
14300 xtensa_function_value_regno_p): New functions.
14301 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14302
a2b63a20
KT
143032011-01-13 Kai Tietz <kai.tietz@onevision.com>
14304
14305 PR c++/47213
14306 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14307 PE specific hook.
14308 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14309 New function prototype.
14310 * config/i386/winnt.c (i386_pe_assemble_visibility):
14311 Warn only if attribute was specified by user.
14312
b41f0b34
MM
143132011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14314
14315 PR target/47251
14316 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14317 floating point.
14318 (floatunsdidf2_fcfidu): Ditto.
14319
3f3c098d
AK
143202011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14321
14322 * config/s390/s390.c (print_operand_address): Replace 'error' with
14323 'output_operand_lossage'.
14324 (print_operand): Likewise.
14325
29fa95ed
JL
143262011-01-13 Jeff Law <law@redhat.com>
14327
280d9630 14328 PR rtl-optimization/39077
29fa95ed
JL
14329 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14330 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14331 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14332 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14333 * gcse.c (prune_insertions_deletions): New function.
14334 (compute_pre_data): Use it.
14335
71d12276
DS
143362011-01-13 Dodji Seketeli <dodji@redhat.com>
14337
14338 PR debug/PR46973
14339 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14340 static function.
61052244 14341 (prune_unused_types_mark): Use it.
71d12276 14342
9b0f04e7
AB
143432011-01-13 Andrey Belevantsev <abel@ispras.ru>
14344
14345 PR rtl-optimization/45352
1c3ba85b 14346 * sel-sched.c: Update copyright years.
9b0f04e7 14347 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 14348 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 14349
d6a3e264
RH
143502011-01-12 Richard Henderson <rth@redhat.com>
14351
a49b692a
RH
14352 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14353 (TARGET_MD_ASM_CLOBBERS): New.
14354
126b1483
RH
14355 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14356 (TARGET_DELEGITIMIZE_ADDRESS): New.
14357
f3d9d2e0
RH
14358 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14359 (clzsi2, *bsch): New patterns.
14360
d84760c9
RH
14361 * config/mn10300/mn10300.md (INT): New mode iterator.
14362 (*mov<INT>_clr): New pattern, and peep2 to generate it.
14363
ec815d65
RH
14364 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14365 flag_split_wide_types.
14366
d6a3e264
RH
14367 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14368 (mn10300_trampoline_init): Rewrite without a template, an immediate
14369 load and a direct branch.
14370 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14371
0f8ab434
AS
143722011-01-12 Anatoly Sokolov <aesok@post.ru>
14373
14374 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14375 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14376 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14377 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14378
d8a24b65
KT
143792011-01-12 Kai Tietz <kai.tietz@onevision.com>
14380
14381 PR debug/47209
14382 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14383 of type.
14384
56e22cab
JH
143852011-01-12 Jan Hubicka <jh@suse.cz>
14386
14387 PR driver/47244
14388 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14389 (PLUGIN_COND_CLOSE): New macro.
14390 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14391
4b18b3c2
RG
143922011-01-12 Richard Guenther <rguenther@suse.de>
14393
14394 PR lto/47259
14395 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14396 register variables in a MEM_REF.
14397
8e38461c
JM
143982011-01-12 Joseph Myers <joseph@codesourcery.com>
14399
14400 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14401 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14402 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14403 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14404 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14405 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14406 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14407 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14408 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14409 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14410 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14411 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14412 * config/gnu-user.h: New. Copied from linux.h.
14413 (LINUX_TARGET_STARTFILE_SPEC): Rename to
14414 GNU_USER_TARGET_STARTFILE_SPEC.
14415 (LINUX_TARGET_ENDFILE_SPEC): Rename to
14416 GNU_USER_TARGET_ENDFILE_SPEC.
14417 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14418 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14419 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14420 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14421 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14422 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14423 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14424 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14425 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14426 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14427 * config/arm/linux-eabi.h (CC1_SPEC): Use
14428 GNU_USER_TARGET_CC1_SPEC.
14429 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14430 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14431 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14432 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14433 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14434 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14435 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14436 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14437
a570fc16
RG
144382011-01-12 Richard Guenther <rguenther@suse.de>
14439
14440 PR other/46946
14441 * doc/invoke.texi (ffast-math): Document it is turned on
14442 with -Ofast.
14443
b0223c3e
JH
144442011-01-12 Jan Hubicka <jh@suse.cz>
14445
14446 PR tree-optimization/47233
ca1e00b3
EB
14447 * opts.c (common_handle_option): Disable ipa-reference with profile
14448 feedback.
b0223c3e 14449
1c3ba85b 144502011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
14451
14452 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
14453 error message.
14454
d853ee42
NP
144552011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
14456
14457 * c-parser.c (c_lex_one_token): Updated and reindented some
14458 comments. No changes in code.
14459
4053a5a0
ILT
144602011-01-11 Ian Lance Taylor <iant@google.com>
14461
14462 * godump.c (go_output_var): Don't output the variable if there is
14463 already a type with the same name.
14464
fa3e04d2
ILT
144652011-01-11 Ian Lance Taylor <iant@google.com>
14466
14467 * godump.c (go_format_type): Don't generate float80.
14468
885fe07c
RH
144692011-01-11 Richard Henderson <rth@redhat.com>
14470
72d6e3c5
RH
14471 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14472 declaration. Rewrite for both speed and size.
14473 (mn10300_address_cost_1): Remove.
14474 (mn10300_register_move_cost): New.
14475 (mn10300_memory_move_cost): New.
14476 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
14477 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
14478 extensions, shifts, BSWAP, CLZ.
14479 (mn10300_wide_const_load_uses_clr): Remove.
14480 (TARGET_REGISTER_MOVE_COST): New.
14481 (TARGET_MEMORY_MOVE_COST): New.
14482 * config/mn10300/mn10300-protos.h: Update.
14483 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14484
df37c023
RH
14485 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14486 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14487 * config/mn10300/mn10300-protos.h: Update.
14488 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14489 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14490 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14491 (*test_int_bitfield, *test_byte_bitfield): Remove.
14492 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 14493 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 14494
85a337b5
RH
14495 * config/mn10300/constraints.md ("c"): Rename from "A".
14496 ("A", "D"): New constraint letters.
14497 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14498 (fmssf4, fnmasf4, fnmssf4): Likewise.
14499
a5c727e3
RH
14500 * config/mn10300/mn10300.md (isa): New attribute.
14501 (enabled): New attribute.
14502
0d9e23f4
RH
14503 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14504 (abssf2, negsf2): Define only for hardware fp.
14505 (sqrtsf2): Reformat.
14506 (addsf3, subsf3, mulsf3): Merge expander and insn.
14507
c157b3f0
RH
14508 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14509 (DEBUGGER_AUTO_OFFSET): Remove.
14510 (DEBUGGER_ARG_OFFSET): Remove.
14511
cc909bba
RH
14512 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14513 Emit register stores with the same offsets as the hardware.
14514 (mn10300_store_multiple_operation): Don't check that the register
14515 save offsets are monotonic.
14516 * config/mn10300/mn10300-protos.h: Update.
14517
e3b5c2f3
RH
14518 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14519
885fe07c
RH
14520 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14521 in terms of the value on the stack, not the MDR register.
14522
6e701822
JH
145232011-01-11 Jan Hubicka <jh@suse.cz>
14524
14525 PR lto/45721
14526 PR lto/45375
14527 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14528 (symbol_alias_set_destroy, symbol_alias_set_contains,
14529 propagate_aliases_backward): Declare.
14530 * lto-streamer-out.c (struct sets): New sturcture.
14531 (trivally_defined_alias): New function.
14532 (output_alias_pair_p): Rewrite.
14533 (output_unreferenced_globals): Fix output of alias pairs.
14534 (produce_symtab): Likewise.
14535 * ipa.c (function_and_variable_visibility): Set weak alias destination
14536 as needed in lto.
14537 * varasm.c (symbol_alias_set_t): Remove.
14538 (symbol_alias_set_destroy): Export.
14539 (propagate_aliases_forward, propagate_aliases_backward): New functions
14540 based on ...
14541 (compute_visible_aliases): ... this one; remove.
14542 (trivially_visible_alias): New
14543 (trivially_defined_alias): New.
14544 (remove_unreachable_alias_pairs): Rewrite.
14545 (finish_aliases_1): Reorganize code checking if alias is defined.
14546 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14547 in LTO mode.
14548
1b248907
RG
145492011-01-11 Richard Guenther <rguenther@suse.de>
14550
14551 PR tree-optimization/46076
14552 * tree-ssa.c (useless_type_conversion_p): Conversions from
14553 unprototyped to empty argument list function types are useless.
14554
b1923f0a
RG
145552011-01-11 Richard Guenther <rguenther@suse.de>
14556
14557 PR middle-end/45235
14558 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14559 volatile MEMs as MEM_READONLY_P.
14560
e98965af
RG
145612011-01-11 Richard Guenther <rguenther@suse.de>
14562
14563 PR tree-optimization/47239
14564 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14565
9f9ca914
JL
145662011-01-11 Jeff Law <law@redhat.com>
14567
1ee3ea05 14568 PR tree-optimization/47086
9f9ca914
JL
14569 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14570 IVs from statements that might throw.
14571
345fdcb7
JH
145722011-01-10 Jan Hubicka <jh@suse.cz>
14573
14574 PR lto/45375
14575 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14576
c459c97b
JH
145772011-01-10 Jan Hubicka <jh@suse.cz>
14578
14579 PR lto/45375
14580 * profile.c (read_profile_edge_counts): Ignore profile inconistency
14581 when correcting profile.
14582
06c9eb51
JH
145832011-01-10 Jan Hubicka <jh@suse.cz>
14584
14585 PR lto/46083
14586 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14587 DECL_FINI_PRIORITY.
14588 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14589 Restore DECL_FINI_PRIORITY.
14590
ae9fd815
RW
145912011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14592
14593 * doc/gimple.texi: Fix quoting of multi-word return values in
14594 @deftypefn statements. Ensure presence of return value. Wrap
14595 overlong @deftypefn lines.
14596 (is_gimple_operand, is_gimple_min_invariant_address): Remove
14597 descriptions of removed functions.
14598 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14599 of multi-word return value in @deftypefn statement.
14600
0ecb4a7c
RW
146012011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14602
14603 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14604 (Conditional Expressions, Logical Operators)
14605 (Statement and operand traversals): Do not indent smallexample
14606 code. Fix duplicate function argument in example.
14607
2e5e346d
JL
146082011-01-10 Jeff Law <law@redhat.com>
14609
1ee3ea05 14610 PR tree-optimization/47141
2e5e346d
JL
14611 * ipa-split.c (split_function): Handle case where we are
14612 returning a value and the return block has a virtual operand phi.
14613
cf9712cc
JH
146142011-01-10 Jan Hubicka <jh@suse.cz>
14615
1c3ba85b 14616 PR tree-optimization/47234
cf9712cc
JH
14617 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14618 (pass_feedback_split_functions): Declare.
14619 * passes.c (init_optimization_passes): Add ipa-split as subpass of
14620 tree-profile.
14621 * ipa-split.c (gate_split_functions): Update comments; disable
14622 split-functions for profile_arc_flag and branch_probabilities.
14623 (gate_feedback_split_functions): New function.
14624 (execute_feedback_split_functions): New function.
14625 (pass_feedback_split_functions): New global var.
14626
94cd932c
L
146272011-01-10 H.J. Lu <hongjiu.lu@intel.com>
14628
14629 PR lto/46760
14630 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14631 calling gimple_call_set_cannot_inline.
14632
fbbfcaf1
IS
146332011-01-10 Iain Sandoe <iains@gcc.gnu.org>
14634
14635 * config/darwin-sections.def: Remove unused section.
14636
d06865bf
DK
146372011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
14638
14639 PR c++/47218
14640 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14641
96bbfbac
NP
146422011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
14643
14644 PR objc/47232
14645 * c-parser.c (c_parser_declaration_or_fndef): Improved
14646 error message.
14647
1ba6516f
KT
146482011-01-09 Kai Tietz <kai.tietz@onevision.com>
14649
14650 * config/i386/winnt.c (i386_pe_start_function): Make sure
14651 to switch back to function's section.
14652
0c5d770e
IS
146532011-01-09 Iain Sandoe <iains@gcc.gnu.org>
14654
14655 PR gcc/46902
14656 PR testsuite/46912
14657 * plugin.c: Move include of dlfcn.h from here...
14658 * system.h: ... to here.
14659
146602011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
14661
14662 * doc/cpp.texi (C++ Named Operators): Fix markup for header
14663 file name.
14664 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14665 two extra empty pages in PDF output.
14666
046608a3
NP
146672011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
14668
14669 PR objc/47078
14670 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14671 for error recovery purposes behave as if it was not specified so
14672 that the default type is usd.
14673
8cb114b9
JH
146742011-01-07 Jan Hubicka <jh@suse.cz>
14675
14676 PR tree-optmization/46469
14677 * ipa.c (function_and_variable_visibility): Clear needed flags on
14678 nodes with external decls; handle weakrefs merging correctly.
14679
b294a75e
JM
146802011-01-07 Joseph Myers <joseph@codesourcery.com>
14681
14682 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14683 not false.
14684
96bdf9b4
JH
146852011-01-07 Jan Hubicka <jh@suse.cz>
14686
f60c2554 14687 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
14688 and no longer claim that gold is required for linker plugin.
14689 * configure: Regenerate.
14690 * gcc.c (PLUGIN_COND): New macro.
14691 (LINK_COMMAND_SPEC): Use it.
14692 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14693 * config.in (HAVE_LTO_PLUGIN): New.
14694 * configure.ac (--with-lto-plugin): New parameter; autodetect
14695 HAVE_LTO_PLUGIN.
14696
17afc0fe
JH
146972011-01-07 Jan Hubicka <jh@suse.cz>
14698
14699 PR tree-optimization/46367
14700 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14701 when we can update original.
14702 (cgraph_mark_inline_edge): Sanity check.
14703 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14704
d4c48c0f
UW
147052011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14706
14707 * config/spu/spu.h (ASM_COMMENT_START): Define.
14708
96f5b137
L
147092011-01-07 H.J. Lu <hongjiu.lu@intel.com>
14710
14711 PR driver/42445
14712 * gcc.c (%>S): New.
14713 (SWITCH_KEEP_FOR_GCC): Likewise.
14714 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14715 (do_spec_1): Handle "%>".
14716
14717 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14718
c6a8f6de
JJ
147192011-01-07 Jakub Jelinek <jakub@redhat.com>
14720
c21bbd7a
JJ
14721 PR target/47201
14722 * config/i386/i386.c (ix86_delegitimize_address): If
14723 simplify_gen_subreg fails, return orig_x.
14724
c6a8f6de
JJ
14725 PR bootstrap/47187
14726 * value-prof.c (gimple_stringop_fixed_value): Handle
14727 lhs of the call properly.
14728
fe95fbf9
JH
147292011-01-07 Jan Hubicka <jh@suse.cz>
14730
14731 PR lto/45375
14732 * lto-opt.c (lto_reissue_options): Set flag_shlib.
14733
14d11d40
IS
147342011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14735
72e961c8
EB
14736 * target.def (function_switched_text_sections): New hook.
14737 * doc/tm.texi: Regenerated.
14738 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14739 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
14740 (final_scan_insn): Call function_switched_text_sections when a
14741 mid-function section change occurs.
14d11d40 14742 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
14743 * config/darwin-protos.h (darwin_function_switched_text_sections):
14744 Likewise.
14d11d40 14745 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 14746 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14747
0b764288
IS
147482011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14749
14750 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
14751 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
14752 the secondary code fragment when outputting for DWARF == 2.
14753
2ac6bb04
AS
147542011-01-07 Anatoly Sokolov <aesok@post.ru>
14755
14756 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14757 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14758 Remove.
14759 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14760 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14761
9f82de11
EB
147622011-01-06 Eric Botcazou <ebotcazou@adacore.com>
14763
14764 PR debug/46704
280d9630
EB
14765 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14766 when it is not empty.
9f82de11
EB
14767
147682011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 14769
1ed72abf 14770 Bobcat Enablement
14b52538 14771 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 14772 (case ${target}): Add btver1.
14b52538 14773 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 14774 -march=native recognize btver1 processors.
14b52538 14775 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 14776 btver1 def_and_undef
14b52538 14777 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
14778 btver1 cost table.
14779 (m_BTVER1): New definition.
14780 (m_AMD_MULTIPLE): Includes m_BTVER1.
14781 (initial_ix86_tune_features): Add btver1 tune.
14782 (processor_target_table): Add btver1 entry.
14783 (static const char *const cpu_names): Add btver1 entry.
14784 (software_prefetching_beneficial_p): Add btver1.
14785 (ix86_option_override_internal): Add btver1 instruction sets.
14786 (ix86_issue_rate): Add btver1.
14787 (ix86_adjust_cost): Add btver1.
14b52538 14788 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
14789 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14790 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
14791 * config/i386/i386.md (define_attr "cpu"): Add btver1.
14792
e1a973d8
RO
147932011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14794
14795 PR target/43309
14796 * config/i386/i386.c (legitimize_tls_address)
14797 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14798 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14799 (tls_initial_exec_64_sun): New pattern.
14800
c73f67c5
GP
148012011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14802
14803 * doc/invoke.texi (Overall Options): Improve wording and markup
14804 of the description of -wrapper.
14805
bc4c6f9c
JM
148062011-01-06 Joseph Myers <joseph@codesourcery.com>
14807
14808 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14809 rdynamic, threads): New Driver options.
14810
adb75db0
RO
148112011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14812
14813 PR target/38118
14814 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14815 if coming from .tdata.
14816 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14817
402c1cb4
JH
148182011-01-06 Jan Hubicka <jh@suse.cz>
14819
14820 PR lto/47188
14821 * collect2.c (main): Do not enable LTOmode when plugin is active.
14822
a4da6485
RO
148232011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14824
14825 PR other/45915
14826 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14827 --version output if supported.
14828 * configure: Regenerate.
14829
028dbdf4
JM
148302011-01-06 Joseph Myers <joseph@codesourcery.com>
14831
14832 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14833 Driver options.
14834
dfe776dd
JJ
148352011-01-06 Jakub Jelinek <jakub@redhat.com>
14836
14837 PR c/47150
14838 * c-convert.c (convert): When converting a complex expression
14839 other than COMPLEX_EXPR to a different complex type, ensure
14840 c_save_expr is called instead of save_expr, unless in_late_binary_op.
14841 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14842 when converting COMPLEX_TYPE.
14843
210dedfe
IR
148442011-01-06 Ira Rosen <irar@il.ibm.com>
14845
14846 PR tree-optimization/47139
14847 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14848 only the last reduction value is used outside the loop. Update
14849 documentation.
14850
cd33a412
JM
148512011-01-05 Joseph Myers <joseph@codesourcery.com>
14852
14853 * config/rtems.opt: New.
14854 * config.gcc (*-*-rtems*): Use rtems.opt.
14855
819edd94
CF
148562011-01-05 Changpeng Fang <changpeng.fang@amd.com>
14857
14858 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14859 processors do not support 3DNow instructions.
14860
dc242c4a
UW
148612011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14862
14863 * config/spu/spu.c (spu_option_override): Set parameter
14864 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14865
be286227
JH
148662011-01-05 Jan Hubicka <jh@suse.cz>
14867
14868 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14869 at the command line.
14870
644e637f
MJ
148712011-01-05 Martin Jambor <mjambor@suse.cz>
14872
14873 PR lto/47162
14874 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14875 deltas on streamed outgoing edges.
14876 (output_node_opt_summary): Output info for outgoing edges only when
14877 the node is in new parameter set.
14878 (output_cgraph_opt_summary): New parameter set, passed to the two
14879 aforementioned functions. Update its forward declaration and its
14880 callee too.
14881
7bd11157
TT
148822011-01-05 Tom Tromey <tromey@redhat.com>
14883
14884 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14885 operator to c_finish_omp_atomic.
14886 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14887 (build_unary_op): Update.
14888 (build_modify_expr): Update.
14889 (build_asm_expr): Update.
14890
f626b979
UW
148912011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14892
14893 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14894 newly inserted insns.
14895 (pad_bb): Likewise.
14896 (spu_emit_branch_hint): Likewise.
14897 (insert_hbrp_for_ilb_runout): Likewise.
14898 (spu_machine_dependent_reorg): Call df_finish_pass after
14899 schedule_insns returns.
14900
4c825c02
UW
149012011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14902
14903 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14904
5e9fba51
EB
149052011-01-05 Eric Botcazou <ebotcazou@adacore.com>
14906
14907 PR tree-optimization/47005
14908 * tree-sra.c (struct access): Add 'non_addressable' bit.
14909 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14910 (decide_one_param_reduction): Return 0 if the parameter is passed by
14911 reference and one of the accesses in the group is non_addressable.
14912
3ebb5ca6
EB
149132011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14914
14915 PR tree-optimization/47056
14916 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14917 (mark_load): Likewise. Handle FUNCTION_DECL specially.
14918 (mark_store): Likewise. Pass STMT to ipa_record_reference.
14919
d5d4d14e
EB
149202011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14921
14922 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14923 initializer. Skip view conversions from aggregate types.
14924
d996ef70
KT
149252011-01-04 Kai Tietz <kai.tietz@onevision.com>
14926
14927 PR bootstrap/47055
14928 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14929
509d65dd 149302011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
14931
14932 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14933 obvious typo.
14934
55c623b5
UW
149352011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14936
14937 * function.c (thread_prologue_and_epilogue_insns): Do not crash
14938 on empty epilogue sequences.
14939
b98d6b35
JM
149402011-01-04 Joseph Myers <joseph@codesourcery.com>
14941
14942 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14943 non-static): New Driver options.
14944
a0d43bac
JZ
149452011-01-04 Jie Zhang <jie@codesourcery.com>
14946
14947 PR driver/47137
14948 * gcc.c (default_compilers[]): Set combinable field to 0
14949 for all assembly languages.
14950
2b18eb32
MX
149512011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
14952
14953 * config/mips/loongson3a.md: New file.
14954 * config/mips/mips.md: Include loongson3a.md.
14955 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14956 TUNE_LOONGSON_3A.
14957
42a48c4f
EB
149582011-01-03 Eric Botcazou <ebotcazou@adacore.com>
14959
14960 PR middle-end/47017
14961 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14962 instead of convert_memory_address_addr_space on the base expression.
14963
9c1732c4
UW
149642011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14965
14966 * config/spu/spu.c (spu_option_override): Update error text
14967 for bad -march= / -mtune= values.
14968
aa474365
UW
149692011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14970
14971 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14972 if branch-hint optimization will be performed.
14973
9766135b
JJ
149742011-01-03 Jakub Jelinek <jakub@redhat.com>
14975
371556ee
JJ
14976 PR tree-optimization/47148
14977 * ipa-split.c (split_function): Convert arguments to
14978 DECL_ARG_TYPE if possible.
14979
1ac12fa2
JJ
14980 PR tree-optimization/47155
14981 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14982 when computing uns.
14983
9766135b
JJ
14984 PR rtl-optimization/47157
14985 * combine.c (try_combine): If undobuf.other_insn becomes
14986 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14987 and set *new_direct_jump_p too.
14988
f4a2e571
SP
149892011-01-03 Sebastian Pop <sebastian.pop@amd.com>
14990
14991 PR tree-optimization/47021
14992 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14993
9f8e43c0
JJ
149942011-01-03 Jakub Jelinek <jakub@redhat.com>
14995
14996 * gcc.c (process_command): Update copyright notice dates.
14997 * gcov.c (print_version): Likewise.
14998 * gcov-dump.c (print_version): Likewise.
14999 * mips-tfile.c (main): Likewise.
15000 * mips-tdump.c (main): Likewise.
15001
1a2e38f3
MJ
150022011-01-03 Martin Jambor <mjambor@suse.cz>
15003
15004 PR tree-optimization/46801
15005 * tree-sra.c (type_internals_preclude_sra_p): Check whether
15006 aggregate fields start at byte boundary instead of the bit-field flag.
15007
56b721c5
L
150082011-01-03 H.J. Lu <hongjiu.lu@intel.com>
15009
15010 PR driver/47137
15011 * gcc.c (main): Revert revision 168407.
15012
839d549b
MJ
150132011-01-03 Martin Jambor <mjambor@suse.cz>
15014
15015 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15016
4ce99a20 150172011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
15018
15019 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15020 vector optab to expand vector/scalar shift, update gimple to vector.
15021
76df0ae6
MJ
150222011-01-03 Martin Jambor <mjambor@suse.cz>
15023
15024 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15025 a thunk.
15026
ce47fda3
MJ
150272011-01-03 Martin Jambor <mjambor@suse.cz>
15028
15029 PR tree-optimization/46984
15030 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15031 HOST_WIDE_INT.
15032 (cgraph_create_indirect_edge): Fixed line length.
15033 (cgraph_indirect_call_info): Declare.
15034 (cgraph_make_edge_direct) Update declaration.
15035 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15036 (cgraph_create_indirect_edge): Use it.
15037 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
15038 callees.
15039 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15040 the new thunk_delta representation.
15041 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15042 HOST_WIDE_INT.
15043 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15044 (ipa_read_indirect_edge_info): Likewise.
15045 * lto-cgraph.c (output_edge_opt_summary): New function.
15046 (output_node_opt_summary): Call it on all outgoing edges.
15047 (input_edge_opt_summary): New function.
15048 (input_node_opt_summary): Call it on all outgoing edges.
15049
1e67fa1f
L
150502011-01-02 H.J. Lu <hongjiu.lu@intel.com>
15051
15052 PR driver/47137
15053 * gcc.c (main): Don't check have_o when settting combine_inputs.
15054
6656b2ac
EB
150552011-01-02 Eric Botcazou <ebotcazou@adacore.com>
15056
15057 * regrename.c: Add general comment describing the pass.
15058 (struct du_head): Remove 'length' field.
15059 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15060 (regrename_optimize): Do not sort chains. Rework comments, add others.
15061 Force renaming to the preferred class (if any) in the first pass and do
15062 not consider registers that belong to it in the second pass.
15063 (create_new_chain): Do not set 'length' field.
15064 (scan_rtx_reg): Likewise.
15065
bc470c24
JJ
150662011-01-02 Jakub Jelinek <jakub@redhat.com>
15067
4e996296
JJ
15068 PR tree-optimization/47140
15069 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15070 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15071 to bit_value_binop.
15072
bc470c24 15073 PR rtl-optimization/47028
6656b2ac
EB
15074 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15075 parm_birth_insn instead of at the beginning of first bb.
bc470c24 15076
5af62fcd 150772011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
15078
15079 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15080 Remove the word "see" before "@pxref".
15081 * doc/rtl.texi: Remove the word "see" before "@pxref".
15082
0e20c89f
JH
150832011-01-01 Jan Hubicka <jh@suse.cz>
15084
6656b2ac
EB
15085 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15086 memory.
0e20c89f 15087
220e83ca
KT
150882011-01-01 Kai Tietz <kai.tietz@onevision.com>
15089
15090 PR target/38662
6656b2ac 15091 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 15092
ad41bd84 15093\f
797103eb 15094Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
15095
15096Copying and distribution of this file, with or without modification,
15097are permitted in any medium without royalty provided the copyright
15098notice and this notice are preserved.