]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR c++/49066 ([C++0x] Non-defining declaration of deleted function suppresses...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
bce33ab2
NF
12011-05-20 Nathan Froyd <froydnj@codesourcery.com>
2
3 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
4
e6450c11
TV
52011-05-20 Tom de Vries <tom@codesourcery.com>
6
7 PR target/45098
8 * tree-ssa-loop-ivopts.c: Include expmed.h.
9 (get_shiftadd_cost): New function.
10 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
11
0e8b84ec
JJ
122011-05-20 Jakub Jelinek <jakub@redhat.com>
13
14 PR bootstrap/49086
15 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
16 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
17
946bdf67
JM
182011-05-20 Joseph Myers <joseph@codesourcery.com>
19
20 * Makefile.in: Update comment referring to $(OBJS-common).
21
c53aafdf
ILT
222011-05-20 Ian Lance Taylor <iant@google.com>
23
24 * godump.c (go_output_typedef): Put enum constants in the macro
25 hash table to avoid duplicate Go const definitions.
26
2691e6d7
JM
272011-05-20 Joseph Myers <joseph@codesourcery.com>
28
29 * Makefile.in (LIBDEPS): Add libcommon.a.
30 (LIBS): Likewise.
31 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
32 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
33 pretty-print.o and version.o.
34 (OBJS-libcommon): New.
35 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
36 (BACKEND): Add libcommon.a.
37 (MOSTLYCLEANFILES): Likewise.
38 (libcommon.a): New.
39 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
40 (cpp$(exeext)): Likewise.
41 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
42 pretty-print.o and input.o.
43 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
44 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
45 (errors.o): Remove.
46 (mips-tfile): Don't explicitly use version.o.
47 (mips-tdump): Likewise.
48 (gcov.o): Depend on $(DIAGNOSTIC_H).
49 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
50 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
51 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
52 * gcov-dump.c: Include intl.h and diagnostic.h.
53 (main): Initialize diagnostics.
54 * gcov.c: Include diagnostic.h.
55 (fnotice): Remove.
56 (main): Initialize diagnostics.
57 * lto-wrapper.c: Include diagnostic.h.
58 (main): Initialize diagnostics.
59
252b3e8c
MM
602011-05-20 Michael Matz <matz@suse.de>
61
62 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
63
2ee36ba6
MM
642011-05-20 Michael Matz <matz@suse.de>
65 Richard Guenther <rguenther@suse.de>
66
67 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
68 use lto_streamer_cache_append directly instead of returning a VEC.
69 (preload_common_node): Remove.
70 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
71 track seen nodes.
72 (lto_streamer_cache_create): Call lto_preload_common_nodes.
73
90ff582f
RG
742011-05-20 Richard Guenther <rguenther@suse.de>
75
76 PR tree-optimization/49079
77 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
78 MEM_REFs correctly for the trailing array access detection.
79 Special case constants the same way as decls for overall size
80 constraining.
81
3cda91d8
UB
822011-05-20 Uros Bizjak <ubizjak@gmail.com>
83
84 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
85 argument expansion.
86
6c66f733
JJ
872011-05-20 Jakub Jelinek <jakub@redhat.com>
88
89 PR tree-optimization/49073
3cda91d8
UB
90 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
91 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
92 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
93
0ea80a16
RG
942011-05-20 Richard Guenther <rguenther@suse.de>
95
96 PR middle-end/48849
97 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
98 of pointer types the same way the middle-end does.
99
fb291a1e
RG
1002011-05-20 Richard Guenther <rguenther@suse.de>
101
3cda91d8
UB
102 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
103 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 104
37cb25ed
QN
1052011-05-19 Quentin Neill <quentin.neill@amd.com>
106
107 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
108 (fma4_fmaddsub): Likewise
109
a30726a4
JH
1102011-05-19 Jan Hubicka <jh@suse.cz>
111
112 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
113 (GIMPLE_TYPE_PAIR_SIZE): New macro.
114 (type_pair_cache): New static var.
115 (lookup_type_pair): Use fixed sized custom hash; make inline.
116 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
117 calls of lookup_type_pair.
118 (print_gimple_types_stats): Remove cache stats.
119 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
120 and gtc_ob.
121
0955cf61
UB
1222011-05-19 Uros Bizjak <ubizjak@gmail.com>
123
124 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
125 when TARGET_RDRND is active.
126 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
127 Generate dummy SImode target register when target is NULL.
128
12d844c8
JM
1292011-05-19 Joseph Myers <joseph@codesourcery.com>
130
131 * config/arm/arm-fpus.def: New.
132 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
133 arm-fpus.def.
134 * config/arm/arm-tables.opt: Regenerate.
135 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
136 (arm_option_override): Don't decode FPU name to string here.
137 * config/arm/arm.opt (mfpu=): Use Enum.
138 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
139 Update dependencies.
140
9e350e99
JM
1412011-05-19 Joseph Myers <joseph@codesourcery.com>
142
143 * collect2.c: Include diagnostic.h.
144 (fatal_perror, fatal, error, fancy_abort): Remove.
145 (main): Set progname. Call xmalloc_set_program_name and
146 diagnostic_initialize.
147 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
148 scan_libraries, resolve_lib_name): Call fatal_error instead of
149 fatal and fatal_perror.
150 * collect2.h (error, fatal, fatal_perror): Don't declare.
151 * tlink.c: Include diagnostic-core.h.
152 (recompile_files): Call fatal_error instead of fatal_perror.
153 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
154 pretty-print.o and input.o.
155 (collect2.o, tlink.o): Update dependencies.
156
86ff4081
RO
1572011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
158
159 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
160
2ca48caa
RO
1612011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
162
163 PR target/40483
164 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
165 COMDAT group syntax, both SPARC and x86 variants.
166 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
167 * configure: Regenerate.
168 * config/sol2.h (TARGET_SOLARIS): Define.
169 (PUSHSECTION_FORMAT): Remove.
170 (SECTION_NAME_FORMAT): Define.
171 * config/sol2.c: Include hashtab.h.
172 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
173 expansion, using SECTION_NAME_FORMAT.
174 (solaris_comdat_htab): New variable.
175 (struct comdat_entry): Define.
176 (comdat_hash): New function.
177 (comdat_eq): New function.
178 (solaris_elf_asm_comdat_section): New function.
179 (solaris_define_comdat_signature): New function.
180 (solaris_code_end): New function.
181 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
182 (solaris_code_end): Declare.
183 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
184 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
185 solaris_code_end.
186 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
187 Remove ATTRIBUTE_UNUSED.
188 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
189 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 190 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
191 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
192 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
193 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
194 (PUSHSECTION_FORMAT): Remove.
195 (SECTION_NAME_FORMAT): Redefine.
196
da5fb469
KT
1972011-05-19 Kai Tietz <ktietz@redhat.com>
198
199 * tree-cfg.c (verify_gimple_assign_binary): Barf on
200 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
201 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
202
0967b228
AS
2032011-05-19 Anatoly Sokolov <aesok@post.ru>
204 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
205
206 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
207
e497b9bd
RG
2082011-05-19 Richard Guenther <rguenther@suse.de>
209
210 PR middle-end/48985
211 * tree-object-size.c (addr_object_size): If the pointed-to
212 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
213
31b3ca64
RG
2142011-05-19 Richard Guenther <rguenther@suse.de>
215
216 * gimple.c (gimple_types_compatible_p_1): Compare names of
217 the types themselves.
218 (iterative_hash_gimple_type): And hash them that way.
219 (gimple_register_type_1): If we register a main variant properly
220 initialize the leader to ourselves.
221
bb8d292d
TV
2222011-05-19 Tom de Vries <tom@codesourcery.com>
223
224 PR target/45098
225 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
226 get_loop_invariant_expr_id.
227 (get_loop_invariant_expr_id): Use get_expr_id.
228 (parm_decl_cost): New function.
229 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
230 Improve bound cost estimation. Use different inv_expr_id for elim and
231 express cases.
232
a53c5024
TV
2332011-05-19 Tom de Vries <tom@codesourcery.com>
234
235 PR target/45098
236 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
237 cost_base.cost == 0.
238
31f9eb59
L
2392011-05-18 H.J. Lu <hongjiu.lu@intel.com>
240
241 PR target/49002
242 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
243 Properly handle load cast.
244
681056ae
JJ
2452011-05-18 Jakub Jelinek <jakub@redhat.com>
246
247 PR tree-optimization/49039
248 * tree-vrp.c (extract_range_from_binary_expr): For
249 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
250 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
251
b5ee6752
TV
2522011-05-18 Tom de Vries <tom@codesourcery.com>
253
254 PR target/45098
255 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
256
0bda47a3
UB
2572011-05-18 Uros Bizjak <ubizjak@gmail.com>
258
259 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
260 (*tls_global_dynamic_64): Ditto.
261 (*tls_local_dynamic_base_32_gnu): Ditto.
262 (*tls_local_dynamic_base_64): Ditto.
263 (tls_initial_exec_64_sun): Ditto.
264
033b0805
SH
2652011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
266
267 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
268 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
269 bf592-none.
270 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
271 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
272 * config/bfin/bfin.c (bfin_cpus): Add bf592.
273 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 274 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
275 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
276 * config/bfin/elf.h (LIB_SPEC): Add bf592.
277
ba163417
JM
2782011-05-18 Joseph Myers <joseph@codesourcery.com>
279
280 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 281 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
282 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
283 target_thread_pointer, arm_structure_size_boundary, struct
284 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
285 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
286 (arm_option_override) Don't process most enumerated option values here.
287 Don't process target_fpe_name here. Work with integer not string for
288 structure size boundary; use separate diagnostics for each case.
ba163417
JM
289 * config/arm/arm.h (enum float_abi_type, enum
290 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
291 to arm-opts.h.
292 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
293 arm_structure_size_boundary): Remove.
294 * config/arm/arm.opt (mabi=): Use Enum and Init.
295 (arm_abi_type): New Enum and EnumValue entries.
296 (mfloat-abi=): Use Enum and Init.
297 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 298 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
299 (mfp16-format=): Use Enum and Init.
300 (arm_fp16_format_type): New Enum and EnumValue entries.
301 (mstructure-size-boundary=): Use UInteger and Init.
302 (mtp=): Use Enum and Init.
303 (arm_tp_type): New Enum and EnumValue entries.
304
179184e3
RG
3052011-05-18 Richard Guenther <rguenther@suse.de>
306
307 PR tree-optimization/49018
308 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
309 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
310 gimple_has_side_effects.
311
93b2a207
RG
3122011-05-18 Richard Guenther <rguenther@suse.de>
313
314 * gimple.c (gimple_register_type_1): New function, split out from ...
315 (gimple_register_type): ... here. Avoid infinite recursion.
316
b010117a
IR
3172011-05-18 Ira Rosen <ira.rosen@linaro.org>
318
319 PR tree-optimization/41881
320 * tree-vectorizer.h (struct _loop_vec_info): Add new field
321 reduction_chains along with a macro for its access.
322 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
323 (destroy_loop_vec_info): Free reduction chains.
324 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
325 (vect_is_slp_reduction): New function.
326 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
327 (vect_create_epilog_for_reduction): Support SLP reduction chains.
328 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
329 definition types for reduction chains.
330 (vect_supported_load_permutation_p): Don't allow permutations for
331 reduction chains.
332 (vect_analyze_slp_instance): Support reduction chains.
333 (vect_analyze_slp): Try to build SLP instance from reduction chains.
334 (vect_get_constant_vectors): Handle reduction chains.
335 (vect_schedule_slp_instance): Mark the first statement of the
336 reduction chain as reduction.
337
e14c1050
IR
3382011-05-18 Ira Rosen <ira.rosen@linaro.org>
339
340 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
341 names for group elements access.
342 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
343 reduction chains as well. Remove data reference and interleaving
344 related words from the fields names.
345 * tree-vect-loop.c (vect_transform_loop): Use new names for group
346 elements access.
347 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
348 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
349 vect_update_interleaving_chain, vect_same_range_drs,
350 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
351 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
352 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
353 vect_analyze_group_access, vect_analyze_data_ref_access,
354 vect_create_data_ref_ptr, vect_transform_strided_load,
355 vect_record_strided_load_vectors): Likewise.
356 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
357 vect_model_load_cost, vectorizable_store, vectorizable_load,
358 vect_remove_stores, new_stmt_vec_info): Likewise.
359 * tree-vect-slp.c (vect_build_slp_tree,
360 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
361
51c213f7
RG
3622011-05-18 Richard Guenther <rguenther@suse.de>
363
364 PR middle-end/48989
365 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
366 operand verification.
367 (verify_gimple_assign_binary): Likewise.
368 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
369 to non-1-precision BOOLEAN_TYPEs.
370
8f5e5434
TV
3712011-05-18 Tom de Vries <tom@codesourcery.com>
372
373 PR target/45098
374 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
375
116bc3a4
JJ
3762011-05-18 Jakub Jelinek <jakub@redhat.com>
377
378 PR tree-optimization/49000
379 * tree-ssa.c (execute_update_addresses_taken): Call
380 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
381 be rewritten and decl has been marked for renaming, reset
382 the debug stmt.
383
26a8964c
JM
3842011-05-17 Joseph Myers <joseph@codesourcery.com>
385
386 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
387 enum_opts_set when testing if attributes have set -mfpmath=.
388
82bd45d7
RS
3892011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
390
391 * config/mips/mips.c (mips_handle_option): Remove unused variable.
392
267ffce3
UB
3932011-05-17 Uros Bizjak <ubizjak@gmail.com>
394
395 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
396 info->entry with 0
397 * tree-inline.c (maybe_inline_call_in_expr): Initialize
398 id.transform_lang_insert_block with NULL.
399
4002011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
401
402 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
403 (output_fp_compare): Change args 3 and 4 to bool.
404 (ix86_expand_call): Change arg 6 to bool.
405 (ix86_attr_length_immediate_default): Change arg 2 to bool.
406 (ix86_attr_length_vex_default): Change arg 3 to bool.
407 * config/i386/i386.md: Update all uses.
408 * config/i386/i386.c: Ditto.
409 (ix86_flags_dependent): Change return type to bool.
410
5beaf664
RG
4112011-05-17 Richard Guenther <rguenther@suse.de>
412
413 * gimple.c (type_hash_pair_compare): Fix comparison.
414
008bad7a
RG
4152011-05-17 Richard Guenther <rguenther@suse.de>
416
417 * gimple.c (iterative_hash_gimple_type): Simplify singleton
418 case some more, fix final hash value of the non-singleton case.
419
36461340
RG
4202011-05-17 Richard Guenther <rguenther@suse.de>
421
422 PR bootstrap/49013
423 Revert
424 2011-05-16 Richard Guenther <rguenther@suse.de>
425
426 * gimple.c (gimple_types_compatible_p_1): Use names of the
427 type itself, not its main variant.
428 (iterative_hash_gimple_type): Likewise.
429
6b6a59f3
RG
4302011-05-17 Richard Guenther <rguenther@suse.de>
431
432 * gimple.c (gimple_register_canonical_type): Use the main-variant
433 leader for computing the canonical type.
434
4ffc4134
NC
4352011-05-17 Nick Clifton <nickc@redhat.com>
436
a1d8754e
NC
437 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
438 moves.
439
4ffc4134
NC
440 * config/rx/rx.md: Add peephole to remove redundant extensions
441 after loads.
39960f7a
NC
442 (bitset_in_memory): Use rx_restricted_mem_operand.
443 (bitinvert_in_memory): Likewise.
444 (bitclr_in_memory): Likewise.
4ffc4134 445
b3db92ac
KI
4462011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
447 Nick Clifton <nickc@redhat.com>
448
449 * config/rx/rx.md: Add peepholes to match a register move followed
450 by a comparison of the moved register. Replace these with an
451 addition of zero that does both actions in one instruction.
452
8637e32a
JJ
4532011-05-17 Jakub Jelinek <jakub@redhat.com>
454
455 PR target/48986
456 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
457 predicate to allow CONST_INT.
458 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
459
8023568e
JM
4602011-05-16 Joseph Myers <joseph@codesourcery.com>
461
462 * opts-common.c (opt_enum_arg_to_value): New.
463 * opts.h (opt_enum_arg_to_value): Declare.
464 * config/i386/i386.opt (fpmath): Remove.
465 (mfpmath=): Use Enum, Init and Save.
466 (fpmath_unit): New Enum and EnumValue entries.
467 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
468 name for function fpmath state.
469 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
470 * config/i386/i386.c: Include diagnostic.h.
471 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 472 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 473 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 474 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
475 (x86_function_specific_save, ix86_function_specific_restore):
476 Don't handle fpmath state specially.
477 (ix86_function_specific_print): Pass fpmath state to
478 ix86_target_string instead of printing in this function.
479 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
480 Handle enum attributes.
481 (IX86_ATTR_ENUM, ix86_opt_enum): New.
482 (ix86_valid_target_attribute_tree): Update option_strings
483 handling. Handle fpmath as enum option.
484 (ix86_can_inline_p): Update field names for function fpmath state.
485 (ix86_expand_builtin): Update call to ix86_target_string.
486 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
487 (ix86_fpmath): Remove.
488 * config/i386/t-i386 (i386.o): Update dependencies.
489
9e8d926e
JM
4902011-05-16 Joseph Myers <joseph@codesourcery.com>
491
492 PR preprocessor/48677
493 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
494 from decoded_options[0], not from itself.
495
f6449011
UB
4962011-05-16 Uros Bizjak <ubizjak@gmail.com>
497
498 * config/i386/constraints.md (z): New constraint.
499 * config/i386/i386.c (c): New mode attribute.
500 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
501 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
502 constraint for operand 0.
503 (*call_vzeroupper): Ditto.
504 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
505 (*call_rex64_ms_sysv_vzeroupper): Ditto.
506 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
507 Use "lzm" constraint for operand 0.
508 (*call_pop_vzeroupper): Ditto.
509 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
510 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
511 constraint for operand 0.
512 (*sibcall_vzeroupper): Ditto.
513 (*sibcall_rex64_ms_sysv): Ditto.
514 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
515 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
516 *sibcall_pop_1. Use "Uz" constraint for operand 0.
517 (*sibcall_pop_vzeroupper): Ditto.
518 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
519 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
520 mode iterator. Use "<c>zm" constraint for operand 1.
521 (*call_value_vzeroupper): Ditto.
522 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 523 for operand 1.
f6449011
UB
524 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
525 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
526 *call_value_pop_1. Use "lzm" constraint for operand 1.
527 (*call_value_pop_vzeroupper): Ditto.
528 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
529 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
530 mode iterator. Use "Uz" constraint for operand 1.
531 (*sibcall_value_vzeroupper): Ditto.
532 (*sibcall_value_rex64_ms_sysv): Ditto.
533 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
534 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
535 constraint for operand 1.
536 (*sibcall_value_pop_vzeroupper): Ditto.
537 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
538 and "z" constraint for operand 2.
539 (*tls_global_dynamic_32_gnu): Ditto.
540 (*tls_local_dynamic_base_32_gnu): Ditto.
541 (*tls_local_dynamic_base_64): Ditto.
542 (*tls_local_dynamic_32_once): Ditto.
543 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
544 Update all callers.
545 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
546
c11b6902
RG
5472011-05-16 Richard Guenther <rguenther@suse.de>
548
549 * gimple.c (gimple_types_compatible_p_1): Use names of the
550 type itself, not its main variant.
551 (iterative_hash_gimple_type): Likewise.
552
1e83b5f1
RG
5532011-05-16 Richard Guenther <rguenther@suse.de>
554
f6449011
UB
555 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
556 always visit pointer target and function result and argument types.
1e83b5f1 557
62e36382
JM
5582011-05-16 Jason Merrill <jason@redhat.com>
559
560 PR c++/48999
561 * tree-inline.c (copy_statement_list): Put back recursion.
562
687027a4
GJL
5632011-05-16 Georg-Johann Lay <avr@gjlay.de>
564
565 PR target/27663
566 PR target/41076
567 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
568 * config/avr/avr.md ("*ior<mode>qi.byte0",
569 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
570
f24a5190
GJL
5712011-05-16 Georg-Johann Lay <avr@gjlay.de>
572
573 PR target/45099
574 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
575 register is needed for a function argument.
576
3066f593
RG
5772011-05-16 Richard Guenther <rguenther@suse.de>
578
579 * gimple.c (struct type_hash_pair): New type.
580 (type_hash_pair_compare): New function.
f6449011 581 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 582
b2ab2cf4
RE
5832011-05-16 Revital Eres <revital.eres@linaro.org>
584
f6449011 585 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 586
dfb737fc
UB
5872011-05-15 Uros Bizjak <ubizjak@gmail.com>
588
589 * config/i386/i386.md (floating point move splitters): Fix
590 usage of standard_80387_constant_p.
f6449011 591 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 592
8caa1de0
UB
5932011-05-15 Uros Bizjak <ubizjak@gmail.com>
594
595 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
596
8a519095
EB
5972011-05-14 Eric Botcazou <ebotcazou@adacore.com>
598
599 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
600 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
601 (tree_ssa_lim_finalize): Likewise.
602
479fecd3
UB
6032011-05-14 Uros Bizjak <ubizjak@gmail.com>
604
605 * config/i386/constraint.md (Yd, Yx): New register constraints.
606 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
607 Yd conditional register constraint.
608 (*movtf_internal): Use standard_sse_constant_opcode.
609 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
610 Yx conditional register constraint.
611 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
612 Yd conditional register constraint. Use standard_sse_constant_p to
613 check for valid SSE constants and call standard_sse_constant_opcode to
614 output SSE insn.
615 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
616 constants and call standard_sse_constant_opcode to output SSE insn.
617 * config/i386/i386.c (ix86_option_ovverride_internal): Set
618 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
619 optimize_size is set.
620 (standard_sse_constant_opcode): Output conditional AVX insn templates.
621
2d8c9ad5
TB
6222011-05-14 Tobias Burnus <burnus@net-b.de>
623
624 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
625
411a20d6
MJ
6262011-05-13 Martin Jambor <mjambor@suse.cz>
627
628 * ipa-prop.c (ipa_cst_from_jfunc): New function.
629 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
630 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
631 (evaluate_conditions_for_ipcp_clone): Removed.
632 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
633 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
634 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
635
dc764d10
EB
6362011-05-13 Eric Botcazou <ebotcazou@adacore.com>
637
638 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
639 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
640 lieu of MAY_HAVE_DEBUG_STMTS.
641 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
642 debug statements if !MAY_HAVE_DEBUG_STMTS.
643
9f47a24e
MT
6442011-05-13 Martin Thuresson <martint@google.com>
645
646 PR gcov-profile/47793
647 * libgcov.c (gcov_exit): Support relative profile paths.
648 * doc/invoke.texi (-fprofile-dir): Update for above change.
649
b8a71aed
RG
6502011-05-13 Richard Guenther <rguenther@suse.de>
651
652 * gimple.c (gimple_canonical_types_compatible_p): Do not use
653 type-pair caching, do not compare hashes.
654
eb9f9259
NF
6552011-05-13 Nathan Froyd <froydnj@codesourcery.com>
656
657 PR middle-end/48965
658 * tree-cfg.c (edge_to_cases_cleanup): Return true.
659 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
660
3c6cbf7a
KT
6612011-05-13 Kai Tietz <ktietz@redhat.com>
662
663 * gimplify.c (gimplify_expr): Make sure operand is boolified.
664 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
665 compatible type for TRUTH_NOT_EXPR.
666
2e7f5dc0
L
6672011-05-13 H.J. Lu <hongjiu.lu@intel.com>
668
dc764d10 669 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
670 (ix86_hard_regno_mode_ok): Change return value to bool. Use
671 can_create_pseudo_p ().
672
e834e95c
RG
6732011-05-13 Richard Guenther <rguenther@suse.de>
674
675 PR lto/48978
676 * gimple.c (iterative_hash_gimple_type): Revert change in
677 pointer target and function result and argument hashing.
678
34203483
UB
6792011-05-13 Uros Bizjak <ubizjak@gmail.com>
680
681 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
682 (*movxf_internal_nointeger): Ditto.
683 (*movdf_internal_rex64): Ditto.
684 (*movdf_internal): Ditto.
685 (*movdf_internal_nointeger): Ditto.
686 (*movsf_internal): Ditto.
687 (sincos splitters): Use can_create_pseudo ().
688
7eb68c06
JM
6892011-05-13 Joseph Myers <joseph@codesourcery.com>
690
691 * config/i386/i386-opts.h: New.
692 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
693 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
694 ix86_section_threshold): Remove.
695 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
696 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
697 OPT_mbranch_cost_.
698 (ix86_option_override_internal): Don't decode strings for options
699 other than -march=, -mtune= and -mfpmath=. Don't allow for
700 __attribute__ uses in remaining diagnostics for options with
34203483 701 string arguments. Don't check for integer arguments being negative.
7eb68c06 702 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 703 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
704 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
705 ix86_branch_cost, ix86_section_threshold): Remove.
706 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
707 HeaderInclude.
708 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
709 but not Var.
710 (masm=): Use Enum and Init.
711 (asm_dialect): New Enum and EnumValue entries.
712 (mbranch-cost=): Use UInteger.
713 (mlarge-data-threshold=): Use UInteger and Init.
714 (mcmodel=): Use Enum and Init.
715 (cmodel): New Enum and EnumValue entries.
716 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
717 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
718 mregparm=): Use UInteger.
719 (mstringop-strategy=): Use Enum and Init.
720 (stringop_alg): New Enum and EnumValue entries.
721 (mtls-dialect=): Use Enum and Init.
722 (tls_dialect): New Enum and EnumValue entries.
723 (mabi=): Use Enum and Init.
724 (calling_abi): New Enum and EnumValue entries.
725 (mveclibabi=): Use Enum and Init.
726 (ix86_veclibabi): New Enum and EnumValue entries.
727
f67e203c
NC
7282011-05-13 Nick Clifton <nickc@redhat.com>
729
34203483
UB
730 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
731 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 732
221df0b6
KT
7332011-05-13 Kai Tietz <ktietz@redhat.com>
734
735 PR middle-end/48984
736 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
737 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
738 (gimple_boolify): Check for cast for boolean_type_node instead for
739 BOOLEAN_TYPE.
740
208cb8cb
RG
7412011-05-13 Richard Guenther <rguenther@suse.de>
742
743 PR tree-optimization/48172
744 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
745 multiplying by number of iterations for equal step.
746 (vect_create_cond_for_alias_checks): Likewise.
747
b88ecf55
AS
7482011-05-13 Andreas Schwab <schwab@redhat.com>
749
750 * configure.ac: Use AS_HELP_STRING throughout.
751 * configure: Regenerate.
752
569b527e
L
7532011-05-12 H.J. Lu <hongjiu.lu@intel.com>
754
34203483 755 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
756 (ix86_emit_restore_regs_using_mov): Likewise.
757 (ix86_emit_restore_sse_regs_using_mov): Likewise.
758
8b9a1428
AS
7592011-05-12 Anatoly Sokolov <aesok@post.ru>
760
761 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
762 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
763 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
764 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
765 RTX_OK_FOR_OLO10_P): ...here.
766 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
767 SYMBOLIC_CONST.
768
1d15f620
KT
7692011-05-12 Kai Tietz <ktietz@redhat.com>
770
771 * gimplify.c (gimple_boolify): Re-boolify expression
772 arguments even if expression type is of kind BOOLEAN_TYPE.
773 (gimplify_boolean_expr): Removed.
774 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
775 and XOR. Additional take care that we keep expression's type.
776 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
777 of TRUTH_AND|OR|XOR_EXPR.
778
c2b5fc8d
JJ
7792011-05-12 Jakub Jelinek <jakub@redhat.com>
780
781 PR tree-optimization/48975
782 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
783 on all bbs here and free and clear ifc_bbs at the end.
784
61332f77
RG
7852011-05-12 Richard Guenther <rguenther@suse.de>
786
787 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
788 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
789 until after simple checks.
790 (gimple_types_compatible_p): Likewise.
791 (iterative_hash_gimple_type): Always hash pointer targets
792 and function return and argument types.
793 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
794 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
795 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
796 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
797 completely in the simple compare section.
798 (gimple_register_canonical_type): Query the cache again after
799 registering.
800
e2a3a5f1
RG
8012011-05-12 Richard Guenther <rguenther@suse.de>
802
803 PR tree-optimization/48172
804 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
805 the number of iterations from the segment size calculation.
806 (vect_create_cond_for_alias_checks): Adjust.
807
2c703f3a
JJ
8082011-05-12 Jakub Jelinek <jakub@redhat.com>
809
810 PR debug/48967
811 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
812 if validate_subreg fails.
813
8142011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
815
816 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
817 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
818 early.
819
87e91fca
DD
8202011-05-12 DJ Delorie <dj@redhat.com>
821
d53903d6 822 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
823 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
824 created builtin into rx_builtins array.
825 (rx_builtin_decl): New function.
34203483 826 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 827
5f2f13fd
DD
8282011-05-12 DJ Delorie <dj@redhat.com>
829 Nick Clifton <nickc@redhat.com>
830
831 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
832 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
833 (rx_is_legitimate_address): Add pre-decrement and post-increment
834 addressing in HImode and QImode. Fix test for out of range
835 REG+INT addressing.
87e91fca 836 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 837 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 838 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 839 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 840
57421f45
JM
8412011-05-11 Jason Merrill <jason@redhat.com>
842
843 * tree.c (type_hash_canon): Use struct tree_type_non_common.
844
898c90c0
EB
8452011-05-11 Eric Botcazou <ebotcazou@adacore.com>
846
847 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
848 reindent the subsequent block.
849
79bec923
ST
8502011-05-11 Satoru Takabayashi <satorux@google.com>
851 Paul Pluzhnikov <ppluzhnikov@google.com>
852
34203483 853 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
854 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
855 * config.in: Add LINKER_HASH_STYLE.
856 * configure.ac: Add --with-linker-hash-style.
857 * configure: Regenerate.
79bec923 858
d0340959
RG
8592011-05-11 Richard Guenther <rguenther@suse.de>
860
861 PR middle-end/48964
862 * gimple.c (iterative_hash_canonical_type): Fix typo.
863
cb032fee
UB
8642011-05-11 Uros Bizjak <ubizjak@gmail.com>
865
866 * config/i386/i386.c (legitimize_tls_address)
479fecd3 867 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
868 expanders directly for TARGET_GNU2_TLS. Determine pic and
869 __tls_get_addr symbol reference here. Update call to
870 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 871 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
872 expanders directly for TARGET_GNU2_TLS. Determine
873 __tls_get_addr symbol reference here. Update call to
874 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
875 unique UNSPEC REG_EQUIV to libcall block.
876 (ix86_tls_get_addr): Declare static.
877 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
878 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
879 Do not determine pic and __tls_get_addr symbol reference here. Do not
880 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
881 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
882 (tls_global_dynamic_64): Add operand 2. Do not determine
883 __tls_get_addr symbol reference here. Do not call
884 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
885 (tls_local_dynamic_base64): Ditto for operand 1.
886
6d3cc8f0
EB
8872011-05-11 Eric Botcazou <ebotcazou@adacore.com>
888
889 * function.c (expand_function_start): Initialize stack_check_probe_note
890 only if the generic stack checking mechanism is used.
891
51e020fc
RG
8922011-05-11 Richard Guenther <rguenther@suse.de>
893
894 PR tree-optimization/15256
895 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
896 (A & B) | C, combine (A op CST1) op CST2.
897 (tree_ssa_forward_propagate_single_use_vars): Only bother to
898 visit assigns that have uses.
899
51545682
NF
9002011-05-11 Nathan Froyd <froydnj@codesourcery.com>
901
cb032fee 902 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
903 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
904 (unpack_ts_type_common_value_fields): ...this. Update comment.
905 (unpack_value_fields): Adjust for renaming.
906 (lto_input_ts_type_tree_pointers): Split into...
907 (lto_input_ts_type_common_tree_pointer): ...this and...
908 (lto_input_ts_type_non_common_tree_pointers): ...this.
909 (lto_input_tree_pointers): Adjust for above split.
910 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
911 (pack_ts_type_common_value_fields): ...this. Update comment.
912 (lto_output_ts_type_tree_pointers): Split into...
913 (lto_output_ts_type_common_tree_pointers): ...this and...
914 (lto_output_ts_type_non_common_tree_pointers): ...this.
915 (lto_output_tree_pointers): Adjust for above split.
916 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
917 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
918 * stor-layout.c (vector_type_mode): Adjust location of mode field.
919 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
920 Define.
921 (struct tree_type): Split into...
922 (struct tree_type_common: ...this and...
923 (struct tree_type_with_lang_specific): ...this and...
924 (struct tree_type_non_common): ...this. Adjust accessor macros
925 accordingly.
926 (TYPE_VALUES_RAW): Define.
927 (union tree_node): Update for above changes.
928 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
929 TS_TYPE_NON_COMMON.
930 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
931 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
932 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
933 * treestructu.def (TS_TYPE): Remove.
934 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
935 Define.
936
b03c3082
JJ
9372011-05-11 Jakub Jelinek <jakub@redhat.com>
938
939 PR debug/48159
940 * tree-ssa.c (reset_debug_uses): New function.
941 * tree-flow.h (reset_debug_uses): New prototype.
942 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
943 * tree-loop-distribution.c (generate_loops_for_partition): Call
944 reset_debug_uses on the stmts that will be removed. Keep around
945 all debug stmts, don't count them as bits in partition bitmap.
946 (generate_builtin): Don't count debug stmts or labels as bits in
947 partition bitmap.
948
b5e04de5
RG
9492011-05-11 Richard Guenther <rguenther@suse.de>
950
951 * gimple.c (gimple_type_hash_1): Merge with ...
952 (gimple_type_hash): ... this.
953 (gtc_visit): Remove mode parameter and simplify accordingly.
954 (gimple_types_compatible_p_1): Likewise.
955 (gimple_types_compatible_p): Likewise.
956 (iterative_hash_gimple_type): Likewise.
957 (visit): Likewise.
958 (gimple_type_eq): Adjust.
959
fc6970e4
RE
9602011-05-11 Revital Eres <revital.eres@linaro.org>
961
962 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
963 enters the branch create an anti edge in the opposite direction
964 to prevent the creation of reg-moves.
965 * modulo-sched.c: Adjust comment to reflect the fact we are
966 scheduling closing branch.
967 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
968 (stage_count): New field in struct partial_schedule.
969 (calculate_stage_count): New function.
970 (normalize_sched_times): Rename to reset_sched_times and handle
971 incrementing the sched time of the nodes by a constant value
972 passed as parameter.
973 (duplicate_insns_of_cycles): Skip closing branch.
974 (sms_schedule_by_order): Schedule closing branch.
975 (ps_insn_find_column): Handle closing branch.
976 (sms_schedule): Call reset_sched_times and adjust the code to
977 support scheduling of the closing branch.
978 (ps_insert_empty_row): Update calls to normalize_sched_times
979 and rotate_partial_schedule functions.
980
41a58a92
RG
9812011-05-11 Richard Guenther <rguenther@suse.de>
982
983 PR middle-end/48953
984 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
985
e9f8dcf9
JM
9862011-05-11 Joseph Myers <joseph@codesourcery.com>
987
cb032fee
UB
988 * opts.c (finish_options): Move warning settings from process_options.
989 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 990
10c224a9
RG
9912011-05-11 Richard Guenther <rguenther@suse.de>
992
993 PR tree-optimization/18041
994 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
995 (simplify_bitwise_binary): ... this. Handle operand conversions
996 by applying them to the result instead.
997 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
998
825b27de
RG
9992011-05-11 Richard Guenther <rguenther@suse.de>
1000
1001 * gimple.c (gimple_canonical_types_compatible_p): Split out
1002 from gimple_types_compatible_p and friends. Do not recurse
1003 to pointed-to types.
1004 (gimple_canonical_type_eq): Use it.
1005 (iterative_hash_canonical_type): Split out from
1006 iterative_hash_gimple_type and friends. Do not recurse
1007 to pointed-to types.
1008 (gimple_canonical_type_hash): Use it, allocate the hash here.
1009
ca756625
RE
10102011-05-11 Revital Eres <revital.eres@linaro.org>
1011
1012 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1013 recognizing doloop.
1014
b8abece3
RE
10152011-05-11 Revital Eres <revital.eres@linaro.org>
1016
1017 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1018 instead of PREV_INSN.
1019
ce7b3761
RE
10202011-05-11 Revital Eres <revital.eres@linaro.org>
1021
1022 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1023 * loop-doloop.c (doloop_condition_get): Likewise.
1024 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1025 (doloop_end): New.
1026 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1027
a9dc9d37
NF
10282011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1029
1030 * tree.def (CASE_LABEL_EXPR): Add an operand.
1031 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1032
96703596
JM
10332011-05-10 Joseph Myers <joseph@codesourcery.com>
1034
1035 * c-decl.c (c_override_global_bindings_to_false): Remove.
1036 (global_bindings_p): Don't check
1037 c_override_global_bindings_to_false.
1038 * c-tree.h (c_override_global_bindings_to_false): Remove.
1039 * c-typeck.c (composite_type): Don't set
1040 c_override_global_bindings_to_false.
1041
dbcc9f08
MM
10422011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1043
1044 PR target/48857, 48495
1045 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1046 (VSX_MODE): Ditto.
1047 (VSX_MOVE_MODE): Ditto.
1048 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1049 VSX vector types. Add V2DImode.
1050 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1051 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1052 (MODES_TIEABLE_P): Ditto.
1053
1054 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1055 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1056 VSX_VECTOR_MODE.
1057 (init_cumulative_args): Ditto.
1058 (rs6000_function_arg_boundary): Ditto.
1059 (rs6000_function_arg_advance_1): Ditto.
1060 (rs6000_function_arg): Ditto.
1061 (rs6000_function_ok_for_sibcall): Ditto.
1062 (emit_frame_save): Ditto.
1063 (rs6000_function_value): Ditto.
1064 (rs6000_libcall_value): Ditto.
1065
4a68b4ca
JM
10662011-05-10 Joseph Myers <joseph@codesourcery.com>
1067
1068 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1069 i386/darwin-lib.h to $libgcc_tm_file.
1070 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1071
bcb521e9
JM
10722011-05-10 Joseph Myers <joseph@codesourcery.com>
1073
1074 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1075
f10d3ac9
JM
10762011-05-10 Joseph Myers <joseph@codesourcery.com>
1077
cb032fee 1078 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
1079 * config/rs6000/rs6000-tables.opt: New file (generated).
1080 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1081 rs6000/rs6000-tables.opt to extra_options.
1082 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1083 * config/rs6000/rs6000.c (rs6000_select): Remove.
1084 (processor_target_table): Move contents to rs6000-cpus.def.
1085 (darwin_rs6000_override_options): Check
1086 global_options_set.x_rs6000_cpu_index instead of
1087 rs6000_select[1].string.
1088 (rs6000_option_override_internal): Likewise.
1089 (rs6000_handle_option): Don't assert that global structures are in
1090 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1091 (rs6000_default_cpu): New variable.
1092 (rs6000_file_start): Set it instead of local default_cpu. Check
1093 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1094 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1095 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1096 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1097 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1098 rs6000_select): Remove.
1099 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1100 Remove.
1101 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1102 * config/rs6000/t-rs6000
1103 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1104 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1105 global_options_set.x_rs6000_cpu_index instead of
1106 rs6000_select[1].string.
1107 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1108 global_options_set.x_rs6000_cpu_index instead of
1109 rs6000_select[1].string.
1110
80cf2e08
JM
11112011-05-10 Joseph Myers <joseph@codesourcery.com>
1112
1113 * config.gcc (libgcc_tm_file): Define instead of including files
1114 from ../../libgcc/config/ in tm_file.
cb032fee 1115 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
1116 * configure: Regenerate.
1117 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1118 libgcc_tm.h, cs-libgcc_tm.h): New.
1119 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1120 (clean): Remove libgcc_tm.h.
1121 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1122 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1123 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1124
fd01a351
GJL
11252011-05-10 Georg-Johann Lay <avr@gjlay.de>
1126
1127 PR target/48896
1128 * config/avr/avr.c (avr_ret_register): Return unsigned int
1129 instead of int.
1130 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1131 it to avr_libcall_value.
1132 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1133 expand_expr.
1134 (avr_expand_binop_builtin): Ditto.
1135 (avr_expand_unop_builtin): Ditto.
1136
34cc3c86
DD
11372011-05-10 DJ Delorie <dj@redhat.com>
1138
1139 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1140 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1141 * config/rx/rx.c (rx_align_for_label): Add label and
1142 uses_threshold parameters. Do not align when the label is not
1143 used enough.
1144 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1145
be173289
RG
11462011-05-10 Richard Guenther <rguenther@suse.de>
1147
1148 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1149 a series of conversions and apply foldings similar to what
1150 fold-const does.
1151 (tree_ssa_forward_propagate_single_use_vars): Call it.
1152
e7f78021
JJ
11532011-05-10 Jakub Jelinek <jakub@redhat.com>
1154
6ae70ea2
JJ
1155 PR tree-optimization/48611
1156 PR tree-optimization/48794
1157 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1158 referenced from RESX or EH_DISPATCH arguments.
1159
e7f78021
JJ
1160 PR debug/48928
1161 * dfp.c (decimal_to_decnumber): Handle conversion from
1162 dconst{1,2,m1,half}.
1163
fca132b9
UB
11642011-05-09 Uros Bizjak <ubizjak@gmail.com>
1165
1166 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1167 for !flag_prefer_avx128.
1168 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1169
e4c03378
EB
11702011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1171
1172 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1173 (fold_ternary_loc): Use expr_location_or.
1174
805d6a75
L
11752011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1176
1177 PR debug/48853
1178 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1179 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1180 Pmode and mem_mode is not VOIDmode.
1181
e4c03378 11822011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 1183
e4c03378
EB
1184 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1185 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 1186
51e7f377
UB
11872011-05-09 Uros Bizjak <ubizjak@gmail.com>
1188
1189 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1190 (const_pow2_1_to_8_operand): Ditto.
1191 (const_pow2_1_to_128_operand): Ditto.
1192 (const_pow2_1_to_32768_operand): Ditto.
1193 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1194 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1195 in insn constraint to check integer value of operand 3.
1196 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1197
1198 (PINSR_MODE): New mode iterator.
1199 (sse2p4_1): New mode attribute.
1200 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1201 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1202 iterator. Use const_int_operand instead of
1203 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1204 exact_log2 in insn constraint to check integer value of operand 3.
1205
12062011-05-09 Uros Bizjak <ubizjak@gmail.com>
1207
1208 * config/i386/sse.md (blendbits): Remove mode attribute.
1209 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1210 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1211 Check integer value of operand 3 in insn constraint.
1212
0ca8de87
RG
12132011-05-09 Richard Guenther <rguenther@suse.de>
1214
1215 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1216 for diagnostics.
1217 (lto_symtab_merge): Likewise. Do not register types here.
1218 (lto_symtab_merge_decls_2): Likewise.
1219 (lto_symtab_merge_decls_1): Likewise.
1220 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1221 * gimple.c (enum gtc_mode): Declare.
1222 (gimple_types_compatible_p): Make static.
1223
a9e6994a
AK
12242011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1225
1226 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1227 temporary register to match Pmode.
1228
fb55d62e
UB
12292011-05-09 Uros Bizjak <ubizjak@gmail.com>
1230
1231 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1232 and *vec_concatv4si_1_avx.
1233
eb1485a6
UB
12342011-05-09 Uros Bizjak <ubizjak@gmail.com>
1235
1236 PR rtl-optimization/48927
1237 * ira-conflicts.c (commutative_constraint_p): Use
1238 recog_data.alternative_enabled_p to disable alternatives where
1239 "enabled" attribute is false.
1240 (get_dup_num): Ditto.
1241 * ira-lives.c (single_reg_class): Ditto.
1242 (ira_implicitly_set_insn_hard_regs): Ditto.
1243
c46d001a
EB
12442011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1245
1246 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1247 (dataflow_set_preserve_mem_locs): Likewise.
1248
12492011-05-09 Philipp Thomas <pth@suse.de>
1250
6d9e7c41
PT
1251 * config/mep/mep.c (mep_validate_vliw): Syntax description
1252 should not be translated.
1253
d371df6f
JM
12542011-05-09 Joseph Myers <joseph@codesourcery.com>
1255
1256 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1257 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 1258 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
1259 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1260 MIPS_ARCH_OPTION_NATIVE): Define.
1261 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1262 mips-cpus.def.
1263 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1264 mips_parse_cpu): Remove.
1265 (mips_cpu_info_from_opt, mips_default_arch): New.
1266 (mips_handle_option): Don't assert that global structures are in
1267 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1268 (mips_option_override): Use new variables and functions to set
eb1485a6 1269 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
1270 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1271 definition.
1272 * config/mips/mips.opt (march=): Use ToLower and Enum.
1273 (mips): Use ToLower, Enum and Var.
1274 (mtune=): Use ToLower and Enum.
1275 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1276
4fc07af9
JH
12772011-05-08 Jan Hubicka <jh@suse.cz>
1278
1279 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1280 Arrange type pairs to be UID ordered.
1281 (gimple_lookup_type_leader): Make inline.
1282
2cf320a8
NC
12832011-05-09 Nick Clifton <nickc@redhat.com>
1284
61d6def5
NC
1285 PR target/48899
1286 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1287 PROCESSOR_DEFAULT.
1288
2cf320a8
NC
1289 PR target/48897
1290 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1291 variable 's'.
1292
4f82319d
CLT
12932011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1294
1295 * combine.c (simplify_comparison): Abstract out parts into...
1296 (simplify_compare_const): ... new function.
1297 (try_combine): Generalize parallel arithmetic/compare combining
1298 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1299
74605a11
JH
13002011-05-08 Jan Hubicka <jh@suse.cz>
1301
1302 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
1303 (cgraph_create_virtual_clone): Call hooks once virtual clone
1304 is finished.
74605a11 1305 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
1306 * ipa-cp.c (ipcp_estimate_growth): Use
1307 estimate_ipcp_clone_size_and_time.
74605a11
JH
1308 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1309 * lto-cgraph.c (input_node): Update.
1310 * ipa-inline.c (recursive_inlining): Update.
1311 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1312 (evaluate_conditions_for_known_args): Break out from ...
1313 (evaluate_conditions_for_edge): ... here.
1314 (evaluate_conditions_for_ipcp_clone): New function.
1315 (inline_node_duplication_hook): Update clone summary based
1316 on parameter map.
1317 (estimate_callee_size_and_time): Rename to ...
1318 (estimate_node_size_and_time): take NODE instead of EDGE;
1319 take POSSIBLE_TRUTHS as argument.
1320 (estimate_callee_size_and_time): Update.
1321 (estimate_ipcp_clone_size_and_time): New function.
1322 (do_estimate_edge_time): Update.
1323
5c049507
RG
13242011-05-08 Richard Guenther <rguenther@suse.de>
1325
1326 PR middle-end/48908
1327 PR middle-end/48905
1328 * expmed.c (expand_shift_1): Compute adjusted constant shift
1329 amount manually.
1330
f64c36ba
EB
13312011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1332
1333 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1334
c461a957
EB
13352011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1336
1337 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1338
7c74e556
JW
13392011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1340
1341 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1342
b4c0a884
JH
13432011-05-07 Jan Hubicka <jh@suse.cz>
1344
a9bcb3f0
EB
1345 * ipa-inline-transform.c (inline_call): Account when program size
1346 decreases.
b4c0a884 1347 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
1348 (edge_badness): Reorganize to be power 2 based; fix thinko when
1349 computing badness for negative growth; update comments to match
1350 reality; better dumps.
b4c0a884 1351
c99c0026
EB
13522011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1353
1354 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1355 type to bool and adjust comment.
1356 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1357 (fold_mathfn_compare): Remove calls to global_bindings_p.
1358 (fold_inf_compare): Likewise.
1359 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1360 * c-tree.h (global_bindings_p): Adjust prototype.
1361 * c-decl.c (global_bindings_p): Return bool and simplify.
1362
1400c8e5
ZD
13632011-05-07 Zdenek Dvorak <ook@ucw.cz>
1364
1365 PR tree-optimization/48837
1366 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1367 when accumulator transformation is performed.
1368
5d0878e7
JH
13692011-05-06 Jan Hubicka <jh@suse.cz>
1370
a9bcb3f0
EB
1371 * i386.h (ix86_tune_indices): Add
1372 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 1373 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
1374 * i386.c (initial_ix86_tune_features): Add
1375 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
1376 (software_prefetching_beneficial_p): Remove predicate.
1377 (ix86_option_override_internal): Use new macro.
1378
58696ce5
JH
13792011-05-06 Jan Hubicka <jh@suse.cz>
1380
1381 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1382
c47d0034
JH
13832011-05-06 Jan Hubicka <jh@suse.cz>
1384
1385 * cgraph.c (cgraph_add_thunk): Create real function node instead
1386 of alias node; finalize it and mark needed/reachale; arrange visibility
1387 to be right and add it into the corresponding same comdat group list.
1388 (dump_cgraph_node): Dump thunks.
1389 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
1390 cgraph_function_with_gimple_body_p,
1391 cgraph_first_function_with_gimple_body,
c47d0034
JH
1392 cgraph_next_function_with_gimple_body): New functions.
1393 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1394 New macros.
1395 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1396 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1397 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1398 devirtualization when optimizing.
1399 (verify_cgraph_node): Verify thunks.
1400 (cgraph_analyze_function): Analyze thunks.
1401 (cgraph_mark_functions_to_output): Output thunks only in combination
1402 with function they are assigned to.
1403 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1404 alias into normal node.
1405 (assemble_thunks): New functoin.
1406 (cgraph_expand_function): Use it.
1407 * lto-cgraph.c (lto_output_node): Stream thunks.
1408 (input_overwrite_node): Stream in thunks.
1409 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1410 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1411 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1412 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1413 (inline_analyze_function): Do not care about thunk jump functions.
1414 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
1415 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1416 cgraph_function_with_gimple_body_p.
1417 * passes.c (do_per_function_toporder): Use
1418 cgraph_function_with_gimple_body_p.
c47d0034
JH
1419 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1420 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1421 (function_called_by_processed_nodes_p): Likewise.
1422
d8f426ec
JM
14232011-05-06 Joseph Myers <joseph@codesourcery.com>
1424
1425 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1426 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1427 entries.
1428 (mabi=): Replace with separate entries for mabi=altivec,
1429 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1430 mabi=ieeelongdouble and mabi=ibmlongdouble.
1431 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1432 check for -mabi=spe without SPE ABI support here.
1433 (rs6000_handle_option): Replace OPT_mabi_ handling with
1434 OPT_mabi_altivec and OPT_mabi_spe handling.
1435
80bde45b
CC
14362011-05-06 Cary Coutant <ccoutant@google.com>
1437
1438 * dwarf2out.c (contains_subprogram_definition): New function.
1439 (should_move_die_to_comdat): Call it.
1440
a91926b9
JL
14412011-05-06 Jeff Law <law@redhat.com>
1442
1443 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1444 remove_ctrl_stmt_and_useless_edges.
1445 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1446 (fixup_template_block, thread_single_edge): Likewise.
1447 (mark_threaded_blocks): Use THREAD_TARGET.
1448
1fc1b66d
AM
14492011-05-06 Alan Modra <amodra@gmail.com>
1450
1451 PR target/48900
1452 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1453 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1454
e194de64
UB
14552011-05-06 Uros Bizjak <ubizjak@gmail.com>
1456
1457 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1458 constraint modifier to "r".
1459
d740dc9e
JM
14602011-05-06 Joseph Myers <joseph@codesourcery.com>
1461
1462 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1463 fall through for OPT_mcmodel_.
1464
cab78b15
AK
14652011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1466
1467 * config/s390/s390.c (s390_asm_trampoline_template): Comment
1468 instruction sizes.
e194de64 1469 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 1470
ee6824ae
RR
14712011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1472
eb1485a6
UB
1473 PR target/47930
1474 * config/arm/arm.opt (marm): Document it.
1475 (mthumb): Reject negative variant.
ee6824ae 1476
9ef58464
UB
14772011-05-06 Uros Bizjak <ubizjak@gmail.com>
1478
1479 PR target/48898
1480 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1481 Fix typo in "ccvt" variable name.
1482
155b6176
TG
14832011-05-06 Tristan Gingold <gingold@adacore.com>
1484
1485 PR target/48895
1486 * config/vms/vms-ar.c (main): Remove cwd variable.
1487
3becc47b
JJ
14882011-05-06 Jakub Jelinek <jakub@redhat.com>
1489
1490 PR debug/48902
1491 * var-tracking.c (prepare_call_arguments): Move else before #endif.
1492
3d528853
NF
14932011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1494
1495 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1496 * gimplify.c (gimplify_switch_expr): Likewise.
1497 * omp-low.c (expand_omp_sections): Likewise.
1498 * tree-eh.c (lower_try_finally_switch): Likewise.
1499 (lower_eh_dispatch): Likewise.
1500 * tree.h (build_case_label): Declare.
1501 * tree.c (build_case_label): Define.
1502
deb5046b
JM
15032011-05-05 Jason Merrill <jason@redhat.com>
1504
1505 PR c++/40975
1506 * tree-inline.c (copy_tree_r): Use copy_statement_list.
1507 (copy_statement_list): Don't recurse.
1508 * stor-layout.c (copy_self_referential_tree_r): Don't allow
1509 STATEMENT_LIST.
1510
013c0411
JM
15112011-05-05 Joseph Myers <joseph@codesourcery.com>
1512
1513 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1514 through from -mfpu= handling.
1515 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1516
a0905f8b
BS
15172011-05-05 Bernd Schmidt <bernds@codesourcery.com>
1518
1519 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1520 POST_MODIFY.
1521
fc4538e4
SE
15222011-05-05 Steve Ellcey <sje@cup.hp.com>
1523
1524 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1525 for 11.31.
1526 (hppa[12]*-*-hpux11*): Ditto.
1527 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1528 * config/ia64/hpux-unix2003.h: New.
1529 * config/pa/pa-hpux1131.opt: New.
1530 * config/pa/pa-hpux1131.h: New.
1531 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1532 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 1533 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 1534
1e30c578
JJ
15352011-05-05 Jakub Jelinek <jakub@redhat.com>
1536
1537 PR debug/48853
1538 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1539 instead of mode as 3rd argument to recursive call.
1540 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1541 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1542 VOIDmode.
1543 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1544 don't give up if mode is Pmode and mem_mode is not VOIDmode.
1545 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1546 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1547
d19eb620
JB
15482011-05-05 Julian Brown <julian@codesourcery.com>
1549
1550 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1551 parenthesis in D-register case.
1552
c860fe8c
JM
15532011-05-05 Joseph Myers <joseph@codesourcery.com>
1554
1555 * opt-functions.awk (var_type_struct): Handle Enum options.
1556 * optc-gen.awk: Don't check range of variables of character type.
1557 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1558 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1559 rs6000_sdata_name, rs6000_explicit_options): Remove.
1560 (rs6000_option_override_internal): Check for -malign-power here.
1561 Use global_options_set instead of rs6000_explicit_options.
1562 (rs6000_parse_fpu_option): Remove.
1563 (rs6000_handle_option): Access variables via opts and opts_set
1564 pointers. Use error_at and warning_at. Add fall-through
1565 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1566 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1567 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1568 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1569 here. Don't use rs6000_parse_fpu_option.
1570 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1571 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1572 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1573 (mrecip=): Use Var.
1574 (mspe): Use Var and Save.
1575 (mtraceback=): Use Enum and Var.
1576 (rs6000_traceback_type): New Enum and EnumValue entries.
1577 (mfloat-gprs=): Use Enum, Var and Save.
1578 (rs6000_float_gprs): New Enum and EnumValue entries.
1579 (mlong-double-): use Var and Save.
1580 (msched-costly-dep=, minsert-sched-nops=): Use Var.
1581 (malign-): Use Enum and Var.
1582 (rs6000_alignment_flags): New Enum and EnumValue entries.
1583 (mfpu=): Use Enum.
1584 (fpu_type_t): New Enum and EnumValue entries.
1585 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1586 global_options_set instead of rs6000_explicit_options.
1587 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1588 global_options_set instead of rs6000_explicit_options.
1589 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1590 global_options_set instead of rs6000_explicit_options.
1591 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1592 global_options_set instead of rs6000_explicit_options.
1593 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1594 global_options_set instead of rs6000_explicit_options.
1595 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1596 global_options_set instead of rs6000_explicit_options.
1597 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1598 definition.
1599 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1600 global_options_set instead of rs6000_explicit_options.
1601 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1602 (rs6000_cmodel): New Enum and EnumValue entries.
1603 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1604 global_options_set instead of rs6000_explicit_options.
1605 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1606 (mtls-size=): Use Enum and Var.
1607 (rs6000_tls_size): New Enum and EnumValue entries.
1608
0691dde9
MM
16092011-05-05 Michael Matz <matz@suse.de>
1610
1611 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1612 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1613 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1614 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1615 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1616 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1617 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1618 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1619 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1620 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1621 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1622 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1623 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1624 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1625 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1626 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1627
86529a49
RG
16282011-05-05 Richard Guenther <rguenther@suse.de>
1629
1630 * expmed.c (expand_variable_shift): Rename to ...
1631 (expand_shift_1): ... this. Take an expanded shift amount.
1632 For rotates recurse directly not building trees for the shift amount.
1633 (expand_variable_shift): Wrap around expand_shift_1.
1634 (expand_shift): Adjust.
1635
d0228c2e
JJ
16362011-05-05 Jakub Jelinek <jakub@redhat.com>
1637
1638 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1639
907a08d9
EB
16402011-05-05 Eric Botcazou <ebotcazou@adacore.com>
1641
1642 * tree.h (get_pending_sizes): Remove prototype.
1643 (put_pending_size): Likewise.
1644 (put_pending_sizes): Likewise.
1645 * stor-layout.c (pending_sizes): Delete.
1646 (get_pending_sizes): Likewise.
1647 (put_pending_size): Likewise.
1648 (put_pending_sizes): Likewise.
1649 (variable_size): Do not call put_pending_size and tidy up.
1650 * function.h (struct function): Remove dont_save_pending_sizes_p.
1651 * lto-streamer-in.c (input_function): Do not stream it.
1652 * lto-streamer-out.c (output_function): Likewise.
1653 * tree-inline.c (initialize_cfun): Do not copy it.
1654 * c-decl.c (store_parm_decls): Do not set it.
1655 * omp-low.c (create_task_copyfn): Likewise.
1656 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1657
386d9c57
UB
16582011-05-05 Uros Bizjak <ubizjak@gmail.com>
1659
1660 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1661 conditions.
1662 (*movdf_internal): Ditto.
1663 (*movdf_internal_nointeger): Ditto.
1664 (*movsf_internal): Ditto.
1665
a04a722b
JM
16662011-05-05 Joseph Myers <joseph@codesourcery.com>
1667
1668 * c-decl.c (finish_decl): Don't call get_pending_sizes.
1669 (grokparm): Add parameter expr. Pass it to grokdeclarator.
1670 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
1671 (c_variable_size): Remove.
1672 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
1673 call put_pending_sizes.
1674 (get_parm_info): Add parameter expr. Use it to set
1675 arg_info->pending_sizes.
1676 (store_parm_decls): Use arg_info->pending_sizes instead or calling
1677 get_pending_sizes.
1678 * c-parser.c (c_parser_parms_declarator): Update call to
1679 c_parser_parms_list_declarator.
1680 (c_parser_parms_list_declarator): Take parameter expr. Update
1681 call to push_parm_decl. Update recursive call. Don't call
1682 get_pending_sizes. Update calls to get_parm_info.
1683 (c_parser_objc_method_definition): Update calls to
1684 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 1685 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
1686 (c_parser_objc_method_decl): Add parameter expr. Update call to
1687 grokparm.
386d9c57 1688 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
1689 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1690 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1691
c92a6f97
MH
16922011-05-05 Michael Hope <michael.hope@linaro.org>
1693
386d9c57
UB
1694 PR pch/45979
1695 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1696 __ARM_EABI__ hosts.
c92a6f97 1697
07ea0048
UW
16982011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1699
1700 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1701 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1702 (spu_output_mi_thunk): New function.
1703
d634bfa1
RO
17042011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1705
1706 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1707 targetm.asm_out.print_operand.
1708 * config/sol2.c: Include target.h.
1709
40fda55b
JH
17102011-05-04 Jan Hubicka <jh@suse.cz>
1711
1712 * ipa-inline.c (reset_edge_caches): New function.
1713 (update_caller_keys): Add check_inlinablity_for; do not
1714 reset edge caches; remove now unnecesary loop.
386d9c57 1715 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
1716 (update_all_callee_keys): Likewise.
1717 (inline_small_functions): Sanity check cache; update code
1718 recomputing it.
1719
0360f70d
BS
17202011-05-04 Bernd Schmidt <bernds@codesourcery.com>
1721
1722 PR rtl-optimization/47612
1723 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1724 as the last insn of the sequence to be moved.
1725
7a994646
TB
17262011-05-04 Tobias Burnus <burnus@net-b.de>
1727
1728 PR fortran/48864
1729 * doc/invoke.texi (Ofast): Document that it
1730 enables Fortran's -fno-protect-parens.
1731
7a2f7208
UB
17322011-05-04 Uros Bizjak <ubizjak@gmail.com>
1733
1734 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1735
a2d42931
EB
17362011-05-04 Eric Botcazou <ebotcazou@adacore.com>
1737
1738 * stor-layout.c (variable_size): Do not issue errors.
1739
f81b1a3d
RG
17402011-05-04 Richard Guenther <rguenther@suse.de>
1741
1742 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1743 for array-ref indices.
1744 (tree_coverage_counter_addr): Likewise.
1745 (build_fn_info_type): Use size_int for index types.
1746 (build_gcov_info): Likewise.
1747
c62c040f
RG
17482011-05-04 Richard Guenther <rguenther@suse.de>
1749
1750 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1751 to build_int_cst.
1752 * c-typeck.c (really_start_incremental_init): Use bitsize_int
1753 for constructor indices.
1754 (push_init_level): Likewise.
1755
1e3287d0
RG
17562011-05-04 Richard Guenther <rguenther@suse.de>
1757
1758 * explow.c (promote_mode): Move variable declarations before code.
1759
6c32445b
NF
17602011-05-04 Nathan Froyd <froydnj@codesourcery.com>
1761
1762 * tree.h (build_function_type_array): Declare.
1763 (build_varargs_function_type_array): Declare.
1764 (build_function_type_vec, build_varargs_function_type_vec): Define.
1765 * tree.c (build_function_type_array_1): New function.
1766 (build_function_type_array): New function.
1767 (build_varargs_function_type_array): New function.
1768
fdabf269
RS
17692011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
1770
1771 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1772 before setting STMT_VINFO_TYPE.
1773
a207915a
UW
17742011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1775
1776 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1777 instead of spu_pass_by_reference.
1778
5e617be8
AK
17792011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1780
1781 * calls.c (emit_library_call_value_1): Invoke
1782 promote_function_mode hook on libcall arguments.
1783 * explow.c (promote_function_mode, promote_mode): Handle TYPE
1784 argument being NULL.
1785 * targhooks.c (default_promote_function_mode): Lisewise.
1786 * config/s390/s390.c (s390_promote_function_mode): Likewise.
1787 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1788
1789 * doc/tm.texi: Document that TYPE argument might be NULL.
1790
486d04be
SH
17912011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1792
1793 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1794
9b19b026
SH
17952011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1796
1797 From Bernd Schmidt
1798 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1799
502bc3df
RO
18002011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1801
1802 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1803 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1804 Move ...
1805 * mips-tfile.c: ... here.
1806 Don't include coretypes.h, tm.h, filenames.h.
1807 (saber_stop): Remove definition and all calls.
1808 [__SABER__]: Remove.
1809 (__LINE__): Remove default.
1810 (Size_t, Ptrdiff_t): Remove definitions.
1811 Replace by size_t, ptrdiff_t.
1812 [!MIPS_DEBUGGING_INFO]: Remove.
1813 (SHASH_SIZE, THASH_SIZE): Remove defaults.
1814 (progname): Add const.
1815 (STATIC): Remove.
1816 Replace all uses by static.
1817 (ALIGN_SYMTABLE_OFFSET): Remove default.
1818 * mips-tdump.c: Don't include coretypes.h, tm.h.
1819 Remove !MIPS_IS_STAB guard.
1820 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1821 $(TM_H), filenames.h dependencies.
1822 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1823
991eb6ef
SH
18242011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1825
1826 From Jie Zhang
1827 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1828 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1829
420ccc84
SH
18302011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1831
1832 From Bernd Schmidt
1833 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1834 account and save/restore RETS.
1835 (PROFILE_BEFORE_PROLOGUE): Define.
1836 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
1837 the push insn to use predecrement.
1838
9f8d69ee
SH
18392011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1840
1841 From Jie Zhang
1842 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1843
662c03f4
NC
18442011-05-04 Nick Clifton <nickc@redhat.com>
1845
1846 * config/mn10300/mn10300.c: Include cfgloop.h.
1847 (DUMP): New macro.
1848 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
1849 Lcc or a FLcc insn into the instruction stream.
1850 (mn10300_block_contains_call): New function. Returns true if the
1851 given basic block contains a CALL insn.
1852 (mn10300_loop_contains_call_insn): New function. Returns true if
1853 the given loop contains a CALL insn.
1854 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
1855 to use the SETLB and Lcc or FLcc insns.
1856 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1857 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1858 * config/mn10300/mn10300.opt (msetlb): New option. Used to
1859 disable the SETLB optimization.
1860 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1861 __SETLB__ or __NO_SETLB__.
1862 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1863 (movsf_internal): Handle MDR register.
1864 (cmpsi): Make visible.
1865 (setlb): New pattern.
1866 (Lcc): New pattern.
1867 (FLcc): New pattern.
1868
843b6915
UB
18692011-05-04 Uros Bizjak <ubizjak@gmail.com>
1870
1871 PR target/48860
1872 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1873 for reg<->xmm moves.
1874 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1875 (vec_concatv2di_rex64_sse): Ditto.
1876 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1877 (*vec_extractv2di_1_rex64): Ditto.
1878
1879 Revert:
1880 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
1881
1882 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1883 reg<->xmm moves.
1884 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1885
d35936ab
RG
18862011-05-04 Richard Guenther <rguenther@suse.de>
1887
1888 * tree.h (int_const_binop): Remove notrunc argument.
1889 * fold-const.c (int_const_binop): Remove notrunc argument. Always
1890 create integer constants that are properly truncated.
1891 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1892 (const_binop): Remove zero notrunc argument to int_const_binop.
1893 (size_binop_loc): Likewise.
1894 (fold_div_compare): Likewise.
1895 (maybe_canonicalize_comparison_1): Likewise.
1896 (fold_comparison): Likewise.
1897 (fold_binary_loc): Likewise.
1898 (multiple_of_p): Likewise.
1899 * expr.c (store_constructor): Likewise.
1900 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1901 (maybe_fold_stmt_addition): Likewise.
1902 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1903 * stor-layout.c (layout_type): Likewise.
1904 * tree-data-ref.c (tree_fold_divides_p): Likewise.
1905 * tree-sra.c (build_ref_for_offset): Likewise.
1906 (build_user_friendly_ref_for_offset): Likewise.
1907 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1908 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1909 * tree-ssa-loop-niter.c (inverse): Likewise.
1910 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1911 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1912 * tree-switch-conversion.c (check_range): Likewise.
1913 (build_constructors): Likewise.
1914 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1915 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1916 (extract_range_from_assert): Likewise.
1917 (vrp_int_const_binop): Likewise.
1918 (extract_range_from_binary_expr): Likewise.
1919 (extract_range_from_unary_expr): Likewise.
1920 (check_array_ref): Likewise.
1921 (find_case_label_range): Likewise.
1922 (simplify_div_or_mod_using_ranges): Likewise.
1923 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1924 comparing case labels for merging.
1925
8992c063
MW
19262011-05-03 Mark Wielaard <mjw@redhat.com>
1927
1928 * dwarf2out.c (debug_str_hash_forced): Removed.
1929 (gen_label_for_indirect_string): Removed.
1930 (get_debug_string_label): Removed.
1931 (AT_string_form): Generate label directly.
1932 (output_indirect_string): Test indirect_string_node for
1933 DW_FORM_strp instead of checking label and refcount.
1934 (prune_indirect_string): Removed.
1935 (prune_unused_types): Don't check debug_str_hash_forced or
1936 call prune_indirect_string.
1937
4868e6ea
AO
19382011-05-04 Alexandre Oliva <aoliva@redhat.com>
1939
1940 PR other/48093
1941 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1942
01a5c0ab
AO
19432011-05-04 Alexandre Oliva <aoliva@redhat.com>
1944
1945 PR debug/47994
1946 PR debug/47919
1947 * combine.c (try_combine): Skip debug insns at m_split tests.
1948
6ac00218
MW
19492011-04-26 Mark Wielaard <mjw@redhat.com>
1950
1951 PR42288
1952 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1953 when info_section_emitted.
1954
3af42a7b
JM
19552011-05-03 Joseph Myers <joseph@codesourcery.com>
1956
1957 * config/mips/mips-opts.h: New.
1958 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1959 to mips-opts.h.
1960 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1961 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1962 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
1963 via opts pointer.
1964 * config/mips/mips.h (enum mips_code_readable_setting): Move to
1965 mips-opts.h.
1966 (mips_abi, mips_code_readable): Don't declare.
843b6915 1967 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
1968 (mabi=): Use Enum and Var.
1969 (mips_abi): New Enum and EnumValue entries.
1970 (mcode-readable=): Use Enum and Var.
1971 (mips_code_readable_setting): New Enum and EnumValue entries.
1972 (mr10k-cache-barrier=): Use Enum and Var.
1973 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1974
1cb1a99f
JH
19752011-05-03 Jan Hubicka <jh@suse.cz>
1976
1977 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1978 replace hash by pointer map.
1979 (cgraph_node_set_element_def, cgraph_node_set_element,
1980 const_cgraph_node_set_element, varpool_node_set_element_def,
1981 varpool_node_set_element, const_varpool_node_set_element): Remove.
1982 (free_cgraph_node_set, free_varpool_node_set): New function.
1983 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1984 * tree-emutls.c: Free varpool node set.
1985 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1986 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1987 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1988 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1989 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1990 Move here from ipa.c; implement using pointer_map
1991 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1992 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1993 debug_cgraph_node_set, varpool_node_set_new,
1994 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1995 dump_varpool_node_set, debug_varpool_node_set):
1996 Move to ipa-uitls.c.
1997 * passes.c (ipa_write_summaries): Update.
1998
7f31f4db
SH
19992011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2000
7a2f7208
UB
2001 From Mike Frysinger:
2002 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2003 bf542/bf544/bf547/bf548/bf549.
7f31f4db 2004
b70fce6d
UB
20052011-05-03 Uros Bizjak <ubizjak@gmail.com>
2006
2007 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2008
265b1d82
SH
20092011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2010
2011 From Bernd Schmidt:
2012 * config/bfin/bfin.md (MOVCC): New mode_macro.
2013 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2014 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2015 comments from generated assembly.
2016
f0b568f3
SH
20172011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2018
2019 From Bernd Schmidt
2020 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2021 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2022 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2023 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2024 * config/bfin/lib1funcs.asm (___muldi3): New function.
2025
2c67cf6e
NF
20262011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2027
2028 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2029 build_function_type_list instead of build_function_type.
2030 Rearrange initialization of `args' to do so.
2031
f9ac28ad
NF
20322011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2033
2034 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2035 instead of build_function_type.
2036
22b8798c
NF
20372011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2038
2039 * config/rs6000/rs6000.c (spe_init_builtins): Call
2040 build_function_type_list instead of build_function_type.
2041 (paired_init_builtins, altivec_init_builtins): Likewise.
2042 (builtin_function_type): Likewise.
2043
4cb44528
NF
20442011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2045
2046 * config/sh/sh.c (sh_media_init_builtins): Call
2047 build_function_type_list instead of build_function_type.
2048
4c203a6a
NF
20492011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2050
2051 * config/sparc/sparc.c (sparc_file_end): Call
2052 build_function_type_list instead of build_function_type.
2053
d6a3d62b
NF
20542011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2055
2056 * config/alpha/alpha.c (alpha_init_builtins): Call
2057 build_function_type_list instead of build_function_type.
2058
de530b86
NF
20592011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2060
2061 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2062 build_function_type_list instead of build_function_type.
2063
baeec5f2
NF
20642011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2065
2066 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2067 build_function_type_list instead of build_function_type.
2068 Delete `endlink' variable.
2069
c19afe52
NF
20702011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2071
2072 * config/avr/avr.c (avr_init_builtins): Call
2073 build_function_type_list instead of build_function_type.
2074
a341df0a
NF
20752011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2076
2077 * config/picochip/picochip.c (picochip_init_builtins): Call
2078 build_function_type_list instead of build_function_type.
2079 Delete `endlink' variable.
2080
2102b1e1
NF
20812011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2082
2083 * config/bfin/bfin.c (bfin_init_builtins): Call
2084 build_function_type_list instead of build_function_type.
2085
9f111209
SH
20862011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2087
2088 From Bernd Schmidt
2089 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2090 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2091
7071d064
SH
20922011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2093
2094 From Jie Zhang:
2095 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2096 libbffastfp overrides libgcc when -mfast-fp.
2097
748f7574 20982011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
2099
2100 Originally from Bernd Schmidt
2101 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2102 * config/bfin/bfin.c (override_options): Test it and error if
2103 TARGET_FDPIC.
2104
1a3a9152
SH
21052011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2106
2107 Originally From Bernd Schmidt
2108 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2109 FD-PIC.
2110
7134c090
JL
21112011-05-03 Jeff Law <law@redhat.com>
2112
2113 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2114 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2115 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
2116 than accessing AUX field directly. Free the AUX field before
2117 clearing it.
7134c090
JL
2118 (thread_block, thread_through_loop_header): Likewise.
2119 (thread_single_edge, mark_threaded_blocks): Likewise.
2120 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2121 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 2122
2c7eebae
BS
21232011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2124
2125 * function.c (init_function_start): Call decide_function_section.
2126 * varasm.c (decide_function_section): New function.
2127 (assemble_start_function): When not using
2128 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2129 or first_function_block_is_cold.
2130 * rtl.h (decide_function_section): Declare.
2131
17038fcf
JJ
21322011-05-03 Uros Bizjak <ubizjak@gmail.com>
2133 Jakub Jelinek <jakub@redhat.com>
2134
2135 PR target/48774
2136 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2137 only succeed if req_mode is the same as set_mode.
2138
3810076b
BS
21392011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2140
2141 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2142 * genemit.c (gen_exp): Handle RETURN.
2143 * emit-rtl.c (verify_rtx_sharing): Likewise.
2144 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2145 * rtl.c (copy_rtx): RETURN is shared.
2146 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2147 (ret_rtx): New.
2148 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2149 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2150 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2151 * config/cris/cris.c (cris_expand_return): Likewise.
2152 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2153 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2154 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2155 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2156 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2157 Likewise.
2158 * config/v850/v850.c (expand_epilogue): Likewise.
2159 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2160 * config/arm/arm.md (epilogue): Likewise.
2161 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2162 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2163 variable to ret_reg.
2164
9efdb4ad
RG
21652011-05-03 Richard Guenther <rguenther@suse.de>
2166
2167 PR lto/48846
2168 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2169 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2170 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2171
60a45536
RG
21722011-05-03 Richard Guenther <rguenther@suse.de>
2173
2174 * c-decl.c (grokdeclarator): Instead of looking at
2175 TREE_OVERFLOW check if the constant fits in the index type.
2176
3188ed59
RS
21772011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2178
2179 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2180 (vec_store_lanes<mode><mode>): Likewise.
2181
272c6793
RS
21822011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2183
2184 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2185 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2186 convert_optab_index values.
2187 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2188 * genopinit.c (optabs): Initialize the new optabs.
2189 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2190 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2191 (expand_STORE_LANES): New functions.
2192 * tree.h (build_array_type_nelts): Declare.
2193 * tree.c (build_array_type_nelts): New function.
2194 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2195 (vect_model_load_cost): Likewise.
2196 (vect_store_lanes_supported, vect_load_lanes_supported)
2197 (vect_record_strided_load_vectors): Declare.
2198 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2199 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2200 (vect_transform_strided_load): Split out statement recording into...
2201 (vect_record_strided_load_vectors): ...this new function.
2202 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2203 (write_vector_array, create_array_ref): New functions.
2204 (vect_model_store_cost): Add store_lanes_p argument.
2205 (vect_model_load_cost): Add load_lanes_p argument.
2206 (vectorizable_store): Try to use store-lanes functions for
2207 interleaved stores.
2208 (vectorizable_load): Likewise load-lanes and loads.
2209 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2210 to vect_model_store_cost.
2211 (vect_build_slp_tree): Likewise vect_model_load_cost.
2212
0f6d54f7
RS
22132011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2214
2215 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2216 * hooks.c (hook_bool_mode_uhwi_false): New function.
2217 * target.def (array_mode_supported_p): New hook.
2218 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2219 * doc/tm.texi: Regenerate.
2220 * stor-layout.c (mode_for_array): New function.
2221 (layout_type): Use it.
2222 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2223 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2224
b15eacc7
EB
22252011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2226
2227 PR target/48723
2228 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2229 for -fstack-check if the size to allocate is negative.
2230
575bfb00
LC
22312011-05-02 Lawrence Crowl <crowl@google.com>
2232
2233 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2234 (timevar_cond_start): New for starting a timer only when it is not
2235 already running.
2236 (timevar_cond_stop): New for stopping a timer when it was not already
2237 running.
2238
2239 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2240 (timevar_cond_start): New as above.
2241 (timevar_cond_stop): New as above.
2242
2243 * timevar.def: Add start/stop timers for compiler phases,
2244 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2245 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2246 and TV_PHASE_FINALIZE.
2247 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2248 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2249 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2250 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2251 Make unused TV_OVERLOAD into a start/stop timer.
2252
2253 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2254 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2255 to indicate that they are start/stop timers.
2256
2257 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2258 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2259 Move initialization to do_compile.
2260 (do_compile): Add initialization from above.
2261 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2262
2263 * c-decl.c (c_write_global_declarations): Add start/stop of
2264 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2265
2266 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2267 or TV_PARSE_INLINE, as appropriate.
2268 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2269 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2270
3533b943
JM
22712011-05-02 Jason Merrill <jason@redhat.com>
2272
2273 PR c++/40975
2274 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2275
2609a0ce
SM
22762011-05-02 Simon Martin <simartin@users.sourceforge.net>
2277
2278 PR c/35445
2279 * c-decl.c (finish_decl): Only create a composite if the types are
2280 compatible.
2281
6b0e4cbb
JM
22822011-05-02 Joseph Myers <joseph@codesourcery.com>
2283
2284 * config/fr30/fr30-protos.h (Mmode): Don't define.
2285 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2286 definition where used.
2287 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2288 define. Expand definitions where used.
2289 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2290 Expand definitions where used.
2291 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2292 rx_function_arg, rx_function_arg_advance,
2293 rx_function_arg_boundary): Expand definitions of those macros.
2294 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2295 definition where used.
2296
4e938ce6
UB
22972011-05-02 Uros Bizjak <ubizjak@gmail.com>
2298
2299 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2300 reg<->xmm moves.
2301 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2302 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2303 with *movv2sf_internal_rex64_avx.
2304 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2305 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2306 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2307 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2308 "vex" in "prefix" attribute calculation.
2309 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2310
36019c19
SH
23112011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2312
7a2f7208
UB
2313 PR target/47951
2314 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2315 inputs match the output.
36019c19 2316
f69ea688
AS
23172011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2318
2319 PR target/47955
2320 * config/m68k/m68k.c (m68k_expand_prologue): Set
2321 current_function_static_stack_size.
2322
c33406f5
JH
23232011-05-02 Jan Hubicka <jh@suse.cz>
2324
2325 * lto-streamer.c (lto_streamer_cache_insert_1,
2326 lto_streamer_cache_lookup, lto_streamer_cache_create,
2327 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2328 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2329
47c94d21
JM
23302011-05-02 Joseph Myers <joseph@codesourcery.com>
2331
2332 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2333 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2334 config/m68k/t-opts: New files.
2335 * config/m68k/m68k-tables.opt: New file (generated).
2336 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2337 extra_options and m68k/t-opts to tmake_file.
2338 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2339 (all_isas): Initialize using m68k-isas.def.
2340 (all_microarchs): Initialize using m68k-microarchs.def.
2341 (m68k_find_selection): Remove.
2342 (m68k_handle_option): Don't assert that global structures are in
2343 use. Use error_at. Access variables via opts pointer. Don't
2344 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2345 directly for -m68020-40 and -m68020-60.
2346 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2347 m68k_tune_entry here.
2348 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2349 to m68k-opts.h.
2350 (m68k_library_id_string): Remove declaration.
4e938ce6 2351 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
2352 (m68k_library_id_string): New Variable.
2353 (march=, mcpu=, mtune=): Use Enum and Var.
2354
e562bf36
RG
23552011-05-02 Richard Guenther <rguenther@suse.de>
2356
2357 * varasm.c (output_constructor_regular_field): Compute zero-based
2358 index with double-ints. Make sure to ICE instead of producing
2359 wrong code.
2360 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2361 in asserts. Properly use a signed type.
2362
6bec6c98
UB
23632011-05-02 Uros Bizjak <ubizjak@gmail.com>
2364
2365 * config/i386/sse.md (V): New mode iterator.
2366 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2367 TARGET_SSE2.
2368 (V_256): Rename from AVX256MODE.
2369 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2370 condition to all users.
2371 (VF1): Ditto.
2372 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2373 condition to all users.
2374 (VF_128): Make V4SF mode unconditional.
2375 (VF_256): Rename from AVX256MODEF2P.
2376 (VI4F_128): Rename from SSEMODE4S.
2377 (VI8F_128): Rename from SSEMODE2D.
2378 (VI4F_256): Rename from AVX256MODE8P.
2379 (VI8F_256): Rename from AVX256MODE4P.
2380 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2381 (ssescalarmodesuffix): Remove SF and DF modes.
2382 (SSEMODE124): Remove.
2383 (SSEMODE1248): Ditto.
2384 (SSEMODEF2P): Ditto.
2385 (AVXMODEF2P): Ditto.
2386 (AVXMODEFDP): Ditto.
2387 (AVXMODEFSP): Ditto.
2388 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2389 unconditional.
2390 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2391 unconditional.
2392 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2393 xop_pcmov_<mode>256. Use V mode iterator.
2394
2395 Adjust RTX patterns globally for renamed mode attributes.
2396
2dfdcb4b
UW
23972011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2398
2399 * haifa-sched.c (sched_emit_insn): Emit insn before first
2400 non-scheduled insn. Inform back-end about new insn. Add
2401 new insn to scheduled_insns list.
2402
90bc4623
RG
24032011-05-02 Richard Guenther <rguenther@suse.de>
2404
2405 PR tree-optimization/48822
2406 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2407 (process_scc): Indicate which iteration we start.
2408
bc0fe8cb
JH
24092011-05-02 Jan Hubicka <jh@suse.cz>
2410
2411 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2412 (lto_section_overrun): New.
2413 * lto-section-out.c (append_block): Rename to ...
2414 (lto_append_block): ... this one; export.
2415 (lto_output_1_stream): Move lto lto-streamer.h
2416 (lto_output_data_stream): Update.
2417 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2418 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2419 functions.
2420
f070a9d1
RG
24212011-05-02 Richard Guenther <rguenther@suse.de>
2422
2423 * tree.c (tree_code_counts): New global array.
2424 (record_node_allocation_statistics): Count individual tree codes.
2425 (dump_tree_statistics): Dump individual code stats.
2426
09dfe187
JH
24272011-05-01 Jan Hubicka <jh@suse.cz>
2428
2429 * ipa-inline.c (caller_growth_limits): Fix thinko when
2430 looking for largest stack frame.
2431 * ipa-inline.h (dump_inline_summary): Declare.
2432 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2433 on stack usage.
2434 (dump_inline_summary): Export.
2435 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2436
6f76a878
AS
24372011-05-01 Anatoly Sokolov <aesok@post.ru>
2438
2439 * reginfo.c (memory_move_cost): Change rclass argument type form
2440 'enum reg_class' to reg_class_t.
2441 * reload.h (memory_move_cost): Update prototype.
2442 * postreload.c reload_cse_simplify_set): Change type dclass var to
2443 reg_class_t.
2444 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2445 Update prototype.
2446 (ira_allocate_and_set_costs): Change aclass argument type form
2447 'enum reg_class' to reg_class_t.
6bec6c98 2448 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
2449 Change aclass argument type to reg_class_t.
2450 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2451 to reg_class_t.
2452 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2453 memory_move_cost call.
2454
2455 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2456 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2457 Change type tmp var to reg_class_t.
2458
9a4ac625
JH
24592011-04-30 Jan Hubicka <jh@suse.cz>
2460
2461 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2462 inlining into function with flatten attribute.
2463 (want_inline_small_function_p): Be more realistic about inlining
2464 cold calls where callee size grows.
2465
dd8352ee
JH
24662011-04-30 Jan Hubicka <jh@suse.cz>
2467
2468 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2469 flags.
2470
46e43d2b
AS
24712011-04-30 Anatoly Sokolov <aesok@post.ru>
2472
2473 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2474 PRINT_OPERAND_PUNCT_VALID_P): Remove.
2475 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2476 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2477 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2478 (print_operand): Rename to...
2479 (sparc_print_operand): ...this. Make static. Adjust
2480 sparc_print_operand function call.
2481 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2482 functions.
2483
ecb62563
JH
24842011-04-30 Jan Hubicka <jh@suse.cz>
2485
6bec6c98 2486 PR middle-end/48752
ecb62563
JH
2487 * ipa-inline.c (early_inliner): Disable when doing late
2488 addition of function.
2489
edb9b69e
JJ
24902011-04-30 Jakub Jelinek <jakub@redhat.com>
2491
be80a87e
JJ
2492 * dwarf2out.c (get_address_mode): New inline.
2493 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2494 if not dwarf_strict emit
2495 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2496 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2497 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
2498 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2499 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2500 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2501 mem_loc_descriptor callers.
2502 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2503 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2504 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2505 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2506 (base_types): New variable.
2507 (get_base_type_offset, calc_base_type_die_sizes,
2508 base_type_for_mode, mark_base_types, base_type_cmp,
2509 move_marked_base_types): New functions.
2510 (calc_die_sizes): Assert that die_offset is 0 or equal to
2511 next_die_offset.
2512 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2513 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
2514 callers. If not dwarf_strict, call mem_loc_descriptor even for
2515 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2516 (gen_subprogram_die): Don't give up on call site parameters
2517 with non-integral or large integral modes. Adjust
2518 mem_loc_descriptor callers.
2519 (prune_unused_types): Call prune_unused_types_mark on base_types
2520 vector entries.
2521 (resolve_addr): Call mark_base_types.
2522 (dwarf2out_finish): Call move_marked_base_types.
2523
edb9b69e
JJ
2524 PR tree-optimization/48809
2525 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2526 type.
2527 (gen_inbound_check): Don't compute index_expr - range_min in utype
2528 again, instead reuse SSA_NAME initialized in build_arrays.
2529 Remove two useless gsi_for_stmt calls.
2530
a6545a3d
JL
25312011-04-29 Jeff Law <law@redhat.com>
2532
2533 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2534
af8bca3c
MJ
25352011-04-29 Martin Jambor <mjambor@suse.cz>
2536
2537 * cgraph.h (cgraph_postorder): Remove declaration.
2538 * ipa-utils.h (ipa_free_postorder_info): Declare.
2539 (ipa_reverse_postorder): Likewise.
2540 * cgraphunit.c: Include ipa-utils.h.
2541 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2542 * ipa-inline.c: Include ipa-utils.h.
2543 (ipa_inline): Update call to ipa_reverse_postorder.
2544 * ipa-pure-const.c (propagate_pure_const): Update call to
2545 ipa_reduced_postorder and ipa_print_order. Call
2546 ipa_free_postorder_info to clean up.
2547 (propagate_nothrow): Likewise.
2548 * ipa-reference.c (propagate): Removed a useless call to
2549 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2550 and ipa_print_order. Call ipa_free_postorder_info to clean up.
2551 * ipa.c: Include ipa-utils.h.
2552 (ipa_profile): Update call to ipa_reverse_postorder.
2553 (cgraph_postorder): Moved to...
2554 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2555 (ipa_utils_print_order): Renamed to ipa_print_order.
2556 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2557 comments.
2558 (ipa_free_postorder_info): New function.
2559 * passes.c: Include ipa-utils.h.
2560 (do_per_function_toporder): Update call to ipa_reverse_postorder.
2561 (ipa_write_summaries): Likewise.
2562 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2563 (cgraphunit.o): Likewise.
2564 (ipa.o): Likewise.
2565 (ipa-inline.o): Likewise.
2566
b15c64ee
JH
25672011-04-29 Jan Hubicka <jh@suse.cz>
2568
2569 * gcc.dg/tree-ssa/inline-10.c: New testcase.
2570 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2571 * ipa-inline.h (clause_t): Turn into unsigned int.
2572 * ipa-inline-analysis.c (add_clause): Do more simplification.
2573 (and_predicates): Shortcut more cases.
2574 (predicates_equal_p): Move forward; check that clauses are properly
2575 ordered.
2576 (or_predicates): Shortcut more cases.
2577 (edge_execution_predicate): Rewrite as...
2578 (set_cond_stmt_execution_predicate): ... this function; handle
2579 __builtin_constant_p.
2580 (set_switch_stmt_execution_predicate): New .
2581 (compute_bb_predicates): New.
2582 (will_be_nonconstant_predicate): Update TODO.
2583 (estimate_function_body_sizes): Use compute_bb_predicates
2584 and free them later, always try to estimate if stmt is constant.
2585 (estimate_time_after_inlining, estimate_size_after_inlining):
2586 Gracefully handle optimized out edges.
2587 (read_predicate): Fix off by one error.
2588
a88fdc2a
NP
25892011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
2590
2591 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2592
d984c8ef
XDL
25932011-04-27 Xinliang David Li <davidxl@google.com>
2594
2595 * tree-profile.c (init_ic_make_global_vars): Set
2596 tls attribute on ic vars.
2597 * coverage.c (coverage_end_function): Initialize
2598 function_list with zero.
2599
45a2c477
RG
26002011-04-29 Richard Guenther <rguenther@suse.de>
2601
2602 * builtins.c (fold_builtin_classify_type): Use integer_type_node
2603 for the type of the result.
2604 (fold_builtin_isascii): Likewise.
2605 (fold_builtin_toascii): Use integer_type_node where appropriate.
2606 (fold_builtin_logb): Likewise.
2607 (fold_builtin_frexp): Likewise.
2608 (fold_builtin_strstr): Likewise.
2609 (fold_builtin_strpbrk): Likewise.
2610 (fold_builtin_fputs): Likewise.
2611 (fold_builtin_sprintf): Likewise.
2612 (fold_builtin_snprintf): Likewise.
2613 (fold_builtin_printf): Likewise.
2614 (do_mpfr_remquo): Use a proper type for the assigned constant.
2615 (do_mpfr_lgamma_r): Likewise.
2616 * dwarf2out.c (resolve_one_addr): Use size_int.
2617 * except.c (init_eh): Likewise.
2618 (assign_filter_values): Use integer_type_node for filter values.
2619 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2620 indices.
2621 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2622 for EH region numbers.
2623 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2624 for the shift amount.
2625
eb6c3df1
RG
26262011-04-29 Richard Guenther <rguenther@suse.de>
2627
2628 * expr.h (expand_shift): Rename to ...
2629 (expand_variable_shift): ... this.
2630 (expand_shift): Take a constant shift amount.
2631 * expmed.c (expand_shift): Rename to ...
2632 (expand_variable_shift): ... this.
2633 (expand_shift): New wrapper around expand_variable_shift.
2634 * expr.c (convert_move, emit_group_load_1, emit_group_store,
2635 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2636 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2637 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2638 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2639 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2640 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2641 emit_store_flag_1, emit_store_flag): Likewise.
2642 * builtins.c (expand_builtin_signbit): Likewise.
2643 * calls.c (load_register_parameters): Likewise.
2644 * function.c (assign_parm_setup_block): Likewise.
2645 * lower-subreg.c (resolve_shift_zext): Likewise.
2646 * optabs.c (widen_bswap, expand_abs_nojump,
2647 expand_one_cmpl_abs_nojump, expand_float): Likewise.
2648 * spu/spu.c (spu_expand_extv): Likewise.
2649 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2650
9f616812
RG
26512011-04-29 Richard Guenther <rguenther@suse.de>
2652
2653 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2654 for the remapped region number.
2655 * predict.c (build_predict_expr): Use integer_type_node for the
2656 predict kind.
2657 * fold-const.c (fold_binary_loc): Use integer_type_node for
2658 the shift amount. Use a proper type for the PLUS_EXPR operand.
2659
b823cdfe
MM
26602011-04-29 Michael Matz <matz@suse.de>
2661
2662 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2663 other trees that just builtins.
2664 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2665
413581ba
RG
26662011-04-29 Richard Guenther <rguenther@suse.de>
2667
2668 * tree-nested.c (get_trampoline_type): Use size_int.
2669 (get_nl_goto_field): Likewise.
2670 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2671 for all indexes.
2672 (lower_eh_constructs_2): Likewise.
2673 (lower_resx): Likewise.
2674 (lower_eh_dispatch): Likewise.
2675 * tree-mudflap.c (mf_build_string): Use size_int.
2676 (mudflap_register_call): Use integer_type_node for the flag.
2677 (mudflap_enqueue_constant): Use size_int.
2678 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2679 instead of rebuilding it.
2680
5c04e9f4
RG
26812011-04-29 Richard Guenther <rguenther@suse.de>
2682
2683 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2684 Handle OBJ_TYPE_REF.
2685 (find_func_aliases_for_call): Use it more consistently.
2686
5c24671b
AO
26872011-04-29 Alexandre Oliva <aoliva@redhat.com>
2688
2689 * haifa-sched.c (last_nondebug_scheduled_insn): New.
2690 (rank_for_schedule): Use it.
2691 (schedule_block): Set it.
2692
10adac51
XDL
26932011-04-28 David Li <davidxl@google.com>
2694
2695 * tree.c (crc32_string): Use crc32_byte.
2696 (crc32_byte): New function.
2697 * tree.h (crc32_byte): New function.
2698 * gcov.c (read_graph_file): Handle new cfg_cksum.
2699 (read_count_file): Ditto.
2700 * profile.c (instrument_values): Ditto.
2701 (get_exec_counts): Ditto.
2702 (read_profile_edge_counts): Ditto.
2703 (compute_branch_probabilities): Ditto.
2704 (compute_value_histograms): Ditto.
2705 (branch_prob): Ditto.
2706 (end_branch_prob): Ditto.
2707 * coverage.c (read_counts_file): Ditto.
2708 (get_coverage_counts): Ditto.
2709 (tree_coverage_counter_addr): Ditto.
2710 (coverage_checksum_string): Ditto.
2711 (coverage_begin_output): Ditto.
2712 (coverage_end_function): Ditto.
2713 (build_fn_info_type): Ditto.
2714 (build_fn_info_value): Ditto.
2715 * libgcov.c (gcov_exit): Ditto.
2716 * gcov-dump.c (tag_function): Ditto.
2717 (compute_checksum): Remove.
2718
5d6358a5
AM
27192011-04-29 Alan Modra <amodra@gmail.com>
2720
2721 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2722 unspec plus offset. Tidy macho code.
2723
85ad2ef5
MJ
27242011-04-29 Martin Jambor <mjambor@suse.cz>
2725
2726 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2727 node instead of a decl. Update all callers.
2728 * cgraph.h: Update declaration.
2729
437f4a00
IR
27302011-04-28 Ira Rosen <ira.rosen@linaro.org>
2731
2732 PR tree-optimization/48765
2733 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2734 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2735 to indicate if loop aware SLP is being used. Scan the statements
2736 and update the vectorization factor according to the type of
2737 vectorization before statement analysis.
2738 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2739 pass it to vect_analyze_loop_operations.
2740 (vectorizable_reduction): Set number of copies to 1 in case of pure
2741 SLP statement.
2742 * tree-vect-stmts.c (vectorizable_conversion,
2743 vectorizable_assignment, vectorizable_shift,
2744 vectorizable_operation, vectorizable_type_demotion,
2745 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2746 Likewise.
2747 (vectorizable_condition): Move the check that it is not SLP
2748 vectorization before the number of copies check.
2749 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2750 to vectorize the loop using SLP.
2751
c6fc44f3
JJ
27522011-04-28 Jakub Jelinek <jakub@redhat.com>
2753
2754 PR middle-end/48597
2755 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2756 inline asm.
2757
6c0170ea
JM
27582011-04-28 Joseph Myers <joseph@codesourcery.com>
2759
2760 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2761 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2762 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2763 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2764 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2765 linux*.h headers.
6bec6c98 2766 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
2767 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2768 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2769 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 2770 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
2771 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2772 REG_NAME.
2773 * config/i386/linux.h (REG_NAME): Don't define.
2774 * config/i386/linux64.h (REG_NAME): Don't define.
2775 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2776 Undefine before defining.
2777
970dabbd
JH
27782011-04-28 Jan Hubicka <jh@suse.cz>
2779
6bec6c98
UB
2780 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2781 nonconstant_names array.
970dabbd
JH
2782 (estimate_function_body_sizes): Build nonconstant_names array; handle
2783 BUILT_IN_CONSTANT_P.
2784
8d3e3924
RG
27852011-04-28 Richard Guenther <rguenther@suse.de>
2786
2787 PR bootstrap/48804
2788 Revert
2789 2011-04-28 Richard Guenther <rguenther@suse.de>
2790
2791 * tree-ssa-structalias.c (solve_constraints): Build succ graph
2792 as late as possible.
6bec6c98 2793
8576f20a
RG
27942011-04-28 Richard Guenther <rguenther@suse.de>
2795
2796 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2797 (debug_constraint): Do it here.
2798 (dump_constraints): And here.
2799 (rewrite_constraints): And here.
2800 (dump_constraint_edge): Remove.
2801 (dump_constraint_graph): Rewrite to produce DOT output.
2802 (solve_constraints): Build succ graph as late as possible.
2803 Dump constraint graphs before and after solving.
2804
e38811ce
RG
28052011-04-28 Richard Guenther <rguenther@suse.de>
2806
2807 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2808 New function split out from ...
2809 (find_func_aliases): ... here. Call it.
2810 (find_func_aliases_for_call): Likewise.
2811
fbaf0d0c
GDR
28122011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
2813
2814 * internal-fn.h (internal_fn_name_array): Declare.
2815 (internal_fn_flags_array): Likewise.
2816
cbb734aa
UB
28172011-04-27 Uros Bizjak <ubizjak@gmail.com>
2818
2819 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
2820 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2821 Move from sse.md.
2822 (ssemodefsuffix): Remove.
2823 (ssevecmodesuffix): New mode attribute.
2824 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2825 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2826 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2827 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2828 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2829 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2830 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2831 ssemodesuffix mode attribute.
2832 (float splitters): Use ssevecmodesuffix mode attribute.
2833 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2834 (sseinsmode): Rename from avxvecmode.
2835 (avxsizesuffix): Rename from avxmodesuffix.
2836 (sseintvecmode): Rename from avxpermvecmode.
2837 (ssedoublevecmode): Rename from ssedoublesizemode.
2838 (ssehalfvecmode): Rename from avxhalfvecmode.
2839 (ssescalarmode): Rename from avxscalarmode.
2840 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2841 templates for ssemodesuffix mode attribute.
2842 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2843 mode attribute.
2844
2845 Adjust RTX patterns globally for renamed mode attributes.
2846
991278ab
JH
28472011-04-27 Jan Hubcika <jh@suse.cz>
2848
2849 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2850 * ipa-inline-analysis.c: Include alloc-pool.h.
2851 (edge_predicate_pool): New.
2852 (trye_predicate_p): New function
2853 (false_predicate_p): New function.
2854 (add_clause): Sanity check that false clauses are "optimized";
2855 never add clauses to predicate that is already known to be false.
2856 (and_predicate): Use flase_predicate_p.
2857 (evaulate_predicate): Rename to ...
2858 (evaluate_predicate): ... this one; update all callers; assert
2859 that false is not listed among possible truths.
2860 (dump_predicate): Use true_predicate_p.
2861 (account_size_time): Use false_predicate_p.
2862 (evaulate_conditions_for_edge): Rename to ...
2863 (evaluate_conditions_for_edge) ... this one.
2864 (edge_set_predicate): New function.
2865 (inline_edge_duplication_hook): Duplicate edge predicates.
2866 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 2867 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
2868 (dump_inline_summary): Update.
2869 (estimate_function_body_sizes): Set edge predicates.
2870 (estimate_calls_size_and_time): Handle predicates.
2871 (estimate_callee_size_and_time): Update.
2872 (remap_predicate): Add toplev_predicate; update comment.
2873 (remap_edge_predicates): New function.
2874 (inline_merge_summary): Compute toplev predicate; update.
2875 (read_predicate): New function.
2876 (read_inline_edge_summary): Use it.
2877 (inline_read_section): Likewise.
2878 (write_predicate): New function.
2879 (write_inline_edge_summary): Use it.
2880 (inline_write_summary): Likewise.
2881 (inline_free_summary): Free alloc pool and edge summary vec.
2882
648b5f85
RG
28832011-04-27 Richard Guenther <rguenther@suse.de>
2884
2885 * tree-ssa-structalias.c (changed_count): Remove.
2886 (changed): Use a bitmap.
2887 (unify_nodes): Adjust.
2888 (do_sd_constraint): Likewise.
2889 (do_ds_constraint): Likewise.
2890 (do_complex_constraint): Likewise.
2891 (solve_graph): Likewise.
2892
4d5dcfb2
JH
28932011-04-27 Jan Hubicka <jh@suse.cz>
2894
2895 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2896
200eb7d2
UB
28972011-04-27 Uros Bizjak <ubizjak@gmail.com>
2898
2899 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2900 (avx_vperm2f128_*_operand): Ditto.
2901 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2902 Use avx_vpermilp_parallel in insn condition.
2903 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2904 Use avx_vperm2f128_parallel in insn condition.
2905
7d6e2521
RG
29062011-04-27 Richard Guenther <rguenther@suse.de>
2907
2908 * Makefile.in (tree-ssa-structalias.o): Remove
2909 gt-tree-ssa-structalias.h dependency.
2910 (GTFILES): Remove tree-ssa-structalias.c.
2911 * tree.c (allocate_decl_uid): New function.
2912 (make_node_stat): Use it.
2913 (copy_node_stat): Likewise.
2914 * tree.h (allocate_decl_uid): Declare.
2915 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2916 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2917 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 2918 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
2919 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2920 (struct heapvar_map): Likewise.
2921 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2922 heapvar_insert): Likewise.
2923 (make_heapvar_for): Rename to ...
2924 (make_heapvar): ... this. Simplify.
2925 (fake_var_decl_obstack): New global var.
2926 (build_fake_var_decl): New function.
2927 (make_constraint_from_heapvar): Adjust.
2928 (handle_lhs_call): Likewise.
2929 (create_function_info_for): Likewise.
2930 (intra_create_variable_infos): Likewise.
2931 (init_alias_vars): Allocate fake_var_decl_obstack.
2932 (init_alias_heapvars, delete_alias_heapvars): Remove.
2933 (compute_points_to_sets): Do not call init_alias_heapvars.
2934 (ipa_pta_execute): Likewise.
2935 (delete_points_to_sets): Free fake_var_decl_obstack.
2936
526ed6c2
UW
29372011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2938
2939 * config/spu/divmovti4.c (union qword_UTItype): New data type.
2940 (si_from_UTItype, si_to_UTItype): New functions.
2941 (__udivmodti4): Use them to implement type-punning.
2942 * config/spu/multi3.c (union qword_TItype): New data type.
2943 (si_from_TItype, si_to_TItype): New functions.
2944 (__multi3): Use them to implement type-punning.
2945
c187d33c
UW
29462011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2947
2948 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2949
40982661
JH
29502011-04-27 Jan Hubicka <jh@suse.cz>
2951
2952 * ipa-prop.c (function_insertion_hook_holder): New holder.
2953 (ipa_add_new_function): New function.
200eb7d2
UB
2954 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2955 Register/deregister holder.
40982661 2956
9aef53ee
RG
29572011-04-27 Richard Guenther <rguenther@suse.de>
2958
2959 PR tree-optimization/48772
200eb7d2 2960 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 2961
f63d806d
RG
29622011-04-27 Richard Guenther <rguenther@suse.de>
2963
2964 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2965 TARGET_MEM_REF handling.
2966
e1ea7451
NC
29672011-04-27 Nick Clifton <nickc@redhat.com>
2968
9b5db25d
NC
2969 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2970 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2971 (REG_CLASS_NAMES): Likewise.
2972 (REG_CLASS_CONTENTS): Likewise.
2973 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
2974 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
2975 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
2976 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
2977 (EVEN_REGS): New macro. Alias for QUAD_REGS.
2978 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2979 duplicate register classes.
97d20907 2980 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
2981 (frv_register_move_cost): Likewise.
2982
e1ea7451
NC
2983 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2984 end of the regno_reg_class array.
2985
5c2f94b4
JJ
29862011-04-27 Jakub Jelinek <jakub@redhat.com>
2987
2988 PR c/48742
2989 * c-typeck.c (build_binary_op): Don't wrap arguments if
2990 int_operands is true.
2991
57a944d7
KK
29922011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
2993
2994 PR target/48767
2995 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2996 targetm.calls.must_pass_in_stack for void type.
2997
898b8927
JH
29982011-04-26 Jan Hubicka <jh@suse.cz>
2999
3000 * cgraphbuild.c (build_cgraph_edges): Update call
3001 of cgraph_create_edge and cgraph_create_indirect_edge.
3002 * cgraph.c (cgraph_create_edge_including_clones,
3003 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3004 cgraph_update_edges_for_call_stmt_node): Do not take nest
3005 argument; do not initialize call_stmt_size/time.
3006 (dump_cgraph_node): Do not dump nest.
3007 (cgraph_clone_edge): Do not take loop_nest argument;
3008 do not propagate it; do not clone call_stmt_size/time.
3009 (cgraph_clone_node): Likewise.
3010 (cgraph_create_virtual_clone): Update.
3011 * cgraph.h (struct cgraph_edge): Remove
3012 call_stmt_size/call_stmt_time/loop_nest.
3013 (cgraph_create_edge, cgraph_create_indirect_edge,
3014 cgraph_create_edge_including_clones, cgraph_clone_node): Update
3015 prototype.
3016 * tree-emutls.c (gen_emutls_addr): Update.
3017 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3018 loop_nest; handle indirect calls, too.
3019 (clone_inlined_nodes): Do not care about updating inline summaries.
3020 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3021 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3022 stream call_stmt_size/call_stmt_time/loop_nest.
3023 * ipa-inline.c (edge_badness): Update.
3024 (ipa_inline): dump summaries after inlining.
3025 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 3026 New.
898b8927
JH
3027 (inline_edge_summary): New function.
3028 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3029 (inline_edge_removal_hook): Handle edge summaries.
3030 (inline_edge_duplication_hook): New hook.
3031 (inline_summary_alloc): Alloc hooks.
3032 (initialize_growth_caches): Do not register removal hooks.
3033 (free_growth_caches); Do not free removal hook.
3034 (dump_inline_edge_summary): New function.
3035 (dump_inline_summary): Use it.
3036 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3037 (inline_update_callee_summaries): New function.
3038 (inline_merge_summary): Use it.
3039 (do_estimate_edge_time, do_estimate_edge_growth): Update.
3040 (read_inline_edge_summary): New function.
3041 (inline_read_section): Use it.
3042 (write_inline_edge_summary): New function.
3043 (inline_write_summary): Use it.
3044 (inline_free_summary): Free edge new holders.
3045 * tree-inline.c (copy_bb): Update.
3046
ffa03772
JM
30472011-04-26 Jason Merrill <jason@redhat.com>
3048
3049 * tree-eh.c (lower_try_finally_switch): Create the label along with
3050 the CASE_LABEL_EXPR.
3051
6d7b45ad
DM
30522011-04-26 David S. Miller <davem@davemloft.net>
3053 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3054
3055 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3056 * configure: Regenerate.
3057
df10b6d4
MM
30582011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3059
3060 PR target/48258
3061 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3062 reduction.
3063 (VEC_reduc): New code iterator and splitters for vector reduction.
3064 (VEC_reduc_name): Ditto.
3065 (VEC_reduc_rtx): Ditto.
3066 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3067 (reduc_<VEC_reduc_name>_v4sf): Ditto.
3068
3069 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3070 support for extracting SF on VSX.
3071
3072 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3073 generating xscvspdp.
3074 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3075 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3076 double add, minimum, maximum vector reduction.
3077 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3078 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3079 optimize double vector reduction.
3080 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3081
35a5db04
JM
30822011-04-26 Joseph Myers <joseph@codesourcery.com>
3083
3084 * config/fr30/fr30.h (inhibit_libc): Don't define.
3085 * config/m32r/m32r-protos.h: Correct comment.
3086 * config/v850/v850.h (GHS_default_section_names,
3087 GHS_current_section_names): Use tree, not union tree_node *.
3088
2f964ad6
XDL
30892011-04-26 Xinliang David Li <davidxl@google.com>
3090
200eb7d2 3091 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
3092 * c-family/c-opts.c (c_common_handle_option): Set
3093 warn_maybe_uninitialized.
3094 * opts.c (common_handle_option): Ditto.
3095 * common.opt: New option.
3096 * tree-ssa.c (warn_uninit): Add one more parameter.
3097 (warn_uninitialized_var): Pass warning code.
3098 * tree-flow.h: Interface change.
3099
3100
9c7bd91a
RO
31012011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3102
200eb7d2 3103 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
3104 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3105 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3106
c2f36e21
RO
31072011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3108
3109 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3110 * config/mips/mips.opt (mmips-tfile): Remove.
3111
3112 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3113 mips-tdump reference to ...
200eb7d2 3114 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
3115 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3116 reference by Tru64 UNIX.
3117
2c9da85b
JJ
31182011-04-26 Jakub Jelinek <jakub@redhat.com>
3119
0c5f6539
JJ
3120 PR debug/48768
3121 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3122 is error_mark_node, set value to NULL.
3123
2c9da85b
JJ
3124 PR tree-optimization/48734
3125 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3126 if return value from maybe_fold_*_comparsions isn't something
3127 the code is prepared to handle.
3128
77fa1d54
UB
31292011-04-26 Uros Bizjak <ubizjak@gmail.com>
3130
3131 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3132 mode check.
3133 (ext_QIreg_nomode_operands): Remove.
3134 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3135 (*andsi_1): Ditto.
3136 (*andhi_1): Ditto.
3137
0e2a6c2b
AS
31382011-04-26 Andrew Stubbs <ams@codesourcery.com>
3139
3140 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3141
961562d8
RB
31422011-04-26 Richard Guenther <rguenther@suse.de>
3143
3144 * c-typeck.c (build_unary_op): Do not expand array-refs via
3145 pointer arithmetic. Only adjust qualifiers for function types.
3146
31472011-04-26 Richard Guenther <rguenther@suse.de>
3148
3149 PR middle-end/48694
3150 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3151 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
3152 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
3153 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 3154
a0d260fc
PC
31552011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
3156
6bec6c98 3157 * doc/extend.texi: Document __underlying_type.
a0d260fc 3158
4d583bb9
SB
31592011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
3160
3161 * config/rs6000/titan.md (automata_option "progress"): Remove.
3162
1f3fcdc3
JL
31632011-04-25 Jeff Law <law@redhat.com>
3164
3165 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3166
e5b0dad8
JK
31672011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3168
3169 * system.h (ENUM_BITFIELD): Remove.
3170
5157a881 31712011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 3172 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
3173
3174 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3175 for STORE_FLAG_VALUE==-1 case.
3176
ed4c109e
RS
31772011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
3178
3179 PR target/43804
3180 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3181 LEGITIMATE_PIC_OPERAND_P.
3182
f3181aa2
JH
31832011-04-24 Jan Hubicka <jh@suse.cz>
3184
3185 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3186 WPA hack.
77fa1d54
UB
3187 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3188 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3189 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
3190 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3191 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3192 Sanity check predicate length.
3193 (remap_predicate): Likewise; sanity check jump functions.
3194 (inline_read_section, inline_write_summary): Sanity check
3195 predicate length.
3196
5307cbaa
PC
31972011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3198
3199 PR other/48748
3200 * doc/extend.texi (Type Traits): Document __is_standard_layout,
3201 __is_literal_type, and __is_trivial; update throughout about
3202 possibly cv-qualified void types.
3203
bebd5f99
GP
32042011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
3205
3206 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3207 testsuite and make it version agnostic.
3208
7ee28a74
JH
32092011-04-22 Jan Hubicka <jh@suse.cz>
3210
3211 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3212
16997bc0
JJ
32132011-04-23 Jakub Jelinek <jakub@redhat.com>
3214
3215 PR c/48685
3216 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3217 to VOID_TYPE even around MODIFY_EXPR.
3218
f94d4ab1
MS
32192011-04-22 Mike Stump <mikestump@comcast.net>
3220
1a84c183 3221 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
3222 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3223 comment.
3224
632b4f8e
JH
32252011-04-22 Jan Hubicka <jh@suse.cz>
3226
3227 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
3228 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3229 ipa-prop.c; update all uses.
632b4f8e 3230 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
3231 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3232 merge summary of inlined function into former caller.
632b4f8e
JH
3233 * ipa-inline.c (max_benefit): Remove.
3234 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
3235 (update_caller_keys): Use
3236 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
3237 (update_callee_keys): Likewise.
3238 (update_all_callee_keys): Likewise.
77fa1d54
UB
3239 (inline_small_functions): Do not collect max_benefit; do not reset
3240 estimated_growth; call free_growth_caches and initialize_growth_caches.
3241 * ipa-inline.h (struct condition, type clause_t, struct predicate,
3242 struct size_time_entry): New structures.
632b4f8e 3243 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
3244 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3245 and estimated_growth.
632b4f8e
JH
3246 (edge_growth_cache_entry): New structure.
3247 (node_growth_cache, edge_growth_cache): New global vars.
3248 (estimate_growth): Turn into inline.
3249 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3250 initialize_growth_caches, free_growth_caches): Declare.
3251 (estimate_edge_growth): Rewrite.
3252 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
3253 (reset_node_growth_cache, reset_edge_growth_cache): New inline
3254 functions.
632b4f8e
JH
3255 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3256 (NUM_CONDITIONS): New constant.
3257 (predicate_conditions): New enum.
3258 (IS_NOT_CONSTANT): New constant.
3259 (edge_removal_hook_holder): New var.
3260 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
3261 (true_predicate, single_cond_predicate, false_predicate,
3262 not_inlined_predicate, add_condition, add_clause, and_predicates,
3263 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3264 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
3265 evaulate_conditions_for_edge): New functions.
3266 (inline_summary_alloc): Move to heap.
3267 (inline_node_removal_hook): Clear condition and entry vectors.
3268 (inline_edge_removal_hook): New function.
3269 (initialize_growth_caches, free_growth_caches): New function.
3270 (dump_inline_summary): Update.
3271 (edge_execution_predicate): New function.
3272 (will_be_nonconstant_predicate): New function.
3273 (estimate_function_body_sizes): Compute BB and constantness predicates.
3274 (compute_inline_parameters): Do not clear estimated_growth.
3275 (estimate_edge_size_and_time): New function.
3276 (estimate_calls_size_and_time): New function.
3277 (estimate_callee_size_and_time): New function.
3278 (remap_predicate): New function.
3279 (inline_merge_summary): New function.
3280 (do_estimate_edge_time): New function based on...
3281 (estimate_edge_time): ... this one.
3282 (do_estimate_edge_growth): New function.
3283 (do_estimate_growth): New function based on....
3284 (estimate_growth): ... this one.
3285 (inline_analyze_function): Analyze after deciding on jump functions.
3286 (inline_read_section): New function.
3287 (inline_read_summary): Use it.
3288 (inline_write_summary): Write all the new data.
3289 * ipa-prop.c (ipa_get_param_decl_index): Export.
3290 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
3291 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3292 Declare.
3293 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
3294 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3295 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3296 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3297 cgraph_edge_inlinable_p): Remove.
3298 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
3299 (cgraph_process_new_functions): Update call of
3300 compute_inline_parameters.
632b4f8e 3301
1df5b0db
RG
33022011-04-22 Richard Guenther <rguenther@suse.de>
3303
3304 * tree.c (build_int_cst): Properly create canonicalized integer
3305 constants.
3306 (build_int_cst_type): Remove scary comments.
3307
ae01169c
XDL
33082011-04-22 Xinliang David Li <davidxl@google.com>
3309
3310 * toplev.c (process_options): Enable -Werror=coverage-mismatch
3311 by default when -Wno-error is not specified.
3312 * opts-global.c (decode_options): Remove call to
3313 control_warning_options.
3314
93dfac24
JJ
33152011-04-22 Jakub Jelinek <jakub@redhat.com>
3316
3317 PR tree-optimization/48717
3318 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3319 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3320
1b5f5069
JM
33212011-04-22 Joseph Myers <joseph@codesourcery.com>
3322
3323 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
3324 definition where used.
3325
144f4153
JJ
33262011-04-22 Jakub Jelinek <jakub@redhat.com>
3327
3328 PR c/48716
3329 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3330 TREE_STATIC variables declared inside of some OpenMP construct.
3331
f9fd305b
MJ
33322011-04-22 Martin Jambor <mjambor@suse.cz>
3333
3334 PR middle-end/48585
1d284ec5 3335 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 3336
49819fef
AM
33372011-04-22 Alexander Monakov <amonakov@ispras.ru>
3338
3339 PR c/36750
3340 * c-typeck.c (pop_init_level): Do not warn about initializing
3341 with ` = {0}'.
3342
401f6699
AM
33432011-04-22 Alan Modra <amodra@gmail.com>
3344
3345 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3346 when returning call_cookie.
3347 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3348 pointers, to functions with no more vector args than the current
3349 function, and some non-local calls for ABI_V4.
3350 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3351 sibcall_nonlocal_aix64): Combine to ..
3352 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
3353 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3354 (sibcall_value_nonlocal_aix<mode>): ..likewise.
3355 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3356 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
3357 operand.
3358 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3359 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3360 sibcall_value_symbolic_64): Delete.
3361
903d1e67
XDL
33622011-04-21 Xinliang David Li <davidxl@google.com>
3363
3364 * cgraph.h: Remove pid.
3365 * cgraph.c: Remove pid.
3366 * value-prof.c (init_node_map): New function.
3367 (del_node_map): New function.
3368 (find_func_by_funcdef_no): New function.
3369 (gimple_ic_transform): Call new function.
3370 * cgraphunit.c (cgraph_finalize_function): Remove pid.
3371 * function.c (get_last_funcdef_no): New function.
3372 * function.h (get_last_funcdef_no): New function.
3373 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3374 to libgcov function.
3375 (tree-profiling): Call node map init and delete function.
3376
7378e95f
ILT
33772011-04-21 Ian Lance Taylor <iant@google.com>
3378
3379 * godump.c (go_format_type): Use exported Go name for anonymous
3380 field name.
3381
e84a6fcf
NF
33822011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3383
3384 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3385 Call builtin_function_type_list instead of builtin_function_type.
3386 (UNARY, BINARY, TRINARY, QUAD): Likewise.
3387
4fe058e2
NF
33882011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3389
3390 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3391 build_function_type_list instead of build_function_type.
3392 Delete variable `endlink'.
3393
1ba0a2d2
NF
33942011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3395
3396 * config/s390/s390.c (s390_init_builtins): Call
3397 build_function_type_list instead of build_function_type.
3398
c0676219
NF
33992011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3400
3401 * config/ia64/ia64.c (ia64_init_builtins): Call
3402 build_function_type_list instead of builtin_function_type.
3403
6ddfda8a
ER
34042011-04-21 Easwaran Raman <eraman@google.com>
3405
3a6448ea 3406 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
3407 (add_stack_var): ...and its reference here...
3408 (expand_stack_vars): ...and here.
3409 (stack_var_cmp): Sort by descending order of size.
3410 (partition_stack_vars): Change heuristic.
1d284ec5 3411 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
3412 (dump_stack_var_partition): Add newline after each partition.
3413
23756963
DA
34142011-04-21 Dimitrios Apostolou <jimis@gmx.net>
3415 Jeff Law <law@redhat.com>
3416
77fa1d54 3417 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
3418 * gengtype.c (matching_file_name_substitute): Likewise.
3419
aa2a43d2
RG
34202011-04-21 Richard Guenther <rguenther@suse.de>
3421
3422 PR lto/48703
1d284ec5 3423 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 3424
4d931f41
EB
34252011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3426
3427 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3428
f103fa7a
RG
34292011-04-21 Richard Guenther <rguenther@suse.de>
3430
3431 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3432 file name.
3433
e19f6650
RG
34342011-04-21 Richard Guenther <rguenther@suse.de>
3435
3436 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3437 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3438 Use DECL_P, not SSA_VAR_P.
3439 (ptr_derefs_may_alias_p): Likewise.
3440 (ptr_deref_may_alias_ref_p_1): Likewise.
3441 (decl_refs_may_alias_p): Likewise.
3442 (refs_may_alias_p_1): Likewise.
3443 (ref_maybe_used_by_call_p_1): Likewise.
3444 (call_may_clobber_ref_p_1): Likewise.
3445 (indirect_ref_may_alias_decl_p): Assume indirect refrences
3446 are either MEM_REF or TARGET_MEM_REF.
3447 (indirect_refs_may_alias_p): Likewise.
3448 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3449 for MEM_EXPR of indirect calls.
3450
9d1831bb
TG
34512011-04-21 Tristan Gingold <gingold@adacore.com>
3452
3453 * vmsdbgout.c (write_srccorr): Compute file length from the string.
3454 (dst_file_info_struct): Remove flen field.
3455 (lookup_filename): Remove code that set flen field.
3456
f199c029
TG
34572011-04-21 Tristan Gingold <gingold@adacore.com>
3458
3459 * config/ia64/ia64.c (ia64_start_function): Add a guard.
3460
2894086e
UB
34612011-04-21 Uros Bizjak <ubizjak@gmail.com>
3462
3463 PR target/48708
3464 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3465 vec_extract and vec_concat for non-SSE4_1 targets.
3466
53f94a5c
RG
34672011-04-21 Richard Guenther <rguenther@suse.de>
3468
3469 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3470 return statements.
3471
f0dca5ba
JM
34722011-04-21 Joseph Myers <joseph@codesourcery.com>
3473
3474 * config/i386/cygming.h (union tree_node, TREE): Don't define or
3475 undefine.
3476 (FILE): Don't undefine.
3477
984514ac
JM
34782011-04-21 Joseph Myers <joseph@codesourcery.com>
3479
3480 * config/alpha/alpha.c (struct machine_function): Use rtx, not
3481 struct rtx_def *.
3482 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3483 struct rtx_def *.
3484 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 3485 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
3486 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3487 rtx_def *.
3488 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
3489 definitions where used.
3490 * config/microblaze/microblaze.h (struct microblaze_args): Use
3491 rtx, not struct rtx_def *.
3492 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3493 rtx_def *.
2894086e
UB
3494 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3495 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
3496 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3497 not struct rtx_def *.
3498 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3499 struct rtx_def *.
3500 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3501 rtx_def *.
2894086e 3502 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 3503
0b5a2724
RS
35042011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3505
3506 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3507 operand_equal_p to compare DR_BASE_ADDRESSes.
3508 (vect_check_interleaving): Likewise.
3509
4b18d683
RS
35102011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3511
3512 PR target/46329
3513 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3514 for all Neon struct constants.
3515
1a627b35
RS
35162011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3517
3518 * target.def (legitimate_constant_p): New hook.
3519 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3520 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3521 * doc/tm.texi: Regenerate.
3522 * hooks.h (hook_bool_mode_rtx_true): Declare.
3523 * hooks.c (hook_bool_mode_rtx_true): Define.
3524 * system.h (LEGITIMATE_CONSTANT_P): Poison.
3525 * calls.c (precompute_register_parameters): Replace uses of
3526 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3527 (emit_library_call_value_1): Likewise.
3528 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3529 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3530 * ira-costs.c (scan_one_insn): Likewise.
3531 * recog.c (general_operand, immediate_operand): Likewise.
3532 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3533 * reload1.c (init_eliminable_invariants): Likewise.
3534
3535 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3536 mode argument.
3537 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3538 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3539 argument.
3540 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3541 * config/alpha/predicates.md (input_operand): Update call to
3542 alpha_legitimate_constant_p.
3543
3544 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3545 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3546 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3547 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3548 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3549 (arm_legitimate_constant_p): New functions.
3550 (arm_cannot_force_const_mem): Make static.
3551
3552 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3553
3554 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3555 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3556 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3557 instead of bfin_legitimate_constant_p.
3558 (bfin_legitimate_constant_p): Make static. Add a mode argument.
3559 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3560
3561 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3562
3563 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3564
3565 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3566 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3567 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3568 (frv_legitimate_constant_p): Make static. Add a mode argument.
3569
3570 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3571 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3572 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3573
3574 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3575 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3576 * config/i386/i386.c (legitimate_constant_p): Rename to...
3577 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
3578 argument.
3579 (ix86_cannot_force_const_mem): Update accordingly.
3580 (ix86_legitimate_address_p): Likewise.
3581 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3582 * config/i386/i386.md: Update commentary.
3583
3584 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3585 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3586 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3587 (ia64_legitimate_constant_p): Make static. Add a mode argument.
3588
3589 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3590
3591 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3592 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3593 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3594 (lm32_legitimate_constant_p): Make static. Add a mode argument.
3595
3596 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3597 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3598 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3599
3600 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3601 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3602 (m32r_legitimate_constant_p): New function.
3603
3604 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3605 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3606 LEGITIMATE_CONSTANT_P.
3607 (LEGITIMATE_CONSTANT_P): Delete.
3608 * config/m68k/m68k.c (m68k_expand_prologue): Call
3609 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3610 (m68k_legitimate_constant_p): New function.
3611 * config/m68k/m68k.md: Update comments.
3612
3613 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3614 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3615 (mcore_legitimate_constant_p): New function.
3616
3617 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3618 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3619 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3620 Add a mode argument.
3621 (mep_legitimate_address): Update accordingly.
3622 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3623
3624 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3625 Delete.
3626 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3627 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3628 static. Check OP's mode for VOIDmode.
3629 (microblaze_legitimate_constant_p): New function.
3630 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3631
3632 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3633 * config/mips/mips.c (mips_legitimate_constant_p): New function.
3634 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3635 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3636 * config/mips/predicates.md: Update comments.
3637
3638 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3639 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3640 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3641 (mmix_legitimate_constant_p): Make static, return a bool, and take
3642 a mode argument.
3643 (mmix_print_operand_address): Update accordingly.
3644
3645 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3646 Delete.
3647 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
3648 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3649 static. Add a mode argument.
1a627b35
RS
3650 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3651
3652 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3653
3654 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3655 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3656 (pa_legitimate_constant_p): New function.
3657
3658 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3659
3660 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3661 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3662 (pdp11_legitimate_constant_p): New function.
3663
3664 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3665 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3666 (rs6000_legitimate_constant_p): New function.
3667
3668 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3669 (rx_legitimate_constant_p): ...this.
3670 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3671 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3672 (rx_legitimate_constant_p): ...this.
3673 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3674 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3675
3676 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3677 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3678 * config/s390/s390.c (legitimate_constant_p): Rename to...
3679 (s390_legitimate_constant_p): ...this. Make static, return a bool,
3680 and add a mode argument.
3681 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3682
3683 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3684
3685 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3686 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3687 (sh_legitimate_constant_p): New function.
3688
3689 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3690 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3691 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3692 (legitimate_constant_p): Rename to...
3693 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
3694 argument.
3695 (constant_address_p): Update accordingly.
3696
3697 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3698 argument and return a bool.
3699 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3700 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3701 (spu_legitimate_constant_p): Add a mode argument and return a bool.
3702 (spu_rtx_costs): Update accordingly.
3703 * config/spu/predicates.md (vec_imm_operand): Likewise.
3704
3705 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3706
3707 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3708 * config/v850/v850.c (v850_legitimate_constant_p): New function.
3709 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3710
3711 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3712 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3713 * config/vax/vax.c (legitimate_constant_p): Likewise.
3714
3715 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3716 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3717 (xtensa_legitimate_constant_p): New function.
3718
fbbf66e7
RS
37192011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3720
3721 * target.def (cannot_force_const_mem): Add a mode argument.
3722 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3723 * doc/tm.texi: Regenerate.
3724 * hooks.h (hook_bool_mode_rtx_false): Declare.
3725 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3726 (hook_bool_mode_const_rtx_true): Likewise.
3727 (hook_bool_mode_rtx_false): New function.
3728 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3729 to be non-VOID. Update call to cannot_force_const_mem.
3730 (find_reloads): Update accordingly.
3731 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3732 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3733 argument.
3734 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3735 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3736 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3737 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3738 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3739 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3740 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3741 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3742 (m68k_cannot_force_const_mem): ...this new function.
3743 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3744 argument.
3745 (mips_const_insns, mips_legitimize_const_move): Update calls.
3746 (mips_secondary_reload_class): Likewise.
3747 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3748 (pa_cannot_force_const_mem): ...this new function.
2894086e 3749 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
3750 (rs6000_cannot_force_const_mem): ...this new function.
3751 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3752 argument.
3753 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3754 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3755 to...
3756 (xtensa_cannot_force_const_mem): ...this new function.
3757
b861891b
NF
37582011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3759
3760 * config/mips/mips.c (mips16_build_function_stub): Call
3761 build_function_type_list instead of build_function_type.
3762 (mips16_build_call_stub): Likewise.
3763
34149ed5
NF
37642011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3765
3766 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3767 instead of build_function_type.
3768
12526412
NF
37692011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3770
3771 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3772 instead of build_function_type.
3773
3b84d61f
UB
37742011-04-20 Uros Bizjak <ubizjak@gmail.com>
3775
3776 PR target/48678
3777 * config/i386/i386.md (insv): Change operand 0 constraint to
3778 "register_operand". Change operand 1 and 2 constraint to
3779 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
3780 * config/i386/sse.md (sse4_1_pinsrb): Export.
3781 (sse2_pinsrw): Ditto.
3782 (sse4_1_pinsrd): Ditto.
3783 (sse4_1_pinsrq): Ditto.
3784 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3785 * config/i386/i386.c (ix86_expand_pinsr): New.
3786
4a25752b
ER
37872011-04-20 Easwaran Raman <eraman@google.com>
3788
3789 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3790 containing union type only with -fstrict-aliasing.
3791
04695783
JM
37922011-04-20 Jim Meyering <meyering@redhat.com>
3793
3794 Remove useless if-before-free tests.
3795 * calls.c (expand_call, save_area): Likewise.
3796 * cfgcleanup.c (try_forward_edges): Likewise.
3797 * collect2.c (collect_execute): Likewise.
3798 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3799 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3800 * coverage.c (coverage_checksum_string): Likewise.
3801 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3802 * cselib.c (cselib_init): Likewise.
3803 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3804 (df_set_clean_cfg): Likewise.
3805 * function.c (free_after_compilation): Likewise.
3806 * gcc.c (do_spec_1, main): Likewise.
3807 * gcov.c (create_file_names): Likewise.
3808 * gensupport.c (identify_predicable_attribute): Likewise.
3809 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3810 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3811 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3812 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3813 * ipa-pure-const.c (local_pure_const): Likewise.
3814 * ipa-reference.c (propagate): Likewise.
3815 * ira-costs.c (free_ira_costs): Likewise.
3816 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3817 * matrix-reorg.c (mat_free): Likewise.
3818 * prefix.c (get_key_value): Likewise.
3819 * profile.c (compute_value_histograms): Likewise.
3820 * reload1.c (free_reg_equiv): Likewise.
3821 * sched-deps.c (free_deps): Likewise.
3822 * sel-sched-ir.c (fence_clear): Likewise.
3823 * sese.c (set_rename, if_region_set_false_region): Likewise.
3824 * tree-data-ref.c (free_rdg): Likewise.
3825 * tree-eh.c (lower_try_finally): Likewise.
3826 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3827 * tree-ssa-live.c (delete_var_map): Likewise.
3828 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3829 * tree-ssa-pre.c (phi_trans_add): Likewise.
3830
6788475a
JJ
38312011-04-20 Jakub Jelinek <jakub@redhat.com>
3832
3833 PR tree-optimization/48611
3834 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3835 beyond ERT_MUST_NOT_THROW region.
3836
0eda4033
CM
38372011-04-20 Catherine Moore <clm@codesourcery.com>
3838
3839 * config/mips/mips.opt (mfix-24k): New.
3840 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3841 * config/mips/mips.md (length): Increase by 4 for stores if
3842 fixing 24K errata.
3843 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3844 all noreorder if fixing 24K errata.
3845 * doc/invoke.texi: Document mfix-24k.
3846
01475747
CLT
38472011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
3848
3849 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 3850 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 3851
bc2c1a60
AS
38522011-04-20 Andrew Stubbs <ams@codesourcery.com>
3853
3854 * config/arm/arm.c (arm_gen_constant): Move movw support ....
3855 (const_ok_for_op): ... to here.
3856
583722ee
KT
38572011-04-20 Kai Tietz <ktietz@redhat.com>
3858
2894086e
UB
3859 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3860 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 3861
422c0989
AS
38622011-04-20 Andrew Stubbs <ams@codesourcery.com>
3863
3864 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3865
d7978bff
RG
38662011-04-20 Richard Guenther <rguenther@suse.de>
3867
3868 PR tree-optimization/47892
3869 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3870 are if-convertible.
3871
818412ba
EB
38722011-04-20 Eric Botcazou <ebotcazou@adacore.com>
3873
3874 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3875
b501ce4e
TG
38762011-04-20 Tristan Gingold <gingold@adacore.com>
3877
3878 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3879
516edfdd
GJL
38802011-04-20 Georg-Johann Lay <avr@gjlay.de>
3881
3882 PR target/18145
3883
3884 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3885 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3886 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3887 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3888 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3889
3890 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3891 New prototype.
3892
3893 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3894 (avr_asm_named_section, avr_asm_output_aligned_common,
3895 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3896 New functions to update...
3897 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3898 (avr_asm_init_sections): Overwrite section callbacks for
3899 data_section, bss_section.
3900 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3901 from here to...
3902 (avr_file_end): ...here.
3903
dafc9511
RG
39042011-04-20 Richard Guenther <rguenther@suse.de>
3905
3906 PR middle-end/48695
3907 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 3908 objects and types here. Adjust for their offset before comparing.
dafc9511 3909
1da0876c
RS
39102011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3911
3912 * tree-vect-stmts.c (vectorizable_store): Only chain one related
3913 statement per copy.
3914
25583c4f
RS
39152011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3916
3917 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3918 (GIMPLE_H): Include $(INTERNAL_FN_H).
3919 (OBJS-common): Add internal-fn.o.
3920 (internal-fn.o): New rule.
3921 * internal-fn.def: New file.
3922 * internal-fn.h: Likewise.
3923 * internal-fn.c: Likewise.
3924 * gimple.h: Include internal-fn.h.
3925 (GF_CALL_INTERNAL): New gf_mask.
3926 (gimple_statement_call): Put fntype into a union with a new
3927 internal_fn field.
3928 (gimple_build_call_internal): Declare.
3929 (gimple_build_call_internal_vec): Likewise.
3930 (gimple_call_same_target_p): Likewise.
3931 (gimple_call_internal_p): New function.
3932 (gimple_call_internal_fn): Likewise.
3933 (gimple_call_fntype): Return null for internal calls.
3934 (gimple_call_set_fntype): Assert that the function is not internal.
3935 (gimple_call_set_fn): Likewise.
3936 (gimple_call_set_fndecl): Likewise.
3937 (gimple_call_set_internal_fn): New function.
3938 (gimple_call_addr_fndecl): Handle null functions.
3939 (gimple_call_return_type): Likewise null types.
3940 * gimple.c (gimple_build_call_internal_1): New function.
3941 (gimple_build_call_internal): Likewise.
3942 (gimple_build_call_internal_vec): Likewise.
3943 (gimple_call_same_target_p): Likewise.
3944 (gimple_call_flags): Handle calls to internal functions.
3945 (gimple_call_fnspec): New function.
3946 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3947 (gimple_has_side_effects): Handle null functions.
3948 (gimple_rhs_has_side_effects): Likewise.
3949 (gimple_call_copy_skip_args): Handle calls to internal functions.
3950 * cfgexpand.c (expand_call_stmt): Likewise.
3951 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3952 * gimple-fold.c (gimple_fold_call): Handle null functions.
3953 (gimple_fold_stmt_to_constant_1): Don't fold
3954 calls to internal functions.
3955 * gimple-low.c (gimple_check_call_args): Handle calls to internal
3956 functions.
3957 * gimple-pretty-print.c (dump_gimple_call): Likewise.
3958 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3959 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3960 (do_warn_unused_result): Likewise.
3961 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3962 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3963 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3964 the target of a call.
3965 (initialize_hash_element): Update accordingly.
3966 (hashable_expr_equal_p): Use gimple_call_same_target_p.
3967 (iterative_hash_hashable_expr): Handle calls to internal functions.
3968 (print_expr_hash_elt): Likewise.
3969 * tree-ssa-pre.c (can_value_number_call): Likewise.
3970 (eliminate): Handle null functions.
3971 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3972 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3973 (find_func_aliases): Likewise.
3974 * value-prof.c (gimple_ic_transform): Likewise.
3975 (gimple_indirect_call_to_profile): Likewise.
3976 * lto-streamer-in.c (input_gimple_stmt): Likewise.
3977 * lto-streamer-out.c (output_gimple_stmt): Likewise.
3978
1a3118e9
JH
39792011-04-19 Jan Hubicka <jh@suse.cz>
3980
3981 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
3982 * ipa-inline.c (inline_small_functions): Compute summaries first,
3983 populate heap later.
1a3118e9 3984
fee8b6da
JH
39852011-04-19 Jan Hubicka <jh@suse.cz>
3986
3987 * cgraph.h (save_inline_function_body): Remove.
3988 * ipa-inline-transform.c: New file, broke out of...
3989 * ipa-inline.c: ... this one; Update toplevel comment.
3990 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3991 make global.
3992 (update_noncloned_frequencies): Move to ipa-inline-transform.c
3993 (cgraph_mark_inline_edge): Rename to inline_call; move to
3994 ipa-inline-transform.c.
3995 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3996 move to ipa-inline-transform.c
3997 (recursive_inlining, inline_small_functions, flatten_function,
3998 ipa_inline, inline_always_inline_functions,
3999 early_inline_small_functions): Update.
4000 (inline_transform): Move to ipa-inline-transform.c.
4001 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4002 Declare.
4003 * Makefile.in (ipa-inline-transform.o): New file.
4004 * cgraphunit.c (save_inline_function_body): Move to
4005 ipa-inline-transform.c
4006
f0679612
DD
40072011-04-19 DJ Delorie <dj@redhat.com>
4008
4009 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4010 registers if we already know there aren't any.
4011 (m32c_emit_epilogue): Don't emit a barrier here.
4012 (m32c_emit_eh_epilogue): Likewise.
4013 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4014 operands at expand time.
4015 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4016 int" wchar type.
4017 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4018 duplicates. Provide aliases instead.
4019 * config/m32c/prologue.md (eh_return): Emit a barrier here.
4020 (eh_epilogue): Add a "(return)" here as a hint to other parts of
4021 the compiler.
4022
32257ddc
AS
40232011-04-19 Anatoly Sokolov <aesok@post.ru>
4024
4025 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4026 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4027 (general_or_i64_p, sparc_register_move_cost): New function.
4028
60bea929
RO
40292011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4030
4031 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 4032 Add lynx, mipssde. Sort table.
60bea929 4033
444b3995 40342011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 4035
9d12f71a
EB
4036 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4037 not negative.
444b3995 4038
d708ce50
JJ
40392011-04-19 Jakub Jelinek <jakub@redhat.com>
4040
4041 PR target/48678
4042 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4043 is a SUBREG with non-MODE_INT mode inside of it.
4044
49c471e3
MJ
40452011-04-19 Martin Jambor <mjambor@suse.cz>
4046
4047 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4048 also according to actual contants.
4049 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4050 (gimple_fold_call): Use it.
4051 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4052
0004f992
MJ
40532011-04-19 Martin Jambor <mjambor@suse.cz>
4054
4055 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4056 non-pointer assignments.
4057
40591473
MJ
40582011-04-19 Martin Jambor <mjambor@suse.cz>
4059
4060 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4061 account anc_offset and otr_type from the indirect edge info.
4062 * ipa-prop.c (get_ancestor_addr_info): New function.
4063 (compute_complex_ancestor_jump_func): Assignment analysis moved to
4064 get_ancestor_addr_info, call it.
4065 (ipa_note_param_call): Do not initialize information about polymorphic
4066 calls, return the indirect call graph edge. Remove the last
4067 parameter, adjust all callers.
4068 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4069 parameters. Initialize polymorphic information in the indirect edge.
4070
abe36b81
EB
40712011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4072
4073 PR lto/48148
4074 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4075 the types if they have different enumeration identifiers.
4076
e6416b30
JH
40772011-04-19 Jan Hubicka <jh@suse.cz>
4078
4079 * cgraph.h (cgraph_optimize_for_size_p): Declare.
4080 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4081 * predict.c (cgraph_optimize_for_size_p): Break out from ...
4082 (optimize_function_for_size_p) ... here.
4083
d39132ea
RG
40842011-04-19 Richard Guenther <rguenther@suse.de>
4085
4086 PR lto/48207
4087 * tree.c (free_lang_data): Do not reset the decl-assembler-name
4088 langhook.
4089
ff7037dc
EB
40902011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4091
4092 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4093 if DECL_NO_INLINE_WARNING_P is set on the function.
4094
c1ee2892
BS
40952011-04-19 Bernd Schmidt <bernds@codesourcery.com>
4096
4097 PR fortran/47976
4098 * reload1.c (inc_for_reload): Return void. All callers changed.
4099 (emit_input_reload_insns): Don't try to delete previous output
4100 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
4101
41022011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
4103
4104 * gengtype.h: Updated copyright year.
4105 (struct input_file_st): Add inpisplugin field.
4106 (type_fileloc): New function.
4107 * gengtype.c
4108 (write_typed_struct_alloc_def): Add gcc_assert.
4109 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4110 (write_typed_alloc_defns): Don't output for plugin files.
4111 (input_file_by_name): Clear inpisplugin field.
4112 (main): Set inpisplugin field for plugin files.
4113
897e0a89
NP
41142011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
4115
4116 * gengtype-state.c (string_eq): New.
4117 (read_state): Use string_eq instead of strcmp when creating the
4118 state_ident_tab.
4119
363ee90e
WG
41202011-04-19 Wei Guozhi <carrot@google.com>
4121
4122 PR target/47855
4123 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4124 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4125 linkage.
4126 * config/arm/constraints.md (Uu): New constraint.
4127 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4128
18a24fed
TG
41292011-04-19 Tristan Gingold <gingold@adacore.com>
4130
4131 * config.gcc (-*-*-*vms): Added.
4132 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4133 definitions moved.
4134 * config/vms/vms-ld.c: New file.
4135 * config/vms/vms-ar.c: New file.
4136 * config/vms/t-vmsnative: New file.
4137
1c13f168
XDL
41382011-04-18 Xinliang David Li <davidxl@google.com>
4139
4140 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4141
84825707
JJ
41422011-04-18 Jakub Jelinek <jakub@redhat.com>
4143
4144 PR middle-end/48661
4145 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4146 if TREE_TYPE (v) is non-NULL.
4147
4148 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4149 gimple_get_virt_mehtod_for_binfo.
4150 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4151 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4152 callers.
4153 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4154
7d4f8d02 41552011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
4156 Steve Ellcey <sje@cup.hp.com>
4157
7d4f8d02
EB
4158 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4159 use its mode as source mode if it isn't VOIDmode.
7254cb57 4160
474e8e70
DCR
41612011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
4162
4163 * doc/passes.texi: Fill crossref nodes.
4164
cff41484
JM
41652011-04-18 Jim Meyering <meyering@redhat.com>
4166
7d4f8d02 4167 Fix doubled-word typos in comments and strings
cff41484
JM
4168 * config/alpha/vms-unwind.h: s/for for/for/
4169 * config/arm/unwind-arm.h: Likewise.
4170 * config/microblaze/microblaze.c: Likewise.
4171 * config/sh/constraints.md: s/in in/in/
4172 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4173
f60c2554
UB
41742011-04-18 Uros Bizjak <ubizjak@gmail.com>
4175
4176 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4177 (AVX_FLOAT_MODE_P): Ditto.
4178 (AVX128_VEC_FLOAT_MODE_P): Ditto.
4179 (AVX256_VEC_FLOAT_MODE_P): Ditto.
4180 (AVX_VEC_FLOAT_MODE_P): Ditto.
4181 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4182 (UNSPEC_MASKSTORE): Ditto.
4183 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4184 Merge from <sse>_movmsk<ssemodesuffix> and
4185 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
4186 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
4187 iterator.
4188 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4189 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4190 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4191
09a2806f
JH
41922011-04-18 Jan Hubicka <jh@suse.cz>
4193
8a8dccb2
JH
4194 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4195
09a2806f
JH
4196 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4197 (want_inline_function_called_once_p): Break out the logic from
4198 ipa_inline.
4199 (edge_badness): Ensure that profile is not misupdated.
4200 (lookup_recursive_calls): Prioritize by call frequencies.
4201 (inline_small_functions): Move program size estimates here;
4202 actually process whole queue even when unit growth has been
4203 met. (to properly compute inline_failed reasons and for the
f60c2554 4204 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
4205 (ipa_inline): Remove unit summary code; first inline hot calls
4206 of functions called once, cold calls next.
4207 (order, nnodes): Remove unused variables.
4208 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4209 (GTFILES): Remove ipa-inline.c
4210 * sel-sched.c (fill_insns): Silence uninitialized var warning.
4211
3eea52ef
EB
42122011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4213
4214 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4215
229a1c59 42162011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 4217 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
4218
4219 * arm.c (neon_builtin_type_bits): Remove.
4220 (typedef enum neon_builtin_mode): New.
4221 (T_MAX): Don't define.
4222 (typedef enum neon_builtin_datum): Remove bits, codes[],
4223 num_vars and base_fcode. Add mode, code and fcode.
4224 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4225 VAR10): Change accordingly.
4226 (neon_builtin_data[]): Change accordingly
4227 (arm_init_neon_builtins): Change accordingly.
4228 (neon_builtin_compare): Remove.
4229 (locate_neon_builtin_icode): Remove.
4230 (arm_expand_neon_builtin): Change accordingly.
4231
4232 * arm.h (enum arm_builtins): Move to ...
4233 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4234
4235 * arm.c (arm_builtin_decl): Declare.
4236 (TARGET_BUILTIN_DECL): Define.
4237 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4238 (arm_builtin_decls[]): New.
4239 (arm_init_neon_builtins): Store builtin declarations in
4240 arm_builtin_decls[].
4241 (arm_init_tls_builtins): Likewise.
4242 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
4243 (arm_builtin_decl): New.
4244
75e802cc
RG
42452011-04-18 Richard Guenther <rguenther@suse.de>
4246
4247 * tree.c (upper_bound_in_type): Build properly canonicalized
4248 INTEGER_CSTs.
4249 (lower_bound_in_type): Likewise.
4250
3b45a007
RG
42512011-04-18 Richard Guenther <rguenther@suse.de>
4252
4253 * gimple.h (gimple_call_addr_fndecl): New function.
4254 (gimple_call_fndecl): Use it.
4255 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4256 for direct calls.
4257 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4258 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4259
d25a79ea
RG
42602011-04-18 Richard Guenther <rguenther@suse.de>
4261
4262 PR middle-end/48650
4263 * tree.c (build_string): STRING_CST is now derived from tree_typed.
4264
7d5fc814
EB
42652011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4266
4267 PR lto/48492
4268 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4269 DECL_IN_CONSTANT_POOL without RTL.
4270
7e7cfcf6
UW
42712011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
4272 Ira Rosen <ira.rosen@linaro.org>
4273
4274 PR target/48252
4275 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4276 to match neon_vzip/vuzp/vtrn_internal.
4277 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4278 outputs explicitly dependent on both inputs.
4279 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4280
49eab32e
JJ
42812011-04-18 Jakub Jelinek <jakub@redhat.com>
4282
4283 PR tree-optimization/48616
4284 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4285 whether the shift is by scalar or vector based on whether all SLP
4286 scalar stmts have the same rhs.
4287
e54170f4
CLT
42882011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
4289
4290 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4291 memory operands.
4292
b14ee6c9
RS
42932011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4294
4295 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4296 registers.
4297
10158cd3
JH
42982011-04-17 Jan Hubicka <jh@suse.cz>
4299
4300 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
4301 * cgrpahunit.c (cgraph_finalize_function): Do not set
4302 finalized_by_frontend.
10158cd3
JH
4303 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4304 finalized_by_frontend.
4305
2e9bb6ba
JH
43062011-04-17 Jan Hubicka <jh@suse.cz>
4307
4308 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4309 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4310 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
4311 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4312 method.
2e9bb6ba
JH
4313 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4314 gimple-fold.c
4315 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4316
beb628e1
EB
43172011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4318
4319 PR lto/48538
4320 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4321 is non-null before accessing it.
4322 (input_cgraph): Remove trailing spaces.
4323
3e2fdd24
RE
43242011-04-17 Revital Eres <revital.eres@linaro.org>
4325
4326 * params.def (sms-min-sc): New param flag.
4327 * modulo-sched.c (sms_schedule): Use it.
4328 * doc/invoke.texi (sms-min-sc): Document it.
4329
4c0f7679
JH
43302011-04-17 Jan Hubicka <jh@suse.cz>
4331
4332 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4333 present, also set gimple_call_set_cannot_inline.
4334 * ipa-inline.c: Update toplevel comment.
4335 (MAX_TIME): Remove.
4336 (cgraph_clone_inlined_nodes): Fix linebreaks.
4337 (cgraph_check_inline_limits): Restructure to ...
4338 (caller_growth_limits): ... this one; be more tolerant
4339 on growth in nested inline chains; add explanatory comment;
4340 fix stack accounting thinko introduced by previous patch.
4341 (cgraph_default_inline_p): Remove.
4342 (report_inline_failed_reason): New function.
4343 (can_inline_edge_p): New function.
4344 (can_early_inline_edge_p): New function.
4345 (leaf_node_p): Move upwards in file.
4346 (want_early_inline_function_p): New function.
4347 (want_inline_small_function_p): New function.
4348 (want_inline_self_recursive_call_p): New function.
4349 (cgraph_edge_badness): Rename to ...
4350 (edge_badness) ... this one; fix linebreaks.
4351 (update_edge_key): Update call of edge_baddness; add
4352 detailed dump about queue updates.
4353 (update_caller_keys): Use can_inline_edge_p and
4354 want_inline_small_function_p.
4355 (cgraph_decide_recursive_inlining): Rename to...
4356 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
4357 want_inline_self_recursive_call_p; simplify and remove no longer
4358 valid FIXME.
4c0f7679
JH
4359 (cgraph_set_inline_failed): Remove.
4360 (add_new_edges_to_heap): Use can_inline_edge_p and
4361 want_inline_small_function_p.
4362 (cgraph_decide_inlining_of_small_functions): Rename to ...
4363 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
4364 can/want predicates; cleanup debug ouput; work edges till fibheap
4365 is exhausted and do not stop once unit growth is reached; remove
4366 later loop processing remaining edges.
4c0f7679
JH
4367 (cgraph_flatten): Rename to ...
4368 (flatten_function): ... this one; use can_inline_edge_p
4369 and can_early_inline_edge_p predicates.
4370 (cgraph_decide_inlining): Rename to ...
4371 (ipa_inline): ... this one; remove unreachable nodes before
4372 inlining functions called once; simplify the pass.
4373 (cgraph_perform_always_inlining): Rename to ...
4374 (inline_always_inline_functions): ... this one; use
f60c2554 4375 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
4376 (cgraph_decide_inlining_incrementally): Rename to ...
4377 (early_inline_small_functions): ... this one; simplify
4378 using new predicates; cleanup; make dumps prettier.
4379 (cgraph_early_inlining): Rename to ...
4380 (early_inliner): newer inline regular functions into always-inlines;
4381 fix updating of call stmt summaries.
4382 (pass_early_inline): Update for new names.
4383 (inline_transform): Fix formating.
4384 (gate_cgraph_decide_inlining): Rename to ...
4385 (pass_ipa_inline): ... this one.
4386 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4387 * ipa-inline-analysis.c (dump_inline_summary): Update.
4388 (compute_inline_parameters): Do not compute disregard_inline_limits;
4389 look for mismatching arguments.
4390 (estimate_growth): Fix handlig of non-trivial self recursion.
4391 (inline_read_summary): Do not read info->disregard_inline_limits.
4392 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
4393 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4394 and move all checks into can_inline_edge_p predicate; re-enable code
4395 comparing optimization levels.
4c0f7679
JH
4396 (expand_call_inline): Do not test inline_forbidden_into_p.
4397 * Makefile.in (ipa-inline.o): Update arguments.
4398
54333b7c
RE
43992011-04-17 Revital Eres <revital.eres@linaro.org>
4400
4401 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4402
42c2bf92
RE
44032011-04-17 Revital Eres <revital.eres@linaro.org>
4404
4405 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4406
b183e9e0
MM
44072011-04-17 Michael Matz <matz@suse.de>
4408
4409 PR tree-optimization/48622
4410 PR lto/48645
4411 * ipa-inline-analysis.c (inline_read_summary): Read size/time
4412 in same order as they're written.
4413
b8a17fa2
JDA
44142011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4415
4416 * config/pa/predicates.md: Reorganize and simplify predicates.
4417 Eliminate duplicate code checks.
4418 (arith_operand): Rename to arith14_operand
4419 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4420 * config/pa/pa.md: Use renamed operands.
4421 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4422 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4423 arith11_operand, adddi3_operand, indexed_memory_operand,
4424 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4425 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4426 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4427 move_dest_operand, move_src_operand, prefetch_cc_operand,
4428 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4429 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4430 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4431 div_operand, int5_operand, movb_comparison_operator,
4432 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4433 arith_double_operand, ireg_operand, lhs_lshift_operand,
4434 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4435 integer_store_memory_operand): Likewise.
4436 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4437 (integer_store_memory_operand, read_only_operand,
4438 function_label_operand, borx_reg_operand,
4439 non_hard_reg_operand): Likewise.
4440 (eq_neq_comparison_operator): Delete unused operator.
4441 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4442 function_label_operand.
4443 (emit_move_sequence): Likewise.
4444
8dfb9f16
UB
44452011-04-16 Uros Bizjak <ubizjak@gmail.com>
4446
4447 * config/i386/sse.md (sseunpackmode): New mode attribute.
4448 (ssepackmode): Ditto.
4449 (vec_pack_trunc_<mode>): Macroize expander from
4450 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4451 (vec_unpacks_lo_<mode>): Macroize expander from
4452 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4453 (vec_unpacks_hi_<mode>): Macroize expander from
4454 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4455 (vec_unpacku_lo_<mode>): Macroize expander from
4456 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4457 (vec_unpacku_hi_<mode>): Macroize expander from
4458 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4459 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4460 ix86_expand_sse4_unpack.
4461 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4462
e7f23018
JH
44632011-04-16 Jan Hubicka <jh@suse.cz>
4464
4465 * cgraphbuild.c: Include ipa-inline.h.
4466 (reset_inline_failed): Use initialize_inline_failed.
4467 * cgraph.c: Include ipa-inline.h.
4468 (cgraph_create_node_1): Do not initialize estimated_growth.
4469 (initialize_inline_failed): More to ipa-inline-analysis.c
4470 (dump_cgraph_node): Do not dump inline flags.
4471 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4472 and disregard_inline_limits flags.
4473 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4474 time, size, estimated_growth.
8dfb9f16
UB
4475 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4476 Update.
e7f23018
JH
4477 * cgraphunit.c (cgraph_decide_is_function_needed): Use
4478 DECL_DISREGARD_INLINE_LIMITS.
4479 (cgraph_analyze_function): Do not initialize
4480 node->local.disregard_inline_limits.
4481 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4482 inlinable, versionable and disregard_inline_limits.
4483 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
4484 cgraph_check_inline_limits, cgraph_default_inline_p,
4485 cgraph_edge_badness, update_caller_keys, update_callee_keys,
4486 add_new_edges_to_heap): Update.
4487 (cgraph_decide_inlining_of_small_function): Update; set
4488 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
4489 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4490 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
4491 * ipa-inline.h (inline_summary): Add inlinable, versionable,
4492 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4493 time, size and estimated_growth parameters.
e7f23018
JH
4494 (estimate_edge_growth): Update.
4495 (initialize_inline_failed): Declare.
4496 * ipa-split.c: Include ipa-inline.h
4497 (execute_split_functions): Update.
4498 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4499 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4500 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4501 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4502 estimated_growth to INT_MIN.
4503 (inline_node_duplication_hook): Likewise.
4504 (dump_inline_summary): Dump new fields.
4505 (compute_inline_parameters): Update.
4506 (estimate_edge_time, estimate_time_after_inlining,
4507 estimate_size_after_inlining, estimate_growth, inline_read_summary,
4508 inline_write_summary):
4509 (initialize_inline_failed): Move here from cgraph.c.
4510 * tree-sra.c: Include ipa-inline.h.
4511 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
4512 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4513 ipa-inline.h.
e7f23018 4514
e81b8564
UB
45152011-04-16 Uros Bizjak <ubizjak@gmail.com>
4516
4517 * config/i386/sse.md (V16): New mode iterator.
4518 (VI1, VI8): Ditto.
4519 (AVXMODEQI, AVXMODEDI): Remove.
4520 (sse2, sse3): New mode attribute.
4521 (mov<mode>): Use V16 mode iterator.
4522 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4523 (push<mode>1): Use V16 mode iterator.
4524 (movmisalign<mode>): Ditto.
4525 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4526 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4527 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4528 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4529 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4530 avx_movdqu<avxmodesuffix>.
4531 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4532 *avx_movdqu<avxmodesuffix>.
4533 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4534 avx_lddqu<avxmodesuffix>.
4535 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4536 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4537 avx_movnt<AVXMODEDI:mode>.
4538 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4539 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4540
4743d438
BS
45412011-04-16 Bernd Schmidt <bernds@codesourcery.com>
4542
4543 PR target/48629
4544 * haifa-sched.c (prune_ready_list, schedule_block): Use
4545 sched_pressure_p rather than flag_sched_pressure.
4546
748f7574 45472011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
4548
4549 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4550 cgraph_get_node instead of cgraph_get_create_node.
4551
2ba172e0
JJ
45522011-04-15 Jakub Jelinek <jakub@redhat.com>
4553
4554 * cfgexpand.c (expand_debug_expr): Use
4555 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4556
63d2a353
MM
45572011-04-15 Michael Matz <matz@suse.de>
4558
4559 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4560 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4561 * function.c (gimplify_parameters): Ditto.
4562 * gimplify.c (gimplify_vla_decl): Ditto.
4563
4564 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4565 (gimple_call_set_alloca_for_var): New inline function.
4566 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
4567 * gimple.c (gimple_build_call_from_tree): Remember
4568 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
4569 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4570
4571 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4572 calls if they were for VLA objects.
4573
dee74c34
MJ
45742011-04-15 Martin Jambor <mjambor@suse.cz>
4575
4576 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4577 of ADR_EXPRs.
4578
8e5837bc
MJ
45792011-04-15 Martin Jambor <mjambor@suse.cz>
4580
4581 PR middle-end/48601
4582 * tree-emutls.c (lower_emutls_function_body): Call
4583 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
4584 result is non-NULL.
4585
0dc33c3c
NP
45862011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
4587
4588 * c-decl.c (detect_field_duplicates): Call
4589 objc_detect_field_duplicates instead of objc_get_interface_ivars.
4590
edcdea5b
NF
45912011-04-15 Nathan Froyd <froydnj@codesourcery.com>
4592
4593 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4594 * gimple.c (gimple_asm_clobbers_memory_p): Define.
4595 * ipa-pure-const.c (check_stmt): Call it.
4596 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4597
8456558d
RG
45982011-04-15 Richard Guenther <rguenther@suse.de>
4599
4600 PR tree-optimization/48290
4601 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4602 Properly decide inhibiting propagation based on the valueized
4603 operand. Do loop-closed SSA form preserving here ...
4604 (init_copy_prop): ... not here.
4605
266446be
L
46062011-04-15 H.J. Lu <hongjiu.lu@intel.com>
4607
4608 PR target/48612
4609 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4610 (*ieee_smax<mode>3): Likewise.
4611
17465c6e
AK
46122011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4613
4614 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4615 Replace match_operand with match_dup for the third operand in
4616 these expanders.
4617
bce204e5
MK
46182011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4619
4620 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4621 to track processing of conditionals. Update all callers.
4622 (try_combine, simplify_if_then_else): Update.
4623
3162fdf4
MK
46242011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4625
4626 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4627 -fsched-pressure.
4628
79002a57 46292011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 4630
79002a57
GJL
4631 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4632 instead of match_operand for operand 3.
4633
4fd3a105
RS
46342011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
4635
4636 * recog.h (insn_operand_data): Add an "allows_mem" field.
4637 * genoutput.c (output_operand_data): Initialize it.
4638 * optabs.c (maybe_legitimize_operand_same_code): New function.
4639 (maybe_legitimize_operand): Use it when matching the original
4640 op->value.
4641
ad19c4be
EB
46422011-04-15 Eric Botcazou <ebotcazou@adacore.com>
4643
4644 * gimplify.c: Fix issues in comments throughout.
4645 (voidify_wrapper_expr): Fix long line.
4646 (build_stack_save_restore): Likewise.
4647 (gimplify_loop_expr): Likewise.
4648 (gimplify_compound_lval): Likewise.
4649 (gimplify_init_ctor_eval): Likewise.
4650 (gimplify_modify_expr_rhs): Likewise.
4651 (omp_notice_threadprivate_variable): Likewise.
4652
b25aa0e8 46532011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 4654
b25aa0e8
EB
4655 * cfgexpand.c (expand_call_stmt): Convert the function type to the
4656 original one if this is not a builtin function.
e7925582 4657
09db7afe
JJ
46582011-04-14 Jakub Jelinek <jakub@redhat.com>
4659
4660 PR target/48605
4661 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4662 offset it as needed based on top 2 bits in operands[3], change
4663 MEM mode to SFmode and mask those 2 bits away from operands[3].
4664
c59633d9
NP
46652011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4666
4667 * c-parser.c (c_parser_objc_protocol_definition): Updated for
4668 change from objc_declare_protocols() to objc_declare_protocol().
4669
5e60198b
UB
46702011-04-14 Uros Bizjak <ubizjak@gmail.com>
4671
4672 * config/i386/sse.md (sse4_1): New mode attribute.
4673 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4674 avx_blend<ssemodesuffix><avxmodesuffix> and
4675 sse4_1_blend<ssemodesuffix> using VF mode iterator.
4676 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4677 avx_blendv<ssemodesuffix><avxmodesuffix> and
4678 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4679 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4680 avx_dp<ssemodesuffix><avxmodesuffix> and
4681 sse4_1_dp<ssemodesuffix> using VF mode iterator.
4682 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4683 (sse4_1_packusdw): Merge with *avx_packusdw.
4684 (sse4_1_pblendvb): Merge with *avx_pblendvb.
4685 (sse4_1_pblendw): Merge with *avx_pblendw.
4686 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4687 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4688 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4689 VF mode iterator.
4690 (sse4_1_round<ssescalarmodesuffix>): Merge with
4691 *avx_round<ssescalarmodesuffix>.
4692 (aesenc): Merge with *avx_aesenc.
4693 (aesenclast): Merge with *avx_aesenclast.
4694 (aesdec): Merge with *avx_aesdec.
4695 (aesdeclast): Merge with *avx_aesdeclast.
4696 (pclmulqdq): Merge with *pclmulqdq.
4697 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4698 New predicate.
4699 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4700
6f197850
L
47012011-04-14 H.J. Lu <hongjiu.lu@intel.com>
4702
4703 PR middle-end/48608
4704 * cfgexpand.c (get_decl_align_unit): Renamed to ...
4705 (align_local_variable): This. Update DECL_ALIGN.
4706 (add_stack_var): Updated.
4707 (expand_one_stack_var): Likewise.
4708
4a5ba3ed
RG
47092011-04-14 Richard Guenther <rguenther@suse.de>
4710
4711 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4712 Remove.
4713 (dse_initialize_block_local_data, dse_leave_block,
4714 record_voperand_set, get_stmt_uid): Likewise.
4715 (dse_possible_dead_store_p): Allow any kind of killing stmt.
4716 (dse_optimize_stmt): Remove voperand set handling code.
4717 Simplify and improve to handle any kind of killing stmt.
4718 (dse_record_phi): Remove.
4719 (dse_enter_block): Simplify.
4720 (tree_ssa_dse): Likewise.
4721 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4722
10a5dd5d
JH
47232011-04-14 Jan Hubicka <jh@suse.cz>
4724
4725 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4726 * cgraph.h (struct inline_summary): Move to ipa-inline.h
4727 (cgraph_local_info): Remove inline_summary.
4728 * ipa-cp.c: Include ipa-inline.h.
4729 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4730 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4731 accesor.
4732 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4733 (input_overwrite_node): Do not set inline summary.
4734 (input_node): Do not stream inline summary.
4735 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4736 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4737 growth; we do not have inline parameters computed for that anyway.
4738 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4739 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4740 (inline_summary_t): New type and VECtor.
4741 (debug_inline_summary, dump_inline_summaries): Declare.
4742 (inline_summary): Use VOCtor.
4743 (estimate_edge_growth): Kill hack computing call stmt size directly.
4744 * lto-section-in.c (lto_section_name): Add inline section.
4745 * ipa-inline-analysis.c: Include lto-streamer.h
4746 (node_removal_hook_holder, node_duplication_hook_holder): New holders
4747 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4748 (inline_summary_vec): Define.
4749 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4750 dump_inline_summaries): New functions.
5e60198b
UB
4751 (estimate_function_body_sizes): Properly compute size/time of outgoing
4752 calls.
4753 (compute_inline_parameters): Alloc inline_summary; do not compute
4754 size/time of incomming calls.
10a5dd5d
JH
4755 (estimate_edge_time): Avoid missing time summary hack.
4756 (inline_read_summary): Read inline summary info.
4757 (inline_write_summary): Write inline summary info.
4758 (inline_free_summary): Free all hooks and inline summary vector.
4759 * lto-streamer.h: Add LTO_section_inline_summary section.
4760 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4761 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4762
b602d918
RS
47632011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4764
4765 * tree-vectorizer.h (vect_strided_store_supported): Add a
4766 HOST_WIDE_INT argument.
4767 (vect_strided_load_supported): Likewise.
4768 (vect_permute_store_chain): Return void.
4769 (vect_transform_strided_load): Likewise.
4770 (vect_permute_load_chain): Delete.
4771 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4772 count argument. Check that the count is a power of two.
4773 (vect_strided_load_supported): Likewise.
4774 (vect_permute_store_chain): Return void. Update after above changes.
4775 Assert that the access is supported.
4776 (vect_permute_load_chain): Likewise.
4777 (vect_transform_strided_load): Return void.
4778 * tree-vect-stmts.c (vectorizable_store): Update calls after
4779 above interface changes.
4780 (vectorizable_load): Likewise.
4781 (vect_analyze_stmt): Don't check for strided powers of two here.
4782
ab4472fa
RG
47832011-04-14 Richard Guenther <rguenther@suse.de>
4784
4785 PR tree-optimization/48590
4786 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4787 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4788 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4789 BUILT_IN_STACK_SAVE.
4790 * tree-ssa-dce.c (propagate_necessity): Handle
4791 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4792
32dabdaf
NP
47932011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4794
4795 * c-parser.c (c_parser_objc_class_declaration): Updated call to
4796 objc_declare_class.
4797
daade206
RG
47982011-04-14 Richard Guenther <rguenther@suse.de>
4799
4800 * tree.h (get_object_alignment_1): Declare.
4801 * builtins.c (get_object_alignment_1): Split out worker from ...
4802 (get_object_alignment): ... here.
4803 * fold-const.c (get_pointer_modulus_and_residue): Use
4804 get_object_alignment_1.
4805
920e8172
RS
48062011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4807
4808 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4809 type parameter.
4810 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4811 parameter. Generalise code to handle arrays as well as vectors.
4812 (vect_setup_realignment): Update accordingly.
4813 * tree-vect-stmts.c (vectorizable_store): Likewise.
4814 (vectorizable_load): Likewise.
4815
5ce1ee7f
RS
48162011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4817
4818 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4819 within the per-copy loop.
4820
6438fe33 48212011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
4822
4823 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4824 in the dump file.
4825
6438fe33 48262011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
4827
4828 * doc/options.texi (Negative): Explicitly mention that the
4829 Negative chain must be circular.
4830
61e46a7d
NF
48312011-04-14 Nathan Froyd <froydnj@codesourcery.com>
4832
4833 * function.h (block_chainon): Declare.
4834 * function.c (block_chainon): Define.
4835
43ea6502 48362011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 4837 Eric Weddington <eric.weddington@atmel.com>
748f7574 4838 Georg-Johann Lay <avr@gjlay.de>
5e60198b 4839
f60c2554 4840 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
4841 New Includes
4842 (avr_init_builtins, avr_expand_builtin,
4843 avr_expand_delay_cycles, avr_expand_unop_builtin,
4844 avr_expand_binop_builtin ): New functions.
4845 (avr_builtin_id): New enum
4846 (struct avr_builtin_description): New struct
4847 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4848 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 4849
43ea6502 4850 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 4851 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
4852 UNSPECV_DELAY_CYCLES): new enumeration values
4853 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4854 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4855 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4856 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4857 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4858 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4859 "fmulsu"): New insns
5e60198b 4860
43ea6502
AS
4861 * config/avr/avr-c.c: fix line endings
4862 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4863 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4864 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4865 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4866 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 4867
43ea6502
AS
4868 * doc/extend.texi (AVR Built-in Functions): New node
4869 (Target Builtins): Add documentation of AVR
4870 built-in functions.
4871
8a9b55f3
GJL
48722011-04-14 Georg-Johann Lay <avr@gjlay.de>
4873
4874 PR target/44643
4875 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4876 alone. Error if non-const data has attribute progmem.
4877
94bd1825
NF
48782011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4879
4880 * tree.h (struct tree_constructor): Include tree_typed instead of
4881 tree_common.
4882 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4883 TS_TYPED instead of TS_COMMON.
4884
5e60198b 48852011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
4886
4887 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4888 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4889 (sse2_psadbw): Merge with *avx_psadbw.
4890 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4891 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4892 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4893 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4894 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4895 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4896 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4897 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4898 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4899 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4900 (ssse3_palignrti): Merge with *avx_palignrti.
4901
4b1a4694
NF
49022011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4903
4904 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4905 * tree-ssanames.c (fini_ssanames): VEC_free it.
4906 (make_ssa_name_fn): Update for VECness of free_ssanames.
4907 (release_ssa_name, release_dead_ssa_names): Likewise.
4908 * tree.h (struct tree_ssa_name): Include tree_typed instead of
4909 tree_common.
4910 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4911 TS_TYPED instead of TS_COMMON.
4912
4da3b811
NF
49132011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4914
4915 * postreload-gcse.c (gcse_after_reload_main): Add calls to
4916 statistics_counter_event.
4917 * tree-ssa-copyrename.c (stats): Define.
4918 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
4919 statistics_counter_event.
4920 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4921 (bswap_stats, widen_mul_stats): Define.
4922 (insert_reciprocals): Increment rdivs_inserted.
4923 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
4924 rfuncs_inserted. Add calls to statistics_counter_event.
4925 (execute_cse_sincos_1): Increment inserted.
4926 (execute_cse_sincos): Zeroize sincos_stats. Add call to
4927 statistics_counter_event.
4928 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
4929 of bswap_stats. Add calls to statistics_counter_event.
4930 (convert_mult_to_widen): Increment widen_mults_inserted.
4931 (convert_plusminus_to_widen): Increment maccs_inserted.
4932 (convert_mult_to_fma): Increment fmas_inserted.
4933 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
4934 calls to statistics_counter_event.
4935
89fa552a
VM
49362011-04-13 Vladimir Makarov <vmakarov@redhat.com>
4937
4938 PR rtl-optimization/48455
4939 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4940 `temp_costs->mem_cost'.
4941
03dfc36d
JH
49422011-04-13 Jan Hubicka <jh@suse.cz>
4943
4944 * ipa-inline.h: New file.
4945 * ipa-inline-analysis.c: New file. Broken out of ...
4946 * ipa-inline.c: ... this file; update toplevel comment;
4947 include ipa-inline.h
4948 (inline_summary): Move to ipa-inline.h
4949 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4950 ipa-inline-analysis.c.
7d4f8d02
EB
4951 (cgraph_estimate_time_after_inlining): Rename to
4952 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
4953 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4954 to estimate_edge_growth.
4955 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4956 rename to estimate_size_after_inlining.
4957 (cgraph_mark_inline_edge): Update for new naming convention.
4958 (cgraph_check_inline_limits): Likewise.
4959 (cgraph_edge_badness): Likewise.
4960 (cgraph_decide_recursive_inlining): Likewise.
4961 (cgraph_decide_inlining_of_small_functions): Likewise.
4962 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
4963 (cgraph_estimate_growth): Rename to estimate_growth; move to
4964 ipa-inline-analysis.c.
03dfc36d
JH
4965 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4966 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4967 (compute_inline_parameters): Likewise.
4968 (compute_inline_parameters_for_current): Likewise.
4969 (pass_inline_parameters): Likewise.
4970 (inline_indirect_intraprocedural_analysis): Likewise.
4971 (analyze_function): Rename to inline_analyze_function; likewise.
4972 (add_new_function): Move to ipa-inline-analysis.c.
4973 (inline_generate_summary): Likewise.
4974 (inline_read_summary): Likewise.
4975 (inline_write_summary): Likewise.
4976 * Makefile.in (ipa-inline-analysis.c): New file.
4977
7673c962
RO
49782011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4979
4980 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4981 * configure: Regenerate.
4982
9698252f
NF
49832011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4984
4985 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4986 instead of tree_common.
4987 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4988 Likewise.
4989 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4990 TS_TYPED rather than TS_COMMON.
4991 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4992
3a7bfdd5
GJL
49932011-04-01 Georg-Johann Lay <avr@gjlay.de>
4994
4995 PR target/45263
86d83530
GJL
4996 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4997 r20 around calls of __tablejump_elpm__
3a7bfdd5 4998
20790697
JJ
49992011-04-13 Jakub Jelinek <jakub@redhat.com>
5000
5001 PR middle-end/48591
5002 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5003 NULL.
5004 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5005
094d7661
BS
50062011-04-13 Bernd Schmidt <bernds@codesourcery.com>
5007
5008 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5009 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5010 (cfi_vec): New typedef.
5011 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5012 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5013 (cie_cfi_vec): New static variable.
5014 (cie_cfi_head): Delete.
5015 (add_cfi): Accept a cfi_vec * as first argument. All callers and
5016 declaration changed. Use vector rather than list operations.
5017 (new_cfi): Don't initialize the dw_cfi_next field.
5018 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5019 rather than list operations.
5020 (lookup_cfa): Use vector rather than list operations.
5021 (output_cfis): New argument upto. Accept a cfi_vec rather than
5022 a dw_cfi_ref list head as argument. All callers changed.
5023 Iterate over the vector using upto as a maximum index.
5024 (output_all_cfis): New static function.
5025 (output_fde): Use vector rather than list operations. Use the
5026 new upto argument for output_cfis rather than manipulating a
5027 list.
5028 (dwarf2out_begin_prologue): Change initializations to match
5029 new struct members.
5030 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5031 from the vector length rather than searching for the end of a list.
5032 Use output_all_cfis.
5033 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5034
673a5740
NC
50352011-04-13 Nick Clifton <nickc@redhat.com>
5036
5037 * config/rx/rx.md (movmemsi): Do not use this pattern when
5038 volatile pointers are involved.
5039
1ee8b298
UB
50402011-04-13 Uros Bizjak <ubizjak@gmail.com>
5041
5042 * config/i386/sse.md (pinsrbits): Remove.
5043 (sse2_packsswb): Merge with *avx_packsswb.
5044 (sse2_packssdw): Merge with *avx_packssdw.
5045 (sse2_packuswb): Merge with *avx_packuswb.
5046 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5047 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5048 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5049 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5050 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5051 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5052 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5053 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5054 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5055 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5056 (sse2_loadld): Merge with *avx_loadld.
5057 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5058 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5059 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5060 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5061 (vec_concatv2di): Merge with *vec_concatv2di_avx.
5062
81f653d6
NF
50632011-04-12 Nathan Froyd <froydnj@codesourcery.com>
5064
5065 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5066 calling TREE_CHAIN.
5067 * print-tree.c (print_node): Likewise.
5068 * tree-inline.c (copy_tree_r): Likewise.
5069 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5070 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5071 instead of TS_COMMON.
5072 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5073 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5074 (copy_node_stat): Zero TREE_CHAIN only if necessary.
5075 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5076 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5077 ...and these...
5078 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5079 * tree.h: ...here.
5080 (TREE_CHAIN): Check for a TS_COMMON structure.
5081 (TREE_TYPE): Check for a TS_TYPED structure.
5082
748f7574 50832011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
5084
5085 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5086 cgraph_get_create_node instead of cgraph_node.
5087
eb345401
NP
50882011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5089
5090 * c-parser.c (c_parser_initelt): Updated call to
5091 objc_build_message_expr.
5092 (c_parser_postfix_expression): Likewise.
5093
a6c46762
KT
50942011-04-12 Kai Tietz <ktietz@redhat.com>
5095
5096 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5097 MASK_MS_BITFIELD_LAYOUT bit.
5098
b4ccfed9
JJ
50992011-04-12 Jakub Jelinek <jakub@redhat.com>
5100
5101 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5102 assert it is always true.
5103 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5104 moves.
5105
0d8a2528
NP
51062011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5107
5108 * c-parser.c (c_lex_one_token): Rewritten conditional used when
5109 compiling Objective-C to be more efficient.
5110
06bd234a
AF
51112011-04-12 Axel Freyn <axel-freyn@gmx.de>
5112
5113 * opts-common.c (decode_cmdline_options_to_array): Remove variable
5114 argv_copied.
5115
28569ac3
RS
51162011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5117
5118 * recog.h, genoutput.c, optabs.c: Revert last patch.
5119
ae59e00d
RR
51202011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5121
81b1e7eb
UB
5122 PR target/48090
5123 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 5124
cff1b7e0
RS
51252011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5126
5127 * recog.h (insn_operand_data): Add an "allows_mem" field.
5128 * genoutput.c (output_operand_data): Initialize it.
5129 * optabs.c (maybe_legitimize_operand_same_code): New function.
5130 (maybe_legitimize_operand): Use it when matching the original
5131 op->value.
5132
77059241
RS
51332011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5134
5135 * genpreds.c (process_define_predicate): Move most processing
5136 to gensupport.c. Continue to validate the expression.
5137 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5138 (process_define_predicate): Move processing to gensupport.c.
5139 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5140 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5141 (compute_predicate_codes): Moved from genrecog.c. Add lineno
5142 argument.
5143 (valid_predicate_name_p): New function, split out from old
5144 genpreds.c:process_define_predicate.
5145 (process_define_predicate): New function, combining code from
5146 old genpreds.c and genrecog.c functions.
5147 (process_rtx): Call it for DEFINE_PREDICATE and
5148 DEFINE_SPECIAL_PREDICATE.
5149
6308e208
RS
51502011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5151
5152 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5153 size of a '%A' memory reference.
5154 (T_DREG, T_QREG): New neon_builtin_type_bits.
5155 (arm_init_neon_builtins): Assert that the load and store operands
5156 are neon_struct_operands.
5157 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5158 (NEON_ARG_MEMORY): New builtin_arg.
5159 (neon_dereference_pointer): New function.
5160 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5161 Handle NEON_ARG_MEMORY.
5162 (arm_expand_neon_builtin): Update after above interface changes.
5163 Use NEON_ARG_MEMORY for loads and stores.
5164 * config/arm/predicates.md (neon_struct_operand): New predicate.
5165 * config/arm/iterators.md (V_two_elem): Tweak formatting.
5166 (V_three_elem): Use BLKmode for accesses that have no associated mode.
5167 (V_four_elem): Tweak formatting.
5168 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5169 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5170 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5171 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5172 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5173 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5174 (neon_vst4<mode>): Replace pointer operand with a memory operand.
5175 Use %A in the output template.
5176 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5177 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5178 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5179 the width of the memory access. Remove post-increment.
5180 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5181
e5db8f2f
NC
51822011-04-12 Nick Clifton <nickc@redhat.com>
5183
5184 * config/v850/v850.c (expand_prologue): Do not use the CALLT
5185 instruction for interrupt handlers if the target is the basic V850
5186 architecture.
5187 (expand_epilogue): Likewise.
5188
74f091d6
JJ
51892011-04-12 Jakub Jelinek <jakub@redhat.com>
5190
5191 PR rtl-optimization/48549
5192 * combine.c (propagate_for_debug): Also stop after BB_END of
5193 this_basic_block. Process LAST and just stop processing after it.
5194 (combine_instructions): If last_combined_insn has been deleted,
5195 set last_combined_insn to its PREV_INSN.
5196
f20ca725
RG
51972011-04-12 Richard Guenther <rguenther@suse.de>
5198
5199 PR tree-optimization/46076
5200 * gimple.h (struct gimple_statement_call): Add fntype field.
5201 (gimple_call_fntype): Adjust.
5202 (gimple_call_set_fntype): New function.
5203 * gimple.c (gimple_build_call_1): Set the call function type.
5204 * gimplify.c (gimplify_call_expr): Preserve the function
5205 type the frontend used for the call.
5206 (gimplify_modify_expr): Likewise.
5207 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5208 function type.
5209 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5210 function type.
5211 * tree-ssa.c (useless_type_conversion_p): Function pointer
5212 conversions are useless.
5213
a358e188
MJ
52142011-04-12 Martin Jambor <mjambor@suse.cz>
5215
5216 * cgraph.h (cgraph_node): Remove function declaration.
5217 (cgraph_create_node): Declare.
5218 (cgraph_get_create_node): Likewise.
5219 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5220 Updated all callers.
5221 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5222 the decl does not already exist. Call cgraph_get_create_node instead
5223 of cgraph_node.
5224 (cgraph_get_create_node): New function.
5225 (cgraph_same_body_alias): Update comment.
5226 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5227 assert it does not return NULL.
5228 (cgraph_update_edges_for_call_stmt): Likewise.
5229 (cgraph_clone_edge): Likewise.
5230 (cgraph_create_virtual_clone): Likewise.
5231 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5232 instead of cgraph_node.
5233 (cgraph_add_new_function): Call cgraph_create_node or
5234 cgraph_get_create_node instead of cgraph_node.
5235 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5236 instead of cgraph_node.
5237 (record_eh_tables): Likewise.
5238 (mark_address): Likewise.
5239 (mark_load): Likewise.
5240 (build_cgraph_edges): Call cgraph_get_create_node instead
5241 of cgraph_node.
5242 (rebuild_cgraph_edges): Likewise.
5243 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5244 instead of cgraph_node.
5245 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5246 cgraph_node.
5247 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5248 cgraph_create_node instead of cgraph_node.
5249 * c-decl.c (finish_function): Call cgraph_get_create_node instead
5250 of cgraph_node.
5251 * lto-cgraph.c (input_node): Likewise.
5252 * lto-streamer-in.c (input_function): Likewise.
5253 * varasm.c (mark_decl_referenced): Likewise.
5254 (assemble_alias): Likewise.
5255
fe660d7b
MJ
52562011-04-12 Martin Jambor <mjambor@suse.cz>
5257
5258 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5259 instead of cgraph_node and assert it does not return NULL.
5260 * lto-streamer-in.c (lto_read_body): Likewise.
5261 * omp-low.c (new_omp_context): Likewise.
5262 (create_task_copyfn): Likewise.
5263 * tree-emutls.c (lower_emutls_function_body): Likewise.
5264 * matrix-reorg.c (transform_allocation_sites): Likewise.
5265
bae5cddf
JJ
52662011-04-12 Jakub Jelinek <jakub@redhat.com>
5267
5268 PR c/48552
5269 * c-typeck.c (build_asm_expr): Error out on attempts to use
5270 void type outputs or inputs for constraints that allow reg or
5271 don't allow memory.
5272
06eb52ca
CLT
52732011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
5274 Richard Earnshaw <rearnsha@arm.com>
5275
5276 PR target/48250
5277 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5278 to use sign-magnitude offsets. Reject unsupported unaligned
5279 cases. Add detailed description in comments.
5280 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5281 condition from TARGET_32BIT to TARGET_ARM.
5282
648a616b
NF
52832011-04-11 Nathan Froyd <froydnj@codesourcery.com>
5284
5285 * tree.h (struct typed_tree): New.
5286 (struct tree_common): Include it instead of tree_base.
5287 (TREE_TYPE): Update for new location of type field.
5288 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5289 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5290 (union tree_node): Add typed field.
5291 * treestruct.def (TS_TYPED): New.
5292 * lto-streamer.c (check_handled_ts_structures): Handle it.
5293 * tree.c (MARK_TS_TYPED): New macro.
5294 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5295
1e6d1da0
EB
52962011-04-11 Eric Botcazou <ebotcazou@adacore.com>
5297
5298 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5299 (force_nonfallthru): Do not alter the loop nest if no basic block
5300 was created.
5301
53022011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
5303
5304 * config/i386/sse.md (VI): New mode iterator.
5305 (SSEMODEI): Remove.
5306 (AVX256MODEI): Ditto.
5307 (AVXMODEF4P): Ditto.
5308 (avxvecpsmode): Ditto.
5309 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
5310 (sse2_andnot<mode>3): New expander.
5311 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5312 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
5313 (<any_logic:code><mode>3): Use VI mode iterator.
5314 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5315 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
5316 (*andnottf3): Handle AVX three-operand constraints.
5317 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5318
b1372d5d 53192011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 5320 Robert Millan <rmh@gnu.org>
b1372d5d
JM
5321
5322 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5323 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5324 GNU_USER_DYNAMIC_LINKER64): Define.
5325 (REG_NAME): Don't undefine.
5326 (MD_UNWIND_SUPPORT): Undefine.
5327 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5328 (REG_NAME): Don't undefine.
5329 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 5330 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 5331
761c0c6e
JM
53322011-04-11 Joseph Myers <joseph@codesourcery.com>
5333
5334 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5335 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5336
26e0228f
XDL
53372011-04-11 Xinliang David Li <davidxl@google.com>
5338
5339 * value-profile.c (check_ic_target): New function.
5340 (gimple_ic_transform): Sanity check indirect call target.
5341 * gimple-low.c (gimple_check_call_args): Interface change.
5342 (gimple_check_call_matching_types): New function.
5343 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
5344
53452011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
5346
5347 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5348 tree-pretty-print.h & realmpfr.h.
5349
a58dfa49
VM
53502011-04-11 Vladimir Makarov <vmakarov@redhat.com>
5351
5352 PR middle-end/48464
5353 * ira.c (setup_pressure_classes): Fix typo in loop condition.
5354 (setup_allocno_and_important_classes): Ditto.
5355
107fd1c1
JM
53562011-04-11 Joseph Myers <joseph@codesourcery.com>
5357
5358 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5359 GNU_USER_DYNAMIC_LINKER.
5360 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5361 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5362 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5363 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5364 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5365 GNU_USER_TARGET_OS_CPP_BUILTINS.
5366 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5367 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5368 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5369 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5370 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5371 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5372 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5373 GNU_USER_TARGET_OS_CPP_BUILTINS.
5374 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5375 GNU_USER_DYNAMIC_LINKER.
5376 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5377 GNU_USER_TARGET_OS_CPP_BUILTINS.
5378 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5379 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5380 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5381 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5382 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5383 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5384 GNU_USER_DYNAMIC_LINKER64): Remove.
5385 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5386 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5387 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5388 GNU_USER_DYNAMIC_LINKER.
5389 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5390 GNU_USER_TARGET_OS_CPP_BUILTINS.
5391 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5392 GNU_USER_TARGET_OS_CPP_BUILTINS.
5393 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5394 to GNU_USER_TARGET_OS_CPP_BUILTINS.
5395 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5396 GNU_USER_TARGET_OS_CPP_BUILTINS.
5397 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5398 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5399 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5400 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5401 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5402 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5403 GNU_USER_DYNAMIC_LINKER.
5404 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5405 GNU_USER_TARGET_OS_CPP_BUILTINS.
5406 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5407 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5408 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5409 GNU_USER_DYNAMIC_LINKER.
5410 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5411 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5412 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5413 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5414 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5415 GNU_USER_DYNAMIC_LINKER.
5416 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5417 GNU_USER_DYNAMIC_LINKERN32.
5418 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5419 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
5420 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
5421 GNU_USER_DYNAMIC_LINKER32.
5422 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5423 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5424 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5425 GNU_USER_DYNAMIC_LINKER.
5426 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5427 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5428 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5429 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5430 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
5431 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5432 GNU_USER_DYNAMIC_LINKER32.
5433 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5434 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5435 GNU_USER_DYNAMIC_LINKER.
5436 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5437 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5438 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5439 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
5440 GNU_USER_DYNAMIC_LINKER64.
5441 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5442 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5443 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5444 GNU_USER_DYNAMIC_LINKER.
5445 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5446 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5447 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5448 GNU_USER_DYNAMIC_LINKER.
5449 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5450 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5451 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5452 GNU_USER_DYNAMIC_LINKER32.
5453 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5454 GNU_USER_DYNAMIC_LINKER64.
5455 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5456 GNU_USER_DYNAMIC_LINKER64.
5457 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5458 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5459 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5460 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5461 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 5462
e24609cf
JM
54632011-04-11 Joseph Myers <joseph@codesourcery.com>
5464
5465 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
5466 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5467 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5468 GNU_USER_DYNAMIC_LINKER.
5469 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5470 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
5471 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5472 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5473 GNU_USER_DYNAMIC_LINKER64.
5474 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5475 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5476 GNU_USER_LINK_EMULATION.
5477 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5478 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5479 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5480 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5481 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5482 CPP_SPEC, CC1_SPEC): Remove.
5483 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5484 (GNU_USER_DYNAMIC_LINKER): Define.
5485 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5486 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5487 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5488 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5489 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5490 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5491 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5492 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5493 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5494 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5495 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5496 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5497 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5498 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5499 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5500 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5501 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5502 GNU_USER_DYNAMIC_LINKER.
5503 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5504 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5505 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5506 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5507 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5508 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5509 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5510 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5511 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 5512 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 5513
b8ce4e94
KT
55142011-04-11 Kai Tietz <ktietz@redhat.com>
5515
5516 PR target/9601
5517 PR target/11772
5518 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5519 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5520 comment.
5521 (ix86_is_msabi_thiscall): Removed.
5522 (ix86_is_type_thiscall): Likewise.
5523 (ix86_get_callcvt): New function.
5524 (ix86_comp_type_attributes): Simplify check.
5525 (ix86_function_regparm): Use ix86_get_callcvt for calling
5526 convention attribute checks.
5527 (ix86_return_pops_args): Likewise.
5528 (ix86_static_chain): Likewise.
5529 (x86_this_parameter): Likewise.
5530 (x86_output_mi_thunk): Likewise.
5531 (ix86_function_type_abi): Optimize check for types without attributes.
5532 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5533 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5534 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5535 by flag-values.
5536 (IX86_BASE_CALLCVT): Helper macro.
5537 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5538 Use ix86_get_callcvt for calling convention attribute checks and avoid
5539 symbol-decoration for stdcall in TARGET_RTD case.
5540 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5541 Likewise.
5542 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5543 for declaration.
5544
798dd0ba
UB
55452011-04-11 Uros Bizjak <ubizjak@gmail.com>
5546
5547 * config/i386/sse.md (VI_128): New mode iterator.
5548 (VI12_128): Rename from SSEMODE12.
5549 (VI14_128): Rename from SSEMODE14.
5550 (VI124_128): New mode iterator.
5551 (VI24_128): Rename from SSEMODE248.
5552 (VI248_128): Rename from SSEMODE248.
5553 (SSEMODE124C8): Remove.
5554 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5555 (*sse2_<plusminus_insn><mode>3): Merge with
5556 *avx_<plusminus_insn><mode>3.
5557 (*mulv8hi3): Merge with *avx_mulv8hi3.
5558 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5559 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5560 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5561 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5562 (ashr<mode>3): Merge with *avx_ashr<mode>3.
5563 (lshr<mode>3): Merge with *avx_lshr<mode>3.
5564 (ashl<mode>3): Merge with *avx_ashl<mode>3.
5565 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5566 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5567 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5568 (*<smaxmin:code>v8hi3): Ditto.
5569 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5570 (*<smaxmin:code>v16qi3): Ditto.
5571 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5572 (*sse2_eq<mode>3): Ditto.
5573 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5574 (*sse2_gt<mode>3): Ditto.
5575 (vcondv2di): Split out of vcond<mode>.
5576 (vconduv2di): Split out of vcondu<mode>.
5577
956011be
RG
55782011-04-11 Richard Guenther <rguenther@suse.de>
5579
5580 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5581 before calling tree_low_cst.
5582
e6313a78
RG
55832011-04-11 Richard Guenther <rguenther@suse.de>
5584
5585 * stor-layout.c (layout_type): Compute all array index size operations
5586 in the original type.
5587 (initialize_sizetypes): Add comment.
5588 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5589
e69d7376
JM
55902011-04-11 Joseph Myers <joseph@codesourcery.com>
5591
5592 * common.opt (Tbss=, Tdata=, Ttext=): New options.
5593
9f9ebcdf
MJ
55942011-04-11 Martin Jambor <mjambor@suse.cz>
5595
5596 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5597 of cgraph_node, handle NULL return value.
5598 (cgraph_global_info): Likewise.
5599 (cgraph_rtl_info): Likewise.
5600 * tree-inline.c (estimate_num_insns): Likewise.
5601 * gimplify.c (unshare_body): Likewise.
5602 (unvisit_body): Likewise.
5603 (gimplify_body): Likewise.
5604 * predict.c (optimize_function_for_size_p): Likewise.
5605 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5606 (call_may_clobber_ref_p_1): Likewise.
5607 * varasm.c (function_section_1): Likewise.
5608 (assemble_start_function): Likewise.
5609
581985d7
MJ
56102011-04-11 Martin Jambor <mjambor@suse.cz>
5611
5612 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5613 of cgraph_node.
5614 * final.c (rest_of_clean_state): Likewise.
5615 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5616 * passes.c (pass_init_dump_file): Likewise.
5617 (execute_all_ipa_transforms): Likewise.
5618 (function_called_by_processed_nodes_p): Likewise.
5619 * predict.c (maybe_hot_frequency_p): Likewise.
5620 (probably_never_executed_bb_p): Likewise.
5621 (compute_function_frequency): Likewise.
5622 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5623 (unnest_nesting_tree_1): Likewise.
5624 (lower_nested_functions): Likewise.
5625 * tree-optimize.c (execute_fixup_cfg): Likewise.
5626 (tree_rest_of_compilation): Likewise.
5627 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5628 * tree-sra.c (ipa_early_sra): Likewise.
5629 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5630 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5631 * ipa.c (record_cdtor_fn): Likewise.
5632 * ipa-inline.c (cgraph_early_inlining): Likewise.
5633 (compute_inline_parameters_for_current): Likewise.
5634 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5635 * ipa-pure-const.c (local_pure_const): Likewise.
5636 * ipa-split.c (split_function): Likewise.
5637 (execute_split_functions): Likewise.
5638 * cgraphbuild.c (build_cgraph_edges): Likewise.
5639 (rebuild_cgraph_edges): Likewise.
5640 (cgraph_rebuild_references): Likewise.
5641 (remove_cgraph_callee_edges): Likewise.
5642 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5643 (verify_cgraph_node): Likewise.
5644 (cgraph_analyze_functions): Likewise.
5645 (cgraph_preserve_function_body_p): Likewise.
5646 (save_inline_function_body): Likewise.
5647 (save_inline_function_body): Likewise.
5648 * tree-inline.c (copy_bb): Likewise.
5649 (optimize_inline_calls): Likewise.
5650
57dbdc5a
MJ
56512011-04-11 Martin Jambor <mjambor@suse.cz>
5652
5653 PR tree-optimization/48195
5654 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5655 ipa_check_create_edge_args.
5656 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5657 ipa_check_create_edge_args.
5658 * ipa-inline.c (inline_generate_summary): Do not call
5659 ipa_check_create_node_params and ipa_check_create_edge_args.
5660 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5661 ipa_check_create_edge_args.
5662
d108e679
AS
56632011-04-09 Anatoly Sokolov <aesok@post.ru>
5664
5665 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5666 instead of loop.
5667 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5668 * function.c (record_hard_reg_sets): Likewise.
5669 * ira.c (compute_regs_asm_clobbered): Likewise.
5670 * sched-deps.c (sched_analyze_1): Likewise.
5671 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5672
3411bc59
XDL
56732011-04-09 Xinliang David Li <davidxl@google.com>
5674
5675 PR tree-optimization/PR48484
5676 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5677 has_valid_pred lazily
5678
b365495a
DS
56792011-04-09 Duncan Sands <baldrick@free.fr>
5680
5681 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5682
68bc509a
EB
56832011-04-08 Eric Botcazou <ebotcazou@adacore.com>
5684
5685 * combine.c (combine_validate_cost): Adjust comments. Set registered
5686 cost of I0 to zero at the end, if any.
5687
041e059f
XDL
56882011-04-08 Xinliang David Li <davidxl@google.com>
5689
68bc509a
EB
5690 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5691 to insane profile data.
041e059f 5692
444b3995
XDL
56932011-04-08 Xinliang David Li <davidxl@google.com>
5694
5695 * ipa-cp.c (ipcp_update_profiling): Correct
5696 negative scale factor due to insane profile data.
5697
6a801cf2
XDL
56982011-04-08 Xinliang David Li <davidxl@google.com>
5699
5700 * final.c (dump_basic_block_info): New function.
5701 (final): Dump basic block.
5702 (final_scan_insn): Remove old dump.
5703
d5f3624e
SK
57042011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
5705
68bc509a
EB
5706 PR target/47829
5707 * config.gcc (i386-*-freebsd): Disable unwind table generation for
5708 crtbegin/crtend.
d5f3624e 5709
42821aff
MM
57102011-04-08 Michael Matz <matz@suse.de>
5711
5712 PR middle-end/48389
5713 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5714 functions.
5715 (rebuild_jump_labels): Call rebuild_jump_labels_1.
5716 * rtl.h (rebuild_jump_labels_chain): Declare.
5717 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5718 insns inserted on edges.
5719
ad7be009
JM
57202011-04-08 Joseph Myers <joseph@codesourcery.com>
5721
5722 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5723 * config/arm/arm-arches.def: New.
5724 * config/arm/arm-opts.h: New.
5725 * config/arm/genopt.sh: New.
5726 * config/arm/arm-tables.opt: New (generated).
5727 * config/arm/arm.c (arm_handle_option, arm_target_help,
5728 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5729 (all_architectures): Get most table contents from arm-arches.def.
5730 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5731 arm_selected_tune here.
5732 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5733 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5734 (march=, mcpu=, mtune=): Use Enum and Var.
5735 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5736 (arm.o): Update dependencies.
ecbb6fb7 5737
42821aff 57382011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
5739
5740 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5741 of header_file.
5742 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5743 (write_typed_alloc_defns): Likewise.
5744 (main): Calls write_typed_alloc_defns with output_header.
5745
8d189b3f
VM
57462011-04-08 Vladimir Makarov <vmakarov@redhat.com>
5747
68bc509a 5748 PR inline-asm/48435
8d189b3f
VM
5749 * ira-color.c (setup_profitable_hard_regs): Add comments.
5750 Don't take prohibited hard regs into account.
5751 (setup_conflict_profitable_regs): Rename to
5752 get_conflict_profitable_regs.
5753 (check_hard_reg_p): Check prohibited hard regs.
5754
44f370bf
NF
57552011-04-08 Nathan Froyd <froydnj@codesourcery.com>
5756
5757 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5758 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5759 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5760
483d7ad3
JDA
57612011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5762
5763 PR target/48366
5764 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 5765 move from floating point to shift amount register.
483d7ad3
JDA
5766 (emit_move_sequence): Remove secondary reload support for floating
5767 point to shift amount amount register copies.
5768 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5769 amount register copies.
5770 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5771 register, return false if mode isn't a scalar integer mode.
5772 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5773
97e03fa1
RG
57742011-04-08 Richard Guenther <rguenther@suse.de>
5775
5776 * gimple.c (gimple_call_flags): Remove kludge.
5777
9d40778b
AM
57782011-04-08 Alexander Monakov <amonakov@ispras.ru>
5779
5780 * sel-sched.c (sel_region_init): Move call to
5781 sel_setup_region_sched_flags after setup_current_loop_nest.
5782
19ac7892
AB
57832011-04-08 Andrey Belevantsev <abel@ispras.ru>
5784
5785 PR rtl-optimization/48272
19ac7892
AB
5786 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5787 init_insn_reg_pressure_info. Adjust a caller.
5788 * sched-int.h (init_insn_reg_pressure_info): Declare.
5789 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5790 when sched-pressure is enabled.
5791
0f8c63cc
RG
57922011-04-08 Richard Guenther <rguenther@suse.de>
5793
5794 * gimple.c (gimple_set_modified): Do not queue calls to
5795 MODIFIED_NORETURN_CALLS here ...
5796 * tree-ssa-operands.c (update_stmt_operands): ... but here.
5797
5e5a425e
RG
57982011-04-08 Richard Guenther <rguenther@suse.de>
5799
5800 PR lto/48467
5801 * toplev.c (lang_dependent_init): Do not open asm_out_file
5802 in WPA mode, nor perform debug machinery initialization.
5803 (finalize): Do not unlink asm_out_file in WPA mode.
5804
9bfc434b
RG
58052011-04-08 Richard Guenther <rguenther@suse.de>
5806
5807 * gimple.h (gimple_call_fntype): New function.
5808 (gimple_call_return_type): Use it.
5809 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5810 * gimple-low.c (gimple_check_call_args): Likewise.
5811 * gimple.c (gimple_call_flags): Likewise.
5812 (gimple_call_arg_flags): Likewise.
5813 (gimple_call_return_flags): Likewise.
5814 * tree-cfg.c (verify_gimple_call): Likewise.
5815 (do_warn_unused_result): Likewise.
5816 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5817 * value-prof.c (gimple_ic_transform): Fix fndecl check.
5818
7c1f0b40
DM
58192011-04-08 Dmitry Melnik <dm@ispras.ru>
5820
5821 PR rtl-optimization/48235
5822 * sel-sched.c (code_motion_process_successors): Recompute the last
5823 insn in basic block if control flow changed.
5824 (code_motion_path_driver): Ditto. Recompute the first insn as well.
5825 Update condition for ilist_remove.
5826
ea4d630f
AM
58272011-04-08 Alexander Monakov <amonakov@ispras.ru>
5828
5829 PR rtl-optimization/48302
5830 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5831 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
5832 it to record added preheader blocks.
5833 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
5834 on to sel_add_loop_preheaders.
5835 (sel_region_init): Move call to setup_current_loop_nest after
5836 sel_init_bbs.
5837
07643d76
AM
58382011-04-08 Alexander Monakov <amonakov@ispras.ru>
5839
5840 PR target/48273
5841 * cfgloop.h (loop_has_exit_edges): New helper.
5842 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5843 non-clonable.
5844 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5845 that have no exit edges.
5846
1f3b2b4e
AM
58472011-04-08 Alexander Monakov <amonakov@ispras.ru>
5848
5849 PR rtl-optimization/48442
5850 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
5851 all callers. Adjust assert.
5852
554f1948
JJ
58532011-04-08 Jakub Jelinek <jakub@redhat.com>
5854
5855 PR tree-optimization/48377
5856 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5857 is_packed to true even for types with smaller TYPE_ALIGN than
5858 TYPE_SIZE.
5859
ddf72388
RG
58602011-04-08 Richard Guenther <rguenther@suse.de>
5861
5862 PR bootstrap/48513
5863 * doc/tm.texi: Re-generate.
5864
0c27e2d8
WG
58652011-04-08 Wei Guozhi <carrot@google.com>
5866
5867 PR target/47855
5868 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5869 * config/arm/arm.c (arm_attr_length_push_multi): New function.
5870 * config/arm/arm.md (*push_multi): Change the length computation to
5871 call a C function.
5872
07c5f94e
AS
58732011-04-08 Anatoly Sokolov <aesok@post.ru>
5874
5875 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5876 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5877 * doc/tm.texi: Regenerate.
5878 * system.h (ASM_OUTPUT_BSS): Poison.
5879 * varasm.c (asm_output_bss): Remove function.
5880 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 5881
07c5f94e
AS
5882 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5883 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5884 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5885 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5886 Likewise.
5887 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5888 Likewise.
5889 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5890 Likewise.
5891 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5892
5f2c36e1
JM
58932011-04-07 Joseph Myers <joseph@codesourcery.com>
5894
5895 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5896 EnumValue lines.
5897
39e7722b
JM
58982011-04-07 Joseph Myers <joseph@codesourcery.com>
5899
5900 * config/m68k/m68k.c (m68k_handle_option): Don't handle
5901 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5902 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5903 OPT_mcpu32.
5904 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5905 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5906 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5907 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5908 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5909 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5910 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5911 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5912 options. Don't map other m68k options manually. Don't handle
5913 old-style options as canonical.
5914 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 5915 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 5916
cf103ca4
EB
59172011-04-07 Eric Botcazou <ebotcazou@adacore.com>
5918
5919 * basic-block.h (force_nonfallthru): Move to...
5920 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5921 (force_nonfallthru): ...here.
5922 * cfghooks.c (force_nonfallthru): New function.
5923 * cfgrtl.c (force_nonfallthru): Rename into...
5924 (rtl_force_nonfallthru): ...this.
5925 (commit_one_edge_insertion): Do not set AUX field.
5926 (commit_edge_insertions): Do not discover new basic blocks.
5927 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5928 (cfg_layout_rtl_cfg_hooks): Likewise.
5929 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5930 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
5931 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5932
14431f58
AS
59332011-04-07 Anatoly Sokolov <aesok@post.ru>
5934
5935 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5936 Remove macros.
5937
3729983c
UB
59382011-04-07 Uros Bizjak <ubizjak@gmail.com>
5939
5940 * config/i386/sse.md: Update copyright year.
5941 (avxcvtvecmode): Remove.
5942 (sse_movhlps): Merge with *avx_movhlps.
5943 (sse_movlhps): Merge with *avx_movlhps.
5944 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5945 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5946 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5947 (sse_loadhps): Merge with *avx_loadhps.
5948 (sse_storelps): Merge with *avx_storelps.
5949 (sse_loadlps): Merge with *avx_loadlps.
5950 (sse_movss): Merge with *avx_movss.
5951 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5952 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5953 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5954 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5955 (vec_set<mode>_0): Ditto.
5956 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5957 (sse4_1_insertps): Merge with *avx_insertps.
5958 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5959 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5960 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5961 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5962 (sse2_storehpd): Merge with *avx_storehpd.
5963 (sse2_loadhpd): Merge with *avx_loadhpd.
5964 (sse2_loadlpd): Merge with *avx_loadlpd.
5965 (sse2_movsd): Merge with *avx_movsd.
5966 (*vec_concatv2df): Merge with *vec_concatv2df.
5967
4e626909
JJ
59682011-04-07 Jakub Jelinek <jakub@redhat.com>
5969
5970 PR debug/48343
5971 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 5972 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
5973 (try_combine): Add last_combined_insn parameter, pass it instead of
5974 i3 to propagate_for_debug.
5975
3729983c 59762011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
5977
5978 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5979 to handle MDR <-> data register transfers.
5980 (movhi_internal): Likewise.
5981
20c03367
AM
59822011-04-07 Alan Modra <amodra@gmail.com>
5983
5984 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5985 previous stack info.
5986
bf22920b
TV
59872011-04-07 Tom de Vries <tom@codesourcery.com>
5988
5989 PR target/43920
5990 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
5991 flow_find_cross_jump. Swap variables to implement backward replacement.
5992 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5993
823918ae
TV
59942011-04-07 Tom de Vries <tom@codesourcery.com>
5995
5996 PR target/43920
5997 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
5998 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
5999 and bb2.
6000 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6001 src1 or src2. Redirect edges to the last basic block. Update
6002 frequency and count on multiple basic blocks in case of fallthru.
823918ae 6003
472c95f5
TV
60042011-04-07 Tom de Vries <tom@codesourcery.com>
6005
6006 PR target/43920
6007 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6008 function.
3729983c
UB
6009 (old_insns_match_p): Change return type. Replace return false/true
6010 with return dir_none/dir_both. Use can_replace_by.
6011 (flow_find_cross_jump): Add dir_p parameter. Init replacement
6012 direction from dir_p. Register replacement direction in dir, last_dir
6013 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
6014 merge_dir. Return replacement direction in dir_p.
6015 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6016 return type of old_insns_match_p.
6017 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6018 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6019 flow_find_cross_jump.
6020 * basic-block.h (enum replace_direction): New type.
6021 (flow_find_cross_jump): Add parameter to declaration.
6022
a95d4000
UB
60232011-04-06 Uros Bizjak <ubizjak@gmail.com>
6024
6025 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6026 (AVXMODEDCVTPS2DQ): Ditto.
6027 (VEC_FLOAT_MODE): Ditto.
6028 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
6029 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6030 (<any_logic:code><mode>3): Use VF mode iterator.
6031 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6032 Use VF mode iterator.
6033 (copysign<mode>3): Use VF mode iterator.
6034 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
6035 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6036 (*<any_logic:code><MODEF:mode>3): Merge with
6037 *avx_<any_logic:code><MODEF:mode>3.
6038 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6039 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6040 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6041 (avx_cvtdq2ps<avxmodesuffix>): Remove.
6042 (sse2_cvtdq2ps): Use %v modifier.
6043 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6044 (avx_cvtps2dq<avxmodesuffix>): Remove.
6045 (sse2_cvtps2dq): Use %v modifier.
6046 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6047 (avx_cvttps2dq<avxmodesuffix>): Remove.
6048 (sse2_cvttps2dq): Use %v modifier.
6049 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6050 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6051 (sse2_cvtsd2siq): Fix insn template.
6052 (sse2_cvtsd2siq_2): Ditto.
6053 (sse2_cvttsd2siq): Ditto.
6054 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6055 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6056
ad01c437
JM
60572011-04-06 Joseph Myers <joseph@codesourcery.com>
6058
6059 * gcov-io.c: Use GCC Runtime Library Exception.
6060
fe846284
JJ
60612011-04-06 Jakub Jelinek <jakub@redhat.com>
6062
6063 PR debug/48466
6064 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6065 as base_reg whatever register reg has been eliminated to, instead
6066 of hardcoding STACK_POINTER_REGNUM.
6067
acce4e77
JM
60682011-04-06 Joseph Myers <joseph@codesourcery.com>
6069
6070 * doc/tm.texi.in: Document C target hooks as separate from general
6071 target hooks.
6072 * doc/tm.texi: Regenerate.
6073 * genhooks.c (struct hook_desc): Add docname field.
6074 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
6075 docname field.
6076 (hook_array): Include c-target.def.
6077 (emit_documentation): Use docname field in output.
6078 (emit_init_macros): Take docname argument. Only emit definitions
6079 for hooks matching docname.
6080 (main): Expect additional arguments in all cases. Pass argument
6081 to emit_init_macros.
6082 * target.def: Move initial macro definitions and comments to
6083 target-hooks-macros.h.
6084 (gcc_targetcm): Move to c-family/c-target.def.
6085 * target.h (targetcm): Move declaration to c-family/c-target.h.
6086 * targhooks.c (default_handle_c_option): Move to
6087 c-family/c-opts.c.
6088 * targhooks.h (default_handle_c_option): Move declaration to
6089 c-family/c-common.h.
6090 * target-hooks-macros.h: New file.
6091 * config.gcc (target_has_targetcm): Define and use to add to
6092 c_target_objs and cxx_target_objs.
6093 * config/default-c.c: New file.
6094 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6095 of target.h and target-def.h.
6096 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6097 (darwin_objc_construct_string, darwin_cfstring_ref_p,
6098 darwin_check_cfstring_format_arg): Make static.
6099 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6100 TARGET_STRING_OBJECT_REF_TYPE_P,
6101 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6102 * config/darwin-protos.h (darwin_objc_construct_string,
6103 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6104 declare.
6105 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6106 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 6107 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
6108 * config/t-darwin (darwin-c.o): Update dependencies.
6109 * system.h (TARGET_HAS_TARGETCM): Poison.
6110 * Makefile.in (TARGET_H): Update.
6111 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6112 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6113 (default-c.o): New target.
6114 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 6115 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
6116 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
6117 c-target.def.
6118 (build/genhooks.o): Update dependencies.
6119
275b4baa 61202011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 6121
275b4baa
RG
6122 * ipa-inline.c (enum inlining_mode): Remove.
6123 (cgraph_flatten): Use some other token.
6124 (cgraph_edge_early_inlinable_p): New function, split out from ...
6125 (cgraph_perform_always_inlining): New function, split out from ...
6126 (cgraph_decide_inlining_incrementally): ... here.
6127 (cgraph_mark_inline_edge): Adjust.
6128 (cgraph_early_inlining): Re-structure.
6129 (pass_early_inline): Require SSA form.
6130
f15b8bdf 61312011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
6132 Julian Brown <julian@codesourcery.com>
6133 Mark Shinwell <shinwell@codesourcery.com>
6134
6135 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6136 LO_REGS only for Thumb-1.
6137 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6138 be used in short instructions when optimising for size on Thumb-2.
6139
516426da
EB
61402011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6141
6142 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6143 associated with user returns to be preserved.
6144
96621ebf
TG
61452011-04-06 Tristan Gingold <gingold@adacore.com>
6146
f15b8bdf
EB
6147 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6148 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
6149 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6150 if XCOFF_DEBUGGING_INFO.
6151
07c0852e
UB
61522011-04-06 Uros Bizjak <ubizjak@gmail.com>
6153
6154 * config/i386/i386.md (attribute isa): New.
6155 (attribute enabled): New.
6156 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6157 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6158 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6159 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6160 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6161 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6162 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6163 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6164
6165 * config/i386/sse.md (VF): New mode iterator.
6166 (VF1): Ditto.
6167 (VF2): Ditto.
6168 (VF_128): Ditto.
6169 (SSEMODEF4): Remove.
6170 (attribute sse): Handle V8SF and V4DF modes.
6171 (<absneg:code><mode>2): Use VF mode iterator.
6172 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
6173 mode iterator.
6174 (<plusminus_insn><mode>3): Use VF mode iterator.
6175 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6176 Use VF mode iterator.
6177 (<sse>_vm<plusminus_insn><mode>3): Merge with
6178 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
6179 (mul<mode>3): Use VF mode iterator.
6180 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
6181 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
6182 mode iterator.
6183 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6184 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6185 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
6186 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
6187 mode iterator.
6188 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6189 Use VF1 mode iterator.
6190 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6191 (sqrt<VF2:mode>2): New expander.
6192 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6193 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6194 and sqrtv2df2. Use VF mode iterator.
6195 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
6196 mode iterator.
6197 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6198 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6199 Use VF1 mode iterator.
6200 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6201 (<smaxmin:code><mode>3): Use VF mode iterator.
6202 (*<smaxmin:code><mode>3_finite): Merge with
6203 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
6204 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6205 (<sse>_vm<smaxmin:code><mode>2): Merge with
6206 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
6207 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
6208 mode iterator.
6209 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
6210 mode iterator.
6211 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6212 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6213 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6214 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6215 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
6216 VF mode iterator.
6217 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6218 Use VF_128 mode iterator.
6219 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
6220 mode iterator.
6221 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
6222 VF_128 mode iterator.
6223 (vcond<mode>): Use VF mode iterator.
6224 * config/i386/predicates.md (sse_comparison_operator): Merge with
6225 avx_comparison_float_operator. Do not declare as special_predicate.
6226 * config/i386/i386.c (struct builtin_description): Update for renamed
6227 compare patterns.
6228 (ix86_expand_args_builtin): Ditto.
6229 (ix86_expand_sse_compare_mask): Ditto.
6230
ff5d142c
RG
62312011-04-06 Richard Guenther <rguenther@suse.de>
6232
6233 * tree-inline.c (estimate_num_insns): For calls simply account
6234 for all passed arguments and a used return value.
6235
d7d1d041 62362011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 6237
d7d1d041
RG
6238 PR tree-optimization/47663
6239 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6240 call_stmt_time fields.
6241 (cgraph_edge_inlinable_p): Declare.
6242 (cgraph_edge_recursive_p): New inline function.
6243 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6244 (cgraph_clone_edge): Copy it.
6245 * ipa-inline.c (cgraph_estimate_edge_time): New function.
6246 Account for call stmt time.
6247 (cgraph_estimate_time_after_inlining): Take edge argument.
6248 (cgraph_estimate_edge_growth): Account call stmt size.
6249 (cgraph_estimate_size_after_inlining): Take edge argument.
6250 (cgraph_mark_inline_edge): Adjust.
6251 (cgraph_check_inline_limits): Likewise.
6252 (cgraph_recursive_inlining_p): Remove.
6253 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6254 (cgraph_decide_recursive_inlining): Take edge argument and
6255 adjust.
6256 (cgraph_decide_inlining_of_small_functions): Do not avoid
6257 diags for recursive inlining here.
6258 (cgraph_flatten): Adjust.
6259 (cgraph_decide_inlining_incrementally): Likewise.
6260 (estimate_function_body_sizes): Remove call cost handling.
6261 (compute_inline_parameters): Initialize caller edge call costs.
6262 (cgraph_estimate_edge_growth): New function.
6263 (cgraph_estimate_growth): Use it.
6264 (cgraph_edge_badness): Likewise.
6265 (cgraph_check_inline_limits): Take an edge argument.
6266 (cgraph_decide_inlining_of_small_functions): Adjust.
6267 (cgraph_decide_inlining): Likewise.
6268 * tree-inline.c (estimate_num_insns): Only account for call
6269 return value if it is used.
6270 (expand_call_inline): Avoid diagnostics on recursive inline
6271 functions here.
6272 * lto-cgraph.c (lto_output_edge): Output edge call costs.
6273 (input_edge): Input edge call costs.
6274
2feb95f7
RO
62752011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6276
6277 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6278
26fbd9c2
JW
62792011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6280
6281 * doc/invoke.texi (Spec Files): Fix typo.
6282
694dc0ca
EB
62832011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6284
6285 * profile.c (branch_prob): Move declaration of local variable. Remove
6286 obsolete ??? comment. Expand the location explicitly instead of using
6287 the LOCATION_FILE and LOCATION_LINE macros.
6288
4925d0d5
WG
62892011-04-06 Wei Guozhi <carrot@google.com>
6290
6291 PR target/47855
6292 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6293 (arm_cond_branch): Likewise.
6294 (arm_cond_branch_reversed): Likewise.
6295 (arm_jump): Likewise.
6296 (push_multi): Likewise.
6297 * config/arm/constraints.md (Py): New constraint.
6298
f55dfa2f
NF
62992011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6300
6301 PR bootstrap/48471
6302 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6303 Move these...
6304 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6305 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6306 #ifdef DBX_DEBUGGING_INFO.
6307
fca96842
BS
63082011-04-05 Bernd Schmidt <bernds@codesourcery.com>
6309
6310 PR bootstrap/48403
6311 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6312 if old and new states differ.
6313
30b83e38
JM
63142011-04-05 Joseph Myers <joseph@codesourcery.com>
6315
6316 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6317 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6318 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6319 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6320 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6321 mcfv4e): Use Alias.
6322 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6323 ColdFire options to -mcpu= options.
6324
277a9aa5
JL
63252011-04-05 Jeff Law <law@redhat.com>
6326
6327 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6328 check if BB is a successor of LOOP->header and return
6329 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6330
c1e2610e
SB
63312011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6332
6333 * cprop.c (struct reg_use): Remove.
6334 (reg_use_table): Make an array of RTX.
6335 (find_used_regs, constprop_register, local_cprop_pass,
6336 bypass_block): Simplify users of reg_use_table.
6337 (cprop_insn): Likewise. Iterate if copy propagation succeeded
6338 on one of the uses found by find_used_regs.
6339
e532f586
NF
63402011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6341
6342 PR bootstrap/48469
6343 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6344 declaration.
6345
3fb7c055
NF
63462011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6347
6348 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6349 as an rtx.
6350 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6351
b71b43d9
SB
63522011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6353
6354 PR middle-end/48441
6355 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6356
b405b274
NF
63572011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6358
6359 * combine.c: Include obstack.h.
6360 (struct insn_link): Define.
6361 (uid_log_links): Adjust type.
6362 (FOR_EACH_LOG_LINK): New macro.
6363 (insn_link_obstack): Declare.
6364 (alloc_insn_link): Define.
6365 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
6366 type of link variables.
6367 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6368 (try_combine, record_promoted_values, distribute_notes): Likewise.
6369 (distribute_links): Likewise. Tweak prototype.
6370 (clear_log_links): Delete.
6371 (adjust_for_new_dest): Call alloc_insn_link.
6372 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6373
6409abe3
NF
63742011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6375
6376 * gcse.c (modify_mem_list): Convert to an array of VECs.
6377 (canon_modify_mem_list, compute_transp): Tweak formatting.
6378 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
6379 (load_killed_in_block_p): Likewise.
6380 (record_last_mem_set_info): Likewise.
6381 (clear_modify_mem_tables): Likewise.
6382
170d8157
TV
63832011-04-05 Tom de Vries <tom@codesourcery.com>
6384
6385 PR middle-end/48461
6386 * function.c (emit_use_return_register_into_block): Only define if
6387 HAVE_return.
6388
c5911a55
EB
63892011-04-05 Eric Botcazou <ebotcazou@adacore.com>
6390
6391 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6392
abd016e6
JM
63932011-04-05 Joseph Myers <joseph@codesourcery.com>
6394
6395 * config/rx/rx-opts.h: New.
6396 * config/rx/rx.c (rx_cpu_type): Remove.
6397 (rx_handle_option): Don't assert that global structures are in
6398 use. Access variables via opts pointer. Defer most handling of
6399 OPT_mint_register_. Use error_at.
6400 (rx_option_override): Handle deferred OPT_mint_register_ here.
6401 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6402 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6403 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6404 (rx_cpu_types): New Enum and EnumValue entries.
6405 (mint-register=): Use Defer and use Var accordingly.
6406
1ed13f83
NF
64072011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6408
6409 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6410 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6411 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6412 Move these...
6413 (debug_free_queue, debug_nesting, symbol_queue_index):
6414 ...and these...
6415 * dbxout.c: ...to here. Make static.
6416
6ce1edcf
NF
64172011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6418
6419 * gcse.c (modify_pair): Define. Define a VEC of it.
6420 (canon_modify_mem_list): Convert to an array of VECs.
6421 (free_insn_expr_list_list): Delete.
6422 (clear_modify_mem_tables): Call VEC_free instead.
6423 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6424 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6425 (canon_list_insert, compute_transp): Likewise.
6426
c201ac94
TV
64272011-04-05 Tom de Vries <tom@codesourcery.com>
6428
6429 PR target/43920
6430 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6431 for size.
6432
4c029f40
TV
64332011-04-05 Tom de Vries <tom@codesourcery.com>
6434
6435 PR target/43920
6436 * function.c (emit_use_return_register_into_block): New function.
6437 (thread_prologue_and_epilogue_insns): Use
6438 emit_use_return_register_into_block.
6439
2a562b0a
TV
64402011-04-05 Tom de Vries <tom@codesourcery.com>
6441
6442 PR target/43920
6443 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6444 insn.
6445
0248bceb
TV
64462011-04-05 Tom de Vries <tom@codesourcery.com>
6447
6448 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6449
ffa94123
YZ
64502011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
6451
798dd0ba
UB
6452 * config/arm/arm.md (define_constants for unspec): Replace with
6453 define_c_enum.
6454 (define_constants for unspecv): Replace with define_c_enum.
6455 * config/arm/neon.md (define_constants for unspec): Replace with
6456 define_c_enum.
ffa94123 6457
3b8f9b46
RH
64582011-04-04 Richard Henderson <rth@redhat.com>
6459
720cf80f 6460 PR bootstrap/48400
3b8f9b46
RH
6461 * dwarf2out.c (output_line_info): Always emit line info from
6462 at least one section.
6463 (dwarf2out_init): Create text_section_line_info here ...
6464 (set_cur_line_info_table): ... not here.
6465
720cf80f 64662011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
6467
6468 PR target/48380
6469 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 6470 not called.
e5b0e1ca 6471
720cf80f 6472 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 6473
196565d4
SB
64742011-04-04 Steven Bosscher <steven@gcc.gnu.org>
6475
b77f9eab
SB
6476 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6477 (expr_equiv_p): Remove.
6478 (insert_set_in_table): Look at <dest, src> pair instead of expr.
6479 (hash_scan_set): Update call to insert_set_in_table.
6480 (dump_hash_table): Dump <dest, src> pair.
6481 (lookup_set): Simplify. Lookup <dest, src> pair.
6482 (compute_transp): Remove, fold heavily simplified code into...
6483 (compute_local_properties): ...here. Expect COMP and TRANSP
6484 unconditionally.
6485 (find_avail_set): Take set directly from struct expr.
6486 (find_bypass-set): Likewise.
6487 (bypass_block): Likewise.
6488 (cprop_insn): Likewise. Remove redundant INSN_P test.
6489
384d7a55
SB
6490 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6491 checks on form of COND from find_implicit_sets to here.
6492 (find_implicit_sets): Cleanup control flow. Split critical edges
6493 if it exposes implicit sets. Allocate/resize implicit_sets as
6494 necessary.
6495 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6496 changed something. Run df_analyze after find_implicit_sets if any
6497 edges were split. Do not allocate implicit_sets here.
6498
3084ce69
SB
6499 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6500 (gcse_obstack): Renamed to cprop_obstack.
6501 (GNEW, GNEWVEC, GNEWVAR): Remove.
6502 (gmalloc): Remove.
6503 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6504 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6505 (gcse_alloc): Likewise, and rename to cprop_alloc.
6506 (alloc_gcse_men, free_gcse_mem): Remove.
6507 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6508 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6509 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6510
196565d4
SB
6511 * cprop.c (oprs_not_set_p): Remove.
6512 (mark_set, mark_clobber): Remove.
6513 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6514 (reg_not_set_p): New function.
6515 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6516 (cprop_insn): Likewise.
6517 (cprop_jump): Use FOR_EACH_EDGE.
6518
9b69cf83
BS
65192011-04-04 Bernd Schmidt <bernds@codesourcery.com>
6520
6521 PR bootstrap/48403
6522 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6523 (rank_for_schedule): Use scheduled_insns vector instead of
6524 last_scheduled_insn.
6525 (ok_for_early_queue_removal): Likewise.
6526 (queue_to_ready): Search forward in nonscheduled_insns_begin if
6527 we have a dbg_cnt.
6528 (choose_ready): Likewise.
6529 (commit_schedule): Use VEC_iterate.
6530 (schedule_block): Initialize nonscheduled_insns_begin. If we have
6531 a dbg_cnt, use it and ensure the first insn is in the ready list.
6532 (haifa_sched_init): Allocate scheduled_insns.
6533 (sched_extend_ready_list): Don't allocate it; reserve space.
6534 (haifa_sched_finish): Free it.
6535
24f48c2f
JM
65362011-04-04 Joseph Myers <joseph@codesourcery.com>
6537
6538 * optc-gen.awk: Always remove type from Variable entry before
6539 recording in var_seen.
6540
8effe856
EB
65412011-04-04 Eric Botcazou <ebotcazou@adacore.com>
6542
6543 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6544 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6545 call to tidy_fallthru_edges.
6546
413519ae
JM
65472011-04-04 Joseph Myers <joseph@codesourcery.com>
6548
6549 * doc/options.texi (ToLower): Document.
3729983c 6550 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
6551 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6552 * opts.h (cl_option): Add cl_tolower field.
6553 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6554 arguments with lowercase strings.
6555 * config/rx/rx.opt (mcpu=): Add ToLower.
6556 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6557 argument.
6558
7d34a1b0
RS
65592011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6560
6561 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6562
c30e7434
RS
65632011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6564
6565 * config/vax/vax.c: Include reload.h.
6566
112a861d
AS
65672011-04-04 Anatoly Sokolov <aesok@post.ru>
6568
6569 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6570 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6571 (sparc_preferred_reload_class): New function.
6572
e8c6bb74
JJ
65732011-04-04 Jakub Jelinek <jakub@redhat.com>
6574
2aeaa366 6575 PR debug/48401
e8c6bb74
JJ
6576 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6577 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6578
2c081caf
NF
65792011-04-03 Nathan Froyd <froydnj@codesourcery.com>
6580
6581 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6582 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6583
53802f27
AS
65842011-04-03 Anatoly Sokolov <aesok@post.ru>
6585
6586 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6587 (ASM_OUTPUT_ALIGNED_BSS): Define.
6588
e89964e3
MM
65892011-04-03 Michael Matz <matz@suse.de>
6590
6591 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6592 and next_slot members.
6593 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6594 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6595 (lto_streamer_cache_append): Declare.
6596 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6597 unsigned index, remove offset parameter, ensure that we append
6598 or update existing entries.
6599 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6600 parameter, update next_slot for append.
6601 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6602 parameter.
6603 (lto_streamer_cache_insert_at): Likewise.
6604 (lto_streamer_cache_append): New function.
6605 (lto_streamer_cache_lookup): Use unsigned index.
6606 (lto_streamer_cache_get): Likewise.
6607 (lto_record_common_node): Don't test tree_node_can_be_shared.
6608 (preload_common_node): Adjust call to lto_streamer_cache_insert.
6609 (lto_streamer_cache_delete): Don't free offsets member.
6610 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6611 (lto_output_string_with_length): Use lto_output_data_stream.
6612 (lto_output_tree_header): Remove ix parameter, don't write it.
6613 (lto_output_builtin_tree): Likewise.
6614 (lto_write_tree): Adjust callers to above, don't track and write
6615 offset, write unsigned index.
6616 (output_unreferenced_globals): Don't emit all global vars.
6617 (write_global_references): Use unsigned indices.
6618 (lto_output_decl_state_refs): Likewise.
6619 (write_symbol): Likewise.
6620 * lto-streamer-in.c (lto_input_chain): Move earlier.
6621 (input_function): Use unsigned index.
6622 (input_alias_pairs): Don't read and then ignore all global vars.
6623 (lto_materialize_tree): Remove ix_p parameter, don't read index,
6624 don't pass it back, use lto_streamer_cache_append.
6625 (lto_register_var_decl_in_symtab): Use unsigned index.
6626 (lto_register_function_decl_in_symtab): Likewise.
6627 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6628 index.
6629 (lto_get_builtin_tree): Don't read index, use
6630 lto_streamer_cache_append.
6631 (lto_read_tree): Adjust call to lto_materialize_tree.
6632
6633 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6634 don't use function calls in arguments to MIN.
6635
6636 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6637 twice.
6638
6639 * gimple.c (gimple_type_leader_entry): Mark deletable.
6640
b9a5b5b2
AM
66412011-04-03 Alan Modra <amodra@gmail.com>
6642
6643 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6644
ac6a641b
MM
66452011-04-03 Michael Matz <matz@suse.de>
6646
6647 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6648 an integer.
6649 * tree.h (tree_decl_non_common.vindex): Adjust comment.
6650
0038d4e0
MM
66512011-04-03 Michael Matz <matz@suse.de>
6652
e9c18386 6653 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
6654 * gimple-fold.c (canonicalize_constructor_val): Accept being called
6655 without function context.
6656 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6657 current_function_decl and cfun.
6658
91f2fae8
MM
66592011-04-03 Michael Matz <matz@suse.de>
6660
6661 * tree.c (decl_init_priority_insert): Don't create entry for
6662 default priority.
6663 (decl_fini_priority_insert): Ditto.
6664 (fields_compatible_p, find_compatible_field): Remove.
6665 * tree.h (fields_compatible_p, find_compatible_field): Remove.
6666 * gimple.c (gimple_compare_field_offset): Adjust block comment.
6667
da29e070
EB
66682011-04-03 Eric Botcazou <ebotcazou@adacore.com>
6669
6670 * combine.c (try_combine): Remove useless local variable.
6671
4979c28b 66722011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 6673 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
6674
6675 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6676 non-variable offsets and compare the remaining bases of the two
6677 accesses instead of looking for exact same data-ref.
6678
b4ddcaee
KT
66792011-04-02 Kai Tietz <ktietz@redhat.com>
6680
f90298e1
KT
6681 PR target/48416
6682 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6683
b4ddcaee
KT
6684 * i386.c (ix86_is_msabi_thiscall): New helper function.
6685 (ix86_is_type_thiscall): New helper function.
6686 (ix86_comp_type_attributes): Handle thiscall for method-functions
6687 special.
6688 (init_cumulative_args): Likewise.
6689 (find_drap_reg): Likewise.
6690 (ix86_static_chain): Likewise.
6691 (x86_this_parameter): Likewise.
6692 (x86_output_mi_thunk): Likewise.
6693
2a9d769a 66942011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
6695 Nicolas Setton <setton@adacore.com>
6696 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
6697
6698 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6699 (add_gnat_descriptive_type_attribute): New function.
6700 (gen_array_type_die): Call it.
6701 (gen_enumeration_type_die): Likewise.
6702 (gen_struct_or_union_type_die): Likewise.
6703 (modified_type_die): Likewise.
6704 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6705 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6706 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6707
15a03a11
JJ
67082011-04-01 Jakub Jelinek <jakub@redhat.com>
6709
6710 PR bootstrap/48148
6711 * dwarf2out.c (resolve_addr): Don't call force_decl_die
6712 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6713
6714 Revert:
6715 2011-03-17 Richard Guenther <rguenther@suse.de>
6716
6717 PR bootstrap/48148
6718 * lto-cgraph.c (input_overwrite_node): Clear the abstract
6719 origin for decls in other ltrans units.
6720 (input_varpool_node): Likewise.
6721
19228b93
JJ
67222011-04-01 Jakub Jelinek <jakub@redhat.com>
6723
6724 PR middle-end/48335
6725 * expr.c (expand_assignment): Handle all possibilities
6726 if TO_RTX is CONCAT.
e9c18386 6727 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
6728 (store_split_bit_field): If SUBREG_REG (op0) or
6729 op0 itself has smaller mode than word, return it
6730 for offset 0 and const0_rtx for out-of-bounds stores.
6731 If word is const0_rtx, skip it.
6732
88cb339e
N
67332011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
6734
6735 * config/h8300/h8300.c (print_operand_address): Rename to...
6736 (h8300_print_operand_address): ...this. Make static. Adjust comments.
6737 Call h8300_print_operand and h8300_print_operand_address instead of
6738 print_operand and print_operand_address. Declare.
6739 (print_operand): Renake to...
6740 (h8300_print_operand): ...this. Make static. Adjust comments.
6741 Call h8300_print_operand instead of print_operand. Declare.
6742 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6743 (h8300_register_move_cost): Likewise.
6744 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6745 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6746 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6747 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6748 * config/h8300/h8300-protos.h (print_operand): Delete.
6749 (print_operand_address): Delete.
6750
756d6ee9
RH
67512011-04-01 Richard Henderson <rth@redhat.com>
6752
6753 PR 48400
6754 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6755 in strict mode before dwarf4. Re-order tests to early out
6756 before switching sections.
6757
ceaaaeab
NF
67582011-04-01 Nathan Froyd <froydnj@codesourcery.com>
6759
6760 * config/h8300/constraints.md: New file.
6761 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
6762 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6763 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6764 * config/h8300/predicates.md (bit_operand): Likewise.
6765 (incdec_operand): Use satisfies_constraint_M and
6766 satisfies_constraint_O. Don't use C code block.
6767 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6768 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6769 (compute_mov_length): Use satisfies_constraint_G.
6770 (fix_bit_operand): Use satisfies_constraint_U.
6771 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6772 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6773 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6774 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6775 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6776 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6777 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6778 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6779 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6780 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6781 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6782 (EXTRA_MEMORY_CONSTRAINT): Delete.
6783
08ae38e0
AP
67842011-04-01 Andrew Pinski <pinskia@gmail.com>
6785 Michael Meissner <meissner@linux.vnet.ibm.com>
6786
6787 PR target/48262
6788 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6789 operands, as per the specifications.
6790
6791 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6792 (vec_extract_evenv4sf): Ditto.
6793 (vec_extract_evenv8hi): Ditto.
6794 (vec_extract_evenv16qi): Ditto.
6795 (vec_extract_oddv4si): Ditto.
6796
bdb0b0f6
MW
67972011-03-31 Mark Wielaard <mjw@redhat.com>
6798
6799 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6800 high_pc attribute if the CU has no associated code. Only output
6801 DW_AT_entry_pc for CU if not generating strict dwarf and
6802 dwarf_version < 4.
6803
722279e4
BS
68042011-04-01 Bernd Schmidt <bernds@codesourcery.com>
6805
6806 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6807 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6808 out of ...
6809 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6810 * final.c (final_start_function): Call the new function rather
6811 than using a NULL argument for dwarf2out_frame_debug.
6812
c5dd277d
BS
6813 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6814 that contains the prologue.
6815
ec4efea9
BS
6816 * haifa-sched.c (queue_insn): New arg REASON. All callers
6817 changed. Print it in debugging output.
6818
2a6a0d80
BS
6819 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6820
86014d07
BS
6821 * sched-ebb.c (begin_schedule_ready): Remove second argument.
6822 Split most of the code into...
6823 (begin_move_insn): ... here. New function.
6824 (ebb_sched_info): Add a pointer to it.
6825 * haifa-sched.c (scheduled_insns): New static variable.
6826 (sched_extend_ready_list): Allocate it.
6827 (schedule_block): Use it to record the order of scheduled insns.
6828 Perform RTL changes to move insns only after all scheduling
6829 decisions have been made.
6830 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6831 begin_move_insn field.
6832 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6833 * sched-int.h (struct haifa_sched_info): Remove second argument
6834 from begin_schedule_ready hook. Add new member begin_move_insn.
6835 * sched-rgn.c (begin_schedule_ready): Remove second argument.
6836 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6837
9d701248
BS
6838 * haifa-sched.c (prune_ready_list): New function, broken out of
6839 schedule_block.
6840 (schedule_block): Use it.
6841
1ca1dad5
UW
68422011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6843
6844 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6845
49568e45
KT
68462011-04-01 Kai Tietz <ktietz@redhat.com>
6847
6848 * config.gcc (*-*-mingw*): Allow as option the
6849 posix threading model.
07c0852e 6850 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
6851 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6852 definition.
6853 (CPP_SPEC): Add pthread/no-pthread handling.
6854 (LIB_SPEC): Likewise.
6855 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6856 (LIB_SPEC): Likewise.
6857 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6858 flag to pass -pthread option for shared libgcc build.
6859 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6860 for shared libgcc build.
6861 * config/i386/t-mingw-pthread: New file.
6862 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6863 New define to enable use of library pthread by default.
6864 * config/i386/mingw.opt (pthread): New driver option.
6865 (no-pthread): New driver option.
e9c18386 6866 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
6867 * config/i386/mingw-w64.opt: Likewise.
6868
748f7574 68692011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
6870
6871 * c-decl.c (grokdeclarator): Fix formatting.
6872
f04713ee
RS
68732011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6874
6875 * expr.c (emit_block_move_via_movmem): Use n_generator_args
6876 instead of n_operands.
6877 (set_storage_via_setmem): Likewise.
6878 * optabs.c (maybe_gen_insn): Likewise.
6879 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6880 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6881 (mips_expand_builtin_direct): Likewise.
6882 * config/spu/spu.c (expand_builtin_args): Likewise.
6883
b29387ee
RS
68842011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6885
6886 * recog.h (insn_data_d): Add n_generator_args.
6887 * genoutput.c (data): Likewise.
6888 (output_insn_data): Print it.
6889 (max_opno, num_dups): Delete.
6890 (scan_operands): Just fill in "d->operand[...]".
6891 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6892
e792559a
RS
68932011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6894
6895 * gensupport.h (pattern_stats): New structure.
6896 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6897 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6898 (max_operand_1, max_operand_vec): Delete.
6899 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6900
e8110d6f
NF
69012011-03-31 Nathan Froyd <froydnj@codesourcery.com>
6902
6903 * emit-rtl.c (emit_pattern_after_setloc): New function.
6904 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6905 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6906 (emit_pattern_after): New function.
6907 (emit_insn_after, emit_jump_insn_after): Call it.
6908 (emit_call_insn_after, emit_debug_insn_after): Likewise.
6909 (emit_pattern_before_setloc): New function.
6910 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6911 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6912 Likewise.
6913 (emit_pattern_before): New function.
6914 (emit_insn_before, emit_jump_insn_before): Call it.
6915 (emit_call_insn_before, emit_debug_insn_before): Likewise.
6916
576f85f1
RH
69172011-03-31 Richard Henderson <rth@redhat.com>
6918
6919 * dwarf2out.c (dw_separate_line_info_ref): Remove.
6920 (dw_separate_line_info_entry): Remove.
6921 (enum dw_line_info_opcode): New.
6922 (dw_line_info_entry): Use it.
6923 (dw_line_info_table, dw_line_info_table_p): New.
6924 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6925 (line_info_table, line_info_label_num): Remove.
6926 (line_info_table_in_use): Remove.
6927 (separate_line_info_table): Remove.
6928 (separate_line_info_table_allocated): Remove.
6929 (separate_line_info_table_in_use): Remove.
6930 (LINE_INFO_TABLE_INCREMENT): Remove.
6931 (line_info_label_num): New.
6932 (cur_line_info_table): New.
6933 (text_section_line_info, cold_text_section_line_info): New.
6934 (separate_line_info): New.
6935 (SEPARATE_LINE_CODE_LABEL): Remove.
6936 (print_dwarf_line_table): Remove.
6937 (debug_dwarf): Don't dump it.
6938 (output_one_line_info_table): New.
6939 (output_line_info): Use it.
6940 (new_line_info_table): New.
6941 (set_cur_line_info_table): New.
6942 (dwarf2out_switch_text_section): Use it.
6943 (dwarf2out_begin_function): Likewise.
6944 (push_dw_line_info_entry): New.
6945 (dwarf2out_source_line): Rewrite for new line info tables.
6946 (dwarf2out_init): Remove dead initailizations.
6947
300d83d9
JM
69482011-03-31 Joseph Myers <joseph@codesourcery.com>
6949
6950 * opts.h (cl_option): Add comments to fields. Add bit-fields for
6951 various flags.
6952 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6953 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6954 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6955 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6956 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6957 * opt-functions.awk (flag_init, switch_bit_fields): New.
6958 (switch_flags): Don't handle flags moved to bit-fields. Don't
6959 generate CL_MISSING_OK or CL_SAVE.
6960 * optc-gen.awk: Update to generate bit-field output as well as
6961 flags field.
6962 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6963 bit-field instead of CL_REJECT_DRIVER flag.
6964 * opts-common.c (generate_canonical_option,
6965 decode_cmdline_option): Use bit-fields instead of CL_* flags.
6966 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6967 instead of CL_REJECT_NEGATIVE flag.
6968 * toplev.c (print_switch_values): Use cl_report bit-field instead
6969 of CL_REPORT flag.
6970
d4d73ce2
EB
69712011-03-31 Eric Botcazou <ebotcazou@adacore.com>
6972
6973 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6974 a zero minimum index only if it is redundant.
6975
b8faca75
VM
69762011-03-31 Vladimir Makarov <vmakarov@redhat.com>
6977
6978 PR rtl-optimization/48381
6979 * ira-color.c (assign_hard_reg): Use hard reg set intersection
6980 instead of ira_class_hard_reg_index for calculating conflicting
6981 hard registers.
6982
7d11cebe
SB
69832011-03-31 Steven Bosscher <steven@gcc.gnu.org>
6984
6985 * cprop.c: Clean up hash table building.
6986 (reg_avail_info): Remove.
6987 (oprs_available_p): Remove.
6988 (record_last_reg_set_info): Remove.
6989 (record_last_set_info): Remove.
6990 (reg_available_p): New function.
6991 (gcse_constant_p): Do not treat unfolded conditions as constants.
6992 (make_set_regs_unavailable): New function.
6993 (hash_scan_set): Simplify with new reg_available_p.
6994 (compute_hash_table_work): Traverse insns stream only once.
6995 Do not compute reg_avail_info. Traverse insns in reverse order.
6996 Record implicit sets after recording explicit sets from the block.
6997
98faf84f
MM
69982011-03-31 Michael Matz <matz@suse.de>
6999
e9c18386 7000 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 7001
f52d97da
AS
70022011-03-31 Anatoly Sokolov <aesok@post.ru>
7003
7004 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7005 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7006 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7007 (h8300_mode_dependent_address_p): New function.
7008 (h8300_get_index): Make static.
7009
e16b6fd0
JL
70102011-03-31 Jeff Law <law@redhat.com>
7011
10c51983
JL
7012 * reload1.c (elimination_effects): Fix typo in recent change.
7013
e9c18386 7014 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
7015 typo potentially leading to null pointer dereference.
7016
7017 * caller-save.c (new_saved_hard_reg): Eliminate return value.
7018 (setup_save_areas): Corresponding changes to avoid useless
7019 assignments.
7020
7021 * jump.c (reversed_comparison_code_parts): Avoid successive return
7022 statements when REVERSE_CONDITION is defined.
7023
7024 * expr.c (expand_assignment): Avoid useless assignments.
7025 (expand_expr_real_1): Likewise.
7026 (expand_expr_real_2): Avoid useless statements.
7027
7028 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7029
7030 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7031
7032 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7033 statements.
7034
7035 * stmt.c (expand_expr_stmt): Avoid useless assignment.
7036
eb1eb914
JM
70372011-03-31 Joseph Myers <joseph@codesourcery.com>
7038
7039 PR target/47109
7040 * doc/tm.texi.in (TARGET_VERSION): Remove.
7041 * doc/tm.texi: Regenerate.
7042 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7043 * collect2.c (main): Don't use TARGET_VERSION.
7044 * mips-tdump.c (main): Don't use TARGET_VERSION.
7045 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 7046 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
7047 * config/rs6000/vxworksae.h: Remove.
7048 * config/alpha/alpha.h (TARGET_VERSION): Remove.
7049 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7050 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7051 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7052 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7053 * config/arm/arm.h (TARGET_VERSION): Remove.
7054 * config/arm/coff.h (TARGET_VERSION): Remove.
7055 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7056 * config/arm/elf.h (TARGET_VERSION): Remove.
7057 * config/arm/freebsd.h (TARGET_VERSION): Remove.
7058 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7059 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7060 * config/arm/pe.h (TARGET_VERSION): Remove.
7061 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7062 * config/arm/semi.h (TARGET_VERSION): Remove.
7063 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7064 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7065 * config/arm/vxworks.h (TARGET_VERSION): Remove.
7066 * config/avr/avr.h (TARGET_VERSION): Remove.
7067 * config/bfin/bfin.h (TARGET_VERSION): Remove.
7068 * config/fr30/fr30.h (TARGET_VERSION): Remove.
7069 * config/frv/frv.h (TARGET_VERSION): Remove.
7070 * config/h8300/h8300.h (TARGET_VERSION): Remove.
7071 * config/i386/cygwin.h (TARGET_VERSION): Remove.
7072 * config/i386/darwin.h (TARGET_VERSION): Remove.
7073 * config/i386/darwin64.h (TARGET_VERSION): Remove.
7074 * config/i386/djgpp.h (TARGET_VERSION): Remove.
7075 * config/i386/freebsd.h (TARGET_VERSION): Remove.
7076 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7077 * config/i386/gnu.h (TARGET_VERSION): Remove.
7078 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7079 * config/i386/i386elf.h (TARGET_VERSION): Remove.
7080 * config/i386/linux.h (TARGET_VERSION): Remove.
7081 * config/i386/linux64.h (TARGET_VERSION): Remove.
7082 * config/i386/lynx.h (TARGET_VERSION): Remove.
7083 * config/i386/mingw32.h (TARGET_VERSION): Remove.
7084 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7085 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7086 * config/i386/netware.h (TARGET_VERSION): Remove.
7087 * config/i386/nto.h (TARGET_VERSION): Remove.
7088 * config/i386/openbsd.h (TARGET_VERSION): Remove.
7089 * config/i386/vxworks.h (TARGET_VERSION): Remove.
7090 * config/ia64/elf.h (TARGET_VERSION): Remove.
7091 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7092 * config/ia64/hpux.h (TARGET_VERSION): Remove.
7093 * config/ia64/linux.h (TARGET_VERSION): Remove.
7094 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7095 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7096 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7097 * config/lm32/lm32.h (TARGET_VERSION): Remove.
7098 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7099 * config/m32c/m32c.h (TARGET_VERSION): Remove.
7100 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7101 * config/m32r/m32r.h (TARGET_VERSION): Remove.
7102 * config/m68k/linux.h (TARGET_VERSION): Remove.
7103 * config/m68k/m68k.h (TARGET_VERSION): Remove.
7104 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7105 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7106 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7107 * config/mep/mep.h (TARGET_VERSION): Remove.
7108 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7109 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7110 * config/mips/iris6.h (MACHINE_TYPE): Remove.
7111 * config/mips/linux.h (TARGET_VERSION): Remove.
7112 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7113 * config/mips/vxworks.h (TARGET_VERSION): Remove.
7114 * config/mmix/mmix.h (TARGET_VERSION): Remove.
7115 * config/mn10300/linux.h (TARGET_VERSION): Remove.
7116 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7117 * config/pa/pa.h (TARGET_VERSION): Remove.
7118 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7119 * config/picochip/picochip.h (TARGET_VERSION): Remove.
7120 * config/rs6000/aix.h (TARGET_VERSION): Remove.
7121 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7122 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7123 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7124 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7125 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7126 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7127 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7128 * config/rs6000/linux.h (TARGET_VERSION): Remove.
7129 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7130 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7131 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7132 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7133 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7134 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7135 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7136 * config/s390/linux.h (TARGET_VERSION): Remove.
7137 * config/s390/s390.h (TARGET_VERSION): Remove.
7138 * config/s390/tpf.h (TARGET_VERSION): Remove.
7139 * config/score/score.h (TARGET_VERSION): Remove.
7140 * config/sh/linux.h (TARGET_VERSION): Remove.
7141 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7142 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7143 * config/sh/sh.h (TARGET_VERSION): Remove.
7144 * config/sh/sh64.h (TARGET_VERSION): Remove.
7145 * config/sh/superh.h (TARGET_VERSION): Remove.
7146 * config/sh/vxworks.h (TARGET_VERSION): Remove.
7147 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7148 * config/sparc/linux.h (TARGET_VERSION): Remove.
7149 * config/sparc/linux64.h (TARGET_VERSION): Remove.
7150 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7151 TARGET_NAME32, TARGET_NAME): Remove.
7152 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7153 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7154 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7155 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7156 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7157 * config/spu/spu.h (TARGET_VERSION): Remove.
7158 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7159 * config/v850/v850.h (TARGET_VERSION): Remove.
7160 * config/vax/linux.h (TARGET_VERSION): Remove.
7161 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7162 * config/xtensa/elf.h (TARGET_VERSION): Remove.
7163 * config/xtensa/linux.h (TARGET_VERSION): Remove.
7164
ace31bca
EB
71652011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7166
7167 PR target/48142
7168 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7169 frame-related from frame-unrelated adjustments to the stack pointer.
7170
76f9db36
JJ
71712011-03-31 Jakub Jelinek <jakub@redhat.com>
7172
7173 * common.opt (fdebug-types-section): Move earlier.
7174 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7175
b7826465
AT
71762011-03-31 Andreas Tobler <andreast@fgznet.ch>
7177
7178 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7179 var.
7180
1290e54c
NF
71812011-03-30 Nathan Froyd <froydnj@codesourcery.com>
7182
7183 * tree.h (CASE_CHAIN): Define.
7184 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7185 (gimple_redirect_edge_and_branch): Likewise.
7186
bddc98e1
VM
71872011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7188
7189 PR middle-end/48367
7190 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7191 calculation.
7192
c865e437
JL
71932011-03-30 Jeff Law <law@redhat.com>
7194
b3750213 7195 * PR bootstrap/48371
c865e437
JL
7196 * reload1.c (reload): Fix botch in last change.
7197
7198 * reload.h (struct reload): Fix typo introduced in last change.
7199
2cdf9574
JM
72002011-03-30 Joseph Myers <joseph@codesourcery.com>
7201
7202 * config/arm/arm.opt (mhard-float, msoft-float): Mark
7203 Undocumented. Remove help text.
7204 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7205 -mhard-float.
7206
666a21a2
JM
72072011-03-30 Joseph Myers <joseph@codesourcery.com>
7208
7209 * doc/options.texi (NegativeAlias): Document.
7210 (Alias): Mention NegativeAlias.
7211 * opt-functions.awk: Handle NegativeAlias.
e9c18386 7212 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
7213 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7214 * opts.h (CL_NEGATIVE_ALIAS): Define.
7215 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7216 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7217 OPT_mspe_.
7218 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7219 Alias entries.
7220 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7221 mno-spe and mno-isel instead of mspe=no and -misel=no.
7222
0fa4e351
MW
72232011-03-29 Mark Wielaard <mjw@redhat.com>
7224
7225 * common.opt (fdebug-types-section): New flag.
7226 * doc/invoke.texi: Document new -fno-debug-types-section flag.
7227 * dwarf2out.c (use_debug_types): New define.
7228 (struct die_struct): Mark die_id with GTY desc use_debug_types.
7229 (print_die): Guard output of type unit signatures using
7230 use_debug_types.
7231 (build_abbrev_table): Replace assert of dwarf_version >= 4
7232 with assert on use_debug_types.
7233 (size_of_die): Likewise.
7234 (unmark_dies): Likewise.
7235 (value_format): Decide AT_ref_external form on use_debug_types.
7236 (output_die): Replace dwarf_version version check guard with
7237 use_debug_types where appropriate.
7238 (modified_type_die): Likewise.
7239 (gen_reference_type_die): Likewise.
7240 (dwarf2out_start_source_file): Likewise.
7241 (dwarf2out_end_source_file): Likewise.
7242 (prune_unused_types_walk_attribs): Likewise.
7243 (dwarf2out_finish): Likewise.
7244
4648deb4
VM
72452011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7246
7247 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7248
4f431835
RS
72492011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7250
7251 PR rtl-optimization/48332
7252 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7253 mode of input operand N and modeN to its actual mode.
7254
f2034d06
JL
72552011-03-30 Jeff Law <law@redhat.com>
7256
7257 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7258 define accessor macro.
7259 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7260 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7261 (reg_equiv_init): Likewise.
7262 (reg_equivs_size): New variable.
7263 (reg_equiv_init_size): Remove.
7264 (allocate_initial_values): Move prototype to here from....
7265 * integrate.h (allocate_initial_values): Remove prototype.
7266 * integrate.c: Include reload.h.
7267 (allocate_initial_values): Corresponding changes.
7268 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7269 (fix_reg_equiv_init, no_equiv): Corresponding changes.
7270 (update_equiv_regs): Corresponding changes.
7271 (ira): Corresponding changes.
7272 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7273 (push_secondary_reload): Corresponding changes.
7274 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7275 (make_memloc, find_reloads_address): Corresponding changes.
7276 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7277 (find_reloads_address_1): Corresponding changes.
7278 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7279 (refers_to_regno_for_reload_p): Corresponding changes.
7280 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7281 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7282 * reload1.c: Include ggc.h.
7283 (grow_reg_equivs): New function.
7284 (replace_pseudos_in, reload): Corresponding changes.
7285 (calculate_needs_all_insns, alter_regs): Corresponding changes.
7286 (eliminate_regs_1, elimination_effects): Corresponding changes.
7287 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7288 (delete_output_reload): Likewise.
7289 * caller-save.c (mark_referenced_regs): Corresponding changes.
7290 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7291 * frv/predicates.md (frv_load_operand): Corresponding changes.
7292 * microblaze/microblaze.c (double_memory_operand): Corresponding
7293 changes.
7294 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7295 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 7296 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
7297 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7298 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7299 changes.
7300 * pa/pa.c (emit_move_sequence): Corresponding changes.
7301 * vax/vax.c (nonindexed_address_p): Corresponding changes.
7302
159b81b0
RS
73032011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7304
7305 PR target/47551
7306 * config/arm/arm.c (coproc_secondary_reload_class): Handle
7307 structure modes. Don't check neon_vector_mem_operand for
7308 vector or structure modes.
7309
a6217191
RS
73102011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7311 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7312
7313 PR target/43590
7314 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7315 operand 1 and reshuffle the operands to match.
7316 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7317
bd837408
CS
73182011-03-30 Christian Schüler <cschueler@gmx.de>
7319
6955d771 7320 PR driver/48208
bd837408 7321 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 7322
6955d771 7323 PR driver/48260
bd837408
CS
7324 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7325 handler function.
7326 * config/darwin.opt: Added '-arch' option.
7327
e9c0470a
NC
73282011-03-30 Nick Clifton <nickc@redhat.com>
7329
7330 * config/rx/rx.md: Add peepholes and patterns to combine
7331 extending loads and simple arithmetic instructions.
7332 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
7333 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7334 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 7335 modes to use pre-decrement and post-increment addressing.
e9c18386 7336 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 7337 addresses.
e9c18386
UB
7338 (rx_print_operand): Add support for %Q. Fix handling of %Q.
7339 (rx_memory_move_cost): Adjust cost of stores.
7340 (rx_adjust_insn_length): New function.
e9c0470a 7341
8a87e7ab
JJ
73422011-03-30 Jakub Jelinek <jakub@redhat.com>
7343
7344 PR c/48305
7345 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7346 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7347 matching arg00/arg01 types.
7348
12486e03
EB
73492011-03-30 Eric Botcazou <ebotcazou@adacore.com>
7350
7351 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7352 last_location to UNKNOWN_LOCATION.
7353
0b99eef6
L
73542011-03-30 H.J. Lu <hongjiu.lu@intel.com>
7355
7356 PR target/48349
7357 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7358 FLOAT_SSE_REGS.
7359
023592aa
JM
73602011-03-30 Joseph Myers <joseph@codesourcery.com>
7361 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7362
7363 PR bootstrap/48337
7364 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7365 Init(PROCESSOR_V7).
7366 (sparc_cpu): Likewise.
7367 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7368 PROCESSOR_V7.
7369
ad3b266b
VM
73702011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7371
7372 PR target/48336
7373 PR middle-end/48342
7374 PR rtl-optimization/48345
7375 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7376 hard regs for given mode from profitable regs when doing secondary
7377 allocation.
7378
633c9126
JL
73792011-03-29 Jeff Law <law@redhat.com>
7380
7381 PR bootstrap/48327
7382 * tree-ssa-threadupdate.c (struct redirection_data): Remove
7383 do_not_duplicate field.
7384 (lookup_redirection_data): Corresponding changes.
7385 (create_duplicates): Always create a template block.
7386 (redirect_edges): Remove code which reused the original block
7387 when it was going to become unreachable code.
7388 (thread_block): Don't set do_not_duplicate field.
7389
eb50f63a
JM
73902011-03-29 Joseph Myers <joseph@codesourcery.com>
7391
7392 * lto-opts.c (register_user_option_p, lto_register_user_option):
7393 Make type argument unsigned.
7394 * lto-streamer.h (lto_register_user_option): Make type argument
7395 unsigned.
7396 * opth-gen.awk: Make CL_* macros unsigned.
7397 * opts-common.c (find_opt): Make lang_mask argument unsigned.
7398 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7399 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7400 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7401 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7402 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7403 (find_opt): Make lang_mask argument unsigned.
7404
76763a6d
VM
74052011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7406
7407 PR rtl-optimization/48331
7408 PR rtl-optimization/48334
7409 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7410 for any used algorithm.
7411
5c82436e
VM
74122011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7413
7414 * ira-conflicts.c (build_object_conflicts): Add unused attribute
7415 to parent_max.
7416
7a81008b
UB
74172011-03-29 Uros Bizjak <ubizjak@gmail.com>
7418
7419 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7420 (alpha_option_override): Don't set alpha_sr_alias_set.
7421 (emit_frame_store_1): Use gen_frame_mem rather than calling
7422 set_mem_alias_set.
7423 (alpha_expand_epilogue): Ditto.
7424
86c8d1f6
IR
74252011-03-29 Ira Rosen <ira.rosen@linaro.org>
7426
7427 PR tree-optimization/48290
7428 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7429 vectorization, check that relevant phis in the basic block after
7430 the inner loop are really inner loop's exit phis.
7431
0d12220f
RS
74322011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
7433
e8cf17e7 7434 PR debug/48190
0d12220f
RS
7435 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7436 (cached_dw_loc_list_def): New structure.
7437 (cached_dw_loc_list): New typedef.
7438 (cached_dw_loc_list_table): New variable.
7439 (cached_dw_loc_list_table_hash): New function.
7440 (cached_dw_loc_list_table_eq): Likewise.
7441 (add_location_or_const_value_attribute): Take a bool cache_p.
7442 Cache the list when the parameter is true.
7443 (gen_formal_parameter_die): Update caller.
7444 (gen_variable_die): Likewise.
7445 (dwarf2out_finish): Likewise.
7446 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7447 while generating debug info for the decl.
7448 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7449 (dwarf2out_init): Initialize cached_dw_loc_list_table.
7450 (resolve_addr): Cache the result of resolving a chain of
7451 location lists.
7452
1756cb66
VM
74532011-03-28 Vladimir Makarov <vmakarov@redhat.com>
7454
7455 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7456 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 7457
1756cb66
VM
7458 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7459 after regstat_init_n_sets_and_refs.
7460
7461 * ira.c: Add more comments at the top.
7462 (setup_stack_reg_pressure_class, setup_pressure_classes):
7463 Add comments how we compute the register pressure classes.
7464 (setup_allocno_and_important_classes): Add more comments.
7465 (setup_class_translate_array, reorder_important_classes)
7466 (setup_reg_class_relations): Add comments.
7467
7468 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
7469 start of the file.
7470
7471 * ira-color.c: Add 2011 to the Copyright line.
7472 (assign_hard_reg): Add more comments.
7473 (improve_allocation): Ditto.
7474
7475 * ira-costs.c: Add 2011 to the Copyright line.
7476 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7477 comments.
7478 (setup_regno_cost_classes_by_mode): Ditto.
7479
7480 Initial patches from ira-improv branch:
7481
7482 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7483
f60c2554 7484 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
7485 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
7486 (ira_create_allocno): Remove initialization of
7487 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7488 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7489 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7490 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7491 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7492 Initialize ALLOCNO_ADD_DATA.
7493 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7494 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7495 ALLOCNO_REG.
7496 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
7497 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7498
7499 * ira.c (ira_reallocate): Remove.
7500 (setup_pressure_classes): Call
7501 ira_init_register_move_cost_if_necessary. Use
7502 ira_register_move_cost instead of ira_get_register_move_cost.
7503 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7504 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7505
7506 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7507 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7508 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7509 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7510 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7511 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7512 Fix formatting.
7a81008b 7513 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
7514 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7515 (struct allocno_color_data): New.
7516 (allocno_color_data_t): New typedef.
7517 (allocno_color_data): New definition.
7518 (ALLOCNO_COLOR_DATA): New macro.
7519 (struct object_color_data): New.
7520 (object_color_data_t): New typedef.
7521 (object_color_data): New definition.
7522 (OBJECT_COLOR_DATA): New macro.
7523 (update_copy_costs, calculate_allocno_spill_cost): Call
7524 ira_init_register_move_cost_if_necessary. Use
7525 ira_register_move_cost instead of ira_get_register_move_cost.
7526 (move_spill_restore, update_curr_costs): Ditto.
7527 (allocno_spill_priority): Make it inline.
7a81008b 7528 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
7529 (struct coalesce_data, coalesce_data_t): New.
7530 (allocno_coalesce_data): New definition.
7531 (ALLOCNO_COALESCE_DATA): New macro.
7532 (merge_allocnos, coalesced_allocno_conflict_p): Use
7533 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7534 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7535 (coalesce_allocnos): Ditto.
7536 (setup_coalesced_allocno_costs_and_nums): Ditto.
7537 (collect_spilled_coalesced_allocnos): Ditto.
7538 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7539 (setup_slot_coalesced_allocno_live_ranges): Ditto.
7540 (coalesce_spill_slots): Ditto.
7541 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
7542 free allocno_coalesce_data.
7543
7544 * ira-conflicts.c: Fix formatting.
7545 (process_regs_for_copy): Call
7546 ira_init_register_move_cost_if_necessary. Use
7547 ira_register_move_cost instead of ira_get_register_move_cost.
7548 (build_object_conflicts): Optimize.
7549
7550 * ira-costs.c (record_reg_classes): Optimize. Call
7551 ira_init_register_move_cost_if_necessary. Use
7552 ira_register_move_cost, ira_may_move_in_cost, and
7553 ira_may_move_out_cost instead of ira_get_register_move_cost and
7554 ira_get_may_move_cost.
7555 (record_address_regs): Ditto.
7556 (scan_one_insn): Optimize.
7557 (find_costs_and_classes): Optimize.
7558 (process_bb_node_for_hard_reg_moves): Call
7559 ira_init_register_move_cost_if_necessary. Use
7560 ira_register_move_cost instead of ira_get_register_move_cost.
7561
7562 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7563 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7564 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7565 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7566 definitions.
7567 (ira_initiate_emit_data, ira_finish_emit_data)
7568 (create_new_allocno): New functions.
7a81008b 7569 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
7570 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7571 Use ira_register_move_cost instead of ira_get_register_move_cost.
7572
7573 * ira-int.h: Fix some comments.
7a81008b
UB
7574 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7575 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
7576 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7577 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
7578 add_data.
7579 (struct ira_allocno): Make mode and aclass a bitfield. Move other
7580 bitfield after mode. Make hard_regno a short int. Make
7581 hard_regno short. Remove first_coalesced_allocno and
7582 next_coalesced_allocno. Move mem_optimized_dest_p,
7583 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7584 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
7585 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7586 temp, colorable_p. Add new member add_data.
7587 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7588 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7589 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7590 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7591 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7592 (ALLOCNO_ADD_DATA): New macro.
7593 (ira_emit_data_t): New typedef.
7594 (struct ira_emit_data): New. Move mem_optimized_dest_p,
7595 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7596 from struct ira_allocno.
7597 (ALLOCNO_EMIT_DATA): New macro.
7598 (ira_allocno_emit_data, allocno_emit_reg): New.
7599 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 7600 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
7601 (OBJECT_ADD_DATA): New macro.
7602 (ira_reallocate): Remove.
7603 (ira_initiate_emit_data, ira_finish_emit_data): New.
7604 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7605 (ira_init_register_move_cost_if_necessary): New.
7606 (ira_object_conflict_iter_next): Merge into
7607 ira_object_conflict_iter_cond.
7a81008b 7608 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 7609
f60c2554 7610 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
7611 ira_init_register_move_cost_if_necessary. Use
7612 ira_register_move_cost instead of ira_get_register_move_cost.
7613
7614 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7615
7616 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7617
7618 * ira-costs.c: Fix formatting.
7619 (cost_classes, cost_classes_num): Remove.
7620 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7621 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7622 (cost_classes_del, cost_classes_htab): New.
7623 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7624 (initiate_regno_cost_classes, setup_cost_classes): New.
7625 (setup_regno_cost_classes_by_aclass): New.
7a81008b 7626 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
7627 (record_reg_classes): Use regno_cost_classes instead of
7628 cost_classes. Move checking opposite operand up.
7629 (record_address_regs): Use regno_cost_classes
7630 instead of cost_classes.
7631 (scan_one_insn): Ditto. Use always general register.
7632 (print_allocno_costs): Use regno_cost_classes instead of
7633 cost_classes.
7634 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
7635 (find_costs_and_classes): Set up cost classes for each registers.
7636 Use also their mode for this. Use regno_cost_classes instead of
7637 cost_classes.
7638 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7639 cost_classes.
7640 (free_ira_costs, ira_init_costs): Don't use cost_classes.
7641 (ira_costs, ira_set_pseudo_classes): Call
7642 initiate_regno_cost_classes and finish_regno_cost_classes.
7643
7644 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
7645
7646 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7647
7648 * target.def (ira_cover_classes): Remove.
7649
7a81008b 7650 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
7651
7652 * doc/tm.texi.in: Ditto.
7653
7654 * ira-conflicts.c: Remove mentioning cover classes from the file.
7655 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 7656 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
7657
7658 * targhooks.c (default_ira_cover_classes): Remove.
7659
7660 * targhooks.h (default_ira_cover_classes): Ditto.
7661
7662 * haifa-sched.c: Remove mentioning cover classes from the file.
7663 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7664 ira_pressure_classes and ira_pressure_classes_num instead of
7665 ira_reg_class_cover_size and ira_reg_class_cover. Use
7666 sched_regno_pressure_class instead of sched_regno_cover_class.
7667 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7668 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7669
7670 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
7671 classes from the file.
7672 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7673 (struct object_hard_regs, struct object_hard_regs_node): New.
7674 (struct ira_object): New members profitable_hard_regs,
7675 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7676 (struct ira_allocno): Rename cover_class to aclass. Rename
7677 cover_class_cost and updated_cover_class_cost to class_cost and
7678 updated_class_cost. Remove splay_removed_p and
7679 left_conflict_size. Add new members colorable_p.
7680 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7681 (ALLOCNO_COLORABLE_P): New macro.
7682 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7683 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7684 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7685 (OBJECT_...): Rename parameter C to O.
7686 (OBJECT_PROFITABLE_HARD_REGS): New macro.
7687 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7688 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7689 (struct target_ira_int): New members x_ira_max_memory_move_cost,
7690 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7691 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7692 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7693 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
7694 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
7695 x_ira_reg_class_subunion.
7696 (ira_max_memory_move_cost, ira_max_register_move_cost)
7697 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7698 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7699 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 7700 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
7701 (ira_reg_class_union): Rename to ira_reg_class_subunion.
7702 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7703 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7704 (ira_tune_allocno_costs_and_cover_classes): Rename to
7705 ira_tune_allocno_costs.
7706 (ira_debug_hard_regs_forest): New.
7707 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7708 (ira_object_conflict_iter_next): Fix comments.
7a81008b 7709 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
7710 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7711 cover_class to aclass.
7712 (ira_allocate_and_accumulate_costs): Ditto.
7713 (ira_allocate_and_set_or_copy_costs): Ditto.
7714
7715 * opts.c (decode_options): Remove ira_cover_class check.
7716
7717 * ira-color.c: Remove mentioning cover classes from the file. Use
7718 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7719 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7720 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7721 (splay-tree.h): Remove include.
7722 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7723 before copy_freq_compare_func.
7724 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7725 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7726 New definitions.
7727 (hard_regs_roots, hard_regs_node_vec): Ditto.
7728 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7729 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7730 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7731 (create_new_object_hard_regs_node): Ditto.
7732 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 7733 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
7734 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7735 Ditto.
7736 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7737 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7738 (remove_unused_object_hard_regs_nodes): Ditto.
7739 (enumerate_object_hard_regs_nodes): Ditto.
7740 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7741 (object_hard_regs_subnode_t): Ditto.
7742 (struct object_hard_regs_subnode): Ditto.
7743 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7744 (setup_object_hard_regs_subnode_index): Ditto.
7745 (get_object_hard_regs_subnodes_num): Ditto.
7746 (form_object_hard_regs_nodes_forest): Ditto.
7747 (finish_object_hard_regs_nodes_tree): Ditto.
7748 (finish_object_hard_regs_nodes_forest): Ditto.
7749 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 7750 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
7751 (pseudos_have_intersected_live_ranges_p): Rename to
7752 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
7753 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7754 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7755 (update_copy_costs): Remove assert. Skip cost update if the hard
7756 reg does not belong the class.
7757 (assign_hard_reg): Process only profitable hard regs.
7758 (uncolorable_allocnos_num): Make it scalar.
7759 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7760 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7761 and ira_reg_class_max_nregs.
7762 (bucket_allocno_compare_func): Check frequency first.
7763 (sort_bucket): Add compare function as a parameter.
7764 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7765 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7766 (push_allocno_to_stack): Rewrite for checking new allocno
7767 colorability.
7a81008b 7768 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
7769 (push_only_colorable): Pass new parameter to sort_bucket.
7770 (push_allocno_to_spill): Remove.
7771 (allocno_spill_priority_compare): Make it inline and rewrite.
7772 (splay_tree_allocate, splay_tree_free): Remove.
7773 (allocno_spill_sort_compare): New function.
7774 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
7775 build and use splay tree. Choose first allocno in uncolorable
7776 allocno bucket to spill. Remove setting spill cost.
7777 (all_conflicting_hard_regs): Remove.
7778 (setup_allocno_available_regs_num): Check only profitable hard
7779 regs. Print info about hard regs nodes.
7780 (setup_allocno_left_conflicts_size): Remove.
7781 (put_allocno_into_bucket): Don't call
7a81008b 7782 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
7783 (improve_allocation): New.
7784 (color_allocnos): Call setup_profitable_hard_regs,
7785 form_object_hard_regs_nodes_forest, improve_allocation,
7786 finish_object_hard_regs_nodes_forest. Setup spill cost.
7787 (print_loop_title): Use pressure classes.
7788 (color_allocnso): Ditto.
7789 (do_coloring): Remove allocation and freeing splay_tree_node_pool
7790 and allocnos_for_spilling.
7791 (ira_sort_regnos_for_alter_reg): Don't setup members
7792 {first,next}_coalesced_allocno.
7793 (color): Remove allocating and freeing removed_splay_allocno_vec.
7794 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7795 prohibited_class_mode_regs.
7796
7797 * ira-lives.c: Remove mentioning cover classes from the file. Fix
7798 formatting.
7799 (update_allocno_pressure_excess_length): Use pressure classes.
7800 (inc_register_pressure, dec_register_pressure): Check for pressure
7801 class.
7802 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7803 pressure class. Use ira_reg_class_nregs instead of
7804 ira_reg_class_max_nregs.
7805 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7806 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7807 (single_reg_class): Use ira_reg_class_nregs instead of
7808 ira_reg_class_max_nregs.
7809 (process_bb_node_lives): Use pressure classes.
7810
7811 * ira-emit.c: Remove mentioning cover classes from the file. Use
7812 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
7813 (change_loop): Use pressure classes.
7814 (modify_move_list): Call ira_set_allocno_class instead of
7815 ira_set_allocno_cover_class.
7816
7817 * ira-build.c: Remove mentioning cover classes from the file. Use
7818 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7819 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
7820 ALLOCNO_UPDATED_CLASS_COST instead of
7821 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7822 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7823 (ira_create_allocno): Remove initialization of
7824 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
7825 ALLOCNO_COLORABLE_P.
7826 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7827 Update conflict regs for the objects.
7828 (create_cap_allocno): Remove assert. Don't propagate
7829 ALLOCNO_AVAILABLE_REGS_NUM.
7830 (ira_free_allocno_costs): New function.
7831 (finish_allocno): Change a part of code into call of
7832 ira_free_allocno_costs.
7833 (low_pressure_loop_node_p): Use pressure classes.
7834 (object_range_compare_func): Don't compare classes.
7835 (setup_min_max_conflict_allocno_ids): Ditto.
7836
7837 * loop-invariant.c: Remove mentioning cover classes from the file.
7838 Use ira_pressure_classes and ira_pressure_classes_num instead of
7839 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
7840 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7841 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7842 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
7843 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7844 STACK_REG_COVER_CLASS.
7845 (get_regno_cover_class): Rename to get_regno_pressure_class.
7846 (move_loop_invariants): Initialize and finalize regstat.
7847
7848 * ira.c: Remove mentioning cover classes from the file. Add
7849 comments about coloring without cover classes. Use ALLOCNO_CLASS
7850 instead of ALLOCNO_COVER_CLASS. Fix formatting.
7851 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7852 setup_class_subset_and_memory_move_costs.
7853 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7854 (setup_cover_and_important_classes): Rename to
7855 setup_allocno_and_important_classes.
7856 (setup_class_translate_array): New.
7857 (setup_class_translate): Call it for allocno and pressure classes.
7858 (cover_class_order): Rename to allocno_class_order.
7859 (comp_reg_classes_func): Use ira_allocno_class_translate instead
7860 of ira_class_translate.
7861 (reorder_important_classes): Set up ira_important_class_nums.
7862 (setup_reg_class_relations): Set up ira_reg_class_superunion.
7863 (print_class_cover): Rename to print_classes. Add parameter.
7864 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7865 Print pressure classes too.
7866 (find_reg_class_closure): Rename to find_reg_classes. Don't call
7867 setup_reg_subclasses.
7a81008b 7868 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7869 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7870 (setup_prohibited_class_mode_regs): Use
7a81008b 7871 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
7872 (clarify_prohibited_class_mode_regs): New function.
7873 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7874 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7875 (ira_init_once): Initialize them.
7876 (free_register_move_costs): Process them.
7877 (ira_init): Move calls of find_reg_classes and
7878 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7879 Call clarify_prohibited_class_mode_regs.
7880 (ira_no_alloc_reg): Remove.
7881 (too_high_register_pressure_p): Use pressure classes.
7882
7883 * sched-deps.c: Remove mentioning cover classes from the file.
7884 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7885 ira_pressure_classes and ira_pressure_classes_num instead of
7886 ira_reg_class_cover_size and ira_reg_class_cover.
7887 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7888 sched_regno_pressure_class instead of sched_regno_cover_class.
7889 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
7890 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7891
7892 * ira.h: Add 2010 to Copyright.
7893 (ira_no_alloc_reg): Remove external.
7894 (struct target_ira): Rename x_ira_hard_regno_cover_class,
7895 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7896 x_ira_class_translate to x_ira_hard_regno_allocno_class,
7897 x_ira_allocno_classes_num, x_ira_allocno_classes, and
7898 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
7899 x_ira_pressure_classes, x_ira_pressure_class_translate, and
7900 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
7901 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
7902 x_ira_no_alloc_regs.
7a81008b 7903 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7904 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7905 ira_allocno_classes_num and ira_allocno_classes.
7906 (ira_class_translate): Rename to ira_allocno_class_translate.
7907 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7908 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7909 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7910 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7911 (ira_no_alloc_regs): New.
7912
7913 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
7914 classes from the file. Use ALLOCNO_CLASS instead of
7915 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
7916 ALLOCNO_COVER_CLASS_COST.
7917 (regno_cover_class): Rename to regno_aclass.
7918 (record_reg_classes): Use ira_reg_class_subunion instead of
7919 ira_reg_class_union.
7920 (record_address_regs): Check overflow.
7921 (scan_one_insn): Ditto.
7a81008b 7922 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
7923 (print_pseudo_costs): Use REG_N_REFS.
7924 (find_costs_and_classes): Use classes intersected with them on the
7925 1st pass. Check overflow. Use ira_reg_class_subunion instead of
7926 ira_reg_class_union. Use ira_allocno_class_translate and
7927 regno_aclass instead of ira_class_translate and regno_cover_class.
7928 Modify code for finding regno_aclass. Setup preferred classes for
7929 the next pass.
7930 (setup_allocno_cover_class_and_costs): Rename to
7931 setup_allocno_class_and_costs. Use regno_aclass instead of
7932 regno_cover_class. Use ira_set_allocno_class instead of
7933 ira_set_allocno_cover_class.
7934 (init_costs, finish_costs): Use regno_aclass instead of
7935 regno_cover_class.
7936 (ira_costs): Use setup_allocno_class_and_costs instead of
7937 setup_allocno_cover_class_and_costs.
7938 (ira_tune_allocno_costs_and_cover_classes): Rename to
7939 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
7940 by processing objects. Use ira_reg_class_max_nregs instead of
7941 ira_reg_class_nregs.
7942
7943 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7944
7945 * sched-int.h: Remove mentioning cover classes from the file.
7946 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7947
7948 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
7949 classes from the file.
7950 (struct reg_pref): Rename coverclass into allocnoclass.
7951 (reg_cover_class): Rename to reg_allocno_class.
7952
7a81008b 7953 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
7954
7955 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7956
7957 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7958
7959 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7960
7961 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7962
7963 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7964
7965 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7966
7967 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7968
7969 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7970
7971 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7972
7973 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7974 (i386_ira_cover_classes): Ditto.
7975
7976 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7977
7978 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7979
7980 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7981
7982 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7983
7984 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7985
7986 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7987
7988 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7989 (mips_ira_cover_classes): Ditto.
7990
7991 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7992
7993 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7994
7995 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7996
7997 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7998
7999 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8000
8001 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8002 (IRA_COVER_CLASSES_VSX): Ditto.
8003
8004 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8005 (rs6000_ira_cover_classes): Ditto.
8006
8007 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8008
8009 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8010
8011 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8012
8013 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8014
8015 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8016
8017 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8018
8019 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8020
8021 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8022
8023 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8024
8025 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8026
2b80199f
JJ
80272011-03-29 Jakub Jelinek <jakub@redhat.com>
8028
71dae1fe
JJ
8029 PR debug/48253
8030 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8031 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8032 dw_fde_unlikely_section_end_label, cold_in_std_section,
8033 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8034 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8035 fields.
8036 (output_fde): Use dw_fde_second_{begin,end} if second is
8037 true, otherwise dw_fde_{begin,end}.
8038 (output_call_frame_info): Test dw_fde_second_begin != NULL
8039 instead of dw_fde_switched_sections.
8040 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8041 fields, initialize new fields. Initialize in_std_section
8042 unconditionally from the first partition.
8043 (dwarf2out_end_epilogue): Don't override dw_fde_end when
8044 dw_fde_second_begin is non-NULL.
8045 (dwarf2out_switch_text_section): Stop initializing removed
8046 dw_fde_struct fields, initialize new fields, initialize
8047 also dw_fde_end here. Set dw_fde_switch_cfi even when
8048 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
8049 (struct var_loc_list_def): Add last_before_switch field.
8050 (arange_table, arange_table_allocated, arange_table_in_use,
8051 ARANGE_TABLE_INCREMENT, add_arange): Removed.
8052 (size_of_aranges): Count !in_std_section and !second_in_std_section
8053 hunks in fdes, instead of looking at arange_table_in_use.
8054 (output_aranges): Add aranges_length argument, don't call
8055 size_of_aranges here. Instead of using aranges_table*
8056 emit ranges for fdes when !in_std_section resp.
8057 !second_in_std_section.
8058 (dw_loc_list): Break ranges crossing section switch.
8059 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 8060 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
8061 (gen_subprogram_die): Don't call add_arange. Use
8062 dw_fde_{begin,end} for first partition and if switched
8063 section dw_fde_second_{begin,end} for the second.
8064 (var_location_switch_text_section_1,
8065 var_location_switch_text_section): New functions.
8066 (dwarf2out_begin_function): Initialize cold_text_section even
8067 when function_section () isn't text_section.
8068 (prune_unused_types): Don't walk arange_table.
8069 (dwarf2out_finish): Don't needlessly test
8070 flag_reorder_blocks_and_partition when testing cold_text_section_used.
8071 If info_section_emitted, call size_of_aranges and if it indicates
8072 non-empty .debug_aranges, call output_aranges with the computed
8073 size. Stop using removed dw_fde_struct fields, use
8074 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8075 for second.
8076
2b80199f
JJ
8077 PR debug/48203
8078 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8079 create ENTRY_VALUE if incoming or address of incoming's MEM
8080 is a hard REG.
8081 * dwarf2out.c (mem_loc_descriptor): Don't emit
8082 DW_OP_GNU_entry_value of DW_OP_fbreg.
8083 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8084 on ENTRY_VALUE is able to find the canonical parameter VALUE.
8085 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8086 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8087 ENTRY_VALUE_EXPs.
8088 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8089 is a REG_P or MEM_P with REG_P address, compute hash directly
8090 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8091 (preserve_only_constants): Don't clear VALUES forwaring
8092 ENTRY_VALUE to some other VALUE.
8093
8a445129
RS
80942011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
8095
8096 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8097 instead of GEN_INT.
8098
c82fee88
EB
80992011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8100
8101 * cfgexpand.c (expand_gimple_cond): Always set the source location and
8102 block before expanding the statement.
8103 (expand_gimple_stmt_1): Likewise. Set them here...
8104 (expand_gimple_stmt): ...and not here. Tidy.
8105 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8106 unknown.
8107
e45425ec
SB
81082011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8109
8110 * Makefile.in: New rule for cprop.o.
8111 * gcse.c: Move constant/copy propagation to cprop.c.
8112 (compute_local_properties): Only handle expression tables.
8113 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8114 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8115 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8116 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 8117 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
8118 compute_cprop_data, find_used_regs, try_replace_reg,
8119 find_avail_set, cprop_jump, constprop_register, cprop_insn,
8120 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8121 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8122 find_bypass_set, reg_killed_on_edge, bypass_block,
8123 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8124 execute_rtl_cprop, pass_rtl_cprop): Move to...
8125 * cprop.c: ...here. New file, constant/copy propagation for RTL
8126 moved from gcse.c to here with minor cleanups in duplicated code.
8127
c09d5426
L
81282011-03-28 H.J. Lu <hongjiu.lu@intel.com>
8129
8130 * config/i386/i386.c (flag_opts): Fix a typo in
8131 -mavx256-split-unaligned-store.
8132
9eaa7740
AS
81332011-03-28 Anatoly Sokolov <aesok@post.ru>
8134
8135 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8136 LIBCALL_VALUE): Remove macros.
8137 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8138 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8139 (h8300_function_value, h8300_libcall_value,
8140 h8300_function_value_regno_p): New functions.
8141
dcec2be2
AS
81422011-03-28 Anatoly Sokolov <aesok@post.ru>
8143
8144 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8145
520af9ec
JL
81462011-03-28 Jeff Law <law@redhat.com>
8147
8148 * tree-ssa-threadupdate.c (redirect_edges): Call
8149 create_edge_and_update_destination_phis as needed.
8150 (create_edge_and_update_destination_phis): Accept new BB argument.
8151 All callers updated.
8152 (thread_block): Do not update the profile when threading around
8153 intermediate blocks.
8154 (thread_single_edge): Likewise.
8155 (determine_bb_domination_status): If BB is not a successor of the
8156 loop header, return NONDOMINATING.
8157 (register_jump_thread): Note when we register a jump thread around
8158 an intermediate block.
8159 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8160 (thread_across_edge): Use it.
8161
7450b54f
TG
81622011-03-28 Tristan Gingold <gingold@adacore.com>
8163
8164 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8165 when for_return is 2.
8166
649beb33
JL
81672011-03-28 Jeff Law <law@redhat.com>
8168
8169 * var-tracking.c (canonicalize_values_mark): Delete unused
8170 lhs assignment.
8171 (canonicalize_values_star, set_variable_part): Likewise.
8172 (clobber_variable_part, delete_variable_part): Likewise.
8173
d5b8da97
SB
81742011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8175
8176 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8177
322dd859
MJ
81782011-03-28 Martin Jambor <mjambor@suse.cz>
8179
8180 * tree-inline.c (expand_call_inline): Do not check that destination
8181 node is analyzed.
8182 (optimize_inline_calls): Assert that destination node is analyzed.
8183 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8184 not call tree_lowering_passes.
8185 * cgraph.h (cgraph_analyze_function): Declare.
8186 * cgraphunit.c (cgraph_analyze_function): Make public.
8187
aa53e58b
JM
81882011-03-28 Joseph Myers <joseph@codesourcery.com>
8189
8190 * config/sparc/sparc-opts.h: New.
8191 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8192 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8193 (sparc_option_override): Store processor_type enumeration rather
8194 than string in cpu_default. Remove name and enumeration from
8195 cpu_table. Directly default -mcpu then default -mtune from -mcpu
8196 without using sparc_select. Use target_flags_explicit instead of
8197 fpu_option_set.
8198 * config/sparc/sparc.h (enum processor_type): Move to
8199 sparc-opts.h.
8200 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8201 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8202 HeaderInclude entry.
8203 (mcpu=, mtune=): Use Var and Enum.
8204 (sparc_processor_type): New Enum and EnumValue entries.
8205
dd350eba
RO
82062011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8207 Iain Sandoe <iains@gcc.gnu.org>
8208
8209 PR target/48245
8210 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8211
1b29f05e
EB
82122011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8213
8214 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8215 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8216 Insert new statements at it in lieu of STMT.
8217 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8218 * tree-vect-stmts.c (vectorizable_store): Likewise.
8219 (vectorizable_load): Likewise.
8220
506e6808
UB
82212011-03-28 Uros Bizjak <ubizjak@gmail.com>
8222
8223 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8224 (divtf3): Ditto.
8225 (multf3): Ditto.
8226 (subtf3): Ditto.
8227
2e939ee9
L
82282011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8229
8230 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8231 unaligned 256bit load/store.
8232 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8233 (*avx_movdqu<avxmodesuffix>): Likewise.
8234
5e85ab88
JDA
82352011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8236
8237 PR target/48288
8238 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8239 * config/pa/pa.md (iordi3): Use new predicate in expander.
8240 (iorsi3): Likewise.
8241
47be3d6d
AS
82422011-03-27 Anatoly Sokolov <aesok@post.ru>
8243
506e6808 8244 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 8245 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
8246 * config/mips/mips-protos.h (mips_function_value): Remove.
8247 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
8248 (mips_function_value_1): ... this. Make static. Handle receiving
8249 the function type in 'fn_decl_or_type' argument.
8250 (mips_function_value, mips_libcall_value,
8251 mips_function_value_regno_p): New function.
8252 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8253 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8254
d253656a
L
82552011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8256
8257 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8258 and -mavx256-split-unaligned-store.
8259 (ix86_option_override_internal): Split 32-byte AVX unaligned
8260 load/store by default.
8261 (ix86_avx256_split_vector_move_misalign): New.
8262 (ix86_expand_vector_move_misalign): Use it.
8263
8264 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8265 -mavx256-split-unaligned-store.
8266
8267 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8268 256bit load/store. Generate unaligned store on misaligned memory
8269 operand.
8270 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8271 256bit load/store.
8272 (*avx_movdqu<avxmodesuffix>): Likewise.
8273
8274 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8275 -mavx256-split-unaligned-store.
8276
1ea9206a
RS
82772011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8278
8279 PR target/38598
8280 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8281 Update commentary.
8282
b99ce2a8
RS
82832011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8284
8285 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8286 opno arguments with an expand_operand. Use create_input_operand.
8287 (mips_prepare_builtin_target): Delete.
8288 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8289 functions.
8290 (mips_expand_builtin_direct): Use create_output_operand and
8291 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
8292 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
8293 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8294
69d52339
IR
82952011-03-27 Ira Rosen <ira.rosen@linaro.org>
8296
8297 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8298 function.
8299 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8300
ba5e9aca
EB
83012011-03-26 Eric Botcazou <ebotcazou@adacore.com>
8302
8303 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8304 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
8305 basic blocks and call commit_edge_insertions directly.
8306 (fixup_abnormal_edges): Move from here to...
8307 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
8308 on the edges and return whether some have actually been inserted.
8309 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8310 compensation code.
8311
5d369d58
AB
83122011-03-26 Andrey Belevantsev <abel@ispras.ru>
8313
8314 PR rtl-optimization/48144
8315 * sel-sched-ir.c (merge_history_vect): Factor out from ...
8316 (merge_expr_data): ... here.
8317 (av_set_intersect): Rename to av_set_code_motion_filter.
8318 Update all callers. Call merge_history_vect when an expression
8319 is found in both sets.
8320 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8321
f082c000
AM
83222011-03-26 Alan Modra <amodra@gmail.com>
8323
8324 * config/rs6000/predicates.md (word_offset_memref_op): Handle
8325 cmodel medium addresses.
8326 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8327 64-bit gpr loads and stores.
8328 (rs6000_secondary_reload_ppc64): New function.
8329 * config/rs6000/rs6000-protos.h: Declare it.
8330 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8331
8ac5e12e
AM
83322011-03-26 Alan Modra <amodra@gmail.com>
8333
8334 PR target/47487
8335 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8336 GNU Go in traceback table.
8337
c2654ded
RH
83382011-03-25 Richard Henderson <rth@redhat.com>
8339
8340 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8341 if there are exactly 6 operands.
8342 (set_storage_via_setmem): Similarly.
8343
ba78087b
KT
83442011-03-25 Kai Tietz <ktietz@redhat.com>
8345
8346 * collect2.c (write_c_file_stat): Handle backslash
8347 as right-hand directory separator.
8348 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8349 checking just for slash.
8350 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8351 instead of checking for trailing slash.
8352 * gcc.c (record_temp_file): Use filename_cmp instead
8353 of strcmp.
8354 (do_spec_1): Likewise.
8355 (replace_outfile_spec_function): Likewise.
8356 (is_directory): Use filename_ncmp instead of strncmp.
8357 (print_multilib_info): Likewise.
8358 * gcov.c (find_source): Use filename_cmp instead
8359 instead of strcmp.
8360 (make_gcov_file_name): Fix order of slash/backslash
8361 checks.
8362 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8363 (add_standard_paths): Likewise.
8364 * mips-tfile.c (saber_stop): Handle backslash.
8365 * prefix.c (update_path): Use filename_ncmp instead of
8366 strncmp.
8367 * profile.c (output_location): Use filename_cmp instead
8368 of strcmp.
8369 * read-md.c (handle_toplevel_file): Handle backslash.
8370 * tlink.c (frob_extension): Likewise.
8371 * tree-cfg.c (same_line_p): Use filename_cmp instead of
8372 strcmp.
8373 * tree-dump.c (dequeue_and_dump): Handle backslash.
8374 * tree.c (get_file_function_name): Likewise.
8375 * gengtype.c (read_input_list): Likewise.
8376 (get_file_realbasename): Likewise.
8377 (get_output_file_with_visibility): Use filename_cmp
8378 instead of strcmp.
8379
75f6ec9a
RS
83802011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
8381
8382 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8383 case to VFPv1.
8384
6c4e2997
NF
83852011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8386
8387 * fold-const.c (expr_location_or): New function.
8388 (fold_truth_not_expr): Call it.
8389
0edf1bb2
JL
83902011-03-25 Jeff Law <law@redhat.com>
8391
8392 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8393 va_end.
8394 * c-family/c-common.c (def_fn_type): Likewise.
8395 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8396 * emit-rtl.c (gen_rtvec): Likewise.
8397 * lto/lto-lang.c (def_fn_type): Likewise.
8398
fdc2de95
RG
83992011-03-25 Richard Guenther <rguenther@suse.de>
8400
8401 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8402 also generate copies.
8403 (fini_copy_prop): Handle constant values properly.
8404
21385db0
JJ
84052011-03-25 Jakub Jelinek <jakub@redhat.com>
8406
8407 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8408 mode size instead of bitsize with DWARF2_ADDR_SIZE.
8409 (hash_loc_operands, compare_loc_operands): Handle
8410 DW_OP_GNU_entry_value.
8411
6510e8bb
KT
84122011-03-25 Kai Tietz <ktietz@redhat.com>
8413
8414 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8415 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8416 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8417 comment and use macro TARGET_64BIT_MS_ABI instead.
8418 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8419 and change default behavior for 32-bit MS_ABI.
8420 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8421 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8422 32-bit, too.
8423 (ix86_cfun_abi): Likewise.
8424 (ix86_maybe_switch_abi): Adjust comment.
8425 (init_cumulative_args): Check for bit-ness in MS_ABI case.
8426 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8427 instead of checking for SYSV_ABI.
8428 (ix86_nsaved_sseregs): Likewise.
8429 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8430 to 16 bytes.
8431 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8432 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8433 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8434 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8435 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8436
34019e28
RG
84372011-03-25 Richard Guenther <rguenther@suse.de>
8438
8439 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8440 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8441 (verify_gimple): Remove.
8442 * tree-cfg.c (verify_gimple_call): Merge verification
8443 from verify_stmts.
8444 (verify_gimple_phi): Merge verification from verify_stmts.
8445 (verify_gimple_label): New function.
8446 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8447 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8448 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8449 (verify_stmts): Rename to verify_gimple_in_cfg.
8450 (verify_gimple_in_cfg): New function.
8451 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8452 * tree-ssa.c (verify_ssa): Likewise.
8453 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8454
605896f5
RG
84552011-03-25 Richard Guenther <rguenther@suse.de>
8456
8457 * passes.c (init_optimization_passes): Add FRE pass after
8458 early SRA.
8459
7baa7c13
BS
84602011-03-25 Bernd Schmidt <bernds@codesourcery.com>
8461 Andrew Stubbs <ams@codesourcery.com>
8462
8463 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8464 for Cortex-A8.
8465 (arm_movdi_vfp_cortexa8): New pattern.
8466 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8467 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8468 instructions when tuning for Cortex-A8. Set attribute "arch".
8469 * config/arm/arm.md: Move include arm-tune.md up a bit.
8470 (define_attr "arch"): Add "onlya8" and "nota8" values.
8471 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8472
45dbce1b
NF
84732011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8474
4ff08abf 8475 PR bootstrap/48282
45dbce1b
NF
8476 Revert:
8477 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8478
8479 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8480 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8481 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8482 * passes.c (init_optimization_passes): Move
8483 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8484
ac9a30ae
KT
84852011-03-25 Kai Tietz <ktietz@redhat.com>
8486
8487 * c-typeck.c (comptypes_internal): Replace target
8488 hook call of comp_type_attributes by version in tree.c file.
8489 * gimple.c (gimple_types_compatible_p_1): Likewise.
8490 * tree-ssa.c (useless_type_conversion_p): Likewise.
8491 * tree.c (build_type_attribute_qual_variant): Likewise.
8492 (attribute_value_equal): New static helper function.
8493 (comp_type_attributes): New function.
8494 (merge_attributes): Use attribute_value_equal for comparison.
8495 (attribute_list_contained): Likewise.
8496 * tree.h (comp_type_attributes): New prototype.
8497
afdac116
RG
84982011-03-25 Richard Guenther <rguenther@suse.de>
8499
8500 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8501 of complex types at -O0.
8502 (verify_gimple_assign_binary): Likewise.
8503 (verify_gimple_assign_ternary): Likewise.
8504
ec6165f8
MW
85052011-03-24 Mark Wielaard <mjw@redhat.com>
8506
8507 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8508 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8509
2a5ac39a
MW
85102011-03-24 Mark Wielaard <mjw@redhat.com>
8511
8512 PR debug/48041
8513 * dwarf2out.c (output_abbrev_section): Only write table when
8514 abbrev_die_table_in_use > 1.
8515
e533b2a4
RH
85162011-02-24 Richard Henderson <rth@redhat.com>
8517
8518 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8519 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8520 (alpha_expand_unaligned_load_words): Use extql.
8521 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8522 (emit_insxl): Handle all modes for consistency.
8523
0b2a7367
RH
85242011-02-24 Richard Henderson <rth@redhat.com>
8525
8526 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8527 (alpha_expand_unaligned_load): Likewise.
8528 (alpha_expand_unaligned_store): Likewise.
8529 (alpha_expand_unaligned_load_words): Likewise.
8530 (alpha_expand_unaligned_store_words): Likewise.
8531 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8532 (alpha_split_lock_test_and_set_12): Likewise.
8533 (print_operand, alpha_fold_builtin_extxx): Likewise.
8534 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8535 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8536 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8537 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8538 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8539 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8540 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8541 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8542 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8543 (extwl, extll, extql): Similarly.
8544 (inswh, inslh, insqh): Similarly.
8545 (mskbl, mskwl, mskll, mskql): Similarly.
8546 (mskwh, msklh, mskqh): Similarly.
8547
315b2bef
RH
85482011-02-24 Richard Henderson <rth@redhat.com>
8549
8550 * config/alpha/alpha.md (attribute isa): Add er, ner.
8551 (attribute enabled): Handle them.
8552 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8553
67102517
RH
85542011-02-24 Richard Henderson <rth@redhat.com>
8555
8556 * config/alpha/alpha.md (attribute isa): Add vms.
8557 (attribute enabled): Handle it.
8558 (*movsf): Merge *movsf_{nofix,fix,nofp}.
8559 (*movdf): Merge *movdf_{nofix,fix,nofp}.
8560 (*movtf): Rename from *movtf_internal for consistency.
8561 (*movsi): Merge with *movsi_nt_vms.
8562 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8563 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8564 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8565 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8566
6aba5cb4
RH
85672011-02-24 Richard Henderson <rth@redhat.com>
8568
8569 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8570 (extendqisi2, extendhisi2): Likewise.
8571 (extendqidi2): Simplify BWX/non-BWX expansions.
8572 (extendhidi2): Similarly.
8573
bdfb351b
RH
85742011-02-24 Richard Henderson <rth@redhat.com>
8575
8576 * config/alpha/alpha.md (attribute isa): New.
8577 (attribute enabled): New.
8578 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8579 (zero_extendqisi2, zero_extendqidi2): Similarly.
8580 (zero_extendhisi2, zero_extendhidi2): Similarly.
8581 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8582
6abe71eb
RH
85832011-02-24 Richard Henderson <rth@redhat.com>
8584
8585 * config/alpha/predicates.md (input_operand): Revert last change;
8586 update comment to mention 32-bit VMS rather than Windows.
8587
7114321e
NF
85882011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8589
8590 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8591 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8592 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8593 * passes.c (init_optimization_passes): Move
8594 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8595
c8679567
EB
85962011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8597
8598 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8599
27173058
UB
86002011-03-24 Uros Bizjak <ubizjak@gmail.com>
8601
8602 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8603 correctly.
8604
6f0c9f06
JJ
86052011-03-24 Jakub Jelinek <jakub@redhat.com>
8606
8607 PR debug/48204
8608 * simplify-rtx.c (simplify_const_unary_operation): Call
8609 real_convert when changing mode class with FLOAT_EXTEND.
8610
662666e5
NC
86112011-03-24 Nick Clifton <nickc@redhat.com>
8612
8613 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8614 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8615 * config/rx/rx.c (rx_option_override): Set align_jumps,
8616 align_loops and align_labels if not set by the user.
8617 (rx_align_for_label): New function.
8618 (rx_max_skip_for_label): New function.
8619 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8620 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8621 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8622 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8623 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8624
2b99b2b8
RS
86252011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8626
8627 PR rtl-optimization/48263
8628 * optabs.c (expand_binop_directly): Reinstate convert_modes code
8629 and original commutative_p handling. Use maybe_gen_insn.
8630
ccecd6ea
AK
86312011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8632
8633 * reload.c (find_reloads_subreg_address): Add address_reloaded
8634 parameter and return true there if the full address has been
8635 reloaded.
8636 (find_reloads_toplev): Pass address_reloaded flag.
8637 (find_reloads_address_1): Don't use address_reloaded parameter.
8638
67295642
JL
86392011-03-24 Jeff Law <law@redhat.com>
8640
8641 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8642 unused variable "ann".
8643 (remove_unused_locals): Likewise.
8644
8645 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8646 statement.
8647
8648 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8649 after it is freed.
8650
212aa74f
AK
86512011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8652
8653 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8654 for invalid symbolic addresses.
8655 (s390_secondary_reload): Don't use s390_check_symref_alignment for
8656 larl operands.
8657
fe784e0d
EB
86582011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8659
8660 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8661 the argument in calls to fold_truth_not_expr.
8662
63ee8641
NF
86632011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8664
8665 * tree.c (record_node_allocation_statistics): New function.
8666 (make_node_stat, copy_node_stat, build_string): Call it.
8667 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8668 (build1_stat, build_omp_clause): Likewise.
8669
61be2a1c
RS
86702011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8671
8672 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8673 last commit.
8674
a881aaa7
RG
86752011-03-24 Richard Guenther <rguenther@suse.de>
8676
8677 PR tree-optimization/48271
8678 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8679 blocks that still exist.
8680
dbaa912c
RG
86812011-03-24 Richard Guenther <rguenther@suse.de>
8682
8683 PR tree-optimization/48270
8684 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8685 not free datarefs before ddrs.
8686
1d60cc55
EB
86872011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8688
8689 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8690 from the address built for a reference with variable offset.
8691
c78dd519
UB
86922011-03-24 Uros Bizjak <ubizjak@gmail.com>
8693
8694 PR target/48237
8695 * config/i386/i386.md (*movdf_internal_rex64): Do not split
8696 alternatives that can be handled with movq or movabsq insn.
8697 (*movdf_internal): Disable for !TARGET_64BIT.
8698 (*movdf_internal_nointeger): Ditto.
8699 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8700
b25b9e8f
NF
87012011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8702
8703 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8704 (FUNCTION_ARG_ADVANCE): Likewise.
8705 * tm.texi.in: Change references to them to hook references.
8706 * tm.texi: Regenerate.
c78dd519 8707 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
8708 (default_function_incoming_arg): Likewise.
8709 (default_function_arg_advance): Likewise.
c78dd519 8710 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
8711 (function_arg_advance): Likewise.
8712 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8713
190b2187
RG
87142011-03-24 Richard Guenther <rguenther@suse.de>
8715
8716 PR middle-end/48269
8717 * tree-object-size.c (addr_object_size): Do not double-account
8718 for MEM_REF offsets.
8719
a183b5c7
DN
87202011-03-24 Diego Novillo <dnovillo@google.com>
8721
8722 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 8723 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
8724 (lto_input_data_block): Move from lto-opts.c. Make extern.
8725 Update all users.
8726 (lto_input_string): Rename from input_string. Make extern.
8727 Update all users.
8728 * lto-streamer-out.c (lto_output_string_with_length): Rename from
8729 output_string_with_length.
8730 Output 0 to indicate a non-NULL string. Update all callers to
8731 not emit 0.
8732 (lto_output_string): Rename from output_string. Make extern.
8733 Update all users.
8734 (lto_output_decl_state_streams): Make extern.
8735 (lto_output_decl_state_refs): Make extern.
8736 * lto-streamer.h (lto_input_string): Declare.
8737 (lto_input_data_block): Declare.
8738 (lto_output_string): Declare.
8739 (lto_output_string_with_length): Declare.
8740 (lto_output_decl_state_streams): Declare.
8741 (lto_output_decl_state_refs): Declare.
8742
cfef45c8
RG
87432011-03-24 Richard Guenther <rguenther@suse.de>
8744
8745 PR tree-optimization/46562
8746 * tree.c (build_invariant_address): New function.
8747 * tree.h (build_invariant_address): Declare.
8748 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8749 a renamed function moved ...
8750 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8751 Take valueization callback parameter.
8752 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8753 * gimple-fold.h: New file.
8754 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8755 (ccp_fold, fold_const_aggregate_ref,
8756 fold_ctor_reference, fold_nonarray_ctor_reference,
8757 fold_array_ctor_reference, fold_string_cst_ctor_reference,
8758 get_base_constructor): Move ...
8759 * gimple-fold.c: ... here.
8760 (gimple_fold_stmt_to_constant_1): New function
8761 split out from ccp_fold. Take a valueization callback parameter.
8762 Valueize all operands.
8763 (gimple_fold_stmt_to_constant): New wrapper function.
8764 (fold_const_aggregate_ref_1): New function split out from
8765 fold_const_aggregate_ref. Take a valueization callback parameter.
8766 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8767 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8768 invariant POINTER_PLUS_EXPRs to invariant form.
8769 (vn_valueize): New function.
8770 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8771 * tree-vrp.c (vrp_valueize): New function.
8772 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8773 to fold statements to constants.
8774 * tree-ssa-pre.c (eliminate): Properly guard propagation of
8775 function declarations.
8776 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8777 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8778
5e0a7e40
RS
87792011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8780
8781 * config/h8300/predicates.md (jump_address_operand): Fix register
8782 mode check.
8783
bfe068c3
IR
87842011-03-24 Ira Rosen <ira.rosen@linaro.org>
8785
8786 * doc/invoke.texi (max-stores-to-sink): Document.
8787 * params.h (MAX_STORES_TO_SINK): Define.
8788 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8789 if either vectorization or if-conversion is disabled.
8790 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8791 tree-vect-data-refs.c vect_equal_offsets.
8792 (dr_equal_offsets_p): New function.
8793 (find_data_references_in_bb): Remove static.
8794 * tree-data-ref.h (find_data_references_in_bb): Declare.
8795 (dr_equal_offsets_p): Likewise.
8796 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8797 (vect_drs_dependent_in_basic_block): Update calls to
8798 vect_equal_offsets.
8799 (vect_check_interleaving): Likewise.
8800 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8801 (cond_if_else_store_replacement): Rename to...
8802 (cond_if_else_store_replacement_1): ... this. Change arguments and
8803 documentation.
8804 (cond_if_else_store_replacement): New function.
8805 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8806 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8807
4908b0bf
CLT
88082011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
8809
8810 PR target/46934
8811 * config/arm/arm.md (casesi): Use the gen_int_mode() function
8812 to subtract lower bound instead of GEN_INT().
8813
2be478a2
JW
88142011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
8815
8816 PR other/48179
8817 PR other/48221
8818 PR other/48234
8819 * doc/extend.texi (Alignment): Move section to match order in TOC.
8820 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8821 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8822
0c617be4
JL
88232011-03-23 Jeff Law <law@redhat.com>
8824
8825 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8826 before removing the edge.
8827
8828 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8829 it may have been freed by redirect_branch_edge or
8830 redirect_edge_succ_nodup.
8831
58da96fe
RG
88322011-03-23 Richard Guenther <rguenther@suse.de>
8833
c78dd519 8834 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
8835 (check_va_list_escapes): Likewise.
8836 (check_all_va_list_escapes): Likewise.
8837
b8beb4d1
RG
88382011-03-23 Richard Guenther <rguenther@suse.de>
8839
8840 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8841 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8842 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8843 (alias.o): Likewise.
8844 (ipa-type-escape.o): Remove.
8845 (ipa-struct-reorg.o): Likewise.
8846 (GTFILES): Remove ipa-struct-reorg.c.
8847 * alias.c: Do not include ipa-type-escape.h.
8848 * tree-ssa-alias.c: Likewise.
8849 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8850 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8851 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8852 and ipa-type-escape passes.
8853 * tree-pass.h (pass_ipa_type_escape): Remove.
8854 (pass_ipa_struct_reorg): Likewise.
8855 * ipa-struct-reorg.h: Remove.
8856 * ipa-struct-reorg.c: Likewise.
8857 * ipa-type-escape.h: Likewise.
8858 * ipa-type-escape.c: Likewise.
8859 * doc/invoke.texi (-fipa-struct-reorg): Remove.
8860 (--param struct-reorg-cold-struct-ratio): Likewise.
8861 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8862 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8863 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8864
f137aa63
AK
88652011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8866
8867 * config/s390/2084.md: Enable all insn reservations also for z9_ec
8868 cpu attribute value.
8869 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8870 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8871 * config/s390/s390.c (processor_flags_table): New constant array.
8872 (s390_handle_arch_option): Remove.
8873 (s390_handle_option): Remove s390_handle_arch_option invocations
8874 and OPT_mwarn_framesize_ handling.
8875 (s390_option_override): Remove s390_handle_arch_option invocation.
8876 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8877 warnings.
8878 * config/s390/s390.md (cpu attribute): Add z9_ec value.
8879 * config/s390/s390.opt (s390_tune, s390_arch)
8880 (march=): Replace s390_arch_option enum and values with
8881 processor_type. Set variable name to s390_arch. Set
8882 initialization value.
8883 (mtune=): Replace s390_arch_option with processor_type. Set
8884 variable name to s390_tune. Set initialization value.
8885
bf90208f
JB
88862011-03-23 Julian Brown <julian@codesourcery.com>
8887
8888 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8889 accesses which are not naturally aligned.
8890
3460fdf3
RS
88912011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8892
8893 PR target/47553
8894 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8895
a5c7d693
RS
88962011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8897
8898 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8899 parameter from "int" to "enum insn_code".
8900 (expand_operand_type): New enum.
8901 (expand_operand): New structure.
8902 (create_expand_operand): New function.
8903 (create_fixed_operand, create_output_operand): Likewise
8904 (create_input_operand, create_convert_operand_to): Likewise.
8905 (create_convert_operand_from, create_address_operand): Likewise.
8906 (create_integer_operand): Likewise.
8907 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8908 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8909 (expand_insn, expand_jump_insn): Likewise.
8910 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8911 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8912 (expand_movstr, expand_builtin___clear_cache): Likewise.
8913 (expand_builtin_lock_release): Likewise.
8914 * explow.c (allocate_dynamic_stack_space): Likewise.
8915 (probe_stack_range): Likewise. Allow check_stack to FAIL,
8916 and use the default handling in that case.
8917 * expmed.c (check_predicate_volatile_ok): Delete.
8918 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8919 (emit_cstore): Likewise.
8920 * expr.c (emit_block_move_via_movmem): Likewise.
8921 (set_storage_via_setmem, expand_assignment): Likewise.
8922 (emit_storent_insn, try_casesi): Likewise.
8923 (emit_single_push_insn): Likewise. Allow the expansion to fail.
8924 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8925 (expand_vec_shift_expr, expand_binop_directly): Likewise.
8926 (expand_twoval_unop, expand_twoval_binop): Likewise.
8927 (expand_unop_direct, emit_indirect_jump): Likewise.
8928 (emit_conditional_move, vector_compare_rtx): Likewise.
8929 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8930 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8931 (expand_sync_lock_test_and_set): Likewise.
8932 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
8933 (emit_unop_insn): Likewise.
8934 (expand_copysign_absneg): Change icode to an insn_code.
8935 (create_convert_operand_from_type): New function.
8936 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8937 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8938 (expand_insn, expand_jump_insn): Likewise.
8939 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8940 than const_int_operand for operand 2.
8941
78fadbab
AK
89422011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8943
8944 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8945 if possible.
8946
5f02387d
NF
89472011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8948
8949 * emit-rtl.c (emit_pattern_before_noloc): New function.
8950 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8951 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8952 (emit_pattern_after_noloc): New function.
8953 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8954 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8955
fdf3e18a
NF
89562011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8957
8958 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8959 (__ffsDI2): Likewise.
8960
42d085c1
RH
89612011-03-22 Richard Henderson <rth@redhat.com>
8962
8963 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8964 of !TARGET_ABI_OPEN_VMS.
8965 (alpha_trampoline_init, alpha_start_function): Likewise.
8966 (alpha_expand_epilogue, alpha_file_start): Likewise.
8967 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8968 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8969 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8970 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8971 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8972
cabbe12a
JM
89732011-03-22 Joseph Myers <joseph@codesourcery.com>
8974
8975 * config/s390/s390-opts.h: New.
8976 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8977 s390_arch_flags, s390_warn_framesize, s390_stack_size,
8978 s390_stack_guard): Remove.
8979 (s390_handle_arch_option): Return void. Take enum
8980 s390_arch_option value instead of string and searching array.
8981 (s390_handle_option): Don't assert that global structures are in
8982 use. Access variables via opts pointer. Use error_at. Don't use
8983 sscanf for -mstack-guard= or -mstack-size=. Update call to
8984 s390_handle_arch_option.
8985 (s390_option_override): Update call to s390_handle_arch_option.
8986 (s390_emit_prologue): Use %d format for s390_stack_size in
8987 diagnostic. Use %wd for HOST_WIDE_INT.
8988 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8989 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8990 * config/s390/s390.opt (config/s390/s390-opts.h): New
8991 HeaderInclude entry.
8992 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8993 s390_arch_flags, s390_warn_framesize): New Variable entries.
8994 (s390_arch_option): New Enum and EnumValue entries.
8995 (march=): Use Enum instead of Var.
8996 (mstack-guard=, mstack-size=): Use UInteger and Var.
8997 (mtune=): Use Enum.
8998
05b12036
JM
89992011-03-22 Joseph Myers <joseph@codesourcery.com>
9000
9001 * config/score/score.c (score_handle_option): Don't assert that
9002 global structures are in use. Access target_flags via opts
9003 pointer. Use value of -march= option to determine target_flags
9004 settings.
9005 * config/score/score.opt (march=): Use Enum.
9006 (score_arch): New Enum and EnumValue entries.
9007
dd51e35a
JM
90082011-03-22 Joseph Myers <joseph@codesourcery.com>
9009
9010 * config/mep/mep.c (option_mtiny_specified): Remove.
9011 (mep_option_override): Move register handling for -mivc2 from
9012 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
9013 instead of option_mtiny_specified.
9014 (mep_handle_option): Access target_flags via opts pointer. Don't
9015 assert that global structures are in use. Defer part of -mivc2
9016 handling and move it to mep_option_override.
9017 * config/mep/mep.opt (IVC2): New Mask entry.
9018 (mivc2): Use Var and Defer instead of Mask.
9019
4a8d3d91
JM
90202011-03-22 Joseph Myers <joseph@codesourcery.com>
9021
9022 * config/v850/v850-opts.h: New.
9023 * config/v850/v850.c (small_memory): Replace with
9024 small_memory_physical_max array. Make that array static const.
9025 (v850_handle_memory_option): Take integer value of argument. Take
9026 gcc_options pointer, option text and location. Return void.
9027 Update for changes to small memory structures.
9028 (v850_handle_option): Access target_flags via opts pointer. Don't
9029 assert that global structures are in use. Update calls to
9030 v850_handle_memory_option.
c78dd519
UB
9031 (v850_encode_data_area): Update references to small memory settings.
9032 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
9033 (enum small_memory_type): Move to v850-opts.h.
9034 * config/v850/v850.opt (config/v850/v850-opts.h): New
9035 HeaderInclude entry.
9036 (small_memory_max): New Variable entry.
9037 (msda): Replace by pair of options msda= and msda-. Use UInteger.
9038 (mtda, mzda): Likewise.
9039
117fdbfa
JM
90402011-03-22 Joseph Myers <joseph@codesourcery.com>
9041
9042 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9043 pointer. Don't assert that global structures are in use.
9044
d715091c
JM
90452011-03-22 Joseph Myers <joseph@codesourcery.com>
9046
9047 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9048 via opts pointer. Don't assert that global structures are in use.
9049
1bb721dc
JM
90502011-03-22 Joseph Myers <joseph@codesourcery.com>
9051
9052 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9053 (munix=93): Use Var.
9054 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9055 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9056 * config/pa/pa-opts.h: New.
9057 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9058 (pa_handle_option): Don't assert that global structures are in
9059 use. Access target_flags via opts pointer. Don't handle
9060 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9061 OPT_munix_98 here.
9062 (pa_option_override): Handle deferred OPT_mfixed_range_.
9063
cd8d8754
JM
90642011-03-22 Joseph Myers <joseph@codesourcery.com>
9065
9066 * config/mn10300/mn10300-opts.h: New.
9067 * config/mn10300/mn10300.c (mn10300_processor,
9068 mn10300_tune_string): Remove.
9069 (mn10300_handle_option): Don't assert that global structures are
9070 in use. Access mn10300_processor via opts pointer. Don't handle
9071 OPT_mtune_ here.
9072 * config/mn10300/mn10300.h (enum processor_type): Move to
9073 mn10300-opts.h.
9074 (mn10300_processor): Remove.
9075 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9076 HeaderInclude entry.
9077 (mn10300_processor): New Variable entry.
9078 (mtune=): Use Var.
9079
24e6e6b1
JM
90802011-03-22 Joseph Myers <joseph@codesourcery.com>
9081
9082 * config/microblaze/microblaze.c: Don't include opts.h.
9083 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9084 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9085 (mno-clearbss): Use Var and Warn.
9086
8a784afb
JM
90872011-03-22 Joseph Myers <joseph@codesourcery.com>
9088
9089 * config/m32r/m32r-opts.h: New.
9090 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9091 (m32r_handle_option): Don't assert that global structures are in
9092 use. Access target_flags and m32r_cache_flush_func via opts
9093 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
9094 OPT_mno_flush_trap here.
9095 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9096 include of m32r-opts.h.
9097 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9098 HeaderInclude entry.
9099 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9100 (mmodel=): Use Enum and Var.
9101 (m32r_model): New Enum and EnumValue entries.
9102 (mno-flush-trap): Use Var.
9103 (msdata=): Use Enum and Var.
9104 (m32r_sdata): New Enum and EnumValue entries.
9105
bbfc9a8c
JM
91062011-03-22 Joseph Myers <joseph@codesourcery.com>
9107
9108 * config/m32c/m32c.c: Don't include opts.h.
9109 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9110 m32c_handle_option): Remove.
9111 (m32c_option_override): Check global_options_set.x_target_memregs
9112 instead of target_memregs_set.
9113 * config/m32c/m32c.h (target_memregs): Remove.
9114 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9115 variable.
9116
e24b8335
JM
91172011-03-22 Joseph Myers <joseph@codesourcery.com>
9118
9119 * config/iq2000/iq2000-opts.h: New.
9120 * config/iq2000/iq2000.c: Don't include opts.h.
9121 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9122 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
9123 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9124 HeaderInclude entry.
9125 (iq2000_tune): New Variable entry.
9126 (march=): Add comment. Use Enum.
9127 (iq2000_arch): New Enum and EnumValue entries.
9128 (mcpu=): Use Enum and Var.
9129 (iq2000_tune): New Enum and EnumValue entries.
9130
e6cc0c98
JM
91312011-03-22 Joseph Myers <joseph@codesourcery.com>
9132
9133 * config/ia64/ia64-opts.h: New.
9134 * config/ia64/ia64.c (ia64_tune): Remove.
9135 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9136 here. Use error_at.
9137 (ia64_option_override): Handle deferred OPT_mfixed_range_.
9138 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9139 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9140 HeaderInclude entry.
9141 (ia64_tune): New Variable entry.
9142 (mfixed-range=): Use Defer and Var.
9143 (mtune=): Use Enum and Var.
9144 (ia64_tune): New Enum and EnumValue entries.
9145
db25893c
JM
91462011-03-22 Joseph Myers <joseph@codesourcery.com>
9147
9148 * config/frv/frv-opts.h: New.
9149 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9150 frv-opts.h.
9151 (frv_cpu_type): Remove.
9152 * config/frv/frv.c: Don't include opts.h.
9153 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9154 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
9155 (frv_cpu_type): New Variable entry.
9156 (frv_cpu): New Enum and EnumValue entries.
9157
6c223f5d
JM
91582011-03-22 Joseph Myers <joseph@codesourcery.com>
9159
9160 * config/cris/cris.c (cris_handle_option): Access target_flags via
9161 opts pointer. Don't assert that global structures are in use.
9162 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9163 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9164
bbd399cf
JM
91652011-03-22 Joseph Myers <joseph@codesourcery.com>
9166
9167 * config/bfin/bfin-opts.h: New.
9168 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9169 bfin_si_revision, bfin_workarounds): Remove.
9170 (bfin_cpus): Make static const.
9171 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9172 not bfin_lib_id_given.
9173 (bfin_handle_option): Don't set bfin_lib_id_given. Access
9174 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 9175 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
9176 * config/bfin/bfin.h: Include bfin-opts.h.
9177 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9178 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9179 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9180 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9181 entries.
9182
5e1b4d5a
JM
91832011-03-22 Joseph Myers <joseph@codesourcery.com>
9184
9185 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9186 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9187 or -msoft-float here.
9188 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9189 -msoft-float and -mhard-float.
c78dd519 9190 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
9191 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9192 msoft-float.
9193 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9194 -msoft-float.
9195 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9196 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9197 not mhard-float.
9198 (LIBGCC_SPEC): Don't handle -msoft-float.
9199 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9200 -mhard-float.
9201 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9202 msoft-float.
9203 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9204 -mfloat-abi=*, not -msoft-float and -mhard-float.
9205 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9206 -msoft-float.
9207 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9208 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9209 mhard-float and msoft-float.
9210 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9211 mfloat-abi=soft in comments, not mhard-float and msoft-float.
9212 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9213 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9214 mhard-float.
9215 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9216 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9217 msoft-float.
9218 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9219 not mhard-float.
9220 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9221 not msoft-float.
9222
800d1de1
RH
92232011-03-22 Richard Henderson <rth@redhat.com>
9224
9225 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9226 TARGET_ABI_WINDOWS_NT.
9227 (alpha_output_function_end_prologue): Likewise.
9228 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9229 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9230 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9231 (trap, *movsi_nt_vms): Likewise.
9232 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9233 (*tablejump_osf_nt_internal): Remove.
9234 * config/alpha/predicates.md (input_operand): Only test Pmode.
9235
c59ddd2b
JM
92362011-03-22 Joseph Myers <joseph@codesourcery.com>
9237
9238 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9239 via opts pointer. Use error_at. Don't assert that global
9240 structures are in use.
9241
1333f97f
JM
92422011-03-22 Joseph Myers <joseph@codesourcery.com>
9243
9244 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9245 (ix86_handle_option): Access ix86_isa_flags and
9246 ix86_isa_flags_explicit via opts pointer. Don't assert that
9247 global structures are in use.
9248 (ix86_function_specific_save, ix86_function_specific_restore):
9249 Update ix86_isa_flags_explicit field name.
c78dd519 9250 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
9251 (ix86_isa_flags_explicit): Rename TargetSave entry to
9252 x_ix86_isa_flags_explicit.
9253
75db85d8
RH
92542011-03-22 Richard Henderson <rth@redhat.com>
9255
9256 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9257 (alpha_option_override, direct_return): Likewise.
9258 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9259 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9260 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9261 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9262 (alpha_expand_epilogue, alpha_end_function): Likewise.
9263 (alpha_init_libfuncs): Likewise.
9264 (struct machine_function): Remove unicosmk members.
9265 (print_operand) ['t']: Remove.
9266 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9267 unicosmk_output_module_name, unicosmk_output_common,
9268 current_section_align, unicosmk_output_text_section_asm_op,
9269 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9270 unicosmk_section_type_flags, unicosmk_unique_section,
9271 unicosmk_asm_named_section, unicosmk_insert_attributes,
9272 unicosmk_output_align, unicosmk_defer_case_vector,
9273 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9274 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9275 unicosmk_output_ssib, unicosmk_add_call_info_word,
9276 unicosmk_extern_head, unicosmk_output_default_externs,
9277 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9278 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9279 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9280 * config/alpha/alpha-protos.h: Update.
9281 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9282 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9283 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9284 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9285 (*mulsi_se, mulvsi3): Likewise.
9286 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9287 (*divmodsi_internal, call, call_value, realign): Likewise.
9288 (moddi3, umoddi3): Likewise; remove duplicate expander.
9289 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9290 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9291 (*movdi_nofix): Remove r/U alternative.
9292 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9293 * config/alpha/constraints.md ("U"): Remove.
9294 * config/alpha/predicates.md (call_operand"): Don't test
9295 TARGET_ABI_UNICOSMK.
9296
96e45421
JM
92972011-03-22 Joseph Myers <joseph@codesourcery.com>
9298
9299 * target.def (handle_option): Take gcc_options and
9300 cl_decoded_option pointers and location_t.
9301 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9302 * doc/tm.texi: Regenerate.
9303 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9304 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9305 * lto-opts.c (lto_reissue_options): Generate option structure for
9306 targetm.handle_option call.
9307 * opts.c (target_handle_option): Update call to
9308 targetm.handle_option. Remove assertions about values now passed
9309 down to hook.
9310 * targhooks.c (default_target_handle_option): New.
9311 * targhooks.h (default_target_handle_option): Declare.
9312 * config/alpha/alpha.c: Include opts.h.
9313 (alpha_handle_option): Update to new hook interface.
9314 * config/arm/arm.c: Include opts.h.
9315 (arm_handle_option): Update to new hook interface.
9316 * config/arm/t-arm (arm.o): Update dependencies.
9317 * config/bfin/bfin.c: Include opts.h.
9318 (bfin_handle_option): Update to new hook interface.
9319 * config/cris/cris.c: Include opts.h.
9320 (cris_handle_option): Update to new hook interface.
9321 * config/frv/frv.c: Include opts.h.
9322 (frv_handle_option): Update to new hook interface.
9323 * config/i386/i386.c: Include opts.h.
9324 (ix86_handle_option): Update to new hook interface.
9325 (ix86_valid_target_attribute_inner_p): Generate option structure
9326 for call to ix86_handle_option.
9327 * config/i386/t-i386 (i386.o): Update dependencies.
9328 * config/ia64/ia64.c: Include opts.h.
9329 (ia64_handle_option): Update to new hook interface.
9330 * config/ia64/t-ia64 (ia64.o): Update dependencies.
9331 * config/iq2000/iq2000.c: Include opts.h.
9332 (iq2000_handle_option): Update to new hook interface.
9333 * config/m32c/m32c.c: Include opts.h.
9334 (m32c_handle_option): Update to new hook interface.
9335 * config/m32r/m32r.c: Include opts.h.
9336 (m32r_handle_option): Update to new hook interface.
9337 * config/m68k/m68k.c: Include opts.h.
9338 (m68k_handle_option): Update to new hook interface.
9339 * config/mep/mep.c: Include opts.h.
9340 (mep_handle_option): Update to new hook interface.
9341 * config/microblaze/microblaze.c: Include opts.h.
9342 (microblaze_handle_option): Update to new hook interface.
9343 * config/mips/mips.c: Include opts.h.
9344 (mips_handle_option): Update to new hook interface.
9345 * config/mn10300/mn10300.c: Include opts.h.
9346 (mn10300_handle_option): Update to new hook interface.
9347 * config/pa/pa.c: Include opts.h.
9348 (pa_handle_option): Update to new hook interface.
9349 * config/pdp11/pdp11.c: Include opts.h.
9350 (pdp11_handle_option): Update to new hook interface.
9351 * config/rs6000/rs6000.c: Include opts.h.
9352 (rs6000_handle_option): Update to new hook interface.
9353 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9354 * config/rx/rx.c: Include opts.h.
9355 (rx_handle_option): Update to new hook interface.
9356 * config/s390/s390.c: Include opts.h.
9357 (s390_handle_option): Update to new hook interface.
9358 * config/score/score.c: Include opts.h.
9359 (score_handle_option): Update to new hook interface.
9360 * config/sh/sh.c: Include opts.h.
9361 (sh_handle_option): Update to new hook interface.
9362 * config/sparc/sparc.c: Include opts.h.
9363 (sparc_handle_option): Update to new hook interface.
9364 * config/v850/v850.c: Include opts.h.
9365 (v850_handle_option): Update to new hook interface.
9366
66017846
JM
93672011-03-22 Joseph Myers <joseph@codesourcery.com>
9368
9369 * gcc.c (driver_unknown_option_callback): Only permit and save
9370 unknown -Wno- options.
9371 (driver_wrong_lang_callback): Save options directly instead of via
9372 driver_unknown_option_callback.
9373
e8b97ccd
EB
93742011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9375
9376 * combine.c (simplify_set): Try harder to find the best CC mode when
9377 simplifying a nested COMPARE on the RHS.
9378
ebb9f8b0
JM
93792011-03-22 Joseph Myers <joseph@codesourcery.com>
9380
9381 * config/alpha/gnu.h: Remove.
9382 * config/arc: Remove directory.
9383 * config/arm/netbsd.h: Remove.
9384 * config/arm/t-pe: Remove.
9385 * config/crx: Remove directory.
9386 * config/i386/netbsd.h: Remove.
9387 * config/m68hc11: Remove directory.
9388 * config/m68k/uclinux-oldabi.h: Remove.
9389 * config/mcore/mcore-pe.h: Remove.
9390 * config/mcore/t-mcore-pe: Remove.
9391 * config/netbsd-aout.h: Remove.
9392 * config/rs6000/gnu.h: Remove.
9393 * config/sh/sh-symbian.h: Remove.
9394 * config/sh/symbian-base.c: Remove.
9395 * config/sh/symbian-c.c: Remove.
9396 * config/sh/symbian-cxx.c: Remove.
9397 * config/sh/symbian-post.h: Remove.
9398 * config/sh/symbian-pre.h: Remove.
9399 * config/sh/t-symbian: Remove.
9400 * config/svr3.h: Remove.
9401 * config/vax/netbsd.h: Remove.
9402 * config.build: Don't handle i[34567]86-*-pe.
9403 * config.gcc: Remove handling of deprecations for most deprecated
9404 targets.
9405 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9406 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9407 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9408 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9409 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9410 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9411 Remove cases.
9412 * config.host: Don't handle i[34567]86-*-pe.
9413 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9414 (ASM_SPEC32): Don't handle -mcall-gnu.
9415 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9416 -mcall-gnu.
9417 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9418 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9419 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9420 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9421 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9422 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9423 conditional on SYMBIAN.
9424 * configure.ac: Don't handle powerpc*-*-gnu*.
9425 * configure: Regenerate.
9426 * doc/extend.texi (interrupt attribute): Don't mention CRX.
9427 * doc/install-old.texi (m6811, m6812): Don't mention.
9428 * doc/install.texi (arc-*-elf*): Don't document multilib option.
9429 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9430 (m68k-uclinuxoldabi): Don't mention.
9431 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9432 Remove.
9433 (-mcall-gnu): Remove.
9434 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9435 families): Remove constraint documentation.
9436
999a7d80
MS
94372011-03-22 Marius Strobl <marius@FreeBSD.org>
9438
9439 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9440 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9441 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9442
45540bcf
MM
94432011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9444
9445 PR target/48226
9446 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9447 vector when peeking at the next token for vector, don't expand the
9448 keywords.
9449
980a0ff4
GJL
94502011-03-21 Georg-Johann Lay <avr@gjlay.de>
9451
9452 * config/avr/avr-protos.h (expand_epilogue): Change prototype
9453 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9454 * config/avr/avr.c (init_cumulative_args)
9455 (avr_function_arg_advance): Use it.
9456 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9457 sibcall epilogues.
9458 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9459 (avr_function_ok_for_sibcall): ...this new function.
9460 (avr_lookup_function_attribute1): New static Function.
9461 (avr_naked_function_p, interrupt_function_p)
9462 (signal_function_p, avr_OS_task_function_p)
9463 (avr_OS_main_function_p): Use it.
9464 * config/avr/avr.md ("sibcall", "sibcall_value")
9465 ("sibcall_epilogue"): New expander.
9466 ("*call_insn", "*call_value_insn"): New insn.
9467 ("call_insn", "call_value_insn"): Remove
9468 ("call", "call_value", "epilogue"): Change expander to handle
9469 sibling calls.
9470
49168734
NC
94712011-03-21 Nick Clifton <nickc@redhat.com>
9472
9473 * doc/invoke.texi (Overall Options): Move closing brace to end of
9474 options list.
9475 (Optimization Options): Add missing @gol.
9476 (Directory Options): Likewise.
9477 (i386 and x86-64 Options): Likewise.
9478 (RS6000 and PowerPC Options): Likewise.
9479 (i386 and x86-64 Windows Options): Likewise.
9480 (V850 Options): Add text missing from descriptions.
9481
bdfe906f
RH
94822011-03-22 Richard Henderson <rth@redhat.com>
9483
9484 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9485 (avr_incoming_return_addr_rtx): New.
9486 (emit_push_byte): New.
9487 (expand_prologue): Use it. Remove incorrect dwarf annotation for
9488 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
9489 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
9490 (emit_pop_byte): New.
9491 (expand_epilogue): Use it. Pop frame pointer by bytes.
9492 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9493 (INCOMING_RETURN_ADDR_RTX): New.
9494 (INCOMING_FRAME_SP_OFFSET): New.
9495 (ARG_POINTER_CFA_OFFSET): New.
9496 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9497 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9498 (pophi): Remove.
9499
d090a5aa
RH
9500 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9501
fdf3e18a
NF
95022011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9503
9504 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9505 (FUNCTION_ARG_ADVANCE): Likewise.
9506 * tm.texi.in: Change references to them to hook references.
9507 * tm.texi: Regenerate.
9508 * targhooks.c (default_function_arg): Eliminate check for target
9509 macro.
9510 (default_function_incoming_arg): Likewise.
9511 (default_function_arg_advance): Likewise.
c78dd519 9512 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
9513 (function_arg_advance): Likewise.
9514 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9515
009d3fcf
NF
95162011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9517
9518 * tree.c (build_call_1): New function.
9519 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9520
7bec30e1
RG
95212011-03-22 Richard Guenther <rguenther@suse.de>
9522
9523 PR tree-optimization/48228
9524 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9525 for single-arg PHIs.
9526
0b7e851b
AB
95272011-03-22 Andrey Belevantsev <abel@ispras.ru>
9528
9529 PR rtl-optimization/48143
9530 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9531 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9532 sse2_cvtps2pd): Likewise.
9533
d89afca5
AK
95342011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9535
9536 * recog.c (canonicalize_change_group): Use validate_unshare_change.
9537
f471fe72
RG
95382011-03-22 Richard Guenther <rguenther@suse.de>
9539
9540 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9541 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9542 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9543 and REALIGN_LOAD_EXPR.
9544 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9545 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9546 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9547 DOT_PROD_EXPR case ...
9548 (expand_expr_real_2): ... here.
9549 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9550 and REALIGN_LOAD_EXPR.
9551 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9552 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9553 (vect_create_epilog_for_reduction): Likewise.
9554 (vectorizable_reduction): Likewise.
9555 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9556 * tree-vect-stmts.c (vectorizable_load): Likewise.
9557
f2f81d57
EB
95582011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9559
9560 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9561
ab081dd6
AK
95622011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9563
9564 * config/s390/s390.c (s390_delegitimize_address): Fix offset
9565 handling for PLTOFF/GOTOFF.
9566
6fd5332b
NC
95672011-03-22 Nick Clifton <nickc@redhat.com>
9568
9569 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9570 trailing backslash from the end of the macro definition.
9571
01841ac0
AK
95722011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9573
9574 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9575 and PLT unspecs.
9576
2ef6ce06
RS
95772011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
9578
9579 * expr.h (prepare_operand): Move to...
9580 * optabs.h (prepare_operand): ...here and change the insn code
9581 parameter from "int" to "enum insn_code".
9582 (insn_operand_matches): Declare.
9583 * expr.c (init_expr_target): Use insn_operand_matches.
9584 (compress_float_constant): Likewise.
9585 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9586 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9587 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
9588 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9589 Likewise.
2ef6ce06
RS
9590 (gen_cond_trap): Likewise.
9591 (prepare_operand): Likewise. Change icode to an insn_code.
9592 (insn_operand_matches): New function.
9593 * reload.c (find_reloads_address_1): Use insn_operand_matches.
9594 * reload1.c (gen_reload): Likewise.
9595 * targhooks.c (default_secondary_reload): Likewise.
9596
9e43ad68
UB
95972011-03-21 Uros Bizjak <ubizjak@gmail.com>
9598
9a96da32
UB
9599 * config/alpha/alpha.md (unspec): New define_c_enum.
9600 (unspecv): Ditto.
9601
96022011-03-21 Uros Bizjak <ubizjak@gmail.com>
9603
9604 PR debug/48214
9e43ad68
UB
9605 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9606 between a call and its CALL_ARG_LOCATION note.
9607
31408f60
EB
96082011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9609
9610 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9611
96122011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
9613
9614 PR c/42544
9615 PR c/48197
9616 * c-common.c (shorten_compare): If primopN is first sign-extended
9617 to opN and then zero-extended to result type, set primopN to opN.
9618
9dfd55f5
DJ
96192011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
9620
9621 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9622 for barrier handlers.
9623
f3c33d9d
MM
96242011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9625
9626 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9627 UNSPEC constants to be in the unspec enumeration, and redefine
9628 all UNSPECV constants to be in the unspecv enumeration, so that
9629 dumps print which unspec/unspec_volatile this is.
9630 * config/rs6000/vector.md (UNSPEC_*): Ditto.
9631 * config/rs6000/paired.md (UNSPEC_*): Ditto.
9632 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9633 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9634 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9635
9636 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9637 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9638 UNSPECV_LWSYNC, since these are used as unspec_volatile.
9639 * config/rs6000/sync.md (isync, lwsync): Ditto.
9640
ac43f774
RG
96412011-03-21 Richard Guenther <rguenther@suse.de>
9642
9643 * params.def (lto-min-partition): Fix typo.
9644
411cdbd8
RG
96452011-03-21 Richard Guenther <rguenther@suse.de>
9646
9647 PR c/47939
9648 * c-decl.c (grokdeclarator): Drop to the main variant only
9649 for array types. Drop flag_gen_aux_info check.
9650
1cd9e416
RG
96512011-03-21 Richard Guenther <rguenther@suse.de>
9652
9653 PR translation/47911
9654 * params.def (lto-partitions): Fix typo.
9655 (lto-min-partition): Fix wording.
9656
ada5ad67
AT
96572011-03-21 Andreas Tobler <andreast@fgznet.ch>
9658
9659 * config/rs6000/t-freebsd: Remove duplication from file.
9660
f9613c9a
RG
96612011-03-21 Richard Guenther <rguenther@suse.de>
9662
9663 PR middle-end/47661
9664 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9665
9bfbc1eb
RG
96662011-03-21 Richard Guenther <rguenther@suse.de>
9667
9668 PR lto/48210
9669 * params.def (lto-partitions): Require at least 1 partition.
9670
a2268084
RO
96712011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9672
9673 * gthr-solaris.h: Remove.
9674 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9675 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9676 (LIB_SPEC): Likewise.
9677 * config/sol2.opt (threads): Remove.
9e43ad68 9678 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
9679 (sparc*-*-solaris2*): Likewise.
9680 * configure.ac (enable_threads): Enable solaris support.
9681 * configure: Regenerate.
9e43ad68 9682 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
9683 * doc/install.texi (Configuration, --enable-threads=lib): Remove
9684 solaris.
9685
c43d9a1b
RO
96862011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9687
9688 * config.gcc: Obsolete *-*-solaris2.8*.
9689 * doc/install.texi (Specific, *-*-solaris2*): Document it.
9690
084239f4
RO
96912011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9692
9693 PR bootstrap/48135
9694 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9695 reference. Solaris 8 perl works.
9696
64cadbe7
RO
96972011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9698
9699 PR bootstrap/48135
9700 * doc/install.texi (Prerequisites): Move jar etc. up.
9701 Explain support library version requirements.
9702
eb975109
RO
97032011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9704
9705 PR bootstrap/48135
9706 * doc/install.texi (Prerequisites): Move Perl to build
9707 requirements. Always necessary on Solaris 2 with Sun ld.
9708
8a509ffd
RO
97092011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9710
9711 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9712 binutils 2.21.
9713 (Specific, i?86-*-solaris2.[89]): Likewise.
9714 (Specific, i?86-*-solaris2.10): Likewise.
9715 (Specific, mips-sgi-irix6): Likewise.
9716 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9717 Update for binutils 2.21.
9718
8fbc58a1
RO
97192011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9720
9721 * configure.ac (gcc_cv_lto_plugin): Fix typo.
9722 Allow -fuse-linker-plugin for non-default plugin linker.
9723 * configure: Regenerate.
9724
7e84ad0b
NP
97252011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
9726
9727 PR bootstrap/48167
9728 * gengtype.c (files_rules): Added rule for cp/parser.h.
9729
2f36e14b
JJ
97302011-03-21 Jakub Jelinek <jakub@redhat.com>
9731
9732 PR target/48213
9733 * config/s390/s390.c (s390_delegitimize_address): Don't call
9734 lowpart_subreg if orig_x has BLKmode.
9735
62d784f7
KT
97362011-03-21 Kai Tietz <ktietz@redhat.com>
9737
9738 PR target/12171
9e43ad68
UB
9739 * doc/plugins.texi: Adjust documentation for plugin register_callback.
9740 * tree.h (attribute_spec): Add new member affects_type_identity.
9741 * attribs.c (empty_attribute_table): Adjust attribute_spec
9742 initializers.
62d784f7
KT
9743 * config/alpha/alpha.c: Likewise.
9744 * config/arc/arc.c: Likewise.
9745 * config/arm/arm.c: Likewise.
9746 * config/avr/avr.c: Likewise.
9747 * config/bfin/bfin.c: Likewise.
9748 * config/crx/crx.c: Likewise.
9749 * config/darwin.h: Likewise.
9750 * config/h8300/h8300.c: Likewise.
9751 * config/i386/cygming.h: Likewise.
9752 * config/i386/i386.c: Likewise.
9753 * config/ia64/ia64.c: Likewise.
9754 * config/m32c/m32c.c: Likewise.
9755 * config/m32r/m32r.c: Likewise.
9756 * config/m68hc11/m68hc11.c: Likewise.
9757 * config/m68k/m68k.c: Likewise.
9758 * config/mcore/mcore.c: Likewise.
9759 * config/mep/mep.c: Likewise.
9760 * config/microblaze/microblaze.c: Likewise.
9761 * config/mips/mips.c: Likewise.
9762 * config/rs6000/rs6000.c: Likewise.
9763 * config/rx/rx.c: Likewise.
9764 * config/sh/sh.c: Likewise.
9765 * config/sol2.h: Likewise.
9766 * config/sparc/sparc.c: Likewise.
9767 * config/spu/spu.c: Likewise.
9768 * config/stormy16/stormy16.c: Likewise.
9769 * config/v850/v850.c: Likewise.
9770
54833ec0
CLT
97712011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
9772
9773 * simplify-rtx.c (simplify_binary_operation_1): Handle
9774 (xor (and A B) C) case when B and C are both constants.
9775
14a41392
MX
97762011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
9777
9778 * tree-dfa.c (add_referenced_var): Fix typo in comment.
9779
806c3492
EB
97802011-03-20 Eric Botcazou <ebotcazou@adacore.com>
9781
9782 PR bootstrap/48168
9783 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9784
65e0a0f3
JJ
97852011-03-20 Jakub Jelinek <jakub@redhat.com>
9786
9787 PR rtl-optimization/48156
9788 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9789 assume df and df_lr are not NULL.
9790
b6a75dda
RR
97912011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9792
9793 PR debug/48023
9794 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9795 between a call and its CALL_ARG_LOCATION note.
9796
5969b52d
KK
97972011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
9798
9799 PR debug/48178
9800 * config/sh/sh.c (find_barrier): Don't emit a constant pool
9801 between a call and its corresponding CALL_ARG_LOCATION note.
9802
f773c2bd
AS
98032011-03-19 Anatoly Sokolov <aesok@post.ru>
9804
9805 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9806 instead of loop. Use HARD_REGISTER_NUM_P predicate.
9807 * haifa-sched.c (setup_ref_regs): Ditto.
9808 * caller-save.c (add_used_regs_1): Ditto.
9809 * dse.c (look_for_hardregs): Ditto.
9810 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9811 * sched-rgn.c (check_live_1): Ditto.
9812
8bf872f9
JM
98132011-03-18 Joseph Myers <joseph@codesourcery.com>
9814
9815 * c-decl.c (diagnose_mismatched_decls): Give an error for
9816 redefining a typedef with variably modified type.
9817
ff8e2159
JM
98182011-03-18 Joseph Myers <joseph@codesourcery.com>
9819
9820 * c-decl.c (grokfield): Don't allow typedefs for structures or
9821 unions with no tag by default.
9822 * doc/extend.texi (Unnamed Fields): Update.
9823
16cc4440
UB
98242011-03-18 Uros Bizjak <ubizjak@gmail.com>
9825
9826 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9827 Rewrite using indirect functions.
9828 (lwp_slwpcb): Ditto.
9829 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9830 (avx_vinsertf128<mode>): Ditto.
9831
e101e12e
AK
98322011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9833
9834 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9835 unspecs.
9836
4627c7fb
AK
98372011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9838
9839 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 9840 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 9841
2d36b47f
MK
98422011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9843
9844 PR rtl-optimization/48170
9845 * gcse.c (hoist_code): Remove bogus asserts.
9846
2a3d7659
JL
98472011-03-18 Georg-Johann Lay <avr@gjlay.de>
9848
9849 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9850 computation for prologue/epilogue.
9851
34c3ef05
RO
98522011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9853
9854 * Makefile.in (check-consistency): Remove.
9855
81f2b976
JJ
98562011-03-18 Jakub Jelinek <jakub@redhat.com>
9857
9858 PR debug/48176
9859 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9860 arange_table_in_use is 0, but either text_section_used or
9861 cold_text_section_used is true. Don't call it if
9862 !info_section_emitted.
9863
68fd7765
AS
98642011-03-18 Anatoly Sokolov <aesok@post.ru>
9865
9866 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9867 FUNCTION_VALUE_REGNO_P): Remove.
9868 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9869 Remove.
9870 * config/avr/avr.c (avr_ret_register): Make static inline.
9871 (avr_function_value_regno_p): New function.
9872 (avr_libcall_value): Make static. Add 'func' argument.
9873 (avr_function_value): Make static. Rename 'func' argument to
9874 'fn_decl_or_type', forward it to avr_libcall_value. Call
9875 avr_ret_register function instead of RET_REGISTER macro.
9876 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9877
b4ef8aac
JM
98782011-03-18 Jason Merrill <jason@redhat.com>
9879
9880 PR c++/23372
9881 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9882
09a52fc3
RG
98832011-03-18 Richard Guenther <rguenther@suse.de>
9884
9885 * doc/install.texi (--enable-gold): Remove.
9886 (--with-plugin-ld): Document.
9887 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9888
2a3d7659 98892011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
9890
9891 PR middle-end/47790
9892 * expr.c (optimize_bitfield_assignment_op): Revamp to work
9893 again after expansion changes.
9894
2abbb0fe
CLT
98952011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
9896
9897 * combine.c (try_combine): Do simplification only call of
9898 subst() on i2 even when i1 is present. Update comments.
9899
2efd0aa6
KK
99002011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
9901
9902 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9903 and UNSPEC_PCREL_SYMOFF.
9904
30a49b23
AK
99052011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9906
9907 * config/s390/s390.md: Use define_c_enum for the unspec constant
9908 definitions.
9909
419e1853
JJ
99102011-03-18 Richard Henderson <rth@redhat.com>
9911 Jakub Jelinek <jakub@redhat.com>
9912
9913 PR bootstrap/48161
9914 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9915 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9916
37875856
L
99172011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9918
9919 PR middle-end/47725
9920 * combine.c (cant_combine_insn_p): Don't check zero/sign
9921 extended hard registers.
9922
76069764
L
99232011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9924
9925 PR middle-end/47725
9926 * combine.c (cant_combine_insn_p): Check zero/sign extended
9927 hard registers.
9928
24da2019
AS
99292011-03-17 Anatoly Sokolov <aesok@post.ru>
9930
9931 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9932 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9933 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9934 Change return type to bool.
9935 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9936
a82ff31f
JJ
99372011-03-17 Jakub Jelinek <jakub@redhat.com>
9938
8b29c87a
JJ
9939 PR debug/48163
9940 * var-tracking.c (prepare_call_arguments): If CALL target
9941 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9942 pc instead of looking it up using cselib_lookup and use
9943 Pmode for it if x has VOIDmode.
9944 * dwarf2out.c (gen_subprogram_die): If also both first and
9945 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9946
a82ff31f
JJ
9947 PR debug/48163
9948 * function.c (assign_parms): For data.passed_pointer parms
9949 use MEM of data.entry_parm instead of data.entry_parm itself
9950 as DECL_INCOMING_RTL.
9951 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9952 also when passed and declared mode is the same, DECL_RTL
9953 is a MEM with pseudo as address and DECL_INCOMING_RTL is
9954 a MEM too.
9955
82ce305c
JL
99562011-03-16 Jeff Law <law@redhat.com>
9957
9958 PR rtl-optimization/37273
9959 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9960 handle them like argument loads from stack slots. Do not double
9961 count memory for memory constants and argument loads from stack slots.
9962
fe58e02b
L
99632011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9964
9965 PR debug/48160
9966 * var-tracking.c (prepare_call_arguments): Check SUBREG.
9967
6fc4dbc7
L
99682011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9969
9970 PR target/48171
9971 * config/i386/i386.opt: Add Save to -mavx and -mfma.
9972
db3ed0b3
JJ
99732011-03-17 Jakub Jelinek <jakub@redhat.com>
9974
8054a389
JJ
9975 PR bootstrap/48153
9976 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9977 if dwarf_strict.
9978 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9979 Clear call_arg_locations and call_arg_loc_last always.
9980
db3ed0b3
JJ
9981 PR middle-end/48152
9982 * var-tracking.c (prepare_call_arguments): If argument needs to be
9983 passed by reference, adjust argtype and mode.
9984
1bce4ff3
RG
99852011-03-17 Richard Guenther <rguenther@suse.de>
9986
9987 PR middle-end/48134
9988 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9989 a value make sure to fold the statement.
9990
7c71147d
CLT
99912011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
9992
9993 PR target/43872
9994 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9995 return condition with !cfun->calls_alloca.
9996
0e1ee172
RG
99972011-03-17 Richard Guenther <rguenther@suse.de>
9998
9999 PR bootstrap/48148
10000 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10001 origin for decls in other ltrans units.
10002 (input_varpool_node): Likewise.
10003
f8bce518
RG
100042011-03-17 Richard Guenther <rguenther@suse.de>
10005
10006 PR middle-end/48165
10007 * tree-object-size.c (compute_object_offset): Properly return
10008 the offset operand of MEM_REFs as sizetype.
10009
1b6fa860
JJ
100102011-03-17 Jakub Jelinek <jakub@redhat.com>
10011
dabd47e7
JJ
10012 PR rtl-optimization/48141
10013 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10014 * dse.c: Include params.h.
10015 (active_local_stores_len): New variable.
10016 (add_wild_read, dse_step1): Clear it when setting active_local_stores
10017 to NULL.
10018 (record_store, check_mem_read_rtx): Decrease it when removing
10019 from the chain.
10020 (scan_insn): Likewise. Increase it when adding to chain, if it
10021 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10022 set active_local_stores to NULL before the addition.
10023 * Makefile.in (dse.o): Depend on $(PARAMS_H).
10024
1b6fa860
JJ
10025 PR rtl-optimization/48141
10026 * dse.c (record_store): If no positions are needed in an insn
10027 that cannot be deleted, at least unchain it from active_local_stores.
10028
7b5cb7d6
DS
100292011-03-16 Dodji Seketeli <dodji@redhat.com>
10030
10031 PR debug/47510
10032 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10033 (lookup_type_die_strip_naming_typedef): ... here.
10034 (get_context_die): Use it.
10035 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10036 the anonymous struct named by the naming typedef.
10037
585e9d9d
L
100382011-03-16 H.J. Lu <hongjiu.lu@intel.com>
10039
10040 PR target/48154
10041 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10042 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10043
6261ab0e
JL
100442011-03-16 Jeff Law <law@redhat.com>
10045
10046 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 10047 check for operands of conditional. Allow type to be a pointer.
6261ab0e 10048
0b0081ec
RG
100492011-03-16 Richard Guenther <rguenther@suse.de>
10050
10051 PR tree-optimization/48149
10052 * fold-const.c (fold_binary_loc): Fold
10053 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10054
64a3d647
RG
100552011-03-16 Richard Guenther <rguenther@suse.de>
10056
10057 PR tree-optimization/26134
10058 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10059 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10060 (non_rewritable_mem_ref_base): Handle complex type component
10061 accesses, constrain offsets for vector and complex extracts
10062 more properly.
10063
ef13324e
RG
100642011-03-16 Richard Guenther <rguenther@suse.de>
10065
10066 PR tree-optimization/48146
10067 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10068 operands avoiding the need for renaming.
10069
f0eddb90
RG
100702011-03-16 Richard Guenther <rguenther@suse.de>
10071
10072 * gimple-fold.c (maybe_fold_reference): Open-code relevant
10073 constant folding. Move MEM_REF canonicalization first.
10074 Rely on fold_const_aggregate_ref for initializer folding.
10075 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10076
e42348b8
JJ
100772011-03-16 Jakub Jelinek <jakub@redhat.com>
10078
29f10e71
JJ
10079 PR middle-end/48136
10080 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10081 arg0/arg1 or their arguments are always fold converted to matching
10082 types.
10083
e42348b8
JJ
10084 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10085 to nargs.
10086
55b46574
RO
100872011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10088
10089 PR lto/46944
10090 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10091 Handle in-tree gold.
10092 (ld_vers): Extract binutils version for gold.
10093 (gcc_cv_ld_hidden): Handle gold here.
10094 (gcc_cv_lto_plugin): Determine level of linker plugin support.
10095 * configure: Regenerate.
10096 * config.in: Regenerate.
10097 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10098 -fuse-linker-plugin otherwise.
10099 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
10100 (LINK_COMMAND_SPEC): Use it.
10101 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10102
2b1c5433
JJ
101032011-03-16 Jakub Jelinek <jakub@redhat.com>
10104
c2969d8e
JJ
10105 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10106 * calls.c: Remove debug.h include.
10107 (emit_call_1): Don't call virtual_call_token debug hook.
10108 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10109 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10110 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10111 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10112 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10113 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10114 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10115 dwarf2out_virtual_call): Remove.
10116 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10117 copy_call_info and virtual_call hooks.
10118 (dwarf2out_init): Don't initialize vcall_insn_table,
10119 debug_dcall_section and debug_vcall_section.
10120 (prune_unused_types): Don't mark nodes from dcall_table.
10121 (dwarf2out_finish): Don't output dcall or vcall tables.
10122 * final.c (final_scan_insn): Don't call direct_call or
10123 virtual_call debug hooks.
10124 * debug.h (struct gcc_debug_hooks): Remove direct_call,
10125 virtual_call_token, copy_call_info and virtual_call hooks.
10126 (debug_nothing_uid): Remove prototype.
10127 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10128 copy_call_info and virtual_call hooks.
10129 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10130 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10131 * debug.c (do_nothing_debug_hooks): Likewise.
10132 (debug_nothing_uid): Remove.
10133 * doc/invoke.texi (-fenable-icf-debug): Remove.
10134 * common.opt (-fenable-icf-debug): Likewise.
10135
325f5379
JJ
10136 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10137 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10138 call's MEM. Handle functions returning aggregate through a hidden
10139 first pointer. For virtual calls add clobbered pc to call arguments
10140 chain.
10141 * dwarf2out.c (gen_subprogram_die): Emit
10142 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10143 can't be emitted.
10144
a58a8e4b
JJ
10145 PR debug/45882
10146 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10147 * rtl.h (ENTRY_VALUE_EXP): Define.
10148 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10149 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10150 * print-rtl.c (print_rtx): Likewise.
10151 * gengtype.c (adjust_field_rtx_def): Likewise.
10152 * var-tracking.c (vt_add_function_parameter): Adjust
10153 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10154 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10155 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10156 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10157 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10158
2b1c5433
JJ
10159 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10160 Call var_location debug hook even on CALL_INSNs.
10161 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10162 * rtl.def (ENTRY_VALUE): New.
10163 * dwarf2out.c: Include cfglayout.h.
10164 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10165 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10166 (struct call_arg_loc_node): New type.
10167 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10168 tail_call_site_count): New variables.
10169 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10170 DW_TAG_GNU_call_site_parameter.
10171 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10172 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10173 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10174 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10175 and DW_AT_GNU_all_source_call_sites.
10176 (mem_loc_descriptor): Handle ENTRY_VALUE.
10177 (add_src_coords_attributes): Don't add enything if
10178 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10179 (dwarf2out_abstract_function): Save and clear call_arg_location,
10180 call_site_count and tail_call_site_count around dwarf2out_decl call.
10181 (gen_call_site_die): New function.
10182 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10183 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10184 (dwarf2out_function_decl): Clear call_arg_locations,
10185 call_arg_loc_last, set call_site_count and tail_call_site_count
10186 to -1 and free block_map.
10187 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10188 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
10189 followed by any real instructions.
10190 (dwarf2out_begin_function): Set call_site_count and
10191 tail_call_site_count to 0.
10192 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10193 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10194 attempt to force a DIE for it and worst case remove the attribute.
10195 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10196 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10197 the decl itself.
10198 * var-tracking.c: Include tm_p.h.
10199 (vt_stack_adjustments): For calls call note_register_arguments.
10200 (argument_reg_set): New variable.
10201 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10202 ensure the VALUE is resolved.
10203 (call_arguments): New variable.
10204 (prepare_call_arguments): New function.
10205 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10206 (struct expand_loc_callback_data): Add ignore_cur_loc field.
10207 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10208 always use the best expression.
10209 (vt_expand_loc): Add ignore_cur_loc argument.
10210 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10211 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10212 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10213 note for all calls.
10214 (vt_add_function_parameter): Use cselib_lookup_from_insn.
10215 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10216 argument. Don't call cselib_preserve_only_values and
10217 cselib_reset_table.
10218 (note_register_arguments): New function.
10219 (vt_initialize): Compute argument_reg_set. Call
10220 vt_add_function_parameters before processing basic blocks instead of
10221 afterwards. For calls call prepare_call_arguments before calling
10222 cselib_process_insn.
10223 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10224 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10225 (var-tracking.o): Depend on $(TM_P_H).
10226 * cfglayout.h (insn_scope): New prototype.
10227 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10228 * cfglayout.c (insn_scope): No longer static.
10229 * insn-notes.def (CALL_ARG_LOCATION): New.
10230 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10231 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10232 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10233 nothing for DECL_EXTERNAL BLOCK_VARS.
10234
9ef13bd0
AM
102352011-03-16 Alan Modra <amodra@gmail.com>
10236
10237 PR target/45844
10238 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10239 create invalid offset address for vsx splat insn.
10240 * config/rs6000/predicates.md (splat_input_operand): New.
10241 * config/rs6000/vsx.md (vsx_splat_*): Use it.
10242
56b67510
XDL
102432011-03-15 Xinliang David Li <davidxl@google.com>
10244
10245 PR c/47837
10246 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10247 (normalize_preds): New function.
10248 (is_use_properly_guarded): Normalize def predicates.
10249
80fffdef
RR
102502011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10251
732f37c6 10252 PR target/46788
80fffdef
RR
10253 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10254 in the output template.
10255
930672ad
RG
102562011-03-15 Richard Guenther <rguenther@suse.de>
10257
10258 PR middle-end/47650
10259 * tree-pretty-print.c (dump_function_declaration): Properly
10260 dump unprototyped and varargs function types.
10261
c7ee7b45
RG
102622011-03-15 Richard Guenther <rguenther@suse.de>
10263
10264 PR tree-optimization/13954
10265 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10266 and friends.
10267
b2ad5e37
RG
102682011-03-15 Richard Guenther <rguenther@suse.de>
10269
10270 PR tree-optimization/48037
10271 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10272 selects into BIT_FIELD_REFs.
10273 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10274 vector select.
10275
7ee93d4e
JJ
102762011-03-15 Jakub Jelinek <jakub@redhat.com>
10277
10278 PR tree-optimization/48129
10279 * builtins.c (fold_builtin_snprintf): Convert to type of
10280 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10281 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10282
e106efc7
RG
102832011-03-15 Richard Guenther <rguenther@suse.de>
10284
10285 PR tree-optimization/41490
10286 * tree-ssa-dce.c (propagate_necessity): Handle returns without
10287 value but with VUSE.
10288 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10289 return statements.
10290 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10291 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10292 * tree-tailcall.c (find_tail_calls): Ignore returns.
10293
17dea42f
RG
102942011-03-15 Richard Guenther <rguenther@suse.de>
10295
10296 PR middle-end/48031
10297 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10298 or variable-indexed array accesses when in gimple form.
10299
01c77a60
RG
103002011-03-15 Richard Guenther <rguenther@suse.de>
10301
16cc4440 10302 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 10303
77b0791e
AM
103042011-03-15 Alan Modra <amodra@gmail.com>
10305
10306 PR target/48032
10307 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10308 presume symbol_refs without a symbol_ref_decl are suitably
10309 aligned, nor other trees we may see here. Handle anchor symbols.
10310 (legitimate_constant_pool_address_p): Comment. Add mode param.
10311 Check cmodel=medium addresses. Adjust all calls.
10312 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10313 creating cmodel=medium optimized access to locals.
10314 * config/rs6000/constraints.md (R): Pass QImode to
10315 legitimate_constant_pool_address_p.
10316 * config/rs6000/predicates.md (input_operand): Pass mode to
10317 legitimate_constant_pool_address_p.
10318 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10319 Update prototype.
10320
35f61ba4
MM
103212011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10322
10323 PR target/48053
10324 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10325 64-bit constants being loaded into registers other than GPRs such
10326 as loading 0 into a VSX register.
10327
07332e6d
RO
103282011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10329
16cc4440 10330 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 10331
de888d90
JJ
103322011-03-14 Jakub Jelinek <jakub@redhat.com>
10333
ba3ceb2d
JJ
10334 PR middle-end/47917
10335 * builtins.c (fold_builtin_snprintf): New function.
10336 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10337 (fold_builtin_4): Likewise.
10338
2e64f8b8
JJ
10339 PR middle-end/38878
10340 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10341 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
10342 and C - X == X also strip nops from +/-/p+ operand.
10343 When optimizing -X == C, fold C to arg0's type.
10344
de888d90
JJ
10345 PR debug/47946
10346 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10347 emit it as add_AT_int instead of add_AT_unsigned.
10348
103492011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
10350
10351 * unwind-dw2.c: Include sys/sdt.h if it exists.
10352 (_Unwind_DebugHook): Use STAP_PROBE2.
10353 * config.in, configure: Rebuild.
10354 * configure.ac: Check for sys/sdt.h.
10355
d34abfd2
UB
103562011-03-14 Uros Bizjak <ubizjak@gmail.com>
10357
10358 * config/i386/i386.md (ROUND_FLOOR): New constant.
10359 (ROUND_CEIL): Ditto.
10360 (ROUND_TRUNC): Ditto.
10361 (ROUND_MXCSR): Ditto.
10362 (ROUND_NO_EXC): Ditto.
10363 (rint<mode>2): Use new defines instead of numerical constants.
10364 (floor<mode>2): Ditto.
10365 (ceil<mode>2): Ditto.
10366 (btrunc<mode>2): Ditto.
10367 * config/i386/i386-builtin-types.def: Define ROUND function type
10368 aliases.
10369 * config/i386/i386.c (enum ix86_builtins): Add
10370 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10371 (struct builtin_description): Add
10372 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10373 (ix86_expand_sse_round): New static function.
10374 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10375 function types.
10376 (ix86_builtin_vectorized_function): Handle
10377 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10378
87f9e23d
TT
103792011-03-14 Tom Tromey <tromey@redhat.com>
10380
10381 * c-parser.c (c_parser_asm_string_literal): Clear
10382 warn_overlength_strings.
10383
b3ab9ea2
TT
103842011-03-14 Tom Tromey <tromey@redhat.com>
10385
10386 * c-parser.c (disable_extension_diagnostics): Save
10387 warn_overlength_strings.
10388 (restore_extension_diagnostics): Restore warn_overlength_strings.
10389
6bd73dd8
JJ
103902011-03-14 Jakub Jelinek <jakub@redhat.com>
10391
10392 * BASE-VER: Change to 4.7.0.
10393
7f4d6e1b
RG
103942011-03-14 Richard Guenther <rguenther@suse.de>
10395
10396 PR middle-end/48098
10397 * tree.c (build_vector_from_val): Adjust assert to requirements
10398 and reality.
10399
c6104ef1
JJ
104002011-03-14 Jakub Jelinek <jakub@redhat.com>
10401
10402 PR bootstrap/48102
d34abfd2 10403 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 10404
dfa95e19
AT
104052011-03-14 Andreas Tobler <andreast@fgznet.ch>
10406
f60c2554 10407 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
10408 terms of target_flags_explicit. Adjust copyright year.
10409
10410 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10411 * config/rs6000/t-freebsd: New file. Add override for
10412 LIB2FUNCS_EXTRA.
10413
bb322018
CD
104142011-03-13 Chris Demetriou <cgd@google.com>
10415
10416 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10417 (-fno-diagnostics-show-option): this, to reflect current default.
10418 (-Werror=): Update text about -fno-diagnostics-show-option.
10419
12b1c80b
PB
104202011-03-12 Peter Bergner <bergner@vnet.ibm.com>
10421
10422 PR target/48053
10423 * config/rs6000/predicates.md (easy_vector_constant_add_self,
10424 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10425 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10426 mode is not V2DImode or V2DFmode.
10427 (vspltis_constant): Do not handle V2DImode and V2DFmode.
10428 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10429 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10430 registers to 0.
10431 (movdi_internal64): Likewise.
10432
57d598f7
SP
104332011-03-12 Sebastian Pop <sebastian.pop@amd.com>
10434
10435 PR tree-optimization/47127
10436 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10437 parameter.
10438 (set_cloog_options): Same.
10439 (scop_to_clast): Same.
10440 (print_clast_stmt): Do not call cloog_state_malloc and
10441 cloog_state_free.
10442 (print_generated_program): Same.
10443 (gloog): Same.
10444 * graphite-clast-to-gimple.h (cloog_state): Declared.
10445 (scop_to_clast): Adjust declaration.
10446 * graphite.c (cloog_state): Defined here.
10447 (graphite_initialize): Call cloog_state_malloc.
10448 (graphite_finalize): Call cloog_state_free.
10449
f231b5ff
JM
104502011-03-11 Jason Merrill <jason@redhat.com>
10451
10452 * attribs.c (lookup_attribute_spec): Take const_tree.
10453 * tree.h: Adjust.
10454
6a4e2bd5
JM
104552011-03-11 Joseph Myers <joseph@codesourcery.com>
10456
10457 * config/sparc/sparc.c (sparc_option_override): Use
10458 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10459
a758fd67
RG
104602011-03-11 Richard Guenther <rguenther@suse.de>
10461
10462 PR tree-optimization/48067
10463 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10464 multiplication result will be only used once on the target
10465 stmt.
10466
03dfda54
RG
104672011-03-11 Richard Guenther <rguenther@suse.de>
10468
10469 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10470
5f11a50a
RG
104712011-03-11 Richard Guenther <rguenther@suse.de>
10472
10473 PR lto/48073
10474 * tree.c (find_decls_types_r): Do not walk types only reachable
10475 from IDENTIFIER_NODEs.
10476
4074f163
JJ
104772011-03-11 Jakub Jelinek <jakub@redhat.com>
10478
10479 PR middle-end/48044
10480 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10481 all vnode->force_output nodes as needed.
10482
30f7cdcd
JM
104832011-03-11 Jason Merrill <jason@redhat.com>
10484
10485 PR c++/48069
10486 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10487 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10488
62ecfeb8
MJ
104892011-03-11 Martin Jambor <mjambor@suse.cz>
10490
10491 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10492 cgraph_node.
10493
e89e03ab
JJ
104942011-03-11 Jakub Jelinek <jakub@redhat.com>
10495
10496 PR tree-optimization/48063
10497 * ipa-inline.c (cgraph_decide_inlining): Don't try to
10498 inline functions called once if !tree_can_inline_p (node->callers).
10499
efbe978b 105002011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 10501
efbe978b
EB
10502 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10503 extra_objs.
9d6193a7
CL
10504 * config/score/score3.c: Delete.
10505 * config/score/score3.h: Delete.
10506 * config/score/mul-div.S: Delete.
10507 * config/score/sfp-machine.h: Add new file.
10508 * config/score/constraints.md: Add new file.
10509 * config/score/t-score-softfp: Add new file.
efbe978b 10510 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
10511 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10512 (score7_extra_constraint): Delete.
efbe978b 10513 (score7_option_override): Remove unused code.
9d6193a7
CL
10514 * config/score/score.c: Remove score3 and score5 define and code.
10515 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 10516 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
10517 * config/score/score.opt: Remove score3 and score5 options.
10518
5de27cca
JDA
105192011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10520
10521 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10522 when _HPUX_SOURCE is defined.
10523 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10524
18d92053
JM
105252011-03-10 Jason Merrill <jason@redhat.com>
10526
10527 PR c++/48029
10528 * stor-layout.c (layout_type): Don't set structural equality
10529 on arrays of incomplete type.
10530 * tree.c (type_hash_eq): Handle comparing them properly.
10531
67a2f76d
JJ
105322011-03-10 Jakub Jelinek <jakub@redhat.com>
10533
10534 PR debug/48043
18d92053 10535 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
10536 result mode matches original rtl mode.
10537
d845b2f9
NC
105382011-03-10 Nick Clifton <nickc@redhat.com>
10539
10540 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 10541 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 10542
db7ec035
JJ
105432011-03-09 Jakub Jelinek <jakub@redhat.com>
10544
10545 PR rtl-optimization/47866
10546 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10547 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10548 if target wasn't scalar.
10549 * function.c (assign_stack_temp_for_type): Assert that neither
10550 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10551 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10552 macro.
10553 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10554
5d304e47
AK
105552011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10556
10557 * config/s390/s390-protos.h (s390_label_align): New prototype.
10558 * config/s390/s390.c (s390_label_align): New function.
10559 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10560
93b826f0
MM
105612011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10562
10563 PR target/47755
10564 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10565 V2DI/V2DF constants. Only all 0's or all 1's are easy.
10566 (output_vec_const_move): Ditto.
10567
ef78aed6
AS
105682011-03-08 Anatoly Sokolov <aesok@post.ru>
10569
10570 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10571 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10572 * config/mips/mips.c (mips_preferred_reload_class): Make static.
10573 Change 'rclass' argument and result type to reg_class_t.
10574 (TARGET_PREFERRED_RELOAD_CLASS): Define.
10575
5f892aa0
GJL
105762011-03-08 Georg-Johann Lay <avr@gjlay.de>
10577
9e43ad68
UB
10578 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10579 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10580 (TARGET_MEMORY_MOVE_COST): Define.
10581 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 10582
32bd2409
JJ
105832011-03-08 Jakub Jelinek <jakub@redhat.com>
10584
530a4800
JJ
10585 PR debug/47881
10586 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10587 removed anything.
10588
32bd2409
JJ
10589 PR tree-optimization/48022
10590 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10591 for EQ/NE_EXPR.
10592
c7148991
JJ
105932011-03-07 Jakub Jelinek <jakub@redhat.com>
10594
10595 PR debug/47991
10596 * var-tracking.c (find_use_val): Return NULL for
10597 cui->sets && cui->store_p BLKmode MEMs.
10598
43070a6e
AS
105992011-03-07 Anatoly Sokolov <aesok@post.ru>
10600
10601 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10602 Remove.
10603 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10604 xstormy16_print_operand_address): Remove.
10605 * config/stormy16/stormy16.c (xstormy16_print_operand,
10606 xstormy16_print_operand_address): Make static.
10607 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10608
efbe978b 106092011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
10610
10611 PR target/47862
10612 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10613 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10614 before definition.
10615
cec8ac0b
ZD
106162011-03-07 Zdenek Dvorak <ook@ucw.cz>
10617
10618 PR bootstrap/48000
10619 * cfgloopmanip.c (fix_bb_placements): Return immediately
10620 if FROM is BASE_LOOP's header.
10621
59527282
PW
106222011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
10623
10624 * gimplify.c (gimplify_function_tree): Fix building calls
10625 to __builtin_return_address.
10626
617718f7
AM
106272011-03-07 Alan Modra <amodra@gmail.com>
10628
10629 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10630 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10631 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10632 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10633 return_mode args.
10634 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10635 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10636 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10637 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10638 * config/rs6000/rs6000.c
10639 (rs6000_elf_end_indicate_exec_stack): Rename to..
10640 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
10641 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
10642 (rs6000_file_start): ..here.
10643 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10644 file scope variables.
10645 (call_ABI_of_interest): New function.
10646 (init_cumulative_args): Set above vars when function return value
10647 is a float, vector, or small struct.
10648 (rs6000_function_arg_advance_1): Likewise for function args.
10649 (rs6000_va_start): Set rs6000_passes_float if variable arg function
10650 references float args.
10651
38528d50
MX
106522011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
10653
10654 * doc/cfg.texi: Remove "See" before @ref.
10655 * doc/invoke.texi: Likewise.
10656
f42cf4f4
JM
106572011-03-05 Jason Merrill <jason@redhat.com>
10658
10659 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10660
804a304d
AG
106612011-03-05 Anthony Green <green@moxielogic.com>
10662
10663 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10664
634ee309
ZD
106652011-03-05 Zdenek Dvorak <ook@ucw.cz>
10666
10667 PR rtl-optimization/47899
10668 * cfgloopmanip.c (fix_bb_placements): Fix first argument
10669 to flow_loop_nested_p when moving the loop upward.
10670
6fe471c8
RE
106712011-03-05 Richard Earnshaw <rearnsha@arm.com>
10672
10673 PR target/47719
10674 * arm.md (movhi_insn_arch4): Accept any immediate constant.
10675
cc58ceee
JJ
106762011-03-05 Jakub Jelinek <jakub@redhat.com>
10677
10678 PR tree-optimization/47967
10679 * ipa-cp.c (build_const_val): Return NULL instead of creating
10680 VIEW_CONVERT_EXPR for mismatching sizes.
10681 (ipcp_create_replace_map): Return NULL if build_const_val failed.
10682 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10683 give up on versioning.
10684
ea868305
AM
106852011-03-05 Alan Modra <amodra@gmail.com>
10686
10687 PR target/47986
10688 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10689 full cmodel medium/large lo_sum + high addresses.
10690
bc6ce334
AK
106912011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10692
10693 * config/s390/s390.c (s390_decompose_address): Reject non-literal
10694 pool references in UNSPEC_LTREL_OFFSET.
10695
87e7b310
JH
106962011-03-04 Jan Hubicka <jh@suse.cz>
10697
10698 PR lto/47497
10699 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10700 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
10701 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10702 Add node pointers.
87e7b310
JH
10703 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10704 cgraph_add_thunk): Add node pointers.
10705 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10706 associated to right node.
10707 (input_node): Update use of cgraph_same_body_alias
10708 and cgraph_add_thunk.
10709
d9c64246
CF
107102011-03-04 Changpeng Fang <changpeng.fang@amd.com>
10711
10712 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
10713 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10714 modes when the flag -mprefer-avx128 is on.
d9c64246 10715
08707076
RS
107162011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
10717
10718 * dwarf2out.c (compare_loc_operands): Fix address handling.
10719
52517c81
AM
107202011-03-04 Alan Modra <amodra@gmail.com>
10721
10722 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10723
b147c5b9
RG
107242011-03-04 Richard Guenther <rguenther@suse.de>
10725
10726 PR middle-end/47968
10727 * expmed.c (extract_bit_field_1): Prefer vector modes that
10728 vec_extract patterns can handle.
10729
8750672f
RG
107302011-03-04 Richard Guenther <rguenther@suse.de>
10731
10732 PR middle-end/47975
10733 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10734
9eac0f2a
RH
107352011-03-04 Richard Henderson <rth@redhat.com>
10736
10737 * explow.c (emit_stack_save): Remove 'after' parameter.
10738 (emit_stack_restore): Likewise.
10739 * expr.h: Update to match.
10740 * builtins.c, calls.c, stmt.c: Likewise.
10741 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10742 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10743 * function.c (expand_function_end): Insert the emit_stack_save
10744 sequence before parm_birth_insn instead of after.
10745
dfee1406
UB
107462011-03-03 Uros Bizjak <ubizjak@gmail.com>
10747
10748 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10749 (ssse3_pmaddubsw128): Ditto.
10750 (ssse3_pmaddubsw): Ditto.
10751
f1d4c3de
SE
107522011-03-03 Steve Ellcey <sje@cup.hp.com>
10753
10754 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10755
71f3a3f5
JJ
107562011-03-03 Jakub Jelinek <jakub@redhat.com>
10757
423ed416
JJ
10758 PR c/47963
10759 * gimplify.c (omp_add_variable): Only call omp_notice_variable
10760 on TYPE_SIZE_UNIT if it is a DECL.
10761
71f3a3f5
JJ
10762 PR debug/47283
10763 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10764 first operand is not is_gimple_mem_ref_addr, try to fold it.
10765 If the operand still isn't is_gimple_mem_ref_addr, clear
10766 MEM_EXPR on op0.
10767
4b1a5c0d
RG
107682011-03-03 Richard Guenther <rguenther@suse.de>
10769
10770 PR middle-end/47283
10771 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10772 match comment.
10773 (refs_may_alias_p_1): For release branches return true if
10774 we are confused by our input.
10775
b46616fd
AK
107762011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10777
10778 * config/s390/s390.c (s390_function_value): Rename to ...
10779 (s390_function_and_libcall_value): ... this.
10780 (s390_function_value): New function.
10781 (s390_libcall_value): New function.
dfee1406 10782 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
10783 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10784 target macro definitions.
10785 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10786
46d8fabb
JM
107872011-03-02 Joseph Myers <joseph@codesourcery.com>
10788
10789 * config/i386/freebsd64.h (CC1_SPEC): Define.
10790 * config/i386/linux64.h (CC1_SPEC): Define.
10791 * config/i386/x86-64.h (CC1_SPEC): Don't define.
10792
6b1ce545
AS
107932011-03-02 Anatoly Sokolov <aesok@post.ru>
10794
10795 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10796 Remove.
10797 * config/stormy16/stormy16.c: Include reload.h.
10798 (xstormy16_memory_move_cost): New function.
10799 (TARGET_MEMORY_MOVE_COST): Define.
10800
34161e98
RS
108012011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
10802
10803 PR rtl-optimization/47925
10804 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10805 with side effects. Remove the more-specific check for volatile asms.
10806
f60a97cf
AM
108072011-03-02 Alan Modra <amodra@gmail.com>
10808
10809 PR target/47935
10810 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10811 toc relative addresses for valid offsets.
10812
f2ca11ca
RG
108132011-03-01 Richard Guenther <rguenther@suse.de>
10814
10815 PR tree-optimization/47890
10816 * tree-vect-loop.c (get_initial_def_for_induction): Set
10817 related stmt properly.
10818
7a00d9ea
RG
108192011-03-01 Richard Guenther <rguenther@suse.de>
10820
10821 PR lto/47924
10822 * lto-streamer.c (lto_record_common_node): Also register
10823 the canonical type.
10824
06c7edcc
RG
108252011-03-01 Richard Guenther <rguenther@suse.de>
10826
10827 PR lto/46911
10828 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10829 Do not stream DECL_ABSTRACT_ORIGIN.
10830 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10831 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10832 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10833 Do not stream DECL_ABSTRACT_ORIGIN.
10834 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10835 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10836
998871e9
AS
108372011-02-28 Anatoly Sokolov <aesok@post.ru>
10838
10839 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10840 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 10841 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
10842 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10843 Add 'outgoing' argument.
10844 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10845 function.
10846 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10847 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10848
94369251
KT
108492011-02-28 Kai Tietz <kai.tietz@onevision.com>
10850
10851 PR debug/28047
10852 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10853 (lookup_filename): Likewise.
b2e2ea67 10854 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 10855
80a832cd
JJ
108562011-02-28 Bernd Schmidt <bernds@codesourcery.com>
10857 Jakub Jelinek <jakub@redhat.com>
10858
10859 PR middle-end/47893
10860 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10861 (assign_stack_local_1): Change last argument type to int.
10862 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10863 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 10864 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
10865 (assign_stack_local): Adjust caller.
10866 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10867 of assign_stack_local, pass 0 as last argument.
10868 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10869 callers.
10870
1b500976
JJ
108712011-02-28 Jakub Jelinek <jakub@redhat.com>
10872
f61c6f34
JJ
10873 PR debug/47283
10874 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10875 Use target address_mode and pointer_mode hooks instead of hardcoded
10876 Pmode and ptr_mode. Handle some simple cases of extending if
10877 POINTERS_EXTEND_UNSIGNED < 0.
10878 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10879 Call convert_debug_memory_address.
10880 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10881 convert_debug_memory_address.
10882
1b500976
JJ
10883 PR middle-end/46790
10884 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10885 * configure: Regenerated.
10886 * config.in: Regenerated.
10887 * varasm.c (default_function_section): Return NULL
b2e2ea67 10888 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 10889
2f2935b6
MJ
108902011-02-28 Martin Jambor <mjambor@suse.cz>
10891
10892 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10893 the description to match the printed values.
10894
474086eb
RG
108952011-02-28 Richard Guenther <rguenther@suse.de>
10896
10897 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10898 of the copied scope tree.
10899
15bf6f3a
RW
109002011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10901
10902 * doc/extend.texi (Function Attributes): Avoid deeply (and
10903 wrongly) nested tables.
10904
f6b439c9
JJ
109052011-02-27 Jakub Jelinek <jakub@redhat.com>
10906
10907 PR middle-end/47903
10908 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10909 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10910 r isn't op0 nor op1.
10911
1d8ca2c7
GJL
109122011-02-23 Georg-Johann Lay <avr@gjlay.de>
10913
10914 * config/avr/avr.md: Remove magic comment for emacs.
10915
593fca4b
GJL
109162011-02-23 Georg-Johann Lay <avr@gjlay.de>
10917
10918 PR target/45261
10919 * config/avr/avr.c (avr_option_override): Use error on bad options.
10920 (avr_help): New function.
10921 (TARGET_HELP): Define.
10922
6609216e
GJL
109232011-02-22 Georg-Johann Lay <avr@gjlay.de>
10924
10925 PR target/42240
10926 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10927 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10928
03d458af
GP
109292011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
10930
10931 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10932 (ARM Options): Ditto.
10933 (i386 and x86-64 Options): Ditto.
10934 (RX Options): Ditto.
10935 (SPARC Options): Ditto.
10936
1c379b78
TC
109372011-02-26 Tijl Coosemans <tijl@coosemans.org>
10938
10939 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10940 FreeBSD 6 and later. Generally use cpu generic.
10941
d5ed058c 109422011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 10943
d5ed058c
GP
10944 * doc/cpp.texi: Update copyright years.
10945
509d65dd 109462011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 10947
509d65dd 10948 PR target/46898
308d39cd
SB
10949 * config/lm32/lm32.md (ashrsi3): Added needed variable.
10950
509d65dd 109512011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 10952
509d65dd 10953 PR target/46898
308d39cd
SB
10954 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10955 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10956 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10957 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 10958 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
10959 (gen_int_relational): Move declarations to start of function.
10960
822ba6d7
EB
109612011-02-25 Eric Botcazou <ebotcazou@adacore.com>
10962
10963 PR tree-optimization/45470
10964 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10965 can throw internally only.
10966 * tree-vect-stmts.c (vectorizable_call): Likewise.
10967
ef795fc2
AS
109682011-02-24 Anatoly Sokolov <aesok@post.ru>
10969
10970 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10971 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10972 * config/stormy16/stormy16-protos.h
10973 (xstormy16_preferred_reload_class): Remove.
10974 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10975 static. Change 'rclass' argument and return type to reg_class_t.
10976 (TARGET_PREFERRED_RELOAD_CLASS,
10977 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10978
1c3277ee
RG
109792011-02-24 Richard Guenther <rguenther@suse.de>
10980
10981 * lto-streamer-in.c (input_bb): Do not find referenced vars
10982 in debug statements.
10983
67e18edb
JM
109842011-02-23 Jason Merrill <jason@redhat.com>
10985
10986 * common.opt (fabi-version): Document v5 and v6.
10987
b14fad9d
RG
109882011-02-23 Richard Guenther <rguenther@suse.de>
10989
10990 PR tree-optimization/47849
10991 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10992
7fcf46f5
JZ
109932011-02-23 Jie Zhang <jie@codesourcery.com>
10994
10995 * opts-common.c (decode_cmdline_option): Print empty string
10996 argument as "" in decoded->orig_option_with_args_text.
10997 * gcc.c (execute): Print empty string argument as ""
10998 in the verbose output.
10999 (do_spec_1): Keep empty string argument.
11000
f85b70fd
NF
110012011-02-23 Nathan Froyd <froydnj@codesourcery.com>
11002
11003 * config.gcc: Declare score-* and crx-* obsolete.
11004
b152a615
JZ
110052011-02-23 Jie Zhang <jie@codesourcery.com>
11006
11007 PR rtl-optimization/47763
11008 * web.c (web_main): Ignore naked clobber when replacing register.
11009
bb6e77bc
AS
110102011-02-22 Anatoly Sokolov <aesok@post.ru>
11011
11012 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11013 Remove.
11014
68bf6491
SP
110152011-02-22 Sebastian Pop <sebastian.pop@amd.com>
11016
11017 PR doc/47848
11018 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11019
88ee1fc7
MS
110202011-02-22 Mike Stump <mikestump@comcast.net>
11021
11022 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11023 assembler.
11024 * configure: Regenerate.
11025
6042d1dd
CLT
110262011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
11027
11028 PR rtl-optimization/46002
11029 * ira-color.c (update_copy_costs): Change class intersection
11030 test to reg_class_contents[] test of 'hard_regno'.
11031
7de97f9e
JM
110322011-02-21 Joseph Myers <joseph@codesourcery.com>
11033
11034 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11035 than Driver option.
11036 * config/hpux11.opt (mt): Likewise.
11037 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11038 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11039 * config/vax/elf.opt (mno-asm-pic): Likewise.
11040 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11041
d1d46f9f
MS
110422011-02-21 Mike Stump <mikestump@comcast.net>
11043
11044 PR target/47822
11045 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11046 tree so we can get save the type.
11047 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11048 for CFString instead of trying to use past the end of the builtins.
11049 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11050 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11051 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11052 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11053 Rename to darwin_builtin_cfstring.
11054 (darwin_init_cfstring_builtins): Return the built type.
11055
23e0d930
UB
110562011-02-21 Uros Bizjak <ubizjak@gmail.com>
11057
11058 PR target/47840
11059 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11060 (_mm256_insert_epi64): Use _mm_insert_epi64.
11061
192997cf
AS
110622011-02-21 Anatoly Sokolov <aesok@post.ru>
11063
11064 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11065 * config/stormy16/stormy16-protos.h
11066 (xstormy16_mode_dependent_address_p): Remove.
11067 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11068 Make static. Change return type to bool. Change argument type to
11069 const_rtx. Remove dead code.
11070 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11071
e292d003
RG
110722011-02-21 Richard Guenther <rguenther@suse.de>
11073
11074 PR lto/47820
11075 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11076 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11077 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11078 TUs context.
23e0d930 11079 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
11080 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11081
77f846e9
RG
110822011-02-20 Richard Guenther <rguenther@suse.de>
11083
11084 PR lto/47822
11085 * tree.c (free_lang_data_in_decl): Clean builtins from
11086 the TU decl BLOCK_VARS.
23e0d930 11087
b2cddfc8
AO
110882011-02-19 Alexandre Oliva <aoliva@redhat.com>
11089
11090 PR debug/47620
11091 PR debug/47630
11092 * haifa-sched.c (fix_tick_ready): Skip tick computation
11093 for debug insns.
11094
becf4c11
RG
110952011-02-19 Richard Guenther <rguenther@suse.de>
11096
11097 PR lto/47647
11098 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11099 Remove lazy BLOCK_VARS streaming.
11100 (lto_input_ts_block_tree_pointers): Likewise.
11101 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11102
27f98305
JM
111032011-02-19 Joseph Myers <joseph@codesourcery.com>
11104
11105 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11106
064bf3f4
JM
111072011-02-19 Joseph Myers <joseph@codesourcery.com>
11108
11109 * config/i386/biarch32.h, config/i386/mach.h,
11110 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11111
9215ddc3
JJ
111122011-02-19 Jakub Jelinek <jakub@redhat.com>
11113
11114 PR target/47800
11115 * config/i386/i386.md (peephole2 for shift and plus): Use
11116 operands[1] original mode in the first insn.
11117
8b021004
MS
111182011-02-18 Mike Stump <mikestump@comcast.net>
11119
65ded153 11120 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 11121
f84ae14c
JH
111222011-02-18 Jan Hubicka <jh@suse.cz>
11123
11124 PR middle-end/47788
65ded153
EB
11125 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11126 to zero when the function is not inlinable at all.
f84ae14c 11127
eddabc80
JDA
111282011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11129
11130 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11131 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11132 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11133 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11134 * config/pa/t-pa64: Likewise.
11135 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11136
ca3da783
JJ
111372011-02-18 Jakub Jelinek <jakub@redhat.com>
11138
11139 PR driver/47787
11140 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11141
430aa868
JDA
111422011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11143
11144 PR target/47792
11145 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11146
4bf7ff7e
AS
111472011-02-18 Anatoly Sokolov <aesok@post.ru>
11148
11149 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11150 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11151 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11152 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11153 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11154 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11155 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11156 m32r_load_postinc_p, m32r_store_preinc_predec_p,
11157 m32r_legitimate_address_p): New functions.
11158 * config/m32r/constraints.md (constraint "S"): Don't use
11159 STORE_PREINC_PREDEC_P.
11160 (constraint "U"): Don't use LOAD_POSTINC_P.
11161
7efcf910
CLT
111622011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
11163
11164 PR rtl-optimization/46178
11165 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11166 compute ira_hard_regno_cover_class[].
11167
237d6259
RG
111682011-02-18 Richard Guenther <rguenther@suse.de>
11169
11170 PR lto/47798
11171 * lto-streamer.h (lto_global_var_decls): Declare.
11172 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11173 statics for global var processing.
11174
12d80acc
RG
111752011-02-18 Richard Guenther <rguenther@suse.de>
11176
11177 PR tree-optimization/47737
11178 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11179 edge dominance check.
11180
abfea58d
JJ
111812011-02-18 Jakub Jelinek <jakub@redhat.com>
11182
11183 PR debug/47780
11184 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11185 avoid invalid rtx sharing.
11186
f73c8882
GP
111872011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
11188
11189 * doc/cpp.texi (Obsolete Features): Add background on the
11190 origin of assertions.
11191
d764a8e6
IS
111922011-02-17 Iain Sandoe <iains@gcc.gnu.org>
11193
11194 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 11195 objc_abi == 2.
d764a8e6
IS
11196 * config/darwin.c (output_objc_section_asm_op): Added support for
11197 ABI v1 and v2.
11198 (is_objc_metadata): New.
11199 (darwin_objc2_section): New.
11200 (darwin_objc1_section): New.
11201 (machopic_select_section): Added support for ABI v1 and v2.
11202 (darwin_emit_objc_zeroed): New.
11203 (darwin_output_aligned_bss): Detect objc metadata and treat it
11204 appropriately.
11205 (darwin_asm_output_aligned_decl_common): Same.
11206 (darwin_asm_output_aligned_decl_local): Same.
11207 * config/darwin-sections.def: Updated for ABI v1 and v2.
11208 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11209 compiling Objective-C code for the NeXT runtime, default to using
11210 ABI version 0 for 32-bit, and version 2 for 64-bit.
11211
0a8134ca
JM
112122011-02-17 Joseph Myers <joseph@codesourcery.com>
11213
11214 * common.opt (optimize_fast): New Variable.
11215 * opts.c (default_options_optimization): Use opts->x_optimize_fast
11216 instead of local variable ofast.
11217
0a256240
NP
112182011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
11219
11220 * doc/invoke.texi (fobjc-abi-version): Documented.
11221 (fobjc-nilcheck): Documented.
11222 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11223 version.
11224
fa381cb2
JM
112252011-02-17 Joseph Myers <joseph@codesourcery.com>
11226
11227 PR driver/47390
11228 * common.opt (export-dynamic): New Driver option.
11229 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11230
5437eaa6
JM
112312011-02-17 Joseph Myers <joseph@codesourcery.com>
11232
11233 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11234
bb7e6d55
AO
112352011-02-17 Alexandre Oliva <aoliva@redhat.com>
11236 Jan Hubicka <jh@suse.cz>
11237
11238 PR debug/47106
11239 PR debug/47402
11240 * cfgexpand.c (account_used_vars_for_block): Remove.
11241 (estimated_stack_frame_size): Use referenced vars.
11242 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11243 that were referenced in the original function. Test src_fn
11244 rather than cfun. Drop redundant get_var_ann.
11245 (setup_one_parameter): Drop redundant get_var_ann.
11246 (declare_return_variable): Likewise.
11247 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11248 (copy_arguments_for_versioning): Drop redundant get_var_ann.
11249 * ipa-inline.c (compute_inline_parameters): Do not compute
11250 disregard_inline_limits here.
bb7e6d55
AO
11251 (compute_inlinable_for_current, pass_inlinable): New.
11252 (pass_inline_parameters): Require PROP_referenced_vars.
11253 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 11254 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
11255 (cgraph_analyze_function): Set .disregard_inline_limits.
11256 * tree-sra.c (convert_callers): Compute inliner parameters
11257 only for functions already in SSA form.
11258
f181a8a7
JM
112592011-02-17 Joseph Myers <joseph@codesourcery.com>
11260
11261 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11262 -mlittle-endian-data.
11263
c6869789
JM
112642011-02-17 Joseph Myers <joseph@codesourcery.com>
11265
11266 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11267 -mno-fpu, not -fpu and -no-fpu.
11268 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11269 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11270
fbf4bfd3
UB
112712011-02-17 Uros Bizjak <ubizjak@gmail.com>
11272
11273 PR target/43653
11274 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11275 input reload with PLUS RTX.
11276
70be5dc7
JM
112772011-02-16 Joseph Myers <joseph@codesourcery.com>
11278
11279 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11280 of InverseVar(MDMX).
11281
30b1646e
JM
112822011-02-16 Joseph Myers <joseph@codesourcery.com>
11283
11284 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11285 --m4-340.
11286
ab7b71e9
JM
112872011-02-16 Joseph Myers <joseph@codesourcery.com>
11288
11289 * config/mn10300/mn10300.opt (mno-crt0): New.
11290
466f3f08
JM
112912011-02-16 Joseph Myers <joseph@codesourcery.com>
11292
11293 * config/m68k/uclinux.opt (static-libc): New Driver option.
11294
8226cd7b
JM
112952011-02-16 Joseph Myers <joseph@codesourcery.com>
11296
11297 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11298
45cab1d7
JM
112992011-02-16 Joseph Myers <joseph@codesourcery.com>
11300
11301 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11302 %{muser-extend-enabled}.
11303
65aab64f
RG
113042011-02-16 Richard Guenther <rguenther@suse.de>
11305
11306 PR tree-optimization/47738
11307 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11308 the TODO from tree_predictive_commoning.
11309
fc2fa4fb
JL
113102011-02-15 Jeff Law <law@redhat.com>
11311
11312 Revert
11313 2011-01-25 Jeff Law <law@redhat.com>
11314
11315 PR rtl-optimization/37273
11316 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11317 handle them like argument loads from stack slots. Do not double
11318 count memory for memory constants and argument loads from stack slots.
11319
4e380b8e
L
113202011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11321
11322 PR middle-end/47725
11323 * combine.c (cant_combine_insn_p): Revert the last change.
11324
e3a69bb4
MM
113252011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11326
11327 PR target/47755
11328 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11329 mode for vector constants. Remove code that checks for TImode.
11330
de650422
AO
113312011-02-15 Alexandre Oliva <aoliva@redhat.com>
11332
11333 PR debug/47106
11334 PR debug/47402
11335 * cgraph.h (compute_inline_parameters): Return void.
11336 * ipa-inline.c (compute_inline_parameters): Adjust.
11337
30925d94
AO
113382011-02-15 Alexandre Oliva <aoliva@redhat.com>
11339
11340 PR debug/47106
11341 PR debug/47402
11342 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11343 rather than decl.
11344 * cfgexpand.c (estimated_stack_frame_size): Likewise.
11345 * ipa-inline.c (compute_inline_parameters): Adjust.
11346
1b9a784a
AO
113472011-02-15 Alexandre Oliva <aoliva@redhat.com>
11348
11349 PR debug/47106
11350 PR debug/47402
11351 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11352 Adjust all users. Pass FN to...
11353 * tree-flow-inline.h (first_referenced_var): ... this. Add
11354 fn argument.
11355 * ipa-struct-reorg.c: Adjust.
11356 * tree-dfa.c: Adjust.
11357 * tree-into-ssa.c: Adjust.
11358 * tree-sra.c: Adjust.
11359 * tree-ssa-alias.c: Adjust.
11360 * tree-ssa-live.c: Adjust.
11361 * tree-ssa.c: Adjust.
11362 * tree-ssanames.c: Adjust.
11363 * tree-tailcall.c: Adjust.
11364
27c6b086
AO
113652011-02-15 Alexandre Oliva <aoliva@redhat.com>
11366
11367 PR debug/47106
11368 PR debug/47402
11369 * tree-flow.h (referenced_var_lookup): Add fn parameter.
11370 Adjust all callers.
11371 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11372 * tree-flow-inline.h: Adjust.
11373 * gimple-pretty-print.c: Adjust.
11374 * tree-into-ssa.c: Adjust.
11375 * tree-ssa.c: Adjust.
11376 * cfgexpand.c: Adjust.
11377
679e8183
NF
113782011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11379
fbf4bfd3
UB
11380 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11381 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11382 (EXTRA_CONSTRAINT): Delete.
11383 * config/iq2000/constraints.md: New file.
11384 * config/iq2000/iq2000.md: Include it.
679e8183
NF
11385 (define_insn ""): Delete.
11386 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11387 unsupported constraint letters from patterns.
11388 (call_value, call_value_internal1): Likewise.
11389 (call_value_multiple_internal1): Likewise.
11390
a45d420a
NC
113912011-02-15 Nick Clifton <nickc@redhat.com>
11392
11393 * config/mn10300/mn10300.c: Include tm-constrs.h.
11394 (struct liw_data): New data structure describing an LIW candidate
11395 instruction.
11396 (extract_bundle): Use struct liw_data. Allow small integer
11397 operands for some instructions.
11398 (check_liw_constraints): Use struct liw_data. Remove swapped
11399 parameter. Add comments describing the checks. Fix bug when
11400 assigning the source of liw1 to the source of liw2.
11401 (liw_candidate): Delete. Code moved into extract_bundle.
11402 (mn10300_bundle_liw): Use struct liw_data. Check constraints
11403 before swapping.
11404 * config/mn10300/predicates.md (liw_operand): New predicate.
11405 Allows registers and small integer constants.
11406 * config/mn10300/constraints.md (O): New constraint. Accetps
11407 integers in the range -8 to +7 inclusive.
11408 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11409 for moving a small integer into a register. Give this alternative
11410 LIW attributes.
11411 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11412 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11413 using the J,K,L and M constraints,
11414 (liw): Remove SI mode on second operands to allow for HI and QI
11415 mode values.
11416 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
11417 instruction.
11418
8a73faf1
L
114192011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11420
11421 PR middle-end/47725
11422 * combine.c (cant_combine_insn_p): Check zero/sign extended
11423 hard registers.
11424
48feba28
RG
114252011-02-15 Richard Guenther <rguenther@suse.de>
11426
11427 PR tree-optimization/47743
11428 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11429 for a non-type-compatible VN lookup bail out.
11430
ad1c1eeb
NF
114312011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11432
11433 * config/fr30/constraints.md: New file.
11434 * config/fr30/fr30.md: Include it.
11435 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11436 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11437 (EXTRA_CONSTRAINT): Delete.
11438
49ac143d
NF
114392011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11440
11441 * config/frv/constraints.md: New file.
11442 * config/frv/predicates.md: Include it.
11443 * config/frv/frv.c (reg_class_from_letter): Delete.
11444 (frv_option_override): Don't initialize it.
11445 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11446 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11447 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11448 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11449 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11450 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11451 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11452 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11453 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11454 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11455 (REG_CLASS_FROM_CONSTRAINT): Delete.
11456
c95f9494
JJ
114572011-02-15 Jakub Jelinek <jakub@redhat.com>
11458
11459 PR middle-end/47581
11460 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11461 if frame size is 0 in a leaf function.
11462
13aed611
RO
114632011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11464
11465 PR pch/14940
11466 * config/alpha/host-osf.c: New file.
11467 * config/alpha/x-osf: New file.
11468 * config.host (alpha*-dec-osf*): Use it.
11469
b09c3081
AS
114702011-02-14 Anatoly Sokolov <aesok@post.ru>
11471
11472 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11473 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11474 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11475 (rx_mode_dependent_address_p): ...this. Make static. Change argument
11476 type to const_rtx.
11477 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11478
d634083b
NF
114792011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11480
11481 * config/stormy16/constraints.md: New file.
11482 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11483 Use satisfies_constraint_Q and satisfies_constraint_R.
11484 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11485 Delete.
11486 (xstormy16_legitiamte_address_p): Declare.
11487 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11488 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11489 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 11490 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
11491 Un-staticize.
11492 (xstormy16_extra_constraint_p): Delete.
11493
c7dd803e
EB
114942011-02-14 Eric Botcazou <ebotcazou@adacore.com>
11495
11496 PR tree-optimization/46494
11497 * loop-unroll.c (split_edge_and_insert): Adjust comment.
11498 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11499 (pass_rtl_loop_done): Add TODO_verify_flow.
11500 * fwprop.c (pass_rtl_fwprop): Likewise.
11501 * modulo-sched.c (pass_sms): Likewise.
11502 * tree-ssa-dom.c (pass_dominator): Likewise.
11503 * tree-ssa-loop-ch.c (pass_ch): Likewise.
11504 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11505 (pass_tree_loop_done): Likewise.
11506 * tree-ssa-pre.c (execute_pre): Likewise.
11507 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11508 * tree-ssa-sink.c (pass_sink_code): Likewise.
11509 * tree-vrp.c (pass_vrp): Likewise.
11510
c6150df6
NF
115112011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11512
c7dd803e
EB
11513 * config/v850/constraints.md: New file.
11514 * config/v850/v850.md: Include it.
11515 * config/v850/predicates.md (reg_or_0_operand): Use
11516 satisfies_constraint_G.
11517 (special_symbolref_operand): Use satisfies_constraint_K.
11518 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11519 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11520 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11521 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11522 (EXTRA_CONSTRAINT): Delete.
11523 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11524 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11525 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 11526
30dd1ea3
AS
115272011-02-14 Anatoly Sokolov <aesok@post.ru>
11528
11529 PR target/47696
11530 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11531 description.
11532
944f4bb3
NF
115332011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11534
11535 * config/mcore/constraints.md: New file.
11536 * config/mcore/mcore.md: Include it.
11537 * config/mcore/mcore.c (reg_class_from_letter): Delete.
11538 * config/mcore/mcore.h (reg_class_from_letter): Delete.
11539 (REG_CLASS_FROM_LETTER): Delete.
11540 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11541 insn_const_int_ok_for_constraint.
11542 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11543 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11544 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11545 (EXTRA_CONSTRAINT): Delete.
11546
ad56a54c
RO
115472011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11548
11549 PR ada/41929
11550 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11551 (IS_SIGHANDLER): Define.
11552 (sparc64_is_sighandler): New function, split off from
11553 sparc64_fallback_frame_state.
11554 (sparc_is_sighandler): New function, split off from
11555 sparc_fallback_frame_state.
11556 (sparc64_fallback_frame_state): Merge with ...
11557 (sparc_fallback_frame_state): ... this into ...
11558 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
11559 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
11560 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
11561 stack instead of hardcoded offsets.
ad56a54c 11562
fbf4bfd3 115632011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
11564
11565 PR target/45808
11566 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11567
029c8f3e
RW
115682011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11569
11570 * configure: Regenerate.
11571
a016dc83
JM
115722011-02-12 Joseph Myers <joseph@codesourcery.com>
11573
11574 PR driver/45731
11575 * gcc.c (asm_options): Correct spec matching --target-help.
11576
8957a0ec
MJ
115772011-02-12 Martin Jambor <mjambor@suse.cz>
11578
11579 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11580 to gimple call error.
11581
6ef828bc
MS
115822011-02-12 Mike Stump <mikestump@comcast.net>
11583
11584 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11585 comments in backslash regions.
11586
a4015be5
MS
115872011-02-12 Mike Stump <mikestump@comcast.net>
11588 Jakub Jelinek <jakub@redhat.com>
11589 Iain Sandoe <iains@gcc.gnu.org>
11590
11591 PR target/47324
11592 * dwarf2out.c (output_cfa_loc): When required, apply the
11593 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11594 (output_loc_sequence): Likewise.
11595 (output_loc_operands_raw): Likewise.
11596 (output_loc_sequence_raw): Likewise.
11597 (output_cfa_loc): Likewise.
11598 (output_loc_list): Suppress register number adjustment when
11599 calling output_loc_sequence()
11600 (output_die): Likewise.
11601
5378dda2
AS
116022011-02-12 Anatoly Sokolov <aesok@post.ru>
11603
11604 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11605 Remove macros.
11606 * config/xtensa/xtensa.c (xtensa_register_move_cost,
11607 xtensa_memory_move_cost): New functions.
11608 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11609
f3d533d3
AO
116102011-02-12 Alexandre Oliva <aoliva@redhat.com>
11611
11612 PR lto/47225
11613 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11614 in the current directory.
11615 * configure: Rebuilt.
11616
9d53403c
IS
116172011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11618
11619 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 11620 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
11621 correct indents of the preceding block.
11622
a350a6c8
IS
116232011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11624
11625 * gcc.c (driver_handle_option): Concatenate the argument to -F with
11626 the switch.
11627
bab79a40
JM
116282011-02-11 Joseph Myers <joseph@codesourcery.com>
11629
11630 * common.opt (nostartfiles): New Driver option.
11631
1bbc6693
XDL
116322011-02-11 Xinliang David Li <davidxl@google.com>
11633
11634 PR tree-optimization/47707
11635 * tree-chrec.c (convert_affine_scev): Keep type precision.
11636
1da7d8c0
EB
116372011-02-11 Eric Botcazou <ebotcazou@adacore.com>
11638
11639 PR tree-optimization/47420
11640 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11641
116422011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
11643
11644 PR rtl-optimization/47614
11645 * rtl.h (check_for_inc_dec): Declare.
11646 * dse.c (check_for_inc_dec): Externalize...
11647 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11648 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11649
4df47bca
JM
116502011-02-11 Joseph Myers <joseph@codesourcery.com>
11651
11652 PR driver/47678
11653 * gcc.c (main): Do not compile inputs if there were errors in
11654 option handling.
11655 * opts-common.c (read_cmdline_option): Check for wrong language
11656 after other error checks.
11657
61502ca8
NF
116582011-02-11 Nathan Froyd <froydnj@codesourcery.com>
11659
11660 * cgraph.c: Fix comment typos.
11661 * cgraph.h: Likewise.
11662 * cgraphunit.c: Likewise.
11663 * ipa-cp.c: Likewise.
11664 * ipa-inline.c: Likewise.
11665 * ipa-prop.c: Likewise.
11666 * ipa-pure-const.c: Likewise.
11667 * ipa-ref.c: Likewise.
11668 * ipa-reference.c: Likewise.
11669
b63f974e
JJ
116702011-02-11 Jakub Jelinek <jakub@redhat.com>
11671
d50c5e0c
JJ
11672 PR debug/47684
11673 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 11674
6dd2a13c
RO
116752011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11676
11677 PR testsuite/47400
11678 * doc/sourcebuild.texi (Require Support): Document
11679 dg-require-ascii-locale.
11680
4a087ccf
MX
116812011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
11682
11683 * doc/lto.texi (Write summary): Fix missing parentheses.
11684
a4403164
DD
116852011-02-10 DJ Delorie <dj@redhat.com>
11686
11687 * config/m32c/m32c.c (m32c_option_override): Disable
11688 -fcombine-stack-adjustments until flag value tracking and compare
11689 optimization can be rewritten.
11690
4fac45bd
PB
116912011-02-10 Peter Bergner <bergner@vnet.ibm.com>
11692
11693 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11694 PROCESSOR_POWER7.
11695 (PROCESSOR_DEFAULT64): Likewise.
11696
72602cd1
RH
116972011-02-10 Richard Henderson <rth@redhat.com>
11698
11699 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11700 change from 2011-02-03.
11701 * config/rx/rx.c (flags_from_code): Likewise.
11702 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11703 is valid, n/pz otherwise.
11704 (rx_select_cc_mode): Return CCmode if Y is not zero.
11705
ea57f573
RG
117062011-02-10 Richard Guenther <rguenther@suse.de>
11707
ea4c3e65 11708 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 11709
92b1d23b
RG
117102011-02-10 Richard Guenther <rguenther@suse.de>
11711
11712 PR tree-optimization/47677
11713 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11714
525a2d06
JJ
117152011-02-10 Jakub Jelinek <jakub@redhat.com>
11716
11717 PR target/47665
11718 * combine.c (make_compound_operation): Only change shifts into
11719 multiplication for SCALAR_INT_MODE_P.
11720
06c969bd
JZ
117212011-02-10 Jie Zhang <jie@codesourcery.com>
11722
11723 PR testsuite/47622
11724 Revert
11725 2011-02-05 Jie Zhang <jie@codesourcery.com>
11726 PR debug/42631
11727 * web.c (entry_register): Don't clobber the number of the
11728 first uninitialized reference in used[].
11729
282ec48e
RG
117302011-02-09 Richard Guenther <rguenther@suse.de>
11731
11732 PR tree-optimization/47664
11733 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11734 all edges again.
11735
df98c3e8
DE
117362011-02-09 David Edelsohn <dje.gcc@gmail.com>
11737
d0f21cd6
DE
11738 PR target/46481
11739 PR target/47032
df98c3e8
DE
11740 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11741 PROCESSOR_POWER7.
11742 (PROCESSOR_DEFAULT64): Same.
11743 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11744
67b6839f
RO
117452011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11746
11747 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11748
4fd73214
MJ
117492011-02-09 Martin Jambor <mjambor@suse.cz>
11750
11751 PR middle-end/45505
11752 * tree-sra.c (struct access): New flags grp_scalar_read and
11753 grp_scalar_write. Changed description of assignment read and write
11754 flags.
11755 (dump_access): Dump new flags, reorder all of them.
11756 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11757 to detect multiple scalar reads.
11758 (analyze_access_subtree): Use the new scalar read write flags instead
11759 of the old flags. Adjusted comments.
11760
91140cd3
DD
117612011-02-08 DJ Delorie <dj@redhat.com>
11762
11763 PR target/47548
11764 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11765 patterns.
11766
4254bbfe
JM
117672011-02-08 Joseph Myers <joseph@codesourcery.com>
11768
11769 * config/m68k/uclinux.opt: New.
11770 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11771
f1fda84e
JM
117722011-02-08 Joseph Myers <joseph@codesourcery.com>
11773
11774 * config/cris/elf.opt (sim): New Driver option.
11775
4933ae74
JM
117762011-02-08 Joseph Myers <joseph@codesourcery.com>
11777
11778 * config/xtensa/elf.opt: New.
11779 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11780
4ad70280
JM
117812011-02-08 Joseph Myers <joseph@codesourcery.com>
11782
11783 * config/vax/elf.opt: New.
11784 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11785
20893707
JM
117862011-02-08 Joseph Myers <joseph@codesourcery.com>
11787
11788 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11789
b8e7038e
JM
117902011-02-08 Joseph Myers <joseph@codesourcery.com>
11791
11792 * config/gnu-user.opt: New.
11793 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11794 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11795 *-*-uclinux*): Use gnu-user.opt.
11796
e1c5225a
TS
117972011-02-08 Thomas Schwinge <thomas@schwinge.name>
11798
11799 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11800 * config/i386/gnu.h (CPP_SPEC): Likewise.
11801
5e46b0c6
ILT
118022011-02-08 Ian Lance Taylor <iant@google.com>
11803
11804 * common.opt (fcx-limited-range): Add SetByCombined flag.
11805 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11806 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11807 (fassociative-math, freciprocal-math): Likewise.
11808 (funsafe-math-optimizations): Likewise.
11809 * opth-gen.awk: Handle SetByCombined.
11810 * optc-gen.awk: Likewise.
ea4c3e65 11811 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
11812 (set_unsafe_math_optimizations_flags): Likewise.
11813 * doc/options.texi (Option properties): Document SetByCombined.
11814
32243d46
JM
118152011-02-08 Joseph Myers <joseph@codesourcery.com>
11816
11817 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11818 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11819 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11820 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11821 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11822
479c1fb3
SP
118232011-02-08 Sebastian Pop <sebastian.pop@amd.com>
11824
11825 PR tree-optimization/46834
11826 PR tree-optimization/46994
11827 PR tree-optimization/46995
11828 * graphite-sese-to-poly.c (used_outside_reduction): New.
11829 (detect_commutative_reduction): Call used_outside_reduction.
11830 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11831 translate_scalar_reduction_to_array only when at least one
11832 loop-phi/close-phi tuple has been detected.
11833
3865a06f
RG
118342011-02-08 Richard Guenther <rguenther@suse.de>
11835
11836 PR middle-end/47639
11837 * tree-vect-generic.c (expand_vector_operations_1): Update
11838 stmts here ...
11839 (expand_vector_operations): ... not here. Cleanup EH info
11840 and the CFG if required.
11841
62902f3f
RG
118422011-02-08 Richard Guenther <rguenther@suse.de>
11843
11844 PR tree-optimization/47641
11845 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11846 require type compatibility.
11847
0efb9d64
AK
118482011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11849
11850 * gimple-low.c (lower_function_body): Don't remove the location of
11851 the return statement here.
11852 (lower_gimple_return): Do it here instead but only if the return
11853 statement is actually used twice.
11854
034b8ae4
RG
118552011-02-08 Richard Guenther <rguenther@suse.de>
11856
11857 PR tree-optimization/47632
11858 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11859 unused up_to_stmt parameter, return whether cfg-cleanup is
11860 necessary, remove EH info properly.
11861 (forward_propagate_into_gimple_cond): Adjust caller.
11862 (forward_propagate_into_cond): Likewise.
11863 (forward_propagate_comparison): Likewise.
11864 (tree_ssa_forward_propagate_single_use_vars): Make
11865 forward_propagate_comparison case similar to the two others.
11866
298362c8
NC
118672011-02-08 Nick Clifton <nickc@redhat.com>
11868
11869 * config/mn10300/mn10300.opt (mliw): New command line option.
11870 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11871 (liw_bundling): New automaton.
11872 (liw): New attribute.
11873 (liw_op): New attribute.
11874 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11875 (movsi_internal): Add LIW attributes.
11876 (andsi3): Likewise.
11877 (iorsi3): Likewise.
11878 (xorsi3): Likewise.
11879 (addsi3): Separate register and immediate alternatives.
11880 Add LIW attributes.
11881 (subsi3): Likewise.
11882 (cmpsi): Likewise.
11883 (aslsi3): Likewise.
11884 (lshrsi3): Likewise.
11885 (ashrsi3): Likewise.
11886 (liw): New pattern.
11887 * config/mn10300/mn10300.c (liw_op_names): New
11888 (mn10300_print_operand): Handle 'W' operand descriptor.
11889 (extract_bundle): New function.
11890 (check_liw_constraints): New function.
11891 (liw_candidate): New function.
11892 (mn10300_bundle_liw): New function.
11893 (mn10300_reorg): New function.
11894 (TARGET_MACHINE_DEPENDENT_REORG): Define.
11895 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11896 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11897 __LIW__ or __NO_LIW__.
11898 * doc/invoke.texi: Describe the -mliw command line option.
11899
90488014
JDA
119002011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11901
11902 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11903 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11904 pthread_mutex_unlock): Remove.
11905 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11906 * config/pa/t-pa64: Likewise.
11907 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11908 shared libc if not linking against libpthread.
11909 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11910
689ff841
IS
119112011-02-07 Iain Sandoe <iains@gcc.gnu.org>
11912
11913 PR target/47558
11914 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11915 on 10.6 and later to ensure that we always use the unwinder from
11916 the system. Only add -no_compact_unwind when tarteting darwin
11917 10.6 or later.
11918
821014aa
SE
119192011-02-07 Steve Ellcey <sje@cup.hp.com>
11920
11921 PR target/46997
11922 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11923 (vec_interleave_lowv2sf): Ditto.
11924 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11925 (vec_extract_oddv2sf): Ditto.
11926
41cf94fb
MS
119272011-02-07 Mike Stump <mikestump@comcast.net>
11928
62dea57d 11929 PR target/42333
41cf94fb
MS
11930 Add __ieee_divdc3 entry point.
11931 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11932 entry point.
11933 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11934 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11935 * config/darwin.c (darwin_rename_builtins): Add.
11936 * config/darwin-protos.h (darwin_rename_builtins): Add.
11937
ee09a3dd
MM
119382011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11939
11940 PR target/47636
11941 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11942 for the condition.
11943
83296cd0
MS
119442011-02-07 Mike Stump <mikestump@comcast.net>
11945
ea4c3e65 11946 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 11947
0f4e946f
DC
119482011-02-07 Denis Chertykov <chertykov@gmail.com>
11949
11950 PR target/47534
11951 * config/avr/libgcc.S (exit): Move .endfunc
11952
1ec87690
RG
119532011-02-07 Richard Guenther <rguenther@suse.de>
11954
11955 PR tree-optimization/47615
11956 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11957 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11958 (run_scc_vn): Initialize it.
11959 (visit_reference_op_load): Use it.
11960 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11961
b46ae6da
UW
119622011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11963
11964 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11965 DImode trapping arithmetic libfuncs.
11966
c0aae19c
RG
119672011-02-07 Richard Guenther <rguenther@suse.de>
11968
11969 PR tree-optimization/47621
11970 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11971 two duplicates ...
11972 (execute_update_addresses_taken): ... here. Make it more
11973 conservative in what we accept.
11974
295d926b
JM
119752011-02-06 Joseph Myers <joseph@codesourcery.com>
11976
11977 * config/sparc/freebsd.h (ASM_SPEC): Define.
11978 * config/sparc/vxworks.h (ASM_SPEC): Define.
11979
bdeb2471
JM
119802011-02-06 Joseph Myers <joseph@codesourcery.com>
11981
11982 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11983
d5d3781a
SB
119842011-02-06 Steven Bosscher <steven@gcc.gnu.org>
11985
11986 * doc/invoke.texi: Remove reference to compiler internals from
11987 user documentation.
11988
11989 * reg-notes.def: Remove REG_VALUE_PROFILE.
11990 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11991
c42c09fc
JJ
119922011-02-05 Jakub Jelinek <jakub@redhat.com>
11993
11994 PR middle-end/47610
11995 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 11996 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 11997
beea2755
JZ
119982011-02-05 Jie Zhang <jie@codesourcery.com>
11999
12000 PR debug/42631
12001 * web.c (entry_register): Don't clobber the number of the
12002 first uninitialized reference in used[].
12003
a130584a
SP
120042011-02-04 Sebastian Pop <sebastian.pop@amd.com>
12005
12006 PR tree-optimization/46194
12007 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12008 (build_classic_dist_vector_1): Do not represent classic distance
12009 vectors when the access functions are variating in different loops.
12010
962101ac
JM
120112011-02-04 Joseph Myers <joseph@codesourcery.com>
12012
12013 * config/mips/iris6.opt: New.
12014 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12015
55eaaa5b
RH
120162011-02-04 Richard Henderson <rth@redhat.com>
12017 Steve Ellcey <sje@cup.hp.com>
12018
12019 PR target/46997
12020 * config/ia64/predicates.md (mux1_brcst_element): New.
12021 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12022 * config/ia64/ia64.c (ia64_unpack_assemble): New.
12023 (ia64_unpack_sign): New.
12024 (ia64_expand_unpack): Rewrite using new routines.
12025 (ia64_expand_widen_sum): Ditto.
12026 (ia64_expand_dot_prod_v8qi): Ditto.
12027 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12028 routines, add endian check.
12029 (pmpy2_even): Rename from pmpy2_r, add endian check.
12030 (pmpy2_odd): Rename from pmpy2_l, add endian check.
12031 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12032 (vec_widen_smult_hi_v4hi): Ditto.
12033 (vec_widen_umult_lo_v4hi): Ditto.
12034 (vec_widen_umult_hi_v4hi): Ditto.
12035 (mulv2si3): Change endian checks.
12036 (sdot_prodv4hi): Rewrite with new calls.
12037 (udot_prodv4hi): New.
12038 (vec_pack_ssat_v4hi): Add endian check.
12039 (vec_pack_usat_v4hi): Ditto.
12040 (vec_pack_ssat_v2si): Ditto.
12041 (max1_even): Rename from max1_r, add endian check.
12042 (max1_odd): Rename from max1_l, add endian check.
12043 (*mux1_rev): Format change.
12044 (*mux1_mix): Ditto.
12045 (*mux1_shuf): Ditto.
12046 (*mux1_alt): Ditto.
12047 (*mux1_brcst_v8qi): Use new predicate.
12048 (vec_extract_evenv8qi): Remove endian check.
12049 (vec_extract_oddv8qi): Ditto.
12050 (vec_interleave_lowv4hi): Format change.
12051 (vec_interleave_highv4hi): Ditto.
12052 (mix2_even): Rename from mix2_r, add endian check.
12053 (mix2_odd): Rename from mux2_l, add endian check.
12054 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12055 (vec_extract_evenodd_helper): Format change.
12056 (vec_extract_evenv4hi): Remove endian check.
12057 (vec_extract_oddv4hi): Remove endian check.
12058 (vec_interleave_lowv2si): Format change.
12059 (vec_interleave_highv2si): Format change.
12060 (vec_initv2si): Remove endian check.
12061 (vecinit_v2si): Add endian check.
12062 (reduc_splus_v2sf): Add endian check.
12063 (reduc_smax_v2sf): Ditto.
12064 (reduc_smin_v2sf): Ditto.
12065 (vec_initv2sf): Remove endian check.
12066 (fpack): Add endian check.
12067 (fswap): Add endian check.
12068 (vec_interleave_highv2sf): Add endian check.
12069 (vec_interleave_lowv2sf): Add endian check.
12070 (fmix_lr): Add endian check.
12071 (vec_setv2sf): Format change.
12072 (*vec_extractv2sf_0_be): Use shift to extract operand.
12073 (*vec_extractv2sf_1_be): New.
12074 (vec_pack_trunc_v4hi): Add endian check.
12075 (vec_pack_trunc_v2si): Format change.
12076
dcde5957
JJ
120772011-02-04 Jakub Jelinek <jakub@redhat.com>
12078
12079 PR inline-asm/23200
12080 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 12081 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
12082 (stmt_is_replaceable_p): New function.
12083 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12084 callers.
12085 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12086 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12087 SSA_NAME_DEF_STMT.
12088 * tree-flow.h (stmt_is_replaceable_p): New prototype.
12089
a64a8e5a
JM
120902011-02-04 Joseph Myers <joseph@codesourcery.com>
12091
12092 * config/rs6000/xilinx.opt: New.
12093 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12094
4da2ed2f
JM
120952011-02-04 Joseph Myers <joseph@codesourcery.com>
12096
12097 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12098
a6e508f9
AS
120992011-02-03 Anatoly Sokolov <aesok@post.ru>
12100
12101 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12102 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12103 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12104 secondary_reload_info, xtensa_secondary_reload): Remove.
12105 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12106 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12107 (xtensa_preferred_reload_class): Make static. Change return and
12108 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12109 Use CONST_DOUBLE_P predicate.
12110 (xtensa_preferred_output_reload_class): New function.
12111 (xtensa_secondary_reload): Make static.
12112
82dc0de3
JM
121132011-02-03 Joseph Myers <joseph@codesourcery.com>
12114
12115 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12116 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12117 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12118
7fece979
JJ
121192011-02-03 Jakub Jelinek <jakub@redhat.com>
12120
12121 PR middle-end/31490
12122 * output.h (SECTION_RELRO): Define.
12123 (SECTION_MACH_DEP): Adjust.
12124 (get_variable_section): New prototype.
12125 * varpool.c (varpool_finalize_named_section_flags): New function.
12126 (varpool_assemble_pending_decls): Call it.
12127 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12128 * cgraphunit.c (cgraph_output_in_order): Call
12129 varpool_finalize_named_section_flags.
12130 * varasm.c (get_section): Allow section flags conflicts between
12131 relro and read-only sections if the section hasn't been declared yet.
12132 Set SECTION_OVERRIDE after diagnosing section type conflict.
12133 (get_variable_section): No longer static.
12134 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12135 readonly sections that need relocations.
12136 (decl_readonly_section_1): New function.
12137 (decl_readonly_section): Use it.
12138
12139 Revert:
509d65dd 12140 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
12141 Steve Ellcey <sje@cup.hp.com>
12142
12143 PR middle-end/31490
12144 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12145 if section attribute used.
12146
d18d5478
JJ
121472011-02-03 Jakub Jelinek <jakub@redhat.com>
12148
12149 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12150 * config/darwin.c (SECTION_NO_ANCHOR): Define.
12151 (darwin_init_sections): Remove assertion.
12152
6479ed4b
NC
121532011-02-03 Nick Clifton <nickc@redhat.com>
12154
12155 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12156 lt and ge.
38be4072 12157 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
12158 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12159 instead of "n" and "pz".
12160 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12161 CC_FLAG_S.
12162
89843f5d
JJ
121632011-02-03 Jakub Jelinek <jakub@redhat.com>
12164
65450d64
JJ
12165 PR target/47312
12166 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12167 fma, expand FMA_EXPR as fma{,f,l} call.
12168
7d58701c
JJ
12169 PR lto/47274
12170 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12171 copy them into a unsigned char variable and pass address of it to
12172 lto_output_data_stream.
12173
89843f5d
JJ
12174 PR target/47564
12175 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12176 around backend_init_target and lang_dependent_init_target calls.
12177 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12178 (verify_cgraph_node): Don't call set_cfun here. Use
12179 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12180 Set error_found for incorrectly represented calls to thunks.
12181
4deef538
AO
121822011-02-03 Alexandre Oliva <aoliva@redhat.com>
12183
12184 PR debug/43092
12185 PR rtl-optimization/43494
12186 * rtl.h (for_each_inc_dec_fn): New type.
12187 (for_each_inc_dec): Declare.
12188 * rtlanal.c (struct for_each_inc_dec_ops): New type.
12189 (for_each_inc_dec_find_inc_dec): New fn.
12190 (for_each_inc_dec_find_mem): New fn.
12191 (for_each_inc_dec): New fn.
12192 * dse.c (struct insn_size): Remove.
12193 (replace_inc_dec, replace_inc_dec_mem): Remove.
12194 (emit_inc_dec_insn_before): New fn.
12195 (check_for_inc_dec): Use it, along with for_each_inc_dec.
12196 (canon_address): Pass mem modes to cselib_lookup.
12197 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
12198 (cselib_lookup_from_insn): Likewise.
12199 (cselib_subst_to_values): Likewise.
12200 * cselib.c (find_slot_memmode): New var.
12201 (cselib_find_slot): New fn. Use it instead of
12202 htab_find_slot_with_hash everywhere.
12203 (entry_and_rtx_equal_p): Use find_slot_memmode.
12204 (autoinc_split): New fn.
12205 (rtx_equal_for_cselib_p): Rename and implement in terms of...
12206 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
12207 Deal with autoinc. Special-case recursion into MEMs.
12208 (cselib_hash_rtx): Likewise.
12209 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
12210 address and MEM modes.
12211 (cselib_subst_to_values): Add memmode, pass it on.
12212 Deal with autoinc.
12213 (cselib_lookup): Add memmode argument, pass it on.
12214 (cselib_lookup_from_insn): Add memmode.
12215 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12216 (struct cselib_record_autoinc_data): New.
12217 (cselib_record_autoinc_cb): New fn.
12218 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
12219 mode to cselib_lookup. Reset autoinced REGs here instead of...
12220 (cselib_process_insn): ... here.
12221 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12222 to cselib_lookup.
12223 (add_uses): Likewise, also to cselib_subst_to_values.
12224 (add_stores): Likewise.
12225 * sched-deps.c (add_insn_mem_dependence): Pass mode to
12226 cselib_subst_to_values.
12227 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
12228 * gcse.c (do_local_cprop): Adjusted.
12229 * postreload.c (reload_cse_simplify_set): Adjusted.
12230 (reload_cse_simplify_operands): Adjusted.
12231 * sel-sched-dump (debug_mem_addr_value): Pass mode.
12232
1551d44a
AO
122332011-02-03 Alexandre Oliva <aoliva@redhat.com>
12234
12235 PR tree-optimization/45122
12236 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12237 unsafe assumptions when there's more than one loop exit.
12238
c9485473
MM
122392011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12240
12241 PR target/47272
12242 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12243 Document using vector double with the load/store builtins, and
12244 that the load/store builtins always use Altivec instructions.
12245
12246 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12247 to use altivec memory instructions, even on VSX.
12248 (vector_altivec_store_<mode>): Ditto.
12249
12250 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12251 function.
12252
12253 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12254 V2DF, V2DI support to load/store overloaded builtins.
12255
12256 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12257 altivec load/store builtins for V2DF/V2DI types.
12258
12259 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12260 set avoid indexed addresses on power6 if -maltivec.
12261 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12262 vector_altivec_load/vector_altivec_store builtins.
12263 (altivec_expand_st_builtin): Ditto.
12264 (altivec_expand_builtin): Add VSX memory builtins.
12265 (rs6000_init_builtins): Add V2DI types to internal types.
12266 (altivec_init_builtins): Add support for V2DF/V2DI altivec
12267 load/store builtins.
12268 (rs6000_address_for_altivec): Insure memory address is appropriate
12269 for Altivec.
12270
12271 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12272 vec_vsx_ld and vec_vsx_st.
12273 (vsx_store_<mode>): Ditto.
12274
12275 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12276 variables to hold long long types for VSX vector memory builtins.
12277 (RS6000_BTI_unsigned_long_long): Ditto.
12278 (long_long_integer_type_internal_node): Ditti.
12279 (long_long_unsigned_type_internal_node): Ditti.
12280
12281 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12282 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12283 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12284
12285 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12286 short cuts.
12287 (vec_vsx_st): Ditto.
12288
b24d1acf
JM
122892011-02-02 Joseph Myers <joseph@codesourcery.com>
12290
12291 * config/pa/pa-hpux10.opt: New.
12292 * config/hpux11.opt (pthread): New Driver option.
12293 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12294 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12295
aa18dd0f
JM
122962011-02-02 Joseph Myers <joseph@codesourcery.com>
12297
12298 * config/ia64/vms.opt: New.
12299 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12300
28fc3eee
MM
123012011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12302
12303 PR target/47580
12304 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12305 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12306 generator functions.
12307 (vsx_floatuns<VSi><mode>2): Ditto.
12308 (vsx_fix_trunc<mode><VSi>2): Ditto.
12309 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12310
b5838b1f
JM
123112011-02-02 Joseph Myers <joseph@codesourcery.com>
12312
12313 * config/i386/djgpp.opt (posix): New Driver option.
12314
0db8fa89
GP
123152011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
12316
12317 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12318 Move to the unsupported targets list.
12319
9cd4f22a
PB
123202011-02-02 Peter Bergner <bergner@vnet.ibm.com>
12321
12322 PR rtl-optimization/47525
12323 * df-scan.c: Update copyright years.
12324 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12325 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12326
9ed8059c
RO
123272011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12328
12329 * config/i386/sysv4.h (TARGET_VERSION): Remove.
12330 (SUBTARGET_RETURN_IN_MEMORY): Remove.
12331 (ASM_OUTPUT_ASCII): Remove.
12332 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12333
2a737389
JL
123342011-02-02 Jeff Law <law@redhat.com>
12335
12336 PR middle-end/47543
12337 * reload.c (find_reloads_address): Handle reg+d address where both
12338 components are invalid by reloading the entire address.
12339
9dac82c4
SP
123402011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12341 Richard Guenther <rguenther@suse.de>
12342
12343 PR tree-optimization/40979
12344 PR bootstrap/47044
12345 * passes.c (init_optimization_passes): After LIM call copy_prop
12346 and DCE to clean up.
12347 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12348
14dd9aab
SP
123492011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12350
12351 PR tree-optimization/47576
12352 PR tree-optimization/47555
12353 * doc/invoke.texi (scev-max-expr-complexity): Documented.
12354 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12355 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12356 * tree-scalar-evolution.c (follow_ssa_edge): Use
12357 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12358
5cbf5c20
RG
123592011-02-02 Richard Guenther <rguenther@suse.de>
12360
12361 PR tree-optimization/47566
12362 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12363
83d70792
AO
123642011-02-02 Alexandre Oliva <aoliva@redhat.com>
12365
e829c321
AO
12366 PR debug/47106
12367 PR debug/47402
12368 * tree-inline.c (declare_return_variable): Remove unused caller
12369 variable.
12370
83d70792
AO
12371 PR debug/47106
12372 PR debug/47402
12373 * tree-flow-inline.h (clear_is_used, is_used_p): New.
12374 * cfgexpand.c (account_used_vars_for_block): Use them.
12375 * tree-nrv.c (tree_nrv): Likewise.
12376 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12377 (dump_scope_block): Likewise.
12378 (remove_unused_locals): Likewise.
12379
aaa2ac93
AO
12380 PR debug/47106
12381 PR debug/47402
12382 * tree-inline.c (declare_return_variable): Add result decl to
12383 local decls only once.
12384 * gimple-low.c (record_vars_into): Mark newly-created variables
12385 as referenced.
12386
a59d15cf
AO
123872011-02-02 Alexandre Oliva <aoliva@redhat.com>
12388
12389 PR debug/47498
12390 PR debug/47501
12391 PR debug/45136
12392 PR debug/45130
12393 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12394 debug insns.
12395 (no_real_insns_p, schedule_block, set_priorities): Drop special
12396 treatment of boundary debug insns.
38be4072 12397 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
12398 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12399 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12400 (BOUNDARY_DEBUG_INSN_P): Likewise.
12401 (SCHEDULE_DEBUG_INSN_P): Likewise.
12402 * sched-rgn.c (init_ready_list): Drop special treatment of
12403 boundary debug insns.
12404 * final.c (rest_of_clean_state): Clear notes' BB.
12405
6fc2f091
JM
124062011-02-01 Joseph Myers <joseph@codesourcery.com>
12407
12408 * config/openbsd.opt (assert=): New Driver option.
12409
fc523387
JM
124102011-02-01 Joseph Myers <joseph@codesourcery.com>
12411
12412 * config/i386/nto.opt: New.
12413 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12414
6d9821e5
JM
124152011-02-01 Joseph Myers <joseph@codesourcery.com>
12416
12417 * config/i386/netware.opt: New.
12418 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12419
cef932d4
JM
124202011-02-01 Joseph Myers <joseph@codesourcery.com>
12421
12422 * config/interix.opt (posix): New Driver option.
12423
22843acd
DD
124242011-02-01 DJ Delorie <dj@redhat.com>
12425
56490b74
DD
12426 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12427
22843acd
DD
12428 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12429 class for A0/A1.
12430
199c8f2f
SP
124312011-02-01 Sebastian Pop <sebastian.pop@amd.com>
12432
12433 PR tree-optimization/47561
12434 * toplev.c (process_options): Print the Graphite flags. Add
12435 flag_loop_flatten to the list of options requiring Graphite.
12436
926bcf22
JM
124372011-02-01 Joseph Myers <joseph@codesourcery.com>
12438
12439 * config/i386/cygming.opt (posix): New Driver option.
12440
59793c51
JM
124412011-02-01 Joseph Myers <joseph@codesourcery.com>
12442
12443 * config/arm/vxworks.opt: New.
12444 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12445
183c38a4
JM
124462011-02-01 Joseph Myers <joseph@codesourcery.com>
12447
12448 * config/alpha/elf.opt: New.
12449 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12450 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12451
9939e416
RG
124522011-02-01 Richard Guenther <rguenther@suse.de>
12453
12454 PR tree-optimization/47559
12455 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12456 store-motion on references that can throw.
12457
4a3c9687
BS
124582011-02-01 Bernd Schmidt <bernds@codesourcery.com>
12459
12460 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12461 * tree-pass.h (TDF_CSELIB): New macro.
12462 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12463 cselib_lookup): Check for it rather than for TDF_DETAILS.
12464
dd3b31fb
L
124652011-02-01 H.J. Lu <hongjiu.lu@intel.com>
12466
12467 PR driver/47547
12468 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12469 is HOST_BIT_BUCKET.
12470
12471 * opts.c (finish_options): Don't add x_aux_base_name if it is
12472 HOST_BIT_BUCKET.
12473
34c1de79
RG
124742011-02-01 Richard Guenther <rguenther@suse.de>
12475
12476 PR tree-optimization/47555
12477 Revert
12478 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
12479
12480 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12481
dd2804d2
SB
124822011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
12483
12484 PR gcc/46692
12485 * config/lm32/t-lm32: Add multilib for all CPU options.
12486
3fd3b156
RG
124872011-02-01 Richard Guenther <rguenther@suse.de>
12488
12489 PR tree-optimization/47541
12490 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12491 sure to have a field at offset zero.
12492
f16072b6
JM
124932011-01-31 Joseph Myers <joseph@codesourcery.com>
12494
12495 * config/arc/arc.opt (EB, EL): New Driver options.
12496
6456cf2e
JM
124972011-01-31 Joseph Myers <joseph@codesourcery.com>
12498
12499 * config/alpha/osf5.opt: New.
12500 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12501
cdde6ab4
JM
125022011-01-31 Joseph Myers <joseph@codesourcery.com>
12503
12504 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12505
7633415c
SP
125062011-01-31 Sebastian Pop <sebastian.pop@amd.com>
12507
12508 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12509 -floop-interchange.
12510 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12511 is an alias of -floop-interchange and that it requires the
12512 Graphite infrastructure.
12513 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12514 flag_loop_interchange based on the value of flag_tree_loop_linear.
12515
0425d6f5
JJ
125162011-01-31 Jakub Jelinek <jakub@redhat.com>
12517 Richard Guenther <rguenther@suse.de>
12518
12519 PR tree-optimization/47538
12520 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12521 type instead of r1type, except for comparisons. For right
12522 shifts and comparisons punt if there are mismatches in
12523 sizetype vs. non-sizetype types.
12524
500b16c3
RO
125252011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12526
12527 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12528 avx_runtime.
12529
e279edb0
RO
125302011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12531
12532 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12533 version number.
12534 * configure: Regenerate.
12535
c6092243
RO
125362011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12537
12538 * configure.ac (gcc_cv_ld_static_option): Define.
12539 (gcc_cv_ld_dynamic_option): Define.
12540 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12541 instead.
12542 (HAVE_LD_STATIC_DYNAMIC): Update message.
12543 (LD_STATIC_OPTION): Define.
12544 (LD_DYNAMIC_OPTION): Define.
12545 * configure: Regenerate.
12546 * config.in: Regenerate.
12547 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12548 HAVE_LD_STATIC_DYNAMIC]: Use them.
12549
d7862be3
NC
125502011-01-31 Nick Clifton <nickc@redhat.com>
12551
12552 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12553 registers inside interrupt handlers if the handler is not a leaf
12554 function.
12555
ba4ec0e0
NC
125562011-01-31 Nick Clifton <nickc@redhat.com>
12557
12558 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12559 reg_renumber returning an INVALID_REGNUM.
12560
29a63921
AO
125612011-01-31 Alexandre Oliva <aoliva@redhat.com>
12562
12563 PR libgcj/44341
12564 * doc/install.texi: Document host options discarded when cross
12565 configuring target libraries.
12566
ef591d3f
AO
125672011-01-31 Alexandre Oliva <aoliva@redhat.com>
12568
12569 Reverted:
12570 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
12571 PR debug/45136
12572 PR debug/45130
12573 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12574 debug insns.
12575 (no_real_insns_p, schedule_block, set_priorities): Drop special
12576 treatment of boundary debug insns.
38be4072 12577 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
12578 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12579 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12580 (BOUNDARY_DEBUG_INSN_P): Likewise.
12581 (SCHEDULE_DEBUG_INSN_P): Likewise.
12582 * sched-rgn.c (init_ready_list): Drop special treatment of
12583 boundary debug insns.
12584 * final.c (rest_of_clean-state): Clear notes' BB.
12585
61052244
AM
125862011-01-31 Alan Modra <amodra@gmail.com>
12587
12588 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12589 toc relative expressions as we do in print_operand_address.
12590
c4c8962b
KH
125912011-01-30 Kazu Hirata <kazu@codesourcery.com>
12592
12593 * doc/extend.texi: Follow spelling conventions.
12594 * doc/invoke.texi: Fix a typo.
12595
e543b94c
JM
125962011-01-30 Joseph Myers <joseph@codesourcery.com>
12597
12598 * config/hpux11.opt: New.
12599 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12600 ia64*-*-hpux*): Use hpux11.opt.
12601
509d65dd 126022011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
12603
12604 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12605 to tmake_file.
12606
7be03a0e
GP
126072011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12608
12609 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12610 support sites.
12611
419d1d37
GP
126122011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12613
b596ed64
GP
12614 * doc/install.texi (Binaries): Remove outdated reference for
12615 Motorola 68HC11/68HC12 downloads.
12616
126172011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 12618
419d1d37
GP
12619 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12620 Drepper's paper.
12621
4406d0e9
JW
126222011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
12623
12624 PR bootstrap/47147
12625 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12626 used by NetBSD.
12627
38be4072 126282011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
12629
12630 * value-prof.c (check_counter): Corrected error message.
12631
0cd98787
JZ
126322011-01-29 Jie Zhang <jie@codesourcery.com>
12633
12634 * config/arm/arm.c (arm_legitimize_reload_address): New.
12635 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12636 arm_legitimize_reload_address.
38be4072 12637 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 12638
9b798ac5
ILT
126392011-01-28 Ian Lance Taylor <iant@google.com>
12640
12641 * godump.c (go_define): Ignore macros whose definitions include
12642 two adjacent operands.
12643
591e29d9
JJ
126442011-01-28 Jakub Jelinek <jakub@redhat.com>
12645
12646 PR target/42894
12647 * varasm.c (force_const_mem): Store copy of x in desc->constant
12648 instead of x itself.
12649 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12650 itself into REG_EQUAL note.
12651
62dcc44a
JM
126522011-01-28 Joseph Myers <joseph@codesourcery.com>
12653
12654 * config/freebsd.opt (posix, rdynamic): New Driver options.
12655
c9f58b9a
RO
126562011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12657
12658 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12659 -Bstatic/-Bdynamic.
12660 * configure: Regenerate.
12661
5f02b9db
JM
126622011-01-27 Joseph Myers <joseph@codesourcery.com>
12663
12664 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12665 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12666
5df97412
AS
126672011-01-27 Anatoly Sokolov <aesok@post.ru>
12668
12669 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12670 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12671 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12672 (s390_preferred_reload_class): Make static. Change return and
12673 'rclass' argument type to reg_class_t.
12674
779d4b91
JH
126752011-01-27 Jan Hubicka <jh@suse.cz>
12676
12677 PR middle-end/46949
12678 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12679 (process_function_and_variable_attributes): Check defined weakrefs.
12680
e80b21ed
MJ
126812011-01-27 Martin Jambor <mjambor@suse.cz>
12682
12683 PR tree-optimization/47228
12684 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12685 build_ref_for_offset.
12686
6dcc4f31
UW
126872011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12688
12689 * config/spu/spu-elf.h (ASM_SPEC): Remove.
12690
509d65dd 126912011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
12692
12693 PR rtl-optimization/46856
12694 * postreload.c (reload_combine_recognize_const_pattern): Do not
12695 separate cc0 setter and user on cc0 targets.
12696
04af8788
NP
126972011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
12698
12699 PR c/43082
12700 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12701 passed a VOID_TYPE expression, immediately emit an error and
12702 return error_mark_node.
12703
f7a60085
JL
127042011-01-26 Jeff Law <law@redhat.com>
12705
12706 PR rtl-optimization/47464
12707 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12708 rather than may_trap_p as needed.
12709
5c2917ec
DD
127102011-01-26 DJ Delorie <dj@redhat.com>
12711
12712 PR rtl-optimization/46878
12713 * combine.c (insn_a_feeds_b): Check for the implicit cc0
12714 setter/user dependency as well.
12715
bef16e87
EB
127162011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12717
12718 PR rtl-optimization/44469
12719 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12720 after removing trivially dead basic blocks.
12721
c75d884b
JM
127222011-01-26 Joseph Myers <joseph@codesourcery.com>
12723
12724 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12725 * config/frv/frv.h (LINK_SPEC): Likewise.
12726 * config/i386/netware.h (LINK_SPEC): Likewise.
12727 * config/m68k/linux.h (ASM_SPEC): Likewise.
12728 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12729 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12730 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12731 * config/sparc/linux.h (ASM_SPEC): Likewise.
12732 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12733 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12734
d3153553
JM
127352011-01-26 Joseph Myers <joseph@codesourcery.com>
12736
12737 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12738 * config/frv/frv.h (ASM_SPEC): Likewise.
12739 * config/m68k/linux.h (ASM_SPEC): Likewise.
12740 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12741 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12742 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12743 * config/sparc/linux.h (ASM_SPEC): Likewise.
12744 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12745 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12746
b89b1e9d
JM
127472011-01-26 Joseph Myers <joseph@codesourcery.com>
12748
12749 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12750 * config/frv/frv.h (LINK_SPEC): Likewise.
12751 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12752
12eb1a9c
JM
127532011-01-26 Joseph Myers <joseph@codesourcery.com>
12754
12755 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12756 * config/frv/frv.h (ASM_SPEC): Likewise.
12757 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12758 * config/m68k/linux.h (ASM_SPEC): Likewise.
12759 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12760 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12761 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12762 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12763 * config/sparc/linux.h (ASM_SPEC): Likewise.
12764 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12765 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12766 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12767
e435f098
SE
127682011-01-26 Steve Ellcey <sje@cup.hp.com>
12769
12770 PR target/46997
12771 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12772 (*mux2): Ditto.
12773 (vec_extract_evenodd_help): Ditto.
12774 (vec_extract_evenv4hi): Ditto.
12775 (vec_extract_oddv4hi): Ditto.
12776 (vec_interleave_lowv2si): Ditto.
12777 (vec_interleave_highv2si): Ditto.
12778 (vec_extract_evenv2si): Ditto.
12779 (vec_extract_oddv2si: Ditto.
12780 (vec_pack_trunc_v2si): Ditto.
12781
34f0eee0
JH
127822011-01-22 Jan Hubicka <jh@suse.cz>
12783
12784 PR target/47237
12785 * cgraph.h (cgraph_local_info): New field can_change_signature.
12786 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12787 signature can change.
12788 (ipcp_estimate_growth): Call sequence simplify only if calle signature
12789 can change.
12790 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12791 (cgraph_function_versioning): We can not change signature of functions
12792 that don't allow that.
12793 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12794 (lto_input_node): Likewise.
38be4072
UB
12795 * ipa-inline.c (compute_inline_parameters): Compute
12796 local.can_change_signature.
34f0eee0 12797 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
12798 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12799 functions that can not change signature.
34f0eee0 12800 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
12801 init_cumulative_args): Do not use local calling conventions
12802 for functions that can not change signature.
34f0eee0 12803
980ca891
JH
128042011-01-22 Jan Hubicka <jh@suse.cz>
12805
12806 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12807
768e3c60
RG
128082011-01-26 Richard Guenther <rguenther@suse.de>
12809
12810 PR tree-optimization/47190
61052244
AM
12811 * cgraphunit.c (process_common_attributes): New function.
12812 (process_function_and_variable_attributes): Use it.
768e3c60 12813
21d6a1c7
RG
128142011-01-26 Richard Guenther <rguenther@suse.de>
12815
12816 PR lto/47423
12817 * cgraphbuild.c (record_eh_tables): Record reference to personality
12818 function.
12819
48bb58b1
AO
128202011-01-26 Alexandre Oliva <aoliva@redhat.com>
12821
12822 PR debug/45454
12823 * sel-sched.c (moveup_expr): Don't let debug insns prevent
12824 non-debug insns from moving up.
12825
58c741a6
DK
128262011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12827
12828 PR target/40125
12829 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12830 t-dlldir{,-x} fragment for build and add it to tmake_file.
12831 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12832 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12833 * config/i386/t-dlldir: New file.
12834 (SHLIB_DLLDIR): Define.
12835 * config/i386/t-dlldir-x: New file.
12836 (SHLIB_DLLDIR): Define.
12837 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12838 (SHLIB_INSTALL): Use it.
12839
bff99262
CLT
128402011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
12841
12842 PR target/47246
12843 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12844 lower bound of the allowed Thumb-2 coprocessor load/store
12845 index range to -256. Add explaining comment.
12846
82c03907
ILT
128472011-01-25 Ian Lance Taylor <iant@google.com>
12848
12849 * godump.c (go_define): Improve lexing of macro expansion to only
12850 accept expressions which match Go spec.
12851
47ea1edf
DK
128522011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12853
d4dba752 12854 PR c++/43601
47ea1edf
DK
12855 * tree.c (handle_dll_attribute): Handle it.
12856 * doc/extend.texi (@item dllexport): Mention it.
12857 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12858
744f0946
ILT
128592011-01-25 Ian Lance Taylor <iant@google.com>
12860
12861 PR tree-optimization/26854
12862 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12863 (decl_jump_unsafe): Move higher in file, with no other change.
12864 (bind): Set has_jump_unsafe_decl if appropriate.
12865 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12866 (check_earlier_gotos): Likewise.
12867 (c_check_switch_jump_warnings): Likewise.
12868
5734f2b3
JW
128692011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
12870
12871 * doc/invoke.texi (Warning Options): Add missing hyphen.
12872 (-fprofile-dir): Minor grammatical fixes.
12873 (-fbranch-probabilities): Likewise.
12874
9bdbdcef
AO
128752011-01-25 Alexandre Oliva <aoliva@redhat.com>
12876
12877 PR debug/45136
12878 PR debug/45130
12879 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12880 debug insns.
12881 (no_real_insns_p, schedule_block, set_priorities): Drop special
12882 treatment of boundary debug insns.
38be4072 12883 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
12884 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12885 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12886 (BOUNDARY_DEBUG_INSN_P): Likewise.
12887 (SCHEDULE_DEBUG_INSN_P): Likewise.
12888 * sched-rgn.c (init_ready_list): Drop special treatment of
12889 boundary debug insns.
12890 * final.c (rest_of_clean-state): Clear notes' BB.
12891
b305e3da
SP
128922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12893
12894 * Makefile.in (LAMBDA_H): Removed.
12895 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12896 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12897 lambda-trans.o, and tree-loop-linear.o.
12898 (lto-symtab.o): Remove dependence on LAMBDA_H.
12899 (tree-loop-linear.o): Remove rule.
12900 (lambda-mat.o): Same.
12901 (lambda-trans.o): Same.
12902 (lambda-code.o): Same.
12903 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12904 (tree-vect-slp.o): Same.
12905 * hwint.h (gcd): Moved here.
12906 (least_common_multiple): Same.
12907 * lambda-code.c: Removed.
12908 * lambda-mat.c: Removed.
12909 * lambda-trans.c: Removed.
12910 * lambda.h: Removed.
12911 * tree-loop-linear.c: Removed.
12912 * lto-symtab.c: Do not include lambda.h.
12913 * omega.c (gcd): Removed.
12914 * passes.c (init_optimization_passes): Remove pass_linear_transform.
12915 * tree-data-ref.c (print_lambda_vector): Moved here.
12916 (lambda_vector_copy): Same.
12917 (lambda_matrix_copy): Same.
12918 (lambda_matrix_id): Same.
12919 (lambda_vector_first_nz): Same.
12920 (lambda_matrix_row_add): Same.
12921 (lambda_matrix_row_exchange): Same.
12922 (lambda_vector_mult_const): Same.
12923 (lambda_vector_negate): Same.
12924 (lambda_matrix_row_negate): Same.
12925 (lambda_vector_equal): Same.
12926 (lambda_matrix_right_hermite): Same.
12927 * tree-data-ref.h: Do not include lambda.h.
12928 (lambda_vector): Moved here.
12929 (lambda_matrix): Same.
12930 (dependence_level): Same.
12931 (lambda_transform_legal_p): Removed declaration.
12932 (lambda_collect_parameters): Same.
12933 (lambda_compute_access_matrices): Same.
12934 (lambda_vector_gcd): Same.
12935 (lambda_vector_new): Same.
12936 (lambda_vector_clear): Same.
12937 (lambda_vector_lexico_pos): Same.
12938 (lambda_vector_zerop): Same.
12939 (lambda_matrix_new): Same.
12940 * tree-flow.h (least_common_multiple): Removed declaration.
12941 * tree-parloops.c (lambda_trans_matrix): Moved here.
12942 (LTM_MATRIX): Same.
12943 (LTM_ROWSIZE): Same.
12944 (LTM_COLSIZE): Same.
12945 (LTM_DENOMINATOR): Same.
12946 (lambda_trans_matrix_new): Same.
12947 (lambda_matrix_vector_mult): Same.
12948 (lambda_transform_legal_p): Same.
12949 * tree-pass.h (pass_linear_transform): Removed declaration.
12950 * tree-ssa-loop.c (tree_linear_transform): Removed.
12951 (gate_tree_linear_transform): Removed.
12952 (pass_linear_transform): Removed.
12953 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12954 flag_loop_interchange.
12955
6bdfdb96
JJ
129562011-01-25 Jakub Jelinek <jakub@redhat.com>
12957
12958 PR tree-optimization/47265
12959 PR tree-optimization/47443
12960 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12961 if name still has some uses.
12962
e4cba915
MJ
129632011-01-25 Martin Jambor <mjambor@suse.cz>
12964
12965 PR tree-optimization/47382
12966 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12967 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12968
509d65dd 129692011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
12970
12971 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12972 sjlj_except_unwind_info.
12973
194313e2
RG
129742011-01-25 Richard Guenther <rguenther@suse.de>
12975
12976 PR tree-optimization/47426
12977 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12978 visible functions results escape.
12979
147a0bcf
JJ
129802011-01-25 Jakub Jelinek <jakub@redhat.com>
12981
12982 PR target/45701
12983 * config/arm/arm.c (any_sibcall_uses_r3): New function.
12984 (arm_get_frame_offsets): Use it.
12985
db963b52
SP
129862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12987 Jakub Jelinek <jakub@redhat.com>
12988
12989 PR tree-optimization/47271
12990 * tree-if-conv.c (bb_postdominates_preds): New.
12991 (if_convertible_bb_p): Call bb_postdominates_preds.
12992 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12993 (predicate_scalar_phi): Call bb_postdominates_preds.
12994
bcddd3b9
NC
129952011-01-25 Nick Clifton <nickc@redhat.com>
12996
12997 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12998 * config/rx/rx.c (rx_function_value): Likewise.
12999 (rx_promote_function_mode): Likewise.
13000 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13001 in order to make it legitimate.
38be4072
UB
13002 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13003 make sure that the first operand is the same as the result register.
bcddd3b9
NC
13004 (addsi3_unspec): Delete.
13005 (subdi3): Do not accept immediate operands.
13006 (subdi3_internal): Likewise.
13007
7e6cb022
JL
130082011-01-25 Jeff Law <law@redhat.com>
13009
13010 PR rtl-optimization/37273
13011 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13012 handle them like argument loads from stack slots. Do not double
13013 count memory for memory constants and argument loads from stack slots.
13014
9ffa621e
JJ
130152011-01-25 Jakub Jelinek <jakub@redhat.com>
13016
13017 PR tree-optimization/47427
13018 PR tree-optimization/47428
13019 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13020 coalesce if the new root var would be TREE_READONLY.
13021
5bd6e652
RG
130222011-01-25 Richard Guenther <rguenther@suse.de>
13023
13024 PR middle-end/47414
13025 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13026 correct type for TBAA.
13027
7c48ea69
SP
130282011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13029
13030 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13031 (close_phi_written_to_memory): Call for_each_index with
13032 dr_indices_valid_in_loop.
13033
38013f25
SP
130342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13035
13036 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13037 when it is initialized.
13038
5c640e29
SP
130392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13040
13041 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13042 call to graphite_find_data_references_in_stmt.
13043 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13044 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
13045 call to graphite_find_data_references_in_stmt.
13046 (analyze_drs_in_stmts): Same.
13047 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13048 in which the scalar analysis of indices is performed.
13049 (create_data_ref): Same. Update call to dr_analyze_indices.
13050 (find_data_references_in_stmt): Update call to create_data_ref.
13051 (graphite_find_data_references_in_stmt): Same.
13052 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13053 declaration.
13054 (create_data_ref): Same.
13055 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13056 call to create_data_ref.
13057
ac53c069
SP
130582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13059
13060 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 13061 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 13062
3d17df15
SP
130632011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13064
13065 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13066 VAR_DECL, PARM_DECL, and RESULT_DECL.
13067
c513da01
SP
130682011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13069
13070 * graphite-dependences.c (reduction_dr_1): Allow several reductions
13071 in a reduction PBB.
13072 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13073 that have already been marked as PBB_IS_REDUCTION.
13074
3a292d59
SP
130752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13076
13077 * graphite-scop-detection.c (same_close_phi_node): New.
13078 (remove_duplicate_close_phi): New.
13079 (make_close_phi_nodes_unique): New.
13080 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13081
ba858447
SP
130822011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13083
13084 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13085 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13086 of both data references to be the same.
13087
8d865c56
SP
130882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13089
38be4072
UB
13090 * graphite-dependences.c (build_lexicographical_constraint): Remove
13091 the gdim parameter.
13092 (build_lexicographical_constraint): Adjust call to
13093 ppl_powerset_is_empty.
8d865c56
SP
13094 (dependence_polyhedron): Same.
13095 (graphite_legal_transform_dr): Same.
13096 (graphite_carried_dependence_level_k): Same.
38be4072
UB
13097 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13098 parameter.
8d865c56
SP
13099 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13100
50034a36
SP
131012011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13102
13103 * graphite-sese-to-poly.c
13104 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13105 (close_phi_written_to_memory): New.
13106 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13107 and unshare_expr.
13108
0deada9e
SP
131092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13110
13111 * doc/install.texi: Update the expected version number of PPL to 0.11.
13112 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13113 #if PPL_VERSION_MINOR < 11.
13114
d7d3d6af
SP
131152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13116
13117 * graphite-dependences.c: Include graphite-cloog-util.h.
13118 (new_poly_ddr): Inlined into dependence_polyhedron.
13119 (free_poly_ddr): Moved close by new_poly_ddr.
13120 (dependence_polyhedron_1): Renamed dependence_polyhedron.
13121 Early return NULL when ppl_powerset_is_empty returns true.
13122 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
13123 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
13124 (graphite_legal_transform_dr): Call new_poly_ddr.
13125 (graphite_carried_dependence_level_k): Same.
13126 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
13127 (dot_transformed_deps_stmt_1): Removed.
13128 (dot_deps_stmt_1): Call dot_deps_stmt_2.
13129 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
13130 (dot_deps_1): Call dot_deps_2.
13131 * Makefile.in (graphite-dependences.o): Add missing dependence on
13132 graphite-cloog-util.h.
13133
28c5db57
SP
131342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13135
13136 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13137 (build_lexicographical_constraint): Same.
13138 (dependence_polyhedron_1): Same.
13139 (graphite_legal_transform_dr): Same.
13140 (graphite_carried_dependence_level_k): Same.
13141 * graphite-ppl.c (ppl_powerset_is_empty): New.
13142 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13143 * tree-data-ref.c (dump_data_reference): Print the basic block index.
13144
5168d98f
SP
131452011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13146
13147 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13148 the "a followed by b" relation and document it.
13149
4a40293a
SP
131502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13151
13152 * graphite-dependences.c (build_lexicographical_constraint): Stop the
13153 iteration when the bag of constraints is empty.
13154
271fb6fa
SP
131552011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13156
13157 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13158
92d23680
SP
131592011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13160
13161 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13162 nest and two loop depths as parameters.
13163 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13164 lst_perfect_nestify.
13165
2f51deff
SP
131662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13167
13168 * graphite-dependences.c (print_pddr): Call
13169 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13170
07f3593c
SP
131712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13172
13173 * graphite-ppl.c (debug_gmp_value): New.
13174 * graphite-ppl.h (debug_gmp_value): Declared.
13175
3fae6099
TG
131762011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
13177
13178 * doc/install.texi: Document availability of cloog-0.16.
13179
1c3ba85b
SP
131802011-01-25 Vladimir Kargov <kargov@gmail.com>
13181
13182 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13183 invalid postdominance info.
13184
e8ba94fc
JH
131852011-01-24 Jan Hubicka <jh@suse.cz>
13186
13187 PR c/21659
13188 * doc/extend.texi (weak pragma): Drop claim that it must
13189 appear before definition.
13190 * varasm.c (merge_weak, declare_weak): Only sanity check
13191 that DECL is not output at a time it is declared weak.
13192
2b6e2d13
KZ
131932011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
13194
13195 * machmode.def: Fixed comments.
1c3ba85b 13196
9841210f
KT
131972011-01-24 Kai Tietz <kai.tietz@onevision.com>
13198
13199 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13200
132012011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
13202
13203 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 13204 WORDS_BIG_ENDIAN.
e046112d 13205
a6c5070a
L
132062011-01-24 H.J. Lu <hongjiu.lu@intel.com>
13207
13208 PR target/46519
13209 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13210 (block_info): Add scanned and prev.
13211 (move_or_delete_vzeroupper_2): Return if the basic block
13212 has been scanned and the upper 128bit state is unchanged
13213 from the last scan.
13214 (move_or_delete_vzeroupper_1): Return true if the exit
13215 state is changed.
13216 (move_or_delete_vzeroupper): Visit basic blocks using the
13217 work-list based algorithm based on vt_find_locations in
13218 var-tracking.c.
13219
13220 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13221
a40d79d7
NC
132222011-01-24 Nick Clifton <nickc@redhat.com>
13223
13224 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13225 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13226 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
13227 then define __v850e1__.
13228 * doc/invoke.texi: Document -mv850es.
13229
440eb8de
RH
132302011-01-24 Richard Henderson <rth@redhat.com>
13231
13232 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13233 compound unordered comparisons.
13234 * config/rx/rx.c (rx_split_fp_compare): Remove.
13235 * config/rx/rx-protos.h: Update.
13236 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13237 (cbranchsf4): Don't call rx_split_fp_compare.
13238 (*cbranchsf4): Use rx_split_cbranch.
13239 (*cmpsf): Don't accept "i" constraint.
13240 (*conditional_branch): Only valid after reload.
13241 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
13242
3ff79f99
MM
132432011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13244
13245 PR target/47385
13246 * config/rs6000/altivec.md (vector constant splitters): Add
13247 support for creating vector single precision constants if -mvsx is
13248 used and we would create the constant using Altivec primitives.
13249
ff3d9d08
BS
132502011-01-23 Bernd Schmidt <bernds@codesourcery.com>
13251 Richard Sandiford <rdsandiford@googlemail.com>
13252
13253 PR rtl-optimization/47166
13254 * reload1.c (emit_reload_insns): Disable the spill_reg_store
13255 mechanism for PRE_MODIFY and POST_MODIFY.
13256 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13257 reloadreg.
13258
7fcaf152
AS
132592011-01-23 Andreas Schwab <schwab@linux-m68k.org>
13260
8788adb6 13261 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 13262
d09b58c4
JH
132632011-01-22 Jan Hubicka <jh@suse.cz>
13264
13265 PR lto/47333
13266 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13267
e8ff8c5a
JH
132682011-01-22 Jan Hubicka <jh@suse.cz>
13269
13270 PR tree-optimization/43884
13271 PR lto/44334
8788adb6 13272 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
13273 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13274
ccaed3ba
AS
132752011-01-22 Anatoly Sokolov <aesok@post.ru>
13276
13277 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13278 * config/s390/s390.c (s390_register_move_cost,
13279 s390_memory_move_cost): New.
13280 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13281
0cecee06
UW
132822011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13283
13284 PR middle-end/47401
13285 * except.c (sjlj_assign_call_site_values): Move setting the
13286 crtl->uses_eh_lsda flag to ...
13287 (sjlj_mark_call_sites): ... here.
13288 (sjlj_emit_function_enter): Support NULL dispatch label.
13289 (sjlj_build_landing_pads): In a function with no landing pads
13290 that still has must-not-throw regions, generate code to register
13291 a personality function with empty LSDA.
13292
e692f276
RH
132932011-01-21 Richard Henderson <rth@redhat.com>
13294
1b7ae0b7
RH
13295 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13296
3843787f
RH
13297 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13298
e692f276
RH
13299 * compare-elim.c: New file.
13300 * Makefile.in (OBJS-common): Add it.
13301 (compare-elim.o): New.
13302 * common.opt (fcompare-elim): New.
13303 * opts.c (default_options_table): Add OPT_fcompare_elim.
13304 * tree-pass.h (pass_compare_elim_after_reload): New.
13305 * passes.c (init_optimization_passes): Add it.
13306 * recog.h: Protect against re-inclusion.
13307 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13308 * doc/invoke.texi (-fcompare-elim): Document it.
13309 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13310 * doc/tm.texi: Rebuild.
13311
9a7c2050
NC
133122011-01-22 Nick Clifton <nickc@redhat.com>
13313
13314 * config/rx/rx.md (cstoresf4): Pass comparison operator to
13315 rx_split_fp_compare.
13316
15ba5696
NC
133172011-01-22 Nick Clifton <nickc@redhat.com>
13318
13319 * config/rx/rx.md (UNSPEC_CONST): New.
13320 (deallocate_and_return): Wrap the amount popped off the stack in
13321 an UNSPEC_CONST in order to stop it being rejected by
13322 -mmax-constant-size.
13323 (pop_and_return): Add a "(return)" rtx.
13324 (call): Drop the immediate operand.
13325 (call_internal): Likewise.
13326 (call_value): Likewise.
13327 (call_value_internal): Likewise.
13328 (sibcall_internal): Likewise.
13329 (sibcall_value_internal): Likewise.
13330 (sibcall): Likewise. Generate an explicit call using
13331 sibcall_internal.
13332 (sibcall_value): Likewise.
13333 (mov<>): FAIL if a constant operand is not legitimate.
13334 (addsi3_unpsec): New pattern.
9a7c2050 13335
38be4072 13336 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
13337 (ok_for_max_constant): New function.
13338 (gen_safe_add): New function.
13339 (rx_expand_prologue): Use gen_safe_add.
13340 (rx_expand_epilogue): Likewise.
13341 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
13342 UNSPEC CONSTs.
13343
caaf13d3
JL
133442011-01-21 Jeff Law <law@redhat.com>
13345
13346 PR tree-optimization/47053
13347 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13348 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13349 statements are deleted.
13350 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
13351 is nonempty, then purge dead edges and cleanup the CFG.
13352
12c30f2f
AO
133532011-01-21 Alexandre Oliva <aoliva@redhat.com>
13354
13355 PR debug/47402
13356 Temporarily revert:
13357 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
13358 PR debug/47106
13359 * tree-dfa.c (create_var_ann): Mark variable as used.
13360
7360d2ac
JJ
133612011-01-21 Jakub Jelinek <jakub@redhat.com>
13362
aaa52a96
JJ
13363 PR middle-end/45566
13364 * except.c (convert_to_eh_region_ranges): Emit queued no-region
13365 notes from other section in hot/cold partitioning even if
13366 last_action is -3. Increment call_site_base.
13367
7360d2ac
JJ
13368 PR rtl-optimization/47366
13369 * fwprop.c (forward_propagate_into): Return bool. If
13370 any changes are made, -fnon-call-exceptions is used and
13371 REG_EH_REGION note is present, call purge_dead_edges
13372 and return true if it purged anything.
13373 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13374 any EH edges were purged.
13375
e90b336f
JL
133762011-01-21 Jeff Law <law@redhat.com>
13377
13378 PR rtl-optimization/41619
13379 * caller-save.c (setup_save_areas): Break out code to determine
13380 which hard regs are live across calls by examining the reload chains
13381 so that it is always used.
13382 Eliminate code which checked REG_N_CALLS_CROSSED.
13383
3ffe07e1
JJ
133842011-01-21 Jakub Jelinek <jakub@redhat.com>
13385
13386 PR tree-optimization/47355
13387 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13388 NOP has non-debug uses beyond PHIs in new_bb.
13389
1c7d0b34
AO
133902011-01-21 Alexandre Oliva <aoliva@redhat.com>
13391
13392 PR debug/47106
13393 * cfgexpand.c (account_used_vars_for_block): Only account vars
13394 that are annotated as used.
13395 (estimated_stack_frame_size): Don't set TREE_USED.
13396 * tree-dfa.c (create_var_ann): Mark variable as used.
13397
f99cc488
RG
133982011-01-21 Richard Guenther <rguenther@suse.de>
13399
13400 PR middle-end/47395
13401 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13402
3bc27de7
RG
134032011-01-21 Richard Guenther <rguenther@suse.de>
13404
13405 PR tree-optimization/47365
13406 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13407 (vn_reference_lookup_pieces): Adjust.
13408 (vn_reference_lookup): Likewise.
13409 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13410 (vn_reference_lookup_3): Only look through kills if in
13411 VN_WALKREWRITE mode.
13412 (vn_reference_lookup_pieces): Adjust.
13413 (vn_reference_lookup): Likewise.
13414 (visit_reference_op_load): Likewise.
13415 (visit_reference_op_store): Likewise.
13416 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13417 (compute_avail): Likewise.
13418 (eliminate): Likewise.
13419
d8debb1d
JJ
134202011-01-21 Jakub Jelinek <jakub@redhat.com>
13421
13422 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13423 DECL_IGNORED_P non-reg vars if they are used.
13424
3a2df831
JJ
13425 PR tree-optimization/47391
13426 * varpool.c (const_value_known_p): Return false if
13427 decl is volatile.
13428
1dd584a2
KT
134292011-01-21 Kai Tietz <kai.tietz@onevision.com>
13430
13431 PR bootstrap/47215
13432 * config/i386/i386.c (ix86_local_alignment): Handle
13433 case for va_list_type_node is nil.
13434 (ix86_canonical_va_list_type): Likewise.
13435
7f9f095e
AM
134362011-01-21 Alan Modra <amodra@gmail.com>
13437
13438 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13439 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13440
837b01f6
RR
134412011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13442
13443 * config/arm/arm.md (define_attr type): Rename f_load
13444 and f_store to f_fpa_load and f_fpa_store. Update.
13445 (write_conflict): Deal with rename fallout.
13446 (*push_fp_multi): Likewise.
13447 * config/arm/fpa.md (f_load): Use f_fpa_load.
13448 (f_store): Use f_fpa_store.
13449 (*movsf_fpa): Likewise.
13450 (*movdf_fpa): Likewise.
13451 (*movxf_fpa): Likewise.
13452 (*thumb2_movsf_fpa): Likewise.
13453 (*thumb2_movdf_fpa): Likewise.
13454 (*thumb2_movxf_fpa): Likewise.
13455 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13456 f_loadd and f_stored.
13457 (*thumb2_movdi_vfp): Likewise.
13458 (*thumb2_movsf_vfp): Fix attribute to f_loads.
13459 (*thumb2_movsi_vfp): Likewise.
13460 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13461 Use f_loads instead of f_load.
13462 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13463
a1a79768
AS
134642011-01-20 Anatoly Sokolov <aesok@post.ru>
13465
13466 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13467 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13468 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13469 (xtensa_mode_dependent_address_p): New function.
13470 (constantpool_address_p): Make static. Change return type to bool.
13471 Change argument type to const_rtx. Use CONST_INT_P predicate.
13472
427f6cec
AO
134732011-01-20 Alexandre Oliva <aoliva@redhat.com>
13474
13475 PR debug/46583
13476 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13477
583ac69c
JJ
134782011-01-20 Jakub Jelinek <jakub@redhat.com>
13479
13480 PR debug/47283
13481 * cfgexpand.c (expand_debug_expr): Instead of generating
13482 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13483 etc. handling.
13484
93e452ed
RG
134852011-01-20 Richard Guenther <rguenther@suse.de>
13486
13487 PR middle-end/47370
13488 * tree-inline.c (remap_gimple_op_r): Recurse manually for
13489 the pointer operand of MEM_REFs.
13490
28fc44f3
JJ
134912011-01-20 Jakub Jelinek <jakub@redhat.com>
13492
13493 PR tree-optimization/46130
13494 * ipa-split.c (consider_split): If return_bb contains non-virtual
13495 PHIs other than for retval or if split_function would not adjust it,
13496 refuse to split.
13497
ddd268f2
RG
134982011-01-20 Richard Guenther <rguenther@suse.de>
13499
13500 PR tree-optimization/47167
13501 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13502 Revert previous change, only avoid enumeral type changes.
13503
882020aa
MS
135042011-01-19 Mike Stump <mikestump@comcast.net>
13505
13506 * doc/tm.texi.in (BRANCH_COST): Englishify.
13507 * doc/tm.texi (BRANCH_COST): Likewise.
13508
7edb6247
DS
135092011-01-19 Dodji Seketeli <dodji@redhat.com>
13510
13511 PR c++/47291
13512 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
13513 (gen_scheduled_generic_parms_dies): New functions.
13514 (gen_struct_or_union_type_die): Schedule template parameters DIEs
13515 generation for the end of CU compilation.
13516 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 13517
23d5ed5d
AO
135182011-01-19 Alexandre Oliva <aoliva@redhat.com>
13519
13520 PR debug/46240
13521 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13522 debug bind stmt on merge edges.
13523
37d6a488
AO
135242011-01-19 Alexandre Oliva <aoliva@redhat.com>
13525
13526 PR debug/47079
13527 PR debug/46724
13528 * function.c (instantiate_expr): Instantiate incoming rtl of
13529 implicit arguments, and recurse on VALUE_EXPRs.
13530 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13531 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13532
689f2c82
AO
135332011-01-19 Alexandre Oliva <aoliva@redhat.com>
13534
13535 * c-parser.c (c_parser_for_statement): Initialize
13536 collection_expression.
13537
03029de4
JM
135382011-01-19 Joseph Myers <joseph@codesourcery.com>
13539
13540 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13541
3e03217e
JM
135422011-01-19 Joseph Myers <joseph@codesourcery.com>
13543
13544 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13545 (LINK_SHLIB_SPEC): Don't use %(link_path).
13546 (SUBTARGET_EXTRA_SPECS): Remove link_path.
13547
5bbe9b3f
JM
135482011-01-19 Joseph Myers <joseph@codesourcery.com>
13549
13550 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13551 (NO_SHARED_LIB_SUPPORT): Remove.
13552 (LINK_SHLIB_SPEC): Remove one conditional definition.
13553
368e0b39
JM
135542011-01-19 Joseph Myers <joseph@codesourcery.com>
13555
13556 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13557 %{call_shared}.
13558 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13559 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13560 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13561 %{call_shared} and conditionals on these options not being passed.
13562 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13563 %{call_shared}.
13564
ed7656f6
JJ
135652011-01-19 Jakub Jelinek <jakub@redhat.com>
13566
68457901
JJ
13567 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13568 simplify.
13569
ed7656f6
JJ
13570 * ipa-split.c: Spelling fixes.
13571
e0d1958f
RH
135722011-01-19 Richard Henderson <rth@redhat.com>
13573
13574 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13575 (*mulsi3): Likewise.
13576
27098b6b
RH
13577 * longlong.h [__mn10300__] (count_leading_zeros): New.
13578 [__mn10300__] (umul_ppmm, smul_ppmm): New.
13579 [__mn10300__] (add_ssaaaa, subddmmss): New.
13580 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13581 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13582
d6be7c36
UW
135832011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13584
13585 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13586
b1efde2a
RH
135872011-01-19 Richard Henderson <rth@redhat.com>
13588
44217823
RH
13589 * config/mn10300/mn10300.md (addsi3_flags): New.
13590 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13591 (subsi3_flags, subc_internal, subdi3): New.
13592 (subdi3_internal, *subdi3_degenerate): New.
13593 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13594
37a185d7
RH
13595 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13596 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13597 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
13598 * config/mn10300/mn10300-protos.h: Update.
13599 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13600 (return_ret): Likewise. Rename from return_internal_regs.
13601 (return_internal): Remove.
13602
040c5757
RH
13603 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13604 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13605 (mn10300_legitimate_constant_p): Likewise.
13606 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13607 (mn10300_frame_size): New.
13608 (mn10300_expand_prologue): Use it.
13609 (mn10300_expand_epilogue): Likewise.
13610 (mn10300_initial_offset): Likewise.
13611 * config/mn10300/mn10300-protos.h: Update.
13612 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13613 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13614 (prologue, epilogue, return_internal): Tidy output code.
13615 (mn10300_store_multiple_operation, return): Likewise.
13616 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13617 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13618 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13619 (load_pic, am33_load_pic): New.
13620 (mn10300_load_pic0, mn10300_load_pic1): New.
13621
bad41521
RH
13622 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13623 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13624 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13625 (cc_flags_for_mode, cc_flags_for_code): New.
13626 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13627 overflow flag is not valid. Validate that the flags we need
13628 for the comparison are valid.
13629 (mn10300_output_cmp): Remove.
13630 (mn10300_output_add): New.
13631 (mn10300_select_cc_mode): Use cc_flags_for_code.
13632 (mn10300_split_cbranch): New.
13633 (mn10300_match_ccmode): New.
13634 (mn10300_split_and_operand_count): New.
13635 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13636 to the function.
13637 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13638 (addsi3): ... here. Use mn10300_output_add.
13639 (*addsi3_flags): New.
13640 (*am33_subsi3, *mn10300_subsi3): Merge...
13641 (subsi3): ... here. Use attribute isa.
13642 (*subsi3_flags): New.
13643 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
13644 when possible.
13645 (*am33_andsi3, *mn10300_andsi3): Merge...
13646 (andsi3): ... here.
13647 (*andsi3_flags): New.
13648 (andsi3 splitters): New.
13649 (*am33_iorsi3, *mn10300_iorsi3): Merge...
13650 (iorsi3): ... here.
13651 (*iorsi3_flags): New.
13652 (*am33_xorsi3, *mn10300_xorsi3): Merge...
13653 (xorsi3): ... here.
13654 (*xorsi3_flags): New.
13655 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13656 (one_cmplsi2): ... here.
13657 (*one_cmplsi2_flags): New.
13658 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
13659 instead of "dax" in constraints. Use mn10300_split_cbranch.
13660 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
13661 use matching constraints to eliminate a self-comparison.
13662 (*integer_conditional_branch): Rename from integer_conditional_branch.
13663 Use int_mode_flags to match CC_REG.
13664 (*cbranchsi4_btst, *btstsi): New.
13665 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
13666 mn10300_split_cbranch.
13667 (*am33_cmpsf): Rename from am33_cmpsf.
13668 (*float_conditional_branch): Rename from float_conditional_branch.
13669 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13670 (zero_extendqisi2): ... here.
13671 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13672 (zero_extendhisi2): ... here.
13673 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13674 (extendqisi2): ... here.
13675 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13676 (extendhisi2): ... here.
13677 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13678 (ashlsi3): ... here.
13679 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13680 (lshrsi3): ... here.
13681 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13682 (ashrsi3): ... here.
13683 (consecutive add peephole): Remove.
13684 * config/mn10300/predicates.md (label_ref_operand): New.
13685 (int_mode_flags): New.
13686 (CCZN_comparison_operator): New.
13687
9efb4993
RH
13688 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13689 (throughput_42_latency_43): New reservation.
13690 (mulsidi3, umulsidi3): New expanders.
13691 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
13692 the MDR register to allocation; separately allocate the low and
13693 high parts of the DImode result.
13694 (umulsidi3_internal): Similarly.
13695 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13696 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
13697 (udivsi3, umodsi3): Remove.
13698 (udivmodsi4, divmodsi4): New expanders.
13699 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
13700 (*divmodsi4): Simiarly.
13701 (ext_internal): New.
13702
c25a21f5
RH
13703 * config/mn10300/constraints.md ("z"): New constraint.
13704 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13705 (FIXED_REGISTERS): Don't fix MDR.
13706 (CALL_USED_REGSITERS): Reformat nicely.
13707 (REG_ALLOC_ORDER): Add MDR.
13708 (enum regclass): Add MDR_REGS.
13709 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13710 (IRA_COVER_CLASSES): Add MDR_REGS.
13711 (REGNO_REG_CLASS): Handle MDR_REG.
13712 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13713 (mn10300_register_move_cost): Likewise.
13714 * config/mn10300/mn10300.md (MDR_REG): New.
13715 (*movsi_internal): Handle moves to/from MDR_REGS.
13716
36846b26
RH
13717 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13718 POST_MODIFY.
13719 (mn10300_secondary_reload): Tidy combination reload classes.
13720 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13721 addresses for AM33. Allow symbolic offsets for reg+imm.
13722 (mn10300_regno_in_class_p): New.
13723 (mn10300_legitimize_reload_address): New.
13724 * config/mn10300/mn10300.h (enum reg_class): Remove
13725 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13726 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
13727 SP_OR_GENERAL_REGS.
13728 (REG_CLASS_NAMES): Update to match.
13729 (REG_CLASS_CONTENTS): Likewise.
13730 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13731 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13732 (REGNO_IN_RANGE_P): Remove.
13733 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13734 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13735 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13736 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13737 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13738 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13739 (REGNO_GENERAL_P): New.
13740 (HAVE_POST_MODIFY_DISP): New.
13741 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13742 (LEGITIMIZE_RELOAD_ADDRESS): New.
13743 * config/mn10300/mn10300-protos.h: Update.
13744
8b119bb6
RH
13745 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13746 DATA_REGS for AM33 stack-pointer destination.
13747 (mn10300_preferred_output_reload_class): Likewise.
13748 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13749 into a form appropriate for ...
13750 (TARGET_SECONDARY_RELOAD): New.
13751 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13752 * config/mn10300/mn10300-protos.h: Update.
13753 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13754 reload_insi; use the "A" constraint for the scratch; handle AM33
13755 moves of sp to non-address registers.
13756
b1efde2a
RH
13757 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13758 (*movqi_internal): ... here.
13759 (*am33_movhi, *mn10300_movhi): Merge into...
13760 (*movhi_internal): ... here.
13761 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
13762 as the source/destination of moves from/to SP.
13763 (movsf): Only allow for AM33-2.
1c3ba85b 13764 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
13765 any integer constant constraint. Only allow for AM33-2. Tidy
13766 all of the alternative outputs.
13767 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13768 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
13769 for MN103.
13770 (udivsi3, umodsi3): New patterns for MN103 only.
13771
b899fd78
JR
137722011-01-19 Joern Rennecke <amylaar@spamcop.net>
13773
13774 * doc/tm.texi.in: Spell out that a lack of register class unions
13775 can lead to ICEs.
13776 * doc/tm.texi: Regenerate.
13777
afaaa67d
JJ
137782011-01-19 Jakub Jelinek <jakub@redhat.com>
13779
2e0642cd
JJ
13780 PR rtl-optimization/47337
13781 * dce.c (check_argument_store): New function.
13782 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
13783
afaaa67d
JJ
13784 PR tree-optimization/47290
13785 * tree-eh.c (infinite_empty_loop_p): New function.
13786 (cleanup_empty_eh): Use it.
13787
d2cd871f
SE
137882011-01-18 Steve Ellcey <sje@cup.hp.com>
13789
13790 PR target/46997
13791 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13792 (a64_expand_widen_sum): Ditto.
13793 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13794 (vec_extract_evenodd_help): Ditto.
13795 (vec_extract_evenv4hi): Ditto.
13796 (vec_extract_oddv4hi): Ditto.
13797 (vec_extract_evenv2si): Ditto.
13798 (vec_extract_oddv2si): Ditto.
13799 (vec_extract_evenv2sf): Ditto.
13800 (vec_extract_oddv2sf): Ditto.
13801 (vec_pack_trunc_v4hi: Ditto.
13802 (vec_pack_trunc_v2si): Ditto.
13803 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13804 (vec_interleave_highv8qi): Ditto.
13805 (mix1_r): Ditto.
13806 (vec_extract_oddv8qi): Ditto.
13807 (vec_interleave_lowv4hi): Ditto.
13808 (vec_interleave_highv4hi): Ditto.
13809 (vec_interleave_lowv2si): Ditto.
13810 (vec_interleave_highv2si): Ditto.
13811
41a1208a
JDA
138122011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13813
13814 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13815 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13816 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
13817 (pa_c_mode_for_suffix): New.
13818 (TARGET_EXPAND_BUILTIN): Define.
13819 (TARGET_C_MODE_FOR_SUFFIX): Define.
13820 (pa_builtins): Define.
13821 (pa_init_builtins): Register __float128 type and init new support
13822 builtins.
13823 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13824 * config/pa/quadlib.c (_U_Qfcopysign): New.
13825
1ecad98e
EB
138262011-01-18 Eric Botcazou <ebotcazou@adacore.com>
13827
13828 PR middle-end/46894
13829 * explow.c (allocate_dynamic_stack_space): Do not assume more than
13830 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13831 are defined.
13832
d4f2460a
UW
138332011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13834
13835 PR tree-optimization/47179
13836 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13837 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13838
4994da65
RG
138392011-01-18 Richard Guenther <rguenther@suse.de>
13840
13841 PR rtl-optimization/47216
13842 * emit-rtl.c: Include tree-flow.h.
13843 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13844 of replicating it with different semantics.
13845 * Makefile.in (emit-rtl.o): Adjust.
13846
1eb458d1
RR
138472011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13848
38be4072 13849 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 13850 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 13851
e7ef91dc
JJ
138522011-01-18 Jakub Jelinek <jakub@redhat.com>
13853
13854 PR rtl-optimization/47299
13855 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 13856 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
13857 * expmed.c (expand_widening_mult): Don't try to optimize constant
13858 multiplication if op0 has VOIDmode. Convert op1 constant to mode
13859 before using it.
13860
535b7874
RW
138612011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13862
13863 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
13864 spacing after 'e.g.', typos, comma, hyphenation.
13865
27bf36f3
RH
138662011-01-17 Richard Henderson <rth@redhat.com>
13867
8a5b5449
RH
13868 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13869 (rx_restricted_mem_operand): New.
13870 (rx_shift_operand): Use register_operand.
13871 (rx_source_operand, rx_compare_operand): Likewise.
13872 * config/rx/rx.md (addsi3_flags): New expander.
13873 (adddi3): Rewrite as expander.
13874 (adc_internal, *adc_flags, adddi3_internal): New patterns.
13875 (subsi3_flags): New expander.
13876 (subdi3): Rewrite as expander.
13877 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13878
784f69be
RH
13879 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13880 (rx_init_builtins): Remove sat builtin.
13881 (rx_expand_builtin): Likewise.
13882 * config/rx/rx.md (ssaddsi3): New.
13883 (*sat): Rename from sat. Represent the CC_REG input.
13884
f033541c
RH
13885 * config/rx/predicates.md (rshift_operator): New.
13886 * config/rx/rx.c (rx_expand_insv): Remove.
13887 * config/rx/rx-protos.h: Update.
13888 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
13889 operand to the canonical position.
13890 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13891 (*bitclr, *bitclr_in_memory): Similarly.
13892 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13893 (insv): Retain the zero_extract in the expansion.
13894
34fee389
RH
13895 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13896 (bswaphi2, bitinvert, revw): Likewise.
13897
265c835f
RH
13898 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13899 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13900 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13901 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13902 (bitset, bitset_in_memory): Likewise.
13903 (bitinvert, bitinvert_in_memory): Likewise.
13904 (bitclr, bitclr_in_memory): Likewise.
13905 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13906 (rx_strend, rx_cmpstrn): Likewise.
13907 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
13908 (bitop peep2 patterns): Remove.
13909
b4d83be3
RH
13910 * config/rx/rx.c (rx_match_ccmode): New.
13911 * config/rx/rx-protos.h: Update.
13912 * config/rx/rx.md (abssi2): Clobber, don't set flags.
13913 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13914 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13915 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13916 (fix_truncsfsi2, floatsisf2): Likewise.
13917 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13918 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13919 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13920 (*subsi3_flags, *xorsi3_flags): New.
13921
d0acb939
RH
13922 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13923
c06fc3d9
RH
13924 * config/rx/rx.c (rx_print_operand): Remove workaround for
13925 unsplit comparison operations.
13926
2882702b
RH
13927 * config/rx/rx.md (movsicc): Split after reload.
13928 (*movsicc): Merge *movsieq and *movsine via match_operator.
13929 (*stcc): New pattern.
13930
6f7310f2
RH
13931 * config/rx/rx.c (rx_float_compare_mode): Remove.
13932 * config/rx/rx.h (rx_float_compare_mode): Remove.
13933 * config/rx/rx.md (cstoresi4): Split after reload.
13934 (*sccc): New pattern.
13935
e963cb1a
RH
13936 * config/rx/predicates.md (label_ref_operand): New.
13937 (rx_z_comparison_operator): New.
13938 (rx_zs_comparison_operator): New.
13939 (rx_fp_comparison_operator): New.
13940 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13941 Validate that the flags are set properly for the comparison.
13942 (rx_gen_cond_branch_template): Remove.
13943 (rx_cc_modes_compatible): Remove.
13944 (mode_from_flags): New.
13945 (flags_from_code): Rename from flags_needed_for_conditional.
13946 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13947 (rx_select_cc_mode): Likewise.
13948 (rx_split_fp_compare): New.
13949 (rx_split_cbranch): New.
13950 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13951 (*cbranchsi4): Use match_operator and rx_split_cbranch.
13952 (*cbranchsf4): Similarly.
13953 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
13954 match_operator and rx_split_cbranch.
13955 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13956 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
13957 (*cmpsi): Rename from cmpsi.
13958 (*tstsi): Rename from tstsi.
13959 (*cmpsf): Rename from cmpsf; use CC_Fmode.
13960 (*conditional_branch): Rename from conditional_branch.
13961 (*reveresed_conditional_branch): Remove.
13962 (b<code>): Remove expander.
13963 * config/rx/rx-protos.h: Update.
13964
af530bb4
RH
13965 * config/rx/rx.c (rx_compare_redundant): Remove.
13966 * config/rx/rx.md (cmpsi): Don't use it.
13967 * config/rx/rx-protos.h: Update.
13968
27bf36f3
RH
13969 * config/rx/rx-modes.def (CC_F): New mode.
13970 * config/rx/rx.c (rx_select_cc_mode): New.
13971 * config/rx/rx.h (SELECT_CC_MODE): Use it.
13972 * config/rx/rx-protos.h: Update.
13973
d7fde127
RH
139742011-01-17 Richard Henderson <rth@redhat.com>
13975
13976 * except.c (dump_eh_tree): Fix stray ; after for statement.
13977
6ff38230
RG
139782011-01-17 Richard Guenther <rguenther@suse.de>
13979
13980 PR tree-optimization/47313
13981 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13982 handling before copying the body. Properly deal with
13983 by-reference result in SSA form.
13984
114ce554
ILT
139852011-01-17 Ian Lance Taylor <iant@google.com>
13986
bf5cd92b 13987 PR target/47219
114ce554
ILT
13988 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13989 (struct_value_alias_set): Don't define.
13990 (sparc_option_override): Don't set sparc_sr_alias_set and
13991 struct_value_alias_set.
13992 (save_or_restore_regs): Use gen_frame_mem rather than calling
13993 set_mem_alias_set.
13994 (sparc_struct_value_rtx): Likewise.
13995
98c6d93c
L
139962011-01-17 H.J. Lu <hongjiu.lu@intel.com>
13997
13998 PR target/47318
7a81008b 13999 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
14000 (_mm_maskstore_pd): Likewise.
14001 (_mm_maskload_ps): Likewise.
14002 (_mm_maskstore_ps): Likewise.
14003 (_mm256_maskload_pd): Change mask to __m256i.
14004 (_mm256_maskstore_pd): Likewise.
14005 (_mm256_maskload_ps): Likewise.
14006 (_mm256_maskstore_ps): Likewise.
14007
14008 * config/i386/i386-builtin-types.def: Updated.
14009 (ix86_expand_special_args_builtin): Likewise.
14010
14011 * config/i386/i386.c (bdesc_special_args): Update
14012 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14013 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14014 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14015 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14016
14017 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14018 Use <avxpermvecmode> on mask register.
14019 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14020
b9361af2 140212011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
14022 Michael Haubenwallner <michael.haubenwallner@salomon.at>
14023 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
14024
14025 PR target/46655
14026 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14027 if <= USHRT_MAX in 32-bit mode.
14028
b7ae9eb5
RW
140292011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14030
14031 * doc/install.texi (Configuration, Specific): Wrap long
14032 lines in examples. Allow line wrapping in long options
14033 and URLs where beneficial for PDF output.
14034
4377fad9
RS
140352011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
14036
14037 * config/mips/mips.c (mips_classify_symbol): Don't return
14038 SYMBOL_PC_RELATIVE for nonlocal labels.
14039
55959ffa 140402011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 14041
55959ffa
EB
14042 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14043
140442011-01-15 Jan Hubicka <jh@suse.cz>
14045
14046 PR tree-optimization/47276
be46831f
JH
14047 * ipa.c (function_and_variable_visibility): Do not try to mark alias
14048 declarations as needed.
14049
05842ff5
MJ
140502011-01-15 Martin Jambor <mjambor@suse.cz>
14051
14052 * common.opt (fdevirtualize): New flag.
14053 * doc/invoke.texi (Option Summary): Document it.
14054 * opts.c (default_options_table): Add devirtualize flag.
14055 * ipa-prop.c (detect_type_change): Return immediately if
14056 devirtualize flag is not set.
14057 (detect_type_change_ssa): Likewise.
14058 (compute_known_type_jump_func): Likewise.
14059 (ipa_analyze_virtual_call_uses): Likewise.
14060
f65cf2b7
MJ
140612011-01-14 Martin Jambor <mjambor@suse.cz>
14062
14063 PR tree-optimization/45934
14064 PR tree-optimization/46302
14065 * ipa-prop.c (type_change_info): New type.
14066 (stmt_may_be_vtbl_ptr_store): New function.
14067 (check_stmt_for_type_change): Likewise.
14068 (detect_type_change): Likewise.
14069 (detect_type_change_ssa): Likewise.
14070 (compute_complex_assign_jump_func): Check for dynamic type change.
14071 (compute_complex_ancestor_jump_func): Likewise.
14072 (compute_known_type_jump_func): Likewise.
14073 (compute_scalar_jump_functions): Likewise.
14074 (ipa_analyze_virtual_call_uses): Likewise.
14075 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14076
eb5bb0fd
JM
140772011-01-14 Joseph Myers <joseph@codesourcery.com>
14078
14079 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14080 * config/i386/i386.opt (msse5): New Alias.
14081
f2060fbe
JM
140822011-01-14 Joseph Myers <joseph@codesourcery.com>
14083
14084 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14085 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14086 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14087 * config/sparc/sparc.h (CC1_SPEC): Likewise.
14088
3a7b4385
JM
140892011-01-14 Joseph Myers <joseph@codesourcery.com>
14090
14091 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14092 -mcpu options.
14093 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14094 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14095 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14096 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14097 Likewise.
14098 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14099
a7b778f8
JM
141002011-01-14 Joseph Myers <joseph@codesourcery.com>
14101
38be4072 14102 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 14103
a7edae0a
MS
141042011-01-14 Mike Stump <mikestump@comcast.net>
14105
14106 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14107 * config/fr30/fr30.md: Likweise
14108 (movsi_push): Likewise.
14109 (movsi_pop): Likewise.
14110 (enter_func): Likewise.
14111 * config/moxie/moxie.md (movsi_push): Likewise.
14112 (movsi_pop): Likewise.
14113
cbabf03f
JM
141142011-01-14 Joseph Myers <joseph@codesourcery.com>
14115
14116 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14117 %{no_archive} %{exact_version}.
14118 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14119 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14120 %{no_archive} %{exact_version}.
14121 * config/mips/openbsd.h (LINK_SPEC): Likewise.
14122 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14123 * config/mips/vxworks.h: Likewise.
14124
438da41a
JM
141252011-01-14 Joseph Myers <joseph@codesourcery.com>
14126
38be4072 14127 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 14128
da290a42
JM
141292011-01-14 Joseph Myers <joseph@codesourcery.com>
14130
14131 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14132 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14133
8989d00e
JM
141342011-01-14 Joseph Myers <joseph@codesourcery.com>
14135
14136 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14137 -nodefaultlib.
14138
a3010a69
JM
141392011-01-14 Joseph Myers <joseph@codesourcery.com>
14140
14141 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14142 for mcpu not cpu.
14143 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14144 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14145 not cpu.
14146 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14147 Don't handle -shlib.
14148
e7f2f537
JM
141492011-01-14 Joseph Myers <joseph@codesourcery.com>
14150
14151 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14152 (CC1_SPEC): Don't handle -profile.
14153
34830bfd
JM
141542011-01-14 Joseph Myers <joseph@codesourcery.com>
14155
14156 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14157 * config/mips/mips.h (CC1_SPEC): Likewise.
14158
b2d36e74
JM
141592011-01-14 Joseph Myers <joseph@codesourcery.com>
14160
14161 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14162 * config/mips/mips.h (CC1_SPEC): Likewise.
14163
dabadc52
JM
141642011-01-14 Joseph Myers <joseph@codesourcery.com>
14165
14166 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14167 * config/m32r/linux.h (LINK_SPEC): Likewise.
14168 * config/mips/linux.h (LINK_SPEC): Likewise.
14169 * config/mips/linux64.h (LINK_SPEC): Likewise.
14170 * config/sparc/linux.h (LINK_SPEC): Likewise.
14171 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14172 LINK_SPEC): Likewise.
14173 * config/xtensa/linux.h (LINK_SPEC): Likewise.
14174
43ee6785
JM
141752011-01-14 Joseph Myers <joseph@codesourcery.com>
14176
14177 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14178 %{version:-v}.
14179 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14180
45e79dfd
JM
141812011-01-14 Joseph Myers <joseph@codesourcery.com>
14182
14183 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14184 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14185
37e9e71d
JM
141862011-01-14 Joseph Myers <joseph@codesourcery.com>
14187
14188 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14189
bb127cd8
RO
141902011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14191
14192 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14193 supports -Bstatic/-Bdynamic.
14194 * configure: Regenerate.
14195
89a012ea 141962011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 14197 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
14198
14199 PR target/46037
14200 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14201 when checking debug_info_level. Test write_symbols instead of
14202 debug_hooks->var_location when setting flag_var_tracking_uninit.
14203
7352c013
RG
142042011-01-14 Richard Guenther <rguenther@suse.de>
14205
14206 PR tree-optimization/47179
14207 * target.def (ref_may_alias_errno): New target hook.
14208 * targhooks.h (default_ref_may_alias_errno): Declare.
14209 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14210 (default_ref_may_alias_errno): New function.
14211 * target.h (struct ao_ref_s): Declare.
14212 * tree-ssa-alias.c: Include target.h.
14213 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14214 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14215 (targhooks.o): Likewise.
14216 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14217 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14218
9a6c9288
RG
142192011-01-14 Richard Guenther <rguenther@suse.de>
14220
14221 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
14222
0fdb0d27
RG
142232011-01-14 Richard Guenther <rguenther@suse.de>
14224
14225 PR tree-optimization/47280
14226 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14227 return CFG changes.
14228 (tree_ssa_forward_propagate_single_use_vars): Deal with
14229 CFG changes from associate_plusminus.
14230
8f66db3b
RG
142312011-01-14 Richard Guenther <rguenther@suse.de>
14232
14233 PR middle-end/47281
14234 Revert
14235 2011-01-11 Richard Guenther <rguenther@suse.de>
14236
280d9630
EB
14237 PR tree-optimization/46076
14238 * tree-ssa.c (useless_type_conversion_p): Conversions from
14239 unprototyped to empty argument list function types are useless.
8f66db3b 14240
6c0c92e6
RG
142412011-01-14 Richard Guenther <rguenther@suse.de>
14242
14243 PR tree-optimization/47286
280d9630 14244 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 14245
db09f943
MJ
142462011-01-14 Martin Jambor <mjambor@suse.cz>
14247
14248 PR middle-end/46823
14249 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14250
dde8a3a4
AS
142512011-01-13 Anatoly Sokolov <aesok@post.ru>
14252
14253 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14254 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14255 * config/xtensa/xtensa.c (xtensa_libcall_value,
14256 xtensa_function_value_regno_p): New functions.
14257 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14258
a2b63a20
KT
142592011-01-13 Kai Tietz <kai.tietz@onevision.com>
14260
14261 PR c++/47213
14262 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14263 PE specific hook.
14264 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14265 New function prototype.
14266 * config/i386/winnt.c (i386_pe_assemble_visibility):
14267 Warn only if attribute was specified by user.
14268
b41f0b34
MM
142692011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14270
14271 PR target/47251
14272 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14273 floating point.
14274 (floatunsdidf2_fcfidu): Ditto.
14275
3f3c098d
AK
142762011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14277
14278 * config/s390/s390.c (print_operand_address): Replace 'error' with
14279 'output_operand_lossage'.
14280 (print_operand): Likewise.
14281
29fa95ed
JL
142822011-01-13 Jeff Law <law@redhat.com>
14283
280d9630 14284 PR rtl-optimization/39077
29fa95ed
JL
14285 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14286 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14287 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14288 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14289 * gcse.c (prune_insertions_deletions): New function.
14290 (compute_pre_data): Use it.
14291
71d12276
DS
142922011-01-13 Dodji Seketeli <dodji@redhat.com>
14293
14294 PR debug/PR46973
14295 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14296 static function.
61052244 14297 (prune_unused_types_mark): Use it.
71d12276 14298
9b0f04e7
AB
142992011-01-13 Andrey Belevantsev <abel@ispras.ru>
14300
14301 PR rtl-optimization/45352
1c3ba85b 14302 * sel-sched.c: Update copyright years.
9b0f04e7 14303 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 14304 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 14305
d6a3e264
RH
143062011-01-12 Richard Henderson <rth@redhat.com>
14307
a49b692a
RH
14308 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14309 (TARGET_MD_ASM_CLOBBERS): New.
14310
126b1483
RH
14311 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14312 (TARGET_DELEGITIMIZE_ADDRESS): New.
14313
f3d9d2e0
RH
14314 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14315 (clzsi2, *bsch): New patterns.
14316
d84760c9
RH
14317 * config/mn10300/mn10300.md (INT): New mode iterator.
14318 (*mov<INT>_clr): New pattern, and peep2 to generate it.
14319
ec815d65
RH
14320 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14321 flag_split_wide_types.
14322
d6a3e264
RH
14323 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14324 (mn10300_trampoline_init): Rewrite without a template, an immediate
14325 load and a direct branch.
14326 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14327
0f8ab434
AS
143282011-01-12 Anatoly Sokolov <aesok@post.ru>
14329
14330 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14331 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14332 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14333 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14334
d8a24b65
KT
143352011-01-12 Kai Tietz <kai.tietz@onevision.com>
14336
14337 PR debug/47209
14338 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14339 of type.
14340
56e22cab
JH
143412011-01-12 Jan Hubicka <jh@suse.cz>
14342
14343 PR driver/47244
14344 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14345 (PLUGIN_COND_CLOSE): New macro.
14346 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14347
4b18b3c2
RG
143482011-01-12 Richard Guenther <rguenther@suse.de>
14349
14350 PR lto/47259
14351 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14352 register variables in a MEM_REF.
14353
8e38461c
JM
143542011-01-12 Joseph Myers <joseph@codesourcery.com>
14355
14356 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14357 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14358 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14359 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14360 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14361 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14362 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14363 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14364 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14365 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14366 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14367 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14368 * config/gnu-user.h: New. Copied from linux.h.
14369 (LINUX_TARGET_STARTFILE_SPEC): Rename to
14370 GNU_USER_TARGET_STARTFILE_SPEC.
14371 (LINUX_TARGET_ENDFILE_SPEC): Rename to
14372 GNU_USER_TARGET_ENDFILE_SPEC.
14373 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14374 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14375 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14376 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14377 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14378 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14379 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14380 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14381 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14382 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14383 * config/arm/linux-eabi.h (CC1_SPEC): Use
14384 GNU_USER_TARGET_CC1_SPEC.
14385 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14386 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14387 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14388 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14389 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14390 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14391 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14392 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14393
a570fc16
RG
143942011-01-12 Richard Guenther <rguenther@suse.de>
14395
14396 PR other/46946
14397 * doc/invoke.texi (ffast-math): Document it is turned on
14398 with -Ofast.
14399
b0223c3e
JH
144002011-01-12 Jan Hubicka <jh@suse.cz>
14401
14402 PR tree-optimization/47233
ca1e00b3
EB
14403 * opts.c (common_handle_option): Disable ipa-reference with profile
14404 feedback.
b0223c3e 14405
1c3ba85b 144062011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
14407
14408 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
14409 error message.
14410
d853ee42
NP
144112011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
14412
14413 * c-parser.c (c_lex_one_token): Updated and reindented some
14414 comments. No changes in code.
14415
4053a5a0
ILT
144162011-01-11 Ian Lance Taylor <iant@google.com>
14417
14418 * godump.c (go_output_var): Don't output the variable if there is
14419 already a type with the same name.
14420
fa3e04d2
ILT
144212011-01-11 Ian Lance Taylor <iant@google.com>
14422
14423 * godump.c (go_format_type): Don't generate float80.
14424
885fe07c
RH
144252011-01-11 Richard Henderson <rth@redhat.com>
14426
72d6e3c5
RH
14427 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14428 declaration. Rewrite for both speed and size.
14429 (mn10300_address_cost_1): Remove.
14430 (mn10300_register_move_cost): New.
14431 (mn10300_memory_move_cost): New.
14432 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
14433 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
14434 extensions, shifts, BSWAP, CLZ.
14435 (mn10300_wide_const_load_uses_clr): Remove.
14436 (TARGET_REGISTER_MOVE_COST): New.
14437 (TARGET_MEMORY_MOVE_COST): New.
14438 * config/mn10300/mn10300-protos.h: Update.
14439 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14440
df37c023
RH
14441 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14442 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14443 * config/mn10300/mn10300-protos.h: Update.
14444 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14445 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14446 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14447 (*test_int_bitfield, *test_byte_bitfield): Remove.
14448 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 14449 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 14450
85a337b5
RH
14451 * config/mn10300/constraints.md ("c"): Rename from "A".
14452 ("A", "D"): New constraint letters.
14453 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14454 (fmssf4, fnmasf4, fnmssf4): Likewise.
14455
a5c727e3
RH
14456 * config/mn10300/mn10300.md (isa): New attribute.
14457 (enabled): New attribute.
14458
0d9e23f4
RH
14459 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14460 (abssf2, negsf2): Define only for hardware fp.
14461 (sqrtsf2): Reformat.
14462 (addsf3, subsf3, mulsf3): Merge expander and insn.
14463
c157b3f0
RH
14464 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14465 (DEBUGGER_AUTO_OFFSET): Remove.
14466 (DEBUGGER_ARG_OFFSET): Remove.
14467
cc909bba
RH
14468 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14469 Emit register stores with the same offsets as the hardware.
14470 (mn10300_store_multiple_operation): Don't check that the register
14471 save offsets are monotonic.
14472 * config/mn10300/mn10300-protos.h: Update.
14473
e3b5c2f3
RH
14474 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14475
885fe07c
RH
14476 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14477 in terms of the value on the stack, not the MDR register.
14478
6e701822
JH
144792011-01-11 Jan Hubicka <jh@suse.cz>
14480
14481 PR lto/45721
14482 PR lto/45375
14483 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14484 (symbol_alias_set_destroy, symbol_alias_set_contains,
14485 propagate_aliases_backward): Declare.
14486 * lto-streamer-out.c (struct sets): New sturcture.
14487 (trivally_defined_alias): New function.
14488 (output_alias_pair_p): Rewrite.
14489 (output_unreferenced_globals): Fix output of alias pairs.
14490 (produce_symtab): Likewise.
14491 * ipa.c (function_and_variable_visibility): Set weak alias destination
14492 as needed in lto.
14493 * varasm.c (symbol_alias_set_t): Remove.
14494 (symbol_alias_set_destroy): Export.
14495 (propagate_aliases_forward, propagate_aliases_backward): New functions
14496 based on ...
14497 (compute_visible_aliases): ... this one; remove.
14498 (trivially_visible_alias): New
14499 (trivially_defined_alias): New.
14500 (remove_unreachable_alias_pairs): Rewrite.
14501 (finish_aliases_1): Reorganize code checking if alias is defined.
14502 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14503 in LTO mode.
14504
1b248907
RG
145052011-01-11 Richard Guenther <rguenther@suse.de>
14506
14507 PR tree-optimization/46076
14508 * tree-ssa.c (useless_type_conversion_p): Conversions from
14509 unprototyped to empty argument list function types are useless.
14510
b1923f0a
RG
145112011-01-11 Richard Guenther <rguenther@suse.de>
14512
14513 PR middle-end/45235
14514 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14515 volatile MEMs as MEM_READONLY_P.
14516
e98965af
RG
145172011-01-11 Richard Guenther <rguenther@suse.de>
14518
14519 PR tree-optimization/47239
14520 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14521
9f9ca914
JL
145222011-01-11 Jeff Law <law@redhat.com>
14523
1ee3ea05 14524 PR tree-optimization/47086
9f9ca914
JL
14525 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14526 IVs from statements that might throw.
14527
345fdcb7
JH
145282011-01-10 Jan Hubicka <jh@suse.cz>
14529
14530 PR lto/45375
14531 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14532
c459c97b
JH
145332011-01-10 Jan Hubicka <jh@suse.cz>
14534
14535 PR lto/45375
14536 * profile.c (read_profile_edge_counts): Ignore profile inconistency
14537 when correcting profile.
14538
06c9eb51
JH
145392011-01-10 Jan Hubicka <jh@suse.cz>
14540
14541 PR lto/46083
14542 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14543 DECL_FINI_PRIORITY.
14544 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14545 Restore DECL_FINI_PRIORITY.
14546
ae9fd815
RW
145472011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14548
14549 * doc/gimple.texi: Fix quoting of multi-word return values in
14550 @deftypefn statements. Ensure presence of return value. Wrap
14551 overlong @deftypefn lines.
14552 (is_gimple_operand, is_gimple_min_invariant_address): Remove
14553 descriptions of removed functions.
14554 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14555 of multi-word return value in @deftypefn statement.
14556
0ecb4a7c
RW
145572011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14558
14559 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14560 (Conditional Expressions, Logical Operators)
14561 (Statement and operand traversals): Do not indent smallexample
14562 code. Fix duplicate function argument in example.
14563
2e5e346d
JL
145642011-01-10 Jeff Law <law@redhat.com>
14565
1ee3ea05 14566 PR tree-optimization/47141
2e5e346d
JL
14567 * ipa-split.c (split_function): Handle case where we are
14568 returning a value and the return block has a virtual operand phi.
14569
cf9712cc
JH
145702011-01-10 Jan Hubicka <jh@suse.cz>
14571
1c3ba85b 14572 PR tree-optimization/47234
cf9712cc
JH
14573 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14574 (pass_feedback_split_functions): Declare.
14575 * passes.c (init_optimization_passes): Add ipa-split as subpass of
14576 tree-profile.
14577 * ipa-split.c (gate_split_functions): Update comments; disable
14578 split-functions for profile_arc_flag and branch_probabilities.
14579 (gate_feedback_split_functions): New function.
14580 (execute_feedback_split_functions): New function.
14581 (pass_feedback_split_functions): New global var.
14582
94cd932c
L
145832011-01-10 H.J. Lu <hongjiu.lu@intel.com>
14584
14585 PR lto/46760
14586 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14587 calling gimple_call_set_cannot_inline.
14588
fbbfcaf1
IS
145892011-01-10 Iain Sandoe <iains@gcc.gnu.org>
14590
14591 * config/darwin-sections.def: Remove unused section.
14592
d06865bf
DK
145932011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
14594
14595 PR c++/47218
14596 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14597
96bbfbac
NP
145982011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
14599
14600 PR objc/47232
14601 * c-parser.c (c_parser_declaration_or_fndef): Improved
14602 error message.
14603
1ba6516f
KT
146042011-01-09 Kai Tietz <kai.tietz@onevision.com>
14605
14606 * config/i386/winnt.c (i386_pe_start_function): Make sure
14607 to switch back to function's section.
14608
0c5d770e
IS
146092011-01-09 Iain Sandoe <iains@gcc.gnu.org>
14610
14611 PR gcc/46902
14612 PR testsuite/46912
14613 * plugin.c: Move include of dlfcn.h from here...
14614 * system.h: ... to here.
14615
146162011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
14617
14618 * doc/cpp.texi (C++ Named Operators): Fix markup for header
14619 file name.
14620 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14621 two extra empty pages in PDF output.
14622
046608a3
NP
146232011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
14624
14625 PR objc/47078
14626 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14627 for error recovery purposes behave as if it was not specified so
14628 that the default type is usd.
14629
8cb114b9
JH
146302011-01-07 Jan Hubicka <jh@suse.cz>
14631
14632 PR tree-optmization/46469
14633 * ipa.c (function_and_variable_visibility): Clear needed flags on
14634 nodes with external decls; handle weakrefs merging correctly.
14635
b294a75e
JM
146362011-01-07 Joseph Myers <joseph@codesourcery.com>
14637
14638 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14639 not false.
14640
96bdf9b4
JH
146412011-01-07 Jan Hubicka <jh@suse.cz>
14642
f60c2554 14643 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
14644 and no longer claim that gold is required for linker plugin.
14645 * configure: Regenerate.
14646 * gcc.c (PLUGIN_COND): New macro.
14647 (LINK_COMMAND_SPEC): Use it.
14648 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14649 * config.in (HAVE_LTO_PLUGIN): New.
14650 * configure.ac (--with-lto-plugin): New parameter; autodetect
14651 HAVE_LTO_PLUGIN.
14652
17afc0fe
JH
146532011-01-07 Jan Hubicka <jh@suse.cz>
14654
14655 PR tree-optimization/46367
14656 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14657 when we can update original.
14658 (cgraph_mark_inline_edge): Sanity check.
14659 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14660
d4c48c0f
UW
146612011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14662
14663 * config/spu/spu.h (ASM_COMMENT_START): Define.
14664
96f5b137
L
146652011-01-07 H.J. Lu <hongjiu.lu@intel.com>
14666
14667 PR driver/42445
14668 * gcc.c (%>S): New.
14669 (SWITCH_KEEP_FOR_GCC): Likewise.
14670 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14671 (do_spec_1): Handle "%>".
14672
14673 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14674
c6a8f6de
JJ
146752011-01-07 Jakub Jelinek <jakub@redhat.com>
14676
c21bbd7a
JJ
14677 PR target/47201
14678 * config/i386/i386.c (ix86_delegitimize_address): If
14679 simplify_gen_subreg fails, return orig_x.
14680
c6a8f6de
JJ
14681 PR bootstrap/47187
14682 * value-prof.c (gimple_stringop_fixed_value): Handle
14683 lhs of the call properly.
14684
fe95fbf9
JH
146852011-01-07 Jan Hubicka <jh@suse.cz>
14686
14687 PR lto/45375
14688 * lto-opt.c (lto_reissue_options): Set flag_shlib.
14689
14d11d40
IS
146902011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14691
72e961c8
EB
14692 * target.def (function_switched_text_sections): New hook.
14693 * doc/tm.texi: Regenerated.
14694 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14695 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
14696 (final_scan_insn): Call function_switched_text_sections when a
14697 mid-function section change occurs.
14d11d40 14698 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
14699 * config/darwin-protos.h (darwin_function_switched_text_sections):
14700 Likewise.
14d11d40 14701 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 14702 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14703
0b764288
IS
147042011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14705
14706 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
14707 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
14708 the secondary code fragment when outputting for DWARF == 2.
14709
2ac6bb04
AS
147102011-01-07 Anatoly Sokolov <aesok@post.ru>
14711
14712 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14713 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14714 Remove.
14715 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14716 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14717
9f82de11
EB
147182011-01-06 Eric Botcazou <ebotcazou@adacore.com>
14719
14720 PR debug/46704
280d9630
EB
14721 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14722 when it is not empty.
9f82de11
EB
14723
147242011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 14725
1ed72abf 14726 Bobcat Enablement
14b52538 14727 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 14728 (case ${target}): Add btver1.
14b52538 14729 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 14730 -march=native recognize btver1 processors.
14b52538 14731 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 14732 btver1 def_and_undef
14b52538 14733 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
14734 btver1 cost table.
14735 (m_BTVER1): New definition.
14736 (m_AMD_MULTIPLE): Includes m_BTVER1.
14737 (initial_ix86_tune_features): Add btver1 tune.
14738 (processor_target_table): Add btver1 entry.
14739 (static const char *const cpu_names): Add btver1 entry.
14740 (software_prefetching_beneficial_p): Add btver1.
14741 (ix86_option_override_internal): Add btver1 instruction sets.
14742 (ix86_issue_rate): Add btver1.
14743 (ix86_adjust_cost): Add btver1.
14b52538 14744 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
14745 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14746 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
14747 * config/i386/i386.md (define_attr "cpu"): Add btver1.
14748
e1a973d8
RO
147492011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14750
14751 PR target/43309
14752 * config/i386/i386.c (legitimize_tls_address)
14753 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14754 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14755 (tls_initial_exec_64_sun): New pattern.
14756
c73f67c5
GP
147572011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14758
14759 * doc/invoke.texi (Overall Options): Improve wording and markup
14760 of the description of -wrapper.
14761
bc4c6f9c
JM
147622011-01-06 Joseph Myers <joseph@codesourcery.com>
14763
14764 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14765 rdynamic, threads): New Driver options.
14766
adb75db0
RO
147672011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14768
14769 PR target/38118
14770 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14771 if coming from .tdata.
14772 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14773
402c1cb4
JH
147742011-01-06 Jan Hubicka <jh@suse.cz>
14775
14776 PR lto/47188
14777 * collect2.c (main): Do not enable LTOmode when plugin is active.
14778
a4da6485
RO
147792011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14780
14781 PR other/45915
14782 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14783 --version output if supported.
14784 * configure: Regenerate.
14785
028dbdf4
JM
147862011-01-06 Joseph Myers <joseph@codesourcery.com>
14787
14788 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14789 Driver options.
14790
dfe776dd
JJ
147912011-01-06 Jakub Jelinek <jakub@redhat.com>
14792
14793 PR c/47150
14794 * c-convert.c (convert): When converting a complex expression
14795 other than COMPLEX_EXPR to a different complex type, ensure
14796 c_save_expr is called instead of save_expr, unless in_late_binary_op.
14797 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14798 when converting COMPLEX_TYPE.
14799
210dedfe
IR
148002011-01-06 Ira Rosen <irar@il.ibm.com>
14801
14802 PR tree-optimization/47139
14803 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14804 only the last reduction value is used outside the loop. Update
14805 documentation.
14806
cd33a412
JM
148072011-01-05 Joseph Myers <joseph@codesourcery.com>
14808
14809 * config/rtems.opt: New.
14810 * config.gcc (*-*-rtems*): Use rtems.opt.
14811
819edd94
CF
148122011-01-05 Changpeng Fang <changpeng.fang@amd.com>
14813
14814 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14815 processors do not support 3DNow instructions.
14816
dc242c4a
UW
148172011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14818
14819 * config/spu/spu.c (spu_option_override): Set parameter
14820 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14821
be286227
JH
148222011-01-05 Jan Hubicka <jh@suse.cz>
14823
14824 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14825 at the command line.
14826
644e637f
MJ
148272011-01-05 Martin Jambor <mjambor@suse.cz>
14828
14829 PR lto/47162
14830 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14831 deltas on streamed outgoing edges.
14832 (output_node_opt_summary): Output info for outgoing edges only when
14833 the node is in new parameter set.
14834 (output_cgraph_opt_summary): New parameter set, passed to the two
14835 aforementioned functions. Update its forward declaration and its
14836 callee too.
14837
7bd11157
TT
148382011-01-05 Tom Tromey <tromey@redhat.com>
14839
14840 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14841 operator to c_finish_omp_atomic.
14842 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14843 (build_unary_op): Update.
14844 (build_modify_expr): Update.
14845 (build_asm_expr): Update.
14846
f626b979
UW
148472011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14848
14849 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14850 newly inserted insns.
14851 (pad_bb): Likewise.
14852 (spu_emit_branch_hint): Likewise.
14853 (insert_hbrp_for_ilb_runout): Likewise.
14854 (spu_machine_dependent_reorg): Call df_finish_pass after
14855 schedule_insns returns.
14856
4c825c02
UW
148572011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14858
14859 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14860
5e9fba51
EB
148612011-01-05 Eric Botcazou <ebotcazou@adacore.com>
14862
14863 PR tree-optimization/47005
14864 * tree-sra.c (struct access): Add 'non_addressable' bit.
14865 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14866 (decide_one_param_reduction): Return 0 if the parameter is passed by
14867 reference and one of the accesses in the group is non_addressable.
14868
3ebb5ca6
EB
148692011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14870
14871 PR tree-optimization/47056
14872 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14873 (mark_load): Likewise. Handle FUNCTION_DECL specially.
14874 (mark_store): Likewise. Pass STMT to ipa_record_reference.
14875
d5d4d14e
EB
148762011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14877
14878 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14879 initializer. Skip view conversions from aggregate types.
14880
d996ef70
KT
148812011-01-04 Kai Tietz <kai.tietz@onevision.com>
14882
14883 PR bootstrap/47055
14884 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14885
509d65dd 148862011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
14887
14888 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14889 obvious typo.
14890
55c623b5
UW
148912011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14892
14893 * function.c (thread_prologue_and_epilogue_insns): Do not crash
14894 on empty epilogue sequences.
14895
b98d6b35
JM
148962011-01-04 Joseph Myers <joseph@codesourcery.com>
14897
14898 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14899 non-static): New Driver options.
14900
a0d43bac
JZ
149012011-01-04 Jie Zhang <jie@codesourcery.com>
14902
14903 PR driver/47137
14904 * gcc.c (default_compilers[]): Set combinable field to 0
14905 for all assembly languages.
14906
2b18eb32
MX
149072011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
14908
14909 * config/mips/loongson3a.md: New file.
14910 * config/mips/mips.md: Include loongson3a.md.
14911 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14912 TUNE_LOONGSON_3A.
14913
42a48c4f
EB
149142011-01-03 Eric Botcazou <ebotcazou@adacore.com>
14915
14916 PR middle-end/47017
14917 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14918 instead of convert_memory_address_addr_space on the base expression.
14919
9c1732c4
UW
149202011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14921
14922 * config/spu/spu.c (spu_option_override): Update error text
14923 for bad -march= / -mtune= values.
14924
aa474365
UW
149252011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14926
14927 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14928 if branch-hint optimization will be performed.
14929
9766135b
JJ
149302011-01-03 Jakub Jelinek <jakub@redhat.com>
14931
371556ee
JJ
14932 PR tree-optimization/47148
14933 * ipa-split.c (split_function): Convert arguments to
14934 DECL_ARG_TYPE if possible.
14935
1ac12fa2
JJ
14936 PR tree-optimization/47155
14937 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14938 when computing uns.
14939
9766135b
JJ
14940 PR rtl-optimization/47157
14941 * combine.c (try_combine): If undobuf.other_insn becomes
14942 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14943 and set *new_direct_jump_p too.
14944
f4a2e571
SP
149452011-01-03 Sebastian Pop <sebastian.pop@amd.com>
14946
14947 PR tree-optimization/47021
14948 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14949
9f8e43c0
JJ
149502011-01-03 Jakub Jelinek <jakub@redhat.com>
14951
14952 * gcc.c (process_command): Update copyright notice dates.
14953 * gcov.c (print_version): Likewise.
14954 * gcov-dump.c (print_version): Likewise.
14955 * mips-tfile.c (main): Likewise.
14956 * mips-tdump.c (main): Likewise.
14957
1a2e38f3
MJ
149582011-01-03 Martin Jambor <mjambor@suse.cz>
14959
14960 PR tree-optimization/46801
14961 * tree-sra.c (type_internals_preclude_sra_p): Check whether
14962 aggregate fields start at byte boundary instead of the bit-field flag.
14963
56b721c5
L
149642011-01-03 H.J. Lu <hongjiu.lu@intel.com>
14965
14966 PR driver/47137
14967 * gcc.c (main): Revert revision 168407.
14968
839d549b
MJ
149692011-01-03 Martin Jambor <mjambor@suse.cz>
14970
14971 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14972
4ce99a20 149732011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
14974
14975 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14976 vector optab to expand vector/scalar shift, update gimple to vector.
14977
76df0ae6
MJ
149782011-01-03 Martin Jambor <mjambor@suse.cz>
14979
14980 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14981 a thunk.
14982
ce47fda3
MJ
149832011-01-03 Martin Jambor <mjambor@suse.cz>
14984
14985 PR tree-optimization/46984
14986 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14987 HOST_WIDE_INT.
14988 (cgraph_create_indirect_edge): Fixed line length.
14989 (cgraph_indirect_call_info): Declare.
14990 (cgraph_make_edge_direct) Update declaration.
14991 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14992 (cgraph_create_indirect_edge): Use it.
14993 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
14994 callees.
14995 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14996 the new thunk_delta representation.
14997 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14998 HOST_WIDE_INT.
14999 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15000 (ipa_read_indirect_edge_info): Likewise.
15001 * lto-cgraph.c (output_edge_opt_summary): New function.
15002 (output_node_opt_summary): Call it on all outgoing edges.
15003 (input_edge_opt_summary): New function.
15004 (input_node_opt_summary): Call it on all outgoing edges.
15005
1e67fa1f
L
150062011-01-02 H.J. Lu <hongjiu.lu@intel.com>
15007
15008 PR driver/47137
15009 * gcc.c (main): Don't check have_o when settting combine_inputs.
15010
6656b2ac
EB
150112011-01-02 Eric Botcazou <ebotcazou@adacore.com>
15012
15013 * regrename.c: Add general comment describing the pass.
15014 (struct du_head): Remove 'length' field.
15015 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15016 (regrename_optimize): Do not sort chains. Rework comments, add others.
15017 Force renaming to the preferred class (if any) in the first pass and do
15018 not consider registers that belong to it in the second pass.
15019 (create_new_chain): Do not set 'length' field.
15020 (scan_rtx_reg): Likewise.
15021
bc470c24
JJ
150222011-01-02 Jakub Jelinek <jakub@redhat.com>
15023
4e996296
JJ
15024 PR tree-optimization/47140
15025 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15026 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15027 to bit_value_binop.
15028
bc470c24 15029 PR rtl-optimization/47028
6656b2ac
EB
15030 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15031 parm_birth_insn instead of at the beginning of first bb.
bc470c24 15032
5af62fcd 150332011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
15034
15035 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15036 Remove the word "see" before "@pxref".
15037 * doc/rtl.texi: Remove the word "see" before "@pxref".
15038
0e20c89f
JH
150392011-01-01 Jan Hubicka <jh@suse.cz>
15040
6656b2ac
EB
15041 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15042 memory.
0e20c89f 15043
220e83ca
KT
150442011-01-01 Kai Tietz <kai.tietz@onevision.com>
15045
15046 PR target/38662
6656b2ac 15047 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 15048
ad41bd84 15049\f
797103eb 15050Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
15051
15052Copying and distribution of this file, with or without modification,
15053are permitted in any medium without royalty provided the copyright
15054notice and this notice are preserved.