]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR gcov-profile/48845 (All g++.dg/tree-prof and gcc.dg/{matrix, tree-prof} executi...
[gcc.git] / gcc / ChangeLog
CommitLineData
ee0cb37c
EB
12011-05-24 Eric Botcazou <ebotcazou@adacore.com>
2 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3
4 PR gcov-profile/48845
5 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
6
6a20ce76
RG
72011-05-24 Richard Guenther <rguenther@suse.de>
8
9 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
11 (gimple_types_compatible_p_1): Adjust.
12 (iterative_hash_canonical_type): Do not bother about complete vs.
13 incomplete types.
14 (gimple_canonical_types_compatible_p): Likewise.
15
2fcb858c
RO
162011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17
18 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
19
96d91dcf
RG
202011-05-24 Richard Guenther <rguenther@suse.de>
21
22 PR bootstrap/49078
23 * gimple.c (gimple_register_canonical_type): Revert
24 previous change.
25 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
26 does not for a tree for the case where it matters. Cache
27 pointer-type alias-sets.
28
1ed1641d
JM
292011-05-24 Joseph Myers <joseph@codesourcery.com>
30
31 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
32 (OBJS): Remove options.o, opts-common.o and prefix.o.
33 (OBJS-libcommon-target): New.
34 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
35 (BACKEND): Include libcommon-target.a.
36 (MOSTLYCLEANFILES): Include libcommon-target.a.
37 (libcommon-target.a): New.
38 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
39 prefix.o.
40
57dfdff0
JM
412011-05-23 Joseph Myers <joseph@codesourcery.com>
42
43 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
44 parts of output shared with the driver.
45 * optc-gen.awk: Don't generate parts of output not shared with the
46 driver.
47 * opth-gen.awk: Remove GCC_DRIVER conditionals.
48 * doc/options.texi (SourcerInclude): Mention options-save.c.
49 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
50 (OBJS): Add options-save.o.
51 (options-save.c, options-save.o): New.
52 (options.o): Update dependencies.
53 (gcc-options.o): Remove.
54 (mostlyclean): Remove options-save.c.
55
0e0d82a7
JJ
562011-05-23 Jakub Jelinek <jakub@redhat.com>
57
9166988f
JJ
58 PR debug/49032
59 * dbxout.c: Include cgraph.h.
60 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
61 and without value expr, return NULL if no varpool node exists for
62 it or if it is not needed.
63 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
64
0e0d82a7
JJ
65 PR c/49120
66 * c-decl.c (start_decl): Convert expr to void_type_node.
67
65712d5c
RS
682011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
69
70 PR rtl-optimization/48826
71 * emit-rtl.c (try_split): When splitting a call that is followed
72 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
73
9025085e
JJ
742011-05-23 Jakub Jelinek <jakub@redhat.com>
75
76 * cfgexpand.c (expand_debug_expr): For unused non-addressable
77 parameters passed in memory prefer using DECL_INCOMING_RTL over
78 the pseudos it will be copied into.
79
34a061be
L
802011-05-23 H.J. Lu <hongjiu.lu@intel.com>
81
82 PR target/47315
83 * config/i386/i386.c (ix86_option_override_internal): Save the
84 initial options after checking vzeroupper.
85
c375a3a4
DL
862011-05-23 David Li <davidxl@google.com>
87
88 PR tree-optimization/48988
89 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
90 Initialize has_valid_pred for each pred chain.
91
e1caba18
RG
922011-05-23 Richard Guenther <rguenther@suse.de>
93
94 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
95 (iterative_hash_gimple_type): Always hash type names.
96
dde05067
NF
972011-05-23 Nathan Froyd <froydnj@codesourcery.com>
98
99 * c-typeck.c (build_function_call_vec): Tweak call to
100 check_function_arguments.
101
094f6ab3
RG
1022011-05-23 Richard Guenther <rguenther@suse.de>
103
104 PR tree-optimization/49115
105 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
106 is not necessarily carried out, do not claim it kills the ref.
107 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
108
9a9822e1
RG
1092011-05-23 Richard Guenther <rguenther@suse.de>
110
111 PR middle-end/15419
112 * builtins.c (fold_builtin_memory_op): Be less restrictive about
113 what pointer types we accept for folding.
114
c8028650
RO
1152011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
116
117 * gthr-gnat.c: Remove.
118 * gthr-gnat.h: Remove.
119 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
120 * config/t-freebsd (LIB2ADDEH): Likewise.
121 * config/t-linux (LIB2ADDEH): Likewise.
122 * config/t-sol2 (LIB2ADDEH): Likewise.
123 * config/ia64/t-vms (LIB2ADDEH): Likewise.
124 * configure.ac (target_thread_file): Remove gnat handling.
125 * configure: Regenerate.
126 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
127
15882fe9
TG
1282011-05-23 Tristan Gingold <gingold@adacore.com>
129 Eric Botcazou <ebotcazou@adacore.com>
130
131 * gcov.c (create_file_names): If no object directory is specified,
132 keep the directory of the file.
133
da90c957
RO
1342011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
135
136 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
137 * configure: Regenerate.
138
7bba408b
JJ
1392011-05-23 Jakub Jelinek <jakub@redhat.com>
140
141 PR middle-end/48973
142 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
143 failed and the comparison has a single bit signed type, use
144 constm1_rtx instead of const1_rtx for true value.
145 (do_store_flag): If ops->type is single bit signed type, disable
146 signel bit test optimization and pass -1 instead of 1 as last
147 parameter to emit_store_flag_force.
148
bc69f7ff
TV
1492011-05-23 Tom de Vries <tom@codesourcery.com>
150
151 PR target/45098
152 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
153 function.
154 (infer_loop_bounds_from_undefined): Use new function.
155
29cedf8e
RS
1562011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
157
158 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
159 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
160 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
161 and -O0 otherwise.
162 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
163
afe8b6ec
EB
1642011-05-22 Eric Botcazou <ebotcazou@adacore.com>
165
166 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
167 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
168 returns true.
169
872dab53
RS
1702011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
171
172 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
173
145f6c5b
EB
1742011-05-22 Eric Botcazou <ebotcazou@adacore.com>
175
176 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
177 UNSPEC_MOVE_PIC pattern.
178
8ac79835
EB
1792011-05-22 Eric Botcazou <ebotcazou@adacore.com>
180
181 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
182 (sparc-*-rtems*): Likewise.
183 (sparc64-*-elf*): Likewise.
184 (sparc64-*-rtems*): Likewise.
185 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
186 * config/sparc/t-crtin: New file.
187 * config/sparc/t-sol2 (crti.o): Delete rule.
188 (crtn.o): Likewise.
189 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
190 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
191 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
192 (ENDFILE_SPEC): Add crtn.o.
193
5fb43dd8
TV
1942011-05-22 Tom de Vries <tom@codesourcery.com>
195
196 PR middle-end/48689
197 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
198 CODE_CONTAINS_STRUCT (TS_COMMON).
199
ccb1b17b
JJ
2002011-05-22 Jakub Jelinek <jakub@redhat.com>
201
202 PR middle-end/49029
203 * expmed.c (extract_fixed_bit_field): Test whether target can be used
204 only after deciding which mode to use.
205
50ad7db2
TV
2062011-05-22 Tom de Vries <tom@codesourcery.com>
207
208 PR target/45098
dc0a3366 209 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
210 for call to get_shiftadd_cost.
211
ef230b38
UB
2122011-05-22 Uros Bizjak <ubizjak@gmail.com>
213
214 PR target/49104
215 * config/i386/cpuid.h (bit_MMXEXT): New define.
216
15f072f9
NC
2172011-05-22 Nick Clifton <nickc@redhat.com>
218
219 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
220 initialisation of non-existant args[2] element. Use args[] array
221 not arg[] array to pass arguments to build_function_type_list.
222
e38fdc94
IR
2232011-05-22 Ira Rosen <ira.rosen@linaro.org>
224
225 PR tree-optimization/49087
ef230b38 226 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 227
5b018c65
JM
2282011-05-21 Jason Merrill <jason@redhat.com>
229
230 PR c++/49092
231 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
232 static storage duration.
233
abd9a770
EB
2342011-05-21 Eric Botcazou <ebotcazou@adacore.com>
235
236 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
237 frame pointer.
238
bd9a3248
EB
2392011-05-21 Eric Botcazou <ebotcazou@adacore.com>
240
241 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
242 false if there are call-saved registers here...
243 (sparc_can_use_return_insn_p): ...but here instead.
244 (save_or_restore_regs): Fix thinko.
245 (sparc_expand_prologue): Use current_function_is_leaf.
246 (sparc_frame_pointer_required): Likewise.
247
a5dfec9a
NC
2482011-05-21 Nick Clifton <nickc@redhat.com>
249
250 PR target/49098
251 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
252
555c3771
NP
2532011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
254
255 * gengtype.c (walk_type): Implemented "atomic" GTY option.
256 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
257
86fa5de4
JM
2582011-05-21 Joseph Myers <joseph@codesourcery.com>
259
260 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
261 * optc-gen.awk: Move common code to opt-read.awk.
262 * opth-gen.awk: Likewise.
ef230b38 263 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 264
bce33ab2
NF
2652011-05-20 Nathan Froyd <froydnj@codesourcery.com>
266
267 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
268
e6450c11
TV
2692011-05-20 Tom de Vries <tom@codesourcery.com>
270
271 PR target/45098
272 * tree-ssa-loop-ivopts.c: Include expmed.h.
273 (get_shiftadd_cost): New function.
274 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
275
0e8b84ec
JJ
2762011-05-20 Jakub Jelinek <jakub@redhat.com>
277
278 PR bootstrap/49086
279 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
280 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
281
946bdf67
JM
2822011-05-20 Joseph Myers <joseph@codesourcery.com>
283
284 * Makefile.in: Update comment referring to $(OBJS-common).
285
c53aafdf
ILT
2862011-05-20 Ian Lance Taylor <iant@google.com>
287
288 * godump.c (go_output_typedef): Put enum constants in the macro
289 hash table to avoid duplicate Go const definitions.
290
2691e6d7
JM
2912011-05-20 Joseph Myers <joseph@codesourcery.com>
292
293 * Makefile.in (LIBDEPS): Add libcommon.a.
294 (LIBS): Likewise.
295 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
296 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
297 pretty-print.o and version.o.
298 (OBJS-libcommon): New.
299 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
300 (BACKEND): Add libcommon.a.
301 (MOSTLYCLEANFILES): Likewise.
302 (libcommon.a): New.
303 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
304 (cpp$(exeext)): Likewise.
305 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
306 pretty-print.o and input.o.
307 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
308 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
309 (errors.o): Remove.
310 (mips-tfile): Don't explicitly use version.o.
311 (mips-tdump): Likewise.
312 (gcov.o): Depend on $(DIAGNOSTIC_H).
313 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
314 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
315 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
316 * gcov-dump.c: Include intl.h and diagnostic.h.
317 (main): Initialize diagnostics.
318 * gcov.c: Include diagnostic.h.
319 (fnotice): Remove.
320 (main): Initialize diagnostics.
321 * lto-wrapper.c: Include diagnostic.h.
322 (main): Initialize diagnostics.
323
252b3e8c
MM
3242011-05-20 Michael Matz <matz@suse.de>
325
326 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
327
2ee36ba6
MM
3282011-05-20 Michael Matz <matz@suse.de>
329 Richard Guenther <rguenther@suse.de>
330
331 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
332 use lto_streamer_cache_append directly instead of returning a VEC.
333 (preload_common_node): Remove.
334 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
335 track seen nodes.
336 (lto_streamer_cache_create): Call lto_preload_common_nodes.
337
90ff582f
RG
3382011-05-20 Richard Guenther <rguenther@suse.de>
339
340 PR tree-optimization/49079
341 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
342 MEM_REFs correctly for the trailing array access detection.
343 Special case constants the same way as decls for overall size
344 constraining.
345
3cda91d8
UB
3462011-05-20 Uros Bizjak <ubizjak@gmail.com>
347
348 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
349 argument expansion.
350
6c66f733
JJ
3512011-05-20 Jakub Jelinek <jakub@redhat.com>
352
353 PR tree-optimization/49073
3cda91d8
UB
354 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
355 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
356 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
357
0ea80a16
RG
3582011-05-20 Richard Guenther <rguenther@suse.de>
359
360 PR middle-end/48849
361 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
362 of pointer types the same way the middle-end does.
363
fb291a1e
RG
3642011-05-20 Richard Guenther <rguenther@suse.de>
365
3cda91d8
UB
366 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
367 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 368
37cb25ed
QN
3692011-05-19 Quentin Neill <quentin.neill@amd.com>
370
371 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
372 (fma4_fmaddsub): Likewise
373
a30726a4
JH
3742011-05-19 Jan Hubicka <jh@suse.cz>
375
376 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
377 (GIMPLE_TYPE_PAIR_SIZE): New macro.
378 (type_pair_cache): New static var.
379 (lookup_type_pair): Use fixed sized custom hash; make inline.
380 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
381 calls of lookup_type_pair.
382 (print_gimple_types_stats): Remove cache stats.
383 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
384 and gtc_ob.
385
0955cf61
UB
3862011-05-19 Uros Bizjak <ubizjak@gmail.com>
387
388 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
389 when TARGET_RDRND is active.
390 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
391 Generate dummy SImode target register when target is NULL.
392
12d844c8
JM
3932011-05-19 Joseph Myers <joseph@codesourcery.com>
394
395 * config/arm/arm-fpus.def: New.
396 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
397 arm-fpus.def.
398 * config/arm/arm-tables.opt: Regenerate.
399 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
400 (arm_option_override): Don't decode FPU name to string here.
401 * config/arm/arm.opt (mfpu=): Use Enum.
402 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
403 Update dependencies.
404
9e350e99
JM
4052011-05-19 Joseph Myers <joseph@codesourcery.com>
406
407 * collect2.c: Include diagnostic.h.
408 (fatal_perror, fatal, error, fancy_abort): Remove.
409 (main): Set progname. Call xmalloc_set_program_name and
410 diagnostic_initialize.
411 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
412 scan_libraries, resolve_lib_name): Call fatal_error instead of
413 fatal and fatal_perror.
414 * collect2.h (error, fatal, fatal_perror): Don't declare.
415 * tlink.c: Include diagnostic-core.h.
416 (recompile_files): Call fatal_error instead of fatal_perror.
417 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
418 pretty-print.o and input.o.
419 (collect2.o, tlink.o): Update dependencies.
420
86ff4081
RO
4212011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
422
423 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
424
2ca48caa
RO
4252011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
426
427 PR target/40483
428 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
429 COMDAT group syntax, both SPARC and x86 variants.
430 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
431 * configure: Regenerate.
432 * config/sol2.h (TARGET_SOLARIS): Define.
433 (PUSHSECTION_FORMAT): Remove.
434 (SECTION_NAME_FORMAT): Define.
435 * config/sol2.c: Include hashtab.h.
436 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
437 expansion, using SECTION_NAME_FORMAT.
438 (solaris_comdat_htab): New variable.
439 (struct comdat_entry): Define.
440 (comdat_hash): New function.
441 (comdat_eq): New function.
442 (solaris_elf_asm_comdat_section): New function.
443 (solaris_define_comdat_signature): New function.
444 (solaris_code_end): New function.
445 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
446 (solaris_code_end): Declare.
447 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
448 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
449 solaris_code_end.
450 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
451 Remove ATTRIBUTE_UNUSED.
452 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
453 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 454 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
455 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
456 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
457 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
458 (PUSHSECTION_FORMAT): Remove.
459 (SECTION_NAME_FORMAT): Redefine.
460
da5fb469
KT
4612011-05-19 Kai Tietz <ktietz@redhat.com>
462
463 * tree-cfg.c (verify_gimple_assign_binary): Barf on
464 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
465 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
466
0967b228
AS
4672011-05-19 Anatoly Sokolov <aesok@post.ru>
468 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
469
470 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
471
e497b9bd
RG
4722011-05-19 Richard Guenther <rguenther@suse.de>
473
474 PR middle-end/48985
475 * tree-object-size.c (addr_object_size): If the pointed-to
476 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
477
31b3ca64
RG
4782011-05-19 Richard Guenther <rguenther@suse.de>
479
480 * gimple.c (gimple_types_compatible_p_1): Compare names of
481 the types themselves.
482 (iterative_hash_gimple_type): And hash them that way.
483 (gimple_register_type_1): If we register a main variant properly
484 initialize the leader to ourselves.
485
bb8d292d
TV
4862011-05-19 Tom de Vries <tom@codesourcery.com>
487
488 PR target/45098
489 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
490 get_loop_invariant_expr_id.
491 (get_loop_invariant_expr_id): Use get_expr_id.
492 (parm_decl_cost): New function.
493 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
494 Improve bound cost estimation. Use different inv_expr_id for elim and
495 express cases.
496
a53c5024
TV
4972011-05-19 Tom de Vries <tom@codesourcery.com>
498
499 PR target/45098
500 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
501 cost_base.cost == 0.
502
31f9eb59
L
5032011-05-18 H.J. Lu <hongjiu.lu@intel.com>
504
505 PR target/49002
506 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
507 Properly handle load cast.
508
681056ae
JJ
5092011-05-18 Jakub Jelinek <jakub@redhat.com>
510
511 PR tree-optimization/49039
512 * tree-vrp.c (extract_range_from_binary_expr): For
513 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
514 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
515
b5ee6752
TV
5162011-05-18 Tom de Vries <tom@codesourcery.com>
517
518 PR target/45098
519 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
520
0bda47a3
UB
5212011-05-18 Uros Bizjak <ubizjak@gmail.com>
522
523 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
524 (*tls_global_dynamic_64): Ditto.
525 (*tls_local_dynamic_base_32_gnu): Ditto.
526 (*tls_local_dynamic_base_64): Ditto.
527 (tls_initial_exec_64_sun): Ditto.
528
033b0805
SH
5292011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
530
531 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
532 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
533 bf592-none.
534 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
535 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
536 * config/bfin/bfin.c (bfin_cpus): Add bf592.
537 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 538 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
539 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
540 * config/bfin/elf.h (LIB_SPEC): Add bf592.
541
ba163417
JM
5422011-05-18 Joseph Myers <joseph@codesourcery.com>
543
544 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 545 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
546 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
547 target_thread_pointer, arm_structure_size_boundary, struct
548 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
549 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
550 (arm_option_override) Don't process most enumerated option values here.
551 Don't process target_fpe_name here. Work with integer not string for
552 structure size boundary; use separate diagnostics for each case.
ba163417
JM
553 * config/arm/arm.h (enum float_abi_type, enum
554 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
555 to arm-opts.h.
556 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
557 arm_structure_size_boundary): Remove.
558 * config/arm/arm.opt (mabi=): Use Enum and Init.
559 (arm_abi_type): New Enum and EnumValue entries.
560 (mfloat-abi=): Use Enum and Init.
561 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 562 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
563 (mfp16-format=): Use Enum and Init.
564 (arm_fp16_format_type): New Enum and EnumValue entries.
565 (mstructure-size-boundary=): Use UInteger and Init.
566 (mtp=): Use Enum and Init.
567 (arm_tp_type): New Enum and EnumValue entries.
568
179184e3
RG
5692011-05-18 Richard Guenther <rguenther@suse.de>
570
571 PR tree-optimization/49018
572 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
573 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
574 gimple_has_side_effects.
575
93b2a207
RG
5762011-05-18 Richard Guenther <rguenther@suse.de>
577
578 * gimple.c (gimple_register_type_1): New function, split out from ...
579 (gimple_register_type): ... here. Avoid infinite recursion.
580
b010117a
IR
5812011-05-18 Ira Rosen <ira.rosen@linaro.org>
582
583 PR tree-optimization/41881
584 * tree-vectorizer.h (struct _loop_vec_info): Add new field
585 reduction_chains along with a macro for its access.
586 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
587 (destroy_loop_vec_info): Free reduction chains.
588 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
589 (vect_is_slp_reduction): New function.
590 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
591 (vect_create_epilog_for_reduction): Support SLP reduction chains.
592 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
593 definition types for reduction chains.
594 (vect_supported_load_permutation_p): Don't allow permutations for
595 reduction chains.
596 (vect_analyze_slp_instance): Support reduction chains.
597 (vect_analyze_slp): Try to build SLP instance from reduction chains.
598 (vect_get_constant_vectors): Handle reduction chains.
599 (vect_schedule_slp_instance): Mark the first statement of the
600 reduction chain as reduction.
601
e14c1050
IR
6022011-05-18 Ira Rosen <ira.rosen@linaro.org>
603
604 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
605 names for group elements access.
606 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
607 reduction chains as well. Remove data reference and interleaving
608 related words from the fields names.
609 * tree-vect-loop.c (vect_transform_loop): Use new names for group
610 elements access.
611 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
612 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
613 vect_update_interleaving_chain, vect_same_range_drs,
614 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
615 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
616 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
617 vect_analyze_group_access, vect_analyze_data_ref_access,
618 vect_create_data_ref_ptr, vect_transform_strided_load,
619 vect_record_strided_load_vectors): Likewise.
620 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
621 vect_model_load_cost, vectorizable_store, vectorizable_load,
622 vect_remove_stores, new_stmt_vec_info): Likewise.
623 * tree-vect-slp.c (vect_build_slp_tree,
624 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
625
51c213f7
RG
6262011-05-18 Richard Guenther <rguenther@suse.de>
627
628 PR middle-end/48989
629 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
630 operand verification.
631 (verify_gimple_assign_binary): Likewise.
632 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
633 to non-1-precision BOOLEAN_TYPEs.
634
8f5e5434
TV
6352011-05-18 Tom de Vries <tom@codesourcery.com>
636
637 PR target/45098
638 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
639
116bc3a4
JJ
6402011-05-18 Jakub Jelinek <jakub@redhat.com>
641
642 PR tree-optimization/49000
643 * tree-ssa.c (execute_update_addresses_taken): Call
644 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
645 be rewritten and decl has been marked for renaming, reset
646 the debug stmt.
647
26a8964c
JM
6482011-05-17 Joseph Myers <joseph@codesourcery.com>
649
650 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
651 enum_opts_set when testing if attributes have set -mfpmath=.
652
82bd45d7
RS
6532011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
654
655 * config/mips/mips.c (mips_handle_option): Remove unused variable.
656
267ffce3
UB
6572011-05-17 Uros Bizjak <ubizjak@gmail.com>
658
659 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
660 info->entry with 0
661 * tree-inline.c (maybe_inline_call_in_expr): Initialize
662 id.transform_lang_insert_block with NULL.
663
6642011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
665
666 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
667 (output_fp_compare): Change args 3 and 4 to bool.
668 (ix86_expand_call): Change arg 6 to bool.
669 (ix86_attr_length_immediate_default): Change arg 2 to bool.
670 (ix86_attr_length_vex_default): Change arg 3 to bool.
671 * config/i386/i386.md: Update all uses.
672 * config/i386/i386.c: Ditto.
673 (ix86_flags_dependent): Change return type to bool.
674
5beaf664
RG
6752011-05-17 Richard Guenther <rguenther@suse.de>
676
677 * gimple.c (type_hash_pair_compare): Fix comparison.
678
008bad7a
RG
6792011-05-17 Richard Guenther <rguenther@suse.de>
680
681 * gimple.c (iterative_hash_gimple_type): Simplify singleton
682 case some more, fix final hash value of the non-singleton case.
683
36461340
RG
6842011-05-17 Richard Guenther <rguenther@suse.de>
685
686 PR bootstrap/49013
687 Revert
688 2011-05-16 Richard Guenther <rguenther@suse.de>
689
690 * gimple.c (gimple_types_compatible_p_1): Use names of the
691 type itself, not its main variant.
692 (iterative_hash_gimple_type): Likewise.
693
6b6a59f3
RG
6942011-05-17 Richard Guenther <rguenther@suse.de>
695
696 * gimple.c (gimple_register_canonical_type): Use the main-variant
697 leader for computing the canonical type.
698
4ffc4134
NC
6992011-05-17 Nick Clifton <nickc@redhat.com>
700
a1d8754e
NC
701 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
702 moves.
703
4ffc4134
NC
704 * config/rx/rx.md: Add peephole to remove redundant extensions
705 after loads.
39960f7a
NC
706 (bitset_in_memory): Use rx_restricted_mem_operand.
707 (bitinvert_in_memory): Likewise.
708 (bitclr_in_memory): Likewise.
4ffc4134 709
b3db92ac
KI
7102011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
711 Nick Clifton <nickc@redhat.com>
712
713 * config/rx/rx.md: Add peepholes to match a register move followed
714 by a comparison of the moved register. Replace these with an
715 addition of zero that does both actions in one instruction.
716
8637e32a
JJ
7172011-05-17 Jakub Jelinek <jakub@redhat.com>
718
719 PR target/48986
720 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
721 predicate to allow CONST_INT.
722 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
723
8023568e
JM
7242011-05-16 Joseph Myers <joseph@codesourcery.com>
725
726 * opts-common.c (opt_enum_arg_to_value): New.
727 * opts.h (opt_enum_arg_to_value): Declare.
728 * config/i386/i386.opt (fpmath): Remove.
729 (mfpmath=): Use Enum, Init and Save.
730 (fpmath_unit): New Enum and EnumValue entries.
731 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
732 name for function fpmath state.
733 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
734 * config/i386/i386.c: Include diagnostic.h.
735 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 736 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 737 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 738 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
739 (x86_function_specific_save, ix86_function_specific_restore):
740 Don't handle fpmath state specially.
741 (ix86_function_specific_print): Pass fpmath state to
742 ix86_target_string instead of printing in this function.
743 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
744 Handle enum attributes.
745 (IX86_ATTR_ENUM, ix86_opt_enum): New.
746 (ix86_valid_target_attribute_tree): Update option_strings
747 handling. Handle fpmath as enum option.
748 (ix86_can_inline_p): Update field names for function fpmath state.
749 (ix86_expand_builtin): Update call to ix86_target_string.
750 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
751 (ix86_fpmath): Remove.
752 * config/i386/t-i386 (i386.o): Update dependencies.
753
9e8d926e
JM
7542011-05-16 Joseph Myers <joseph@codesourcery.com>
755
756 PR preprocessor/48677
757 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
758 from decoded_options[0], not from itself.
759
f6449011
UB
7602011-05-16 Uros Bizjak <ubizjak@gmail.com>
761
762 * config/i386/constraints.md (z): New constraint.
763 * config/i386/i386.c (c): New mode attribute.
764 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
765 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
766 constraint for operand 0.
767 (*call_vzeroupper): Ditto.
768 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
769 (*call_rex64_ms_sysv_vzeroupper): Ditto.
770 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
771 Use "lzm" constraint for operand 0.
772 (*call_pop_vzeroupper): Ditto.
773 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
774 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
775 constraint for operand 0.
776 (*sibcall_vzeroupper): Ditto.
777 (*sibcall_rex64_ms_sysv): Ditto.
778 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
779 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
780 *sibcall_pop_1. Use "Uz" constraint for operand 0.
781 (*sibcall_pop_vzeroupper): Ditto.
782 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
783 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
784 mode iterator. Use "<c>zm" constraint for operand 1.
785 (*call_value_vzeroupper): Ditto.
786 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 787 for operand 1.
f6449011
UB
788 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
789 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
790 *call_value_pop_1. Use "lzm" constraint for operand 1.
791 (*call_value_pop_vzeroupper): Ditto.
792 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
793 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
794 mode iterator. Use "Uz" constraint for operand 1.
795 (*sibcall_value_vzeroupper): Ditto.
796 (*sibcall_value_rex64_ms_sysv): Ditto.
797 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
798 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
799 constraint for operand 1.
800 (*sibcall_value_pop_vzeroupper): Ditto.
801 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
802 and "z" constraint for operand 2.
803 (*tls_global_dynamic_32_gnu): Ditto.
804 (*tls_local_dynamic_base_32_gnu): Ditto.
805 (*tls_local_dynamic_base_64): Ditto.
806 (*tls_local_dynamic_32_once): Ditto.
807 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
808 Update all callers.
809 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
810
c11b6902
RG
8112011-05-16 Richard Guenther <rguenther@suse.de>
812
813 * gimple.c (gimple_types_compatible_p_1): Use names of the
814 type itself, not its main variant.
815 (iterative_hash_gimple_type): Likewise.
816
1e83b5f1
RG
8172011-05-16 Richard Guenther <rguenther@suse.de>
818
f6449011
UB
819 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
820 always visit pointer target and function result and argument types.
1e83b5f1 821
62e36382
JM
8222011-05-16 Jason Merrill <jason@redhat.com>
823
824 PR c++/48999
825 * tree-inline.c (copy_statement_list): Put back recursion.
826
687027a4
GJL
8272011-05-16 Georg-Johann Lay <avr@gjlay.de>
828
829 PR target/27663
830 PR target/41076
831 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
832 * config/avr/avr.md ("*ior<mode>qi.byte0",
833 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
834
f24a5190
GJL
8352011-05-16 Georg-Johann Lay <avr@gjlay.de>
836
837 PR target/45099
838 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
839 register is needed for a function argument.
840
3066f593
RG
8412011-05-16 Richard Guenther <rguenther@suse.de>
842
843 * gimple.c (struct type_hash_pair): New type.
844 (type_hash_pair_compare): New function.
f6449011 845 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 846
b2ab2cf4
RE
8472011-05-16 Revital Eres <revital.eres@linaro.org>
848
f6449011 849 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 850
dfb737fc
UB
8512011-05-15 Uros Bizjak <ubizjak@gmail.com>
852
853 * config/i386/i386.md (floating point move splitters): Fix
854 usage of standard_80387_constant_p.
f6449011 855 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 856
8caa1de0
UB
8572011-05-15 Uros Bizjak <ubizjak@gmail.com>
858
859 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
860
8a519095
EB
8612011-05-14 Eric Botcazou <ebotcazou@adacore.com>
862
863 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
864 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
865 (tree_ssa_lim_finalize): Likewise.
866
479fecd3
UB
8672011-05-14 Uros Bizjak <ubizjak@gmail.com>
868
869 * config/i386/constraint.md (Yd, Yx): New register constraints.
870 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
871 Yd conditional register constraint.
872 (*movtf_internal): Use standard_sse_constant_opcode.
873 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
874 Yx conditional register constraint.
875 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
876 Yd conditional register constraint. Use standard_sse_constant_p to
877 check for valid SSE constants and call standard_sse_constant_opcode to
878 output SSE insn.
879 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
880 constants and call standard_sse_constant_opcode to output SSE insn.
881 * config/i386/i386.c (ix86_option_ovverride_internal): Set
882 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
883 optimize_size is set.
884 (standard_sse_constant_opcode): Output conditional AVX insn templates.
885
2d8c9ad5
TB
8862011-05-14 Tobias Burnus <burnus@net-b.de>
887
888 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
889
411a20d6
MJ
8902011-05-13 Martin Jambor <mjambor@suse.cz>
891
892 * ipa-prop.c (ipa_cst_from_jfunc): New function.
893 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
894 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
895 (evaluate_conditions_for_ipcp_clone): Removed.
896 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
897 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
898 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
899
dc764d10
EB
9002011-05-13 Eric Botcazou <ebotcazou@adacore.com>
901
902 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
903 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
904 lieu of MAY_HAVE_DEBUG_STMTS.
905 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
906 debug statements if !MAY_HAVE_DEBUG_STMTS.
907
9f47a24e
MT
9082011-05-13 Martin Thuresson <martint@google.com>
909
910 PR gcov-profile/47793
911 * libgcov.c (gcov_exit): Support relative profile paths.
912 * doc/invoke.texi (-fprofile-dir): Update for above change.
913
b8a71aed
RG
9142011-05-13 Richard Guenther <rguenther@suse.de>
915
916 * gimple.c (gimple_canonical_types_compatible_p): Do not use
917 type-pair caching, do not compare hashes.
918
eb9f9259
NF
9192011-05-13 Nathan Froyd <froydnj@codesourcery.com>
920
921 PR middle-end/48965
922 * tree-cfg.c (edge_to_cases_cleanup): Return true.
923 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
924
3c6cbf7a
KT
9252011-05-13 Kai Tietz <ktietz@redhat.com>
926
927 * gimplify.c (gimplify_expr): Make sure operand is boolified.
928 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
929 compatible type for TRUTH_NOT_EXPR.
930
2e7f5dc0
L
9312011-05-13 H.J. Lu <hongjiu.lu@intel.com>
932
dc764d10 933 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
934 (ix86_hard_regno_mode_ok): Change return value to bool. Use
935 can_create_pseudo_p ().
936
e834e95c
RG
9372011-05-13 Richard Guenther <rguenther@suse.de>
938
939 PR lto/48978
940 * gimple.c (iterative_hash_gimple_type): Revert change in
941 pointer target and function result and argument hashing.
942
34203483
UB
9432011-05-13 Uros Bizjak <ubizjak@gmail.com>
944
945 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
946 (*movxf_internal_nointeger): Ditto.
947 (*movdf_internal_rex64): Ditto.
948 (*movdf_internal): Ditto.
949 (*movdf_internal_nointeger): Ditto.
950 (*movsf_internal): Ditto.
951 (sincos splitters): Use can_create_pseudo ().
952
7eb68c06
JM
9532011-05-13 Joseph Myers <joseph@codesourcery.com>
954
955 * config/i386/i386-opts.h: New.
956 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
957 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
958 ix86_section_threshold): Remove.
959 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
960 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
961 OPT_mbranch_cost_.
962 (ix86_option_override_internal): Don't decode strings for options
963 other than -march=, -mtune= and -mfpmath=. Don't allow for
964 __attribute__ uses in remaining diagnostics for options with
34203483 965 string arguments. Don't check for integer arguments being negative.
7eb68c06 966 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 967 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
968 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
969 ix86_branch_cost, ix86_section_threshold): Remove.
970 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
971 HeaderInclude.
972 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
973 but not Var.
974 (masm=): Use Enum and Init.
975 (asm_dialect): New Enum and EnumValue entries.
976 (mbranch-cost=): Use UInteger.
977 (mlarge-data-threshold=): Use UInteger and Init.
978 (mcmodel=): Use Enum and Init.
979 (cmodel): New Enum and EnumValue entries.
980 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
981 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
982 mregparm=): Use UInteger.
983 (mstringop-strategy=): Use Enum and Init.
984 (stringop_alg): New Enum and EnumValue entries.
985 (mtls-dialect=): Use Enum and Init.
986 (tls_dialect): New Enum and EnumValue entries.
987 (mabi=): Use Enum and Init.
988 (calling_abi): New Enum and EnumValue entries.
989 (mveclibabi=): Use Enum and Init.
990 (ix86_veclibabi): New Enum and EnumValue entries.
991
f67e203c
NC
9922011-05-13 Nick Clifton <nickc@redhat.com>
993
34203483
UB
994 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
995 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 996
221df0b6
KT
9972011-05-13 Kai Tietz <ktietz@redhat.com>
998
999 PR middle-end/48984
1000 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1001 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1002 (gimple_boolify): Check for cast for boolean_type_node instead for
1003 BOOLEAN_TYPE.
1004
208cb8cb
RG
10052011-05-13 Richard Guenther <rguenther@suse.de>
1006
1007 PR tree-optimization/48172
1008 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1009 multiplying by number of iterations for equal step.
1010 (vect_create_cond_for_alias_checks): Likewise.
1011
b88ecf55
AS
10122011-05-13 Andreas Schwab <schwab@redhat.com>
1013
1014 * configure.ac: Use AS_HELP_STRING throughout.
1015 * configure: Regenerate.
1016
569b527e
L
10172011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1018
34203483 1019 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
1020 (ix86_emit_restore_regs_using_mov): Likewise.
1021 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1022
8b9a1428
AS
10232011-05-12 Anatoly Sokolov <aesok@post.ru>
1024
1025 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1026 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1027 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1028 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1029 RTX_OK_FOR_OLO10_P): ...here.
1030 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1031 SYMBOLIC_CONST.
1032
1d15f620
KT
10332011-05-12 Kai Tietz <ktietz@redhat.com>
1034
1035 * gimplify.c (gimple_boolify): Re-boolify expression
1036 arguments even if expression type is of kind BOOLEAN_TYPE.
1037 (gimplify_boolean_expr): Removed.
1038 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1039 and XOR. Additional take care that we keep expression's type.
1040 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1041 of TRUTH_AND|OR|XOR_EXPR.
1042
c2b5fc8d
JJ
10432011-05-12 Jakub Jelinek <jakub@redhat.com>
1044
1045 PR tree-optimization/48975
1046 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1047 on all bbs here and free and clear ifc_bbs at the end.
1048
61332f77
RG
10492011-05-12 Richard Guenther <rguenther@suse.de>
1050
1051 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1052 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1053 until after simple checks.
1054 (gimple_types_compatible_p): Likewise.
1055 (iterative_hash_gimple_type): Always hash pointer targets
1056 and function return and argument types.
1057 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1058 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1059 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1060 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1061 completely in the simple compare section.
1062 (gimple_register_canonical_type): Query the cache again after
1063 registering.
1064
e2a3a5f1
RG
10652011-05-12 Richard Guenther <rguenther@suse.de>
1066
1067 PR tree-optimization/48172
1068 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1069 the number of iterations from the segment size calculation.
1070 (vect_create_cond_for_alias_checks): Adjust.
1071
2c703f3a
JJ
10722011-05-12 Jakub Jelinek <jakub@redhat.com>
1073
1074 PR debug/48967
1075 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1076 if validate_subreg fails.
1077
10782011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
1079
1080 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1081 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1082 early.
1083
87e91fca
DD
10842011-05-12 DJ Delorie <dj@redhat.com>
1085
d53903d6 1086 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
1087 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1088 created builtin into rx_builtins array.
1089 (rx_builtin_decl): New function.
34203483 1090 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 1091
5f2f13fd
DD
10922011-05-12 DJ Delorie <dj@redhat.com>
1093 Nick Clifton <nickc@redhat.com>
1094
1095 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1096 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1097 (rx_is_legitimate_address): Add pre-decrement and post-increment
1098 addressing in HImode and QImode. Fix test for out of range
1099 REG+INT addressing.
87e91fca 1100 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 1101 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 1102 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 1103 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 1104
57421f45
JM
11052011-05-11 Jason Merrill <jason@redhat.com>
1106
1107 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1108
898c90c0
EB
11092011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1110
1111 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1112 reindent the subsequent block.
1113
79bec923
ST
11142011-05-11 Satoru Takabayashi <satorux@google.com>
1115 Paul Pluzhnikov <ppluzhnikov@google.com>
1116
34203483 1117 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
1118 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1119 * config.in: Add LINKER_HASH_STYLE.
1120 * configure.ac: Add --with-linker-hash-style.
1121 * configure: Regenerate.
79bec923 1122
d0340959
RG
11232011-05-11 Richard Guenther <rguenther@suse.de>
1124
1125 PR middle-end/48964
1126 * gimple.c (iterative_hash_canonical_type): Fix typo.
1127
cb032fee
UB
11282011-05-11 Uros Bizjak <ubizjak@gmail.com>
1129
1130 * config/i386/i386.c (legitimize_tls_address)
479fecd3 1131 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1132 expanders directly for TARGET_GNU2_TLS. Determine pic and
1133 __tls_get_addr symbol reference here. Update call to
1134 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 1135 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1136 expanders directly for TARGET_GNU2_TLS. Determine
1137 __tls_get_addr symbol reference here. Update call to
1138 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
1139 unique UNSPEC REG_EQUIV to libcall block.
1140 (ix86_tls_get_addr): Declare static.
1141 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1142 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1143 Do not determine pic and __tls_get_addr symbol reference here. Do not
1144 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1145 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1146 (tls_global_dynamic_64): Add operand 2. Do not determine
1147 __tls_get_addr symbol reference here. Do not call
1148 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1149 (tls_local_dynamic_base64): Ditto for operand 1.
1150
6d3cc8f0
EB
11512011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1152
1153 * function.c (expand_function_start): Initialize stack_check_probe_note
1154 only if the generic stack checking mechanism is used.
1155
51e020fc
RG
11562011-05-11 Richard Guenther <rguenther@suse.de>
1157
1158 PR tree-optimization/15256
1159 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1160 (A & B) | C, combine (A op CST1) op CST2.
1161 (tree_ssa_forward_propagate_single_use_vars): Only bother to
1162 visit assigns that have uses.
1163
51545682
NF
11642011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1165
cb032fee 1166 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
1167 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1168 (unpack_ts_type_common_value_fields): ...this. Update comment.
1169 (unpack_value_fields): Adjust for renaming.
1170 (lto_input_ts_type_tree_pointers): Split into...
1171 (lto_input_ts_type_common_tree_pointer): ...this and...
1172 (lto_input_ts_type_non_common_tree_pointers): ...this.
1173 (lto_input_tree_pointers): Adjust for above split.
1174 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1175 (pack_ts_type_common_value_fields): ...this. Update comment.
1176 (lto_output_ts_type_tree_pointers): Split into...
1177 (lto_output_ts_type_common_tree_pointers): ...this and...
1178 (lto_output_ts_type_non_common_tree_pointers): ...this.
1179 (lto_output_tree_pointers): Adjust for above split.
1180 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1181 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1182 * stor-layout.c (vector_type_mode): Adjust location of mode field.
1183 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1184 Define.
1185 (struct tree_type): Split into...
1186 (struct tree_type_common: ...this and...
1187 (struct tree_type_with_lang_specific): ...this and...
1188 (struct tree_type_non_common): ...this. Adjust accessor macros
1189 accordingly.
1190 (TYPE_VALUES_RAW): Define.
1191 (union tree_node): Update for above changes.
1192 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1193 TS_TYPE_NON_COMMON.
1194 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1195 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1196 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1197 * treestructu.def (TS_TYPE): Remove.
1198 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1199 Define.
1200
b03c3082
JJ
12012011-05-11 Jakub Jelinek <jakub@redhat.com>
1202
1203 PR debug/48159
1204 * tree-ssa.c (reset_debug_uses): New function.
1205 * tree-flow.h (reset_debug_uses): New prototype.
1206 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1207 * tree-loop-distribution.c (generate_loops_for_partition): Call
1208 reset_debug_uses on the stmts that will be removed. Keep around
1209 all debug stmts, don't count them as bits in partition bitmap.
1210 (generate_builtin): Don't count debug stmts or labels as bits in
1211 partition bitmap.
1212
b5e04de5
RG
12132011-05-11 Richard Guenther <rguenther@suse.de>
1214
1215 * gimple.c (gimple_type_hash_1): Merge with ...
1216 (gimple_type_hash): ... this.
1217 (gtc_visit): Remove mode parameter and simplify accordingly.
1218 (gimple_types_compatible_p_1): Likewise.
1219 (gimple_types_compatible_p): Likewise.
1220 (iterative_hash_gimple_type): Likewise.
1221 (visit): Likewise.
1222 (gimple_type_eq): Adjust.
1223
fc6970e4
RE
12242011-05-11 Revital Eres <revital.eres@linaro.org>
1225
1226 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1227 enters the branch create an anti edge in the opposite direction
1228 to prevent the creation of reg-moves.
1229 * modulo-sched.c: Adjust comment to reflect the fact we are
1230 scheduling closing branch.
1231 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1232 (stage_count): New field in struct partial_schedule.
1233 (calculate_stage_count): New function.
1234 (normalize_sched_times): Rename to reset_sched_times and handle
1235 incrementing the sched time of the nodes by a constant value
1236 passed as parameter.
1237 (duplicate_insns_of_cycles): Skip closing branch.
1238 (sms_schedule_by_order): Schedule closing branch.
1239 (ps_insn_find_column): Handle closing branch.
1240 (sms_schedule): Call reset_sched_times and adjust the code to
1241 support scheduling of the closing branch.
1242 (ps_insert_empty_row): Update calls to normalize_sched_times
1243 and rotate_partial_schedule functions.
1244
41a58a92
RG
12452011-05-11 Richard Guenther <rguenther@suse.de>
1246
1247 PR middle-end/48953
1248 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1249
e9f8dcf9
JM
12502011-05-11 Joseph Myers <joseph@codesourcery.com>
1251
cb032fee
UB
1252 * opts.c (finish_options): Move warning settings from process_options.
1253 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 1254
10c224a9
RG
12552011-05-11 Richard Guenther <rguenther@suse.de>
1256
1257 PR tree-optimization/18041
1258 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1259 (simplify_bitwise_binary): ... this. Handle operand conversions
1260 by applying them to the result instead.
1261 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
1262
825b27de
RG
12632011-05-11 Richard Guenther <rguenther@suse.de>
1264
1265 * gimple.c (gimple_canonical_types_compatible_p): Split out
1266 from gimple_types_compatible_p and friends. Do not recurse
1267 to pointed-to types.
1268 (gimple_canonical_type_eq): Use it.
1269 (iterative_hash_canonical_type): Split out from
1270 iterative_hash_gimple_type and friends. Do not recurse
1271 to pointed-to types.
1272 (gimple_canonical_type_hash): Use it, allocate the hash here.
1273
ca756625
RE
12742011-05-11 Revital Eres <revital.eres@linaro.org>
1275
1276 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1277 recognizing doloop.
1278
b8abece3
RE
12792011-05-11 Revital Eres <revital.eres@linaro.org>
1280
1281 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1282 instead of PREV_INSN.
1283
ce7b3761
RE
12842011-05-11 Revital Eres <revital.eres@linaro.org>
1285
1286 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1287 * loop-doloop.c (doloop_condition_get): Likewise.
1288 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1289 (doloop_end): New.
1290 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1291
a9dc9d37
NF
12922011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1293
1294 * tree.def (CASE_LABEL_EXPR): Add an operand.
1295 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1296
96703596
JM
12972011-05-10 Joseph Myers <joseph@codesourcery.com>
1298
1299 * c-decl.c (c_override_global_bindings_to_false): Remove.
1300 (global_bindings_p): Don't check
1301 c_override_global_bindings_to_false.
1302 * c-tree.h (c_override_global_bindings_to_false): Remove.
1303 * c-typeck.c (composite_type): Don't set
1304 c_override_global_bindings_to_false.
1305
dbcc9f08
MM
13062011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1307
1308 PR target/48857, 48495
1309 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1310 (VSX_MODE): Ditto.
1311 (VSX_MOVE_MODE): Ditto.
1312 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1313 VSX vector types. Add V2DImode.
1314 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1315 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1316 (MODES_TIEABLE_P): Ditto.
1317
1318 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1319 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1320 VSX_VECTOR_MODE.
1321 (init_cumulative_args): Ditto.
1322 (rs6000_function_arg_boundary): Ditto.
1323 (rs6000_function_arg_advance_1): Ditto.
1324 (rs6000_function_arg): Ditto.
1325 (rs6000_function_ok_for_sibcall): Ditto.
1326 (emit_frame_save): Ditto.
1327 (rs6000_function_value): Ditto.
1328 (rs6000_libcall_value): Ditto.
1329
4a68b4ca
JM
13302011-05-10 Joseph Myers <joseph@codesourcery.com>
1331
1332 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1333 i386/darwin-lib.h to $libgcc_tm_file.
1334 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1335
bcb521e9
JM
13362011-05-10 Joseph Myers <joseph@codesourcery.com>
1337
1338 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1339
f10d3ac9
JM
13402011-05-10 Joseph Myers <joseph@codesourcery.com>
1341
cb032fee 1342 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
1343 * config/rs6000/rs6000-tables.opt: New file (generated).
1344 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1345 rs6000/rs6000-tables.opt to extra_options.
1346 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1347 * config/rs6000/rs6000.c (rs6000_select): Remove.
1348 (processor_target_table): Move contents to rs6000-cpus.def.
1349 (darwin_rs6000_override_options): Check
1350 global_options_set.x_rs6000_cpu_index instead of
1351 rs6000_select[1].string.
1352 (rs6000_option_override_internal): Likewise.
1353 (rs6000_handle_option): Don't assert that global structures are in
1354 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1355 (rs6000_default_cpu): New variable.
1356 (rs6000_file_start): Set it instead of local default_cpu. Check
1357 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1358 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1359 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1360 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1361 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1362 rs6000_select): Remove.
1363 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1364 Remove.
1365 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1366 * config/rs6000/t-rs6000
1367 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1368 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1369 global_options_set.x_rs6000_cpu_index instead of
1370 rs6000_select[1].string.
1371 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1372 global_options_set.x_rs6000_cpu_index instead of
1373 rs6000_select[1].string.
1374
80cf2e08
JM
13752011-05-10 Joseph Myers <joseph@codesourcery.com>
1376
1377 * config.gcc (libgcc_tm_file): Define instead of including files
1378 from ../../libgcc/config/ in tm_file.
cb032fee 1379 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
1380 * configure: Regenerate.
1381 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1382 libgcc_tm.h, cs-libgcc_tm.h): New.
1383 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1384 (clean): Remove libgcc_tm.h.
1385 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1386 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1387 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1388
fd01a351
GJL
13892011-05-10 Georg-Johann Lay <avr@gjlay.de>
1390
1391 PR target/48896
1392 * config/avr/avr.c (avr_ret_register): Return unsigned int
1393 instead of int.
1394 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1395 it to avr_libcall_value.
1396 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1397 expand_expr.
1398 (avr_expand_binop_builtin): Ditto.
1399 (avr_expand_unop_builtin): Ditto.
1400
34cc3c86
DD
14012011-05-10 DJ Delorie <dj@redhat.com>
1402
1403 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1404 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1405 * config/rx/rx.c (rx_align_for_label): Add label and
1406 uses_threshold parameters. Do not align when the label is not
1407 used enough.
1408 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1409
be173289
RG
14102011-05-10 Richard Guenther <rguenther@suse.de>
1411
1412 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1413 a series of conversions and apply foldings similar to what
1414 fold-const does.
1415 (tree_ssa_forward_propagate_single_use_vars): Call it.
1416
e7f78021
JJ
14172011-05-10 Jakub Jelinek <jakub@redhat.com>
1418
6ae70ea2
JJ
1419 PR tree-optimization/48611
1420 PR tree-optimization/48794
1421 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1422 referenced from RESX or EH_DISPATCH arguments.
1423
e7f78021
JJ
1424 PR debug/48928
1425 * dfp.c (decimal_to_decnumber): Handle conversion from
1426 dconst{1,2,m1,half}.
1427
fca132b9
UB
14282011-05-09 Uros Bizjak <ubizjak@gmail.com>
1429
1430 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1431 for !flag_prefer_avx128.
1432 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1433
e4c03378
EB
14342011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1435
1436 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1437 (fold_ternary_loc): Use expr_location_or.
1438
805d6a75
L
14392011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1440
1441 PR debug/48853
1442 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1443 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1444 Pmode and mem_mode is not VOIDmode.
1445
e4c03378 14462011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 1447
e4c03378
EB
1448 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1449 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 1450
51e7f377
UB
14512011-05-09 Uros Bizjak <ubizjak@gmail.com>
1452
1453 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1454 (const_pow2_1_to_8_operand): Ditto.
1455 (const_pow2_1_to_128_operand): Ditto.
1456 (const_pow2_1_to_32768_operand): Ditto.
1457 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1458 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1459 in insn constraint to check integer value of operand 3.
1460 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1461
1462 (PINSR_MODE): New mode iterator.
1463 (sse2p4_1): New mode attribute.
1464 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1465 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1466 iterator. Use const_int_operand instead of
1467 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1468 exact_log2 in insn constraint to check integer value of operand 3.
1469
14702011-05-09 Uros Bizjak <ubizjak@gmail.com>
1471
1472 * config/i386/sse.md (blendbits): Remove mode attribute.
1473 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1474 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1475 Check integer value of operand 3 in insn constraint.
1476
0ca8de87
RG
14772011-05-09 Richard Guenther <rguenther@suse.de>
1478
1479 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1480 for diagnostics.
1481 (lto_symtab_merge): Likewise. Do not register types here.
1482 (lto_symtab_merge_decls_2): Likewise.
1483 (lto_symtab_merge_decls_1): Likewise.
1484 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1485 * gimple.c (enum gtc_mode): Declare.
1486 (gimple_types_compatible_p): Make static.
1487
a9e6994a
AK
14882011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1489
1490 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1491 temporary register to match Pmode.
1492
fb55d62e
UB
14932011-05-09 Uros Bizjak <ubizjak@gmail.com>
1494
1495 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1496 and *vec_concatv4si_1_avx.
1497
eb1485a6
UB
14982011-05-09 Uros Bizjak <ubizjak@gmail.com>
1499
1500 PR rtl-optimization/48927
1501 * ira-conflicts.c (commutative_constraint_p): Use
1502 recog_data.alternative_enabled_p to disable alternatives where
1503 "enabled" attribute is false.
1504 (get_dup_num): Ditto.
1505 * ira-lives.c (single_reg_class): Ditto.
1506 (ira_implicitly_set_insn_hard_regs): Ditto.
1507
c46d001a
EB
15082011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1509
1510 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1511 (dataflow_set_preserve_mem_locs): Likewise.
1512
15132011-05-09 Philipp Thomas <pth@suse.de>
1514
6d9e7c41
PT
1515 * config/mep/mep.c (mep_validate_vliw): Syntax description
1516 should not be translated.
1517
d371df6f
JM
15182011-05-09 Joseph Myers <joseph@codesourcery.com>
1519
1520 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1521 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 1522 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
1523 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1524 MIPS_ARCH_OPTION_NATIVE): Define.
1525 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1526 mips-cpus.def.
1527 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1528 mips_parse_cpu): Remove.
1529 (mips_cpu_info_from_opt, mips_default_arch): New.
1530 (mips_handle_option): Don't assert that global structures are in
1531 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1532 (mips_option_override): Use new variables and functions to set
eb1485a6 1533 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
1534 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1535 definition.
1536 * config/mips/mips.opt (march=): Use ToLower and Enum.
1537 (mips): Use ToLower, Enum and Var.
1538 (mtune=): Use ToLower and Enum.
1539 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1540
4fc07af9
JH
15412011-05-08 Jan Hubicka <jh@suse.cz>
1542
1543 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1544 Arrange type pairs to be UID ordered.
1545 (gimple_lookup_type_leader): Make inline.
1546
2cf320a8
NC
15472011-05-09 Nick Clifton <nickc@redhat.com>
1548
61d6def5
NC
1549 PR target/48899
1550 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1551 PROCESSOR_DEFAULT.
1552
2cf320a8
NC
1553 PR target/48897
1554 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1555 variable 's'.
1556
4f82319d
CLT
15572011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1558
1559 * combine.c (simplify_comparison): Abstract out parts into...
1560 (simplify_compare_const): ... new function.
1561 (try_combine): Generalize parallel arithmetic/compare combining
1562 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1563
74605a11
JH
15642011-05-08 Jan Hubicka <jh@suse.cz>
1565
1566 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
1567 (cgraph_create_virtual_clone): Call hooks once virtual clone
1568 is finished.
74605a11 1569 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
1570 * ipa-cp.c (ipcp_estimate_growth): Use
1571 estimate_ipcp_clone_size_and_time.
74605a11
JH
1572 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1573 * lto-cgraph.c (input_node): Update.
1574 * ipa-inline.c (recursive_inlining): Update.
1575 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1576 (evaluate_conditions_for_known_args): Break out from ...
1577 (evaluate_conditions_for_edge): ... here.
1578 (evaluate_conditions_for_ipcp_clone): New function.
1579 (inline_node_duplication_hook): Update clone summary based
1580 on parameter map.
1581 (estimate_callee_size_and_time): Rename to ...
1582 (estimate_node_size_and_time): take NODE instead of EDGE;
1583 take POSSIBLE_TRUTHS as argument.
1584 (estimate_callee_size_and_time): Update.
1585 (estimate_ipcp_clone_size_and_time): New function.
1586 (do_estimate_edge_time): Update.
1587
5c049507
RG
15882011-05-08 Richard Guenther <rguenther@suse.de>
1589
1590 PR middle-end/48908
1591 PR middle-end/48905
1592 * expmed.c (expand_shift_1): Compute adjusted constant shift
1593 amount manually.
1594
f64c36ba
EB
15952011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1596
1597 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1598
c461a957
EB
15992011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1600
1601 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1602
7c74e556
JW
16032011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1604
1605 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1606
b4c0a884
JH
16072011-05-07 Jan Hubicka <jh@suse.cz>
1608
a9bcb3f0
EB
1609 * ipa-inline-transform.c (inline_call): Account when program size
1610 decreases.
b4c0a884 1611 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
1612 (edge_badness): Reorganize to be power 2 based; fix thinko when
1613 computing badness for negative growth; update comments to match
1614 reality; better dumps.
b4c0a884 1615
c99c0026
EB
16162011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1617
1618 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1619 type to bool and adjust comment.
1620 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1621 (fold_mathfn_compare): Remove calls to global_bindings_p.
1622 (fold_inf_compare): Likewise.
1623 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1624 * c-tree.h (global_bindings_p): Adjust prototype.
1625 * c-decl.c (global_bindings_p): Return bool and simplify.
1626
1400c8e5
ZD
16272011-05-07 Zdenek Dvorak <ook@ucw.cz>
1628
1629 PR tree-optimization/48837
1630 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1631 when accumulator transformation is performed.
1632
5d0878e7
JH
16332011-05-06 Jan Hubicka <jh@suse.cz>
1634
a9bcb3f0
EB
1635 * i386.h (ix86_tune_indices): Add
1636 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 1637 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
1638 * i386.c (initial_ix86_tune_features): Add
1639 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
1640 (software_prefetching_beneficial_p): Remove predicate.
1641 (ix86_option_override_internal): Use new macro.
1642
58696ce5
JH
16432011-05-06 Jan Hubicka <jh@suse.cz>
1644
1645 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1646
c47d0034
JH
16472011-05-06 Jan Hubicka <jh@suse.cz>
1648
1649 * cgraph.c (cgraph_add_thunk): Create real function node instead
1650 of alias node; finalize it and mark needed/reachale; arrange visibility
1651 to be right and add it into the corresponding same comdat group list.
1652 (dump_cgraph_node): Dump thunks.
1653 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
1654 cgraph_function_with_gimple_body_p,
1655 cgraph_first_function_with_gimple_body,
c47d0034
JH
1656 cgraph_next_function_with_gimple_body): New functions.
1657 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1658 New macros.
1659 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1660 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1661 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1662 devirtualization when optimizing.
1663 (verify_cgraph_node): Verify thunks.
1664 (cgraph_analyze_function): Analyze thunks.
1665 (cgraph_mark_functions_to_output): Output thunks only in combination
1666 with function they are assigned to.
1667 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1668 alias into normal node.
1669 (assemble_thunks): New functoin.
1670 (cgraph_expand_function): Use it.
1671 * lto-cgraph.c (lto_output_node): Stream thunks.
1672 (input_overwrite_node): Stream in thunks.
1673 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1674 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1675 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1676 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1677 (inline_analyze_function): Do not care about thunk jump functions.
1678 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
1679 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1680 cgraph_function_with_gimple_body_p.
1681 * passes.c (do_per_function_toporder): Use
1682 cgraph_function_with_gimple_body_p.
c47d0034
JH
1683 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1684 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1685 (function_called_by_processed_nodes_p): Likewise.
1686
d8f426ec
JM
16872011-05-06 Joseph Myers <joseph@codesourcery.com>
1688
1689 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1690 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1691 entries.
1692 (mabi=): Replace with separate entries for mabi=altivec,
1693 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1694 mabi=ieeelongdouble and mabi=ibmlongdouble.
1695 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1696 check for -mabi=spe without SPE ABI support here.
1697 (rs6000_handle_option): Replace OPT_mabi_ handling with
1698 OPT_mabi_altivec and OPT_mabi_spe handling.
1699
80bde45b
CC
17002011-05-06 Cary Coutant <ccoutant@google.com>
1701
1702 * dwarf2out.c (contains_subprogram_definition): New function.
1703 (should_move_die_to_comdat): Call it.
1704
a91926b9
JL
17052011-05-06 Jeff Law <law@redhat.com>
1706
1707 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1708 remove_ctrl_stmt_and_useless_edges.
1709 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1710 (fixup_template_block, thread_single_edge): Likewise.
1711 (mark_threaded_blocks): Use THREAD_TARGET.
1712
1fc1b66d
AM
17132011-05-06 Alan Modra <amodra@gmail.com>
1714
1715 PR target/48900
1716 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1717 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1718
e194de64
UB
17192011-05-06 Uros Bizjak <ubizjak@gmail.com>
1720
1721 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1722 constraint modifier to "r".
1723
d740dc9e
JM
17242011-05-06 Joseph Myers <joseph@codesourcery.com>
1725
1726 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1727 fall through for OPT_mcmodel_.
1728
cab78b15
AK
17292011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1730
1731 * config/s390/s390.c (s390_asm_trampoline_template): Comment
1732 instruction sizes.
e194de64 1733 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 1734
ee6824ae
RR
17352011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1736
eb1485a6
UB
1737 PR target/47930
1738 * config/arm/arm.opt (marm): Document it.
1739 (mthumb): Reject negative variant.
ee6824ae 1740
9ef58464
UB
17412011-05-06 Uros Bizjak <ubizjak@gmail.com>
1742
1743 PR target/48898
1744 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1745 Fix typo in "ccvt" variable name.
1746
155b6176
TG
17472011-05-06 Tristan Gingold <gingold@adacore.com>
1748
1749 PR target/48895
1750 * config/vms/vms-ar.c (main): Remove cwd variable.
1751
3becc47b
JJ
17522011-05-06 Jakub Jelinek <jakub@redhat.com>
1753
1754 PR debug/48902
1755 * var-tracking.c (prepare_call_arguments): Move else before #endif.
1756
3d528853
NF
17572011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1758
1759 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1760 * gimplify.c (gimplify_switch_expr): Likewise.
1761 * omp-low.c (expand_omp_sections): Likewise.
1762 * tree-eh.c (lower_try_finally_switch): Likewise.
1763 (lower_eh_dispatch): Likewise.
1764 * tree.h (build_case_label): Declare.
1765 * tree.c (build_case_label): Define.
1766
deb5046b
JM
17672011-05-05 Jason Merrill <jason@redhat.com>
1768
1769 PR c++/40975
1770 * tree-inline.c (copy_tree_r): Use copy_statement_list.
1771 (copy_statement_list): Don't recurse.
1772 * stor-layout.c (copy_self_referential_tree_r): Don't allow
1773 STATEMENT_LIST.
1774
013c0411
JM
17752011-05-05 Joseph Myers <joseph@codesourcery.com>
1776
1777 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1778 through from -mfpu= handling.
1779 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1780
a0905f8b
BS
17812011-05-05 Bernd Schmidt <bernds@codesourcery.com>
1782
1783 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1784 POST_MODIFY.
1785
fc4538e4
SE
17862011-05-05 Steve Ellcey <sje@cup.hp.com>
1787
1788 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1789 for 11.31.
1790 (hppa[12]*-*-hpux11*): Ditto.
1791 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1792 * config/ia64/hpux-unix2003.h: New.
1793 * config/pa/pa-hpux1131.opt: New.
1794 * config/pa/pa-hpux1131.h: New.
1795 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1796 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 1797 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 1798
1e30c578
JJ
17992011-05-05 Jakub Jelinek <jakub@redhat.com>
1800
1801 PR debug/48853
1802 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1803 instead of mode as 3rd argument to recursive call.
1804 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1805 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1806 VOIDmode.
1807 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1808 don't give up if mode is Pmode and mem_mode is not VOIDmode.
1809 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1810 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1811
d19eb620
JB
18122011-05-05 Julian Brown <julian@codesourcery.com>
1813
1814 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1815 parenthesis in D-register case.
1816
c860fe8c
JM
18172011-05-05 Joseph Myers <joseph@codesourcery.com>
1818
1819 * opt-functions.awk (var_type_struct): Handle Enum options.
1820 * optc-gen.awk: Don't check range of variables of character type.
1821 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1822 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1823 rs6000_sdata_name, rs6000_explicit_options): Remove.
1824 (rs6000_option_override_internal): Check for -malign-power here.
1825 Use global_options_set instead of rs6000_explicit_options.
1826 (rs6000_parse_fpu_option): Remove.
1827 (rs6000_handle_option): Access variables via opts and opts_set
1828 pointers. Use error_at and warning_at. Add fall-through
1829 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1830 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1831 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1832 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1833 here. Don't use rs6000_parse_fpu_option.
1834 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1835 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1836 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1837 (mrecip=): Use Var.
1838 (mspe): Use Var and Save.
1839 (mtraceback=): Use Enum and Var.
1840 (rs6000_traceback_type): New Enum and EnumValue entries.
1841 (mfloat-gprs=): Use Enum, Var and Save.
1842 (rs6000_float_gprs): New Enum and EnumValue entries.
1843 (mlong-double-): use Var and Save.
1844 (msched-costly-dep=, minsert-sched-nops=): Use Var.
1845 (malign-): Use Enum and Var.
1846 (rs6000_alignment_flags): New Enum and EnumValue entries.
1847 (mfpu=): Use Enum.
1848 (fpu_type_t): New Enum and EnumValue entries.
1849 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1850 global_options_set instead of rs6000_explicit_options.
1851 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1852 global_options_set instead of rs6000_explicit_options.
1853 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1854 global_options_set instead of rs6000_explicit_options.
1855 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1856 global_options_set instead of rs6000_explicit_options.
1857 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1858 global_options_set instead of rs6000_explicit_options.
1859 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1860 global_options_set instead of rs6000_explicit_options.
1861 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1862 definition.
1863 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1864 global_options_set instead of rs6000_explicit_options.
1865 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1866 (rs6000_cmodel): New Enum and EnumValue entries.
1867 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1868 global_options_set instead of rs6000_explicit_options.
1869 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1870 (mtls-size=): Use Enum and Var.
1871 (rs6000_tls_size): New Enum and EnumValue entries.
1872
0691dde9
MM
18732011-05-05 Michael Matz <matz@suse.de>
1874
1875 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1876 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1877 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1878 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1879 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1880 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1881 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1882 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1883 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1884 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1885 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1886 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1887 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1888 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1889 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1890 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1891
86529a49
RG
18922011-05-05 Richard Guenther <rguenther@suse.de>
1893
1894 * expmed.c (expand_variable_shift): Rename to ...
1895 (expand_shift_1): ... this. Take an expanded shift amount.
1896 For rotates recurse directly not building trees for the shift amount.
1897 (expand_variable_shift): Wrap around expand_shift_1.
1898 (expand_shift): Adjust.
1899
d0228c2e
JJ
19002011-05-05 Jakub Jelinek <jakub@redhat.com>
1901
1902 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1903
907a08d9
EB
19042011-05-05 Eric Botcazou <ebotcazou@adacore.com>
1905
1906 * tree.h (get_pending_sizes): Remove prototype.
1907 (put_pending_size): Likewise.
1908 (put_pending_sizes): Likewise.
1909 * stor-layout.c (pending_sizes): Delete.
1910 (get_pending_sizes): Likewise.
1911 (put_pending_size): Likewise.
1912 (put_pending_sizes): Likewise.
1913 (variable_size): Do not call put_pending_size and tidy up.
1914 * function.h (struct function): Remove dont_save_pending_sizes_p.
1915 * lto-streamer-in.c (input_function): Do not stream it.
1916 * lto-streamer-out.c (output_function): Likewise.
1917 * tree-inline.c (initialize_cfun): Do not copy it.
1918 * c-decl.c (store_parm_decls): Do not set it.
1919 * omp-low.c (create_task_copyfn): Likewise.
1920 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1921
386d9c57
UB
19222011-05-05 Uros Bizjak <ubizjak@gmail.com>
1923
1924 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1925 conditions.
1926 (*movdf_internal): Ditto.
1927 (*movdf_internal_nointeger): Ditto.
1928 (*movsf_internal): Ditto.
1929
a04a722b
JM
19302011-05-05 Joseph Myers <joseph@codesourcery.com>
1931
1932 * c-decl.c (finish_decl): Don't call get_pending_sizes.
1933 (grokparm): Add parameter expr. Pass it to grokdeclarator.
1934 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
1935 (c_variable_size): Remove.
1936 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
1937 call put_pending_sizes.
1938 (get_parm_info): Add parameter expr. Use it to set
1939 arg_info->pending_sizes.
1940 (store_parm_decls): Use arg_info->pending_sizes instead or calling
1941 get_pending_sizes.
1942 * c-parser.c (c_parser_parms_declarator): Update call to
1943 c_parser_parms_list_declarator.
1944 (c_parser_parms_list_declarator): Take parameter expr. Update
1945 call to push_parm_decl. Update recursive call. Don't call
1946 get_pending_sizes. Update calls to get_parm_info.
1947 (c_parser_objc_method_definition): Update calls to
1948 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 1949 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
1950 (c_parser_objc_method_decl): Add parameter expr. Update call to
1951 grokparm.
386d9c57 1952 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
1953 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1954 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1955
c92a6f97
MH
19562011-05-05 Michael Hope <michael.hope@linaro.org>
1957
386d9c57
UB
1958 PR pch/45979
1959 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1960 __ARM_EABI__ hosts.
c92a6f97 1961
07ea0048
UW
19622011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1963
1964 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1965 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1966 (spu_output_mi_thunk): New function.
1967
d634bfa1
RO
19682011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1969
1970 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1971 targetm.asm_out.print_operand.
1972 * config/sol2.c: Include target.h.
1973
40fda55b
JH
19742011-05-04 Jan Hubicka <jh@suse.cz>
1975
1976 * ipa-inline.c (reset_edge_caches): New function.
1977 (update_caller_keys): Add check_inlinablity_for; do not
1978 reset edge caches; remove now unnecesary loop.
386d9c57 1979 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
1980 (update_all_callee_keys): Likewise.
1981 (inline_small_functions): Sanity check cache; update code
1982 recomputing it.
1983
0360f70d
BS
19842011-05-04 Bernd Schmidt <bernds@codesourcery.com>
1985
1986 PR rtl-optimization/47612
1987 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1988 as the last insn of the sequence to be moved.
1989
7a994646
TB
19902011-05-04 Tobias Burnus <burnus@net-b.de>
1991
1992 PR fortran/48864
1993 * doc/invoke.texi (Ofast): Document that it
1994 enables Fortran's -fno-protect-parens.
1995
7a2f7208
UB
19962011-05-04 Uros Bizjak <ubizjak@gmail.com>
1997
1998 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1999
a2d42931
EB
20002011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2001
2002 * stor-layout.c (variable_size): Do not issue errors.
2003
f81b1a3d
RG
20042011-05-04 Richard Guenther <rguenther@suse.de>
2005
2006 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2007 for array-ref indices.
2008 (tree_coverage_counter_addr): Likewise.
2009 (build_fn_info_type): Use size_int for index types.
2010 (build_gcov_info): Likewise.
2011
c62c040f
RG
20122011-05-04 Richard Guenther <rguenther@suse.de>
2013
2014 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2015 to build_int_cst.
2016 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2017 for constructor indices.
2018 (push_init_level): Likewise.
2019
1e3287d0
RG
20202011-05-04 Richard Guenther <rguenther@suse.de>
2021
2022 * explow.c (promote_mode): Move variable declarations before code.
2023
6c32445b
NF
20242011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2025
2026 * tree.h (build_function_type_array): Declare.
2027 (build_varargs_function_type_array): Declare.
2028 (build_function_type_vec, build_varargs_function_type_vec): Define.
2029 * tree.c (build_function_type_array_1): New function.
2030 (build_function_type_array): New function.
2031 (build_varargs_function_type_array): New function.
2032
fdabf269
RS
20332011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2034
2035 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2036 before setting STMT_VINFO_TYPE.
2037
a207915a
UW
20382011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2039
2040 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2041 instead of spu_pass_by_reference.
2042
5e617be8
AK
20432011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2044
2045 * calls.c (emit_library_call_value_1): Invoke
2046 promote_function_mode hook on libcall arguments.
2047 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2048 argument being NULL.
2049 * targhooks.c (default_promote_function_mode): Lisewise.
2050 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2051 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2052
2053 * doc/tm.texi: Document that TYPE argument might be NULL.
2054
486d04be
SH
20552011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2056
2057 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2058
9b19b026
SH
20592011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2060
2061 From Bernd Schmidt
2062 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2063
502bc3df
RO
20642011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2065
2066 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2067 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2068 Move ...
2069 * mips-tfile.c: ... here.
2070 Don't include coretypes.h, tm.h, filenames.h.
2071 (saber_stop): Remove definition and all calls.
2072 [__SABER__]: Remove.
2073 (__LINE__): Remove default.
2074 (Size_t, Ptrdiff_t): Remove definitions.
2075 Replace by size_t, ptrdiff_t.
2076 [!MIPS_DEBUGGING_INFO]: Remove.
2077 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2078 (progname): Add const.
2079 (STATIC): Remove.
2080 Replace all uses by static.
2081 (ALIGN_SYMTABLE_OFFSET): Remove default.
2082 * mips-tdump.c: Don't include coretypes.h, tm.h.
2083 Remove !MIPS_IS_STAB guard.
2084 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2085 $(TM_H), filenames.h dependencies.
2086 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2087
991eb6ef
SH
20882011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2089
2090 From Jie Zhang
2091 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2092 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2093
420ccc84
SH
20942011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2095
2096 From Bernd Schmidt
2097 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2098 account and save/restore RETS.
2099 (PROFILE_BEFORE_PROLOGUE): Define.
2100 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2101 the push insn to use predecrement.
2102
9f8d69ee
SH
21032011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2104
2105 From Jie Zhang
2106 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2107
662c03f4
NC
21082011-05-04 Nick Clifton <nickc@redhat.com>
2109
2110 * config/mn10300/mn10300.c: Include cfgloop.h.
2111 (DUMP): New macro.
2112 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2113 Lcc or a FLcc insn into the instruction stream.
2114 (mn10300_block_contains_call): New function. Returns true if the
2115 given basic block contains a CALL insn.
2116 (mn10300_loop_contains_call_insn): New function. Returns true if
2117 the given loop contains a CALL insn.
2118 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
2119 to use the SETLB and Lcc or FLcc insns.
2120 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2121 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2122 * config/mn10300/mn10300.opt (msetlb): New option. Used to
2123 disable the SETLB optimization.
2124 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2125 __SETLB__ or __NO_SETLB__.
2126 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2127 (movsf_internal): Handle MDR register.
2128 (cmpsi): Make visible.
2129 (setlb): New pattern.
2130 (Lcc): New pattern.
2131 (FLcc): New pattern.
2132
843b6915
UB
21332011-05-04 Uros Bizjak <ubizjak@gmail.com>
2134
2135 PR target/48860
2136 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2137 for reg<->xmm moves.
2138 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2139 (vec_concatv2di_rex64_sse): Ditto.
2140 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2141 (*vec_extractv2di_1_rex64): Ditto.
2142
2143 Revert:
2144 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2145
2146 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2147 reg<->xmm moves.
2148 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2149
d35936ab
RG
21502011-05-04 Richard Guenther <rguenther@suse.de>
2151
2152 * tree.h (int_const_binop): Remove notrunc argument.
2153 * fold-const.c (int_const_binop): Remove notrunc argument. Always
2154 create integer constants that are properly truncated.
2155 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2156 (const_binop): Remove zero notrunc argument to int_const_binop.
2157 (size_binop_loc): Likewise.
2158 (fold_div_compare): Likewise.
2159 (maybe_canonicalize_comparison_1): Likewise.
2160 (fold_comparison): Likewise.
2161 (fold_binary_loc): Likewise.
2162 (multiple_of_p): Likewise.
2163 * expr.c (store_constructor): Likewise.
2164 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2165 (maybe_fold_stmt_addition): Likewise.
2166 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2167 * stor-layout.c (layout_type): Likewise.
2168 * tree-data-ref.c (tree_fold_divides_p): Likewise.
2169 * tree-sra.c (build_ref_for_offset): Likewise.
2170 (build_user_friendly_ref_for_offset): Likewise.
2171 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2172 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2173 * tree-ssa-loop-niter.c (inverse): Likewise.
2174 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2175 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2176 * tree-switch-conversion.c (check_range): Likewise.
2177 (build_constructors): Likewise.
2178 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2179 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2180 (extract_range_from_assert): Likewise.
2181 (vrp_int_const_binop): Likewise.
2182 (extract_range_from_binary_expr): Likewise.
2183 (extract_range_from_unary_expr): Likewise.
2184 (check_array_ref): Likewise.
2185 (find_case_label_range): Likewise.
2186 (simplify_div_or_mod_using_ranges): Likewise.
2187 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2188 comparing case labels for merging.
2189
8992c063
MW
21902011-05-03 Mark Wielaard <mjw@redhat.com>
2191
2192 * dwarf2out.c (debug_str_hash_forced): Removed.
2193 (gen_label_for_indirect_string): Removed.
2194 (get_debug_string_label): Removed.
2195 (AT_string_form): Generate label directly.
2196 (output_indirect_string): Test indirect_string_node for
2197 DW_FORM_strp instead of checking label and refcount.
2198 (prune_indirect_string): Removed.
2199 (prune_unused_types): Don't check debug_str_hash_forced or
2200 call prune_indirect_string.
2201
4868e6ea
AO
22022011-05-04 Alexandre Oliva <aoliva@redhat.com>
2203
2204 PR other/48093
2205 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2206
01a5c0ab
AO
22072011-05-04 Alexandre Oliva <aoliva@redhat.com>
2208
2209 PR debug/47994
2210 PR debug/47919
2211 * combine.c (try_combine): Skip debug insns at m_split tests.
2212
6ac00218
MW
22132011-04-26 Mark Wielaard <mjw@redhat.com>
2214
2215 PR42288
2216 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2217 when info_section_emitted.
2218
3af42a7b
JM
22192011-05-03 Joseph Myers <joseph@codesourcery.com>
2220
2221 * config/mips/mips-opts.h: New.
2222 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2223 to mips-opts.h.
2224 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2225 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2226 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
2227 via opts pointer.
2228 * config/mips/mips.h (enum mips_code_readable_setting): Move to
2229 mips-opts.h.
2230 (mips_abi, mips_code_readable): Don't declare.
843b6915 2231 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
2232 (mabi=): Use Enum and Var.
2233 (mips_abi): New Enum and EnumValue entries.
2234 (mcode-readable=): Use Enum and Var.
2235 (mips_code_readable_setting): New Enum and EnumValue entries.
2236 (mr10k-cache-barrier=): Use Enum and Var.
2237 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2238
1cb1a99f
JH
22392011-05-03 Jan Hubicka <jh@suse.cz>
2240
2241 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2242 replace hash by pointer map.
2243 (cgraph_node_set_element_def, cgraph_node_set_element,
2244 const_cgraph_node_set_element, varpool_node_set_element_def,
2245 varpool_node_set_element, const_varpool_node_set_element): Remove.
2246 (free_cgraph_node_set, free_varpool_node_set): New function.
2247 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2248 * tree-emutls.c: Free varpool node set.
2249 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2250 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2251 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2252 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2253 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2254 Move here from ipa.c; implement using pointer_map
2255 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2256 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2257 debug_cgraph_node_set, varpool_node_set_new,
2258 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2259 dump_varpool_node_set, debug_varpool_node_set):
2260 Move to ipa-uitls.c.
2261 * passes.c (ipa_write_summaries): Update.
2262
7f31f4db
SH
22632011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2264
7a2f7208
UB
2265 From Mike Frysinger:
2266 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2267 bf542/bf544/bf547/bf548/bf549.
7f31f4db 2268
b70fce6d
UB
22692011-05-03 Uros Bizjak <ubizjak@gmail.com>
2270
2271 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2272
265b1d82
SH
22732011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2274
2275 From Bernd Schmidt:
2276 * config/bfin/bfin.md (MOVCC): New mode_macro.
2277 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2278 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2279 comments from generated assembly.
2280
f0b568f3
SH
22812011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2282
2283 From Bernd Schmidt
2284 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2285 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2286 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2287 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2288 * config/bfin/lib1funcs.asm (___muldi3): New function.
2289
2c67cf6e
NF
22902011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2291
2292 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2293 build_function_type_list instead of build_function_type.
2294 Rearrange initialization of `args' to do so.
2295
f9ac28ad
NF
22962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2297
2298 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2299 instead of build_function_type.
2300
22b8798c
NF
23012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2302
2303 * config/rs6000/rs6000.c (spe_init_builtins): Call
2304 build_function_type_list instead of build_function_type.
2305 (paired_init_builtins, altivec_init_builtins): Likewise.
2306 (builtin_function_type): Likewise.
2307
4cb44528
NF
23082011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2309
2310 * config/sh/sh.c (sh_media_init_builtins): Call
2311 build_function_type_list instead of build_function_type.
2312
4c203a6a
NF
23132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2314
2315 * config/sparc/sparc.c (sparc_file_end): Call
2316 build_function_type_list instead of build_function_type.
2317
d6a3d62b
NF
23182011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2319
2320 * config/alpha/alpha.c (alpha_init_builtins): Call
2321 build_function_type_list instead of build_function_type.
2322
de530b86
NF
23232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2324
2325 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2326 build_function_type_list instead of build_function_type.
2327
baeec5f2
NF
23282011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2329
2330 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2331 build_function_type_list instead of build_function_type.
2332 Delete `endlink' variable.
2333
c19afe52
NF
23342011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2335
2336 * config/avr/avr.c (avr_init_builtins): Call
2337 build_function_type_list instead of build_function_type.
2338
a341df0a
NF
23392011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2340
2341 * config/picochip/picochip.c (picochip_init_builtins): Call
2342 build_function_type_list instead of build_function_type.
2343 Delete `endlink' variable.
2344
2102b1e1
NF
23452011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2346
2347 * config/bfin/bfin.c (bfin_init_builtins): Call
2348 build_function_type_list instead of build_function_type.
2349
9f111209
SH
23502011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2351
2352 From Bernd Schmidt
2353 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2354 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2355
7071d064
SH
23562011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2357
2358 From Jie Zhang:
2359 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2360 libbffastfp overrides libgcc when -mfast-fp.
2361
748f7574 23622011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
2363
2364 Originally from Bernd Schmidt
2365 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2366 * config/bfin/bfin.c (override_options): Test it and error if
2367 TARGET_FDPIC.
2368
1a3a9152
SH
23692011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2370
2371 Originally From Bernd Schmidt
2372 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2373 FD-PIC.
2374
7134c090
JL
23752011-05-03 Jeff Law <law@redhat.com>
2376
2377 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2378 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2379 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
2380 than accessing AUX field directly. Free the AUX field before
2381 clearing it.
7134c090
JL
2382 (thread_block, thread_through_loop_header): Likewise.
2383 (thread_single_edge, mark_threaded_blocks): Likewise.
2384 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2385 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 2386
2c7eebae
BS
23872011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2388
2389 * function.c (init_function_start): Call decide_function_section.
2390 * varasm.c (decide_function_section): New function.
2391 (assemble_start_function): When not using
2392 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2393 or first_function_block_is_cold.
2394 * rtl.h (decide_function_section): Declare.
2395
17038fcf
JJ
23962011-05-03 Uros Bizjak <ubizjak@gmail.com>
2397 Jakub Jelinek <jakub@redhat.com>
2398
2399 PR target/48774
2400 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2401 only succeed if req_mode is the same as set_mode.
2402
3810076b
BS
24032011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2404
2405 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2406 * genemit.c (gen_exp): Handle RETURN.
2407 * emit-rtl.c (verify_rtx_sharing): Likewise.
2408 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2409 * rtl.c (copy_rtx): RETURN is shared.
2410 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2411 (ret_rtx): New.
2412 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2413 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2414 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2415 * config/cris/cris.c (cris_expand_return): Likewise.
2416 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2417 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2418 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2419 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2420 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2421 Likewise.
2422 * config/v850/v850.c (expand_epilogue): Likewise.
2423 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2424 * config/arm/arm.md (epilogue): Likewise.
2425 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2426 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2427 variable to ret_reg.
2428
9efdb4ad
RG
24292011-05-03 Richard Guenther <rguenther@suse.de>
2430
2431 PR lto/48846
2432 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2433 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2434 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2435
60a45536
RG
24362011-05-03 Richard Guenther <rguenther@suse.de>
2437
2438 * c-decl.c (grokdeclarator): Instead of looking at
2439 TREE_OVERFLOW check if the constant fits in the index type.
2440
3188ed59
RS
24412011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2442
2443 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2444 (vec_store_lanes<mode><mode>): Likewise.
2445
272c6793
RS
24462011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2447
2448 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2449 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2450 convert_optab_index values.
2451 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2452 * genopinit.c (optabs): Initialize the new optabs.
2453 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2454 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2455 (expand_STORE_LANES): New functions.
2456 * tree.h (build_array_type_nelts): Declare.
2457 * tree.c (build_array_type_nelts): New function.
2458 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2459 (vect_model_load_cost): Likewise.
2460 (vect_store_lanes_supported, vect_load_lanes_supported)
2461 (vect_record_strided_load_vectors): Declare.
2462 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2463 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2464 (vect_transform_strided_load): Split out statement recording into...
2465 (vect_record_strided_load_vectors): ...this new function.
2466 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2467 (write_vector_array, create_array_ref): New functions.
2468 (vect_model_store_cost): Add store_lanes_p argument.
2469 (vect_model_load_cost): Add load_lanes_p argument.
2470 (vectorizable_store): Try to use store-lanes functions for
2471 interleaved stores.
2472 (vectorizable_load): Likewise load-lanes and loads.
2473 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2474 to vect_model_store_cost.
2475 (vect_build_slp_tree): Likewise vect_model_load_cost.
2476
0f6d54f7
RS
24772011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2478
2479 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2480 * hooks.c (hook_bool_mode_uhwi_false): New function.
2481 * target.def (array_mode_supported_p): New hook.
2482 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2483 * doc/tm.texi: Regenerate.
2484 * stor-layout.c (mode_for_array): New function.
2485 (layout_type): Use it.
2486 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2487 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2488
b15eacc7
EB
24892011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2490
2491 PR target/48723
2492 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2493 for -fstack-check if the size to allocate is negative.
2494
575bfb00
LC
24952011-05-02 Lawrence Crowl <crowl@google.com>
2496
2497 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2498 (timevar_cond_start): New for starting a timer only when it is not
2499 already running.
2500 (timevar_cond_stop): New for stopping a timer when it was not already
2501 running.
2502
2503 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2504 (timevar_cond_start): New as above.
2505 (timevar_cond_stop): New as above.
2506
2507 * timevar.def: Add start/stop timers for compiler phases,
2508 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2509 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2510 and TV_PHASE_FINALIZE.
2511 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2512 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2513 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2514 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2515 Make unused TV_OVERLOAD into a start/stop timer.
2516
2517 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2518 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2519 to indicate that they are start/stop timers.
2520
2521 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2522 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2523 Move initialization to do_compile.
2524 (do_compile): Add initialization from above.
2525 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2526
2527 * c-decl.c (c_write_global_declarations): Add start/stop of
2528 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2529
2530 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2531 or TV_PARSE_INLINE, as appropriate.
2532 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2533 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2534
3533b943
JM
25352011-05-02 Jason Merrill <jason@redhat.com>
2536
2537 PR c++/40975
2538 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2539
2609a0ce
SM
25402011-05-02 Simon Martin <simartin@users.sourceforge.net>
2541
2542 PR c/35445
2543 * c-decl.c (finish_decl): Only create a composite if the types are
2544 compatible.
2545
6b0e4cbb
JM
25462011-05-02 Joseph Myers <joseph@codesourcery.com>
2547
2548 * config/fr30/fr30-protos.h (Mmode): Don't define.
2549 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2550 definition where used.
2551 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2552 define. Expand definitions where used.
2553 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2554 Expand definitions where used.
2555 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2556 rx_function_arg, rx_function_arg_advance,
2557 rx_function_arg_boundary): Expand definitions of those macros.
2558 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2559 definition where used.
2560
4e938ce6
UB
25612011-05-02 Uros Bizjak <ubizjak@gmail.com>
2562
2563 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2564 reg<->xmm moves.
2565 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2566 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2567 with *movv2sf_internal_rex64_avx.
2568 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2569 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2570 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2571 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2572 "vex" in "prefix" attribute calculation.
2573 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2574
36019c19
SH
25752011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2576
7a2f7208
UB
2577 PR target/47951
2578 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2579 inputs match the output.
36019c19 2580
f69ea688
AS
25812011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2582
2583 PR target/47955
2584 * config/m68k/m68k.c (m68k_expand_prologue): Set
2585 current_function_static_stack_size.
2586
c33406f5
JH
25872011-05-02 Jan Hubicka <jh@suse.cz>
2588
2589 * lto-streamer.c (lto_streamer_cache_insert_1,
2590 lto_streamer_cache_lookup, lto_streamer_cache_create,
2591 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2592 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2593
47c94d21
JM
25942011-05-02 Joseph Myers <joseph@codesourcery.com>
2595
2596 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2597 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2598 config/m68k/t-opts: New files.
2599 * config/m68k/m68k-tables.opt: New file (generated).
2600 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2601 extra_options and m68k/t-opts to tmake_file.
2602 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2603 (all_isas): Initialize using m68k-isas.def.
2604 (all_microarchs): Initialize using m68k-microarchs.def.
2605 (m68k_find_selection): Remove.
2606 (m68k_handle_option): Don't assert that global structures are in
2607 use. Use error_at. Access variables via opts pointer. Don't
2608 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2609 directly for -m68020-40 and -m68020-60.
2610 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2611 m68k_tune_entry here.
2612 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2613 to m68k-opts.h.
2614 (m68k_library_id_string): Remove declaration.
4e938ce6 2615 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
2616 (m68k_library_id_string): New Variable.
2617 (march=, mcpu=, mtune=): Use Enum and Var.
2618
e562bf36
RG
26192011-05-02 Richard Guenther <rguenther@suse.de>
2620
2621 * varasm.c (output_constructor_regular_field): Compute zero-based
2622 index with double-ints. Make sure to ICE instead of producing
2623 wrong code.
2624 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2625 in asserts. Properly use a signed type.
2626
6bec6c98
UB
26272011-05-02 Uros Bizjak <ubizjak@gmail.com>
2628
2629 * config/i386/sse.md (V): New mode iterator.
2630 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2631 TARGET_SSE2.
2632 (V_256): Rename from AVX256MODE.
2633 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2634 condition to all users.
2635 (VF1): Ditto.
2636 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2637 condition to all users.
2638 (VF_128): Make V4SF mode unconditional.
2639 (VF_256): Rename from AVX256MODEF2P.
2640 (VI4F_128): Rename from SSEMODE4S.
2641 (VI8F_128): Rename from SSEMODE2D.
2642 (VI4F_256): Rename from AVX256MODE8P.
2643 (VI8F_256): Rename from AVX256MODE4P.
2644 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2645 (ssescalarmodesuffix): Remove SF and DF modes.
2646 (SSEMODE124): Remove.
2647 (SSEMODE1248): Ditto.
2648 (SSEMODEF2P): Ditto.
2649 (AVXMODEF2P): Ditto.
2650 (AVXMODEFDP): Ditto.
2651 (AVXMODEFSP): Ditto.
2652 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2653 unconditional.
2654 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2655 unconditional.
2656 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2657 xop_pcmov_<mode>256. Use V mode iterator.
2658
2659 Adjust RTX patterns globally for renamed mode attributes.
2660
2dfdcb4b
UW
26612011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2662
2663 * haifa-sched.c (sched_emit_insn): Emit insn before first
2664 non-scheduled insn. Inform back-end about new insn. Add
2665 new insn to scheduled_insns list.
2666
90bc4623
RG
26672011-05-02 Richard Guenther <rguenther@suse.de>
2668
2669 PR tree-optimization/48822
2670 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2671 (process_scc): Indicate which iteration we start.
2672
bc0fe8cb
JH
26732011-05-02 Jan Hubicka <jh@suse.cz>
2674
2675 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2676 (lto_section_overrun): New.
2677 * lto-section-out.c (append_block): Rename to ...
2678 (lto_append_block): ... this one; export.
2679 (lto_output_1_stream): Move lto lto-streamer.h
2680 (lto_output_data_stream): Update.
2681 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2682 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2683 functions.
2684
f070a9d1
RG
26852011-05-02 Richard Guenther <rguenther@suse.de>
2686
2687 * tree.c (tree_code_counts): New global array.
2688 (record_node_allocation_statistics): Count individual tree codes.
2689 (dump_tree_statistics): Dump individual code stats.
2690
09dfe187
JH
26912011-05-01 Jan Hubicka <jh@suse.cz>
2692
2693 * ipa-inline.c (caller_growth_limits): Fix thinko when
2694 looking for largest stack frame.
2695 * ipa-inline.h (dump_inline_summary): Declare.
2696 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2697 on stack usage.
2698 (dump_inline_summary): Export.
2699 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2700
6f76a878
AS
27012011-05-01 Anatoly Sokolov <aesok@post.ru>
2702
2703 * reginfo.c (memory_move_cost): Change rclass argument type form
2704 'enum reg_class' to reg_class_t.
2705 * reload.h (memory_move_cost): Update prototype.
2706 * postreload.c reload_cse_simplify_set): Change type dclass var to
2707 reg_class_t.
2708 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2709 Update prototype.
2710 (ira_allocate_and_set_costs): Change aclass argument type form
2711 'enum reg_class' to reg_class_t.
6bec6c98 2712 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
2713 Change aclass argument type to reg_class_t.
2714 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2715 to reg_class_t.
2716 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2717 memory_move_cost call.
2718
2719 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2720 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2721 Change type tmp var to reg_class_t.
2722
9a4ac625
JH
27232011-04-30 Jan Hubicka <jh@suse.cz>
2724
2725 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2726 inlining into function with flatten attribute.
2727 (want_inline_small_function_p): Be more realistic about inlining
2728 cold calls where callee size grows.
2729
dd8352ee
JH
27302011-04-30 Jan Hubicka <jh@suse.cz>
2731
2732 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2733 flags.
2734
46e43d2b
AS
27352011-04-30 Anatoly Sokolov <aesok@post.ru>
2736
2737 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2738 PRINT_OPERAND_PUNCT_VALID_P): Remove.
2739 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2740 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2741 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2742 (print_operand): Rename to...
2743 (sparc_print_operand): ...this. Make static. Adjust
2744 sparc_print_operand function call.
2745 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2746 functions.
2747
ecb62563
JH
27482011-04-30 Jan Hubicka <jh@suse.cz>
2749
6bec6c98 2750 PR middle-end/48752
ecb62563
JH
2751 * ipa-inline.c (early_inliner): Disable when doing late
2752 addition of function.
2753
edb9b69e
JJ
27542011-04-30 Jakub Jelinek <jakub@redhat.com>
2755
be80a87e
JJ
2756 * dwarf2out.c (get_address_mode): New inline.
2757 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2758 if not dwarf_strict emit
2759 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2760 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2761 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
2762 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2763 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2764 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2765 mem_loc_descriptor callers.
2766 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2767 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2768 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2769 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2770 (base_types): New variable.
2771 (get_base_type_offset, calc_base_type_die_sizes,
2772 base_type_for_mode, mark_base_types, base_type_cmp,
2773 move_marked_base_types): New functions.
2774 (calc_die_sizes): Assert that die_offset is 0 or equal to
2775 next_die_offset.
2776 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2777 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
2778 callers. If not dwarf_strict, call mem_loc_descriptor even for
2779 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2780 (gen_subprogram_die): Don't give up on call site parameters
2781 with non-integral or large integral modes. Adjust
2782 mem_loc_descriptor callers.
2783 (prune_unused_types): Call prune_unused_types_mark on base_types
2784 vector entries.
2785 (resolve_addr): Call mark_base_types.
2786 (dwarf2out_finish): Call move_marked_base_types.
2787
edb9b69e
JJ
2788 PR tree-optimization/48809
2789 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2790 type.
2791 (gen_inbound_check): Don't compute index_expr - range_min in utype
2792 again, instead reuse SSA_NAME initialized in build_arrays.
2793 Remove two useless gsi_for_stmt calls.
2794
a6545a3d
JL
27952011-04-29 Jeff Law <law@redhat.com>
2796
2797 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2798
af8bca3c
MJ
27992011-04-29 Martin Jambor <mjambor@suse.cz>
2800
2801 * cgraph.h (cgraph_postorder): Remove declaration.
2802 * ipa-utils.h (ipa_free_postorder_info): Declare.
2803 (ipa_reverse_postorder): Likewise.
2804 * cgraphunit.c: Include ipa-utils.h.
2805 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2806 * ipa-inline.c: Include ipa-utils.h.
2807 (ipa_inline): Update call to ipa_reverse_postorder.
2808 * ipa-pure-const.c (propagate_pure_const): Update call to
2809 ipa_reduced_postorder and ipa_print_order. Call
2810 ipa_free_postorder_info to clean up.
2811 (propagate_nothrow): Likewise.
2812 * ipa-reference.c (propagate): Removed a useless call to
2813 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2814 and ipa_print_order. Call ipa_free_postorder_info to clean up.
2815 * ipa.c: Include ipa-utils.h.
2816 (ipa_profile): Update call to ipa_reverse_postorder.
2817 (cgraph_postorder): Moved to...
2818 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2819 (ipa_utils_print_order): Renamed to ipa_print_order.
2820 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2821 comments.
2822 (ipa_free_postorder_info): New function.
2823 * passes.c: Include ipa-utils.h.
2824 (do_per_function_toporder): Update call to ipa_reverse_postorder.
2825 (ipa_write_summaries): Likewise.
2826 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2827 (cgraphunit.o): Likewise.
2828 (ipa.o): Likewise.
2829 (ipa-inline.o): Likewise.
2830
b15c64ee
JH
28312011-04-29 Jan Hubicka <jh@suse.cz>
2832
2833 * gcc.dg/tree-ssa/inline-10.c: New testcase.
2834 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2835 * ipa-inline.h (clause_t): Turn into unsigned int.
2836 * ipa-inline-analysis.c (add_clause): Do more simplification.
2837 (and_predicates): Shortcut more cases.
2838 (predicates_equal_p): Move forward; check that clauses are properly
2839 ordered.
2840 (or_predicates): Shortcut more cases.
2841 (edge_execution_predicate): Rewrite as...
2842 (set_cond_stmt_execution_predicate): ... this function; handle
2843 __builtin_constant_p.
2844 (set_switch_stmt_execution_predicate): New .
2845 (compute_bb_predicates): New.
2846 (will_be_nonconstant_predicate): Update TODO.
2847 (estimate_function_body_sizes): Use compute_bb_predicates
2848 and free them later, always try to estimate if stmt is constant.
2849 (estimate_time_after_inlining, estimate_size_after_inlining):
2850 Gracefully handle optimized out edges.
2851 (read_predicate): Fix off by one error.
2852
a88fdc2a
NP
28532011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
2854
2855 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2856
d984c8ef
XDL
28572011-04-27 Xinliang David Li <davidxl@google.com>
2858
2859 * tree-profile.c (init_ic_make_global_vars): Set
2860 tls attribute on ic vars.
2861 * coverage.c (coverage_end_function): Initialize
2862 function_list with zero.
2863
45a2c477
RG
28642011-04-29 Richard Guenther <rguenther@suse.de>
2865
2866 * builtins.c (fold_builtin_classify_type): Use integer_type_node
2867 for the type of the result.
2868 (fold_builtin_isascii): Likewise.
2869 (fold_builtin_toascii): Use integer_type_node where appropriate.
2870 (fold_builtin_logb): Likewise.
2871 (fold_builtin_frexp): Likewise.
2872 (fold_builtin_strstr): Likewise.
2873 (fold_builtin_strpbrk): Likewise.
2874 (fold_builtin_fputs): Likewise.
2875 (fold_builtin_sprintf): Likewise.
2876 (fold_builtin_snprintf): Likewise.
2877 (fold_builtin_printf): Likewise.
2878 (do_mpfr_remquo): Use a proper type for the assigned constant.
2879 (do_mpfr_lgamma_r): Likewise.
2880 * dwarf2out.c (resolve_one_addr): Use size_int.
2881 * except.c (init_eh): Likewise.
2882 (assign_filter_values): Use integer_type_node for filter values.
2883 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2884 indices.
2885 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2886 for EH region numbers.
2887 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2888 for the shift amount.
2889
eb6c3df1
RG
28902011-04-29 Richard Guenther <rguenther@suse.de>
2891
2892 * expr.h (expand_shift): Rename to ...
2893 (expand_variable_shift): ... this.
2894 (expand_shift): Take a constant shift amount.
2895 * expmed.c (expand_shift): Rename to ...
2896 (expand_variable_shift): ... this.
2897 (expand_shift): New wrapper around expand_variable_shift.
2898 * expr.c (convert_move, emit_group_load_1, emit_group_store,
2899 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2900 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2901 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2902 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2903 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2904 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2905 emit_store_flag_1, emit_store_flag): Likewise.
2906 * builtins.c (expand_builtin_signbit): Likewise.
2907 * calls.c (load_register_parameters): Likewise.
2908 * function.c (assign_parm_setup_block): Likewise.
2909 * lower-subreg.c (resolve_shift_zext): Likewise.
2910 * optabs.c (widen_bswap, expand_abs_nojump,
2911 expand_one_cmpl_abs_nojump, expand_float): Likewise.
2912 * spu/spu.c (spu_expand_extv): Likewise.
2913 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2914
9f616812
RG
29152011-04-29 Richard Guenther <rguenther@suse.de>
2916
2917 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2918 for the remapped region number.
2919 * predict.c (build_predict_expr): Use integer_type_node for the
2920 predict kind.
2921 * fold-const.c (fold_binary_loc): Use integer_type_node for
2922 the shift amount. Use a proper type for the PLUS_EXPR operand.
2923
b823cdfe
MM
29242011-04-29 Michael Matz <matz@suse.de>
2925
2926 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2927 other trees that just builtins.
2928 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2929
413581ba
RG
29302011-04-29 Richard Guenther <rguenther@suse.de>
2931
2932 * tree-nested.c (get_trampoline_type): Use size_int.
2933 (get_nl_goto_field): Likewise.
2934 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2935 for all indexes.
2936 (lower_eh_constructs_2): Likewise.
2937 (lower_resx): Likewise.
2938 (lower_eh_dispatch): Likewise.
2939 * tree-mudflap.c (mf_build_string): Use size_int.
2940 (mudflap_register_call): Use integer_type_node for the flag.
2941 (mudflap_enqueue_constant): Use size_int.
2942 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2943 instead of rebuilding it.
2944
5c04e9f4
RG
29452011-04-29 Richard Guenther <rguenther@suse.de>
2946
2947 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2948 Handle OBJ_TYPE_REF.
2949 (find_func_aliases_for_call): Use it more consistently.
2950
5c24671b
AO
29512011-04-29 Alexandre Oliva <aoliva@redhat.com>
2952
2953 * haifa-sched.c (last_nondebug_scheduled_insn): New.
2954 (rank_for_schedule): Use it.
2955 (schedule_block): Set it.
2956
10adac51
XDL
29572011-04-28 David Li <davidxl@google.com>
2958
2959 * tree.c (crc32_string): Use crc32_byte.
2960 (crc32_byte): New function.
2961 * tree.h (crc32_byte): New function.
2962 * gcov.c (read_graph_file): Handle new cfg_cksum.
2963 (read_count_file): Ditto.
2964 * profile.c (instrument_values): Ditto.
2965 (get_exec_counts): Ditto.
2966 (read_profile_edge_counts): Ditto.
2967 (compute_branch_probabilities): Ditto.
2968 (compute_value_histograms): Ditto.
2969 (branch_prob): Ditto.
2970 (end_branch_prob): Ditto.
2971 * coverage.c (read_counts_file): Ditto.
2972 (get_coverage_counts): Ditto.
2973 (tree_coverage_counter_addr): Ditto.
2974 (coverage_checksum_string): Ditto.
2975 (coverage_begin_output): Ditto.
2976 (coverage_end_function): Ditto.
2977 (build_fn_info_type): Ditto.
2978 (build_fn_info_value): Ditto.
2979 * libgcov.c (gcov_exit): Ditto.
2980 * gcov-dump.c (tag_function): Ditto.
2981 (compute_checksum): Remove.
2982
5d6358a5
AM
29832011-04-29 Alan Modra <amodra@gmail.com>
2984
2985 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2986 unspec plus offset. Tidy macho code.
2987
85ad2ef5
MJ
29882011-04-29 Martin Jambor <mjambor@suse.cz>
2989
2990 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2991 node instead of a decl. Update all callers.
2992 * cgraph.h: Update declaration.
2993
437f4a00
IR
29942011-04-28 Ira Rosen <ira.rosen@linaro.org>
2995
2996 PR tree-optimization/48765
2997 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2998 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2999 to indicate if loop aware SLP is being used. Scan the statements
3000 and update the vectorization factor according to the type of
3001 vectorization before statement analysis.
3002 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3003 pass it to vect_analyze_loop_operations.
3004 (vectorizable_reduction): Set number of copies to 1 in case of pure
3005 SLP statement.
3006 * tree-vect-stmts.c (vectorizable_conversion,
3007 vectorizable_assignment, vectorizable_shift,
3008 vectorizable_operation, vectorizable_type_demotion,
3009 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3010 Likewise.
3011 (vectorizable_condition): Move the check that it is not SLP
3012 vectorization before the number of copies check.
3013 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3014 to vectorize the loop using SLP.
3015
c6fc44f3
JJ
30162011-04-28 Jakub Jelinek <jakub@redhat.com>
3017
3018 PR middle-end/48597
3019 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3020 inline asm.
3021
6c0170ea
JM
30222011-04-28 Joseph Myers <joseph@codesourcery.com>
3023
3024 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3025 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3026 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3027 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3028 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3029 linux*.h headers.
6bec6c98 3030 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
3031 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3032 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3033 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 3034 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
3035 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3036 REG_NAME.
3037 * config/i386/linux.h (REG_NAME): Don't define.
3038 * config/i386/linux64.h (REG_NAME): Don't define.
3039 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3040 Undefine before defining.
3041
970dabbd
JH
30422011-04-28 Jan Hubicka <jh@suse.cz>
3043
6bec6c98
UB
3044 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3045 nonconstant_names array.
970dabbd
JH
3046 (estimate_function_body_sizes): Build nonconstant_names array; handle
3047 BUILT_IN_CONSTANT_P.
3048
8d3e3924
RG
30492011-04-28 Richard Guenther <rguenther@suse.de>
3050
3051 PR bootstrap/48804
3052 Revert
3053 2011-04-28 Richard Guenther <rguenther@suse.de>
3054
3055 * tree-ssa-structalias.c (solve_constraints): Build succ graph
3056 as late as possible.
6bec6c98 3057
8576f20a
RG
30582011-04-28 Richard Guenther <rguenther@suse.de>
3059
3060 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3061 (debug_constraint): Do it here.
3062 (dump_constraints): And here.
3063 (rewrite_constraints): And here.
3064 (dump_constraint_edge): Remove.
3065 (dump_constraint_graph): Rewrite to produce DOT output.
3066 (solve_constraints): Build succ graph as late as possible.
3067 Dump constraint graphs before and after solving.
3068
e38811ce
RG
30692011-04-28 Richard Guenther <rguenther@suse.de>
3070
3071 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3072 New function split out from ...
3073 (find_func_aliases): ... here. Call it.
3074 (find_func_aliases_for_call): Likewise.
3075
fbaf0d0c
GDR
30762011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3077
3078 * internal-fn.h (internal_fn_name_array): Declare.
3079 (internal_fn_flags_array): Likewise.
3080
cbb734aa
UB
30812011-04-27 Uros Bizjak <ubizjak@gmail.com>
3082
3083 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
3084 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3085 Move from sse.md.
3086 (ssemodefsuffix): Remove.
3087 (ssevecmodesuffix): New mode attribute.
3088 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3089 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3090 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3091 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3092 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3093 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3094 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3095 ssemodesuffix mode attribute.
3096 (float splitters): Use ssevecmodesuffix mode attribute.
3097 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3098 (sseinsmode): Rename from avxvecmode.
3099 (avxsizesuffix): Rename from avxmodesuffix.
3100 (sseintvecmode): Rename from avxpermvecmode.
3101 (ssedoublevecmode): Rename from ssedoublesizemode.
3102 (ssehalfvecmode): Rename from avxhalfvecmode.
3103 (ssescalarmode): Rename from avxscalarmode.
3104 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3105 templates for ssemodesuffix mode attribute.
3106 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3107 mode attribute.
3108
3109 Adjust RTX patterns globally for renamed mode attributes.
3110
991278ab
JH
31112011-04-27 Jan Hubcika <jh@suse.cz>
3112
3113 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3114 * ipa-inline-analysis.c: Include alloc-pool.h.
3115 (edge_predicate_pool): New.
3116 (trye_predicate_p): New function
3117 (false_predicate_p): New function.
3118 (add_clause): Sanity check that false clauses are "optimized";
3119 never add clauses to predicate that is already known to be false.
3120 (and_predicate): Use flase_predicate_p.
3121 (evaulate_predicate): Rename to ...
3122 (evaluate_predicate): ... this one; update all callers; assert
3123 that false is not listed among possible truths.
3124 (dump_predicate): Use true_predicate_p.
3125 (account_size_time): Use false_predicate_p.
3126 (evaulate_conditions_for_edge): Rename to ...
3127 (evaluate_conditions_for_edge) ... this one.
3128 (edge_set_predicate): New function.
3129 (inline_edge_duplication_hook): Duplicate edge predicates.
3130 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 3131 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
3132 (dump_inline_summary): Update.
3133 (estimate_function_body_sizes): Set edge predicates.
3134 (estimate_calls_size_and_time): Handle predicates.
3135 (estimate_callee_size_and_time): Update.
3136 (remap_predicate): Add toplev_predicate; update comment.
3137 (remap_edge_predicates): New function.
3138 (inline_merge_summary): Compute toplev predicate; update.
3139 (read_predicate): New function.
3140 (read_inline_edge_summary): Use it.
3141 (inline_read_section): Likewise.
3142 (write_predicate): New function.
3143 (write_inline_edge_summary): Use it.
3144 (inline_write_summary): Likewise.
3145 (inline_free_summary): Free alloc pool and edge summary vec.
3146
648b5f85
RG
31472011-04-27 Richard Guenther <rguenther@suse.de>
3148
3149 * tree-ssa-structalias.c (changed_count): Remove.
3150 (changed): Use a bitmap.
3151 (unify_nodes): Adjust.
3152 (do_sd_constraint): Likewise.
3153 (do_ds_constraint): Likewise.
3154 (do_complex_constraint): Likewise.
3155 (solve_graph): Likewise.
3156
4d5dcfb2
JH
31572011-04-27 Jan Hubicka <jh@suse.cz>
3158
3159 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3160
200eb7d2
UB
31612011-04-27 Uros Bizjak <ubizjak@gmail.com>
3162
3163 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3164 (avx_vperm2f128_*_operand): Ditto.
3165 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3166 Use avx_vpermilp_parallel in insn condition.
3167 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3168 Use avx_vperm2f128_parallel in insn condition.
3169
7d6e2521
RG
31702011-04-27 Richard Guenther <rguenther@suse.de>
3171
3172 * Makefile.in (tree-ssa-structalias.o): Remove
3173 gt-tree-ssa-structalias.h dependency.
3174 (GTFILES): Remove tree-ssa-structalias.c.
3175 * tree.c (allocate_decl_uid): New function.
3176 (make_node_stat): Use it.
3177 (copy_node_stat): Likewise.
3178 * tree.h (allocate_decl_uid): Declare.
3179 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3180 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3181 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 3182 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
3183 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3184 (struct heapvar_map): Likewise.
3185 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3186 heapvar_insert): Likewise.
3187 (make_heapvar_for): Rename to ...
3188 (make_heapvar): ... this. Simplify.
3189 (fake_var_decl_obstack): New global var.
3190 (build_fake_var_decl): New function.
3191 (make_constraint_from_heapvar): Adjust.
3192 (handle_lhs_call): Likewise.
3193 (create_function_info_for): Likewise.
3194 (intra_create_variable_infos): Likewise.
3195 (init_alias_vars): Allocate fake_var_decl_obstack.
3196 (init_alias_heapvars, delete_alias_heapvars): Remove.
3197 (compute_points_to_sets): Do not call init_alias_heapvars.
3198 (ipa_pta_execute): Likewise.
3199 (delete_points_to_sets): Free fake_var_decl_obstack.
3200
526ed6c2
UW
32012011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3202
3203 * config/spu/divmovti4.c (union qword_UTItype): New data type.
3204 (si_from_UTItype, si_to_UTItype): New functions.
3205 (__udivmodti4): Use them to implement type-punning.
3206 * config/spu/multi3.c (union qword_TItype): New data type.
3207 (si_from_TItype, si_to_TItype): New functions.
3208 (__multi3): Use them to implement type-punning.
3209
c187d33c
UW
32102011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3211
3212 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3213
40982661
JH
32142011-04-27 Jan Hubicka <jh@suse.cz>
3215
3216 * ipa-prop.c (function_insertion_hook_holder): New holder.
3217 (ipa_add_new_function): New function.
200eb7d2
UB
3218 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3219 Register/deregister holder.
40982661 3220
9aef53ee
RG
32212011-04-27 Richard Guenther <rguenther@suse.de>
3222
3223 PR tree-optimization/48772
200eb7d2 3224 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 3225
f63d806d
RG
32262011-04-27 Richard Guenther <rguenther@suse.de>
3227
3228 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3229 TARGET_MEM_REF handling.
3230
e1ea7451
NC
32312011-04-27 Nick Clifton <nickc@redhat.com>
3232
9b5db25d
NC
3233 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3234 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3235 (REG_CLASS_NAMES): Likewise.
3236 (REG_CLASS_CONTENTS): Likewise.
3237 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3238 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3239 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
3240 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
3241 (EVEN_REGS): New macro. Alias for QUAD_REGS.
3242 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3243 duplicate register classes.
97d20907 3244 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
3245 (frv_register_move_cost): Likewise.
3246
e1ea7451
NC
3247 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3248 end of the regno_reg_class array.
3249
5c2f94b4
JJ
32502011-04-27 Jakub Jelinek <jakub@redhat.com>
3251
3252 PR c/48742
3253 * c-typeck.c (build_binary_op): Don't wrap arguments if
3254 int_operands is true.
3255
57a944d7
KK
32562011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
3257
3258 PR target/48767
3259 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3260 targetm.calls.must_pass_in_stack for void type.
3261
898b8927
JH
32622011-04-26 Jan Hubicka <jh@suse.cz>
3263
3264 * cgraphbuild.c (build_cgraph_edges): Update call
3265 of cgraph_create_edge and cgraph_create_indirect_edge.
3266 * cgraph.c (cgraph_create_edge_including_clones,
3267 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3268 cgraph_update_edges_for_call_stmt_node): Do not take nest
3269 argument; do not initialize call_stmt_size/time.
3270 (dump_cgraph_node): Do not dump nest.
3271 (cgraph_clone_edge): Do not take loop_nest argument;
3272 do not propagate it; do not clone call_stmt_size/time.
3273 (cgraph_clone_node): Likewise.
3274 (cgraph_create_virtual_clone): Update.
3275 * cgraph.h (struct cgraph_edge): Remove
3276 call_stmt_size/call_stmt_time/loop_nest.
3277 (cgraph_create_edge, cgraph_create_indirect_edge,
3278 cgraph_create_edge_including_clones, cgraph_clone_node): Update
3279 prototype.
3280 * tree-emutls.c (gen_emutls_addr): Update.
3281 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3282 loop_nest; handle indirect calls, too.
3283 (clone_inlined_nodes): Do not care about updating inline summaries.
3284 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3285 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3286 stream call_stmt_size/call_stmt_time/loop_nest.
3287 * ipa-inline.c (edge_badness): Update.
3288 (ipa_inline): dump summaries after inlining.
3289 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 3290 New.
898b8927
JH
3291 (inline_edge_summary): New function.
3292 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3293 (inline_edge_removal_hook): Handle edge summaries.
3294 (inline_edge_duplication_hook): New hook.
3295 (inline_summary_alloc): Alloc hooks.
3296 (initialize_growth_caches): Do not register removal hooks.
3297 (free_growth_caches); Do not free removal hook.
3298 (dump_inline_edge_summary): New function.
3299 (dump_inline_summary): Use it.
3300 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3301 (inline_update_callee_summaries): New function.
3302 (inline_merge_summary): Use it.
3303 (do_estimate_edge_time, do_estimate_edge_growth): Update.
3304 (read_inline_edge_summary): New function.
3305 (inline_read_section): Use it.
3306 (write_inline_edge_summary): New function.
3307 (inline_write_summary): Use it.
3308 (inline_free_summary): Free edge new holders.
3309 * tree-inline.c (copy_bb): Update.
3310
ffa03772
JM
33112011-04-26 Jason Merrill <jason@redhat.com>
3312
3313 * tree-eh.c (lower_try_finally_switch): Create the label along with
3314 the CASE_LABEL_EXPR.
3315
6d7b45ad
DM
33162011-04-26 David S. Miller <davem@davemloft.net>
3317 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3318
3319 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3320 * configure: Regenerate.
3321
df10b6d4
MM
33222011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3323
3324 PR target/48258
3325 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3326 reduction.
3327 (VEC_reduc): New code iterator and splitters for vector reduction.
3328 (VEC_reduc_name): Ditto.
3329 (VEC_reduc_rtx): Ditto.
3330 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3331 (reduc_<VEC_reduc_name>_v4sf): Ditto.
3332
3333 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3334 support for extracting SF on VSX.
3335
3336 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3337 generating xscvspdp.
3338 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3339 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3340 double add, minimum, maximum vector reduction.
3341 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3342 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3343 optimize double vector reduction.
3344 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3345
35a5db04
JM
33462011-04-26 Joseph Myers <joseph@codesourcery.com>
3347
3348 * config/fr30/fr30.h (inhibit_libc): Don't define.
3349 * config/m32r/m32r-protos.h: Correct comment.
3350 * config/v850/v850.h (GHS_default_section_names,
3351 GHS_current_section_names): Use tree, not union tree_node *.
3352
2f964ad6
XDL
33532011-04-26 Xinliang David Li <davidxl@google.com>
3354
200eb7d2 3355 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
3356 * c-family/c-opts.c (c_common_handle_option): Set
3357 warn_maybe_uninitialized.
3358 * opts.c (common_handle_option): Ditto.
3359 * common.opt: New option.
3360 * tree-ssa.c (warn_uninit): Add one more parameter.
3361 (warn_uninitialized_var): Pass warning code.
3362 * tree-flow.h: Interface change.
3363
3364
9c7bd91a
RO
33652011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3366
200eb7d2 3367 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
3368 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3369 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3370
c2f36e21
RO
33712011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3372
3373 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3374 * config/mips/mips.opt (mmips-tfile): Remove.
3375
3376 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3377 mips-tdump reference to ...
200eb7d2 3378 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
3379 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3380 reference by Tru64 UNIX.
3381
2c9da85b
JJ
33822011-04-26 Jakub Jelinek <jakub@redhat.com>
3383
0c5f6539
JJ
3384 PR debug/48768
3385 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3386 is error_mark_node, set value to NULL.
3387
2c9da85b
JJ
3388 PR tree-optimization/48734
3389 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3390 if return value from maybe_fold_*_comparsions isn't something
3391 the code is prepared to handle.
3392
77fa1d54
UB
33932011-04-26 Uros Bizjak <ubizjak@gmail.com>
3394
3395 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3396 mode check.
3397 (ext_QIreg_nomode_operands): Remove.
3398 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3399 (*andsi_1): Ditto.
3400 (*andhi_1): Ditto.
3401
0e2a6c2b
AS
34022011-04-26 Andrew Stubbs <ams@codesourcery.com>
3403
3404 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3405
961562d8
RB
34062011-04-26 Richard Guenther <rguenther@suse.de>
3407
3408 * c-typeck.c (build_unary_op): Do not expand array-refs via
3409 pointer arithmetic. Only adjust qualifiers for function types.
3410
34112011-04-26 Richard Guenther <rguenther@suse.de>
3412
3413 PR middle-end/48694
3414 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3415 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
3416 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
3417 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 3418
a0d260fc
PC
34192011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
3420
6bec6c98 3421 * doc/extend.texi: Document __underlying_type.
a0d260fc 3422
4d583bb9
SB
34232011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
3424
3425 * config/rs6000/titan.md (automata_option "progress"): Remove.
3426
1f3fcdc3
JL
34272011-04-25 Jeff Law <law@redhat.com>
3428
3429 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3430
e5b0dad8
JK
34312011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3432
3433 * system.h (ENUM_BITFIELD): Remove.
3434
5157a881 34352011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 3436 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
3437
3438 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3439 for STORE_FLAG_VALUE==-1 case.
3440
ed4c109e
RS
34412011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
3442
3443 PR target/43804
3444 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3445 LEGITIMATE_PIC_OPERAND_P.
3446
f3181aa2
JH
34472011-04-24 Jan Hubicka <jh@suse.cz>
3448
3449 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3450 WPA hack.
77fa1d54
UB
3451 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3452 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3453 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
3454 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3455 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3456 Sanity check predicate length.
3457 (remap_predicate): Likewise; sanity check jump functions.
3458 (inline_read_section, inline_write_summary): Sanity check
3459 predicate length.
3460
5307cbaa
PC
34612011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3462
3463 PR other/48748
3464 * doc/extend.texi (Type Traits): Document __is_standard_layout,
3465 __is_literal_type, and __is_trivial; update throughout about
3466 possibly cv-qualified void types.
3467
bebd5f99
GP
34682011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
3469
3470 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3471 testsuite and make it version agnostic.
3472
7ee28a74
JH
34732011-04-22 Jan Hubicka <jh@suse.cz>
3474
3475 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3476
16997bc0
JJ
34772011-04-23 Jakub Jelinek <jakub@redhat.com>
3478
3479 PR c/48685
3480 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3481 to VOID_TYPE even around MODIFY_EXPR.
3482
f94d4ab1
MS
34832011-04-22 Mike Stump <mikestump@comcast.net>
3484
1a84c183 3485 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
3486 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3487 comment.
3488
632b4f8e
JH
34892011-04-22 Jan Hubicka <jh@suse.cz>
3490
3491 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
3492 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3493 ipa-prop.c; update all uses.
632b4f8e 3494 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
3495 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3496 merge summary of inlined function into former caller.
632b4f8e
JH
3497 * ipa-inline.c (max_benefit): Remove.
3498 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
3499 (update_caller_keys): Use
3500 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
3501 (update_callee_keys): Likewise.
3502 (update_all_callee_keys): Likewise.
77fa1d54
UB
3503 (inline_small_functions): Do not collect max_benefit; do not reset
3504 estimated_growth; call free_growth_caches and initialize_growth_caches.
3505 * ipa-inline.h (struct condition, type clause_t, struct predicate,
3506 struct size_time_entry): New structures.
632b4f8e 3507 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
3508 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3509 and estimated_growth.
632b4f8e
JH
3510 (edge_growth_cache_entry): New structure.
3511 (node_growth_cache, edge_growth_cache): New global vars.
3512 (estimate_growth): Turn into inline.
3513 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3514 initialize_growth_caches, free_growth_caches): Declare.
3515 (estimate_edge_growth): Rewrite.
3516 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
3517 (reset_node_growth_cache, reset_edge_growth_cache): New inline
3518 functions.
632b4f8e
JH
3519 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3520 (NUM_CONDITIONS): New constant.
3521 (predicate_conditions): New enum.
3522 (IS_NOT_CONSTANT): New constant.
3523 (edge_removal_hook_holder): New var.
3524 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
3525 (true_predicate, single_cond_predicate, false_predicate,
3526 not_inlined_predicate, add_condition, add_clause, and_predicates,
3527 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3528 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
3529 evaulate_conditions_for_edge): New functions.
3530 (inline_summary_alloc): Move to heap.
3531 (inline_node_removal_hook): Clear condition and entry vectors.
3532 (inline_edge_removal_hook): New function.
3533 (initialize_growth_caches, free_growth_caches): New function.
3534 (dump_inline_summary): Update.
3535 (edge_execution_predicate): New function.
3536 (will_be_nonconstant_predicate): New function.
3537 (estimate_function_body_sizes): Compute BB and constantness predicates.
3538 (compute_inline_parameters): Do not clear estimated_growth.
3539 (estimate_edge_size_and_time): New function.
3540 (estimate_calls_size_and_time): New function.
3541 (estimate_callee_size_and_time): New function.
3542 (remap_predicate): New function.
3543 (inline_merge_summary): New function.
3544 (do_estimate_edge_time): New function based on...
3545 (estimate_edge_time): ... this one.
3546 (do_estimate_edge_growth): New function.
3547 (do_estimate_growth): New function based on....
3548 (estimate_growth): ... this one.
3549 (inline_analyze_function): Analyze after deciding on jump functions.
3550 (inline_read_section): New function.
3551 (inline_read_summary): Use it.
3552 (inline_write_summary): Write all the new data.
3553 * ipa-prop.c (ipa_get_param_decl_index): Export.
3554 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
3555 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3556 Declare.
3557 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
3558 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3559 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3560 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3561 cgraph_edge_inlinable_p): Remove.
3562 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
3563 (cgraph_process_new_functions): Update call of
3564 compute_inline_parameters.
632b4f8e 3565
1df5b0db
RG
35662011-04-22 Richard Guenther <rguenther@suse.de>
3567
3568 * tree.c (build_int_cst): Properly create canonicalized integer
3569 constants.
3570 (build_int_cst_type): Remove scary comments.
3571
ae01169c
XDL
35722011-04-22 Xinliang David Li <davidxl@google.com>
3573
3574 * toplev.c (process_options): Enable -Werror=coverage-mismatch
3575 by default when -Wno-error is not specified.
3576 * opts-global.c (decode_options): Remove call to
3577 control_warning_options.
3578
93dfac24
JJ
35792011-04-22 Jakub Jelinek <jakub@redhat.com>
3580
3581 PR tree-optimization/48717
3582 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3583 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3584
1b5f5069
JM
35852011-04-22 Joseph Myers <joseph@codesourcery.com>
3586
3587 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
3588 definition where used.
3589
144f4153
JJ
35902011-04-22 Jakub Jelinek <jakub@redhat.com>
3591
3592 PR c/48716
3593 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3594 TREE_STATIC variables declared inside of some OpenMP construct.
3595
f9fd305b
MJ
35962011-04-22 Martin Jambor <mjambor@suse.cz>
3597
3598 PR middle-end/48585
1d284ec5 3599 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 3600
49819fef
AM
36012011-04-22 Alexander Monakov <amonakov@ispras.ru>
3602
3603 PR c/36750
3604 * c-typeck.c (pop_init_level): Do not warn about initializing
3605 with ` = {0}'.
3606
401f6699
AM
36072011-04-22 Alan Modra <amodra@gmail.com>
3608
3609 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3610 when returning call_cookie.
3611 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3612 pointers, to functions with no more vector args than the current
3613 function, and some non-local calls for ABI_V4.
3614 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3615 sibcall_nonlocal_aix64): Combine to ..
3616 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
3617 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3618 (sibcall_value_nonlocal_aix<mode>): ..likewise.
3619 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3620 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
3621 operand.
3622 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3623 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3624 sibcall_value_symbolic_64): Delete.
3625
903d1e67
XDL
36262011-04-21 Xinliang David Li <davidxl@google.com>
3627
3628 * cgraph.h: Remove pid.
3629 * cgraph.c: Remove pid.
3630 * value-prof.c (init_node_map): New function.
3631 (del_node_map): New function.
3632 (find_func_by_funcdef_no): New function.
3633 (gimple_ic_transform): Call new function.
3634 * cgraphunit.c (cgraph_finalize_function): Remove pid.
3635 * function.c (get_last_funcdef_no): New function.
3636 * function.h (get_last_funcdef_no): New function.
3637 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3638 to libgcov function.
3639 (tree-profiling): Call node map init and delete function.
3640
7378e95f
ILT
36412011-04-21 Ian Lance Taylor <iant@google.com>
3642
3643 * godump.c (go_format_type): Use exported Go name for anonymous
3644 field name.
3645
e84a6fcf
NF
36462011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3647
3648 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3649 Call builtin_function_type_list instead of builtin_function_type.
3650 (UNARY, BINARY, TRINARY, QUAD): Likewise.
3651
4fe058e2
NF
36522011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3653
3654 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3655 build_function_type_list instead of build_function_type.
3656 Delete variable `endlink'.
3657
1ba0a2d2
NF
36582011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3659
3660 * config/s390/s390.c (s390_init_builtins): Call
3661 build_function_type_list instead of build_function_type.
3662
c0676219
NF
36632011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3664
3665 * config/ia64/ia64.c (ia64_init_builtins): Call
3666 build_function_type_list instead of builtin_function_type.
3667
6ddfda8a
ER
36682011-04-21 Easwaran Raman <eraman@google.com>
3669
3a6448ea 3670 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
3671 (add_stack_var): ...and its reference here...
3672 (expand_stack_vars): ...and here.
3673 (stack_var_cmp): Sort by descending order of size.
3674 (partition_stack_vars): Change heuristic.
1d284ec5 3675 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
3676 (dump_stack_var_partition): Add newline after each partition.
3677
23756963
DA
36782011-04-21 Dimitrios Apostolou <jimis@gmx.net>
3679 Jeff Law <law@redhat.com>
3680
77fa1d54 3681 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
3682 * gengtype.c (matching_file_name_substitute): Likewise.
3683
aa2a43d2
RG
36842011-04-21 Richard Guenther <rguenther@suse.de>
3685
3686 PR lto/48703
1d284ec5 3687 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 3688
4d931f41
EB
36892011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3690
3691 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3692
f103fa7a
RG
36932011-04-21 Richard Guenther <rguenther@suse.de>
3694
3695 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3696 file name.
3697
e19f6650
RG
36982011-04-21 Richard Guenther <rguenther@suse.de>
3699
3700 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3701 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3702 Use DECL_P, not SSA_VAR_P.
3703 (ptr_derefs_may_alias_p): Likewise.
3704 (ptr_deref_may_alias_ref_p_1): Likewise.
3705 (decl_refs_may_alias_p): Likewise.
3706 (refs_may_alias_p_1): Likewise.
3707 (ref_maybe_used_by_call_p_1): Likewise.
3708 (call_may_clobber_ref_p_1): Likewise.
3709 (indirect_ref_may_alias_decl_p): Assume indirect refrences
3710 are either MEM_REF or TARGET_MEM_REF.
3711 (indirect_refs_may_alias_p): Likewise.
3712 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3713 for MEM_EXPR of indirect calls.
3714
9d1831bb
TG
37152011-04-21 Tristan Gingold <gingold@adacore.com>
3716
3717 * vmsdbgout.c (write_srccorr): Compute file length from the string.
3718 (dst_file_info_struct): Remove flen field.
3719 (lookup_filename): Remove code that set flen field.
3720
f199c029
TG
37212011-04-21 Tristan Gingold <gingold@adacore.com>
3722
3723 * config/ia64/ia64.c (ia64_start_function): Add a guard.
3724
2894086e
UB
37252011-04-21 Uros Bizjak <ubizjak@gmail.com>
3726
3727 PR target/48708
3728 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3729 vec_extract and vec_concat for non-SSE4_1 targets.
3730
53f94a5c
RG
37312011-04-21 Richard Guenther <rguenther@suse.de>
3732
3733 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3734 return statements.
3735
f0dca5ba
JM
37362011-04-21 Joseph Myers <joseph@codesourcery.com>
3737
3738 * config/i386/cygming.h (union tree_node, TREE): Don't define or
3739 undefine.
3740 (FILE): Don't undefine.
3741
984514ac
JM
37422011-04-21 Joseph Myers <joseph@codesourcery.com>
3743
3744 * config/alpha/alpha.c (struct machine_function): Use rtx, not
3745 struct rtx_def *.
3746 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3747 struct rtx_def *.
3748 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 3749 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
3750 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3751 rtx_def *.
3752 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
3753 definitions where used.
3754 * config/microblaze/microblaze.h (struct microblaze_args): Use
3755 rtx, not struct rtx_def *.
3756 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3757 rtx_def *.
2894086e
UB
3758 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3759 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
3760 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3761 not struct rtx_def *.
3762 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3763 struct rtx_def *.
3764 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3765 rtx_def *.
2894086e 3766 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 3767
0b5a2724
RS
37682011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3769
3770 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3771 operand_equal_p to compare DR_BASE_ADDRESSes.
3772 (vect_check_interleaving): Likewise.
3773
4b18d683
RS
37742011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3775
3776 PR target/46329
3777 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3778 for all Neon struct constants.
3779
1a627b35
RS
37802011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3781
3782 * target.def (legitimate_constant_p): New hook.
3783 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3784 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3785 * doc/tm.texi: Regenerate.
3786 * hooks.h (hook_bool_mode_rtx_true): Declare.
3787 * hooks.c (hook_bool_mode_rtx_true): Define.
3788 * system.h (LEGITIMATE_CONSTANT_P): Poison.
3789 * calls.c (precompute_register_parameters): Replace uses of
3790 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3791 (emit_library_call_value_1): Likewise.
3792 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3793 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3794 * ira-costs.c (scan_one_insn): Likewise.
3795 * recog.c (general_operand, immediate_operand): Likewise.
3796 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3797 * reload1.c (init_eliminable_invariants): Likewise.
3798
3799 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3800 mode argument.
3801 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3802 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3803 argument.
3804 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3805 * config/alpha/predicates.md (input_operand): Update call to
3806 alpha_legitimate_constant_p.
3807
3808 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3809 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3810 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3811 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3812 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3813 (arm_legitimate_constant_p): New functions.
3814 (arm_cannot_force_const_mem): Make static.
3815
3816 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3817
3818 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3819 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3820 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3821 instead of bfin_legitimate_constant_p.
3822 (bfin_legitimate_constant_p): Make static. Add a mode argument.
3823 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3824
3825 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3826
3827 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3828
3829 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3830 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3831 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3832 (frv_legitimate_constant_p): Make static. Add a mode argument.
3833
3834 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3835 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3836 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3837
3838 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3839 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3840 * config/i386/i386.c (legitimate_constant_p): Rename to...
3841 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
3842 argument.
3843 (ix86_cannot_force_const_mem): Update accordingly.
3844 (ix86_legitimate_address_p): Likewise.
3845 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3846 * config/i386/i386.md: Update commentary.
3847
3848 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3849 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3850 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3851 (ia64_legitimate_constant_p): Make static. Add a mode argument.
3852
3853 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3854
3855 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3856 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3857 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3858 (lm32_legitimate_constant_p): Make static. Add a mode argument.
3859
3860 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3861 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3862 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3863
3864 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3865 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3866 (m32r_legitimate_constant_p): New function.
3867
3868 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3869 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3870 LEGITIMATE_CONSTANT_P.
3871 (LEGITIMATE_CONSTANT_P): Delete.
3872 * config/m68k/m68k.c (m68k_expand_prologue): Call
3873 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3874 (m68k_legitimate_constant_p): New function.
3875 * config/m68k/m68k.md: Update comments.
3876
3877 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3878 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3879 (mcore_legitimate_constant_p): New function.
3880
3881 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3882 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3883 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3884 Add a mode argument.
3885 (mep_legitimate_address): Update accordingly.
3886 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3887
3888 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3889 Delete.
3890 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3891 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3892 static. Check OP's mode for VOIDmode.
3893 (microblaze_legitimate_constant_p): New function.
3894 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3895
3896 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3897 * config/mips/mips.c (mips_legitimate_constant_p): New function.
3898 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3899 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3900 * config/mips/predicates.md: Update comments.
3901
3902 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3903 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3904 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3905 (mmix_legitimate_constant_p): Make static, return a bool, and take
3906 a mode argument.
3907 (mmix_print_operand_address): Update accordingly.
3908
3909 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3910 Delete.
3911 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
3912 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3913 static. Add a mode argument.
1a627b35
RS
3914 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3915
3916 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3917
3918 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3919 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3920 (pa_legitimate_constant_p): New function.
3921
3922 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3923
3924 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3925 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3926 (pdp11_legitimate_constant_p): New function.
3927
3928 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3929 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3930 (rs6000_legitimate_constant_p): New function.
3931
3932 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3933 (rx_legitimate_constant_p): ...this.
3934 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3935 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3936 (rx_legitimate_constant_p): ...this.
3937 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3938 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3939
3940 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3941 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3942 * config/s390/s390.c (legitimate_constant_p): Rename to...
3943 (s390_legitimate_constant_p): ...this. Make static, return a bool,
3944 and add a mode argument.
3945 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3946
3947 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3948
3949 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3950 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3951 (sh_legitimate_constant_p): New function.
3952
3953 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3954 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3955 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3956 (legitimate_constant_p): Rename to...
3957 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
3958 argument.
3959 (constant_address_p): Update accordingly.
3960
3961 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3962 argument and return a bool.
3963 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3964 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3965 (spu_legitimate_constant_p): Add a mode argument and return a bool.
3966 (spu_rtx_costs): Update accordingly.
3967 * config/spu/predicates.md (vec_imm_operand): Likewise.
3968
3969 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3970
3971 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3972 * config/v850/v850.c (v850_legitimate_constant_p): New function.
3973 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3974
3975 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3976 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3977 * config/vax/vax.c (legitimate_constant_p): Likewise.
3978
3979 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3980 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3981 (xtensa_legitimate_constant_p): New function.
3982
fbbf66e7
RS
39832011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3984
3985 * target.def (cannot_force_const_mem): Add a mode argument.
3986 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3987 * doc/tm.texi: Regenerate.
3988 * hooks.h (hook_bool_mode_rtx_false): Declare.
3989 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3990 (hook_bool_mode_const_rtx_true): Likewise.
3991 (hook_bool_mode_rtx_false): New function.
3992 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3993 to be non-VOID. Update call to cannot_force_const_mem.
3994 (find_reloads): Update accordingly.
3995 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3996 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3997 argument.
3998 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3999 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4000 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4001 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4002 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4003 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4004 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4005 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4006 (m68k_cannot_force_const_mem): ...this new function.
4007 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4008 argument.
4009 (mips_const_insns, mips_legitimize_const_move): Update calls.
4010 (mips_secondary_reload_class): Likewise.
4011 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4012 (pa_cannot_force_const_mem): ...this new function.
2894086e 4013 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
4014 (rs6000_cannot_force_const_mem): ...this new function.
4015 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4016 argument.
4017 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4018 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4019 to...
4020 (xtensa_cannot_force_const_mem): ...this new function.
4021
b861891b
NF
40222011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4023
4024 * config/mips/mips.c (mips16_build_function_stub): Call
4025 build_function_type_list instead of build_function_type.
4026 (mips16_build_call_stub): Likewise.
4027
34149ed5
NF
40282011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4029
4030 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4031 instead of build_function_type.
4032
12526412
NF
40332011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4034
4035 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4036 instead of build_function_type.
4037
3b84d61f
UB
40382011-04-20 Uros Bizjak <ubizjak@gmail.com>
4039
4040 PR target/48678
4041 * config/i386/i386.md (insv): Change operand 0 constraint to
4042 "register_operand". Change operand 1 and 2 constraint to
4043 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
4044 * config/i386/sse.md (sse4_1_pinsrb): Export.
4045 (sse2_pinsrw): Ditto.
4046 (sse4_1_pinsrd): Ditto.
4047 (sse4_1_pinsrq): Ditto.
4048 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4049 * config/i386/i386.c (ix86_expand_pinsr): New.
4050
4a25752b
ER
40512011-04-20 Easwaran Raman <eraman@google.com>
4052
4053 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4054 containing union type only with -fstrict-aliasing.
4055
04695783
JM
40562011-04-20 Jim Meyering <meyering@redhat.com>
4057
4058 Remove useless if-before-free tests.
4059 * calls.c (expand_call, save_area): Likewise.
4060 * cfgcleanup.c (try_forward_edges): Likewise.
4061 * collect2.c (collect_execute): Likewise.
4062 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4063 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4064 * coverage.c (coverage_checksum_string): Likewise.
4065 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4066 * cselib.c (cselib_init): Likewise.
4067 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4068 (df_set_clean_cfg): Likewise.
4069 * function.c (free_after_compilation): Likewise.
4070 * gcc.c (do_spec_1, main): Likewise.
4071 * gcov.c (create_file_names): Likewise.
4072 * gensupport.c (identify_predicable_attribute): Likewise.
4073 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4074 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4075 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4076 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4077 * ipa-pure-const.c (local_pure_const): Likewise.
4078 * ipa-reference.c (propagate): Likewise.
4079 * ira-costs.c (free_ira_costs): Likewise.
4080 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4081 * matrix-reorg.c (mat_free): Likewise.
4082 * prefix.c (get_key_value): Likewise.
4083 * profile.c (compute_value_histograms): Likewise.
4084 * reload1.c (free_reg_equiv): Likewise.
4085 * sched-deps.c (free_deps): Likewise.
4086 * sel-sched-ir.c (fence_clear): Likewise.
4087 * sese.c (set_rename, if_region_set_false_region): Likewise.
4088 * tree-data-ref.c (free_rdg): Likewise.
4089 * tree-eh.c (lower_try_finally): Likewise.
4090 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4091 * tree-ssa-live.c (delete_var_map): Likewise.
4092 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4093 * tree-ssa-pre.c (phi_trans_add): Likewise.
4094
6788475a
JJ
40952011-04-20 Jakub Jelinek <jakub@redhat.com>
4096
4097 PR tree-optimization/48611
4098 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4099 beyond ERT_MUST_NOT_THROW region.
4100
0eda4033
CM
41012011-04-20 Catherine Moore <clm@codesourcery.com>
4102
4103 * config/mips/mips.opt (mfix-24k): New.
4104 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4105 * config/mips/mips.md (length): Increase by 4 for stores if
4106 fixing 24K errata.
4107 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4108 all noreorder if fixing 24K errata.
4109 * doc/invoke.texi: Document mfix-24k.
4110
01475747
CLT
41112011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
4112
4113 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 4114 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 4115
bc2c1a60
AS
41162011-04-20 Andrew Stubbs <ams@codesourcery.com>
4117
4118 * config/arm/arm.c (arm_gen_constant): Move movw support ....
4119 (const_ok_for_op): ... to here.
4120
583722ee
KT
41212011-04-20 Kai Tietz <ktietz@redhat.com>
4122
2894086e
UB
4123 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4124 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 4125
422c0989
AS
41262011-04-20 Andrew Stubbs <ams@codesourcery.com>
4127
4128 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4129
d7978bff
RG
41302011-04-20 Richard Guenther <rguenther@suse.de>
4131
4132 PR tree-optimization/47892
4133 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4134 are if-convertible.
4135
818412ba
EB
41362011-04-20 Eric Botcazou <ebotcazou@adacore.com>
4137
4138 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4139
b501ce4e
TG
41402011-04-20 Tristan Gingold <gingold@adacore.com>
4141
4142 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4143
516edfdd
GJL
41442011-04-20 Georg-Johann Lay <avr@gjlay.de>
4145
4146 PR target/18145
4147
4148 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4149 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4150 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4151 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4152 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4153
4154 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4155 New prototype.
4156
4157 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4158 (avr_asm_named_section, avr_asm_output_aligned_common,
4159 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4160 New functions to update...
4161 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4162 (avr_asm_init_sections): Overwrite section callbacks for
4163 data_section, bss_section.
4164 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4165 from here to...
4166 (avr_file_end): ...here.
4167
dafc9511
RG
41682011-04-20 Richard Guenther <rguenther@suse.de>
4169
4170 PR middle-end/48695
4171 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 4172 objects and types here. Adjust for their offset before comparing.
dafc9511 4173
1da0876c
RS
41742011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4175
4176 * tree-vect-stmts.c (vectorizable_store): Only chain one related
4177 statement per copy.
4178
25583c4f
RS
41792011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4180
4181 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4182 (GIMPLE_H): Include $(INTERNAL_FN_H).
4183 (OBJS-common): Add internal-fn.o.
4184 (internal-fn.o): New rule.
4185 * internal-fn.def: New file.
4186 * internal-fn.h: Likewise.
4187 * internal-fn.c: Likewise.
4188 * gimple.h: Include internal-fn.h.
4189 (GF_CALL_INTERNAL): New gf_mask.
4190 (gimple_statement_call): Put fntype into a union with a new
4191 internal_fn field.
4192 (gimple_build_call_internal): Declare.
4193 (gimple_build_call_internal_vec): Likewise.
4194 (gimple_call_same_target_p): Likewise.
4195 (gimple_call_internal_p): New function.
4196 (gimple_call_internal_fn): Likewise.
4197 (gimple_call_fntype): Return null for internal calls.
4198 (gimple_call_set_fntype): Assert that the function is not internal.
4199 (gimple_call_set_fn): Likewise.
4200 (gimple_call_set_fndecl): Likewise.
4201 (gimple_call_set_internal_fn): New function.
4202 (gimple_call_addr_fndecl): Handle null functions.
4203 (gimple_call_return_type): Likewise null types.
4204 * gimple.c (gimple_build_call_internal_1): New function.
4205 (gimple_build_call_internal): Likewise.
4206 (gimple_build_call_internal_vec): Likewise.
4207 (gimple_call_same_target_p): Likewise.
4208 (gimple_call_flags): Handle calls to internal functions.
4209 (gimple_call_fnspec): New function.
4210 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4211 (gimple_has_side_effects): Handle null functions.
4212 (gimple_rhs_has_side_effects): Likewise.
4213 (gimple_call_copy_skip_args): Handle calls to internal functions.
4214 * cfgexpand.c (expand_call_stmt): Likewise.
4215 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4216 * gimple-fold.c (gimple_fold_call): Handle null functions.
4217 (gimple_fold_stmt_to_constant_1): Don't fold
4218 calls to internal functions.
4219 * gimple-low.c (gimple_check_call_args): Handle calls to internal
4220 functions.
4221 * gimple-pretty-print.c (dump_gimple_call): Likewise.
4222 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4223 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4224 (do_warn_unused_result): Likewise.
4225 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4226 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4227 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4228 the target of a call.
4229 (initialize_hash_element): Update accordingly.
4230 (hashable_expr_equal_p): Use gimple_call_same_target_p.
4231 (iterative_hash_hashable_expr): Handle calls to internal functions.
4232 (print_expr_hash_elt): Likewise.
4233 * tree-ssa-pre.c (can_value_number_call): Likewise.
4234 (eliminate): Handle null functions.
4235 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4236 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4237 (find_func_aliases): Likewise.
4238 * value-prof.c (gimple_ic_transform): Likewise.
4239 (gimple_indirect_call_to_profile): Likewise.
4240 * lto-streamer-in.c (input_gimple_stmt): Likewise.
4241 * lto-streamer-out.c (output_gimple_stmt): Likewise.
4242
1a3118e9
JH
42432011-04-19 Jan Hubicka <jh@suse.cz>
4244
4245 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
4246 * ipa-inline.c (inline_small_functions): Compute summaries first,
4247 populate heap later.
1a3118e9 4248
fee8b6da
JH
42492011-04-19 Jan Hubicka <jh@suse.cz>
4250
4251 * cgraph.h (save_inline_function_body): Remove.
4252 * ipa-inline-transform.c: New file, broke out of...
4253 * ipa-inline.c: ... this one; Update toplevel comment.
4254 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4255 make global.
4256 (update_noncloned_frequencies): Move to ipa-inline-transform.c
4257 (cgraph_mark_inline_edge): Rename to inline_call; move to
4258 ipa-inline-transform.c.
4259 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4260 move to ipa-inline-transform.c
4261 (recursive_inlining, inline_small_functions, flatten_function,
4262 ipa_inline, inline_always_inline_functions,
4263 early_inline_small_functions): Update.
4264 (inline_transform): Move to ipa-inline-transform.c.
4265 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4266 Declare.
4267 * Makefile.in (ipa-inline-transform.o): New file.
4268 * cgraphunit.c (save_inline_function_body): Move to
4269 ipa-inline-transform.c
4270
f0679612
DD
42712011-04-19 DJ Delorie <dj@redhat.com>
4272
4273 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4274 registers if we already know there aren't any.
4275 (m32c_emit_epilogue): Don't emit a barrier here.
4276 (m32c_emit_eh_epilogue): Likewise.
4277 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4278 operands at expand time.
4279 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4280 int" wchar type.
4281 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4282 duplicates. Provide aliases instead.
4283 * config/m32c/prologue.md (eh_return): Emit a barrier here.
4284 (eh_epilogue): Add a "(return)" here as a hint to other parts of
4285 the compiler.
4286
32257ddc
AS
42872011-04-19 Anatoly Sokolov <aesok@post.ru>
4288
4289 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4290 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4291 (general_or_i64_p, sparc_register_move_cost): New function.
4292
60bea929
RO
42932011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4294
4295 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 4296 Add lynx, mipssde. Sort table.
60bea929 4297
444b3995 42982011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 4299
9d12f71a
EB
4300 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4301 not negative.
444b3995 4302
d708ce50
JJ
43032011-04-19 Jakub Jelinek <jakub@redhat.com>
4304
4305 PR target/48678
4306 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4307 is a SUBREG with non-MODE_INT mode inside of it.
4308
49c471e3
MJ
43092011-04-19 Martin Jambor <mjambor@suse.cz>
4310
4311 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4312 also according to actual contants.
4313 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4314 (gimple_fold_call): Use it.
4315 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4316
0004f992
MJ
43172011-04-19 Martin Jambor <mjambor@suse.cz>
4318
4319 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4320 non-pointer assignments.
4321
40591473
MJ
43222011-04-19 Martin Jambor <mjambor@suse.cz>
4323
4324 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4325 account anc_offset and otr_type from the indirect edge info.
4326 * ipa-prop.c (get_ancestor_addr_info): New function.
4327 (compute_complex_ancestor_jump_func): Assignment analysis moved to
4328 get_ancestor_addr_info, call it.
4329 (ipa_note_param_call): Do not initialize information about polymorphic
4330 calls, return the indirect call graph edge. Remove the last
4331 parameter, adjust all callers.
4332 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4333 parameters. Initialize polymorphic information in the indirect edge.
4334
abe36b81
EB
43352011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4336
4337 PR lto/48148
4338 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4339 the types if they have different enumeration identifiers.
4340
e6416b30
JH
43412011-04-19 Jan Hubicka <jh@suse.cz>
4342
4343 * cgraph.h (cgraph_optimize_for_size_p): Declare.
4344 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4345 * predict.c (cgraph_optimize_for_size_p): Break out from ...
4346 (optimize_function_for_size_p) ... here.
4347
d39132ea
RG
43482011-04-19 Richard Guenther <rguenther@suse.de>
4349
4350 PR lto/48207
4351 * tree.c (free_lang_data): Do not reset the decl-assembler-name
4352 langhook.
4353
ff7037dc
EB
43542011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4355
4356 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4357 if DECL_NO_INLINE_WARNING_P is set on the function.
4358
c1ee2892
BS
43592011-04-19 Bernd Schmidt <bernds@codesourcery.com>
4360
4361 PR fortran/47976
4362 * reload1.c (inc_for_reload): Return void. All callers changed.
4363 (emit_input_reload_insns): Don't try to delete previous output
4364 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
4365
43662011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
4367
4368 * gengtype.h: Updated copyright year.
4369 (struct input_file_st): Add inpisplugin field.
4370 (type_fileloc): New function.
4371 * gengtype.c
4372 (write_typed_struct_alloc_def): Add gcc_assert.
4373 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4374 (write_typed_alloc_defns): Don't output for plugin files.
4375 (input_file_by_name): Clear inpisplugin field.
4376 (main): Set inpisplugin field for plugin files.
4377
897e0a89
NP
43782011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
4379
4380 * gengtype-state.c (string_eq): New.
4381 (read_state): Use string_eq instead of strcmp when creating the
4382 state_ident_tab.
4383
363ee90e
WG
43842011-04-19 Wei Guozhi <carrot@google.com>
4385
4386 PR target/47855
4387 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4388 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4389 linkage.
4390 * config/arm/constraints.md (Uu): New constraint.
4391 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4392
18a24fed
TG
43932011-04-19 Tristan Gingold <gingold@adacore.com>
4394
4395 * config.gcc (-*-*-*vms): Added.
4396 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4397 definitions moved.
4398 * config/vms/vms-ld.c: New file.
4399 * config/vms/vms-ar.c: New file.
4400 * config/vms/t-vmsnative: New file.
4401
1c13f168
XDL
44022011-04-18 Xinliang David Li <davidxl@google.com>
4403
4404 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4405
84825707
JJ
44062011-04-18 Jakub Jelinek <jakub@redhat.com>
4407
4408 PR middle-end/48661
4409 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4410 if TREE_TYPE (v) is non-NULL.
4411
4412 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4413 gimple_get_virt_mehtod_for_binfo.
4414 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4415 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4416 callers.
4417 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4418
7d4f8d02 44192011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
4420 Steve Ellcey <sje@cup.hp.com>
4421
7d4f8d02
EB
4422 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4423 use its mode as source mode if it isn't VOIDmode.
7254cb57 4424
474e8e70
DCR
44252011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
4426
4427 * doc/passes.texi: Fill crossref nodes.
4428
cff41484
JM
44292011-04-18 Jim Meyering <meyering@redhat.com>
4430
7d4f8d02 4431 Fix doubled-word typos in comments and strings
cff41484
JM
4432 * config/alpha/vms-unwind.h: s/for for/for/
4433 * config/arm/unwind-arm.h: Likewise.
4434 * config/microblaze/microblaze.c: Likewise.
4435 * config/sh/constraints.md: s/in in/in/
4436 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4437
f60c2554
UB
44382011-04-18 Uros Bizjak <ubizjak@gmail.com>
4439
4440 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4441 (AVX_FLOAT_MODE_P): Ditto.
4442 (AVX128_VEC_FLOAT_MODE_P): Ditto.
4443 (AVX256_VEC_FLOAT_MODE_P): Ditto.
4444 (AVX_VEC_FLOAT_MODE_P): Ditto.
4445 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4446 (UNSPEC_MASKSTORE): Ditto.
4447 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4448 Merge from <sse>_movmsk<ssemodesuffix> and
4449 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
4450 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
4451 iterator.
4452 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4453 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4454 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4455
09a2806f
JH
44562011-04-18 Jan Hubicka <jh@suse.cz>
4457
8a8dccb2
JH
4458 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4459
09a2806f
JH
4460 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4461 (want_inline_function_called_once_p): Break out the logic from
4462 ipa_inline.
4463 (edge_badness): Ensure that profile is not misupdated.
4464 (lookup_recursive_calls): Prioritize by call frequencies.
4465 (inline_small_functions): Move program size estimates here;
4466 actually process whole queue even when unit growth has been
4467 met. (to properly compute inline_failed reasons and for the
f60c2554 4468 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
4469 (ipa_inline): Remove unit summary code; first inline hot calls
4470 of functions called once, cold calls next.
4471 (order, nnodes): Remove unused variables.
4472 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4473 (GTFILES): Remove ipa-inline.c
4474 * sel-sched.c (fill_insns): Silence uninitialized var warning.
4475
3eea52ef
EB
44762011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4477
4478 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4479
229a1c59 44802011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 4481 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
4482
4483 * arm.c (neon_builtin_type_bits): Remove.
4484 (typedef enum neon_builtin_mode): New.
4485 (T_MAX): Don't define.
4486 (typedef enum neon_builtin_datum): Remove bits, codes[],
4487 num_vars and base_fcode. Add mode, code and fcode.
4488 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4489 VAR10): Change accordingly.
4490 (neon_builtin_data[]): Change accordingly
4491 (arm_init_neon_builtins): Change accordingly.
4492 (neon_builtin_compare): Remove.
4493 (locate_neon_builtin_icode): Remove.
4494 (arm_expand_neon_builtin): Change accordingly.
4495
4496 * arm.h (enum arm_builtins): Move to ...
4497 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4498
4499 * arm.c (arm_builtin_decl): Declare.
4500 (TARGET_BUILTIN_DECL): Define.
4501 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4502 (arm_builtin_decls[]): New.
4503 (arm_init_neon_builtins): Store builtin declarations in
4504 arm_builtin_decls[].
4505 (arm_init_tls_builtins): Likewise.
4506 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
4507 (arm_builtin_decl): New.
4508
75e802cc
RG
45092011-04-18 Richard Guenther <rguenther@suse.de>
4510
4511 * tree.c (upper_bound_in_type): Build properly canonicalized
4512 INTEGER_CSTs.
4513 (lower_bound_in_type): Likewise.
4514
3b45a007
RG
45152011-04-18 Richard Guenther <rguenther@suse.de>
4516
4517 * gimple.h (gimple_call_addr_fndecl): New function.
4518 (gimple_call_fndecl): Use it.
4519 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4520 for direct calls.
4521 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4522 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4523
d25a79ea
RG
45242011-04-18 Richard Guenther <rguenther@suse.de>
4525
4526 PR middle-end/48650
4527 * tree.c (build_string): STRING_CST is now derived from tree_typed.
4528
7d5fc814
EB
45292011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4530
4531 PR lto/48492
4532 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4533 DECL_IN_CONSTANT_POOL without RTL.
4534
7e7cfcf6
UW
45352011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
4536 Ira Rosen <ira.rosen@linaro.org>
4537
4538 PR target/48252
4539 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4540 to match neon_vzip/vuzp/vtrn_internal.
4541 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4542 outputs explicitly dependent on both inputs.
4543 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4544
49eab32e
JJ
45452011-04-18 Jakub Jelinek <jakub@redhat.com>
4546
4547 PR tree-optimization/48616
4548 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4549 whether the shift is by scalar or vector based on whether all SLP
4550 scalar stmts have the same rhs.
4551
e54170f4
CLT
45522011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
4553
4554 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4555 memory operands.
4556
b14ee6c9
RS
45572011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4558
4559 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4560 registers.
4561
10158cd3
JH
45622011-04-17 Jan Hubicka <jh@suse.cz>
4563
4564 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
4565 * cgrpahunit.c (cgraph_finalize_function): Do not set
4566 finalized_by_frontend.
10158cd3
JH
4567 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4568 finalized_by_frontend.
4569
2e9bb6ba
JH
45702011-04-17 Jan Hubicka <jh@suse.cz>
4571
4572 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4573 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4574 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
4575 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4576 method.
2e9bb6ba
JH
4577 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4578 gimple-fold.c
4579 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4580
beb628e1
EB
45812011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4582
4583 PR lto/48538
4584 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4585 is non-null before accessing it.
4586 (input_cgraph): Remove trailing spaces.
4587
3e2fdd24
RE
45882011-04-17 Revital Eres <revital.eres@linaro.org>
4589
4590 * params.def (sms-min-sc): New param flag.
4591 * modulo-sched.c (sms_schedule): Use it.
4592 * doc/invoke.texi (sms-min-sc): Document it.
4593
4c0f7679
JH
45942011-04-17 Jan Hubicka <jh@suse.cz>
4595
4596 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4597 present, also set gimple_call_set_cannot_inline.
4598 * ipa-inline.c: Update toplevel comment.
4599 (MAX_TIME): Remove.
4600 (cgraph_clone_inlined_nodes): Fix linebreaks.
4601 (cgraph_check_inline_limits): Restructure to ...
4602 (caller_growth_limits): ... this one; be more tolerant
4603 on growth in nested inline chains; add explanatory comment;
4604 fix stack accounting thinko introduced by previous patch.
4605 (cgraph_default_inline_p): Remove.
4606 (report_inline_failed_reason): New function.
4607 (can_inline_edge_p): New function.
4608 (can_early_inline_edge_p): New function.
4609 (leaf_node_p): Move upwards in file.
4610 (want_early_inline_function_p): New function.
4611 (want_inline_small_function_p): New function.
4612 (want_inline_self_recursive_call_p): New function.
4613 (cgraph_edge_badness): Rename to ...
4614 (edge_badness) ... this one; fix linebreaks.
4615 (update_edge_key): Update call of edge_baddness; add
4616 detailed dump about queue updates.
4617 (update_caller_keys): Use can_inline_edge_p and
4618 want_inline_small_function_p.
4619 (cgraph_decide_recursive_inlining): Rename to...
4620 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
4621 want_inline_self_recursive_call_p; simplify and remove no longer
4622 valid FIXME.
4c0f7679
JH
4623 (cgraph_set_inline_failed): Remove.
4624 (add_new_edges_to_heap): Use can_inline_edge_p and
4625 want_inline_small_function_p.
4626 (cgraph_decide_inlining_of_small_functions): Rename to ...
4627 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
4628 can/want predicates; cleanup debug ouput; work edges till fibheap
4629 is exhausted and do not stop once unit growth is reached; remove
4630 later loop processing remaining edges.
4c0f7679
JH
4631 (cgraph_flatten): Rename to ...
4632 (flatten_function): ... this one; use can_inline_edge_p
4633 and can_early_inline_edge_p predicates.
4634 (cgraph_decide_inlining): Rename to ...
4635 (ipa_inline): ... this one; remove unreachable nodes before
4636 inlining functions called once; simplify the pass.
4637 (cgraph_perform_always_inlining): Rename to ...
4638 (inline_always_inline_functions): ... this one; use
f60c2554 4639 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
4640 (cgraph_decide_inlining_incrementally): Rename to ...
4641 (early_inline_small_functions): ... this one; simplify
4642 using new predicates; cleanup; make dumps prettier.
4643 (cgraph_early_inlining): Rename to ...
4644 (early_inliner): newer inline regular functions into always-inlines;
4645 fix updating of call stmt summaries.
4646 (pass_early_inline): Update for new names.
4647 (inline_transform): Fix formating.
4648 (gate_cgraph_decide_inlining): Rename to ...
4649 (pass_ipa_inline): ... this one.
4650 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4651 * ipa-inline-analysis.c (dump_inline_summary): Update.
4652 (compute_inline_parameters): Do not compute disregard_inline_limits;
4653 look for mismatching arguments.
4654 (estimate_growth): Fix handlig of non-trivial self recursion.
4655 (inline_read_summary): Do not read info->disregard_inline_limits.
4656 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
4657 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4658 and move all checks into can_inline_edge_p predicate; re-enable code
4659 comparing optimization levels.
4c0f7679
JH
4660 (expand_call_inline): Do not test inline_forbidden_into_p.
4661 * Makefile.in (ipa-inline.o): Update arguments.
4662
54333b7c
RE
46632011-04-17 Revital Eres <revital.eres@linaro.org>
4664
4665 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4666
42c2bf92
RE
46672011-04-17 Revital Eres <revital.eres@linaro.org>
4668
4669 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4670
b183e9e0
MM
46712011-04-17 Michael Matz <matz@suse.de>
4672
4673 PR tree-optimization/48622
4674 PR lto/48645
4675 * ipa-inline-analysis.c (inline_read_summary): Read size/time
4676 in same order as they're written.
4677
b8a17fa2
JDA
46782011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4679
4680 * config/pa/predicates.md: Reorganize and simplify predicates.
4681 Eliminate duplicate code checks.
4682 (arith_operand): Rename to arith14_operand
4683 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4684 * config/pa/pa.md: Use renamed operands.
4685 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4686 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4687 arith11_operand, adddi3_operand, indexed_memory_operand,
4688 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4689 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4690 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4691 move_dest_operand, move_src_operand, prefetch_cc_operand,
4692 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4693 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4694 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4695 div_operand, int5_operand, movb_comparison_operator,
4696 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4697 arith_double_operand, ireg_operand, lhs_lshift_operand,
4698 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4699 integer_store_memory_operand): Likewise.
4700 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4701 (integer_store_memory_operand, read_only_operand,
4702 function_label_operand, borx_reg_operand,
4703 non_hard_reg_operand): Likewise.
4704 (eq_neq_comparison_operator): Delete unused operator.
4705 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4706 function_label_operand.
4707 (emit_move_sequence): Likewise.
4708
8dfb9f16
UB
47092011-04-16 Uros Bizjak <ubizjak@gmail.com>
4710
4711 * config/i386/sse.md (sseunpackmode): New mode attribute.
4712 (ssepackmode): Ditto.
4713 (vec_pack_trunc_<mode>): Macroize expander from
4714 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4715 (vec_unpacks_lo_<mode>): Macroize expander from
4716 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4717 (vec_unpacks_hi_<mode>): Macroize expander from
4718 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4719 (vec_unpacku_lo_<mode>): Macroize expander from
4720 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4721 (vec_unpacku_hi_<mode>): Macroize expander from
4722 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4723 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4724 ix86_expand_sse4_unpack.
4725 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4726
e7f23018
JH
47272011-04-16 Jan Hubicka <jh@suse.cz>
4728
4729 * cgraphbuild.c: Include ipa-inline.h.
4730 (reset_inline_failed): Use initialize_inline_failed.
4731 * cgraph.c: Include ipa-inline.h.
4732 (cgraph_create_node_1): Do not initialize estimated_growth.
4733 (initialize_inline_failed): More to ipa-inline-analysis.c
4734 (dump_cgraph_node): Do not dump inline flags.
4735 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4736 and disregard_inline_limits flags.
4737 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4738 time, size, estimated_growth.
8dfb9f16
UB
4739 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4740 Update.
e7f23018
JH
4741 * cgraphunit.c (cgraph_decide_is_function_needed): Use
4742 DECL_DISREGARD_INLINE_LIMITS.
4743 (cgraph_analyze_function): Do not initialize
4744 node->local.disregard_inline_limits.
4745 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4746 inlinable, versionable and disregard_inline_limits.
4747 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
4748 cgraph_check_inline_limits, cgraph_default_inline_p,
4749 cgraph_edge_badness, update_caller_keys, update_callee_keys,
4750 add_new_edges_to_heap): Update.
4751 (cgraph_decide_inlining_of_small_function): Update; set
4752 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
4753 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4754 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
4755 * ipa-inline.h (inline_summary): Add inlinable, versionable,
4756 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4757 time, size and estimated_growth parameters.
e7f23018
JH
4758 (estimate_edge_growth): Update.
4759 (initialize_inline_failed): Declare.
4760 * ipa-split.c: Include ipa-inline.h
4761 (execute_split_functions): Update.
4762 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4763 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4764 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4765 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4766 estimated_growth to INT_MIN.
4767 (inline_node_duplication_hook): Likewise.
4768 (dump_inline_summary): Dump new fields.
4769 (compute_inline_parameters): Update.
4770 (estimate_edge_time, estimate_time_after_inlining,
4771 estimate_size_after_inlining, estimate_growth, inline_read_summary,
4772 inline_write_summary):
4773 (initialize_inline_failed): Move here from cgraph.c.
4774 * tree-sra.c: Include ipa-inline.h.
4775 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
4776 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4777 ipa-inline.h.
e7f23018 4778
e81b8564
UB
47792011-04-16 Uros Bizjak <ubizjak@gmail.com>
4780
4781 * config/i386/sse.md (V16): New mode iterator.
4782 (VI1, VI8): Ditto.
4783 (AVXMODEQI, AVXMODEDI): Remove.
4784 (sse2, sse3): New mode attribute.
4785 (mov<mode>): Use V16 mode iterator.
4786 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4787 (push<mode>1): Use V16 mode iterator.
4788 (movmisalign<mode>): Ditto.
4789 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4790 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4791 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4792 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4793 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4794 avx_movdqu<avxmodesuffix>.
4795 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4796 *avx_movdqu<avxmodesuffix>.
4797 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4798 avx_lddqu<avxmodesuffix>.
4799 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4800 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4801 avx_movnt<AVXMODEDI:mode>.
4802 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4803 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4804
4743d438
BS
48052011-04-16 Bernd Schmidt <bernds@codesourcery.com>
4806
4807 PR target/48629
4808 * haifa-sched.c (prune_ready_list, schedule_block): Use
4809 sched_pressure_p rather than flag_sched_pressure.
4810
748f7574 48112011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
4812
4813 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4814 cgraph_get_node instead of cgraph_get_create_node.
4815
2ba172e0
JJ
48162011-04-15 Jakub Jelinek <jakub@redhat.com>
4817
4818 * cfgexpand.c (expand_debug_expr): Use
4819 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4820
63d2a353
MM
48212011-04-15 Michael Matz <matz@suse.de>
4822
4823 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4824 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4825 * function.c (gimplify_parameters): Ditto.
4826 * gimplify.c (gimplify_vla_decl): Ditto.
4827
4828 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4829 (gimple_call_set_alloca_for_var): New inline function.
4830 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
4831 * gimple.c (gimple_build_call_from_tree): Remember
4832 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
4833 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4834
4835 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4836 calls if they were for VLA objects.
4837
dee74c34
MJ
48382011-04-15 Martin Jambor <mjambor@suse.cz>
4839
4840 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4841 of ADR_EXPRs.
4842
8e5837bc
MJ
48432011-04-15 Martin Jambor <mjambor@suse.cz>
4844
4845 PR middle-end/48601
4846 * tree-emutls.c (lower_emutls_function_body): Call
4847 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
4848 result is non-NULL.
4849
0dc33c3c
NP
48502011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
4851
4852 * c-decl.c (detect_field_duplicates): Call
4853 objc_detect_field_duplicates instead of objc_get_interface_ivars.
4854
edcdea5b
NF
48552011-04-15 Nathan Froyd <froydnj@codesourcery.com>
4856
4857 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4858 * gimple.c (gimple_asm_clobbers_memory_p): Define.
4859 * ipa-pure-const.c (check_stmt): Call it.
4860 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4861
8456558d
RG
48622011-04-15 Richard Guenther <rguenther@suse.de>
4863
4864 PR tree-optimization/48290
4865 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4866 Properly decide inhibiting propagation based on the valueized
4867 operand. Do loop-closed SSA form preserving here ...
4868 (init_copy_prop): ... not here.
4869
266446be
L
48702011-04-15 H.J. Lu <hongjiu.lu@intel.com>
4871
4872 PR target/48612
4873 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4874 (*ieee_smax<mode>3): Likewise.
4875
17465c6e
AK
48762011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4877
4878 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4879 Replace match_operand with match_dup for the third operand in
4880 these expanders.
4881
bce204e5
MK
48822011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4883
4884 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4885 to track processing of conditionals. Update all callers.
4886 (try_combine, simplify_if_then_else): Update.
4887
3162fdf4
MK
48882011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4889
4890 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4891 -fsched-pressure.
4892
79002a57 48932011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 4894
79002a57
GJL
4895 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4896 instead of match_operand for operand 3.
4897
4fd3a105
RS
48982011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
4899
4900 * recog.h (insn_operand_data): Add an "allows_mem" field.
4901 * genoutput.c (output_operand_data): Initialize it.
4902 * optabs.c (maybe_legitimize_operand_same_code): New function.
4903 (maybe_legitimize_operand): Use it when matching the original
4904 op->value.
4905
ad19c4be
EB
49062011-04-15 Eric Botcazou <ebotcazou@adacore.com>
4907
4908 * gimplify.c: Fix issues in comments throughout.
4909 (voidify_wrapper_expr): Fix long line.
4910 (build_stack_save_restore): Likewise.
4911 (gimplify_loop_expr): Likewise.
4912 (gimplify_compound_lval): Likewise.
4913 (gimplify_init_ctor_eval): Likewise.
4914 (gimplify_modify_expr_rhs): Likewise.
4915 (omp_notice_threadprivate_variable): Likewise.
4916
b25aa0e8 49172011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 4918
b25aa0e8
EB
4919 * cfgexpand.c (expand_call_stmt): Convert the function type to the
4920 original one if this is not a builtin function.
e7925582 4921
09db7afe
JJ
49222011-04-14 Jakub Jelinek <jakub@redhat.com>
4923
4924 PR target/48605
4925 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4926 offset it as needed based on top 2 bits in operands[3], change
4927 MEM mode to SFmode and mask those 2 bits away from operands[3].
4928
c59633d9
NP
49292011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4930
4931 * c-parser.c (c_parser_objc_protocol_definition): Updated for
4932 change from objc_declare_protocols() to objc_declare_protocol().
4933
5e60198b
UB
49342011-04-14 Uros Bizjak <ubizjak@gmail.com>
4935
4936 * config/i386/sse.md (sse4_1): New mode attribute.
4937 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4938 avx_blend<ssemodesuffix><avxmodesuffix> and
4939 sse4_1_blend<ssemodesuffix> using VF mode iterator.
4940 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4941 avx_blendv<ssemodesuffix><avxmodesuffix> and
4942 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4943 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4944 avx_dp<ssemodesuffix><avxmodesuffix> and
4945 sse4_1_dp<ssemodesuffix> using VF mode iterator.
4946 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4947 (sse4_1_packusdw): Merge with *avx_packusdw.
4948 (sse4_1_pblendvb): Merge with *avx_pblendvb.
4949 (sse4_1_pblendw): Merge with *avx_pblendw.
4950 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4951 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4952 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4953 VF mode iterator.
4954 (sse4_1_round<ssescalarmodesuffix>): Merge with
4955 *avx_round<ssescalarmodesuffix>.
4956 (aesenc): Merge with *avx_aesenc.
4957 (aesenclast): Merge with *avx_aesenclast.
4958 (aesdec): Merge with *avx_aesdec.
4959 (aesdeclast): Merge with *avx_aesdeclast.
4960 (pclmulqdq): Merge with *pclmulqdq.
4961 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4962 New predicate.
4963 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4964
6f197850
L
49652011-04-14 H.J. Lu <hongjiu.lu@intel.com>
4966
4967 PR middle-end/48608
4968 * cfgexpand.c (get_decl_align_unit): Renamed to ...
4969 (align_local_variable): This. Update DECL_ALIGN.
4970 (add_stack_var): Updated.
4971 (expand_one_stack_var): Likewise.
4972
4a5ba3ed
RG
49732011-04-14 Richard Guenther <rguenther@suse.de>
4974
4975 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4976 Remove.
4977 (dse_initialize_block_local_data, dse_leave_block,
4978 record_voperand_set, get_stmt_uid): Likewise.
4979 (dse_possible_dead_store_p): Allow any kind of killing stmt.
4980 (dse_optimize_stmt): Remove voperand set handling code.
4981 Simplify and improve to handle any kind of killing stmt.
4982 (dse_record_phi): Remove.
4983 (dse_enter_block): Simplify.
4984 (tree_ssa_dse): Likewise.
4985 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4986
10a5dd5d
JH
49872011-04-14 Jan Hubicka <jh@suse.cz>
4988
4989 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4990 * cgraph.h (struct inline_summary): Move to ipa-inline.h
4991 (cgraph_local_info): Remove inline_summary.
4992 * ipa-cp.c: Include ipa-inline.h.
4993 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4994 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4995 accesor.
4996 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4997 (input_overwrite_node): Do not set inline summary.
4998 (input_node): Do not stream inline summary.
4999 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5000 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5001 growth; we do not have inline parameters computed for that anyway.
5002 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5003 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5004 (inline_summary_t): New type and VECtor.
5005 (debug_inline_summary, dump_inline_summaries): Declare.
5006 (inline_summary): Use VOCtor.
5007 (estimate_edge_growth): Kill hack computing call stmt size directly.
5008 * lto-section-in.c (lto_section_name): Add inline section.
5009 * ipa-inline-analysis.c: Include lto-streamer.h
5010 (node_removal_hook_holder, node_duplication_hook_holder): New holders
5011 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5012 (inline_summary_vec): Define.
5013 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5014 dump_inline_summaries): New functions.
5e60198b
UB
5015 (estimate_function_body_sizes): Properly compute size/time of outgoing
5016 calls.
5017 (compute_inline_parameters): Alloc inline_summary; do not compute
5018 size/time of incomming calls.
10a5dd5d
JH
5019 (estimate_edge_time): Avoid missing time summary hack.
5020 (inline_read_summary): Read inline summary info.
5021 (inline_write_summary): Write inline summary info.
5022 (inline_free_summary): Free all hooks and inline summary vector.
5023 * lto-streamer.h: Add LTO_section_inline_summary section.
5024 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5025 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5026
b602d918
RS
50272011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5028
5029 * tree-vectorizer.h (vect_strided_store_supported): Add a
5030 HOST_WIDE_INT argument.
5031 (vect_strided_load_supported): Likewise.
5032 (vect_permute_store_chain): Return void.
5033 (vect_transform_strided_load): Likewise.
5034 (vect_permute_load_chain): Delete.
5035 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5036 count argument. Check that the count is a power of two.
5037 (vect_strided_load_supported): Likewise.
5038 (vect_permute_store_chain): Return void. Update after above changes.
5039 Assert that the access is supported.
5040 (vect_permute_load_chain): Likewise.
5041 (vect_transform_strided_load): Return void.
5042 * tree-vect-stmts.c (vectorizable_store): Update calls after
5043 above interface changes.
5044 (vectorizable_load): Likewise.
5045 (vect_analyze_stmt): Don't check for strided powers of two here.
5046
ab4472fa
RG
50472011-04-14 Richard Guenther <rguenther@suse.de>
5048
5049 PR tree-optimization/48590
5050 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5051 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5052 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5053 BUILT_IN_STACK_SAVE.
5054 * tree-ssa-dce.c (propagate_necessity): Handle
5055 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5056
32dabdaf
NP
50572011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5058
5059 * c-parser.c (c_parser_objc_class_declaration): Updated call to
5060 objc_declare_class.
5061
daade206
RG
50622011-04-14 Richard Guenther <rguenther@suse.de>
5063
5064 * tree.h (get_object_alignment_1): Declare.
5065 * builtins.c (get_object_alignment_1): Split out worker from ...
5066 (get_object_alignment): ... here.
5067 * fold-const.c (get_pointer_modulus_and_residue): Use
5068 get_object_alignment_1.
5069
920e8172
RS
50702011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5071
5072 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5073 type parameter.
5074 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5075 parameter. Generalise code to handle arrays as well as vectors.
5076 (vect_setup_realignment): Update accordingly.
5077 * tree-vect-stmts.c (vectorizable_store): Likewise.
5078 (vectorizable_load): Likewise.
5079
5ce1ee7f
RS
50802011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5081
5082 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5083 within the per-copy loop.
5084
6438fe33 50852011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
5086
5087 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5088 in the dump file.
5089
6438fe33 50902011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
5091
5092 * doc/options.texi (Negative): Explicitly mention that the
5093 Negative chain must be circular.
5094
61e46a7d
NF
50952011-04-14 Nathan Froyd <froydnj@codesourcery.com>
5096
5097 * function.h (block_chainon): Declare.
5098 * function.c (block_chainon): Define.
5099
43ea6502 51002011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 5101 Eric Weddington <eric.weddington@atmel.com>
748f7574 5102 Georg-Johann Lay <avr@gjlay.de>
5e60198b 5103
f60c2554 5104 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
5105 New Includes
5106 (avr_init_builtins, avr_expand_builtin,
5107 avr_expand_delay_cycles, avr_expand_unop_builtin,
5108 avr_expand_binop_builtin ): New functions.
5109 (avr_builtin_id): New enum
5110 (struct avr_builtin_description): New struct
5111 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5112 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 5113
43ea6502 5114 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 5115 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
5116 UNSPECV_DELAY_CYCLES): new enumeration values
5117 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5118 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5119 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5120 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5121 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5122 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5123 "fmulsu"): New insns
5e60198b 5124
43ea6502
AS
5125 * config/avr/avr-c.c: fix line endings
5126 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5127 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5128 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5129 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5130 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 5131
43ea6502
AS
5132 * doc/extend.texi (AVR Built-in Functions): New node
5133 (Target Builtins): Add documentation of AVR
5134 built-in functions.
5135
8a9b55f3
GJL
51362011-04-14 Georg-Johann Lay <avr@gjlay.de>
5137
5138 PR target/44643
5139 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5140 alone. Error if non-const data has attribute progmem.
5141
94bd1825
NF
51422011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5143
5144 * tree.h (struct tree_constructor): Include tree_typed instead of
5145 tree_common.
5146 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5147 TS_TYPED instead of TS_COMMON.
5148
5e60198b 51492011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
5150
5151 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5152 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5153 (sse2_psadbw): Merge with *avx_psadbw.
5154 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5155 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5156 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5157 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5158 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5159 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5160 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5161 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5162 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5163 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5164 (ssse3_palignrti): Merge with *avx_palignrti.
5165
4b1a4694
NF
51662011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5167
5168 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5169 * tree-ssanames.c (fini_ssanames): VEC_free it.
5170 (make_ssa_name_fn): Update for VECness of free_ssanames.
5171 (release_ssa_name, release_dead_ssa_names): Likewise.
5172 * tree.h (struct tree_ssa_name): Include tree_typed instead of
5173 tree_common.
5174 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5175 TS_TYPED instead of TS_COMMON.
5176
4da3b811
NF
51772011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5178
5179 * postreload-gcse.c (gcse_after_reload_main): Add calls to
5180 statistics_counter_event.
5181 * tree-ssa-copyrename.c (stats): Define.
5182 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
5183 statistics_counter_event.
5184 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5185 (bswap_stats, widen_mul_stats): Define.
5186 (insert_reciprocals): Increment rdivs_inserted.
5187 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
5188 rfuncs_inserted. Add calls to statistics_counter_event.
5189 (execute_cse_sincos_1): Increment inserted.
5190 (execute_cse_sincos): Zeroize sincos_stats. Add call to
5191 statistics_counter_event.
5192 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
5193 of bswap_stats. Add calls to statistics_counter_event.
5194 (convert_mult_to_widen): Increment widen_mults_inserted.
5195 (convert_plusminus_to_widen): Increment maccs_inserted.
5196 (convert_mult_to_fma): Increment fmas_inserted.
5197 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
5198 calls to statistics_counter_event.
5199
89fa552a
VM
52002011-04-13 Vladimir Makarov <vmakarov@redhat.com>
5201
5202 PR rtl-optimization/48455
5203 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5204 `temp_costs->mem_cost'.
5205
03dfc36d
JH
52062011-04-13 Jan Hubicka <jh@suse.cz>
5207
5208 * ipa-inline.h: New file.
5209 * ipa-inline-analysis.c: New file. Broken out of ...
5210 * ipa-inline.c: ... this file; update toplevel comment;
5211 include ipa-inline.h
5212 (inline_summary): Move to ipa-inline.h
5213 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5214 ipa-inline-analysis.c.
7d4f8d02
EB
5215 (cgraph_estimate_time_after_inlining): Rename to
5216 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
5217 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5218 to estimate_edge_growth.
5219 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5220 rename to estimate_size_after_inlining.
5221 (cgraph_mark_inline_edge): Update for new naming convention.
5222 (cgraph_check_inline_limits): Likewise.
5223 (cgraph_edge_badness): Likewise.
5224 (cgraph_decide_recursive_inlining): Likewise.
5225 (cgraph_decide_inlining_of_small_functions): Likewise.
5226 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
5227 (cgraph_estimate_growth): Rename to estimate_growth; move to
5228 ipa-inline-analysis.c.
03dfc36d
JH
5229 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5230 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5231 (compute_inline_parameters): Likewise.
5232 (compute_inline_parameters_for_current): Likewise.
5233 (pass_inline_parameters): Likewise.
5234 (inline_indirect_intraprocedural_analysis): Likewise.
5235 (analyze_function): Rename to inline_analyze_function; likewise.
5236 (add_new_function): Move to ipa-inline-analysis.c.
5237 (inline_generate_summary): Likewise.
5238 (inline_read_summary): Likewise.
5239 (inline_write_summary): Likewise.
5240 * Makefile.in (ipa-inline-analysis.c): New file.
5241
7673c962
RO
52422011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5243
5244 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5245 * configure: Regenerate.
5246
9698252f
NF
52472011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5248
5249 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5250 instead of tree_common.
5251 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5252 Likewise.
5253 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5254 TS_TYPED rather than TS_COMMON.
5255 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5256
3a7bfdd5
GJL
52572011-04-01 Georg-Johann Lay <avr@gjlay.de>
5258
5259 PR target/45263
86d83530
GJL
5260 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5261 r20 around calls of __tablejump_elpm__
3a7bfdd5 5262
20790697
JJ
52632011-04-13 Jakub Jelinek <jakub@redhat.com>
5264
5265 PR middle-end/48591
5266 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5267 NULL.
5268 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5269
094d7661
BS
52702011-04-13 Bernd Schmidt <bernds@codesourcery.com>
5271
5272 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5273 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5274 (cfi_vec): New typedef.
5275 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5276 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5277 (cie_cfi_vec): New static variable.
5278 (cie_cfi_head): Delete.
5279 (add_cfi): Accept a cfi_vec * as first argument. All callers and
5280 declaration changed. Use vector rather than list operations.
5281 (new_cfi): Don't initialize the dw_cfi_next field.
5282 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5283 rather than list operations.
5284 (lookup_cfa): Use vector rather than list operations.
5285 (output_cfis): New argument upto. Accept a cfi_vec rather than
5286 a dw_cfi_ref list head as argument. All callers changed.
5287 Iterate over the vector using upto as a maximum index.
5288 (output_all_cfis): New static function.
5289 (output_fde): Use vector rather than list operations. Use the
5290 new upto argument for output_cfis rather than manipulating a
5291 list.
5292 (dwarf2out_begin_prologue): Change initializations to match
5293 new struct members.
5294 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5295 from the vector length rather than searching for the end of a list.
5296 Use output_all_cfis.
5297 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5298
673a5740
NC
52992011-04-13 Nick Clifton <nickc@redhat.com>
5300
5301 * config/rx/rx.md (movmemsi): Do not use this pattern when
5302 volatile pointers are involved.
5303
1ee8b298
UB
53042011-04-13 Uros Bizjak <ubizjak@gmail.com>
5305
5306 * config/i386/sse.md (pinsrbits): Remove.
5307 (sse2_packsswb): Merge with *avx_packsswb.
5308 (sse2_packssdw): Merge with *avx_packssdw.
5309 (sse2_packuswb): Merge with *avx_packuswb.
5310 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5311 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5312 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5313 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5314 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5315 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5316 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5317 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5318 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5319 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5320 (sse2_loadld): Merge with *avx_loadld.
5321 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5322 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5323 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5324 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5325 (vec_concatv2di): Merge with *vec_concatv2di_avx.
5326
81f653d6
NF
53272011-04-12 Nathan Froyd <froydnj@codesourcery.com>
5328
5329 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5330 calling TREE_CHAIN.
5331 * print-tree.c (print_node): Likewise.
5332 * tree-inline.c (copy_tree_r): Likewise.
5333 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5334 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5335 instead of TS_COMMON.
5336 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5337 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5338 (copy_node_stat): Zero TREE_CHAIN only if necessary.
5339 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5340 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5341 ...and these...
5342 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5343 * tree.h: ...here.
5344 (TREE_CHAIN): Check for a TS_COMMON structure.
5345 (TREE_TYPE): Check for a TS_TYPED structure.
5346
748f7574 53472011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
5348
5349 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5350 cgraph_get_create_node instead of cgraph_node.
5351
eb345401
NP
53522011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5353
5354 * c-parser.c (c_parser_initelt): Updated call to
5355 objc_build_message_expr.
5356 (c_parser_postfix_expression): Likewise.
5357
a6c46762
KT
53582011-04-12 Kai Tietz <ktietz@redhat.com>
5359
5360 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5361 MASK_MS_BITFIELD_LAYOUT bit.
5362
b4ccfed9
JJ
53632011-04-12 Jakub Jelinek <jakub@redhat.com>
5364
5365 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5366 assert it is always true.
5367 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5368 moves.
5369
0d8a2528
NP
53702011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5371
5372 * c-parser.c (c_lex_one_token): Rewritten conditional used when
5373 compiling Objective-C to be more efficient.
5374
06bd234a
AF
53752011-04-12 Axel Freyn <axel-freyn@gmx.de>
5376
5377 * opts-common.c (decode_cmdline_options_to_array): Remove variable
5378 argv_copied.
5379
28569ac3
RS
53802011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5381
5382 * recog.h, genoutput.c, optabs.c: Revert last patch.
5383
ae59e00d
RR
53842011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5385
81b1e7eb
UB
5386 PR target/48090
5387 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 5388
cff1b7e0
RS
53892011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5390
5391 * recog.h (insn_operand_data): Add an "allows_mem" field.
5392 * genoutput.c (output_operand_data): Initialize it.
5393 * optabs.c (maybe_legitimize_operand_same_code): New function.
5394 (maybe_legitimize_operand): Use it when matching the original
5395 op->value.
5396
77059241
RS
53972011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5398
5399 * genpreds.c (process_define_predicate): Move most processing
5400 to gensupport.c. Continue to validate the expression.
5401 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5402 (process_define_predicate): Move processing to gensupport.c.
5403 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5404 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5405 (compute_predicate_codes): Moved from genrecog.c. Add lineno
5406 argument.
5407 (valid_predicate_name_p): New function, split out from old
5408 genpreds.c:process_define_predicate.
5409 (process_define_predicate): New function, combining code from
5410 old genpreds.c and genrecog.c functions.
5411 (process_rtx): Call it for DEFINE_PREDICATE and
5412 DEFINE_SPECIAL_PREDICATE.
5413
6308e208
RS
54142011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5415
5416 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5417 size of a '%A' memory reference.
5418 (T_DREG, T_QREG): New neon_builtin_type_bits.
5419 (arm_init_neon_builtins): Assert that the load and store operands
5420 are neon_struct_operands.
5421 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5422 (NEON_ARG_MEMORY): New builtin_arg.
5423 (neon_dereference_pointer): New function.
5424 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5425 Handle NEON_ARG_MEMORY.
5426 (arm_expand_neon_builtin): Update after above interface changes.
5427 Use NEON_ARG_MEMORY for loads and stores.
5428 * config/arm/predicates.md (neon_struct_operand): New predicate.
5429 * config/arm/iterators.md (V_two_elem): Tweak formatting.
5430 (V_three_elem): Use BLKmode for accesses that have no associated mode.
5431 (V_four_elem): Tweak formatting.
5432 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5433 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5434 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5435 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5436 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5437 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5438 (neon_vst4<mode>): Replace pointer operand with a memory operand.
5439 Use %A in the output template.
5440 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5441 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5442 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5443 the width of the memory access. Remove post-increment.
5444 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5445
e5db8f2f
NC
54462011-04-12 Nick Clifton <nickc@redhat.com>
5447
5448 * config/v850/v850.c (expand_prologue): Do not use the CALLT
5449 instruction for interrupt handlers if the target is the basic V850
5450 architecture.
5451 (expand_epilogue): Likewise.
5452
74f091d6
JJ
54532011-04-12 Jakub Jelinek <jakub@redhat.com>
5454
5455 PR rtl-optimization/48549
5456 * combine.c (propagate_for_debug): Also stop after BB_END of
5457 this_basic_block. Process LAST and just stop processing after it.
5458 (combine_instructions): If last_combined_insn has been deleted,
5459 set last_combined_insn to its PREV_INSN.
5460
f20ca725
RG
54612011-04-12 Richard Guenther <rguenther@suse.de>
5462
5463 PR tree-optimization/46076
5464 * gimple.h (struct gimple_statement_call): Add fntype field.
5465 (gimple_call_fntype): Adjust.
5466 (gimple_call_set_fntype): New function.
5467 * gimple.c (gimple_build_call_1): Set the call function type.
5468 * gimplify.c (gimplify_call_expr): Preserve the function
5469 type the frontend used for the call.
5470 (gimplify_modify_expr): Likewise.
5471 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5472 function type.
5473 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5474 function type.
5475 * tree-ssa.c (useless_type_conversion_p): Function pointer
5476 conversions are useless.
5477
a358e188
MJ
54782011-04-12 Martin Jambor <mjambor@suse.cz>
5479
5480 * cgraph.h (cgraph_node): Remove function declaration.
5481 (cgraph_create_node): Declare.
5482 (cgraph_get_create_node): Likewise.
5483 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5484 Updated all callers.
5485 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5486 the decl does not already exist. Call cgraph_get_create_node instead
5487 of cgraph_node.
5488 (cgraph_get_create_node): New function.
5489 (cgraph_same_body_alias): Update comment.
5490 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5491 assert it does not return NULL.
5492 (cgraph_update_edges_for_call_stmt): Likewise.
5493 (cgraph_clone_edge): Likewise.
5494 (cgraph_create_virtual_clone): Likewise.
5495 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5496 instead of cgraph_node.
5497 (cgraph_add_new_function): Call cgraph_create_node or
5498 cgraph_get_create_node instead of cgraph_node.
5499 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5500 instead of cgraph_node.
5501 (record_eh_tables): Likewise.
5502 (mark_address): Likewise.
5503 (mark_load): Likewise.
5504 (build_cgraph_edges): Call cgraph_get_create_node instead
5505 of cgraph_node.
5506 (rebuild_cgraph_edges): Likewise.
5507 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5508 instead of cgraph_node.
5509 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5510 cgraph_node.
5511 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5512 cgraph_create_node instead of cgraph_node.
5513 * c-decl.c (finish_function): Call cgraph_get_create_node instead
5514 of cgraph_node.
5515 * lto-cgraph.c (input_node): Likewise.
5516 * lto-streamer-in.c (input_function): Likewise.
5517 * varasm.c (mark_decl_referenced): Likewise.
5518 (assemble_alias): Likewise.
5519
fe660d7b
MJ
55202011-04-12 Martin Jambor <mjambor@suse.cz>
5521
5522 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5523 instead of cgraph_node and assert it does not return NULL.
5524 * lto-streamer-in.c (lto_read_body): Likewise.
5525 * omp-low.c (new_omp_context): Likewise.
5526 (create_task_copyfn): Likewise.
5527 * tree-emutls.c (lower_emutls_function_body): Likewise.
5528 * matrix-reorg.c (transform_allocation_sites): Likewise.
5529
bae5cddf
JJ
55302011-04-12 Jakub Jelinek <jakub@redhat.com>
5531
5532 PR c/48552
5533 * c-typeck.c (build_asm_expr): Error out on attempts to use
5534 void type outputs or inputs for constraints that allow reg or
5535 don't allow memory.
5536
06eb52ca
CLT
55372011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
5538 Richard Earnshaw <rearnsha@arm.com>
5539
5540 PR target/48250
5541 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5542 to use sign-magnitude offsets. Reject unsupported unaligned
5543 cases. Add detailed description in comments.
5544 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5545 condition from TARGET_32BIT to TARGET_ARM.
5546
648a616b
NF
55472011-04-11 Nathan Froyd <froydnj@codesourcery.com>
5548
5549 * tree.h (struct typed_tree): New.
5550 (struct tree_common): Include it instead of tree_base.
5551 (TREE_TYPE): Update for new location of type field.
5552 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5553 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5554 (union tree_node): Add typed field.
5555 * treestruct.def (TS_TYPED): New.
5556 * lto-streamer.c (check_handled_ts_structures): Handle it.
5557 * tree.c (MARK_TS_TYPED): New macro.
5558 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5559
1e6d1da0
EB
55602011-04-11 Eric Botcazou <ebotcazou@adacore.com>
5561
5562 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5563 (force_nonfallthru): Do not alter the loop nest if no basic block
5564 was created.
5565
55662011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
5567
5568 * config/i386/sse.md (VI): New mode iterator.
5569 (SSEMODEI): Remove.
5570 (AVX256MODEI): Ditto.
5571 (AVXMODEF4P): Ditto.
5572 (avxvecpsmode): Ditto.
5573 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
5574 (sse2_andnot<mode>3): New expander.
5575 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5576 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
5577 (<any_logic:code><mode>3): Use VI mode iterator.
5578 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5579 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
5580 (*andnottf3): Handle AVX three-operand constraints.
5581 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5582
b1372d5d 55832011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 5584 Robert Millan <rmh@gnu.org>
b1372d5d
JM
5585
5586 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5587 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5588 GNU_USER_DYNAMIC_LINKER64): Define.
5589 (REG_NAME): Don't undefine.
5590 (MD_UNWIND_SUPPORT): Undefine.
5591 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5592 (REG_NAME): Don't undefine.
5593 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 5594 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 5595
761c0c6e
JM
55962011-04-11 Joseph Myers <joseph@codesourcery.com>
5597
5598 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5599 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5600
26e0228f
XDL
56012011-04-11 Xinliang David Li <davidxl@google.com>
5602
5603 * value-profile.c (check_ic_target): New function.
5604 (gimple_ic_transform): Sanity check indirect call target.
5605 * gimple-low.c (gimple_check_call_args): Interface change.
5606 (gimple_check_call_matching_types): New function.
5607 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
5608
56092011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
5610
5611 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5612 tree-pretty-print.h & realmpfr.h.
5613
a58dfa49
VM
56142011-04-11 Vladimir Makarov <vmakarov@redhat.com>
5615
5616 PR middle-end/48464
5617 * ira.c (setup_pressure_classes): Fix typo in loop condition.
5618 (setup_allocno_and_important_classes): Ditto.
5619
107fd1c1
JM
56202011-04-11 Joseph Myers <joseph@codesourcery.com>
5621
5622 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5623 GNU_USER_DYNAMIC_LINKER.
5624 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5625 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5626 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5627 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5628 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5629 GNU_USER_TARGET_OS_CPP_BUILTINS.
5630 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5631 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5632 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5633 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5634 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5635 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5636 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5637 GNU_USER_TARGET_OS_CPP_BUILTINS.
5638 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5639 GNU_USER_DYNAMIC_LINKER.
5640 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5641 GNU_USER_TARGET_OS_CPP_BUILTINS.
5642 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5643 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5644 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5645 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5646 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5647 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5648 GNU_USER_DYNAMIC_LINKER64): Remove.
5649 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5650 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5651 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5652 GNU_USER_DYNAMIC_LINKER.
5653 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5654 GNU_USER_TARGET_OS_CPP_BUILTINS.
5655 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5656 GNU_USER_TARGET_OS_CPP_BUILTINS.
5657 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5658 to GNU_USER_TARGET_OS_CPP_BUILTINS.
5659 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5660 GNU_USER_TARGET_OS_CPP_BUILTINS.
5661 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5662 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5663 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5664 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5665 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5666 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5667 GNU_USER_DYNAMIC_LINKER.
5668 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5669 GNU_USER_TARGET_OS_CPP_BUILTINS.
5670 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5671 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5672 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5673 GNU_USER_DYNAMIC_LINKER.
5674 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5675 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5676 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5677 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5678 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5679 GNU_USER_DYNAMIC_LINKER.
5680 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5681 GNU_USER_DYNAMIC_LINKERN32.
5682 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5683 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
5684 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
5685 GNU_USER_DYNAMIC_LINKER32.
5686 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5687 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5688 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5689 GNU_USER_DYNAMIC_LINKER.
5690 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5691 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5692 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5693 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5694 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
5695 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5696 GNU_USER_DYNAMIC_LINKER32.
5697 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5698 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5699 GNU_USER_DYNAMIC_LINKER.
5700 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5701 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5702 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5703 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
5704 GNU_USER_DYNAMIC_LINKER64.
5705 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5706 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5707 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5708 GNU_USER_DYNAMIC_LINKER.
5709 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5710 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5711 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5712 GNU_USER_DYNAMIC_LINKER.
5713 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5714 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5715 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5716 GNU_USER_DYNAMIC_LINKER32.
5717 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5718 GNU_USER_DYNAMIC_LINKER64.
5719 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5720 GNU_USER_DYNAMIC_LINKER64.
5721 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5722 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5723 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5724 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5725 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 5726
e24609cf
JM
57272011-04-11 Joseph Myers <joseph@codesourcery.com>
5728
5729 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
5730 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5731 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5732 GNU_USER_DYNAMIC_LINKER.
5733 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5734 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
5735 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5736 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5737 GNU_USER_DYNAMIC_LINKER64.
5738 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5739 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5740 GNU_USER_LINK_EMULATION.
5741 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5742 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5743 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5744 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5745 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5746 CPP_SPEC, CC1_SPEC): Remove.
5747 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5748 (GNU_USER_DYNAMIC_LINKER): Define.
5749 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5750 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5751 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5752 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5753 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5754 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5755 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5756 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5757 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5758 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5759 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5760 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5761 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5762 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5763 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5764 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5765 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5766 GNU_USER_DYNAMIC_LINKER.
5767 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5768 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5769 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5770 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5771 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5772 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
5773 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5774 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5775 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 5776 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 5777
b8ce4e94
KT
57782011-04-11 Kai Tietz <ktietz@redhat.com>
5779
5780 PR target/9601
5781 PR target/11772
5782 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5783 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5784 comment.
5785 (ix86_is_msabi_thiscall): Removed.
5786 (ix86_is_type_thiscall): Likewise.
5787 (ix86_get_callcvt): New function.
5788 (ix86_comp_type_attributes): Simplify check.
5789 (ix86_function_regparm): Use ix86_get_callcvt for calling
5790 convention attribute checks.
5791 (ix86_return_pops_args): Likewise.
5792 (ix86_static_chain): Likewise.
5793 (x86_this_parameter): Likewise.
5794 (x86_output_mi_thunk): Likewise.
5795 (ix86_function_type_abi): Optimize check for types without attributes.
5796 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5797 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5798 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5799 by flag-values.
5800 (IX86_BASE_CALLCVT): Helper macro.
5801 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5802 Use ix86_get_callcvt for calling convention attribute checks and avoid
5803 symbol-decoration for stdcall in TARGET_RTD case.
5804 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5805 Likewise.
5806 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5807 for declaration.
5808
798dd0ba
UB
58092011-04-11 Uros Bizjak <ubizjak@gmail.com>
5810
5811 * config/i386/sse.md (VI_128): New mode iterator.
5812 (VI12_128): Rename from SSEMODE12.
5813 (VI14_128): Rename from SSEMODE14.
5814 (VI124_128): New mode iterator.
5815 (VI24_128): Rename from SSEMODE248.
5816 (VI248_128): Rename from SSEMODE248.
5817 (SSEMODE124C8): Remove.
5818 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5819 (*sse2_<plusminus_insn><mode>3): Merge with
5820 *avx_<plusminus_insn><mode>3.
5821 (*mulv8hi3): Merge with *avx_mulv8hi3.
5822 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5823 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5824 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5825 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5826 (ashr<mode>3): Merge with *avx_ashr<mode>3.
5827 (lshr<mode>3): Merge with *avx_lshr<mode>3.
5828 (ashl<mode>3): Merge with *avx_ashl<mode>3.
5829 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5830 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5831 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5832 (*<smaxmin:code>v8hi3): Ditto.
5833 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5834 (*<smaxmin:code>v16qi3): Ditto.
5835 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5836 (*sse2_eq<mode>3): Ditto.
5837 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5838 (*sse2_gt<mode>3): Ditto.
5839 (vcondv2di): Split out of vcond<mode>.
5840 (vconduv2di): Split out of vcondu<mode>.
5841
956011be
RG
58422011-04-11 Richard Guenther <rguenther@suse.de>
5843
5844 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5845 before calling tree_low_cst.
5846
e6313a78
RG
58472011-04-11 Richard Guenther <rguenther@suse.de>
5848
5849 * stor-layout.c (layout_type): Compute all array index size operations
5850 in the original type.
5851 (initialize_sizetypes): Add comment.
5852 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5853
e69d7376
JM
58542011-04-11 Joseph Myers <joseph@codesourcery.com>
5855
5856 * common.opt (Tbss=, Tdata=, Ttext=): New options.
5857
9f9ebcdf
MJ
58582011-04-11 Martin Jambor <mjambor@suse.cz>
5859
5860 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5861 of cgraph_node, handle NULL return value.
5862 (cgraph_global_info): Likewise.
5863 (cgraph_rtl_info): Likewise.
5864 * tree-inline.c (estimate_num_insns): Likewise.
5865 * gimplify.c (unshare_body): Likewise.
5866 (unvisit_body): Likewise.
5867 (gimplify_body): Likewise.
5868 * predict.c (optimize_function_for_size_p): Likewise.
5869 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5870 (call_may_clobber_ref_p_1): Likewise.
5871 * varasm.c (function_section_1): Likewise.
5872 (assemble_start_function): Likewise.
5873
581985d7
MJ
58742011-04-11 Martin Jambor <mjambor@suse.cz>
5875
5876 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5877 of cgraph_node.
5878 * final.c (rest_of_clean_state): Likewise.
5879 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5880 * passes.c (pass_init_dump_file): Likewise.
5881 (execute_all_ipa_transforms): Likewise.
5882 (function_called_by_processed_nodes_p): Likewise.
5883 * predict.c (maybe_hot_frequency_p): Likewise.
5884 (probably_never_executed_bb_p): Likewise.
5885 (compute_function_frequency): Likewise.
5886 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5887 (unnest_nesting_tree_1): Likewise.
5888 (lower_nested_functions): Likewise.
5889 * tree-optimize.c (execute_fixup_cfg): Likewise.
5890 (tree_rest_of_compilation): Likewise.
5891 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5892 * tree-sra.c (ipa_early_sra): Likewise.
5893 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5894 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5895 * ipa.c (record_cdtor_fn): Likewise.
5896 * ipa-inline.c (cgraph_early_inlining): Likewise.
5897 (compute_inline_parameters_for_current): Likewise.
5898 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5899 * ipa-pure-const.c (local_pure_const): Likewise.
5900 * ipa-split.c (split_function): Likewise.
5901 (execute_split_functions): Likewise.
5902 * cgraphbuild.c (build_cgraph_edges): Likewise.
5903 (rebuild_cgraph_edges): Likewise.
5904 (cgraph_rebuild_references): Likewise.
5905 (remove_cgraph_callee_edges): Likewise.
5906 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5907 (verify_cgraph_node): Likewise.
5908 (cgraph_analyze_functions): Likewise.
5909 (cgraph_preserve_function_body_p): Likewise.
5910 (save_inline_function_body): Likewise.
5911 (save_inline_function_body): Likewise.
5912 * tree-inline.c (copy_bb): Likewise.
5913 (optimize_inline_calls): Likewise.
5914
57dbdc5a
MJ
59152011-04-11 Martin Jambor <mjambor@suse.cz>
5916
5917 PR tree-optimization/48195
5918 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5919 ipa_check_create_edge_args.
5920 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5921 ipa_check_create_edge_args.
5922 * ipa-inline.c (inline_generate_summary): Do not call
5923 ipa_check_create_node_params and ipa_check_create_edge_args.
5924 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5925 ipa_check_create_edge_args.
5926
d108e679
AS
59272011-04-09 Anatoly Sokolov <aesok@post.ru>
5928
5929 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5930 instead of loop.
5931 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5932 * function.c (record_hard_reg_sets): Likewise.
5933 * ira.c (compute_regs_asm_clobbered): Likewise.
5934 * sched-deps.c (sched_analyze_1): Likewise.
5935 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5936
3411bc59
XDL
59372011-04-09 Xinliang David Li <davidxl@google.com>
5938
5939 PR tree-optimization/PR48484
5940 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5941 has_valid_pred lazily
5942
b365495a
DS
59432011-04-09 Duncan Sands <baldrick@free.fr>
5944
5945 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5946
68bc509a
EB
59472011-04-08 Eric Botcazou <ebotcazou@adacore.com>
5948
5949 * combine.c (combine_validate_cost): Adjust comments. Set registered
5950 cost of I0 to zero at the end, if any.
5951
041e059f
XDL
59522011-04-08 Xinliang David Li <davidxl@google.com>
5953
68bc509a
EB
5954 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5955 to insane profile data.
041e059f 5956
444b3995
XDL
59572011-04-08 Xinliang David Li <davidxl@google.com>
5958
5959 * ipa-cp.c (ipcp_update_profiling): Correct
5960 negative scale factor due to insane profile data.
5961
6a801cf2
XDL
59622011-04-08 Xinliang David Li <davidxl@google.com>
5963
5964 * final.c (dump_basic_block_info): New function.
5965 (final): Dump basic block.
5966 (final_scan_insn): Remove old dump.
5967
d5f3624e
SK
59682011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
5969
68bc509a
EB
5970 PR target/47829
5971 * config.gcc (i386-*-freebsd): Disable unwind table generation for
5972 crtbegin/crtend.
d5f3624e 5973
42821aff
MM
59742011-04-08 Michael Matz <matz@suse.de>
5975
5976 PR middle-end/48389
5977 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5978 functions.
5979 (rebuild_jump_labels): Call rebuild_jump_labels_1.
5980 * rtl.h (rebuild_jump_labels_chain): Declare.
5981 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5982 insns inserted on edges.
5983
ad7be009
JM
59842011-04-08 Joseph Myers <joseph@codesourcery.com>
5985
5986 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5987 * config/arm/arm-arches.def: New.
5988 * config/arm/arm-opts.h: New.
5989 * config/arm/genopt.sh: New.
5990 * config/arm/arm-tables.opt: New (generated).
5991 * config/arm/arm.c (arm_handle_option, arm_target_help,
5992 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5993 (all_architectures): Get most table contents from arm-arches.def.
5994 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5995 arm_selected_tune here.
5996 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5997 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5998 (march=, mcpu=, mtune=): Use Enum and Var.
5999 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6000 (arm.o): Update dependencies.
ecbb6fb7 6001
42821aff 60022011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
6003
6004 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6005 of header_file.
6006 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6007 (write_typed_alloc_defns): Likewise.
6008 (main): Calls write_typed_alloc_defns with output_header.
6009
8d189b3f
VM
60102011-04-08 Vladimir Makarov <vmakarov@redhat.com>
6011
68bc509a 6012 PR inline-asm/48435
8d189b3f
VM
6013 * ira-color.c (setup_profitable_hard_regs): Add comments.
6014 Don't take prohibited hard regs into account.
6015 (setup_conflict_profitable_regs): Rename to
6016 get_conflict_profitable_regs.
6017 (check_hard_reg_p): Check prohibited hard regs.
6018
44f370bf
NF
60192011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6020
6021 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6022 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6023 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6024
483d7ad3
JDA
60252011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6026
6027 PR target/48366
6028 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 6029 move from floating point to shift amount register.
483d7ad3
JDA
6030 (emit_move_sequence): Remove secondary reload support for floating
6031 point to shift amount amount register copies.
6032 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6033 amount register copies.
6034 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6035 register, return false if mode isn't a scalar integer mode.
6036 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6037
97e03fa1
RG
60382011-04-08 Richard Guenther <rguenther@suse.de>
6039
6040 * gimple.c (gimple_call_flags): Remove kludge.
6041
9d40778b
AM
60422011-04-08 Alexander Monakov <amonakov@ispras.ru>
6043
6044 * sel-sched.c (sel_region_init): Move call to
6045 sel_setup_region_sched_flags after setup_current_loop_nest.
6046
19ac7892
AB
60472011-04-08 Andrey Belevantsev <abel@ispras.ru>
6048
6049 PR rtl-optimization/48272
19ac7892
AB
6050 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6051 init_insn_reg_pressure_info. Adjust a caller.
6052 * sched-int.h (init_insn_reg_pressure_info): Declare.
6053 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6054 when sched-pressure is enabled.
6055
0f8c63cc
RG
60562011-04-08 Richard Guenther <rguenther@suse.de>
6057
6058 * gimple.c (gimple_set_modified): Do not queue calls to
6059 MODIFIED_NORETURN_CALLS here ...
6060 * tree-ssa-operands.c (update_stmt_operands): ... but here.
6061
5e5a425e
RG
60622011-04-08 Richard Guenther <rguenther@suse.de>
6063
6064 PR lto/48467
6065 * toplev.c (lang_dependent_init): Do not open asm_out_file
6066 in WPA mode, nor perform debug machinery initialization.
6067 (finalize): Do not unlink asm_out_file in WPA mode.
6068
9bfc434b
RG
60692011-04-08 Richard Guenther <rguenther@suse.de>
6070
6071 * gimple.h (gimple_call_fntype): New function.
6072 (gimple_call_return_type): Use it.
6073 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6074 * gimple-low.c (gimple_check_call_args): Likewise.
6075 * gimple.c (gimple_call_flags): Likewise.
6076 (gimple_call_arg_flags): Likewise.
6077 (gimple_call_return_flags): Likewise.
6078 * tree-cfg.c (verify_gimple_call): Likewise.
6079 (do_warn_unused_result): Likewise.
6080 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6081 * value-prof.c (gimple_ic_transform): Fix fndecl check.
6082
7c1f0b40
DM
60832011-04-08 Dmitry Melnik <dm@ispras.ru>
6084
6085 PR rtl-optimization/48235
6086 * sel-sched.c (code_motion_process_successors): Recompute the last
6087 insn in basic block if control flow changed.
6088 (code_motion_path_driver): Ditto. Recompute the first insn as well.
6089 Update condition for ilist_remove.
6090
ea4d630f
AM
60912011-04-08 Alexander Monakov <amonakov@ispras.ru>
6092
6093 PR rtl-optimization/48302
6094 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6095 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
6096 it to record added preheader blocks.
6097 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
6098 on to sel_add_loop_preheaders.
6099 (sel_region_init): Move call to setup_current_loop_nest after
6100 sel_init_bbs.
6101
07643d76
AM
61022011-04-08 Alexander Monakov <amonakov@ispras.ru>
6103
6104 PR target/48273
6105 * cfgloop.h (loop_has_exit_edges): New helper.
6106 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6107 non-clonable.
6108 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6109 that have no exit edges.
6110
1f3b2b4e
AM
61112011-04-08 Alexander Monakov <amonakov@ispras.ru>
6112
6113 PR rtl-optimization/48442
6114 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
6115 all callers. Adjust assert.
6116
554f1948
JJ
61172011-04-08 Jakub Jelinek <jakub@redhat.com>
6118
6119 PR tree-optimization/48377
6120 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6121 is_packed to true even for types with smaller TYPE_ALIGN than
6122 TYPE_SIZE.
6123
ddf72388
RG
61242011-04-08 Richard Guenther <rguenther@suse.de>
6125
6126 PR bootstrap/48513
6127 * doc/tm.texi: Re-generate.
6128
0c27e2d8
WG
61292011-04-08 Wei Guozhi <carrot@google.com>
6130
6131 PR target/47855
6132 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6133 * config/arm/arm.c (arm_attr_length_push_multi): New function.
6134 * config/arm/arm.md (*push_multi): Change the length computation to
6135 call a C function.
6136
07c5f94e
AS
61372011-04-08 Anatoly Sokolov <aesok@post.ru>
6138
6139 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6140 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6141 * doc/tm.texi: Regenerate.
6142 * system.h (ASM_OUTPUT_BSS): Poison.
6143 * varasm.c (asm_output_bss): Remove function.
6144 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 6145
07c5f94e
AS
6146 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6147 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6148 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6149 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6150 Likewise.
6151 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6152 Likewise.
6153 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6154 Likewise.
6155 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6156
5f2c36e1
JM
61572011-04-07 Joseph Myers <joseph@codesourcery.com>
6158
6159 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6160 EnumValue lines.
6161
39e7722b
JM
61622011-04-07 Joseph Myers <joseph@codesourcery.com>
6163
6164 * config/m68k/m68k.c (m68k_handle_option): Don't handle
6165 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6166 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6167 OPT_mcpu32.
6168 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6169 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6170 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6171 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6172 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6173 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6174 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6175 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6176 options. Don't map other m68k options manually. Don't handle
6177 old-style options as canonical.
6178 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 6179 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 6180
cf103ca4
EB
61812011-04-07 Eric Botcazou <ebotcazou@adacore.com>
6182
6183 * basic-block.h (force_nonfallthru): Move to...
6184 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6185 (force_nonfallthru): ...here.
6186 * cfghooks.c (force_nonfallthru): New function.
6187 * cfgrtl.c (force_nonfallthru): Rename into...
6188 (rtl_force_nonfallthru): ...this.
6189 (commit_one_edge_insertion): Do not set AUX field.
6190 (commit_edge_insertions): Do not discover new basic blocks.
6191 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6192 (cfg_layout_rtl_cfg_hooks): Likewise.
6193 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6194 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
6195 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6196
14431f58
AS
61972011-04-07 Anatoly Sokolov <aesok@post.ru>
6198
6199 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6200 Remove macros.
6201
3729983c
UB
62022011-04-07 Uros Bizjak <ubizjak@gmail.com>
6203
6204 * config/i386/sse.md: Update copyright year.
6205 (avxcvtvecmode): Remove.
6206 (sse_movhlps): Merge with *avx_movhlps.
6207 (sse_movlhps): Merge with *avx_movlhps.
6208 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6209 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6210 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6211 (sse_loadhps): Merge with *avx_loadhps.
6212 (sse_storelps): Merge with *avx_storelps.
6213 (sse_loadlps): Merge with *avx_loadlps.
6214 (sse_movss): Merge with *avx_movss.
6215 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6216 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6217 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6218 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6219 (vec_set<mode>_0): Ditto.
6220 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6221 (sse4_1_insertps): Merge with *avx_insertps.
6222 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6223 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6224 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6225 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6226 (sse2_storehpd): Merge with *avx_storehpd.
6227 (sse2_loadhpd): Merge with *avx_loadhpd.
6228 (sse2_loadlpd): Merge with *avx_loadlpd.
6229 (sse2_movsd): Merge with *avx_movsd.
6230 (*vec_concatv2df): Merge with *vec_concatv2df.
6231
4e626909
JJ
62322011-04-07 Jakub Jelinek <jakub@redhat.com>
6233
6234 PR debug/48343
6235 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 6236 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
6237 (try_combine): Add last_combined_insn parameter, pass it instead of
6238 i3 to propagate_for_debug.
6239
3729983c 62402011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
6241
6242 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6243 to handle MDR <-> data register transfers.
6244 (movhi_internal): Likewise.
6245
20c03367
AM
62462011-04-07 Alan Modra <amodra@gmail.com>
6247
6248 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6249 previous stack info.
6250
bf22920b
TV
62512011-04-07 Tom de Vries <tom@codesourcery.com>
6252
6253 PR target/43920
6254 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
6255 flow_find_cross_jump. Swap variables to implement backward replacement.
6256 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6257
823918ae
TV
62582011-04-07 Tom de Vries <tom@codesourcery.com>
6259
6260 PR target/43920
6261 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
6262 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
6263 and bb2.
6264 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6265 src1 or src2. Redirect edges to the last basic block. Update
6266 frequency and count on multiple basic blocks in case of fallthru.
823918ae 6267
472c95f5
TV
62682011-04-07 Tom de Vries <tom@codesourcery.com>
6269
6270 PR target/43920
6271 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6272 function.
3729983c
UB
6273 (old_insns_match_p): Change return type. Replace return false/true
6274 with return dir_none/dir_both. Use can_replace_by.
6275 (flow_find_cross_jump): Add dir_p parameter. Init replacement
6276 direction from dir_p. Register replacement direction in dir, last_dir
6277 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
6278 merge_dir. Return replacement direction in dir_p.
6279 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6280 return type of old_insns_match_p.
6281 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6282 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6283 flow_find_cross_jump.
6284 * basic-block.h (enum replace_direction): New type.
6285 (flow_find_cross_jump): Add parameter to declaration.
6286
a95d4000
UB
62872011-04-06 Uros Bizjak <ubizjak@gmail.com>
6288
6289 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6290 (AVXMODEDCVTPS2DQ): Ditto.
6291 (VEC_FLOAT_MODE): Ditto.
6292 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
6293 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6294 (<any_logic:code><mode>3): Use VF mode iterator.
6295 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6296 Use VF mode iterator.
6297 (copysign<mode>3): Use VF mode iterator.
6298 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
6299 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6300 (*<any_logic:code><MODEF:mode>3): Merge with
6301 *avx_<any_logic:code><MODEF:mode>3.
6302 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6303 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6304 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6305 (avx_cvtdq2ps<avxmodesuffix>): Remove.
6306 (sse2_cvtdq2ps): Use %v modifier.
6307 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6308 (avx_cvtps2dq<avxmodesuffix>): Remove.
6309 (sse2_cvtps2dq): Use %v modifier.
6310 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6311 (avx_cvttps2dq<avxmodesuffix>): Remove.
6312 (sse2_cvttps2dq): Use %v modifier.
6313 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6314 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6315 (sse2_cvtsd2siq): Fix insn template.
6316 (sse2_cvtsd2siq_2): Ditto.
6317 (sse2_cvttsd2siq): Ditto.
6318 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6319 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6320
ad01c437
JM
63212011-04-06 Joseph Myers <joseph@codesourcery.com>
6322
6323 * gcov-io.c: Use GCC Runtime Library Exception.
6324
fe846284
JJ
63252011-04-06 Jakub Jelinek <jakub@redhat.com>
6326
6327 PR debug/48466
6328 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6329 as base_reg whatever register reg has been eliminated to, instead
6330 of hardcoding STACK_POINTER_REGNUM.
6331
acce4e77
JM
63322011-04-06 Joseph Myers <joseph@codesourcery.com>
6333
6334 * doc/tm.texi.in: Document C target hooks as separate from general
6335 target hooks.
6336 * doc/tm.texi: Regenerate.
6337 * genhooks.c (struct hook_desc): Add docname field.
6338 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
6339 docname field.
6340 (hook_array): Include c-target.def.
6341 (emit_documentation): Use docname field in output.
6342 (emit_init_macros): Take docname argument. Only emit definitions
6343 for hooks matching docname.
6344 (main): Expect additional arguments in all cases. Pass argument
6345 to emit_init_macros.
6346 * target.def: Move initial macro definitions and comments to
6347 target-hooks-macros.h.
6348 (gcc_targetcm): Move to c-family/c-target.def.
6349 * target.h (targetcm): Move declaration to c-family/c-target.h.
6350 * targhooks.c (default_handle_c_option): Move to
6351 c-family/c-opts.c.
6352 * targhooks.h (default_handle_c_option): Move declaration to
6353 c-family/c-common.h.
6354 * target-hooks-macros.h: New file.
6355 * config.gcc (target_has_targetcm): Define and use to add to
6356 c_target_objs and cxx_target_objs.
6357 * config/default-c.c: New file.
6358 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6359 of target.h and target-def.h.
6360 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6361 (darwin_objc_construct_string, darwin_cfstring_ref_p,
6362 darwin_check_cfstring_format_arg): Make static.
6363 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6364 TARGET_STRING_OBJECT_REF_TYPE_P,
6365 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6366 * config/darwin-protos.h (darwin_objc_construct_string,
6367 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6368 declare.
6369 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6370 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 6371 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
6372 * config/t-darwin (darwin-c.o): Update dependencies.
6373 * system.h (TARGET_HAS_TARGETCM): Poison.
6374 * Makefile.in (TARGET_H): Update.
6375 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6376 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6377 (default-c.o): New target.
6378 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 6379 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
6380 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
6381 c-target.def.
6382 (build/genhooks.o): Update dependencies.
6383
275b4baa 63842011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 6385
275b4baa
RG
6386 * ipa-inline.c (enum inlining_mode): Remove.
6387 (cgraph_flatten): Use some other token.
6388 (cgraph_edge_early_inlinable_p): New function, split out from ...
6389 (cgraph_perform_always_inlining): New function, split out from ...
6390 (cgraph_decide_inlining_incrementally): ... here.
6391 (cgraph_mark_inline_edge): Adjust.
6392 (cgraph_early_inlining): Re-structure.
6393 (pass_early_inline): Require SSA form.
6394
f15b8bdf 63952011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
6396 Julian Brown <julian@codesourcery.com>
6397 Mark Shinwell <shinwell@codesourcery.com>
6398
6399 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6400 LO_REGS only for Thumb-1.
6401 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6402 be used in short instructions when optimising for size on Thumb-2.
6403
516426da
EB
64042011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6405
6406 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6407 associated with user returns to be preserved.
6408
96621ebf
TG
64092011-04-06 Tristan Gingold <gingold@adacore.com>
6410
f15b8bdf
EB
6411 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6412 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
6413 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6414 if XCOFF_DEBUGGING_INFO.
6415
07c0852e
UB
64162011-04-06 Uros Bizjak <ubizjak@gmail.com>
6417
6418 * config/i386/i386.md (attribute isa): New.
6419 (attribute enabled): New.
6420 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6421 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6422 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6423 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6424 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6425 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6426 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6427 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6428
6429 * config/i386/sse.md (VF): New mode iterator.
6430 (VF1): Ditto.
6431 (VF2): Ditto.
6432 (VF_128): Ditto.
6433 (SSEMODEF4): Remove.
6434 (attribute sse): Handle V8SF and V4DF modes.
6435 (<absneg:code><mode>2): Use VF mode iterator.
6436 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
6437 mode iterator.
6438 (<plusminus_insn><mode>3): Use VF mode iterator.
6439 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6440 Use VF mode iterator.
6441 (<sse>_vm<plusminus_insn><mode>3): Merge with
6442 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
6443 (mul<mode>3): Use VF mode iterator.
6444 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
6445 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
6446 mode iterator.
6447 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6448 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6449 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
6450 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
6451 mode iterator.
6452 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6453 Use VF1 mode iterator.
6454 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6455 (sqrt<VF2:mode>2): New expander.
6456 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6457 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6458 and sqrtv2df2. Use VF mode iterator.
6459 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
6460 mode iterator.
6461 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6462 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6463 Use VF1 mode iterator.
6464 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6465 (<smaxmin:code><mode>3): Use VF mode iterator.
6466 (*<smaxmin:code><mode>3_finite): Merge with
6467 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
6468 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6469 (<sse>_vm<smaxmin:code><mode>2): Merge with
6470 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
6471 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
6472 mode iterator.
6473 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
6474 mode iterator.
6475 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6476 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6477 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6478 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6479 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
6480 VF mode iterator.
6481 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6482 Use VF_128 mode iterator.
6483 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
6484 mode iterator.
6485 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
6486 VF_128 mode iterator.
6487 (vcond<mode>): Use VF mode iterator.
6488 * config/i386/predicates.md (sse_comparison_operator): Merge with
6489 avx_comparison_float_operator. Do not declare as special_predicate.
6490 * config/i386/i386.c (struct builtin_description): Update for renamed
6491 compare patterns.
6492 (ix86_expand_args_builtin): Ditto.
6493 (ix86_expand_sse_compare_mask): Ditto.
6494
ff5d142c
RG
64952011-04-06 Richard Guenther <rguenther@suse.de>
6496
6497 * tree-inline.c (estimate_num_insns): For calls simply account
6498 for all passed arguments and a used return value.
6499
d7d1d041 65002011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 6501
d7d1d041
RG
6502 PR tree-optimization/47663
6503 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6504 call_stmt_time fields.
6505 (cgraph_edge_inlinable_p): Declare.
6506 (cgraph_edge_recursive_p): New inline function.
6507 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6508 (cgraph_clone_edge): Copy it.
6509 * ipa-inline.c (cgraph_estimate_edge_time): New function.
6510 Account for call stmt time.
6511 (cgraph_estimate_time_after_inlining): Take edge argument.
6512 (cgraph_estimate_edge_growth): Account call stmt size.
6513 (cgraph_estimate_size_after_inlining): Take edge argument.
6514 (cgraph_mark_inline_edge): Adjust.
6515 (cgraph_check_inline_limits): Likewise.
6516 (cgraph_recursive_inlining_p): Remove.
6517 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6518 (cgraph_decide_recursive_inlining): Take edge argument and
6519 adjust.
6520 (cgraph_decide_inlining_of_small_functions): Do not avoid
6521 diags for recursive inlining here.
6522 (cgraph_flatten): Adjust.
6523 (cgraph_decide_inlining_incrementally): Likewise.
6524 (estimate_function_body_sizes): Remove call cost handling.
6525 (compute_inline_parameters): Initialize caller edge call costs.
6526 (cgraph_estimate_edge_growth): New function.
6527 (cgraph_estimate_growth): Use it.
6528 (cgraph_edge_badness): Likewise.
6529 (cgraph_check_inline_limits): Take an edge argument.
6530 (cgraph_decide_inlining_of_small_functions): Adjust.
6531 (cgraph_decide_inlining): Likewise.
6532 * tree-inline.c (estimate_num_insns): Only account for call
6533 return value if it is used.
6534 (expand_call_inline): Avoid diagnostics on recursive inline
6535 functions here.
6536 * lto-cgraph.c (lto_output_edge): Output edge call costs.
6537 (input_edge): Input edge call costs.
6538
2feb95f7
RO
65392011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6540
6541 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6542
26fbd9c2
JW
65432011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6544
6545 * doc/invoke.texi (Spec Files): Fix typo.
6546
694dc0ca
EB
65472011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6548
6549 * profile.c (branch_prob): Move declaration of local variable. Remove
6550 obsolete ??? comment. Expand the location explicitly instead of using
6551 the LOCATION_FILE and LOCATION_LINE macros.
6552
4925d0d5
WG
65532011-04-06 Wei Guozhi <carrot@google.com>
6554
6555 PR target/47855
6556 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6557 (arm_cond_branch): Likewise.
6558 (arm_cond_branch_reversed): Likewise.
6559 (arm_jump): Likewise.
6560 (push_multi): Likewise.
6561 * config/arm/constraints.md (Py): New constraint.
6562
f55dfa2f
NF
65632011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6564
6565 PR bootstrap/48471
6566 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6567 Move these...
6568 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6569 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6570 #ifdef DBX_DEBUGGING_INFO.
6571
fca96842
BS
65722011-04-05 Bernd Schmidt <bernds@codesourcery.com>
6573
6574 PR bootstrap/48403
6575 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6576 if old and new states differ.
6577
30b83e38
JM
65782011-04-05 Joseph Myers <joseph@codesourcery.com>
6579
6580 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6581 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6582 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6583 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6584 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6585 mcfv4e): Use Alias.
6586 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6587 ColdFire options to -mcpu= options.
6588
277a9aa5
JL
65892011-04-05 Jeff Law <law@redhat.com>
6590
6591 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6592 check if BB is a successor of LOOP->header and return
6593 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6594
c1e2610e
SB
65952011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6596
6597 * cprop.c (struct reg_use): Remove.
6598 (reg_use_table): Make an array of RTX.
6599 (find_used_regs, constprop_register, local_cprop_pass,
6600 bypass_block): Simplify users of reg_use_table.
6601 (cprop_insn): Likewise. Iterate if copy propagation succeeded
6602 on one of the uses found by find_used_regs.
6603
e532f586
NF
66042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6605
6606 PR bootstrap/48469
6607 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6608 declaration.
6609
3fb7c055
NF
66102011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6611
6612 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6613 as an rtx.
6614 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6615
b71b43d9
SB
66162011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6617
6618 PR middle-end/48441
6619 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6620
b405b274
NF
66212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6622
6623 * combine.c: Include obstack.h.
6624 (struct insn_link): Define.
6625 (uid_log_links): Adjust type.
6626 (FOR_EACH_LOG_LINK): New macro.
6627 (insn_link_obstack): Declare.
6628 (alloc_insn_link): Define.
6629 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
6630 type of link variables.
6631 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6632 (try_combine, record_promoted_values, distribute_notes): Likewise.
6633 (distribute_links): Likewise. Tweak prototype.
6634 (clear_log_links): Delete.
6635 (adjust_for_new_dest): Call alloc_insn_link.
6636 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6637
6409abe3
NF
66382011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6639
6640 * gcse.c (modify_mem_list): Convert to an array of VECs.
6641 (canon_modify_mem_list, compute_transp): Tweak formatting.
6642 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
6643 (load_killed_in_block_p): Likewise.
6644 (record_last_mem_set_info): Likewise.
6645 (clear_modify_mem_tables): Likewise.
6646
170d8157
TV
66472011-04-05 Tom de Vries <tom@codesourcery.com>
6648
6649 PR middle-end/48461
6650 * function.c (emit_use_return_register_into_block): Only define if
6651 HAVE_return.
6652
c5911a55
EB
66532011-04-05 Eric Botcazou <ebotcazou@adacore.com>
6654
6655 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6656
abd016e6
JM
66572011-04-05 Joseph Myers <joseph@codesourcery.com>
6658
6659 * config/rx/rx-opts.h: New.
6660 * config/rx/rx.c (rx_cpu_type): Remove.
6661 (rx_handle_option): Don't assert that global structures are in
6662 use. Access variables via opts pointer. Defer most handling of
6663 OPT_mint_register_. Use error_at.
6664 (rx_option_override): Handle deferred OPT_mint_register_ here.
6665 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6666 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6667 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6668 (rx_cpu_types): New Enum and EnumValue entries.
6669 (mint-register=): Use Defer and use Var accordingly.
6670
1ed13f83
NF
66712011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6672
6673 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6674 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6675 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6676 Move these...
6677 (debug_free_queue, debug_nesting, symbol_queue_index):
6678 ...and these...
6679 * dbxout.c: ...to here. Make static.
6680
6ce1edcf
NF
66812011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6682
6683 * gcse.c (modify_pair): Define. Define a VEC of it.
6684 (canon_modify_mem_list): Convert to an array of VECs.
6685 (free_insn_expr_list_list): Delete.
6686 (clear_modify_mem_tables): Call VEC_free instead.
6687 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6688 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6689 (canon_list_insert, compute_transp): Likewise.
6690
c201ac94
TV
66912011-04-05 Tom de Vries <tom@codesourcery.com>
6692
6693 PR target/43920
6694 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6695 for size.
6696
4c029f40
TV
66972011-04-05 Tom de Vries <tom@codesourcery.com>
6698
6699 PR target/43920
6700 * function.c (emit_use_return_register_into_block): New function.
6701 (thread_prologue_and_epilogue_insns): Use
6702 emit_use_return_register_into_block.
6703
2a562b0a
TV
67042011-04-05 Tom de Vries <tom@codesourcery.com>
6705
6706 PR target/43920
6707 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6708 insn.
6709
0248bceb
TV
67102011-04-05 Tom de Vries <tom@codesourcery.com>
6711
6712 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6713
ffa94123
YZ
67142011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
6715
798dd0ba
UB
6716 * config/arm/arm.md (define_constants for unspec): Replace with
6717 define_c_enum.
6718 (define_constants for unspecv): Replace with define_c_enum.
6719 * config/arm/neon.md (define_constants for unspec): Replace with
6720 define_c_enum.
ffa94123 6721
3b8f9b46
RH
67222011-04-04 Richard Henderson <rth@redhat.com>
6723
720cf80f 6724 PR bootstrap/48400
3b8f9b46
RH
6725 * dwarf2out.c (output_line_info): Always emit line info from
6726 at least one section.
6727 (dwarf2out_init): Create text_section_line_info here ...
6728 (set_cur_line_info_table): ... not here.
6729
720cf80f 67302011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
6731
6732 PR target/48380
6733 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 6734 not called.
e5b0e1ca 6735
720cf80f 6736 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 6737
196565d4
SB
67382011-04-04 Steven Bosscher <steven@gcc.gnu.org>
6739
b77f9eab
SB
6740 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6741 (expr_equiv_p): Remove.
6742 (insert_set_in_table): Look at <dest, src> pair instead of expr.
6743 (hash_scan_set): Update call to insert_set_in_table.
6744 (dump_hash_table): Dump <dest, src> pair.
6745 (lookup_set): Simplify. Lookup <dest, src> pair.
6746 (compute_transp): Remove, fold heavily simplified code into...
6747 (compute_local_properties): ...here. Expect COMP and TRANSP
6748 unconditionally.
6749 (find_avail_set): Take set directly from struct expr.
6750 (find_bypass-set): Likewise.
6751 (bypass_block): Likewise.
6752 (cprop_insn): Likewise. Remove redundant INSN_P test.
6753
384d7a55
SB
6754 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6755 checks on form of COND from find_implicit_sets to here.
6756 (find_implicit_sets): Cleanup control flow. Split critical edges
6757 if it exposes implicit sets. Allocate/resize implicit_sets as
6758 necessary.
6759 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6760 changed something. Run df_analyze after find_implicit_sets if any
6761 edges were split. Do not allocate implicit_sets here.
6762
3084ce69
SB
6763 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6764 (gcse_obstack): Renamed to cprop_obstack.
6765 (GNEW, GNEWVEC, GNEWVAR): Remove.
6766 (gmalloc): Remove.
6767 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6768 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6769 (gcse_alloc): Likewise, and rename to cprop_alloc.
6770 (alloc_gcse_men, free_gcse_mem): Remove.
6771 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6772 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6773 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6774
196565d4
SB
6775 * cprop.c (oprs_not_set_p): Remove.
6776 (mark_set, mark_clobber): Remove.
6777 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6778 (reg_not_set_p): New function.
6779 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6780 (cprop_insn): Likewise.
6781 (cprop_jump): Use FOR_EACH_EDGE.
6782
9b69cf83
BS
67832011-04-04 Bernd Schmidt <bernds@codesourcery.com>
6784
6785 PR bootstrap/48403
6786 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6787 (rank_for_schedule): Use scheduled_insns vector instead of
6788 last_scheduled_insn.
6789 (ok_for_early_queue_removal): Likewise.
6790 (queue_to_ready): Search forward in nonscheduled_insns_begin if
6791 we have a dbg_cnt.
6792 (choose_ready): Likewise.
6793 (commit_schedule): Use VEC_iterate.
6794 (schedule_block): Initialize nonscheduled_insns_begin. If we have
6795 a dbg_cnt, use it and ensure the first insn is in the ready list.
6796 (haifa_sched_init): Allocate scheduled_insns.
6797 (sched_extend_ready_list): Don't allocate it; reserve space.
6798 (haifa_sched_finish): Free it.
6799
24f48c2f
JM
68002011-04-04 Joseph Myers <joseph@codesourcery.com>
6801
6802 * optc-gen.awk: Always remove type from Variable entry before
6803 recording in var_seen.
6804
8effe856
EB
68052011-04-04 Eric Botcazou <ebotcazou@adacore.com>
6806
6807 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6808 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6809 call to tidy_fallthru_edges.
6810
413519ae
JM
68112011-04-04 Joseph Myers <joseph@codesourcery.com>
6812
6813 * doc/options.texi (ToLower): Document.
3729983c 6814 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
6815 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6816 * opts.h (cl_option): Add cl_tolower field.
6817 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6818 arguments with lowercase strings.
6819 * config/rx/rx.opt (mcpu=): Add ToLower.
6820 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6821 argument.
6822
7d34a1b0
RS
68232011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6824
6825 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6826
c30e7434
RS
68272011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6828
6829 * config/vax/vax.c: Include reload.h.
6830
112a861d
AS
68312011-04-04 Anatoly Sokolov <aesok@post.ru>
6832
6833 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6834 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6835 (sparc_preferred_reload_class): New function.
6836
e8c6bb74
JJ
68372011-04-04 Jakub Jelinek <jakub@redhat.com>
6838
2aeaa366 6839 PR debug/48401
e8c6bb74
JJ
6840 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6841 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6842
2c081caf
NF
68432011-04-03 Nathan Froyd <froydnj@codesourcery.com>
6844
6845 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6846 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6847
53802f27
AS
68482011-04-03 Anatoly Sokolov <aesok@post.ru>
6849
6850 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6851 (ASM_OUTPUT_ALIGNED_BSS): Define.
6852
e89964e3
MM
68532011-04-03 Michael Matz <matz@suse.de>
6854
6855 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6856 and next_slot members.
6857 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6858 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6859 (lto_streamer_cache_append): Declare.
6860 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6861 unsigned index, remove offset parameter, ensure that we append
6862 or update existing entries.
6863 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6864 parameter, update next_slot for append.
6865 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6866 parameter.
6867 (lto_streamer_cache_insert_at): Likewise.
6868 (lto_streamer_cache_append): New function.
6869 (lto_streamer_cache_lookup): Use unsigned index.
6870 (lto_streamer_cache_get): Likewise.
6871 (lto_record_common_node): Don't test tree_node_can_be_shared.
6872 (preload_common_node): Adjust call to lto_streamer_cache_insert.
6873 (lto_streamer_cache_delete): Don't free offsets member.
6874 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6875 (lto_output_string_with_length): Use lto_output_data_stream.
6876 (lto_output_tree_header): Remove ix parameter, don't write it.
6877 (lto_output_builtin_tree): Likewise.
6878 (lto_write_tree): Adjust callers to above, don't track and write
6879 offset, write unsigned index.
6880 (output_unreferenced_globals): Don't emit all global vars.
6881 (write_global_references): Use unsigned indices.
6882 (lto_output_decl_state_refs): Likewise.
6883 (write_symbol): Likewise.
6884 * lto-streamer-in.c (lto_input_chain): Move earlier.
6885 (input_function): Use unsigned index.
6886 (input_alias_pairs): Don't read and then ignore all global vars.
6887 (lto_materialize_tree): Remove ix_p parameter, don't read index,
6888 don't pass it back, use lto_streamer_cache_append.
6889 (lto_register_var_decl_in_symtab): Use unsigned index.
6890 (lto_register_function_decl_in_symtab): Likewise.
6891 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6892 index.
6893 (lto_get_builtin_tree): Don't read index, use
6894 lto_streamer_cache_append.
6895 (lto_read_tree): Adjust call to lto_materialize_tree.
6896
6897 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6898 don't use function calls in arguments to MIN.
6899
6900 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6901 twice.
6902
6903 * gimple.c (gimple_type_leader_entry): Mark deletable.
6904
b9a5b5b2
AM
69052011-04-03 Alan Modra <amodra@gmail.com>
6906
6907 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6908
ac6a641b
MM
69092011-04-03 Michael Matz <matz@suse.de>
6910
6911 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6912 an integer.
6913 * tree.h (tree_decl_non_common.vindex): Adjust comment.
6914
0038d4e0
MM
69152011-04-03 Michael Matz <matz@suse.de>
6916
e9c18386 6917 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
6918 * gimple-fold.c (canonicalize_constructor_val): Accept being called
6919 without function context.
6920 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6921 current_function_decl and cfun.
6922
91f2fae8
MM
69232011-04-03 Michael Matz <matz@suse.de>
6924
6925 * tree.c (decl_init_priority_insert): Don't create entry for
6926 default priority.
6927 (decl_fini_priority_insert): Ditto.
6928 (fields_compatible_p, find_compatible_field): Remove.
6929 * tree.h (fields_compatible_p, find_compatible_field): Remove.
6930 * gimple.c (gimple_compare_field_offset): Adjust block comment.
6931
da29e070
EB
69322011-04-03 Eric Botcazou <ebotcazou@adacore.com>
6933
6934 * combine.c (try_combine): Remove useless local variable.
6935
4979c28b 69362011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 6937 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
6938
6939 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6940 non-variable offsets and compare the remaining bases of the two
6941 accesses instead of looking for exact same data-ref.
6942
b4ddcaee
KT
69432011-04-02 Kai Tietz <ktietz@redhat.com>
6944
f90298e1
KT
6945 PR target/48416
6946 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6947
b4ddcaee
KT
6948 * i386.c (ix86_is_msabi_thiscall): New helper function.
6949 (ix86_is_type_thiscall): New helper function.
6950 (ix86_comp_type_attributes): Handle thiscall for method-functions
6951 special.
6952 (init_cumulative_args): Likewise.
6953 (find_drap_reg): Likewise.
6954 (ix86_static_chain): Likewise.
6955 (x86_this_parameter): Likewise.
6956 (x86_output_mi_thunk): Likewise.
6957
2a9d769a 69582011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
6959 Nicolas Setton <setton@adacore.com>
6960 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
6961
6962 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6963 (add_gnat_descriptive_type_attribute): New function.
6964 (gen_array_type_die): Call it.
6965 (gen_enumeration_type_die): Likewise.
6966 (gen_struct_or_union_type_die): Likewise.
6967 (modified_type_die): Likewise.
6968 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6969 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6970 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6971
15a03a11
JJ
69722011-04-01 Jakub Jelinek <jakub@redhat.com>
6973
6974 PR bootstrap/48148
6975 * dwarf2out.c (resolve_addr): Don't call force_decl_die
6976 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6977
6978 Revert:
6979 2011-03-17 Richard Guenther <rguenther@suse.de>
6980
6981 PR bootstrap/48148
6982 * lto-cgraph.c (input_overwrite_node): Clear the abstract
6983 origin for decls in other ltrans units.
6984 (input_varpool_node): Likewise.
6985
19228b93
JJ
69862011-04-01 Jakub Jelinek <jakub@redhat.com>
6987
6988 PR middle-end/48335
6989 * expr.c (expand_assignment): Handle all possibilities
6990 if TO_RTX is CONCAT.
e9c18386 6991 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
6992 (store_split_bit_field): If SUBREG_REG (op0) or
6993 op0 itself has smaller mode than word, return it
6994 for offset 0 and const0_rtx for out-of-bounds stores.
6995 If word is const0_rtx, skip it.
6996
88cb339e
N
69972011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
6998
6999 * config/h8300/h8300.c (print_operand_address): Rename to...
7000 (h8300_print_operand_address): ...this. Make static. Adjust comments.
7001 Call h8300_print_operand and h8300_print_operand_address instead of
7002 print_operand and print_operand_address. Declare.
7003 (print_operand): Renake to...
7004 (h8300_print_operand): ...this. Make static. Adjust comments.
7005 Call h8300_print_operand instead of print_operand. Declare.
7006 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7007 (h8300_register_move_cost): Likewise.
7008 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7009 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7010 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7011 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7012 * config/h8300/h8300-protos.h (print_operand): Delete.
7013 (print_operand_address): Delete.
7014
756d6ee9
RH
70152011-04-01 Richard Henderson <rth@redhat.com>
7016
7017 PR 48400
7018 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7019 in strict mode before dwarf4. Re-order tests to early out
7020 before switching sections.
7021
ceaaaeab
NF
70222011-04-01 Nathan Froyd <froydnj@codesourcery.com>
7023
7024 * config/h8300/constraints.md: New file.
7025 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
7026 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7027 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7028 * config/h8300/predicates.md (bit_operand): Likewise.
7029 (incdec_operand): Use satisfies_constraint_M and
7030 satisfies_constraint_O. Don't use C code block.
7031 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7032 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7033 (compute_mov_length): Use satisfies_constraint_G.
7034 (fix_bit_operand): Use satisfies_constraint_U.
7035 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7036 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7037 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7038 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7039 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7040 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7041 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7042 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7043 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7044 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7045 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7046 (EXTRA_MEMORY_CONSTRAINT): Delete.
7047
08ae38e0
AP
70482011-04-01 Andrew Pinski <pinskia@gmail.com>
7049 Michael Meissner <meissner@linux.vnet.ibm.com>
7050
7051 PR target/48262
7052 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7053 operands, as per the specifications.
7054
7055 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7056 (vec_extract_evenv4sf): Ditto.
7057 (vec_extract_evenv8hi): Ditto.
7058 (vec_extract_evenv16qi): Ditto.
7059 (vec_extract_oddv4si): Ditto.
7060
bdb0b0f6
MW
70612011-03-31 Mark Wielaard <mjw@redhat.com>
7062
7063 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7064 high_pc attribute if the CU has no associated code. Only output
7065 DW_AT_entry_pc for CU if not generating strict dwarf and
7066 dwarf_version < 4.
7067
722279e4
BS
70682011-04-01 Bernd Schmidt <bernds@codesourcery.com>
7069
7070 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7071 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7072 out of ...
7073 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7074 * final.c (final_start_function): Call the new function rather
7075 than using a NULL argument for dwarf2out_frame_debug.
7076
c5dd277d
BS
7077 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7078 that contains the prologue.
7079
ec4efea9
BS
7080 * haifa-sched.c (queue_insn): New arg REASON. All callers
7081 changed. Print it in debugging output.
7082
2a6a0d80
BS
7083 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7084
86014d07
BS
7085 * sched-ebb.c (begin_schedule_ready): Remove second argument.
7086 Split most of the code into...
7087 (begin_move_insn): ... here. New function.
7088 (ebb_sched_info): Add a pointer to it.
7089 * haifa-sched.c (scheduled_insns): New static variable.
7090 (sched_extend_ready_list): Allocate it.
7091 (schedule_block): Use it to record the order of scheduled insns.
7092 Perform RTL changes to move insns only after all scheduling
7093 decisions have been made.
7094 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7095 begin_move_insn field.
7096 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7097 * sched-int.h (struct haifa_sched_info): Remove second argument
7098 from begin_schedule_ready hook. Add new member begin_move_insn.
7099 * sched-rgn.c (begin_schedule_ready): Remove second argument.
7100 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7101
9d701248
BS
7102 * haifa-sched.c (prune_ready_list): New function, broken out of
7103 schedule_block.
7104 (schedule_block): Use it.
7105
1ca1dad5
UW
71062011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7107
7108 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7109
49568e45
KT
71102011-04-01 Kai Tietz <ktietz@redhat.com>
7111
7112 * config.gcc (*-*-mingw*): Allow as option the
7113 posix threading model.
07c0852e 7114 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
7115 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7116 definition.
7117 (CPP_SPEC): Add pthread/no-pthread handling.
7118 (LIB_SPEC): Likewise.
7119 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7120 (LIB_SPEC): Likewise.
7121 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7122 flag to pass -pthread option for shared libgcc build.
7123 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7124 for shared libgcc build.
7125 * config/i386/t-mingw-pthread: New file.
7126 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7127 New define to enable use of library pthread by default.
7128 * config/i386/mingw.opt (pthread): New driver option.
7129 (no-pthread): New driver option.
e9c18386 7130 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
7131 * config/i386/mingw-w64.opt: Likewise.
7132
748f7574 71332011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
7134
7135 * c-decl.c (grokdeclarator): Fix formatting.
7136
f04713ee
RS
71372011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7138
7139 * expr.c (emit_block_move_via_movmem): Use n_generator_args
7140 instead of n_operands.
7141 (set_storage_via_setmem): Likewise.
7142 * optabs.c (maybe_gen_insn): Likewise.
7143 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7144 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7145 (mips_expand_builtin_direct): Likewise.
7146 * config/spu/spu.c (expand_builtin_args): Likewise.
7147
b29387ee
RS
71482011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7149
7150 * recog.h (insn_data_d): Add n_generator_args.
7151 * genoutput.c (data): Likewise.
7152 (output_insn_data): Print it.
7153 (max_opno, num_dups): Delete.
7154 (scan_operands): Just fill in "d->operand[...]".
7155 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7156
e792559a
RS
71572011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7158
7159 * gensupport.h (pattern_stats): New structure.
7160 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7161 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7162 (max_operand_1, max_operand_vec): Delete.
7163 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7164
e8110d6f
NF
71652011-03-31 Nathan Froyd <froydnj@codesourcery.com>
7166
7167 * emit-rtl.c (emit_pattern_after_setloc): New function.
7168 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7169 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7170 (emit_pattern_after): New function.
7171 (emit_insn_after, emit_jump_insn_after): Call it.
7172 (emit_call_insn_after, emit_debug_insn_after): Likewise.
7173 (emit_pattern_before_setloc): New function.
7174 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7175 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7176 Likewise.
7177 (emit_pattern_before): New function.
7178 (emit_insn_before, emit_jump_insn_before): Call it.
7179 (emit_call_insn_before, emit_debug_insn_before): Likewise.
7180
576f85f1
RH
71812011-03-31 Richard Henderson <rth@redhat.com>
7182
7183 * dwarf2out.c (dw_separate_line_info_ref): Remove.
7184 (dw_separate_line_info_entry): Remove.
7185 (enum dw_line_info_opcode): New.
7186 (dw_line_info_entry): Use it.
7187 (dw_line_info_table, dw_line_info_table_p): New.
7188 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7189 (line_info_table, line_info_label_num): Remove.
7190 (line_info_table_in_use): Remove.
7191 (separate_line_info_table): Remove.
7192 (separate_line_info_table_allocated): Remove.
7193 (separate_line_info_table_in_use): Remove.
7194 (LINE_INFO_TABLE_INCREMENT): Remove.
7195 (line_info_label_num): New.
7196 (cur_line_info_table): New.
7197 (text_section_line_info, cold_text_section_line_info): New.
7198 (separate_line_info): New.
7199 (SEPARATE_LINE_CODE_LABEL): Remove.
7200 (print_dwarf_line_table): Remove.
7201 (debug_dwarf): Don't dump it.
7202 (output_one_line_info_table): New.
7203 (output_line_info): Use it.
7204 (new_line_info_table): New.
7205 (set_cur_line_info_table): New.
7206 (dwarf2out_switch_text_section): Use it.
7207 (dwarf2out_begin_function): Likewise.
7208 (push_dw_line_info_entry): New.
7209 (dwarf2out_source_line): Rewrite for new line info tables.
7210 (dwarf2out_init): Remove dead initailizations.
7211
300d83d9
JM
72122011-03-31 Joseph Myers <joseph@codesourcery.com>
7213
7214 * opts.h (cl_option): Add comments to fields. Add bit-fields for
7215 various flags.
7216 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7217 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7218 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7219 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7220 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7221 * opt-functions.awk (flag_init, switch_bit_fields): New.
7222 (switch_flags): Don't handle flags moved to bit-fields. Don't
7223 generate CL_MISSING_OK or CL_SAVE.
7224 * optc-gen.awk: Update to generate bit-field output as well as
7225 flags field.
7226 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7227 bit-field instead of CL_REJECT_DRIVER flag.
7228 * opts-common.c (generate_canonical_option,
7229 decode_cmdline_option): Use bit-fields instead of CL_* flags.
7230 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7231 instead of CL_REJECT_NEGATIVE flag.
7232 * toplev.c (print_switch_values): Use cl_report bit-field instead
7233 of CL_REPORT flag.
7234
d4d73ce2
EB
72352011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7236
7237 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7238 a zero minimum index only if it is redundant.
7239
b8faca75
VM
72402011-03-31 Vladimir Makarov <vmakarov@redhat.com>
7241
7242 PR rtl-optimization/48381
7243 * ira-color.c (assign_hard_reg): Use hard reg set intersection
7244 instead of ira_class_hard_reg_index for calculating conflicting
7245 hard registers.
7246
7d11cebe
SB
72472011-03-31 Steven Bosscher <steven@gcc.gnu.org>
7248
7249 * cprop.c: Clean up hash table building.
7250 (reg_avail_info): Remove.
7251 (oprs_available_p): Remove.
7252 (record_last_reg_set_info): Remove.
7253 (record_last_set_info): Remove.
7254 (reg_available_p): New function.
7255 (gcse_constant_p): Do not treat unfolded conditions as constants.
7256 (make_set_regs_unavailable): New function.
7257 (hash_scan_set): Simplify with new reg_available_p.
7258 (compute_hash_table_work): Traverse insns stream only once.
7259 Do not compute reg_avail_info. Traverse insns in reverse order.
7260 Record implicit sets after recording explicit sets from the block.
7261
98faf84f
MM
72622011-03-31 Michael Matz <matz@suse.de>
7263
e9c18386 7264 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 7265
f52d97da
AS
72662011-03-31 Anatoly Sokolov <aesok@post.ru>
7267
7268 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7269 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7270 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7271 (h8300_mode_dependent_address_p): New function.
7272 (h8300_get_index): Make static.
7273
e16b6fd0
JL
72742011-03-31 Jeff Law <law@redhat.com>
7275
10c51983
JL
7276 * reload1.c (elimination_effects): Fix typo in recent change.
7277
e9c18386 7278 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
7279 typo potentially leading to null pointer dereference.
7280
7281 * caller-save.c (new_saved_hard_reg): Eliminate return value.
7282 (setup_save_areas): Corresponding changes to avoid useless
7283 assignments.
7284
7285 * jump.c (reversed_comparison_code_parts): Avoid successive return
7286 statements when REVERSE_CONDITION is defined.
7287
7288 * expr.c (expand_assignment): Avoid useless assignments.
7289 (expand_expr_real_1): Likewise.
7290 (expand_expr_real_2): Avoid useless statements.
7291
7292 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7293
7294 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7295
7296 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7297 statements.
7298
7299 * stmt.c (expand_expr_stmt): Avoid useless assignment.
7300
eb1eb914
JM
73012011-03-31 Joseph Myers <joseph@codesourcery.com>
7302
7303 PR target/47109
7304 * doc/tm.texi.in (TARGET_VERSION): Remove.
7305 * doc/tm.texi: Regenerate.
7306 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7307 * collect2.c (main): Don't use TARGET_VERSION.
7308 * mips-tdump.c (main): Don't use TARGET_VERSION.
7309 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 7310 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
7311 * config/rs6000/vxworksae.h: Remove.
7312 * config/alpha/alpha.h (TARGET_VERSION): Remove.
7313 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7314 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7315 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7316 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7317 * config/arm/arm.h (TARGET_VERSION): Remove.
7318 * config/arm/coff.h (TARGET_VERSION): Remove.
7319 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7320 * config/arm/elf.h (TARGET_VERSION): Remove.
7321 * config/arm/freebsd.h (TARGET_VERSION): Remove.
7322 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7323 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7324 * config/arm/pe.h (TARGET_VERSION): Remove.
7325 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7326 * config/arm/semi.h (TARGET_VERSION): Remove.
7327 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7328 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7329 * config/arm/vxworks.h (TARGET_VERSION): Remove.
7330 * config/avr/avr.h (TARGET_VERSION): Remove.
7331 * config/bfin/bfin.h (TARGET_VERSION): Remove.
7332 * config/fr30/fr30.h (TARGET_VERSION): Remove.
7333 * config/frv/frv.h (TARGET_VERSION): Remove.
7334 * config/h8300/h8300.h (TARGET_VERSION): Remove.
7335 * config/i386/cygwin.h (TARGET_VERSION): Remove.
7336 * config/i386/darwin.h (TARGET_VERSION): Remove.
7337 * config/i386/darwin64.h (TARGET_VERSION): Remove.
7338 * config/i386/djgpp.h (TARGET_VERSION): Remove.
7339 * config/i386/freebsd.h (TARGET_VERSION): Remove.
7340 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7341 * config/i386/gnu.h (TARGET_VERSION): Remove.
7342 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7343 * config/i386/i386elf.h (TARGET_VERSION): Remove.
7344 * config/i386/linux.h (TARGET_VERSION): Remove.
7345 * config/i386/linux64.h (TARGET_VERSION): Remove.
7346 * config/i386/lynx.h (TARGET_VERSION): Remove.
7347 * config/i386/mingw32.h (TARGET_VERSION): Remove.
7348 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7349 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7350 * config/i386/netware.h (TARGET_VERSION): Remove.
7351 * config/i386/nto.h (TARGET_VERSION): Remove.
7352 * config/i386/openbsd.h (TARGET_VERSION): Remove.
7353 * config/i386/vxworks.h (TARGET_VERSION): Remove.
7354 * config/ia64/elf.h (TARGET_VERSION): Remove.
7355 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7356 * config/ia64/hpux.h (TARGET_VERSION): Remove.
7357 * config/ia64/linux.h (TARGET_VERSION): Remove.
7358 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7359 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7360 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7361 * config/lm32/lm32.h (TARGET_VERSION): Remove.
7362 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7363 * config/m32c/m32c.h (TARGET_VERSION): Remove.
7364 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7365 * config/m32r/m32r.h (TARGET_VERSION): Remove.
7366 * config/m68k/linux.h (TARGET_VERSION): Remove.
7367 * config/m68k/m68k.h (TARGET_VERSION): Remove.
7368 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7369 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7370 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7371 * config/mep/mep.h (TARGET_VERSION): Remove.
7372 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7373 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7374 * config/mips/iris6.h (MACHINE_TYPE): Remove.
7375 * config/mips/linux.h (TARGET_VERSION): Remove.
7376 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7377 * config/mips/vxworks.h (TARGET_VERSION): Remove.
7378 * config/mmix/mmix.h (TARGET_VERSION): Remove.
7379 * config/mn10300/linux.h (TARGET_VERSION): Remove.
7380 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7381 * config/pa/pa.h (TARGET_VERSION): Remove.
7382 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7383 * config/picochip/picochip.h (TARGET_VERSION): Remove.
7384 * config/rs6000/aix.h (TARGET_VERSION): Remove.
7385 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7386 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7387 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7388 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7389 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7390 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7391 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7392 * config/rs6000/linux.h (TARGET_VERSION): Remove.
7393 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7394 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7395 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7396 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7397 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7398 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7399 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7400 * config/s390/linux.h (TARGET_VERSION): Remove.
7401 * config/s390/s390.h (TARGET_VERSION): Remove.
7402 * config/s390/tpf.h (TARGET_VERSION): Remove.
7403 * config/score/score.h (TARGET_VERSION): Remove.
7404 * config/sh/linux.h (TARGET_VERSION): Remove.
7405 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7406 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7407 * config/sh/sh.h (TARGET_VERSION): Remove.
7408 * config/sh/sh64.h (TARGET_VERSION): Remove.
7409 * config/sh/superh.h (TARGET_VERSION): Remove.
7410 * config/sh/vxworks.h (TARGET_VERSION): Remove.
7411 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7412 * config/sparc/linux.h (TARGET_VERSION): Remove.
7413 * config/sparc/linux64.h (TARGET_VERSION): Remove.
7414 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7415 TARGET_NAME32, TARGET_NAME): Remove.
7416 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7417 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7418 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7419 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7420 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7421 * config/spu/spu.h (TARGET_VERSION): Remove.
7422 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7423 * config/v850/v850.h (TARGET_VERSION): Remove.
7424 * config/vax/linux.h (TARGET_VERSION): Remove.
7425 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7426 * config/xtensa/elf.h (TARGET_VERSION): Remove.
7427 * config/xtensa/linux.h (TARGET_VERSION): Remove.
7428
ace31bca
EB
74292011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7430
7431 PR target/48142
7432 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7433 frame-related from frame-unrelated adjustments to the stack pointer.
7434
76f9db36
JJ
74352011-03-31 Jakub Jelinek <jakub@redhat.com>
7436
7437 * common.opt (fdebug-types-section): Move earlier.
7438 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7439
b7826465
AT
74402011-03-31 Andreas Tobler <andreast@fgznet.ch>
7441
7442 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7443 var.
7444
1290e54c
NF
74452011-03-30 Nathan Froyd <froydnj@codesourcery.com>
7446
7447 * tree.h (CASE_CHAIN): Define.
7448 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7449 (gimple_redirect_edge_and_branch): Likewise.
7450
bddc98e1
VM
74512011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7452
7453 PR middle-end/48367
7454 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7455 calculation.
7456
c865e437
JL
74572011-03-30 Jeff Law <law@redhat.com>
7458
b3750213 7459 * PR bootstrap/48371
c865e437
JL
7460 * reload1.c (reload): Fix botch in last change.
7461
7462 * reload.h (struct reload): Fix typo introduced in last change.
7463
2cdf9574
JM
74642011-03-30 Joseph Myers <joseph@codesourcery.com>
7465
7466 * config/arm/arm.opt (mhard-float, msoft-float): Mark
7467 Undocumented. Remove help text.
7468 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7469 -mhard-float.
7470
666a21a2
JM
74712011-03-30 Joseph Myers <joseph@codesourcery.com>
7472
7473 * doc/options.texi (NegativeAlias): Document.
7474 (Alias): Mention NegativeAlias.
7475 * opt-functions.awk: Handle NegativeAlias.
e9c18386 7476 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
7477 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7478 * opts.h (CL_NEGATIVE_ALIAS): Define.
7479 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7480 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7481 OPT_mspe_.
7482 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7483 Alias entries.
7484 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7485 mno-spe and mno-isel instead of mspe=no and -misel=no.
7486
0fa4e351
MW
74872011-03-29 Mark Wielaard <mjw@redhat.com>
7488
7489 * common.opt (fdebug-types-section): New flag.
7490 * doc/invoke.texi: Document new -fno-debug-types-section flag.
7491 * dwarf2out.c (use_debug_types): New define.
7492 (struct die_struct): Mark die_id with GTY desc use_debug_types.
7493 (print_die): Guard output of type unit signatures using
7494 use_debug_types.
7495 (build_abbrev_table): Replace assert of dwarf_version >= 4
7496 with assert on use_debug_types.
7497 (size_of_die): Likewise.
7498 (unmark_dies): Likewise.
7499 (value_format): Decide AT_ref_external form on use_debug_types.
7500 (output_die): Replace dwarf_version version check guard with
7501 use_debug_types where appropriate.
7502 (modified_type_die): Likewise.
7503 (gen_reference_type_die): Likewise.
7504 (dwarf2out_start_source_file): Likewise.
7505 (dwarf2out_end_source_file): Likewise.
7506 (prune_unused_types_walk_attribs): Likewise.
7507 (dwarf2out_finish): Likewise.
7508
4648deb4
VM
75092011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7510
7511 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7512
4f431835
RS
75132011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7514
7515 PR rtl-optimization/48332
7516 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7517 mode of input operand N and modeN to its actual mode.
7518
f2034d06
JL
75192011-03-30 Jeff Law <law@redhat.com>
7520
7521 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7522 define accessor macro.
7523 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7524 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7525 (reg_equiv_init): Likewise.
7526 (reg_equivs_size): New variable.
7527 (reg_equiv_init_size): Remove.
7528 (allocate_initial_values): Move prototype to here from....
7529 * integrate.h (allocate_initial_values): Remove prototype.
7530 * integrate.c: Include reload.h.
7531 (allocate_initial_values): Corresponding changes.
7532 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7533 (fix_reg_equiv_init, no_equiv): Corresponding changes.
7534 (update_equiv_regs): Corresponding changes.
7535 (ira): Corresponding changes.
7536 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7537 (push_secondary_reload): Corresponding changes.
7538 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7539 (make_memloc, find_reloads_address): Corresponding changes.
7540 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7541 (find_reloads_address_1): Corresponding changes.
7542 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7543 (refers_to_regno_for_reload_p): Corresponding changes.
7544 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7545 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7546 * reload1.c: Include ggc.h.
7547 (grow_reg_equivs): New function.
7548 (replace_pseudos_in, reload): Corresponding changes.
7549 (calculate_needs_all_insns, alter_regs): Corresponding changes.
7550 (eliminate_regs_1, elimination_effects): Corresponding changes.
7551 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7552 (delete_output_reload): Likewise.
7553 * caller-save.c (mark_referenced_regs): Corresponding changes.
7554 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7555 * frv/predicates.md (frv_load_operand): Corresponding changes.
7556 * microblaze/microblaze.c (double_memory_operand): Corresponding
7557 changes.
7558 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7559 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 7560 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
7561 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7562 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7563 changes.
7564 * pa/pa.c (emit_move_sequence): Corresponding changes.
7565 * vax/vax.c (nonindexed_address_p): Corresponding changes.
7566
159b81b0
RS
75672011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7568
7569 PR target/47551
7570 * config/arm/arm.c (coproc_secondary_reload_class): Handle
7571 structure modes. Don't check neon_vector_mem_operand for
7572 vector or structure modes.
7573
a6217191
RS
75742011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7575 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7576
7577 PR target/43590
7578 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7579 operand 1 and reshuffle the operands to match.
7580 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7581
bd837408
CS
75822011-03-30 Christian Schüler <cschueler@gmx.de>
7583
6955d771 7584 PR driver/48208
bd837408 7585 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 7586
6955d771 7587 PR driver/48260
bd837408
CS
7588 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7589 handler function.
7590 * config/darwin.opt: Added '-arch' option.
7591
e9c0470a
NC
75922011-03-30 Nick Clifton <nickc@redhat.com>
7593
7594 * config/rx/rx.md: Add peepholes and patterns to combine
7595 extending loads and simple arithmetic instructions.
7596 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
7597 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7598 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 7599 modes to use pre-decrement and post-increment addressing.
e9c18386 7600 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 7601 addresses.
e9c18386
UB
7602 (rx_print_operand): Add support for %Q. Fix handling of %Q.
7603 (rx_memory_move_cost): Adjust cost of stores.
7604 (rx_adjust_insn_length): New function.
e9c0470a 7605
8a87e7ab
JJ
76062011-03-30 Jakub Jelinek <jakub@redhat.com>
7607
7608 PR c/48305
7609 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7610 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7611 matching arg00/arg01 types.
7612
12486e03
EB
76132011-03-30 Eric Botcazou <ebotcazou@adacore.com>
7614
7615 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7616 last_location to UNKNOWN_LOCATION.
7617
0b99eef6
L
76182011-03-30 H.J. Lu <hongjiu.lu@intel.com>
7619
7620 PR target/48349
7621 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7622 FLOAT_SSE_REGS.
7623
023592aa
JM
76242011-03-30 Joseph Myers <joseph@codesourcery.com>
7625 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7626
7627 PR bootstrap/48337
7628 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7629 Init(PROCESSOR_V7).
7630 (sparc_cpu): Likewise.
7631 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7632 PROCESSOR_V7.
7633
ad3b266b
VM
76342011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7635
7636 PR target/48336
7637 PR middle-end/48342
7638 PR rtl-optimization/48345
7639 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7640 hard regs for given mode from profitable regs when doing secondary
7641 allocation.
7642
633c9126
JL
76432011-03-29 Jeff Law <law@redhat.com>
7644
7645 PR bootstrap/48327
7646 * tree-ssa-threadupdate.c (struct redirection_data): Remove
7647 do_not_duplicate field.
7648 (lookup_redirection_data): Corresponding changes.
7649 (create_duplicates): Always create a template block.
7650 (redirect_edges): Remove code which reused the original block
7651 when it was going to become unreachable code.
7652 (thread_block): Don't set do_not_duplicate field.
7653
eb50f63a
JM
76542011-03-29 Joseph Myers <joseph@codesourcery.com>
7655
7656 * lto-opts.c (register_user_option_p, lto_register_user_option):
7657 Make type argument unsigned.
7658 * lto-streamer.h (lto_register_user_option): Make type argument
7659 unsigned.
7660 * opth-gen.awk: Make CL_* macros unsigned.
7661 * opts-common.c (find_opt): Make lang_mask argument unsigned.
7662 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7663 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7664 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7665 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7666 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7667 (find_opt): Make lang_mask argument unsigned.
7668
76763a6d
VM
76692011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7670
7671 PR rtl-optimization/48331
7672 PR rtl-optimization/48334
7673 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7674 for any used algorithm.
7675
5c82436e
VM
76762011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7677
7678 * ira-conflicts.c (build_object_conflicts): Add unused attribute
7679 to parent_max.
7680
7a81008b
UB
76812011-03-29 Uros Bizjak <ubizjak@gmail.com>
7682
7683 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7684 (alpha_option_override): Don't set alpha_sr_alias_set.
7685 (emit_frame_store_1): Use gen_frame_mem rather than calling
7686 set_mem_alias_set.
7687 (alpha_expand_epilogue): Ditto.
7688
86c8d1f6
IR
76892011-03-29 Ira Rosen <ira.rosen@linaro.org>
7690
7691 PR tree-optimization/48290
7692 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7693 vectorization, check that relevant phis in the basic block after
7694 the inner loop are really inner loop's exit phis.
7695
0d12220f
RS
76962011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
7697
e8cf17e7 7698 PR debug/48190
0d12220f
RS
7699 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7700 (cached_dw_loc_list_def): New structure.
7701 (cached_dw_loc_list): New typedef.
7702 (cached_dw_loc_list_table): New variable.
7703 (cached_dw_loc_list_table_hash): New function.
7704 (cached_dw_loc_list_table_eq): Likewise.
7705 (add_location_or_const_value_attribute): Take a bool cache_p.
7706 Cache the list when the parameter is true.
7707 (gen_formal_parameter_die): Update caller.
7708 (gen_variable_die): Likewise.
7709 (dwarf2out_finish): Likewise.
7710 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7711 while generating debug info for the decl.
7712 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7713 (dwarf2out_init): Initialize cached_dw_loc_list_table.
7714 (resolve_addr): Cache the result of resolving a chain of
7715 location lists.
7716
1756cb66
VM
77172011-03-28 Vladimir Makarov <vmakarov@redhat.com>
7718
7719 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7720 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 7721
1756cb66
VM
7722 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7723 after regstat_init_n_sets_and_refs.
7724
7725 * ira.c: Add more comments at the top.
7726 (setup_stack_reg_pressure_class, setup_pressure_classes):
7727 Add comments how we compute the register pressure classes.
7728 (setup_allocno_and_important_classes): Add more comments.
7729 (setup_class_translate_array, reorder_important_classes)
7730 (setup_reg_class_relations): Add comments.
7731
7732 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
7733 start of the file.
7734
7735 * ira-color.c: Add 2011 to the Copyright line.
7736 (assign_hard_reg): Add more comments.
7737 (improve_allocation): Ditto.
7738
7739 * ira-costs.c: Add 2011 to the Copyright line.
7740 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7741 comments.
7742 (setup_regno_cost_classes_by_mode): Ditto.
7743
7744 Initial patches from ira-improv branch:
7745
7746 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7747
f60c2554 7748 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
7749 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
7750 (ira_create_allocno): Remove initialization of
7751 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7752 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7753 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7754 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7755 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7756 Initialize ALLOCNO_ADD_DATA.
7757 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7758 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7759 ALLOCNO_REG.
7760 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
7761 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7762
7763 * ira.c (ira_reallocate): Remove.
7764 (setup_pressure_classes): Call
7765 ira_init_register_move_cost_if_necessary. Use
7766 ira_register_move_cost instead of ira_get_register_move_cost.
7767 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7768 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7769
7770 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7771 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7772 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7773 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7774 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7775 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7776 Fix formatting.
7a81008b 7777 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
7778 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7779 (struct allocno_color_data): New.
7780 (allocno_color_data_t): New typedef.
7781 (allocno_color_data): New definition.
7782 (ALLOCNO_COLOR_DATA): New macro.
7783 (struct object_color_data): New.
7784 (object_color_data_t): New typedef.
7785 (object_color_data): New definition.
7786 (OBJECT_COLOR_DATA): New macro.
7787 (update_copy_costs, calculate_allocno_spill_cost): Call
7788 ira_init_register_move_cost_if_necessary. Use
7789 ira_register_move_cost instead of ira_get_register_move_cost.
7790 (move_spill_restore, update_curr_costs): Ditto.
7791 (allocno_spill_priority): Make it inline.
7a81008b 7792 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
7793 (struct coalesce_data, coalesce_data_t): New.
7794 (allocno_coalesce_data): New definition.
7795 (ALLOCNO_COALESCE_DATA): New macro.
7796 (merge_allocnos, coalesced_allocno_conflict_p): Use
7797 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7798 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7799 (coalesce_allocnos): Ditto.
7800 (setup_coalesced_allocno_costs_and_nums): Ditto.
7801 (collect_spilled_coalesced_allocnos): Ditto.
7802 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7803 (setup_slot_coalesced_allocno_live_ranges): Ditto.
7804 (coalesce_spill_slots): Ditto.
7805 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
7806 free allocno_coalesce_data.
7807
7808 * ira-conflicts.c: Fix formatting.
7809 (process_regs_for_copy): Call
7810 ira_init_register_move_cost_if_necessary. Use
7811 ira_register_move_cost instead of ira_get_register_move_cost.
7812 (build_object_conflicts): Optimize.
7813
7814 * ira-costs.c (record_reg_classes): Optimize. Call
7815 ira_init_register_move_cost_if_necessary. Use
7816 ira_register_move_cost, ira_may_move_in_cost, and
7817 ira_may_move_out_cost instead of ira_get_register_move_cost and
7818 ira_get_may_move_cost.
7819 (record_address_regs): Ditto.
7820 (scan_one_insn): Optimize.
7821 (find_costs_and_classes): Optimize.
7822 (process_bb_node_for_hard_reg_moves): Call
7823 ira_init_register_move_cost_if_necessary. Use
7824 ira_register_move_cost instead of ira_get_register_move_cost.
7825
7826 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7827 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7828 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7829 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7830 definitions.
7831 (ira_initiate_emit_data, ira_finish_emit_data)
7832 (create_new_allocno): New functions.
7a81008b 7833 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
7834 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7835 Use ira_register_move_cost instead of ira_get_register_move_cost.
7836
7837 * ira-int.h: Fix some comments.
7a81008b
UB
7838 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7839 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
7840 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7841 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
7842 add_data.
7843 (struct ira_allocno): Make mode and aclass a bitfield. Move other
7844 bitfield after mode. Make hard_regno a short int. Make
7845 hard_regno short. Remove first_coalesced_allocno and
7846 next_coalesced_allocno. Move mem_optimized_dest_p,
7847 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7848 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
7849 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7850 temp, colorable_p. Add new member add_data.
7851 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7852 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7853 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7854 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7855 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7856 (ALLOCNO_ADD_DATA): New macro.
7857 (ira_emit_data_t): New typedef.
7858 (struct ira_emit_data): New. Move mem_optimized_dest_p,
7859 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7860 from struct ira_allocno.
7861 (ALLOCNO_EMIT_DATA): New macro.
7862 (ira_allocno_emit_data, allocno_emit_reg): New.
7863 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 7864 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
7865 (OBJECT_ADD_DATA): New macro.
7866 (ira_reallocate): Remove.
7867 (ira_initiate_emit_data, ira_finish_emit_data): New.
7868 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7869 (ira_init_register_move_cost_if_necessary): New.
7870 (ira_object_conflict_iter_next): Merge into
7871 ira_object_conflict_iter_cond.
7a81008b 7872 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 7873
f60c2554 7874 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
7875 ira_init_register_move_cost_if_necessary. Use
7876 ira_register_move_cost instead of ira_get_register_move_cost.
7877
7878 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7879
7880 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7881
7882 * ira-costs.c: Fix formatting.
7883 (cost_classes, cost_classes_num): Remove.
7884 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7885 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7886 (cost_classes_del, cost_classes_htab): New.
7887 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7888 (initiate_regno_cost_classes, setup_cost_classes): New.
7889 (setup_regno_cost_classes_by_aclass): New.
7a81008b 7890 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
7891 (record_reg_classes): Use regno_cost_classes instead of
7892 cost_classes. Move checking opposite operand up.
7893 (record_address_regs): Use regno_cost_classes
7894 instead of cost_classes.
7895 (scan_one_insn): Ditto. Use always general register.
7896 (print_allocno_costs): Use regno_cost_classes instead of
7897 cost_classes.
7898 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
7899 (find_costs_and_classes): Set up cost classes for each registers.
7900 Use also their mode for this. Use regno_cost_classes instead of
7901 cost_classes.
7902 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7903 cost_classes.
7904 (free_ira_costs, ira_init_costs): Don't use cost_classes.
7905 (ira_costs, ira_set_pseudo_classes): Call
7906 initiate_regno_cost_classes and finish_regno_cost_classes.
7907
7908 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
7909
7910 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7911
7912 * target.def (ira_cover_classes): Remove.
7913
7a81008b 7914 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
7915
7916 * doc/tm.texi.in: Ditto.
7917
7918 * ira-conflicts.c: Remove mentioning cover classes from the file.
7919 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 7920 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
7921
7922 * targhooks.c (default_ira_cover_classes): Remove.
7923
7924 * targhooks.h (default_ira_cover_classes): Ditto.
7925
7926 * haifa-sched.c: Remove mentioning cover classes from the file.
7927 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7928 ira_pressure_classes and ira_pressure_classes_num instead of
7929 ira_reg_class_cover_size and ira_reg_class_cover. Use
7930 sched_regno_pressure_class instead of sched_regno_cover_class.
7931 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7932 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7933
7934 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
7935 classes from the file.
7936 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7937 (struct object_hard_regs, struct object_hard_regs_node): New.
7938 (struct ira_object): New members profitable_hard_regs,
7939 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7940 (struct ira_allocno): Rename cover_class to aclass. Rename
7941 cover_class_cost and updated_cover_class_cost to class_cost and
7942 updated_class_cost. Remove splay_removed_p and
7943 left_conflict_size. Add new members colorable_p.
7944 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7945 (ALLOCNO_COLORABLE_P): New macro.
7946 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7947 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7948 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7949 (OBJECT_...): Rename parameter C to O.
7950 (OBJECT_PROFITABLE_HARD_REGS): New macro.
7951 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7952 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7953 (struct target_ira_int): New members x_ira_max_memory_move_cost,
7954 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7955 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7956 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7957 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
7958 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
7959 x_ira_reg_class_subunion.
7960 (ira_max_memory_move_cost, ira_max_register_move_cost)
7961 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7962 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7963 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 7964 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
7965 (ira_reg_class_union): Rename to ira_reg_class_subunion.
7966 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7967 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7968 (ira_tune_allocno_costs_and_cover_classes): Rename to
7969 ira_tune_allocno_costs.
7970 (ira_debug_hard_regs_forest): New.
7971 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7972 (ira_object_conflict_iter_next): Fix comments.
7a81008b 7973 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
7974 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7975 cover_class to aclass.
7976 (ira_allocate_and_accumulate_costs): Ditto.
7977 (ira_allocate_and_set_or_copy_costs): Ditto.
7978
7979 * opts.c (decode_options): Remove ira_cover_class check.
7980
7981 * ira-color.c: Remove mentioning cover classes from the file. Use
7982 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7983 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7984 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7985 (splay-tree.h): Remove include.
7986 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7987 before copy_freq_compare_func.
7988 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7989 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7990 New definitions.
7991 (hard_regs_roots, hard_regs_node_vec): Ditto.
7992 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7993 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7994 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7995 (create_new_object_hard_regs_node): Ditto.
7996 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 7997 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
7998 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7999 Ditto.
8000 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8001 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8002 (remove_unused_object_hard_regs_nodes): Ditto.
8003 (enumerate_object_hard_regs_nodes): Ditto.
8004 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8005 (object_hard_regs_subnode_t): Ditto.
8006 (struct object_hard_regs_subnode): Ditto.
8007 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8008 (setup_object_hard_regs_subnode_index): Ditto.
8009 (get_object_hard_regs_subnodes_num): Ditto.
8010 (form_object_hard_regs_nodes_forest): Ditto.
8011 (finish_object_hard_regs_nodes_tree): Ditto.
8012 (finish_object_hard_regs_nodes_forest): Ditto.
8013 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 8014 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
8015 (pseudos_have_intersected_live_ranges_p): Rename to
8016 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
8017 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8018 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8019 (update_copy_costs): Remove assert. Skip cost update if the hard
8020 reg does not belong the class.
8021 (assign_hard_reg): Process only profitable hard regs.
8022 (uncolorable_allocnos_num): Make it scalar.
8023 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8024 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8025 and ira_reg_class_max_nregs.
8026 (bucket_allocno_compare_func): Check frequency first.
8027 (sort_bucket): Add compare function as a parameter.
8028 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8029 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8030 (push_allocno_to_stack): Rewrite for checking new allocno
8031 colorability.
7a81008b 8032 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
8033 (push_only_colorable): Pass new parameter to sort_bucket.
8034 (push_allocno_to_spill): Remove.
8035 (allocno_spill_priority_compare): Make it inline and rewrite.
8036 (splay_tree_allocate, splay_tree_free): Remove.
8037 (allocno_spill_sort_compare): New function.
8038 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
8039 build and use splay tree. Choose first allocno in uncolorable
8040 allocno bucket to spill. Remove setting spill cost.
8041 (all_conflicting_hard_regs): Remove.
8042 (setup_allocno_available_regs_num): Check only profitable hard
8043 regs. Print info about hard regs nodes.
8044 (setup_allocno_left_conflicts_size): Remove.
8045 (put_allocno_into_bucket): Don't call
7a81008b 8046 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
8047 (improve_allocation): New.
8048 (color_allocnos): Call setup_profitable_hard_regs,
8049 form_object_hard_regs_nodes_forest, improve_allocation,
8050 finish_object_hard_regs_nodes_forest. Setup spill cost.
8051 (print_loop_title): Use pressure classes.
8052 (color_allocnso): Ditto.
8053 (do_coloring): Remove allocation and freeing splay_tree_node_pool
8054 and allocnos_for_spilling.
8055 (ira_sort_regnos_for_alter_reg): Don't setup members
8056 {first,next}_coalesced_allocno.
8057 (color): Remove allocating and freeing removed_splay_allocno_vec.
8058 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8059 prohibited_class_mode_regs.
8060
8061 * ira-lives.c: Remove mentioning cover classes from the file. Fix
8062 formatting.
8063 (update_allocno_pressure_excess_length): Use pressure classes.
8064 (inc_register_pressure, dec_register_pressure): Check for pressure
8065 class.
8066 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8067 pressure class. Use ira_reg_class_nregs instead of
8068 ira_reg_class_max_nregs.
8069 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8070 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8071 (single_reg_class): Use ira_reg_class_nregs instead of
8072 ira_reg_class_max_nregs.
8073 (process_bb_node_lives): Use pressure classes.
8074
8075 * ira-emit.c: Remove mentioning cover classes from the file. Use
8076 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
8077 (change_loop): Use pressure classes.
8078 (modify_move_list): Call ira_set_allocno_class instead of
8079 ira_set_allocno_cover_class.
8080
8081 * ira-build.c: Remove mentioning cover classes from the file. Use
8082 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8083 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
8084 ALLOCNO_UPDATED_CLASS_COST instead of
8085 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8086 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8087 (ira_create_allocno): Remove initialization of
8088 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
8089 ALLOCNO_COLORABLE_P.
8090 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8091 Update conflict regs for the objects.
8092 (create_cap_allocno): Remove assert. Don't propagate
8093 ALLOCNO_AVAILABLE_REGS_NUM.
8094 (ira_free_allocno_costs): New function.
8095 (finish_allocno): Change a part of code into call of
8096 ira_free_allocno_costs.
8097 (low_pressure_loop_node_p): Use pressure classes.
8098 (object_range_compare_func): Don't compare classes.
8099 (setup_min_max_conflict_allocno_ids): Ditto.
8100
8101 * loop-invariant.c: Remove mentioning cover classes from the file.
8102 Use ira_pressure_classes and ira_pressure_classes_num instead of
8103 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
8104 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8105 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8106 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
8107 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8108 STACK_REG_COVER_CLASS.
8109 (get_regno_cover_class): Rename to get_regno_pressure_class.
8110 (move_loop_invariants): Initialize and finalize regstat.
8111
8112 * ira.c: Remove mentioning cover classes from the file. Add
8113 comments about coloring without cover classes. Use ALLOCNO_CLASS
8114 instead of ALLOCNO_COVER_CLASS. Fix formatting.
8115 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8116 setup_class_subset_and_memory_move_costs.
8117 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8118 (setup_cover_and_important_classes): Rename to
8119 setup_allocno_and_important_classes.
8120 (setup_class_translate_array): New.
8121 (setup_class_translate): Call it for allocno and pressure classes.
8122 (cover_class_order): Rename to allocno_class_order.
8123 (comp_reg_classes_func): Use ira_allocno_class_translate instead
8124 of ira_class_translate.
8125 (reorder_important_classes): Set up ira_important_class_nums.
8126 (setup_reg_class_relations): Set up ira_reg_class_superunion.
8127 (print_class_cover): Rename to print_classes. Add parameter.
8128 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8129 Print pressure classes too.
8130 (find_reg_class_closure): Rename to find_reg_classes. Don't call
8131 setup_reg_subclasses.
7a81008b 8132 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8133 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8134 (setup_prohibited_class_mode_regs): Use
7a81008b 8135 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
8136 (clarify_prohibited_class_mode_regs): New function.
8137 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8138 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8139 (ira_init_once): Initialize them.
8140 (free_register_move_costs): Process them.
8141 (ira_init): Move calls of find_reg_classes and
8142 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8143 Call clarify_prohibited_class_mode_regs.
8144 (ira_no_alloc_reg): Remove.
8145 (too_high_register_pressure_p): Use pressure classes.
8146
8147 * sched-deps.c: Remove mentioning cover classes from the file.
8148 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8149 ira_pressure_classes and ira_pressure_classes_num instead of
8150 ira_reg_class_cover_size and ira_reg_class_cover.
8151 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8152 sched_regno_pressure_class instead of sched_regno_cover_class.
8153 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
8154 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8155
8156 * ira.h: Add 2010 to Copyright.
8157 (ira_no_alloc_reg): Remove external.
8158 (struct target_ira): Rename x_ira_hard_regno_cover_class,
8159 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8160 x_ira_class_translate to x_ira_hard_regno_allocno_class,
8161 x_ira_allocno_classes_num, x_ira_allocno_classes, and
8162 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
8163 x_ira_pressure_classes, x_ira_pressure_class_translate, and
8164 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
8165 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
8166 x_ira_no_alloc_regs.
7a81008b 8167 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8168 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8169 ira_allocno_classes_num and ira_allocno_classes.
8170 (ira_class_translate): Rename to ira_allocno_class_translate.
8171 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8172 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8173 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8174 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8175 (ira_no_alloc_regs): New.
8176
8177 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
8178 classes from the file. Use ALLOCNO_CLASS instead of
8179 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
8180 ALLOCNO_COVER_CLASS_COST.
8181 (regno_cover_class): Rename to regno_aclass.
8182 (record_reg_classes): Use ira_reg_class_subunion instead of
8183 ira_reg_class_union.
8184 (record_address_regs): Check overflow.
8185 (scan_one_insn): Ditto.
7a81008b 8186 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
8187 (print_pseudo_costs): Use REG_N_REFS.
8188 (find_costs_and_classes): Use classes intersected with them on the
8189 1st pass. Check overflow. Use ira_reg_class_subunion instead of
8190 ira_reg_class_union. Use ira_allocno_class_translate and
8191 regno_aclass instead of ira_class_translate and regno_cover_class.
8192 Modify code for finding regno_aclass. Setup preferred classes for
8193 the next pass.
8194 (setup_allocno_cover_class_and_costs): Rename to
8195 setup_allocno_class_and_costs. Use regno_aclass instead of
8196 regno_cover_class. Use ira_set_allocno_class instead of
8197 ira_set_allocno_cover_class.
8198 (init_costs, finish_costs): Use regno_aclass instead of
8199 regno_cover_class.
8200 (ira_costs): Use setup_allocno_class_and_costs instead of
8201 setup_allocno_cover_class_and_costs.
8202 (ira_tune_allocno_costs_and_cover_classes): Rename to
8203 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
8204 by processing objects. Use ira_reg_class_max_nregs instead of
8205 ira_reg_class_nregs.
8206
8207 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8208
8209 * sched-int.h: Remove mentioning cover classes from the file.
8210 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8211
8212 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
8213 classes from the file.
8214 (struct reg_pref): Rename coverclass into allocnoclass.
8215 (reg_cover_class): Rename to reg_allocno_class.
8216
7a81008b 8217 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
8218
8219 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8220
8221 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8222
8223 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8224
8225 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8226
8227 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8228
8229 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8230
8231 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8232
8233 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8234
8235 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8236
8237 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8238 (i386_ira_cover_classes): Ditto.
8239
8240 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8241
8242 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8243
8244 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8245
8246 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8247
8248 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8249
8250 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8251
8252 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8253 (mips_ira_cover_classes): Ditto.
8254
8255 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8256
8257 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8258
8259 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8260
8261 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8262
8263 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8264
8265 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8266 (IRA_COVER_CLASSES_VSX): Ditto.
8267
8268 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8269 (rs6000_ira_cover_classes): Ditto.
8270
8271 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8272
8273 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8274
8275 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8276
8277 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8278
8279 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8280
8281 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8282
8283 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8284
8285 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8286
8287 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8288
8289 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8290
2b80199f
JJ
82912011-03-29 Jakub Jelinek <jakub@redhat.com>
8292
71dae1fe
JJ
8293 PR debug/48253
8294 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8295 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8296 dw_fde_unlikely_section_end_label, cold_in_std_section,
8297 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8298 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8299 fields.
8300 (output_fde): Use dw_fde_second_{begin,end} if second is
8301 true, otherwise dw_fde_{begin,end}.
8302 (output_call_frame_info): Test dw_fde_second_begin != NULL
8303 instead of dw_fde_switched_sections.
8304 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8305 fields, initialize new fields. Initialize in_std_section
8306 unconditionally from the first partition.
8307 (dwarf2out_end_epilogue): Don't override dw_fde_end when
8308 dw_fde_second_begin is non-NULL.
8309 (dwarf2out_switch_text_section): Stop initializing removed
8310 dw_fde_struct fields, initialize new fields, initialize
8311 also dw_fde_end here. Set dw_fde_switch_cfi even when
8312 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
8313 (struct var_loc_list_def): Add last_before_switch field.
8314 (arange_table, arange_table_allocated, arange_table_in_use,
8315 ARANGE_TABLE_INCREMENT, add_arange): Removed.
8316 (size_of_aranges): Count !in_std_section and !second_in_std_section
8317 hunks in fdes, instead of looking at arange_table_in_use.
8318 (output_aranges): Add aranges_length argument, don't call
8319 size_of_aranges here. Instead of using aranges_table*
8320 emit ranges for fdes when !in_std_section resp.
8321 !second_in_std_section.
8322 (dw_loc_list): Break ranges crossing section switch.
8323 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 8324 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
8325 (gen_subprogram_die): Don't call add_arange. Use
8326 dw_fde_{begin,end} for first partition and if switched
8327 section dw_fde_second_{begin,end} for the second.
8328 (var_location_switch_text_section_1,
8329 var_location_switch_text_section): New functions.
8330 (dwarf2out_begin_function): Initialize cold_text_section even
8331 when function_section () isn't text_section.
8332 (prune_unused_types): Don't walk arange_table.
8333 (dwarf2out_finish): Don't needlessly test
8334 flag_reorder_blocks_and_partition when testing cold_text_section_used.
8335 If info_section_emitted, call size_of_aranges and if it indicates
8336 non-empty .debug_aranges, call output_aranges with the computed
8337 size. Stop using removed dw_fde_struct fields, use
8338 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8339 for second.
8340
2b80199f
JJ
8341 PR debug/48203
8342 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8343 create ENTRY_VALUE if incoming or address of incoming's MEM
8344 is a hard REG.
8345 * dwarf2out.c (mem_loc_descriptor): Don't emit
8346 DW_OP_GNU_entry_value of DW_OP_fbreg.
8347 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8348 on ENTRY_VALUE is able to find the canonical parameter VALUE.
8349 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8350 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8351 ENTRY_VALUE_EXPs.
8352 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8353 is a REG_P or MEM_P with REG_P address, compute hash directly
8354 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8355 (preserve_only_constants): Don't clear VALUES forwaring
8356 ENTRY_VALUE to some other VALUE.
8357
8a445129
RS
83582011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
8359
8360 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8361 instead of GEN_INT.
8362
c82fee88
EB
83632011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8364
8365 * cfgexpand.c (expand_gimple_cond): Always set the source location and
8366 block before expanding the statement.
8367 (expand_gimple_stmt_1): Likewise. Set them here...
8368 (expand_gimple_stmt): ...and not here. Tidy.
8369 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8370 unknown.
8371
e45425ec
SB
83722011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8373
8374 * Makefile.in: New rule for cprop.o.
8375 * gcse.c: Move constant/copy propagation to cprop.c.
8376 (compute_local_properties): Only handle expression tables.
8377 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8378 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8379 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8380 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 8381 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
8382 compute_cprop_data, find_used_regs, try_replace_reg,
8383 find_avail_set, cprop_jump, constprop_register, cprop_insn,
8384 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8385 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8386 find_bypass_set, reg_killed_on_edge, bypass_block,
8387 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8388 execute_rtl_cprop, pass_rtl_cprop): Move to...
8389 * cprop.c: ...here. New file, constant/copy propagation for RTL
8390 moved from gcse.c to here with minor cleanups in duplicated code.
8391
c09d5426
L
83922011-03-28 H.J. Lu <hongjiu.lu@intel.com>
8393
8394 * config/i386/i386.c (flag_opts): Fix a typo in
8395 -mavx256-split-unaligned-store.
8396
9eaa7740
AS
83972011-03-28 Anatoly Sokolov <aesok@post.ru>
8398
8399 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8400 LIBCALL_VALUE): Remove macros.
8401 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8402 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8403 (h8300_function_value, h8300_libcall_value,
8404 h8300_function_value_regno_p): New functions.
8405
dcec2be2
AS
84062011-03-28 Anatoly Sokolov <aesok@post.ru>
8407
8408 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8409
520af9ec
JL
84102011-03-28 Jeff Law <law@redhat.com>
8411
8412 * tree-ssa-threadupdate.c (redirect_edges): Call
8413 create_edge_and_update_destination_phis as needed.
8414 (create_edge_and_update_destination_phis): Accept new BB argument.
8415 All callers updated.
8416 (thread_block): Do not update the profile when threading around
8417 intermediate blocks.
8418 (thread_single_edge): Likewise.
8419 (determine_bb_domination_status): If BB is not a successor of the
8420 loop header, return NONDOMINATING.
8421 (register_jump_thread): Note when we register a jump thread around
8422 an intermediate block.
8423 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8424 (thread_across_edge): Use it.
8425
7450b54f
TG
84262011-03-28 Tristan Gingold <gingold@adacore.com>
8427
8428 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8429 when for_return is 2.
8430
649beb33
JL
84312011-03-28 Jeff Law <law@redhat.com>
8432
8433 * var-tracking.c (canonicalize_values_mark): Delete unused
8434 lhs assignment.
8435 (canonicalize_values_star, set_variable_part): Likewise.
8436 (clobber_variable_part, delete_variable_part): Likewise.
8437
d5b8da97
SB
84382011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8439
8440 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8441
322dd859
MJ
84422011-03-28 Martin Jambor <mjambor@suse.cz>
8443
8444 * tree-inline.c (expand_call_inline): Do not check that destination
8445 node is analyzed.
8446 (optimize_inline_calls): Assert that destination node is analyzed.
8447 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8448 not call tree_lowering_passes.
8449 * cgraph.h (cgraph_analyze_function): Declare.
8450 * cgraphunit.c (cgraph_analyze_function): Make public.
8451
aa53e58b
JM
84522011-03-28 Joseph Myers <joseph@codesourcery.com>
8453
8454 * config/sparc/sparc-opts.h: New.
8455 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8456 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8457 (sparc_option_override): Store processor_type enumeration rather
8458 than string in cpu_default. Remove name and enumeration from
8459 cpu_table. Directly default -mcpu then default -mtune from -mcpu
8460 without using sparc_select. Use target_flags_explicit instead of
8461 fpu_option_set.
8462 * config/sparc/sparc.h (enum processor_type): Move to
8463 sparc-opts.h.
8464 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8465 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8466 HeaderInclude entry.
8467 (mcpu=, mtune=): Use Var and Enum.
8468 (sparc_processor_type): New Enum and EnumValue entries.
8469
dd350eba
RO
84702011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8471 Iain Sandoe <iains@gcc.gnu.org>
8472
8473 PR target/48245
8474 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8475
1b29f05e
EB
84762011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8477
8478 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8479 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8480 Insert new statements at it in lieu of STMT.
8481 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8482 * tree-vect-stmts.c (vectorizable_store): Likewise.
8483 (vectorizable_load): Likewise.
8484
506e6808
UB
84852011-03-28 Uros Bizjak <ubizjak@gmail.com>
8486
8487 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8488 (divtf3): Ditto.
8489 (multf3): Ditto.
8490 (subtf3): Ditto.
8491
2e939ee9
L
84922011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8493
8494 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8495 unaligned 256bit load/store.
8496 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8497 (*avx_movdqu<avxmodesuffix>): Likewise.
8498
5e85ab88
JDA
84992011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8500
8501 PR target/48288
8502 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8503 * config/pa/pa.md (iordi3): Use new predicate in expander.
8504 (iorsi3): Likewise.
8505
47be3d6d
AS
85062011-03-27 Anatoly Sokolov <aesok@post.ru>
8507
506e6808 8508 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 8509 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
8510 * config/mips/mips-protos.h (mips_function_value): Remove.
8511 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
8512 (mips_function_value_1): ... this. Make static. Handle receiving
8513 the function type in 'fn_decl_or_type' argument.
8514 (mips_function_value, mips_libcall_value,
8515 mips_function_value_regno_p): New function.
8516 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8517 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8518
d253656a
L
85192011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8520
8521 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8522 and -mavx256-split-unaligned-store.
8523 (ix86_option_override_internal): Split 32-byte AVX unaligned
8524 load/store by default.
8525 (ix86_avx256_split_vector_move_misalign): New.
8526 (ix86_expand_vector_move_misalign): Use it.
8527
8528 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8529 -mavx256-split-unaligned-store.
8530
8531 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8532 256bit load/store. Generate unaligned store on misaligned memory
8533 operand.
8534 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8535 256bit load/store.
8536 (*avx_movdqu<avxmodesuffix>): Likewise.
8537
8538 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8539 -mavx256-split-unaligned-store.
8540
1ea9206a
RS
85412011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8542
8543 PR target/38598
8544 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8545 Update commentary.
8546
b99ce2a8
RS
85472011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8548
8549 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8550 opno arguments with an expand_operand. Use create_input_operand.
8551 (mips_prepare_builtin_target): Delete.
8552 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8553 functions.
8554 (mips_expand_builtin_direct): Use create_output_operand and
8555 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
8556 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
8557 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8558
69d52339
IR
85592011-03-27 Ira Rosen <ira.rosen@linaro.org>
8560
8561 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8562 function.
8563 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8564
ba5e9aca
EB
85652011-03-26 Eric Botcazou <ebotcazou@adacore.com>
8566
8567 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8568 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
8569 basic blocks and call commit_edge_insertions directly.
8570 (fixup_abnormal_edges): Move from here to...
8571 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
8572 on the edges and return whether some have actually been inserted.
8573 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8574 compensation code.
8575
5d369d58
AB
85762011-03-26 Andrey Belevantsev <abel@ispras.ru>
8577
8578 PR rtl-optimization/48144
8579 * sel-sched-ir.c (merge_history_vect): Factor out from ...
8580 (merge_expr_data): ... here.
8581 (av_set_intersect): Rename to av_set_code_motion_filter.
8582 Update all callers. Call merge_history_vect when an expression
8583 is found in both sets.
8584 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8585
f082c000
AM
85862011-03-26 Alan Modra <amodra@gmail.com>
8587
8588 * config/rs6000/predicates.md (word_offset_memref_op): Handle
8589 cmodel medium addresses.
8590 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8591 64-bit gpr loads and stores.
8592 (rs6000_secondary_reload_ppc64): New function.
8593 * config/rs6000/rs6000-protos.h: Declare it.
8594 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8595
8ac5e12e
AM
85962011-03-26 Alan Modra <amodra@gmail.com>
8597
8598 PR target/47487
8599 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8600 GNU Go in traceback table.
8601
c2654ded
RH
86022011-03-25 Richard Henderson <rth@redhat.com>
8603
8604 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8605 if there are exactly 6 operands.
8606 (set_storage_via_setmem): Similarly.
8607
ba78087b
KT
86082011-03-25 Kai Tietz <ktietz@redhat.com>
8609
8610 * collect2.c (write_c_file_stat): Handle backslash
8611 as right-hand directory separator.
8612 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8613 checking just for slash.
8614 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8615 instead of checking for trailing slash.
8616 * gcc.c (record_temp_file): Use filename_cmp instead
8617 of strcmp.
8618 (do_spec_1): Likewise.
8619 (replace_outfile_spec_function): Likewise.
8620 (is_directory): Use filename_ncmp instead of strncmp.
8621 (print_multilib_info): Likewise.
8622 * gcov.c (find_source): Use filename_cmp instead
8623 instead of strcmp.
8624 (make_gcov_file_name): Fix order of slash/backslash
8625 checks.
8626 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8627 (add_standard_paths): Likewise.
8628 * mips-tfile.c (saber_stop): Handle backslash.
8629 * prefix.c (update_path): Use filename_ncmp instead of
8630 strncmp.
8631 * profile.c (output_location): Use filename_cmp instead
8632 of strcmp.
8633 * read-md.c (handle_toplevel_file): Handle backslash.
8634 * tlink.c (frob_extension): Likewise.
8635 * tree-cfg.c (same_line_p): Use filename_cmp instead of
8636 strcmp.
8637 * tree-dump.c (dequeue_and_dump): Handle backslash.
8638 * tree.c (get_file_function_name): Likewise.
8639 * gengtype.c (read_input_list): Likewise.
8640 (get_file_realbasename): Likewise.
8641 (get_output_file_with_visibility): Use filename_cmp
8642 instead of strcmp.
8643
75f6ec9a
RS
86442011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
8645
8646 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8647 case to VFPv1.
8648
6c4e2997
NF
86492011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8650
8651 * fold-const.c (expr_location_or): New function.
8652 (fold_truth_not_expr): Call it.
8653
0edf1bb2
JL
86542011-03-25 Jeff Law <law@redhat.com>
8655
8656 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8657 va_end.
8658 * c-family/c-common.c (def_fn_type): Likewise.
8659 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8660 * emit-rtl.c (gen_rtvec): Likewise.
8661 * lto/lto-lang.c (def_fn_type): Likewise.
8662
fdc2de95
RG
86632011-03-25 Richard Guenther <rguenther@suse.de>
8664
8665 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8666 also generate copies.
8667 (fini_copy_prop): Handle constant values properly.
8668
21385db0
JJ
86692011-03-25 Jakub Jelinek <jakub@redhat.com>
8670
8671 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8672 mode size instead of bitsize with DWARF2_ADDR_SIZE.
8673 (hash_loc_operands, compare_loc_operands): Handle
8674 DW_OP_GNU_entry_value.
8675
6510e8bb
KT
86762011-03-25 Kai Tietz <ktietz@redhat.com>
8677
8678 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8679 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8680 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8681 comment and use macro TARGET_64BIT_MS_ABI instead.
8682 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8683 and change default behavior for 32-bit MS_ABI.
8684 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8685 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8686 32-bit, too.
8687 (ix86_cfun_abi): Likewise.
8688 (ix86_maybe_switch_abi): Adjust comment.
8689 (init_cumulative_args): Check for bit-ness in MS_ABI case.
8690 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8691 instead of checking for SYSV_ABI.
8692 (ix86_nsaved_sseregs): Likewise.
8693 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8694 to 16 bytes.
8695 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8696 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8697 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8698 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8699 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8700
34019e28
RG
87012011-03-25 Richard Guenther <rguenther@suse.de>
8702
8703 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8704 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8705 (verify_gimple): Remove.
8706 * tree-cfg.c (verify_gimple_call): Merge verification
8707 from verify_stmts.
8708 (verify_gimple_phi): Merge verification from verify_stmts.
8709 (verify_gimple_label): New function.
8710 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8711 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8712 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8713 (verify_stmts): Rename to verify_gimple_in_cfg.
8714 (verify_gimple_in_cfg): New function.
8715 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8716 * tree-ssa.c (verify_ssa): Likewise.
8717 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8718
605896f5
RG
87192011-03-25 Richard Guenther <rguenther@suse.de>
8720
8721 * passes.c (init_optimization_passes): Add FRE pass after
8722 early SRA.
8723
7baa7c13
BS
87242011-03-25 Bernd Schmidt <bernds@codesourcery.com>
8725 Andrew Stubbs <ams@codesourcery.com>
8726
8727 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8728 for Cortex-A8.
8729 (arm_movdi_vfp_cortexa8): New pattern.
8730 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8731 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8732 instructions when tuning for Cortex-A8. Set attribute "arch".
8733 * config/arm/arm.md: Move include arm-tune.md up a bit.
8734 (define_attr "arch"): Add "onlya8" and "nota8" values.
8735 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8736
45dbce1b
NF
87372011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8738
4ff08abf 8739 PR bootstrap/48282
45dbce1b
NF
8740 Revert:
8741 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8742
8743 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8744 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8745 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8746 * passes.c (init_optimization_passes): Move
8747 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8748
ac9a30ae
KT
87492011-03-25 Kai Tietz <ktietz@redhat.com>
8750
8751 * c-typeck.c (comptypes_internal): Replace target
8752 hook call of comp_type_attributes by version in tree.c file.
8753 * gimple.c (gimple_types_compatible_p_1): Likewise.
8754 * tree-ssa.c (useless_type_conversion_p): Likewise.
8755 * tree.c (build_type_attribute_qual_variant): Likewise.
8756 (attribute_value_equal): New static helper function.
8757 (comp_type_attributes): New function.
8758 (merge_attributes): Use attribute_value_equal for comparison.
8759 (attribute_list_contained): Likewise.
8760 * tree.h (comp_type_attributes): New prototype.
8761
afdac116
RG
87622011-03-25 Richard Guenther <rguenther@suse.de>
8763
8764 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8765 of complex types at -O0.
8766 (verify_gimple_assign_binary): Likewise.
8767 (verify_gimple_assign_ternary): Likewise.
8768
ec6165f8
MW
87692011-03-24 Mark Wielaard <mjw@redhat.com>
8770
8771 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8772 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8773
2a5ac39a
MW
87742011-03-24 Mark Wielaard <mjw@redhat.com>
8775
8776 PR debug/48041
8777 * dwarf2out.c (output_abbrev_section): Only write table when
8778 abbrev_die_table_in_use > 1.
8779
e533b2a4
RH
87802011-02-24 Richard Henderson <rth@redhat.com>
8781
8782 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8783 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8784 (alpha_expand_unaligned_load_words): Use extql.
8785 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8786 (emit_insxl): Handle all modes for consistency.
8787
0b2a7367
RH
87882011-02-24 Richard Henderson <rth@redhat.com>
8789
8790 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8791 (alpha_expand_unaligned_load): Likewise.
8792 (alpha_expand_unaligned_store): Likewise.
8793 (alpha_expand_unaligned_load_words): Likewise.
8794 (alpha_expand_unaligned_store_words): Likewise.
8795 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8796 (alpha_split_lock_test_and_set_12): Likewise.
8797 (print_operand, alpha_fold_builtin_extxx): Likewise.
8798 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8799 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8800 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8801 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8802 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8803 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8804 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8805 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8806 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8807 (extwl, extll, extql): Similarly.
8808 (inswh, inslh, insqh): Similarly.
8809 (mskbl, mskwl, mskll, mskql): Similarly.
8810 (mskwh, msklh, mskqh): Similarly.
8811
315b2bef
RH
88122011-02-24 Richard Henderson <rth@redhat.com>
8813
8814 * config/alpha/alpha.md (attribute isa): Add er, ner.
8815 (attribute enabled): Handle them.
8816 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8817
67102517
RH
88182011-02-24 Richard Henderson <rth@redhat.com>
8819
8820 * config/alpha/alpha.md (attribute isa): Add vms.
8821 (attribute enabled): Handle it.
8822 (*movsf): Merge *movsf_{nofix,fix,nofp}.
8823 (*movdf): Merge *movdf_{nofix,fix,nofp}.
8824 (*movtf): Rename from *movtf_internal for consistency.
8825 (*movsi): Merge with *movsi_nt_vms.
8826 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8827 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8828 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8829 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8830
6aba5cb4
RH
88312011-02-24 Richard Henderson <rth@redhat.com>
8832
8833 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8834 (extendqisi2, extendhisi2): Likewise.
8835 (extendqidi2): Simplify BWX/non-BWX expansions.
8836 (extendhidi2): Similarly.
8837
bdfb351b
RH
88382011-02-24 Richard Henderson <rth@redhat.com>
8839
8840 * config/alpha/alpha.md (attribute isa): New.
8841 (attribute enabled): New.
8842 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8843 (zero_extendqisi2, zero_extendqidi2): Similarly.
8844 (zero_extendhisi2, zero_extendhidi2): Similarly.
8845 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8846
6abe71eb
RH
88472011-02-24 Richard Henderson <rth@redhat.com>
8848
8849 * config/alpha/predicates.md (input_operand): Revert last change;
8850 update comment to mention 32-bit VMS rather than Windows.
8851
7114321e
NF
88522011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8853
8854 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8855 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8856 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8857 * passes.c (init_optimization_passes): Move
8858 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8859
c8679567
EB
88602011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8861
8862 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8863
27173058
UB
88642011-03-24 Uros Bizjak <ubizjak@gmail.com>
8865
8866 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8867 correctly.
8868
6f0c9f06
JJ
88692011-03-24 Jakub Jelinek <jakub@redhat.com>
8870
8871 PR debug/48204
8872 * simplify-rtx.c (simplify_const_unary_operation): Call
8873 real_convert when changing mode class with FLOAT_EXTEND.
8874
662666e5
NC
88752011-03-24 Nick Clifton <nickc@redhat.com>
8876
8877 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8878 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8879 * config/rx/rx.c (rx_option_override): Set align_jumps,
8880 align_loops and align_labels if not set by the user.
8881 (rx_align_for_label): New function.
8882 (rx_max_skip_for_label): New function.
8883 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8884 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8885 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8886 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8887 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8888
2b99b2b8
RS
88892011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8890
8891 PR rtl-optimization/48263
8892 * optabs.c (expand_binop_directly): Reinstate convert_modes code
8893 and original commutative_p handling. Use maybe_gen_insn.
8894
ccecd6ea
AK
88952011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8896
8897 * reload.c (find_reloads_subreg_address): Add address_reloaded
8898 parameter and return true there if the full address has been
8899 reloaded.
8900 (find_reloads_toplev): Pass address_reloaded flag.
8901 (find_reloads_address_1): Don't use address_reloaded parameter.
8902
67295642
JL
89032011-03-24 Jeff Law <law@redhat.com>
8904
8905 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8906 unused variable "ann".
8907 (remove_unused_locals): Likewise.
8908
8909 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8910 statement.
8911
8912 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8913 after it is freed.
8914
212aa74f
AK
89152011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8916
8917 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8918 for invalid symbolic addresses.
8919 (s390_secondary_reload): Don't use s390_check_symref_alignment for
8920 larl operands.
8921
fe784e0d
EB
89222011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8923
8924 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8925 the argument in calls to fold_truth_not_expr.
8926
63ee8641
NF
89272011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8928
8929 * tree.c (record_node_allocation_statistics): New function.
8930 (make_node_stat, copy_node_stat, build_string): Call it.
8931 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8932 (build1_stat, build_omp_clause): Likewise.
8933
61be2a1c
RS
89342011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8935
8936 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8937 last commit.
8938
a881aaa7
RG
89392011-03-24 Richard Guenther <rguenther@suse.de>
8940
8941 PR tree-optimization/48271
8942 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8943 blocks that still exist.
8944
dbaa912c
RG
89452011-03-24 Richard Guenther <rguenther@suse.de>
8946
8947 PR tree-optimization/48270
8948 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8949 not free datarefs before ddrs.
8950
1d60cc55
EB
89512011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8952
8953 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8954 from the address built for a reference with variable offset.
8955
c78dd519
UB
89562011-03-24 Uros Bizjak <ubizjak@gmail.com>
8957
8958 PR target/48237
8959 * config/i386/i386.md (*movdf_internal_rex64): Do not split
8960 alternatives that can be handled with movq or movabsq insn.
8961 (*movdf_internal): Disable for !TARGET_64BIT.
8962 (*movdf_internal_nointeger): Ditto.
8963 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8964
b25b9e8f
NF
89652011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8966
8967 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8968 (FUNCTION_ARG_ADVANCE): Likewise.
8969 * tm.texi.in: Change references to them to hook references.
8970 * tm.texi: Regenerate.
c78dd519 8971 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
8972 (default_function_incoming_arg): Likewise.
8973 (default_function_arg_advance): Likewise.
c78dd519 8974 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
8975 (function_arg_advance): Likewise.
8976 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8977
190b2187
RG
89782011-03-24 Richard Guenther <rguenther@suse.de>
8979
8980 PR middle-end/48269
8981 * tree-object-size.c (addr_object_size): Do not double-account
8982 for MEM_REF offsets.
8983
a183b5c7
DN
89842011-03-24 Diego Novillo <dnovillo@google.com>
8985
8986 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 8987 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
8988 (lto_input_data_block): Move from lto-opts.c. Make extern.
8989 Update all users.
8990 (lto_input_string): Rename from input_string. Make extern.
8991 Update all users.
8992 * lto-streamer-out.c (lto_output_string_with_length): Rename from
8993 output_string_with_length.
8994 Output 0 to indicate a non-NULL string. Update all callers to
8995 not emit 0.
8996 (lto_output_string): Rename from output_string. Make extern.
8997 Update all users.
8998 (lto_output_decl_state_streams): Make extern.
8999 (lto_output_decl_state_refs): Make extern.
9000 * lto-streamer.h (lto_input_string): Declare.
9001 (lto_input_data_block): Declare.
9002 (lto_output_string): Declare.
9003 (lto_output_string_with_length): Declare.
9004 (lto_output_decl_state_streams): Declare.
9005 (lto_output_decl_state_refs): Declare.
9006
cfef45c8
RG
90072011-03-24 Richard Guenther <rguenther@suse.de>
9008
9009 PR tree-optimization/46562
9010 * tree.c (build_invariant_address): New function.
9011 * tree.h (build_invariant_address): Declare.
9012 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9013 a renamed function moved ...
9014 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9015 Take valueization callback parameter.
9016 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9017 * gimple-fold.h: New file.
9018 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9019 (ccp_fold, fold_const_aggregate_ref,
9020 fold_ctor_reference, fold_nonarray_ctor_reference,
9021 fold_array_ctor_reference, fold_string_cst_ctor_reference,
9022 get_base_constructor): Move ...
9023 * gimple-fold.c: ... here.
9024 (gimple_fold_stmt_to_constant_1): New function
9025 split out from ccp_fold. Take a valueization callback parameter.
9026 Valueize all operands.
9027 (gimple_fold_stmt_to_constant): New wrapper function.
9028 (fold_const_aggregate_ref_1): New function split out from
9029 fold_const_aggregate_ref. Take a valueization callback parameter.
9030 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9031 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9032 invariant POINTER_PLUS_EXPRs to invariant form.
9033 (vn_valueize): New function.
9034 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9035 * tree-vrp.c (vrp_valueize): New function.
9036 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9037 to fold statements to constants.
9038 * tree-ssa-pre.c (eliminate): Properly guard propagation of
9039 function declarations.
9040 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9041 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9042
5e0a7e40
RS
90432011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9044
9045 * config/h8300/predicates.md (jump_address_operand): Fix register
9046 mode check.
9047
bfe068c3
IR
90482011-03-24 Ira Rosen <ira.rosen@linaro.org>
9049
9050 * doc/invoke.texi (max-stores-to-sink): Document.
9051 * params.h (MAX_STORES_TO_SINK): Define.
9052 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9053 if either vectorization or if-conversion is disabled.
9054 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9055 tree-vect-data-refs.c vect_equal_offsets.
9056 (dr_equal_offsets_p): New function.
9057 (find_data_references_in_bb): Remove static.
9058 * tree-data-ref.h (find_data_references_in_bb): Declare.
9059 (dr_equal_offsets_p): Likewise.
9060 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9061 (vect_drs_dependent_in_basic_block): Update calls to
9062 vect_equal_offsets.
9063 (vect_check_interleaving): Likewise.
9064 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9065 (cond_if_else_store_replacement): Rename to...
9066 (cond_if_else_store_replacement_1): ... this. Change arguments and
9067 documentation.
9068 (cond_if_else_store_replacement): New function.
9069 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9070 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9071
4908b0bf
CLT
90722011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
9073
9074 PR target/46934
9075 * config/arm/arm.md (casesi): Use the gen_int_mode() function
9076 to subtract lower bound instead of GEN_INT().
9077
2be478a2
JW
90782011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
9079
9080 PR other/48179
9081 PR other/48221
9082 PR other/48234
9083 * doc/extend.texi (Alignment): Move section to match order in TOC.
9084 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9085 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9086
0c617be4
JL
90872011-03-23 Jeff Law <law@redhat.com>
9088
9089 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9090 before removing the edge.
9091
9092 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9093 it may have been freed by redirect_branch_edge or
9094 redirect_edge_succ_nodup.
9095
58da96fe
RG
90962011-03-23 Richard Guenther <rguenther@suse.de>
9097
c78dd519 9098 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
9099 (check_va_list_escapes): Likewise.
9100 (check_all_va_list_escapes): Likewise.
9101
b8beb4d1
RG
91022011-03-23 Richard Guenther <rguenther@suse.de>
9103
9104 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9105 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9106 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9107 (alias.o): Likewise.
9108 (ipa-type-escape.o): Remove.
9109 (ipa-struct-reorg.o): Likewise.
9110 (GTFILES): Remove ipa-struct-reorg.c.
9111 * alias.c: Do not include ipa-type-escape.h.
9112 * tree-ssa-alias.c: Likewise.
9113 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9114 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9115 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9116 and ipa-type-escape passes.
9117 * tree-pass.h (pass_ipa_type_escape): Remove.
9118 (pass_ipa_struct_reorg): Likewise.
9119 * ipa-struct-reorg.h: Remove.
9120 * ipa-struct-reorg.c: Likewise.
9121 * ipa-type-escape.h: Likewise.
9122 * ipa-type-escape.c: Likewise.
9123 * doc/invoke.texi (-fipa-struct-reorg): Remove.
9124 (--param struct-reorg-cold-struct-ratio): Likewise.
9125 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9126 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9127 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9128
f137aa63
AK
91292011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9130
9131 * config/s390/2084.md: Enable all insn reservations also for z9_ec
9132 cpu attribute value.
9133 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9134 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9135 * config/s390/s390.c (processor_flags_table): New constant array.
9136 (s390_handle_arch_option): Remove.
9137 (s390_handle_option): Remove s390_handle_arch_option invocations
9138 and OPT_mwarn_framesize_ handling.
9139 (s390_option_override): Remove s390_handle_arch_option invocation.
9140 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9141 warnings.
9142 * config/s390/s390.md (cpu attribute): Add z9_ec value.
9143 * config/s390/s390.opt (s390_tune, s390_arch)
9144 (march=): Replace s390_arch_option enum and values with
9145 processor_type. Set variable name to s390_arch. Set
9146 initialization value.
9147 (mtune=): Replace s390_arch_option with processor_type. Set
9148 variable name to s390_tune. Set initialization value.
9149
bf90208f
JB
91502011-03-23 Julian Brown <julian@codesourcery.com>
9151
9152 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9153 accesses which are not naturally aligned.
9154
3460fdf3
RS
91552011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9156
9157 PR target/47553
9158 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9159
a5c7d693
RS
91602011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9161
9162 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9163 parameter from "int" to "enum insn_code".
9164 (expand_operand_type): New enum.
9165 (expand_operand): New structure.
9166 (create_expand_operand): New function.
9167 (create_fixed_operand, create_output_operand): Likewise
9168 (create_input_operand, create_convert_operand_to): Likewise.
9169 (create_convert_operand_from, create_address_operand): Likewise.
9170 (create_integer_operand): Likewise.
9171 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9172 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9173 (expand_insn, expand_jump_insn): Likewise.
9174 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9175 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9176 (expand_movstr, expand_builtin___clear_cache): Likewise.
9177 (expand_builtin_lock_release): Likewise.
9178 * explow.c (allocate_dynamic_stack_space): Likewise.
9179 (probe_stack_range): Likewise. Allow check_stack to FAIL,
9180 and use the default handling in that case.
9181 * expmed.c (check_predicate_volatile_ok): Delete.
9182 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9183 (emit_cstore): Likewise.
9184 * expr.c (emit_block_move_via_movmem): Likewise.
9185 (set_storage_via_setmem, expand_assignment): Likewise.
9186 (emit_storent_insn, try_casesi): Likewise.
9187 (emit_single_push_insn): Likewise. Allow the expansion to fail.
9188 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9189 (expand_vec_shift_expr, expand_binop_directly): Likewise.
9190 (expand_twoval_unop, expand_twoval_binop): Likewise.
9191 (expand_unop_direct, emit_indirect_jump): Likewise.
9192 (emit_conditional_move, vector_compare_rtx): Likewise.
9193 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9194 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9195 (expand_sync_lock_test_and_set): Likewise.
9196 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
9197 (emit_unop_insn): Likewise.
9198 (expand_copysign_absneg): Change icode to an insn_code.
9199 (create_convert_operand_from_type): New function.
9200 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9201 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9202 (expand_insn, expand_jump_insn): Likewise.
9203 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9204 than const_int_operand for operand 2.
9205
78fadbab
AK
92062011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9207
9208 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9209 if possible.
9210
5f02387d
NF
92112011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9212
9213 * emit-rtl.c (emit_pattern_before_noloc): New function.
9214 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9215 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9216 (emit_pattern_after_noloc): New function.
9217 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9218 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9219
fdf3e18a
NF
92202011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9221
9222 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9223 (__ffsDI2): Likewise.
9224
42d085c1
RH
92252011-03-22 Richard Henderson <rth@redhat.com>
9226
9227 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9228 of !TARGET_ABI_OPEN_VMS.
9229 (alpha_trampoline_init, alpha_start_function): Likewise.
9230 (alpha_expand_epilogue, alpha_file_start): Likewise.
9231 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9232 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9233 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9234 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9235 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9236
cabbe12a
JM
92372011-03-22 Joseph Myers <joseph@codesourcery.com>
9238
9239 * config/s390/s390-opts.h: New.
9240 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9241 s390_arch_flags, s390_warn_framesize, s390_stack_size,
9242 s390_stack_guard): Remove.
9243 (s390_handle_arch_option): Return void. Take enum
9244 s390_arch_option value instead of string and searching array.
9245 (s390_handle_option): Don't assert that global structures are in
9246 use. Access variables via opts pointer. Use error_at. Don't use
9247 sscanf for -mstack-guard= or -mstack-size=. Update call to
9248 s390_handle_arch_option.
9249 (s390_option_override): Update call to s390_handle_arch_option.
9250 (s390_emit_prologue): Use %d format for s390_stack_size in
9251 diagnostic. Use %wd for HOST_WIDE_INT.
9252 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9253 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9254 * config/s390/s390.opt (config/s390/s390-opts.h): New
9255 HeaderInclude entry.
9256 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9257 s390_arch_flags, s390_warn_framesize): New Variable entries.
9258 (s390_arch_option): New Enum and EnumValue entries.
9259 (march=): Use Enum instead of Var.
9260 (mstack-guard=, mstack-size=): Use UInteger and Var.
9261 (mtune=): Use Enum.
9262
05b12036
JM
92632011-03-22 Joseph Myers <joseph@codesourcery.com>
9264
9265 * config/score/score.c (score_handle_option): Don't assert that
9266 global structures are in use. Access target_flags via opts
9267 pointer. Use value of -march= option to determine target_flags
9268 settings.
9269 * config/score/score.opt (march=): Use Enum.
9270 (score_arch): New Enum and EnumValue entries.
9271
dd51e35a
JM
92722011-03-22 Joseph Myers <joseph@codesourcery.com>
9273
9274 * config/mep/mep.c (option_mtiny_specified): Remove.
9275 (mep_option_override): Move register handling for -mivc2 from
9276 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
9277 instead of option_mtiny_specified.
9278 (mep_handle_option): Access target_flags via opts pointer. Don't
9279 assert that global structures are in use. Defer part of -mivc2
9280 handling and move it to mep_option_override.
9281 * config/mep/mep.opt (IVC2): New Mask entry.
9282 (mivc2): Use Var and Defer instead of Mask.
9283
4a8d3d91
JM
92842011-03-22 Joseph Myers <joseph@codesourcery.com>
9285
9286 * config/v850/v850-opts.h: New.
9287 * config/v850/v850.c (small_memory): Replace with
9288 small_memory_physical_max array. Make that array static const.
9289 (v850_handle_memory_option): Take integer value of argument. Take
9290 gcc_options pointer, option text and location. Return void.
9291 Update for changes to small memory structures.
9292 (v850_handle_option): Access target_flags via opts pointer. Don't
9293 assert that global structures are in use. Update calls to
9294 v850_handle_memory_option.
c78dd519
UB
9295 (v850_encode_data_area): Update references to small memory settings.
9296 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
9297 (enum small_memory_type): Move to v850-opts.h.
9298 * config/v850/v850.opt (config/v850/v850-opts.h): New
9299 HeaderInclude entry.
9300 (small_memory_max): New Variable entry.
9301 (msda): Replace by pair of options msda= and msda-. Use UInteger.
9302 (mtda, mzda): Likewise.
9303
117fdbfa
JM
93042011-03-22 Joseph Myers <joseph@codesourcery.com>
9305
9306 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9307 pointer. Don't assert that global structures are in use.
9308
d715091c
JM
93092011-03-22 Joseph Myers <joseph@codesourcery.com>
9310
9311 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9312 via opts pointer. Don't assert that global structures are in use.
9313
1bb721dc
JM
93142011-03-22 Joseph Myers <joseph@codesourcery.com>
9315
9316 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9317 (munix=93): Use Var.
9318 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9319 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9320 * config/pa/pa-opts.h: New.
9321 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9322 (pa_handle_option): Don't assert that global structures are in
9323 use. Access target_flags via opts pointer. Don't handle
9324 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9325 OPT_munix_98 here.
9326 (pa_option_override): Handle deferred OPT_mfixed_range_.
9327
cd8d8754
JM
93282011-03-22 Joseph Myers <joseph@codesourcery.com>
9329
9330 * config/mn10300/mn10300-opts.h: New.
9331 * config/mn10300/mn10300.c (mn10300_processor,
9332 mn10300_tune_string): Remove.
9333 (mn10300_handle_option): Don't assert that global structures are
9334 in use. Access mn10300_processor via opts pointer. Don't handle
9335 OPT_mtune_ here.
9336 * config/mn10300/mn10300.h (enum processor_type): Move to
9337 mn10300-opts.h.
9338 (mn10300_processor): Remove.
9339 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9340 HeaderInclude entry.
9341 (mn10300_processor): New Variable entry.
9342 (mtune=): Use Var.
9343
24e6e6b1
JM
93442011-03-22 Joseph Myers <joseph@codesourcery.com>
9345
9346 * config/microblaze/microblaze.c: Don't include opts.h.
9347 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9348 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9349 (mno-clearbss): Use Var and Warn.
9350
8a784afb
JM
93512011-03-22 Joseph Myers <joseph@codesourcery.com>
9352
9353 * config/m32r/m32r-opts.h: New.
9354 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9355 (m32r_handle_option): Don't assert that global structures are in
9356 use. Access target_flags and m32r_cache_flush_func via opts
9357 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
9358 OPT_mno_flush_trap here.
9359 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9360 include of m32r-opts.h.
9361 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9362 HeaderInclude entry.
9363 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9364 (mmodel=): Use Enum and Var.
9365 (m32r_model): New Enum and EnumValue entries.
9366 (mno-flush-trap): Use Var.
9367 (msdata=): Use Enum and Var.
9368 (m32r_sdata): New Enum and EnumValue entries.
9369
bbfc9a8c
JM
93702011-03-22 Joseph Myers <joseph@codesourcery.com>
9371
9372 * config/m32c/m32c.c: Don't include opts.h.
9373 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9374 m32c_handle_option): Remove.
9375 (m32c_option_override): Check global_options_set.x_target_memregs
9376 instead of target_memregs_set.
9377 * config/m32c/m32c.h (target_memregs): Remove.
9378 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9379 variable.
9380
e24b8335
JM
93812011-03-22 Joseph Myers <joseph@codesourcery.com>
9382
9383 * config/iq2000/iq2000-opts.h: New.
9384 * config/iq2000/iq2000.c: Don't include opts.h.
9385 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9386 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
9387 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9388 HeaderInclude entry.
9389 (iq2000_tune): New Variable entry.
9390 (march=): Add comment. Use Enum.
9391 (iq2000_arch): New Enum and EnumValue entries.
9392 (mcpu=): Use Enum and Var.
9393 (iq2000_tune): New Enum and EnumValue entries.
9394
e6cc0c98
JM
93952011-03-22 Joseph Myers <joseph@codesourcery.com>
9396
9397 * config/ia64/ia64-opts.h: New.
9398 * config/ia64/ia64.c (ia64_tune): Remove.
9399 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9400 here. Use error_at.
9401 (ia64_option_override): Handle deferred OPT_mfixed_range_.
9402 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9403 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9404 HeaderInclude entry.
9405 (ia64_tune): New Variable entry.
9406 (mfixed-range=): Use Defer and Var.
9407 (mtune=): Use Enum and Var.
9408 (ia64_tune): New Enum and EnumValue entries.
9409
db25893c
JM
94102011-03-22 Joseph Myers <joseph@codesourcery.com>
9411
9412 * config/frv/frv-opts.h: New.
9413 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9414 frv-opts.h.
9415 (frv_cpu_type): Remove.
9416 * config/frv/frv.c: Don't include opts.h.
9417 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9418 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
9419 (frv_cpu_type): New Variable entry.
9420 (frv_cpu): New Enum and EnumValue entries.
9421
6c223f5d
JM
94222011-03-22 Joseph Myers <joseph@codesourcery.com>
9423
9424 * config/cris/cris.c (cris_handle_option): Access target_flags via
9425 opts pointer. Don't assert that global structures are in use.
9426 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9427 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9428
bbd399cf
JM
94292011-03-22 Joseph Myers <joseph@codesourcery.com>
9430
9431 * config/bfin/bfin-opts.h: New.
9432 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9433 bfin_si_revision, bfin_workarounds): Remove.
9434 (bfin_cpus): Make static const.
9435 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9436 not bfin_lib_id_given.
9437 (bfin_handle_option): Don't set bfin_lib_id_given. Access
9438 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 9439 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
9440 * config/bfin/bfin.h: Include bfin-opts.h.
9441 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9442 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9443 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9444 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9445 entries.
9446
5e1b4d5a
JM
94472011-03-22 Joseph Myers <joseph@codesourcery.com>
9448
9449 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9450 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9451 or -msoft-float here.
9452 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9453 -msoft-float and -mhard-float.
c78dd519 9454 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
9455 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9456 msoft-float.
9457 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9458 -msoft-float.
9459 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9460 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9461 not mhard-float.
9462 (LIBGCC_SPEC): Don't handle -msoft-float.
9463 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9464 -mhard-float.
9465 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9466 msoft-float.
9467 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9468 -mfloat-abi=*, not -msoft-float and -mhard-float.
9469 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9470 -msoft-float.
9471 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9472 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9473 mhard-float and msoft-float.
9474 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9475 mfloat-abi=soft in comments, not mhard-float and msoft-float.
9476 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9477 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9478 mhard-float.
9479 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9480 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9481 msoft-float.
9482 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9483 not mhard-float.
9484 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9485 not msoft-float.
9486
800d1de1
RH
94872011-03-22 Richard Henderson <rth@redhat.com>
9488
9489 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9490 TARGET_ABI_WINDOWS_NT.
9491 (alpha_output_function_end_prologue): Likewise.
9492 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9493 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9494 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9495 (trap, *movsi_nt_vms): Likewise.
9496 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9497 (*tablejump_osf_nt_internal): Remove.
9498 * config/alpha/predicates.md (input_operand): Only test Pmode.
9499
c59ddd2b
JM
95002011-03-22 Joseph Myers <joseph@codesourcery.com>
9501
9502 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9503 via opts pointer. Use error_at. Don't assert that global
9504 structures are in use.
9505
1333f97f
JM
95062011-03-22 Joseph Myers <joseph@codesourcery.com>
9507
9508 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9509 (ix86_handle_option): Access ix86_isa_flags and
9510 ix86_isa_flags_explicit via opts pointer. Don't assert that
9511 global structures are in use.
9512 (ix86_function_specific_save, ix86_function_specific_restore):
9513 Update ix86_isa_flags_explicit field name.
c78dd519 9514 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
9515 (ix86_isa_flags_explicit): Rename TargetSave entry to
9516 x_ix86_isa_flags_explicit.
9517
75db85d8
RH
95182011-03-22 Richard Henderson <rth@redhat.com>
9519
9520 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9521 (alpha_option_override, direct_return): Likewise.
9522 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9523 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9524 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9525 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9526 (alpha_expand_epilogue, alpha_end_function): Likewise.
9527 (alpha_init_libfuncs): Likewise.
9528 (struct machine_function): Remove unicosmk members.
9529 (print_operand) ['t']: Remove.
9530 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9531 unicosmk_output_module_name, unicosmk_output_common,
9532 current_section_align, unicosmk_output_text_section_asm_op,
9533 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9534 unicosmk_section_type_flags, unicosmk_unique_section,
9535 unicosmk_asm_named_section, unicosmk_insert_attributes,
9536 unicosmk_output_align, unicosmk_defer_case_vector,
9537 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9538 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9539 unicosmk_output_ssib, unicosmk_add_call_info_word,
9540 unicosmk_extern_head, unicosmk_output_default_externs,
9541 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9542 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9543 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9544 * config/alpha/alpha-protos.h: Update.
9545 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9546 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9547 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9548 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9549 (*mulsi_se, mulvsi3): Likewise.
9550 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9551 (*divmodsi_internal, call, call_value, realign): Likewise.
9552 (moddi3, umoddi3): Likewise; remove duplicate expander.
9553 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9554 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9555 (*movdi_nofix): Remove r/U alternative.
9556 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9557 * config/alpha/constraints.md ("U"): Remove.
9558 * config/alpha/predicates.md (call_operand"): Don't test
9559 TARGET_ABI_UNICOSMK.
9560
96e45421
JM
95612011-03-22 Joseph Myers <joseph@codesourcery.com>
9562
9563 * target.def (handle_option): Take gcc_options and
9564 cl_decoded_option pointers and location_t.
9565 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9566 * doc/tm.texi: Regenerate.
9567 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9568 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9569 * lto-opts.c (lto_reissue_options): Generate option structure for
9570 targetm.handle_option call.
9571 * opts.c (target_handle_option): Update call to
9572 targetm.handle_option. Remove assertions about values now passed
9573 down to hook.
9574 * targhooks.c (default_target_handle_option): New.
9575 * targhooks.h (default_target_handle_option): Declare.
9576 * config/alpha/alpha.c: Include opts.h.
9577 (alpha_handle_option): Update to new hook interface.
9578 * config/arm/arm.c: Include opts.h.
9579 (arm_handle_option): Update to new hook interface.
9580 * config/arm/t-arm (arm.o): Update dependencies.
9581 * config/bfin/bfin.c: Include opts.h.
9582 (bfin_handle_option): Update to new hook interface.
9583 * config/cris/cris.c: Include opts.h.
9584 (cris_handle_option): Update to new hook interface.
9585 * config/frv/frv.c: Include opts.h.
9586 (frv_handle_option): Update to new hook interface.
9587 * config/i386/i386.c: Include opts.h.
9588 (ix86_handle_option): Update to new hook interface.
9589 (ix86_valid_target_attribute_inner_p): Generate option structure
9590 for call to ix86_handle_option.
9591 * config/i386/t-i386 (i386.o): Update dependencies.
9592 * config/ia64/ia64.c: Include opts.h.
9593 (ia64_handle_option): Update to new hook interface.
9594 * config/ia64/t-ia64 (ia64.o): Update dependencies.
9595 * config/iq2000/iq2000.c: Include opts.h.
9596 (iq2000_handle_option): Update to new hook interface.
9597 * config/m32c/m32c.c: Include opts.h.
9598 (m32c_handle_option): Update to new hook interface.
9599 * config/m32r/m32r.c: Include opts.h.
9600 (m32r_handle_option): Update to new hook interface.
9601 * config/m68k/m68k.c: Include opts.h.
9602 (m68k_handle_option): Update to new hook interface.
9603 * config/mep/mep.c: Include opts.h.
9604 (mep_handle_option): Update to new hook interface.
9605 * config/microblaze/microblaze.c: Include opts.h.
9606 (microblaze_handle_option): Update to new hook interface.
9607 * config/mips/mips.c: Include opts.h.
9608 (mips_handle_option): Update to new hook interface.
9609 * config/mn10300/mn10300.c: Include opts.h.
9610 (mn10300_handle_option): Update to new hook interface.
9611 * config/pa/pa.c: Include opts.h.
9612 (pa_handle_option): Update to new hook interface.
9613 * config/pdp11/pdp11.c: Include opts.h.
9614 (pdp11_handle_option): Update to new hook interface.
9615 * config/rs6000/rs6000.c: Include opts.h.
9616 (rs6000_handle_option): Update to new hook interface.
9617 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9618 * config/rx/rx.c: Include opts.h.
9619 (rx_handle_option): Update to new hook interface.
9620 * config/s390/s390.c: Include opts.h.
9621 (s390_handle_option): Update to new hook interface.
9622 * config/score/score.c: Include opts.h.
9623 (score_handle_option): Update to new hook interface.
9624 * config/sh/sh.c: Include opts.h.
9625 (sh_handle_option): Update to new hook interface.
9626 * config/sparc/sparc.c: Include opts.h.
9627 (sparc_handle_option): Update to new hook interface.
9628 * config/v850/v850.c: Include opts.h.
9629 (v850_handle_option): Update to new hook interface.
9630
66017846
JM
96312011-03-22 Joseph Myers <joseph@codesourcery.com>
9632
9633 * gcc.c (driver_unknown_option_callback): Only permit and save
9634 unknown -Wno- options.
9635 (driver_wrong_lang_callback): Save options directly instead of via
9636 driver_unknown_option_callback.
9637
e8b97ccd
EB
96382011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9639
9640 * combine.c (simplify_set): Try harder to find the best CC mode when
9641 simplifying a nested COMPARE on the RHS.
9642
ebb9f8b0
JM
96432011-03-22 Joseph Myers <joseph@codesourcery.com>
9644
9645 * config/alpha/gnu.h: Remove.
9646 * config/arc: Remove directory.
9647 * config/arm/netbsd.h: Remove.
9648 * config/arm/t-pe: Remove.
9649 * config/crx: Remove directory.
9650 * config/i386/netbsd.h: Remove.
9651 * config/m68hc11: Remove directory.
9652 * config/m68k/uclinux-oldabi.h: Remove.
9653 * config/mcore/mcore-pe.h: Remove.
9654 * config/mcore/t-mcore-pe: Remove.
9655 * config/netbsd-aout.h: Remove.
9656 * config/rs6000/gnu.h: Remove.
9657 * config/sh/sh-symbian.h: Remove.
9658 * config/sh/symbian-base.c: Remove.
9659 * config/sh/symbian-c.c: Remove.
9660 * config/sh/symbian-cxx.c: Remove.
9661 * config/sh/symbian-post.h: Remove.
9662 * config/sh/symbian-pre.h: Remove.
9663 * config/sh/t-symbian: Remove.
9664 * config/svr3.h: Remove.
9665 * config/vax/netbsd.h: Remove.
9666 * config.build: Don't handle i[34567]86-*-pe.
9667 * config.gcc: Remove handling of deprecations for most deprecated
9668 targets.
9669 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9670 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9671 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9672 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9673 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9674 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9675 Remove cases.
9676 * config.host: Don't handle i[34567]86-*-pe.
9677 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9678 (ASM_SPEC32): Don't handle -mcall-gnu.
9679 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9680 -mcall-gnu.
9681 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9682 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9683 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9684 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9685 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9686 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9687 conditional on SYMBIAN.
9688 * configure.ac: Don't handle powerpc*-*-gnu*.
9689 * configure: Regenerate.
9690 * doc/extend.texi (interrupt attribute): Don't mention CRX.
9691 * doc/install-old.texi (m6811, m6812): Don't mention.
9692 * doc/install.texi (arc-*-elf*): Don't document multilib option.
9693 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9694 (m68k-uclinuxoldabi): Don't mention.
9695 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9696 Remove.
9697 (-mcall-gnu): Remove.
9698 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9699 families): Remove constraint documentation.
9700
999a7d80
MS
97012011-03-22 Marius Strobl <marius@FreeBSD.org>
9702
9703 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9704 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9705 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9706
45540bcf
MM
97072011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9708
9709 PR target/48226
9710 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9711 vector when peeking at the next token for vector, don't expand the
9712 keywords.
9713
980a0ff4
GJL
97142011-03-21 Georg-Johann Lay <avr@gjlay.de>
9715
9716 * config/avr/avr-protos.h (expand_epilogue): Change prototype
9717 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9718 * config/avr/avr.c (init_cumulative_args)
9719 (avr_function_arg_advance): Use it.
9720 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9721 sibcall epilogues.
9722 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9723 (avr_function_ok_for_sibcall): ...this new function.
9724 (avr_lookup_function_attribute1): New static Function.
9725 (avr_naked_function_p, interrupt_function_p)
9726 (signal_function_p, avr_OS_task_function_p)
9727 (avr_OS_main_function_p): Use it.
9728 * config/avr/avr.md ("sibcall", "sibcall_value")
9729 ("sibcall_epilogue"): New expander.
9730 ("*call_insn", "*call_value_insn"): New insn.
9731 ("call_insn", "call_value_insn"): Remove
9732 ("call", "call_value", "epilogue"): Change expander to handle
9733 sibling calls.
9734
49168734
NC
97352011-03-21 Nick Clifton <nickc@redhat.com>
9736
9737 * doc/invoke.texi (Overall Options): Move closing brace to end of
9738 options list.
9739 (Optimization Options): Add missing @gol.
9740 (Directory Options): Likewise.
9741 (i386 and x86-64 Options): Likewise.
9742 (RS6000 and PowerPC Options): Likewise.
9743 (i386 and x86-64 Windows Options): Likewise.
9744 (V850 Options): Add text missing from descriptions.
9745
bdfe906f
RH
97462011-03-22 Richard Henderson <rth@redhat.com>
9747
9748 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9749 (avr_incoming_return_addr_rtx): New.
9750 (emit_push_byte): New.
9751 (expand_prologue): Use it. Remove incorrect dwarf annotation for
9752 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
9753 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
9754 (emit_pop_byte): New.
9755 (expand_epilogue): Use it. Pop frame pointer by bytes.
9756 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9757 (INCOMING_RETURN_ADDR_RTX): New.
9758 (INCOMING_FRAME_SP_OFFSET): New.
9759 (ARG_POINTER_CFA_OFFSET): New.
9760 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9761 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9762 (pophi): Remove.
9763
d090a5aa
RH
9764 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9765
fdf3e18a
NF
97662011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9767
9768 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9769 (FUNCTION_ARG_ADVANCE): Likewise.
9770 * tm.texi.in: Change references to them to hook references.
9771 * tm.texi: Regenerate.
9772 * targhooks.c (default_function_arg): Eliminate check for target
9773 macro.
9774 (default_function_incoming_arg): Likewise.
9775 (default_function_arg_advance): Likewise.
c78dd519 9776 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
9777 (function_arg_advance): Likewise.
9778 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9779
009d3fcf
NF
97802011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9781
9782 * tree.c (build_call_1): New function.
9783 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9784
7bec30e1
RG
97852011-03-22 Richard Guenther <rguenther@suse.de>
9786
9787 PR tree-optimization/48228
9788 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9789 for single-arg PHIs.
9790
0b7e851b
AB
97912011-03-22 Andrey Belevantsev <abel@ispras.ru>
9792
9793 PR rtl-optimization/48143
9794 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9795 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9796 sse2_cvtps2pd): Likewise.
9797
d89afca5
AK
97982011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9799
9800 * recog.c (canonicalize_change_group): Use validate_unshare_change.
9801
f471fe72
RG
98022011-03-22 Richard Guenther <rguenther@suse.de>
9803
9804 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9805 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9806 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9807 and REALIGN_LOAD_EXPR.
9808 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9809 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9810 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9811 DOT_PROD_EXPR case ...
9812 (expand_expr_real_2): ... here.
9813 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9814 and REALIGN_LOAD_EXPR.
9815 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9816 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9817 (vect_create_epilog_for_reduction): Likewise.
9818 (vectorizable_reduction): Likewise.
9819 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9820 * tree-vect-stmts.c (vectorizable_load): Likewise.
9821
f2f81d57
EB
98222011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9823
9824 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9825
ab081dd6
AK
98262011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9827
9828 * config/s390/s390.c (s390_delegitimize_address): Fix offset
9829 handling for PLTOFF/GOTOFF.
9830
6fd5332b
NC
98312011-03-22 Nick Clifton <nickc@redhat.com>
9832
9833 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9834 trailing backslash from the end of the macro definition.
9835
01841ac0
AK
98362011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9837
9838 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9839 and PLT unspecs.
9840
2ef6ce06
RS
98412011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
9842
9843 * expr.h (prepare_operand): Move to...
9844 * optabs.h (prepare_operand): ...here and change the insn code
9845 parameter from "int" to "enum insn_code".
9846 (insn_operand_matches): Declare.
9847 * expr.c (init_expr_target): Use insn_operand_matches.
9848 (compress_float_constant): Likewise.
9849 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9850 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9851 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
9852 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9853 Likewise.
2ef6ce06
RS
9854 (gen_cond_trap): Likewise.
9855 (prepare_operand): Likewise. Change icode to an insn_code.
9856 (insn_operand_matches): New function.
9857 * reload.c (find_reloads_address_1): Use insn_operand_matches.
9858 * reload1.c (gen_reload): Likewise.
9859 * targhooks.c (default_secondary_reload): Likewise.
9860
9e43ad68
UB
98612011-03-21 Uros Bizjak <ubizjak@gmail.com>
9862
9a96da32
UB
9863 * config/alpha/alpha.md (unspec): New define_c_enum.
9864 (unspecv): Ditto.
9865
98662011-03-21 Uros Bizjak <ubizjak@gmail.com>
9867
9868 PR debug/48214
9e43ad68
UB
9869 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9870 between a call and its CALL_ARG_LOCATION note.
9871
31408f60
EB
98722011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9873
9874 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9875
98762011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
9877
9878 PR c/42544
9879 PR c/48197
9880 * c-common.c (shorten_compare): If primopN is first sign-extended
9881 to opN and then zero-extended to result type, set primopN to opN.
9882
9dfd55f5
DJ
98832011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
9884
9885 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9886 for barrier handlers.
9887
f3c33d9d
MM
98882011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9889
9890 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9891 UNSPEC constants to be in the unspec enumeration, and redefine
9892 all UNSPECV constants to be in the unspecv enumeration, so that
9893 dumps print which unspec/unspec_volatile this is.
9894 * config/rs6000/vector.md (UNSPEC_*): Ditto.
9895 * config/rs6000/paired.md (UNSPEC_*): Ditto.
9896 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9897 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9898 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9899
9900 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9901 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9902 UNSPECV_LWSYNC, since these are used as unspec_volatile.
9903 * config/rs6000/sync.md (isync, lwsync): Ditto.
9904
ac43f774
RG
99052011-03-21 Richard Guenther <rguenther@suse.de>
9906
9907 * params.def (lto-min-partition): Fix typo.
9908
411cdbd8
RG
99092011-03-21 Richard Guenther <rguenther@suse.de>
9910
9911 PR c/47939
9912 * c-decl.c (grokdeclarator): Drop to the main variant only
9913 for array types. Drop flag_gen_aux_info check.
9914
1cd9e416
RG
99152011-03-21 Richard Guenther <rguenther@suse.de>
9916
9917 PR translation/47911
9918 * params.def (lto-partitions): Fix typo.
9919 (lto-min-partition): Fix wording.
9920
ada5ad67
AT
99212011-03-21 Andreas Tobler <andreast@fgznet.ch>
9922
9923 * config/rs6000/t-freebsd: Remove duplication from file.
9924
f9613c9a
RG
99252011-03-21 Richard Guenther <rguenther@suse.de>
9926
9927 PR middle-end/47661
9928 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9929
9bfbc1eb
RG
99302011-03-21 Richard Guenther <rguenther@suse.de>
9931
9932 PR lto/48210
9933 * params.def (lto-partitions): Require at least 1 partition.
9934
a2268084
RO
99352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9936
9937 * gthr-solaris.h: Remove.
9938 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9939 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9940 (LIB_SPEC): Likewise.
9941 * config/sol2.opt (threads): Remove.
9e43ad68 9942 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
9943 (sparc*-*-solaris2*): Likewise.
9944 * configure.ac (enable_threads): Enable solaris support.
9945 * configure: Regenerate.
9e43ad68 9946 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
9947 * doc/install.texi (Configuration, --enable-threads=lib): Remove
9948 solaris.
9949
c43d9a1b
RO
99502011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9951
9952 * config.gcc: Obsolete *-*-solaris2.8*.
9953 * doc/install.texi (Specific, *-*-solaris2*): Document it.
9954
084239f4
RO
99552011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9956
9957 PR bootstrap/48135
9958 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9959 reference. Solaris 8 perl works.
9960
64cadbe7
RO
99612011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9962
9963 PR bootstrap/48135
9964 * doc/install.texi (Prerequisites): Move jar etc. up.
9965 Explain support library version requirements.
9966
eb975109
RO
99672011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9968
9969 PR bootstrap/48135
9970 * doc/install.texi (Prerequisites): Move Perl to build
9971 requirements. Always necessary on Solaris 2 with Sun ld.
9972
8a509ffd
RO
99732011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9974
9975 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9976 binutils 2.21.
9977 (Specific, i?86-*-solaris2.[89]): Likewise.
9978 (Specific, i?86-*-solaris2.10): Likewise.
9979 (Specific, mips-sgi-irix6): Likewise.
9980 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9981 Update for binutils 2.21.
9982
8fbc58a1
RO
99832011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9984
9985 * configure.ac (gcc_cv_lto_plugin): Fix typo.
9986 Allow -fuse-linker-plugin for non-default plugin linker.
9987 * configure: Regenerate.
9988
7e84ad0b
NP
99892011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
9990
9991 PR bootstrap/48167
9992 * gengtype.c (files_rules): Added rule for cp/parser.h.
9993
2f36e14b
JJ
99942011-03-21 Jakub Jelinek <jakub@redhat.com>
9995
9996 PR target/48213
9997 * config/s390/s390.c (s390_delegitimize_address): Don't call
9998 lowpart_subreg if orig_x has BLKmode.
9999
62d784f7
KT
100002011-03-21 Kai Tietz <ktietz@redhat.com>
10001
10002 PR target/12171
9e43ad68
UB
10003 * doc/plugins.texi: Adjust documentation for plugin register_callback.
10004 * tree.h (attribute_spec): Add new member affects_type_identity.
10005 * attribs.c (empty_attribute_table): Adjust attribute_spec
10006 initializers.
62d784f7
KT
10007 * config/alpha/alpha.c: Likewise.
10008 * config/arc/arc.c: Likewise.
10009 * config/arm/arm.c: Likewise.
10010 * config/avr/avr.c: Likewise.
10011 * config/bfin/bfin.c: Likewise.
10012 * config/crx/crx.c: Likewise.
10013 * config/darwin.h: Likewise.
10014 * config/h8300/h8300.c: Likewise.
10015 * config/i386/cygming.h: Likewise.
10016 * config/i386/i386.c: Likewise.
10017 * config/ia64/ia64.c: Likewise.
10018 * config/m32c/m32c.c: Likewise.
10019 * config/m32r/m32r.c: Likewise.
10020 * config/m68hc11/m68hc11.c: Likewise.
10021 * config/m68k/m68k.c: Likewise.
10022 * config/mcore/mcore.c: Likewise.
10023 * config/mep/mep.c: Likewise.
10024 * config/microblaze/microblaze.c: Likewise.
10025 * config/mips/mips.c: Likewise.
10026 * config/rs6000/rs6000.c: Likewise.
10027 * config/rx/rx.c: Likewise.
10028 * config/sh/sh.c: Likewise.
10029 * config/sol2.h: Likewise.
10030 * config/sparc/sparc.c: Likewise.
10031 * config/spu/spu.c: Likewise.
10032 * config/stormy16/stormy16.c: Likewise.
10033 * config/v850/v850.c: Likewise.
10034
54833ec0
CLT
100352011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
10036
10037 * simplify-rtx.c (simplify_binary_operation_1): Handle
10038 (xor (and A B) C) case when B and C are both constants.
10039
14a41392
MX
100402011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
10041
10042 * tree-dfa.c (add_referenced_var): Fix typo in comment.
10043
806c3492
EB
100442011-03-20 Eric Botcazou <ebotcazou@adacore.com>
10045
10046 PR bootstrap/48168
10047 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10048
65e0a0f3
JJ
100492011-03-20 Jakub Jelinek <jakub@redhat.com>
10050
10051 PR rtl-optimization/48156
10052 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10053 assume df and df_lr are not NULL.
10054
b6a75dda
RR
100552011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10056
10057 PR debug/48023
10058 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10059 between a call and its CALL_ARG_LOCATION note.
10060
5969b52d
KK
100612011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10062
10063 PR debug/48178
10064 * config/sh/sh.c (find_barrier): Don't emit a constant pool
10065 between a call and its corresponding CALL_ARG_LOCATION note.
10066
f773c2bd
AS
100672011-03-19 Anatoly Sokolov <aesok@post.ru>
10068
10069 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10070 instead of loop. Use HARD_REGISTER_NUM_P predicate.
10071 * haifa-sched.c (setup_ref_regs): Ditto.
10072 * caller-save.c (add_used_regs_1): Ditto.
10073 * dse.c (look_for_hardregs): Ditto.
10074 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10075 * sched-rgn.c (check_live_1): Ditto.
10076
8bf872f9
JM
100772011-03-18 Joseph Myers <joseph@codesourcery.com>
10078
10079 * c-decl.c (diagnose_mismatched_decls): Give an error for
10080 redefining a typedef with variably modified type.
10081
ff8e2159
JM
100822011-03-18 Joseph Myers <joseph@codesourcery.com>
10083
10084 * c-decl.c (grokfield): Don't allow typedefs for structures or
10085 unions with no tag by default.
10086 * doc/extend.texi (Unnamed Fields): Update.
10087
16cc4440
UB
100882011-03-18 Uros Bizjak <ubizjak@gmail.com>
10089
10090 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10091 Rewrite using indirect functions.
10092 (lwp_slwpcb): Ditto.
10093 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10094 (avx_vinsertf128<mode>): Ditto.
10095
e101e12e
AK
100962011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10097
10098 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10099 unspecs.
10100
4627c7fb
AK
101012011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10102
10103 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 10104 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 10105
2d36b47f
MK
101062011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10107
10108 PR rtl-optimization/48170
10109 * gcse.c (hoist_code): Remove bogus asserts.
10110
2a3d7659
JL
101112011-03-18 Georg-Johann Lay <avr@gjlay.de>
10112
10113 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10114 computation for prologue/epilogue.
10115
34c3ef05
RO
101162011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10117
10118 * Makefile.in (check-consistency): Remove.
10119
81f2b976
JJ
101202011-03-18 Jakub Jelinek <jakub@redhat.com>
10121
10122 PR debug/48176
10123 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10124 arange_table_in_use is 0, but either text_section_used or
10125 cold_text_section_used is true. Don't call it if
10126 !info_section_emitted.
10127
68fd7765
AS
101282011-03-18 Anatoly Sokolov <aesok@post.ru>
10129
10130 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10131 FUNCTION_VALUE_REGNO_P): Remove.
10132 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10133 Remove.
10134 * config/avr/avr.c (avr_ret_register): Make static inline.
10135 (avr_function_value_regno_p): New function.
10136 (avr_libcall_value): Make static. Add 'func' argument.
10137 (avr_function_value): Make static. Rename 'func' argument to
10138 'fn_decl_or_type', forward it to avr_libcall_value. Call
10139 avr_ret_register function instead of RET_REGISTER macro.
10140 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10141
b4ef8aac
JM
101422011-03-18 Jason Merrill <jason@redhat.com>
10143
10144 PR c++/23372
10145 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10146
09a52fc3
RG
101472011-03-18 Richard Guenther <rguenther@suse.de>
10148
10149 * doc/install.texi (--enable-gold): Remove.
10150 (--with-plugin-ld): Document.
10151 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10152
2a3d7659 101532011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
10154
10155 PR middle-end/47790
10156 * expr.c (optimize_bitfield_assignment_op): Revamp to work
10157 again after expansion changes.
10158
2abbb0fe
CLT
101592011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
10160
10161 * combine.c (try_combine): Do simplification only call of
10162 subst() on i2 even when i1 is present. Update comments.
10163
2efd0aa6
KK
101642011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
10165
10166 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10167 and UNSPEC_PCREL_SYMOFF.
10168
30a49b23
AK
101692011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10170
10171 * config/s390/s390.md: Use define_c_enum for the unspec constant
10172 definitions.
10173
419e1853
JJ
101742011-03-18 Richard Henderson <rth@redhat.com>
10175 Jakub Jelinek <jakub@redhat.com>
10176
10177 PR bootstrap/48161
10178 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10179 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10180
37875856
L
101812011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10182
10183 PR middle-end/47725
10184 * combine.c (cant_combine_insn_p): Don't check zero/sign
10185 extended hard registers.
10186
76069764
L
101872011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10188
10189 PR middle-end/47725
10190 * combine.c (cant_combine_insn_p): Check zero/sign extended
10191 hard registers.
10192
24da2019
AS
101932011-03-17 Anatoly Sokolov <aesok@post.ru>
10194
10195 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10196 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10197 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10198 Change return type to bool.
10199 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10200
a82ff31f
JJ
102012011-03-17 Jakub Jelinek <jakub@redhat.com>
10202
8b29c87a
JJ
10203 PR debug/48163
10204 * var-tracking.c (prepare_call_arguments): If CALL target
10205 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10206 pc instead of looking it up using cselib_lookup and use
10207 Pmode for it if x has VOIDmode.
10208 * dwarf2out.c (gen_subprogram_die): If also both first and
10209 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10210
a82ff31f
JJ
10211 PR debug/48163
10212 * function.c (assign_parms): For data.passed_pointer parms
10213 use MEM of data.entry_parm instead of data.entry_parm itself
10214 as DECL_INCOMING_RTL.
10215 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10216 also when passed and declared mode is the same, DECL_RTL
10217 is a MEM with pseudo as address and DECL_INCOMING_RTL is
10218 a MEM too.
10219
82ce305c
JL
102202011-03-16 Jeff Law <law@redhat.com>
10221
10222 PR rtl-optimization/37273
10223 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10224 handle them like argument loads from stack slots. Do not double
10225 count memory for memory constants and argument loads from stack slots.
10226
fe58e02b
L
102272011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10228
10229 PR debug/48160
10230 * var-tracking.c (prepare_call_arguments): Check SUBREG.
10231
6fc4dbc7
L
102322011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10233
10234 PR target/48171
10235 * config/i386/i386.opt: Add Save to -mavx and -mfma.
10236
db3ed0b3
JJ
102372011-03-17 Jakub Jelinek <jakub@redhat.com>
10238
8054a389
JJ
10239 PR bootstrap/48153
10240 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10241 if dwarf_strict.
10242 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10243 Clear call_arg_locations and call_arg_loc_last always.
10244
db3ed0b3
JJ
10245 PR middle-end/48152
10246 * var-tracking.c (prepare_call_arguments): If argument needs to be
10247 passed by reference, adjust argtype and mode.
10248
1bce4ff3
RG
102492011-03-17 Richard Guenther <rguenther@suse.de>
10250
10251 PR middle-end/48134
10252 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10253 a value make sure to fold the statement.
10254
7c71147d
CLT
102552011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
10256
10257 PR target/43872
10258 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10259 return condition with !cfun->calls_alloca.
10260
0e1ee172
RG
102612011-03-17 Richard Guenther <rguenther@suse.de>
10262
10263 PR bootstrap/48148
10264 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10265 origin for decls in other ltrans units.
10266 (input_varpool_node): Likewise.
10267
f8bce518
RG
102682011-03-17 Richard Guenther <rguenther@suse.de>
10269
10270 PR middle-end/48165
10271 * tree-object-size.c (compute_object_offset): Properly return
10272 the offset operand of MEM_REFs as sizetype.
10273
1b6fa860
JJ
102742011-03-17 Jakub Jelinek <jakub@redhat.com>
10275
dabd47e7
JJ
10276 PR rtl-optimization/48141
10277 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10278 * dse.c: Include params.h.
10279 (active_local_stores_len): New variable.
10280 (add_wild_read, dse_step1): Clear it when setting active_local_stores
10281 to NULL.
10282 (record_store, check_mem_read_rtx): Decrease it when removing
10283 from the chain.
10284 (scan_insn): Likewise. Increase it when adding to chain, if it
10285 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10286 set active_local_stores to NULL before the addition.
10287 * Makefile.in (dse.o): Depend on $(PARAMS_H).
10288
1b6fa860
JJ
10289 PR rtl-optimization/48141
10290 * dse.c (record_store): If no positions are needed in an insn
10291 that cannot be deleted, at least unchain it from active_local_stores.
10292
7b5cb7d6
DS
102932011-03-16 Dodji Seketeli <dodji@redhat.com>
10294
10295 PR debug/47510
10296 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10297 (lookup_type_die_strip_naming_typedef): ... here.
10298 (get_context_die): Use it.
10299 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10300 the anonymous struct named by the naming typedef.
10301
585e9d9d
L
103022011-03-16 H.J. Lu <hongjiu.lu@intel.com>
10303
10304 PR target/48154
10305 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10306 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10307
6261ab0e
JL
103082011-03-16 Jeff Law <law@redhat.com>
10309
10310 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 10311 check for operands of conditional. Allow type to be a pointer.
6261ab0e 10312
0b0081ec
RG
103132011-03-16 Richard Guenther <rguenther@suse.de>
10314
10315 PR tree-optimization/48149
10316 * fold-const.c (fold_binary_loc): Fold
10317 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10318
64a3d647
RG
103192011-03-16 Richard Guenther <rguenther@suse.de>
10320
10321 PR tree-optimization/26134
10322 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10323 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10324 (non_rewritable_mem_ref_base): Handle complex type component
10325 accesses, constrain offsets for vector and complex extracts
10326 more properly.
10327
ef13324e
RG
103282011-03-16 Richard Guenther <rguenther@suse.de>
10329
10330 PR tree-optimization/48146
10331 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10332 operands avoiding the need for renaming.
10333
f0eddb90
RG
103342011-03-16 Richard Guenther <rguenther@suse.de>
10335
10336 * gimple-fold.c (maybe_fold_reference): Open-code relevant
10337 constant folding. Move MEM_REF canonicalization first.
10338 Rely on fold_const_aggregate_ref for initializer folding.
10339 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10340
e42348b8
JJ
103412011-03-16 Jakub Jelinek <jakub@redhat.com>
10342
29f10e71
JJ
10343 PR middle-end/48136
10344 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10345 arg0/arg1 or their arguments are always fold converted to matching
10346 types.
10347
e42348b8
JJ
10348 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10349 to nargs.
10350
55b46574
RO
103512011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10352
10353 PR lto/46944
10354 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10355 Handle in-tree gold.
10356 (ld_vers): Extract binutils version for gold.
10357 (gcc_cv_ld_hidden): Handle gold here.
10358 (gcc_cv_lto_plugin): Determine level of linker plugin support.
10359 * configure: Regenerate.
10360 * config.in: Regenerate.
10361 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10362 -fuse-linker-plugin otherwise.
10363 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
10364 (LINK_COMMAND_SPEC): Use it.
10365 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10366
2b1c5433
JJ
103672011-03-16 Jakub Jelinek <jakub@redhat.com>
10368
c2969d8e
JJ
10369 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10370 * calls.c: Remove debug.h include.
10371 (emit_call_1): Don't call virtual_call_token debug hook.
10372 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10373 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10374 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10375 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10376 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10377 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10378 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10379 dwarf2out_virtual_call): Remove.
10380 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10381 copy_call_info and virtual_call hooks.
10382 (dwarf2out_init): Don't initialize vcall_insn_table,
10383 debug_dcall_section and debug_vcall_section.
10384 (prune_unused_types): Don't mark nodes from dcall_table.
10385 (dwarf2out_finish): Don't output dcall or vcall tables.
10386 * final.c (final_scan_insn): Don't call direct_call or
10387 virtual_call debug hooks.
10388 * debug.h (struct gcc_debug_hooks): Remove direct_call,
10389 virtual_call_token, copy_call_info and virtual_call hooks.
10390 (debug_nothing_uid): Remove prototype.
10391 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10392 copy_call_info and virtual_call hooks.
10393 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10394 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10395 * debug.c (do_nothing_debug_hooks): Likewise.
10396 (debug_nothing_uid): Remove.
10397 * doc/invoke.texi (-fenable-icf-debug): Remove.
10398 * common.opt (-fenable-icf-debug): Likewise.
10399
325f5379
JJ
10400 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10401 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10402 call's MEM. Handle functions returning aggregate through a hidden
10403 first pointer. For virtual calls add clobbered pc to call arguments
10404 chain.
10405 * dwarf2out.c (gen_subprogram_die): Emit
10406 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10407 can't be emitted.
10408
a58a8e4b
JJ
10409 PR debug/45882
10410 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10411 * rtl.h (ENTRY_VALUE_EXP): Define.
10412 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10413 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10414 * print-rtl.c (print_rtx): Likewise.
10415 * gengtype.c (adjust_field_rtx_def): Likewise.
10416 * var-tracking.c (vt_add_function_parameter): Adjust
10417 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10418 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10419 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10420 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10421 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10422
2b1c5433
JJ
10423 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10424 Call var_location debug hook even on CALL_INSNs.
10425 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10426 * rtl.def (ENTRY_VALUE): New.
10427 * dwarf2out.c: Include cfglayout.h.
10428 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10429 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10430 (struct call_arg_loc_node): New type.
10431 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10432 tail_call_site_count): New variables.
10433 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10434 DW_TAG_GNU_call_site_parameter.
10435 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10436 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10437 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10438 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10439 and DW_AT_GNU_all_source_call_sites.
10440 (mem_loc_descriptor): Handle ENTRY_VALUE.
10441 (add_src_coords_attributes): Don't add enything if
10442 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10443 (dwarf2out_abstract_function): Save and clear call_arg_location,
10444 call_site_count and tail_call_site_count around dwarf2out_decl call.
10445 (gen_call_site_die): New function.
10446 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10447 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10448 (dwarf2out_function_decl): Clear call_arg_locations,
10449 call_arg_loc_last, set call_site_count and tail_call_site_count
10450 to -1 and free block_map.
10451 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10452 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
10453 followed by any real instructions.
10454 (dwarf2out_begin_function): Set call_site_count and
10455 tail_call_site_count to 0.
10456 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10457 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10458 attempt to force a DIE for it and worst case remove the attribute.
10459 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10460 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10461 the decl itself.
10462 * var-tracking.c: Include tm_p.h.
10463 (vt_stack_adjustments): For calls call note_register_arguments.
10464 (argument_reg_set): New variable.
10465 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10466 ensure the VALUE is resolved.
10467 (call_arguments): New variable.
10468 (prepare_call_arguments): New function.
10469 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10470 (struct expand_loc_callback_data): Add ignore_cur_loc field.
10471 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10472 always use the best expression.
10473 (vt_expand_loc): Add ignore_cur_loc argument.
10474 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10475 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10476 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10477 note for all calls.
10478 (vt_add_function_parameter): Use cselib_lookup_from_insn.
10479 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10480 argument. Don't call cselib_preserve_only_values and
10481 cselib_reset_table.
10482 (note_register_arguments): New function.
10483 (vt_initialize): Compute argument_reg_set. Call
10484 vt_add_function_parameters before processing basic blocks instead of
10485 afterwards. For calls call prepare_call_arguments before calling
10486 cselib_process_insn.
10487 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10488 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10489 (var-tracking.o): Depend on $(TM_P_H).
10490 * cfglayout.h (insn_scope): New prototype.
10491 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10492 * cfglayout.c (insn_scope): No longer static.
10493 * insn-notes.def (CALL_ARG_LOCATION): New.
10494 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10495 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10496 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10497 nothing for DECL_EXTERNAL BLOCK_VARS.
10498
9ef13bd0
AM
104992011-03-16 Alan Modra <amodra@gmail.com>
10500
10501 PR target/45844
10502 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10503 create invalid offset address for vsx splat insn.
10504 * config/rs6000/predicates.md (splat_input_operand): New.
10505 * config/rs6000/vsx.md (vsx_splat_*): Use it.
10506
56b67510
XDL
105072011-03-15 Xinliang David Li <davidxl@google.com>
10508
10509 PR c/47837
10510 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10511 (normalize_preds): New function.
10512 (is_use_properly_guarded): Normalize def predicates.
10513
80fffdef
RR
105142011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10515
732f37c6 10516 PR target/46788
80fffdef
RR
10517 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10518 in the output template.
10519
930672ad
RG
105202011-03-15 Richard Guenther <rguenther@suse.de>
10521
10522 PR middle-end/47650
10523 * tree-pretty-print.c (dump_function_declaration): Properly
10524 dump unprototyped and varargs function types.
10525
c7ee7b45
RG
105262011-03-15 Richard Guenther <rguenther@suse.de>
10527
10528 PR tree-optimization/13954
10529 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10530 and friends.
10531
b2ad5e37
RG
105322011-03-15 Richard Guenther <rguenther@suse.de>
10533
10534 PR tree-optimization/48037
10535 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10536 selects into BIT_FIELD_REFs.
10537 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10538 vector select.
10539
7ee93d4e
JJ
105402011-03-15 Jakub Jelinek <jakub@redhat.com>
10541
10542 PR tree-optimization/48129
10543 * builtins.c (fold_builtin_snprintf): Convert to type of
10544 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10545 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10546
e106efc7
RG
105472011-03-15 Richard Guenther <rguenther@suse.de>
10548
10549 PR tree-optimization/41490
10550 * tree-ssa-dce.c (propagate_necessity): Handle returns without
10551 value but with VUSE.
10552 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10553 return statements.
10554 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10555 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10556 * tree-tailcall.c (find_tail_calls): Ignore returns.
10557
17dea42f
RG
105582011-03-15 Richard Guenther <rguenther@suse.de>
10559
10560 PR middle-end/48031
10561 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10562 or variable-indexed array accesses when in gimple form.
10563
01c77a60
RG
105642011-03-15 Richard Guenther <rguenther@suse.de>
10565
16cc4440 10566 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 10567
77b0791e
AM
105682011-03-15 Alan Modra <amodra@gmail.com>
10569
10570 PR target/48032
10571 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10572 presume symbol_refs without a symbol_ref_decl are suitably
10573 aligned, nor other trees we may see here. Handle anchor symbols.
10574 (legitimate_constant_pool_address_p): Comment. Add mode param.
10575 Check cmodel=medium addresses. Adjust all calls.
10576 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10577 creating cmodel=medium optimized access to locals.
10578 * config/rs6000/constraints.md (R): Pass QImode to
10579 legitimate_constant_pool_address_p.
10580 * config/rs6000/predicates.md (input_operand): Pass mode to
10581 legitimate_constant_pool_address_p.
10582 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10583 Update prototype.
10584
35f61ba4
MM
105852011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10586
10587 PR target/48053
10588 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10589 64-bit constants being loaded into registers other than GPRs such
10590 as loading 0 into a VSX register.
10591
07332e6d
RO
105922011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10593
16cc4440 10594 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 10595
de888d90
JJ
105962011-03-14 Jakub Jelinek <jakub@redhat.com>
10597
ba3ceb2d
JJ
10598 PR middle-end/47917
10599 * builtins.c (fold_builtin_snprintf): New function.
10600 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10601 (fold_builtin_4): Likewise.
10602
2e64f8b8
JJ
10603 PR middle-end/38878
10604 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10605 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
10606 and C - X == X also strip nops from +/-/p+ operand.
10607 When optimizing -X == C, fold C to arg0's type.
10608
de888d90
JJ
10609 PR debug/47946
10610 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10611 emit it as add_AT_int instead of add_AT_unsigned.
10612
106132011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
10614
10615 * unwind-dw2.c: Include sys/sdt.h if it exists.
10616 (_Unwind_DebugHook): Use STAP_PROBE2.
10617 * config.in, configure: Rebuild.
10618 * configure.ac: Check for sys/sdt.h.
10619
d34abfd2
UB
106202011-03-14 Uros Bizjak <ubizjak@gmail.com>
10621
10622 * config/i386/i386.md (ROUND_FLOOR): New constant.
10623 (ROUND_CEIL): Ditto.
10624 (ROUND_TRUNC): Ditto.
10625 (ROUND_MXCSR): Ditto.
10626 (ROUND_NO_EXC): Ditto.
10627 (rint<mode>2): Use new defines instead of numerical constants.
10628 (floor<mode>2): Ditto.
10629 (ceil<mode>2): Ditto.
10630 (btrunc<mode>2): Ditto.
10631 * config/i386/i386-builtin-types.def: Define ROUND function type
10632 aliases.
10633 * config/i386/i386.c (enum ix86_builtins): Add
10634 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10635 (struct builtin_description): Add
10636 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10637 (ix86_expand_sse_round): New static function.
10638 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10639 function types.
10640 (ix86_builtin_vectorized_function): Handle
10641 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10642
87f9e23d
TT
106432011-03-14 Tom Tromey <tromey@redhat.com>
10644
10645 * c-parser.c (c_parser_asm_string_literal): Clear
10646 warn_overlength_strings.
10647
b3ab9ea2
TT
106482011-03-14 Tom Tromey <tromey@redhat.com>
10649
10650 * c-parser.c (disable_extension_diagnostics): Save
10651 warn_overlength_strings.
10652 (restore_extension_diagnostics): Restore warn_overlength_strings.
10653
6bd73dd8
JJ
106542011-03-14 Jakub Jelinek <jakub@redhat.com>
10655
10656 * BASE-VER: Change to 4.7.0.
10657
7f4d6e1b
RG
106582011-03-14 Richard Guenther <rguenther@suse.de>
10659
10660 PR middle-end/48098
10661 * tree.c (build_vector_from_val): Adjust assert to requirements
10662 and reality.
10663
c6104ef1
JJ
106642011-03-14 Jakub Jelinek <jakub@redhat.com>
10665
10666 PR bootstrap/48102
d34abfd2 10667 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 10668
dfa95e19
AT
106692011-03-14 Andreas Tobler <andreast@fgznet.ch>
10670
f60c2554 10671 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
10672 terms of target_flags_explicit. Adjust copyright year.
10673
10674 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10675 * config/rs6000/t-freebsd: New file. Add override for
10676 LIB2FUNCS_EXTRA.
10677
bb322018
CD
106782011-03-13 Chris Demetriou <cgd@google.com>
10679
10680 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10681 (-fno-diagnostics-show-option): this, to reflect current default.
10682 (-Werror=): Update text about -fno-diagnostics-show-option.
10683
12b1c80b
PB
106842011-03-12 Peter Bergner <bergner@vnet.ibm.com>
10685
10686 PR target/48053
10687 * config/rs6000/predicates.md (easy_vector_constant_add_self,
10688 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10689 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10690 mode is not V2DImode or V2DFmode.
10691 (vspltis_constant): Do not handle V2DImode and V2DFmode.
10692 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10693 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10694 registers to 0.
10695 (movdi_internal64): Likewise.
10696
57d598f7
SP
106972011-03-12 Sebastian Pop <sebastian.pop@amd.com>
10698
10699 PR tree-optimization/47127
10700 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10701 parameter.
10702 (set_cloog_options): Same.
10703 (scop_to_clast): Same.
10704 (print_clast_stmt): Do not call cloog_state_malloc and
10705 cloog_state_free.
10706 (print_generated_program): Same.
10707 (gloog): Same.
10708 * graphite-clast-to-gimple.h (cloog_state): Declared.
10709 (scop_to_clast): Adjust declaration.
10710 * graphite.c (cloog_state): Defined here.
10711 (graphite_initialize): Call cloog_state_malloc.
10712 (graphite_finalize): Call cloog_state_free.
10713
f231b5ff
JM
107142011-03-11 Jason Merrill <jason@redhat.com>
10715
10716 * attribs.c (lookup_attribute_spec): Take const_tree.
10717 * tree.h: Adjust.
10718
6a4e2bd5
JM
107192011-03-11 Joseph Myers <joseph@codesourcery.com>
10720
10721 * config/sparc/sparc.c (sparc_option_override): Use
10722 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10723
a758fd67
RG
107242011-03-11 Richard Guenther <rguenther@suse.de>
10725
10726 PR tree-optimization/48067
10727 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10728 multiplication result will be only used once on the target
10729 stmt.
10730
03dfda54
RG
107312011-03-11 Richard Guenther <rguenther@suse.de>
10732
10733 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10734
5f11a50a
RG
107352011-03-11 Richard Guenther <rguenther@suse.de>
10736
10737 PR lto/48073
10738 * tree.c (find_decls_types_r): Do not walk types only reachable
10739 from IDENTIFIER_NODEs.
10740
4074f163
JJ
107412011-03-11 Jakub Jelinek <jakub@redhat.com>
10742
10743 PR middle-end/48044
10744 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10745 all vnode->force_output nodes as needed.
10746
30f7cdcd
JM
107472011-03-11 Jason Merrill <jason@redhat.com>
10748
10749 PR c++/48069
10750 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10751 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10752
62ecfeb8
MJ
107532011-03-11 Martin Jambor <mjambor@suse.cz>
10754
10755 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10756 cgraph_node.
10757
e89e03ab
JJ
107582011-03-11 Jakub Jelinek <jakub@redhat.com>
10759
10760 PR tree-optimization/48063
10761 * ipa-inline.c (cgraph_decide_inlining): Don't try to
10762 inline functions called once if !tree_can_inline_p (node->callers).
10763
efbe978b 107642011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 10765
efbe978b
EB
10766 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10767 extra_objs.
9d6193a7
CL
10768 * config/score/score3.c: Delete.
10769 * config/score/score3.h: Delete.
10770 * config/score/mul-div.S: Delete.
10771 * config/score/sfp-machine.h: Add new file.
10772 * config/score/constraints.md: Add new file.
10773 * config/score/t-score-softfp: Add new file.
efbe978b 10774 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
10775 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10776 (score7_extra_constraint): Delete.
efbe978b 10777 (score7_option_override): Remove unused code.
9d6193a7
CL
10778 * config/score/score.c: Remove score3 and score5 define and code.
10779 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 10780 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
10781 * config/score/score.opt: Remove score3 and score5 options.
10782
5de27cca
JDA
107832011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10784
10785 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10786 when _HPUX_SOURCE is defined.
10787 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10788
18d92053
JM
107892011-03-10 Jason Merrill <jason@redhat.com>
10790
10791 PR c++/48029
10792 * stor-layout.c (layout_type): Don't set structural equality
10793 on arrays of incomplete type.
10794 * tree.c (type_hash_eq): Handle comparing them properly.
10795
67a2f76d
JJ
107962011-03-10 Jakub Jelinek <jakub@redhat.com>
10797
10798 PR debug/48043
18d92053 10799 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
10800 result mode matches original rtl mode.
10801
d845b2f9
NC
108022011-03-10 Nick Clifton <nickc@redhat.com>
10803
10804 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 10805 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 10806
db7ec035
JJ
108072011-03-09 Jakub Jelinek <jakub@redhat.com>
10808
10809 PR rtl-optimization/47866
10810 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10811 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10812 if target wasn't scalar.
10813 * function.c (assign_stack_temp_for_type): Assert that neither
10814 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10815 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10816 macro.
10817 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10818
5d304e47
AK
108192011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10820
10821 * config/s390/s390-protos.h (s390_label_align): New prototype.
10822 * config/s390/s390.c (s390_label_align): New function.
10823 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10824
93b826f0
MM
108252011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10826
10827 PR target/47755
10828 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10829 V2DI/V2DF constants. Only all 0's or all 1's are easy.
10830 (output_vec_const_move): Ditto.
10831
ef78aed6
AS
108322011-03-08 Anatoly Sokolov <aesok@post.ru>
10833
10834 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10835 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10836 * config/mips/mips.c (mips_preferred_reload_class): Make static.
10837 Change 'rclass' argument and result type to reg_class_t.
10838 (TARGET_PREFERRED_RELOAD_CLASS): Define.
10839
5f892aa0
GJL
108402011-03-08 Georg-Johann Lay <avr@gjlay.de>
10841
9e43ad68
UB
10842 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10843 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10844 (TARGET_MEMORY_MOVE_COST): Define.
10845 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 10846
32bd2409
JJ
108472011-03-08 Jakub Jelinek <jakub@redhat.com>
10848
530a4800
JJ
10849 PR debug/47881
10850 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10851 removed anything.
10852
32bd2409
JJ
10853 PR tree-optimization/48022
10854 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10855 for EQ/NE_EXPR.
10856
c7148991
JJ
108572011-03-07 Jakub Jelinek <jakub@redhat.com>
10858
10859 PR debug/47991
10860 * var-tracking.c (find_use_val): Return NULL for
10861 cui->sets && cui->store_p BLKmode MEMs.
10862
43070a6e
AS
108632011-03-07 Anatoly Sokolov <aesok@post.ru>
10864
10865 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10866 Remove.
10867 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10868 xstormy16_print_operand_address): Remove.
10869 * config/stormy16/stormy16.c (xstormy16_print_operand,
10870 xstormy16_print_operand_address): Make static.
10871 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10872
efbe978b 108732011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
10874
10875 PR target/47862
10876 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10877 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10878 before definition.
10879
cec8ac0b
ZD
108802011-03-07 Zdenek Dvorak <ook@ucw.cz>
10881
10882 PR bootstrap/48000
10883 * cfgloopmanip.c (fix_bb_placements): Return immediately
10884 if FROM is BASE_LOOP's header.
10885
59527282
PW
108862011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
10887
10888 * gimplify.c (gimplify_function_tree): Fix building calls
10889 to __builtin_return_address.
10890
617718f7
AM
108912011-03-07 Alan Modra <amodra@gmail.com>
10892
10893 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10894 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10895 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10896 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10897 return_mode args.
10898 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10899 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10900 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10901 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10902 * config/rs6000/rs6000.c
10903 (rs6000_elf_end_indicate_exec_stack): Rename to..
10904 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
10905 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
10906 (rs6000_file_start): ..here.
10907 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10908 file scope variables.
10909 (call_ABI_of_interest): New function.
10910 (init_cumulative_args): Set above vars when function return value
10911 is a float, vector, or small struct.
10912 (rs6000_function_arg_advance_1): Likewise for function args.
10913 (rs6000_va_start): Set rs6000_passes_float if variable arg function
10914 references float args.
10915
38528d50
MX
109162011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
10917
10918 * doc/cfg.texi: Remove "See" before @ref.
10919 * doc/invoke.texi: Likewise.
10920
f42cf4f4
JM
109212011-03-05 Jason Merrill <jason@redhat.com>
10922
10923 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10924
804a304d
AG
109252011-03-05 Anthony Green <green@moxielogic.com>
10926
10927 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10928
634ee309
ZD
109292011-03-05 Zdenek Dvorak <ook@ucw.cz>
10930
10931 PR rtl-optimization/47899
10932 * cfgloopmanip.c (fix_bb_placements): Fix first argument
10933 to flow_loop_nested_p when moving the loop upward.
10934
6fe471c8
RE
109352011-03-05 Richard Earnshaw <rearnsha@arm.com>
10936
10937 PR target/47719
10938 * arm.md (movhi_insn_arch4): Accept any immediate constant.
10939
cc58ceee
JJ
109402011-03-05 Jakub Jelinek <jakub@redhat.com>
10941
10942 PR tree-optimization/47967
10943 * ipa-cp.c (build_const_val): Return NULL instead of creating
10944 VIEW_CONVERT_EXPR for mismatching sizes.
10945 (ipcp_create_replace_map): Return NULL if build_const_val failed.
10946 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10947 give up on versioning.
10948
ea868305
AM
109492011-03-05 Alan Modra <amodra@gmail.com>
10950
10951 PR target/47986
10952 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10953 full cmodel medium/large lo_sum + high addresses.
10954
bc6ce334
AK
109552011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10956
10957 * config/s390/s390.c (s390_decompose_address): Reject non-literal
10958 pool references in UNSPEC_LTREL_OFFSET.
10959
87e7b310
JH
109602011-03-04 Jan Hubicka <jh@suse.cz>
10961
10962 PR lto/47497
10963 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10964 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
10965 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10966 Add node pointers.
87e7b310
JH
10967 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10968 cgraph_add_thunk): Add node pointers.
10969 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10970 associated to right node.
10971 (input_node): Update use of cgraph_same_body_alias
10972 and cgraph_add_thunk.
10973
d9c64246
CF
109742011-03-04 Changpeng Fang <changpeng.fang@amd.com>
10975
10976 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
10977 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10978 modes when the flag -mprefer-avx128 is on.
d9c64246 10979
08707076
RS
109802011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
10981
10982 * dwarf2out.c (compare_loc_operands): Fix address handling.
10983
52517c81
AM
109842011-03-04 Alan Modra <amodra@gmail.com>
10985
10986 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10987
b147c5b9
RG
109882011-03-04 Richard Guenther <rguenther@suse.de>
10989
10990 PR middle-end/47968
10991 * expmed.c (extract_bit_field_1): Prefer vector modes that
10992 vec_extract patterns can handle.
10993
8750672f
RG
109942011-03-04 Richard Guenther <rguenther@suse.de>
10995
10996 PR middle-end/47975
10997 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10998
9eac0f2a
RH
109992011-03-04 Richard Henderson <rth@redhat.com>
11000
11001 * explow.c (emit_stack_save): Remove 'after' parameter.
11002 (emit_stack_restore): Likewise.
11003 * expr.h: Update to match.
11004 * builtins.c, calls.c, stmt.c: Likewise.
11005 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11006 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11007 * function.c (expand_function_end): Insert the emit_stack_save
11008 sequence before parm_birth_insn instead of after.
11009
dfee1406
UB
110102011-03-03 Uros Bizjak <ubizjak@gmail.com>
11011
11012 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11013 (ssse3_pmaddubsw128): Ditto.
11014 (ssse3_pmaddubsw): Ditto.
11015
f1d4c3de
SE
110162011-03-03 Steve Ellcey <sje@cup.hp.com>
11017
11018 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11019
71f3a3f5
JJ
110202011-03-03 Jakub Jelinek <jakub@redhat.com>
11021
423ed416
JJ
11022 PR c/47963
11023 * gimplify.c (omp_add_variable): Only call omp_notice_variable
11024 on TYPE_SIZE_UNIT if it is a DECL.
11025
71f3a3f5
JJ
11026 PR debug/47283
11027 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11028 first operand is not is_gimple_mem_ref_addr, try to fold it.
11029 If the operand still isn't is_gimple_mem_ref_addr, clear
11030 MEM_EXPR on op0.
11031
4b1a5c0d
RG
110322011-03-03 Richard Guenther <rguenther@suse.de>
11033
11034 PR middle-end/47283
11035 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11036 match comment.
11037 (refs_may_alias_p_1): For release branches return true if
11038 we are confused by our input.
11039
b46616fd
AK
110402011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11041
11042 * config/s390/s390.c (s390_function_value): Rename to ...
11043 (s390_function_and_libcall_value): ... this.
11044 (s390_function_value): New function.
11045 (s390_libcall_value): New function.
dfee1406 11046 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
11047 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11048 target macro definitions.
11049 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11050
46d8fabb
JM
110512011-03-02 Joseph Myers <joseph@codesourcery.com>
11052
11053 * config/i386/freebsd64.h (CC1_SPEC): Define.
11054 * config/i386/linux64.h (CC1_SPEC): Define.
11055 * config/i386/x86-64.h (CC1_SPEC): Don't define.
11056
6b1ce545
AS
110572011-03-02 Anatoly Sokolov <aesok@post.ru>
11058
11059 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11060 Remove.
11061 * config/stormy16/stormy16.c: Include reload.h.
11062 (xstormy16_memory_move_cost): New function.
11063 (TARGET_MEMORY_MOVE_COST): Define.
11064
34161e98
RS
110652011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
11066
11067 PR rtl-optimization/47925
11068 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11069 with side effects. Remove the more-specific check for volatile asms.
11070
f60a97cf
AM
110712011-03-02 Alan Modra <amodra@gmail.com>
11072
11073 PR target/47935
11074 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11075 toc relative addresses for valid offsets.
11076
f2ca11ca
RG
110772011-03-01 Richard Guenther <rguenther@suse.de>
11078
11079 PR tree-optimization/47890
11080 * tree-vect-loop.c (get_initial_def_for_induction): Set
11081 related stmt properly.
11082
7a00d9ea
RG
110832011-03-01 Richard Guenther <rguenther@suse.de>
11084
11085 PR lto/47924
11086 * lto-streamer.c (lto_record_common_node): Also register
11087 the canonical type.
11088
06c7edcc
RG
110892011-03-01 Richard Guenther <rguenther@suse.de>
11090
11091 PR lto/46911
11092 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11093 Do not stream DECL_ABSTRACT_ORIGIN.
11094 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11095 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11096 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11097 Do not stream DECL_ABSTRACT_ORIGIN.
11098 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11099 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11100
998871e9
AS
111012011-02-28 Anatoly Sokolov <aesok@post.ru>
11102
11103 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11104 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 11105 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
11106 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11107 Add 'outgoing' argument.
11108 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11109 function.
11110 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11111 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11112
94369251
KT
111132011-02-28 Kai Tietz <kai.tietz@onevision.com>
11114
11115 PR debug/28047
11116 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11117 (lookup_filename): Likewise.
b2e2ea67 11118 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 11119
80a832cd
JJ
111202011-02-28 Bernd Schmidt <bernds@codesourcery.com>
11121 Jakub Jelinek <jakub@redhat.com>
11122
11123 PR middle-end/47893
11124 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11125 (assign_stack_local_1): Change last argument type to int.
11126 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11127 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 11128 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
11129 (assign_stack_local): Adjust caller.
11130 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11131 of assign_stack_local, pass 0 as last argument.
11132 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11133 callers.
11134
1b500976
JJ
111352011-02-28 Jakub Jelinek <jakub@redhat.com>
11136
f61c6f34
JJ
11137 PR debug/47283
11138 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11139 Use target address_mode and pointer_mode hooks instead of hardcoded
11140 Pmode and ptr_mode. Handle some simple cases of extending if
11141 POINTERS_EXTEND_UNSIGNED < 0.
11142 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11143 Call convert_debug_memory_address.
11144 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11145 convert_debug_memory_address.
11146
1b500976
JJ
11147 PR middle-end/46790
11148 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11149 * configure: Regenerated.
11150 * config.in: Regenerated.
11151 * varasm.c (default_function_section): Return NULL
b2e2ea67 11152 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 11153
2f2935b6
MJ
111542011-02-28 Martin Jambor <mjambor@suse.cz>
11155
11156 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11157 the description to match the printed values.
11158
474086eb
RG
111592011-02-28 Richard Guenther <rguenther@suse.de>
11160
11161 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11162 of the copied scope tree.
11163
15bf6f3a
RW
111642011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11165
11166 * doc/extend.texi (Function Attributes): Avoid deeply (and
11167 wrongly) nested tables.
11168
f6b439c9
JJ
111692011-02-27 Jakub Jelinek <jakub@redhat.com>
11170
11171 PR middle-end/47903
11172 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11173 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11174 r isn't op0 nor op1.
11175
1d8ca2c7
GJL
111762011-02-23 Georg-Johann Lay <avr@gjlay.de>
11177
11178 * config/avr/avr.md: Remove magic comment for emacs.
11179
593fca4b
GJL
111802011-02-23 Georg-Johann Lay <avr@gjlay.de>
11181
11182 PR target/45261
11183 * config/avr/avr.c (avr_option_override): Use error on bad options.
11184 (avr_help): New function.
11185 (TARGET_HELP): Define.
11186
6609216e
GJL
111872011-02-22 Georg-Johann Lay <avr@gjlay.de>
11188
11189 PR target/42240
11190 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11191 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11192
03d458af
GP
111932011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11194
11195 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11196 (ARM Options): Ditto.
11197 (i386 and x86-64 Options): Ditto.
11198 (RX Options): Ditto.
11199 (SPARC Options): Ditto.
11200
1c379b78
TC
112012011-02-26 Tijl Coosemans <tijl@coosemans.org>
11202
11203 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11204 FreeBSD 6 and later. Generally use cpu generic.
11205
d5ed058c 112062011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 11207
d5ed058c
GP
11208 * doc/cpp.texi: Update copyright years.
11209
509d65dd 112102011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 11211
509d65dd 11212 PR target/46898
308d39cd
SB
11213 * config/lm32/lm32.md (ashrsi3): Added needed variable.
11214
509d65dd 112152011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 11216
509d65dd 11217 PR target/46898
308d39cd
SB
11218 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11219 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11220 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11221 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 11222 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
11223 (gen_int_relational): Move declarations to start of function.
11224
822ba6d7
EB
112252011-02-25 Eric Botcazou <ebotcazou@adacore.com>
11226
11227 PR tree-optimization/45470
11228 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11229 can throw internally only.
11230 * tree-vect-stmts.c (vectorizable_call): Likewise.
11231
ef795fc2
AS
112322011-02-24 Anatoly Sokolov <aesok@post.ru>
11233
11234 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11235 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11236 * config/stormy16/stormy16-protos.h
11237 (xstormy16_preferred_reload_class): Remove.
11238 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11239 static. Change 'rclass' argument and return type to reg_class_t.
11240 (TARGET_PREFERRED_RELOAD_CLASS,
11241 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11242
1c3277ee
RG
112432011-02-24 Richard Guenther <rguenther@suse.de>
11244
11245 * lto-streamer-in.c (input_bb): Do not find referenced vars
11246 in debug statements.
11247
67e18edb
JM
112482011-02-23 Jason Merrill <jason@redhat.com>
11249
11250 * common.opt (fabi-version): Document v5 and v6.
11251
b14fad9d
RG
112522011-02-23 Richard Guenther <rguenther@suse.de>
11253
11254 PR tree-optimization/47849
11255 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11256
7fcf46f5
JZ
112572011-02-23 Jie Zhang <jie@codesourcery.com>
11258
11259 * opts-common.c (decode_cmdline_option): Print empty string
11260 argument as "" in decoded->orig_option_with_args_text.
11261 * gcc.c (execute): Print empty string argument as ""
11262 in the verbose output.
11263 (do_spec_1): Keep empty string argument.
11264
f85b70fd
NF
112652011-02-23 Nathan Froyd <froydnj@codesourcery.com>
11266
11267 * config.gcc: Declare score-* and crx-* obsolete.
11268
b152a615
JZ
112692011-02-23 Jie Zhang <jie@codesourcery.com>
11270
11271 PR rtl-optimization/47763
11272 * web.c (web_main): Ignore naked clobber when replacing register.
11273
bb6e77bc
AS
112742011-02-22 Anatoly Sokolov <aesok@post.ru>
11275
11276 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11277 Remove.
11278
68bf6491
SP
112792011-02-22 Sebastian Pop <sebastian.pop@amd.com>
11280
11281 PR doc/47848
11282 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11283
88ee1fc7
MS
112842011-02-22 Mike Stump <mikestump@comcast.net>
11285
11286 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11287 assembler.
11288 * configure: Regenerate.
11289
6042d1dd
CLT
112902011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
11291
11292 PR rtl-optimization/46002
11293 * ira-color.c (update_copy_costs): Change class intersection
11294 test to reg_class_contents[] test of 'hard_regno'.
11295
7de97f9e
JM
112962011-02-21 Joseph Myers <joseph@codesourcery.com>
11297
11298 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11299 than Driver option.
11300 * config/hpux11.opt (mt): Likewise.
11301 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11302 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11303 * config/vax/elf.opt (mno-asm-pic): Likewise.
11304 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11305
d1d46f9f
MS
113062011-02-21 Mike Stump <mikestump@comcast.net>
11307
11308 PR target/47822
11309 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11310 tree so we can get save the type.
11311 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11312 for CFString instead of trying to use past the end of the builtins.
11313 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11314 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11315 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11316 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11317 Rename to darwin_builtin_cfstring.
11318 (darwin_init_cfstring_builtins): Return the built type.
11319
23e0d930
UB
113202011-02-21 Uros Bizjak <ubizjak@gmail.com>
11321
11322 PR target/47840
11323 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11324 (_mm256_insert_epi64): Use _mm_insert_epi64.
11325
192997cf
AS
113262011-02-21 Anatoly Sokolov <aesok@post.ru>
11327
11328 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11329 * config/stormy16/stormy16-protos.h
11330 (xstormy16_mode_dependent_address_p): Remove.
11331 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11332 Make static. Change return type to bool. Change argument type to
11333 const_rtx. Remove dead code.
11334 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11335
e292d003
RG
113362011-02-21 Richard Guenther <rguenther@suse.de>
11337
11338 PR lto/47820
11339 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11340 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11341 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11342 TUs context.
23e0d930 11343 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
11344 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11345
77f846e9
RG
113462011-02-20 Richard Guenther <rguenther@suse.de>
11347
11348 PR lto/47822
11349 * tree.c (free_lang_data_in_decl): Clean builtins from
11350 the TU decl BLOCK_VARS.
23e0d930 11351
b2cddfc8
AO
113522011-02-19 Alexandre Oliva <aoliva@redhat.com>
11353
11354 PR debug/47620
11355 PR debug/47630
11356 * haifa-sched.c (fix_tick_ready): Skip tick computation
11357 for debug insns.
11358
becf4c11
RG
113592011-02-19 Richard Guenther <rguenther@suse.de>
11360
11361 PR lto/47647
11362 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11363 Remove lazy BLOCK_VARS streaming.
11364 (lto_input_ts_block_tree_pointers): Likewise.
11365 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11366
27f98305
JM
113672011-02-19 Joseph Myers <joseph@codesourcery.com>
11368
11369 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11370
064bf3f4
JM
113712011-02-19 Joseph Myers <joseph@codesourcery.com>
11372
11373 * config/i386/biarch32.h, config/i386/mach.h,
11374 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11375
9215ddc3
JJ
113762011-02-19 Jakub Jelinek <jakub@redhat.com>
11377
11378 PR target/47800
11379 * config/i386/i386.md (peephole2 for shift and plus): Use
11380 operands[1] original mode in the first insn.
11381
8b021004
MS
113822011-02-18 Mike Stump <mikestump@comcast.net>
11383
65ded153 11384 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 11385
f84ae14c
JH
113862011-02-18 Jan Hubicka <jh@suse.cz>
11387
11388 PR middle-end/47788
65ded153
EB
11389 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11390 to zero when the function is not inlinable at all.
f84ae14c 11391
eddabc80
JDA
113922011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11393
11394 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11395 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11396 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11397 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11398 * config/pa/t-pa64: Likewise.
11399 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11400
ca3da783
JJ
114012011-02-18 Jakub Jelinek <jakub@redhat.com>
11402
11403 PR driver/47787
11404 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11405
430aa868
JDA
114062011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11407
11408 PR target/47792
11409 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11410
4bf7ff7e
AS
114112011-02-18 Anatoly Sokolov <aesok@post.ru>
11412
11413 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11414 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11415 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11416 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11417 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11418 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11419 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11420 m32r_load_postinc_p, m32r_store_preinc_predec_p,
11421 m32r_legitimate_address_p): New functions.
11422 * config/m32r/constraints.md (constraint "S"): Don't use
11423 STORE_PREINC_PREDEC_P.
11424 (constraint "U"): Don't use LOAD_POSTINC_P.
11425
7efcf910
CLT
114262011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
11427
11428 PR rtl-optimization/46178
11429 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11430 compute ira_hard_regno_cover_class[].
11431
237d6259
RG
114322011-02-18 Richard Guenther <rguenther@suse.de>
11433
11434 PR lto/47798
11435 * lto-streamer.h (lto_global_var_decls): Declare.
11436 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11437 statics for global var processing.
11438
12d80acc
RG
114392011-02-18 Richard Guenther <rguenther@suse.de>
11440
11441 PR tree-optimization/47737
11442 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11443 edge dominance check.
11444
abfea58d
JJ
114452011-02-18 Jakub Jelinek <jakub@redhat.com>
11446
11447 PR debug/47780
11448 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11449 avoid invalid rtx sharing.
11450
f73c8882
GP
114512011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
11452
11453 * doc/cpp.texi (Obsolete Features): Add background on the
11454 origin of assertions.
11455
d764a8e6
IS
114562011-02-17 Iain Sandoe <iains@gcc.gnu.org>
11457
11458 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 11459 objc_abi == 2.
d764a8e6
IS
11460 * config/darwin.c (output_objc_section_asm_op): Added support for
11461 ABI v1 and v2.
11462 (is_objc_metadata): New.
11463 (darwin_objc2_section): New.
11464 (darwin_objc1_section): New.
11465 (machopic_select_section): Added support for ABI v1 and v2.
11466 (darwin_emit_objc_zeroed): New.
11467 (darwin_output_aligned_bss): Detect objc metadata and treat it
11468 appropriately.
11469 (darwin_asm_output_aligned_decl_common): Same.
11470 (darwin_asm_output_aligned_decl_local): Same.
11471 * config/darwin-sections.def: Updated for ABI v1 and v2.
11472 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11473 compiling Objective-C code for the NeXT runtime, default to using
11474 ABI version 0 for 32-bit, and version 2 for 64-bit.
11475
0a8134ca
JM
114762011-02-17 Joseph Myers <joseph@codesourcery.com>
11477
11478 * common.opt (optimize_fast): New Variable.
11479 * opts.c (default_options_optimization): Use opts->x_optimize_fast
11480 instead of local variable ofast.
11481
0a256240
NP
114822011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
11483
11484 * doc/invoke.texi (fobjc-abi-version): Documented.
11485 (fobjc-nilcheck): Documented.
11486 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11487 version.
11488
fa381cb2
JM
114892011-02-17 Joseph Myers <joseph@codesourcery.com>
11490
11491 PR driver/47390
11492 * common.opt (export-dynamic): New Driver option.
11493 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11494
5437eaa6
JM
114952011-02-17 Joseph Myers <joseph@codesourcery.com>
11496
11497 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11498
bb7e6d55
AO
114992011-02-17 Alexandre Oliva <aoliva@redhat.com>
11500 Jan Hubicka <jh@suse.cz>
11501
11502 PR debug/47106
11503 PR debug/47402
11504 * cfgexpand.c (account_used_vars_for_block): Remove.
11505 (estimated_stack_frame_size): Use referenced vars.
11506 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11507 that were referenced in the original function. Test src_fn
11508 rather than cfun. Drop redundant get_var_ann.
11509 (setup_one_parameter): Drop redundant get_var_ann.
11510 (declare_return_variable): Likewise.
11511 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11512 (copy_arguments_for_versioning): Drop redundant get_var_ann.
11513 * ipa-inline.c (compute_inline_parameters): Do not compute
11514 disregard_inline_limits here.
bb7e6d55
AO
11515 (compute_inlinable_for_current, pass_inlinable): New.
11516 (pass_inline_parameters): Require PROP_referenced_vars.
11517 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 11518 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
11519 (cgraph_analyze_function): Set .disregard_inline_limits.
11520 * tree-sra.c (convert_callers): Compute inliner parameters
11521 only for functions already in SSA form.
11522
f181a8a7
JM
115232011-02-17 Joseph Myers <joseph@codesourcery.com>
11524
11525 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11526 -mlittle-endian-data.
11527
c6869789
JM
115282011-02-17 Joseph Myers <joseph@codesourcery.com>
11529
11530 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11531 -mno-fpu, not -fpu and -no-fpu.
11532 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11533 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11534
fbf4bfd3
UB
115352011-02-17 Uros Bizjak <ubizjak@gmail.com>
11536
11537 PR target/43653
11538 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11539 input reload with PLUS RTX.
11540
70be5dc7
JM
115412011-02-16 Joseph Myers <joseph@codesourcery.com>
11542
11543 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11544 of InverseVar(MDMX).
11545
30b1646e
JM
115462011-02-16 Joseph Myers <joseph@codesourcery.com>
11547
11548 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11549 --m4-340.
11550
ab7b71e9
JM
115512011-02-16 Joseph Myers <joseph@codesourcery.com>
11552
11553 * config/mn10300/mn10300.opt (mno-crt0): New.
11554
466f3f08
JM
115552011-02-16 Joseph Myers <joseph@codesourcery.com>
11556
11557 * config/m68k/uclinux.opt (static-libc): New Driver option.
11558
8226cd7b
JM
115592011-02-16 Joseph Myers <joseph@codesourcery.com>
11560
11561 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11562
45cab1d7
JM
115632011-02-16 Joseph Myers <joseph@codesourcery.com>
11564
11565 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11566 %{muser-extend-enabled}.
11567
65aab64f
RG
115682011-02-16 Richard Guenther <rguenther@suse.de>
11569
11570 PR tree-optimization/47738
11571 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11572 the TODO from tree_predictive_commoning.
11573
fc2fa4fb
JL
115742011-02-15 Jeff Law <law@redhat.com>
11575
11576 Revert
11577 2011-01-25 Jeff Law <law@redhat.com>
11578
11579 PR rtl-optimization/37273
11580 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11581 handle them like argument loads from stack slots. Do not double
11582 count memory for memory constants and argument loads from stack slots.
11583
4e380b8e
L
115842011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11585
11586 PR middle-end/47725
11587 * combine.c (cant_combine_insn_p): Revert the last change.
11588
e3a69bb4
MM
115892011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11590
11591 PR target/47755
11592 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11593 mode for vector constants. Remove code that checks for TImode.
11594
de650422
AO
115952011-02-15 Alexandre Oliva <aoliva@redhat.com>
11596
11597 PR debug/47106
11598 PR debug/47402
11599 * cgraph.h (compute_inline_parameters): Return void.
11600 * ipa-inline.c (compute_inline_parameters): Adjust.
11601
30925d94
AO
116022011-02-15 Alexandre Oliva <aoliva@redhat.com>
11603
11604 PR debug/47106
11605 PR debug/47402
11606 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11607 rather than decl.
11608 * cfgexpand.c (estimated_stack_frame_size): Likewise.
11609 * ipa-inline.c (compute_inline_parameters): Adjust.
11610
1b9a784a
AO
116112011-02-15 Alexandre Oliva <aoliva@redhat.com>
11612
11613 PR debug/47106
11614 PR debug/47402
11615 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11616 Adjust all users. Pass FN to...
11617 * tree-flow-inline.h (first_referenced_var): ... this. Add
11618 fn argument.
11619 * ipa-struct-reorg.c: Adjust.
11620 * tree-dfa.c: Adjust.
11621 * tree-into-ssa.c: Adjust.
11622 * tree-sra.c: Adjust.
11623 * tree-ssa-alias.c: Adjust.
11624 * tree-ssa-live.c: Adjust.
11625 * tree-ssa.c: Adjust.
11626 * tree-ssanames.c: Adjust.
11627 * tree-tailcall.c: Adjust.
11628
27c6b086
AO
116292011-02-15 Alexandre Oliva <aoliva@redhat.com>
11630
11631 PR debug/47106
11632 PR debug/47402
11633 * tree-flow.h (referenced_var_lookup): Add fn parameter.
11634 Adjust all callers.
11635 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11636 * tree-flow-inline.h: Adjust.
11637 * gimple-pretty-print.c: Adjust.
11638 * tree-into-ssa.c: Adjust.
11639 * tree-ssa.c: Adjust.
11640 * cfgexpand.c: Adjust.
11641
679e8183
NF
116422011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11643
fbf4bfd3
UB
11644 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11645 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11646 (EXTRA_CONSTRAINT): Delete.
11647 * config/iq2000/constraints.md: New file.
11648 * config/iq2000/iq2000.md: Include it.
679e8183
NF
11649 (define_insn ""): Delete.
11650 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11651 unsupported constraint letters from patterns.
11652 (call_value, call_value_internal1): Likewise.
11653 (call_value_multiple_internal1): Likewise.
11654
a45d420a
NC
116552011-02-15 Nick Clifton <nickc@redhat.com>
11656
11657 * config/mn10300/mn10300.c: Include tm-constrs.h.
11658 (struct liw_data): New data structure describing an LIW candidate
11659 instruction.
11660 (extract_bundle): Use struct liw_data. Allow small integer
11661 operands for some instructions.
11662 (check_liw_constraints): Use struct liw_data. Remove swapped
11663 parameter. Add comments describing the checks. Fix bug when
11664 assigning the source of liw1 to the source of liw2.
11665 (liw_candidate): Delete. Code moved into extract_bundle.
11666 (mn10300_bundle_liw): Use struct liw_data. Check constraints
11667 before swapping.
11668 * config/mn10300/predicates.md (liw_operand): New predicate.
11669 Allows registers and small integer constants.
11670 * config/mn10300/constraints.md (O): New constraint. Accetps
11671 integers in the range -8 to +7 inclusive.
11672 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11673 for moving a small integer into a register. Give this alternative
11674 LIW attributes.
11675 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11676 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11677 using the J,K,L and M constraints,
11678 (liw): Remove SI mode on second operands to allow for HI and QI
11679 mode values.
11680 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
11681 instruction.
11682
8a73faf1
L
116832011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11684
11685 PR middle-end/47725
11686 * combine.c (cant_combine_insn_p): Check zero/sign extended
11687 hard registers.
11688
48feba28
RG
116892011-02-15 Richard Guenther <rguenther@suse.de>
11690
11691 PR tree-optimization/47743
11692 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11693 for a non-type-compatible VN lookup bail out.
11694
ad1c1eeb
NF
116952011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11696
11697 * config/fr30/constraints.md: New file.
11698 * config/fr30/fr30.md: Include it.
11699 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11700 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11701 (EXTRA_CONSTRAINT): Delete.
11702
49ac143d
NF
117032011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11704
11705 * config/frv/constraints.md: New file.
11706 * config/frv/predicates.md: Include it.
11707 * config/frv/frv.c (reg_class_from_letter): Delete.
11708 (frv_option_override): Don't initialize it.
11709 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11710 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11711 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11712 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11713 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11714 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11715 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11716 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11717 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11718 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11719 (REG_CLASS_FROM_CONSTRAINT): Delete.
11720
c95f9494
JJ
117212011-02-15 Jakub Jelinek <jakub@redhat.com>
11722
11723 PR middle-end/47581
11724 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11725 if frame size is 0 in a leaf function.
11726
13aed611
RO
117272011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11728
11729 PR pch/14940
11730 * config/alpha/host-osf.c: New file.
11731 * config/alpha/x-osf: New file.
11732 * config.host (alpha*-dec-osf*): Use it.
11733
b09c3081
AS
117342011-02-14 Anatoly Sokolov <aesok@post.ru>
11735
11736 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11737 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11738 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11739 (rx_mode_dependent_address_p): ...this. Make static. Change argument
11740 type to const_rtx.
11741 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11742
d634083b
NF
117432011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11744
11745 * config/stormy16/constraints.md: New file.
11746 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11747 Use satisfies_constraint_Q and satisfies_constraint_R.
11748 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11749 Delete.
11750 (xstormy16_legitiamte_address_p): Declare.
11751 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11752 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11753 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 11754 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
11755 Un-staticize.
11756 (xstormy16_extra_constraint_p): Delete.
11757
c7dd803e
EB
117582011-02-14 Eric Botcazou <ebotcazou@adacore.com>
11759
11760 PR tree-optimization/46494
11761 * loop-unroll.c (split_edge_and_insert): Adjust comment.
11762 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11763 (pass_rtl_loop_done): Add TODO_verify_flow.
11764 * fwprop.c (pass_rtl_fwprop): Likewise.
11765 * modulo-sched.c (pass_sms): Likewise.
11766 * tree-ssa-dom.c (pass_dominator): Likewise.
11767 * tree-ssa-loop-ch.c (pass_ch): Likewise.
11768 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11769 (pass_tree_loop_done): Likewise.
11770 * tree-ssa-pre.c (execute_pre): Likewise.
11771 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11772 * tree-ssa-sink.c (pass_sink_code): Likewise.
11773 * tree-vrp.c (pass_vrp): Likewise.
11774
c6150df6
NF
117752011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11776
c7dd803e
EB
11777 * config/v850/constraints.md: New file.
11778 * config/v850/v850.md: Include it.
11779 * config/v850/predicates.md (reg_or_0_operand): Use
11780 satisfies_constraint_G.
11781 (special_symbolref_operand): Use satisfies_constraint_K.
11782 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11783 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11784 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11785 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11786 (EXTRA_CONSTRAINT): Delete.
11787 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11788 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11789 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 11790
30dd1ea3
AS
117912011-02-14 Anatoly Sokolov <aesok@post.ru>
11792
11793 PR target/47696
11794 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11795 description.
11796
944f4bb3
NF
117972011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11798
11799 * config/mcore/constraints.md: New file.
11800 * config/mcore/mcore.md: Include it.
11801 * config/mcore/mcore.c (reg_class_from_letter): Delete.
11802 * config/mcore/mcore.h (reg_class_from_letter): Delete.
11803 (REG_CLASS_FROM_LETTER): Delete.
11804 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11805 insn_const_int_ok_for_constraint.
11806 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11807 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11808 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11809 (EXTRA_CONSTRAINT): Delete.
11810
ad56a54c
RO
118112011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11812
11813 PR ada/41929
11814 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11815 (IS_SIGHANDLER): Define.
11816 (sparc64_is_sighandler): New function, split off from
11817 sparc64_fallback_frame_state.
11818 (sparc_is_sighandler): New function, split off from
11819 sparc_fallback_frame_state.
11820 (sparc64_fallback_frame_state): Merge with ...
11821 (sparc_fallback_frame_state): ... this into ...
11822 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
11823 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
11824 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
11825 stack instead of hardcoded offsets.
ad56a54c 11826
fbf4bfd3 118272011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
11828
11829 PR target/45808
11830 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11831
029c8f3e
RW
118322011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11833
11834 * configure: Regenerate.
11835
a016dc83
JM
118362011-02-12 Joseph Myers <joseph@codesourcery.com>
11837
11838 PR driver/45731
11839 * gcc.c (asm_options): Correct spec matching --target-help.
11840
8957a0ec
MJ
118412011-02-12 Martin Jambor <mjambor@suse.cz>
11842
11843 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11844 to gimple call error.
11845
6ef828bc
MS
118462011-02-12 Mike Stump <mikestump@comcast.net>
11847
11848 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11849 comments in backslash regions.
11850
a4015be5
MS
118512011-02-12 Mike Stump <mikestump@comcast.net>
11852 Jakub Jelinek <jakub@redhat.com>
11853 Iain Sandoe <iains@gcc.gnu.org>
11854
11855 PR target/47324
11856 * dwarf2out.c (output_cfa_loc): When required, apply the
11857 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11858 (output_loc_sequence): Likewise.
11859 (output_loc_operands_raw): Likewise.
11860 (output_loc_sequence_raw): Likewise.
11861 (output_cfa_loc): Likewise.
11862 (output_loc_list): Suppress register number adjustment when
11863 calling output_loc_sequence()
11864 (output_die): Likewise.
11865
5378dda2
AS
118662011-02-12 Anatoly Sokolov <aesok@post.ru>
11867
11868 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11869 Remove macros.
11870 * config/xtensa/xtensa.c (xtensa_register_move_cost,
11871 xtensa_memory_move_cost): New functions.
11872 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11873
f3d533d3
AO
118742011-02-12 Alexandre Oliva <aoliva@redhat.com>
11875
11876 PR lto/47225
11877 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11878 in the current directory.
11879 * configure: Rebuilt.
11880
9d53403c
IS
118812011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11882
11883 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 11884 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
11885 correct indents of the preceding block.
11886
a350a6c8
IS
118872011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11888
11889 * gcc.c (driver_handle_option): Concatenate the argument to -F with
11890 the switch.
11891
bab79a40
JM
118922011-02-11 Joseph Myers <joseph@codesourcery.com>
11893
11894 * common.opt (nostartfiles): New Driver option.
11895
1bbc6693
XDL
118962011-02-11 Xinliang David Li <davidxl@google.com>
11897
11898 PR tree-optimization/47707
11899 * tree-chrec.c (convert_affine_scev): Keep type precision.
11900
1da7d8c0
EB
119012011-02-11 Eric Botcazou <ebotcazou@adacore.com>
11902
11903 PR tree-optimization/47420
11904 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11905
119062011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
11907
11908 PR rtl-optimization/47614
11909 * rtl.h (check_for_inc_dec): Declare.
11910 * dse.c (check_for_inc_dec): Externalize...
11911 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11912 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11913
4df47bca
JM
119142011-02-11 Joseph Myers <joseph@codesourcery.com>
11915
11916 PR driver/47678
11917 * gcc.c (main): Do not compile inputs if there were errors in
11918 option handling.
11919 * opts-common.c (read_cmdline_option): Check for wrong language
11920 after other error checks.
11921
61502ca8
NF
119222011-02-11 Nathan Froyd <froydnj@codesourcery.com>
11923
11924 * cgraph.c: Fix comment typos.
11925 * cgraph.h: Likewise.
11926 * cgraphunit.c: Likewise.
11927 * ipa-cp.c: Likewise.
11928 * ipa-inline.c: Likewise.
11929 * ipa-prop.c: Likewise.
11930 * ipa-pure-const.c: Likewise.
11931 * ipa-ref.c: Likewise.
11932 * ipa-reference.c: Likewise.
11933
b63f974e
JJ
119342011-02-11 Jakub Jelinek <jakub@redhat.com>
11935
d50c5e0c
JJ
11936 PR debug/47684
11937 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 11938
6dd2a13c
RO
119392011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11940
11941 PR testsuite/47400
11942 * doc/sourcebuild.texi (Require Support): Document
11943 dg-require-ascii-locale.
11944
4a087ccf
MX
119452011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
11946
11947 * doc/lto.texi (Write summary): Fix missing parentheses.
11948
a4403164
DD
119492011-02-10 DJ Delorie <dj@redhat.com>
11950
11951 * config/m32c/m32c.c (m32c_option_override): Disable
11952 -fcombine-stack-adjustments until flag value tracking and compare
11953 optimization can be rewritten.
11954
4fac45bd
PB
119552011-02-10 Peter Bergner <bergner@vnet.ibm.com>
11956
11957 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11958 PROCESSOR_POWER7.
11959 (PROCESSOR_DEFAULT64): Likewise.
11960
72602cd1
RH
119612011-02-10 Richard Henderson <rth@redhat.com>
11962
11963 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11964 change from 2011-02-03.
11965 * config/rx/rx.c (flags_from_code): Likewise.
11966 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11967 is valid, n/pz otherwise.
11968 (rx_select_cc_mode): Return CCmode if Y is not zero.
11969
ea57f573
RG
119702011-02-10 Richard Guenther <rguenther@suse.de>
11971
ea4c3e65 11972 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 11973
92b1d23b
RG
119742011-02-10 Richard Guenther <rguenther@suse.de>
11975
11976 PR tree-optimization/47677
11977 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11978
525a2d06
JJ
119792011-02-10 Jakub Jelinek <jakub@redhat.com>
11980
11981 PR target/47665
11982 * combine.c (make_compound_operation): Only change shifts into
11983 multiplication for SCALAR_INT_MODE_P.
11984
06c969bd
JZ
119852011-02-10 Jie Zhang <jie@codesourcery.com>
11986
11987 PR testsuite/47622
11988 Revert
11989 2011-02-05 Jie Zhang <jie@codesourcery.com>
11990 PR debug/42631
11991 * web.c (entry_register): Don't clobber the number of the
11992 first uninitialized reference in used[].
11993
282ec48e
RG
119942011-02-09 Richard Guenther <rguenther@suse.de>
11995
11996 PR tree-optimization/47664
11997 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11998 all edges again.
11999
df98c3e8
DE
120002011-02-09 David Edelsohn <dje.gcc@gmail.com>
12001
d0f21cd6
DE
12002 PR target/46481
12003 PR target/47032
df98c3e8
DE
12004 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12005 PROCESSOR_POWER7.
12006 (PROCESSOR_DEFAULT64): Same.
12007 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12008
67b6839f
RO
120092011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12010
12011 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12012
4fd73214
MJ
120132011-02-09 Martin Jambor <mjambor@suse.cz>
12014
12015 PR middle-end/45505
12016 * tree-sra.c (struct access): New flags grp_scalar_read and
12017 grp_scalar_write. Changed description of assignment read and write
12018 flags.
12019 (dump_access): Dump new flags, reorder all of them.
12020 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12021 to detect multiple scalar reads.
12022 (analyze_access_subtree): Use the new scalar read write flags instead
12023 of the old flags. Adjusted comments.
12024
91140cd3
DD
120252011-02-08 DJ Delorie <dj@redhat.com>
12026
12027 PR target/47548
12028 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12029 patterns.
12030
4254bbfe
JM
120312011-02-08 Joseph Myers <joseph@codesourcery.com>
12032
12033 * config/m68k/uclinux.opt: New.
12034 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12035
f1fda84e
JM
120362011-02-08 Joseph Myers <joseph@codesourcery.com>
12037
12038 * config/cris/elf.opt (sim): New Driver option.
12039
4933ae74
JM
120402011-02-08 Joseph Myers <joseph@codesourcery.com>
12041
12042 * config/xtensa/elf.opt: New.
12043 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12044
4ad70280
JM
120452011-02-08 Joseph Myers <joseph@codesourcery.com>
12046
12047 * config/vax/elf.opt: New.
12048 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12049
20893707
JM
120502011-02-08 Joseph Myers <joseph@codesourcery.com>
12051
12052 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12053
b8e7038e
JM
120542011-02-08 Joseph Myers <joseph@codesourcery.com>
12055
12056 * config/gnu-user.opt: New.
12057 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12058 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12059 *-*-uclinux*): Use gnu-user.opt.
12060
e1c5225a
TS
120612011-02-08 Thomas Schwinge <thomas@schwinge.name>
12062
12063 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12064 * config/i386/gnu.h (CPP_SPEC): Likewise.
12065
5e46b0c6
ILT
120662011-02-08 Ian Lance Taylor <iant@google.com>
12067
12068 * common.opt (fcx-limited-range): Add SetByCombined flag.
12069 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12070 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12071 (fassociative-math, freciprocal-math): Likewise.
12072 (funsafe-math-optimizations): Likewise.
12073 * opth-gen.awk: Handle SetByCombined.
12074 * optc-gen.awk: Likewise.
ea4c3e65 12075 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
12076 (set_unsafe_math_optimizations_flags): Likewise.
12077 * doc/options.texi (Option properties): Document SetByCombined.
12078
32243d46
JM
120792011-02-08 Joseph Myers <joseph@codesourcery.com>
12080
12081 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12082 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12083 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12084 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12085 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12086
479c1fb3
SP
120872011-02-08 Sebastian Pop <sebastian.pop@amd.com>
12088
12089 PR tree-optimization/46834
12090 PR tree-optimization/46994
12091 PR tree-optimization/46995
12092 * graphite-sese-to-poly.c (used_outside_reduction): New.
12093 (detect_commutative_reduction): Call used_outside_reduction.
12094 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12095 translate_scalar_reduction_to_array only when at least one
12096 loop-phi/close-phi tuple has been detected.
12097
3865a06f
RG
120982011-02-08 Richard Guenther <rguenther@suse.de>
12099
12100 PR middle-end/47639
12101 * tree-vect-generic.c (expand_vector_operations_1): Update
12102 stmts here ...
12103 (expand_vector_operations): ... not here. Cleanup EH info
12104 and the CFG if required.
12105
62902f3f
RG
121062011-02-08 Richard Guenther <rguenther@suse.de>
12107
12108 PR tree-optimization/47641
12109 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12110 require type compatibility.
12111
0efb9d64
AK
121122011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12113
12114 * gimple-low.c (lower_function_body): Don't remove the location of
12115 the return statement here.
12116 (lower_gimple_return): Do it here instead but only if the return
12117 statement is actually used twice.
12118
034b8ae4
RG
121192011-02-08 Richard Guenther <rguenther@suse.de>
12120
12121 PR tree-optimization/47632
12122 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12123 unused up_to_stmt parameter, return whether cfg-cleanup is
12124 necessary, remove EH info properly.
12125 (forward_propagate_into_gimple_cond): Adjust caller.
12126 (forward_propagate_into_cond): Likewise.
12127 (forward_propagate_comparison): Likewise.
12128 (tree_ssa_forward_propagate_single_use_vars): Make
12129 forward_propagate_comparison case similar to the two others.
12130
298362c8
NC
121312011-02-08 Nick Clifton <nickc@redhat.com>
12132
12133 * config/mn10300/mn10300.opt (mliw): New command line option.
12134 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12135 (liw_bundling): New automaton.
12136 (liw): New attribute.
12137 (liw_op): New attribute.
12138 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12139 (movsi_internal): Add LIW attributes.
12140 (andsi3): Likewise.
12141 (iorsi3): Likewise.
12142 (xorsi3): Likewise.
12143 (addsi3): Separate register and immediate alternatives.
12144 Add LIW attributes.
12145 (subsi3): Likewise.
12146 (cmpsi): Likewise.
12147 (aslsi3): Likewise.
12148 (lshrsi3): Likewise.
12149 (ashrsi3): Likewise.
12150 (liw): New pattern.
12151 * config/mn10300/mn10300.c (liw_op_names): New
12152 (mn10300_print_operand): Handle 'W' operand descriptor.
12153 (extract_bundle): New function.
12154 (check_liw_constraints): New function.
12155 (liw_candidate): New function.
12156 (mn10300_bundle_liw): New function.
12157 (mn10300_reorg): New function.
12158 (TARGET_MACHINE_DEPENDENT_REORG): Define.
12159 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12160 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12161 __LIW__ or __NO_LIW__.
12162 * doc/invoke.texi: Describe the -mliw command line option.
12163
90488014
JDA
121642011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12165
12166 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12167 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12168 pthread_mutex_unlock): Remove.
12169 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12170 * config/pa/t-pa64: Likewise.
12171 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12172 shared libc if not linking against libpthread.
12173 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12174
689ff841
IS
121752011-02-07 Iain Sandoe <iains@gcc.gnu.org>
12176
12177 PR target/47558
12178 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12179 on 10.6 and later to ensure that we always use the unwinder from
12180 the system. Only add -no_compact_unwind when tarteting darwin
12181 10.6 or later.
12182
821014aa
SE
121832011-02-07 Steve Ellcey <sje@cup.hp.com>
12184
12185 PR target/46997
12186 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12187 (vec_interleave_lowv2sf): Ditto.
12188 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12189 (vec_extract_oddv2sf): Ditto.
12190
41cf94fb
MS
121912011-02-07 Mike Stump <mikestump@comcast.net>
12192
62dea57d 12193 PR target/42333
41cf94fb
MS
12194 Add __ieee_divdc3 entry point.
12195 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12196 entry point.
12197 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12198 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12199 * config/darwin.c (darwin_rename_builtins): Add.
12200 * config/darwin-protos.h (darwin_rename_builtins): Add.
12201
ee09a3dd
MM
122022011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12203
12204 PR target/47636
12205 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12206 for the condition.
12207
83296cd0
MS
122082011-02-07 Mike Stump <mikestump@comcast.net>
12209
ea4c3e65 12210 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 12211
0f4e946f
DC
122122011-02-07 Denis Chertykov <chertykov@gmail.com>
12213
12214 PR target/47534
12215 * config/avr/libgcc.S (exit): Move .endfunc
12216
1ec87690
RG
122172011-02-07 Richard Guenther <rguenther@suse.de>
12218
12219 PR tree-optimization/47615
12220 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12221 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12222 (run_scc_vn): Initialize it.
12223 (visit_reference_op_load): Use it.
12224 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12225
b46ae6da
UW
122262011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12227
12228 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12229 DImode trapping arithmetic libfuncs.
12230
c0aae19c
RG
122312011-02-07 Richard Guenther <rguenther@suse.de>
12232
12233 PR tree-optimization/47621
12234 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12235 two duplicates ...
12236 (execute_update_addresses_taken): ... here. Make it more
12237 conservative in what we accept.
12238
295d926b
JM
122392011-02-06 Joseph Myers <joseph@codesourcery.com>
12240
12241 * config/sparc/freebsd.h (ASM_SPEC): Define.
12242 * config/sparc/vxworks.h (ASM_SPEC): Define.
12243
bdeb2471
JM
122442011-02-06 Joseph Myers <joseph@codesourcery.com>
12245
12246 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12247
d5d3781a
SB
122482011-02-06 Steven Bosscher <steven@gcc.gnu.org>
12249
12250 * doc/invoke.texi: Remove reference to compiler internals from
12251 user documentation.
12252
12253 * reg-notes.def: Remove REG_VALUE_PROFILE.
12254 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12255
c42c09fc
JJ
122562011-02-05 Jakub Jelinek <jakub@redhat.com>
12257
12258 PR middle-end/47610
12259 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 12260 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 12261
beea2755
JZ
122622011-02-05 Jie Zhang <jie@codesourcery.com>
12263
12264 PR debug/42631
12265 * web.c (entry_register): Don't clobber the number of the
12266 first uninitialized reference in used[].
12267
a130584a
SP
122682011-02-04 Sebastian Pop <sebastian.pop@amd.com>
12269
12270 PR tree-optimization/46194
12271 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12272 (build_classic_dist_vector_1): Do not represent classic distance
12273 vectors when the access functions are variating in different loops.
12274
962101ac
JM
122752011-02-04 Joseph Myers <joseph@codesourcery.com>
12276
12277 * config/mips/iris6.opt: New.
12278 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12279
55eaaa5b
RH
122802011-02-04 Richard Henderson <rth@redhat.com>
12281 Steve Ellcey <sje@cup.hp.com>
12282
12283 PR target/46997
12284 * config/ia64/predicates.md (mux1_brcst_element): New.
12285 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12286 * config/ia64/ia64.c (ia64_unpack_assemble): New.
12287 (ia64_unpack_sign): New.
12288 (ia64_expand_unpack): Rewrite using new routines.
12289 (ia64_expand_widen_sum): Ditto.
12290 (ia64_expand_dot_prod_v8qi): Ditto.
12291 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12292 routines, add endian check.
12293 (pmpy2_even): Rename from pmpy2_r, add endian check.
12294 (pmpy2_odd): Rename from pmpy2_l, add endian check.
12295 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12296 (vec_widen_smult_hi_v4hi): Ditto.
12297 (vec_widen_umult_lo_v4hi): Ditto.
12298 (vec_widen_umult_hi_v4hi): Ditto.
12299 (mulv2si3): Change endian checks.
12300 (sdot_prodv4hi): Rewrite with new calls.
12301 (udot_prodv4hi): New.
12302 (vec_pack_ssat_v4hi): Add endian check.
12303 (vec_pack_usat_v4hi): Ditto.
12304 (vec_pack_ssat_v2si): Ditto.
12305 (max1_even): Rename from max1_r, add endian check.
12306 (max1_odd): Rename from max1_l, add endian check.
12307 (*mux1_rev): Format change.
12308 (*mux1_mix): Ditto.
12309 (*mux1_shuf): Ditto.
12310 (*mux1_alt): Ditto.
12311 (*mux1_brcst_v8qi): Use new predicate.
12312 (vec_extract_evenv8qi): Remove endian check.
12313 (vec_extract_oddv8qi): Ditto.
12314 (vec_interleave_lowv4hi): Format change.
12315 (vec_interleave_highv4hi): Ditto.
12316 (mix2_even): Rename from mix2_r, add endian check.
12317 (mix2_odd): Rename from mux2_l, add endian check.
12318 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12319 (vec_extract_evenodd_helper): Format change.
12320 (vec_extract_evenv4hi): Remove endian check.
12321 (vec_extract_oddv4hi): Remove endian check.
12322 (vec_interleave_lowv2si): Format change.
12323 (vec_interleave_highv2si): Format change.
12324 (vec_initv2si): Remove endian check.
12325 (vecinit_v2si): Add endian check.
12326 (reduc_splus_v2sf): Add endian check.
12327 (reduc_smax_v2sf): Ditto.
12328 (reduc_smin_v2sf): Ditto.
12329 (vec_initv2sf): Remove endian check.
12330 (fpack): Add endian check.
12331 (fswap): Add endian check.
12332 (vec_interleave_highv2sf): Add endian check.
12333 (vec_interleave_lowv2sf): Add endian check.
12334 (fmix_lr): Add endian check.
12335 (vec_setv2sf): Format change.
12336 (*vec_extractv2sf_0_be): Use shift to extract operand.
12337 (*vec_extractv2sf_1_be): New.
12338 (vec_pack_trunc_v4hi): Add endian check.
12339 (vec_pack_trunc_v2si): Format change.
12340
dcde5957
JJ
123412011-02-04 Jakub Jelinek <jakub@redhat.com>
12342
12343 PR inline-asm/23200
12344 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 12345 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
12346 (stmt_is_replaceable_p): New function.
12347 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12348 callers.
12349 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12350 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12351 SSA_NAME_DEF_STMT.
12352 * tree-flow.h (stmt_is_replaceable_p): New prototype.
12353
a64a8e5a
JM
123542011-02-04 Joseph Myers <joseph@codesourcery.com>
12355
12356 * config/rs6000/xilinx.opt: New.
12357 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12358
4da2ed2f
JM
123592011-02-04 Joseph Myers <joseph@codesourcery.com>
12360
12361 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12362
a6e508f9
AS
123632011-02-03 Anatoly Sokolov <aesok@post.ru>
12364
12365 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12366 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12367 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12368 secondary_reload_info, xtensa_secondary_reload): Remove.
12369 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12370 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12371 (xtensa_preferred_reload_class): Make static. Change return and
12372 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12373 Use CONST_DOUBLE_P predicate.
12374 (xtensa_preferred_output_reload_class): New function.
12375 (xtensa_secondary_reload): Make static.
12376
82dc0de3
JM
123772011-02-03 Joseph Myers <joseph@codesourcery.com>
12378
12379 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12380 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12381 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12382
7fece979
JJ
123832011-02-03 Jakub Jelinek <jakub@redhat.com>
12384
12385 PR middle-end/31490
12386 * output.h (SECTION_RELRO): Define.
12387 (SECTION_MACH_DEP): Adjust.
12388 (get_variable_section): New prototype.
12389 * varpool.c (varpool_finalize_named_section_flags): New function.
12390 (varpool_assemble_pending_decls): Call it.
12391 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12392 * cgraphunit.c (cgraph_output_in_order): Call
12393 varpool_finalize_named_section_flags.
12394 * varasm.c (get_section): Allow section flags conflicts between
12395 relro and read-only sections if the section hasn't been declared yet.
12396 Set SECTION_OVERRIDE after diagnosing section type conflict.
12397 (get_variable_section): No longer static.
12398 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12399 readonly sections that need relocations.
12400 (decl_readonly_section_1): New function.
12401 (decl_readonly_section): Use it.
12402
12403 Revert:
509d65dd 12404 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
12405 Steve Ellcey <sje@cup.hp.com>
12406
12407 PR middle-end/31490
12408 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12409 if section attribute used.
12410
d18d5478
JJ
124112011-02-03 Jakub Jelinek <jakub@redhat.com>
12412
12413 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12414 * config/darwin.c (SECTION_NO_ANCHOR): Define.
12415 (darwin_init_sections): Remove assertion.
12416
6479ed4b
NC
124172011-02-03 Nick Clifton <nickc@redhat.com>
12418
12419 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12420 lt and ge.
38be4072 12421 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
12422 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12423 instead of "n" and "pz".
12424 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12425 CC_FLAG_S.
12426
89843f5d
JJ
124272011-02-03 Jakub Jelinek <jakub@redhat.com>
12428
65450d64
JJ
12429 PR target/47312
12430 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12431 fma, expand FMA_EXPR as fma{,f,l} call.
12432
7d58701c
JJ
12433 PR lto/47274
12434 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12435 copy them into a unsigned char variable and pass address of it to
12436 lto_output_data_stream.
12437
89843f5d
JJ
12438 PR target/47564
12439 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12440 around backend_init_target and lang_dependent_init_target calls.
12441 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12442 (verify_cgraph_node): Don't call set_cfun here. Use
12443 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12444 Set error_found for incorrectly represented calls to thunks.
12445
4deef538
AO
124462011-02-03 Alexandre Oliva <aoliva@redhat.com>
12447
12448 PR debug/43092
12449 PR rtl-optimization/43494
12450 * rtl.h (for_each_inc_dec_fn): New type.
12451 (for_each_inc_dec): Declare.
12452 * rtlanal.c (struct for_each_inc_dec_ops): New type.
12453 (for_each_inc_dec_find_inc_dec): New fn.
12454 (for_each_inc_dec_find_mem): New fn.
12455 (for_each_inc_dec): New fn.
12456 * dse.c (struct insn_size): Remove.
12457 (replace_inc_dec, replace_inc_dec_mem): Remove.
12458 (emit_inc_dec_insn_before): New fn.
12459 (check_for_inc_dec): Use it, along with for_each_inc_dec.
12460 (canon_address): Pass mem modes to cselib_lookup.
12461 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
12462 (cselib_lookup_from_insn): Likewise.
12463 (cselib_subst_to_values): Likewise.
12464 * cselib.c (find_slot_memmode): New var.
12465 (cselib_find_slot): New fn. Use it instead of
12466 htab_find_slot_with_hash everywhere.
12467 (entry_and_rtx_equal_p): Use find_slot_memmode.
12468 (autoinc_split): New fn.
12469 (rtx_equal_for_cselib_p): Rename and implement in terms of...
12470 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
12471 Deal with autoinc. Special-case recursion into MEMs.
12472 (cselib_hash_rtx): Likewise.
12473 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
12474 address and MEM modes.
12475 (cselib_subst_to_values): Add memmode, pass it on.
12476 Deal with autoinc.
12477 (cselib_lookup): Add memmode argument, pass it on.
12478 (cselib_lookup_from_insn): Add memmode.
12479 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12480 (struct cselib_record_autoinc_data): New.
12481 (cselib_record_autoinc_cb): New fn.
12482 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
12483 mode to cselib_lookup. Reset autoinced REGs here instead of...
12484 (cselib_process_insn): ... here.
12485 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12486 to cselib_lookup.
12487 (add_uses): Likewise, also to cselib_subst_to_values.
12488 (add_stores): Likewise.
12489 * sched-deps.c (add_insn_mem_dependence): Pass mode to
12490 cselib_subst_to_values.
12491 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
12492 * gcse.c (do_local_cprop): Adjusted.
12493 * postreload.c (reload_cse_simplify_set): Adjusted.
12494 (reload_cse_simplify_operands): Adjusted.
12495 * sel-sched-dump (debug_mem_addr_value): Pass mode.
12496
1551d44a
AO
124972011-02-03 Alexandre Oliva <aoliva@redhat.com>
12498
12499 PR tree-optimization/45122
12500 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12501 unsafe assumptions when there's more than one loop exit.
12502
c9485473
MM
125032011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12504
12505 PR target/47272
12506 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12507 Document using vector double with the load/store builtins, and
12508 that the load/store builtins always use Altivec instructions.
12509
12510 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12511 to use altivec memory instructions, even on VSX.
12512 (vector_altivec_store_<mode>): Ditto.
12513
12514 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12515 function.
12516
12517 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12518 V2DF, V2DI support to load/store overloaded builtins.
12519
12520 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12521 altivec load/store builtins for V2DF/V2DI types.
12522
12523 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12524 set avoid indexed addresses on power6 if -maltivec.
12525 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12526 vector_altivec_load/vector_altivec_store builtins.
12527 (altivec_expand_st_builtin): Ditto.
12528 (altivec_expand_builtin): Add VSX memory builtins.
12529 (rs6000_init_builtins): Add V2DI types to internal types.
12530 (altivec_init_builtins): Add support for V2DF/V2DI altivec
12531 load/store builtins.
12532 (rs6000_address_for_altivec): Insure memory address is appropriate
12533 for Altivec.
12534
12535 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12536 vec_vsx_ld and vec_vsx_st.
12537 (vsx_store_<mode>): Ditto.
12538
12539 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12540 variables to hold long long types for VSX vector memory builtins.
12541 (RS6000_BTI_unsigned_long_long): Ditto.
12542 (long_long_integer_type_internal_node): Ditti.
12543 (long_long_unsigned_type_internal_node): Ditti.
12544
12545 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12546 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12547 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12548
12549 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12550 short cuts.
12551 (vec_vsx_st): Ditto.
12552
b24d1acf
JM
125532011-02-02 Joseph Myers <joseph@codesourcery.com>
12554
12555 * config/pa/pa-hpux10.opt: New.
12556 * config/hpux11.opt (pthread): New Driver option.
12557 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12558 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12559
aa18dd0f
JM
125602011-02-02 Joseph Myers <joseph@codesourcery.com>
12561
12562 * config/ia64/vms.opt: New.
12563 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12564
28fc3eee
MM
125652011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12566
12567 PR target/47580
12568 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12569 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12570 generator functions.
12571 (vsx_floatuns<VSi><mode>2): Ditto.
12572 (vsx_fix_trunc<mode><VSi>2): Ditto.
12573 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12574
b5838b1f
JM
125752011-02-02 Joseph Myers <joseph@codesourcery.com>
12576
12577 * config/i386/djgpp.opt (posix): New Driver option.
12578
0db8fa89
GP
125792011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
12580
12581 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12582 Move to the unsupported targets list.
12583
9cd4f22a
PB
125842011-02-02 Peter Bergner <bergner@vnet.ibm.com>
12585
12586 PR rtl-optimization/47525
12587 * df-scan.c: Update copyright years.
12588 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12589 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12590
9ed8059c
RO
125912011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12592
12593 * config/i386/sysv4.h (TARGET_VERSION): Remove.
12594 (SUBTARGET_RETURN_IN_MEMORY): Remove.
12595 (ASM_OUTPUT_ASCII): Remove.
12596 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12597
2a737389
JL
125982011-02-02 Jeff Law <law@redhat.com>
12599
12600 PR middle-end/47543
12601 * reload.c (find_reloads_address): Handle reg+d address where both
12602 components are invalid by reloading the entire address.
12603
9dac82c4
SP
126042011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12605 Richard Guenther <rguenther@suse.de>
12606
12607 PR tree-optimization/40979
12608 PR bootstrap/47044
12609 * passes.c (init_optimization_passes): After LIM call copy_prop
12610 and DCE to clean up.
12611 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12612
14dd9aab
SP
126132011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12614
12615 PR tree-optimization/47576
12616 PR tree-optimization/47555
12617 * doc/invoke.texi (scev-max-expr-complexity): Documented.
12618 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12619 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12620 * tree-scalar-evolution.c (follow_ssa_edge): Use
12621 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12622
5cbf5c20
RG
126232011-02-02 Richard Guenther <rguenther@suse.de>
12624
12625 PR tree-optimization/47566
12626 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12627
83d70792
AO
126282011-02-02 Alexandre Oliva <aoliva@redhat.com>
12629
e829c321
AO
12630 PR debug/47106
12631 PR debug/47402
12632 * tree-inline.c (declare_return_variable): Remove unused caller
12633 variable.
12634
83d70792
AO
12635 PR debug/47106
12636 PR debug/47402
12637 * tree-flow-inline.h (clear_is_used, is_used_p): New.
12638 * cfgexpand.c (account_used_vars_for_block): Use them.
12639 * tree-nrv.c (tree_nrv): Likewise.
12640 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12641 (dump_scope_block): Likewise.
12642 (remove_unused_locals): Likewise.
12643
aaa2ac93
AO
12644 PR debug/47106
12645 PR debug/47402
12646 * tree-inline.c (declare_return_variable): Add result decl to
12647 local decls only once.
12648 * gimple-low.c (record_vars_into): Mark newly-created variables
12649 as referenced.
12650
a59d15cf
AO
126512011-02-02 Alexandre Oliva <aoliva@redhat.com>
12652
12653 PR debug/47498
12654 PR debug/47501
12655 PR debug/45136
12656 PR debug/45130
12657 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12658 debug insns.
12659 (no_real_insns_p, schedule_block, set_priorities): Drop special
12660 treatment of boundary debug insns.
38be4072 12661 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
12662 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12663 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12664 (BOUNDARY_DEBUG_INSN_P): Likewise.
12665 (SCHEDULE_DEBUG_INSN_P): Likewise.
12666 * sched-rgn.c (init_ready_list): Drop special treatment of
12667 boundary debug insns.
12668 * final.c (rest_of_clean_state): Clear notes' BB.
12669
6fc2f091
JM
126702011-02-01 Joseph Myers <joseph@codesourcery.com>
12671
12672 * config/openbsd.opt (assert=): New Driver option.
12673
fc523387
JM
126742011-02-01 Joseph Myers <joseph@codesourcery.com>
12675
12676 * config/i386/nto.opt: New.
12677 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12678
6d9821e5
JM
126792011-02-01 Joseph Myers <joseph@codesourcery.com>
12680
12681 * config/i386/netware.opt: New.
12682 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12683
cef932d4
JM
126842011-02-01 Joseph Myers <joseph@codesourcery.com>
12685
12686 * config/interix.opt (posix): New Driver option.
12687
22843acd
DD
126882011-02-01 DJ Delorie <dj@redhat.com>
12689
56490b74
DD
12690 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12691
22843acd
DD
12692 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12693 class for A0/A1.
12694
199c8f2f
SP
126952011-02-01 Sebastian Pop <sebastian.pop@amd.com>
12696
12697 PR tree-optimization/47561
12698 * toplev.c (process_options): Print the Graphite flags. Add
12699 flag_loop_flatten to the list of options requiring Graphite.
12700
926bcf22
JM
127012011-02-01 Joseph Myers <joseph@codesourcery.com>
12702
12703 * config/i386/cygming.opt (posix): New Driver option.
12704
59793c51
JM
127052011-02-01 Joseph Myers <joseph@codesourcery.com>
12706
12707 * config/arm/vxworks.opt: New.
12708 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12709
183c38a4
JM
127102011-02-01 Joseph Myers <joseph@codesourcery.com>
12711
12712 * config/alpha/elf.opt: New.
12713 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12714 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12715
9939e416
RG
127162011-02-01 Richard Guenther <rguenther@suse.de>
12717
12718 PR tree-optimization/47559
12719 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12720 store-motion on references that can throw.
12721
4a3c9687
BS
127222011-02-01 Bernd Schmidt <bernds@codesourcery.com>
12723
12724 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12725 * tree-pass.h (TDF_CSELIB): New macro.
12726 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12727 cselib_lookup): Check for it rather than for TDF_DETAILS.
12728
dd3b31fb
L
127292011-02-01 H.J. Lu <hongjiu.lu@intel.com>
12730
12731 PR driver/47547
12732 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12733 is HOST_BIT_BUCKET.
12734
12735 * opts.c (finish_options): Don't add x_aux_base_name if it is
12736 HOST_BIT_BUCKET.
12737
34c1de79
RG
127382011-02-01 Richard Guenther <rguenther@suse.de>
12739
12740 PR tree-optimization/47555
12741 Revert
12742 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
12743
12744 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12745
dd2804d2
SB
127462011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
12747
12748 PR gcc/46692
12749 * config/lm32/t-lm32: Add multilib for all CPU options.
12750
3fd3b156
RG
127512011-02-01 Richard Guenther <rguenther@suse.de>
12752
12753 PR tree-optimization/47541
12754 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12755 sure to have a field at offset zero.
12756
f16072b6
JM
127572011-01-31 Joseph Myers <joseph@codesourcery.com>
12758
12759 * config/arc/arc.opt (EB, EL): New Driver options.
12760
6456cf2e
JM
127612011-01-31 Joseph Myers <joseph@codesourcery.com>
12762
12763 * config/alpha/osf5.opt: New.
12764 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12765
cdde6ab4
JM
127662011-01-31 Joseph Myers <joseph@codesourcery.com>
12767
12768 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12769
7633415c
SP
127702011-01-31 Sebastian Pop <sebastian.pop@amd.com>
12771
12772 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12773 -floop-interchange.
12774 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12775 is an alias of -floop-interchange and that it requires the
12776 Graphite infrastructure.
12777 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12778 flag_loop_interchange based on the value of flag_tree_loop_linear.
12779
0425d6f5
JJ
127802011-01-31 Jakub Jelinek <jakub@redhat.com>
12781 Richard Guenther <rguenther@suse.de>
12782
12783 PR tree-optimization/47538
12784 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12785 type instead of r1type, except for comparisons. For right
12786 shifts and comparisons punt if there are mismatches in
12787 sizetype vs. non-sizetype types.
12788
500b16c3
RO
127892011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12790
12791 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12792 avx_runtime.
12793
e279edb0
RO
127942011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12795
12796 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12797 version number.
12798 * configure: Regenerate.
12799
c6092243
RO
128002011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12801
12802 * configure.ac (gcc_cv_ld_static_option): Define.
12803 (gcc_cv_ld_dynamic_option): Define.
12804 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12805 instead.
12806 (HAVE_LD_STATIC_DYNAMIC): Update message.
12807 (LD_STATIC_OPTION): Define.
12808 (LD_DYNAMIC_OPTION): Define.
12809 * configure: Regenerate.
12810 * config.in: Regenerate.
12811 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12812 HAVE_LD_STATIC_DYNAMIC]: Use them.
12813
d7862be3
NC
128142011-01-31 Nick Clifton <nickc@redhat.com>
12815
12816 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12817 registers inside interrupt handlers if the handler is not a leaf
12818 function.
12819
ba4ec0e0
NC
128202011-01-31 Nick Clifton <nickc@redhat.com>
12821
12822 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12823 reg_renumber returning an INVALID_REGNUM.
12824
29a63921
AO
128252011-01-31 Alexandre Oliva <aoliva@redhat.com>
12826
12827 PR libgcj/44341
12828 * doc/install.texi: Document host options discarded when cross
12829 configuring target libraries.
12830
ef591d3f
AO
128312011-01-31 Alexandre Oliva <aoliva@redhat.com>
12832
12833 Reverted:
12834 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
12835 PR debug/45136
12836 PR debug/45130
12837 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12838 debug insns.
12839 (no_real_insns_p, schedule_block, set_priorities): Drop special
12840 treatment of boundary debug insns.
38be4072 12841 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
12842 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12843 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12844 (BOUNDARY_DEBUG_INSN_P): Likewise.
12845 (SCHEDULE_DEBUG_INSN_P): Likewise.
12846 * sched-rgn.c (init_ready_list): Drop special treatment of
12847 boundary debug insns.
12848 * final.c (rest_of_clean-state): Clear notes' BB.
12849
61052244
AM
128502011-01-31 Alan Modra <amodra@gmail.com>
12851
12852 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12853 toc relative expressions as we do in print_operand_address.
12854
c4c8962b
KH
128552011-01-30 Kazu Hirata <kazu@codesourcery.com>
12856
12857 * doc/extend.texi: Follow spelling conventions.
12858 * doc/invoke.texi: Fix a typo.
12859
e543b94c
JM
128602011-01-30 Joseph Myers <joseph@codesourcery.com>
12861
12862 * config/hpux11.opt: New.
12863 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12864 ia64*-*-hpux*): Use hpux11.opt.
12865
509d65dd 128662011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
12867
12868 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12869 to tmake_file.
12870
7be03a0e
GP
128712011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12872
12873 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12874 support sites.
12875
419d1d37
GP
128762011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12877
b596ed64
GP
12878 * doc/install.texi (Binaries): Remove outdated reference for
12879 Motorola 68HC11/68HC12 downloads.
12880
128812011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 12882
419d1d37
GP
12883 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12884 Drepper's paper.
12885
4406d0e9
JW
128862011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
12887
12888 PR bootstrap/47147
12889 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12890 used by NetBSD.
12891
38be4072 128922011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
12893
12894 * value-prof.c (check_counter): Corrected error message.
12895
0cd98787
JZ
128962011-01-29 Jie Zhang <jie@codesourcery.com>
12897
12898 * config/arm/arm.c (arm_legitimize_reload_address): New.
12899 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12900 arm_legitimize_reload_address.
38be4072 12901 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 12902
9b798ac5
ILT
129032011-01-28 Ian Lance Taylor <iant@google.com>
12904
12905 * godump.c (go_define): Ignore macros whose definitions include
12906 two adjacent operands.
12907
591e29d9
JJ
129082011-01-28 Jakub Jelinek <jakub@redhat.com>
12909
12910 PR target/42894
12911 * varasm.c (force_const_mem): Store copy of x in desc->constant
12912 instead of x itself.
12913 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12914 itself into REG_EQUAL note.
12915
62dcc44a
JM
129162011-01-28 Joseph Myers <joseph@codesourcery.com>
12917
12918 * config/freebsd.opt (posix, rdynamic): New Driver options.
12919
c9f58b9a
RO
129202011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12921
12922 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12923 -Bstatic/-Bdynamic.
12924 * configure: Regenerate.
12925
5f02b9db
JM
129262011-01-27 Joseph Myers <joseph@codesourcery.com>
12927
12928 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12929 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12930
5df97412
AS
129312011-01-27 Anatoly Sokolov <aesok@post.ru>
12932
12933 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12934 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12935 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12936 (s390_preferred_reload_class): Make static. Change return and
12937 'rclass' argument type to reg_class_t.
12938
779d4b91
JH
129392011-01-27 Jan Hubicka <jh@suse.cz>
12940
12941 PR middle-end/46949
12942 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12943 (process_function_and_variable_attributes): Check defined weakrefs.
12944
e80b21ed
MJ
129452011-01-27 Martin Jambor <mjambor@suse.cz>
12946
12947 PR tree-optimization/47228
12948 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12949 build_ref_for_offset.
12950
6dcc4f31
UW
129512011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12952
12953 * config/spu/spu-elf.h (ASM_SPEC): Remove.
12954
509d65dd 129552011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
12956
12957 PR rtl-optimization/46856
12958 * postreload.c (reload_combine_recognize_const_pattern): Do not
12959 separate cc0 setter and user on cc0 targets.
12960
04af8788
NP
129612011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
12962
12963 PR c/43082
12964 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12965 passed a VOID_TYPE expression, immediately emit an error and
12966 return error_mark_node.
12967
f7a60085
JL
129682011-01-26 Jeff Law <law@redhat.com>
12969
12970 PR rtl-optimization/47464
12971 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12972 rather than may_trap_p as needed.
12973
5c2917ec
DD
129742011-01-26 DJ Delorie <dj@redhat.com>
12975
12976 PR rtl-optimization/46878
12977 * combine.c (insn_a_feeds_b): Check for the implicit cc0
12978 setter/user dependency as well.
12979
bef16e87
EB
129802011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12981
12982 PR rtl-optimization/44469
12983 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12984 after removing trivially dead basic blocks.
12985
c75d884b
JM
129862011-01-26 Joseph Myers <joseph@codesourcery.com>
12987
12988 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12989 * config/frv/frv.h (LINK_SPEC): Likewise.
12990 * config/i386/netware.h (LINK_SPEC): Likewise.
12991 * config/m68k/linux.h (ASM_SPEC): Likewise.
12992 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12993 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12994 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12995 * config/sparc/linux.h (ASM_SPEC): Likewise.
12996 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12997 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12998
d3153553
JM
129992011-01-26 Joseph Myers <joseph@codesourcery.com>
13000
13001 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13002 * config/frv/frv.h (ASM_SPEC): Likewise.
13003 * config/m68k/linux.h (ASM_SPEC): Likewise.
13004 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13005 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13006 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13007 * config/sparc/linux.h (ASM_SPEC): Likewise.
13008 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13009 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13010
b89b1e9d
JM
130112011-01-26 Joseph Myers <joseph@codesourcery.com>
13012
13013 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13014 * config/frv/frv.h (LINK_SPEC): Likewise.
13015 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13016
12eb1a9c
JM
130172011-01-26 Joseph Myers <joseph@codesourcery.com>
13018
13019 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13020 * config/frv/frv.h (ASM_SPEC): Likewise.
13021 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13022 * config/m68k/linux.h (ASM_SPEC): Likewise.
13023 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13024 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13025 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13026 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13027 * config/sparc/linux.h (ASM_SPEC): Likewise.
13028 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13029 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13030 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13031
e435f098
SE
130322011-01-26 Steve Ellcey <sje@cup.hp.com>
13033
13034 PR target/46997
13035 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13036 (*mux2): Ditto.
13037 (vec_extract_evenodd_help): Ditto.
13038 (vec_extract_evenv4hi): Ditto.
13039 (vec_extract_oddv4hi): Ditto.
13040 (vec_interleave_lowv2si): Ditto.
13041 (vec_interleave_highv2si): Ditto.
13042 (vec_extract_evenv2si): Ditto.
13043 (vec_extract_oddv2si: Ditto.
13044 (vec_pack_trunc_v2si): Ditto.
13045
34f0eee0
JH
130462011-01-22 Jan Hubicka <jh@suse.cz>
13047
13048 PR target/47237
13049 * cgraph.h (cgraph_local_info): New field can_change_signature.
13050 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13051 signature can change.
13052 (ipcp_estimate_growth): Call sequence simplify only if calle signature
13053 can change.
13054 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13055 (cgraph_function_versioning): We can not change signature of functions
13056 that don't allow that.
13057 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13058 (lto_input_node): Likewise.
38be4072
UB
13059 * ipa-inline.c (compute_inline_parameters): Compute
13060 local.can_change_signature.
34f0eee0 13061 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
13062 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13063 functions that can not change signature.
34f0eee0 13064 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
13065 init_cumulative_args): Do not use local calling conventions
13066 for functions that can not change signature.
34f0eee0 13067
980ca891
JH
130682011-01-22 Jan Hubicka <jh@suse.cz>
13069
13070 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13071
768e3c60
RG
130722011-01-26 Richard Guenther <rguenther@suse.de>
13073
13074 PR tree-optimization/47190
61052244
AM
13075 * cgraphunit.c (process_common_attributes): New function.
13076 (process_function_and_variable_attributes): Use it.
768e3c60 13077
21d6a1c7
RG
130782011-01-26 Richard Guenther <rguenther@suse.de>
13079
13080 PR lto/47423
13081 * cgraphbuild.c (record_eh_tables): Record reference to personality
13082 function.
13083
48bb58b1
AO
130842011-01-26 Alexandre Oliva <aoliva@redhat.com>
13085
13086 PR debug/45454
13087 * sel-sched.c (moveup_expr): Don't let debug insns prevent
13088 non-debug insns from moving up.
13089
58c741a6
DK
130902011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13091
13092 PR target/40125
13093 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13094 t-dlldir{,-x} fragment for build and add it to tmake_file.
13095 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13096 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13097 * config/i386/t-dlldir: New file.
13098 (SHLIB_DLLDIR): Define.
13099 * config/i386/t-dlldir-x: New file.
13100 (SHLIB_DLLDIR): Define.
13101 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13102 (SHLIB_INSTALL): Use it.
13103
bff99262
CLT
131042011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
13105
13106 PR target/47246
13107 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13108 lower bound of the allowed Thumb-2 coprocessor load/store
13109 index range to -256. Add explaining comment.
13110
82c03907
ILT
131112011-01-25 Ian Lance Taylor <iant@google.com>
13112
13113 * godump.c (go_define): Improve lexing of macro expansion to only
13114 accept expressions which match Go spec.
13115
47ea1edf
DK
131162011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13117
d4dba752 13118 PR c++/43601
47ea1edf
DK
13119 * tree.c (handle_dll_attribute): Handle it.
13120 * doc/extend.texi (@item dllexport): Mention it.
13121 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13122
744f0946
ILT
131232011-01-25 Ian Lance Taylor <iant@google.com>
13124
13125 PR tree-optimization/26854
13126 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13127 (decl_jump_unsafe): Move higher in file, with no other change.
13128 (bind): Set has_jump_unsafe_decl if appropriate.
13129 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13130 (check_earlier_gotos): Likewise.
13131 (c_check_switch_jump_warnings): Likewise.
13132
5734f2b3
JW
131332011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
13134
13135 * doc/invoke.texi (Warning Options): Add missing hyphen.
13136 (-fprofile-dir): Minor grammatical fixes.
13137 (-fbranch-probabilities): Likewise.
13138
9bdbdcef
AO
131392011-01-25 Alexandre Oliva <aoliva@redhat.com>
13140
13141 PR debug/45136
13142 PR debug/45130
13143 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13144 debug insns.
13145 (no_real_insns_p, schedule_block, set_priorities): Drop special
13146 treatment of boundary debug insns.
38be4072 13147 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
13148 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13149 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13150 (BOUNDARY_DEBUG_INSN_P): Likewise.
13151 (SCHEDULE_DEBUG_INSN_P): Likewise.
13152 * sched-rgn.c (init_ready_list): Drop special treatment of
13153 boundary debug insns.
13154 * final.c (rest_of_clean-state): Clear notes' BB.
13155
b305e3da
SP
131562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13157
13158 * Makefile.in (LAMBDA_H): Removed.
13159 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13160 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13161 lambda-trans.o, and tree-loop-linear.o.
13162 (lto-symtab.o): Remove dependence on LAMBDA_H.
13163 (tree-loop-linear.o): Remove rule.
13164 (lambda-mat.o): Same.
13165 (lambda-trans.o): Same.
13166 (lambda-code.o): Same.
13167 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13168 (tree-vect-slp.o): Same.
13169 * hwint.h (gcd): Moved here.
13170 (least_common_multiple): Same.
13171 * lambda-code.c: Removed.
13172 * lambda-mat.c: Removed.
13173 * lambda-trans.c: Removed.
13174 * lambda.h: Removed.
13175 * tree-loop-linear.c: Removed.
13176 * lto-symtab.c: Do not include lambda.h.
13177 * omega.c (gcd): Removed.
13178 * passes.c (init_optimization_passes): Remove pass_linear_transform.
13179 * tree-data-ref.c (print_lambda_vector): Moved here.
13180 (lambda_vector_copy): Same.
13181 (lambda_matrix_copy): Same.
13182 (lambda_matrix_id): Same.
13183 (lambda_vector_first_nz): Same.
13184 (lambda_matrix_row_add): Same.
13185 (lambda_matrix_row_exchange): Same.
13186 (lambda_vector_mult_const): Same.
13187 (lambda_vector_negate): Same.
13188 (lambda_matrix_row_negate): Same.
13189 (lambda_vector_equal): Same.
13190 (lambda_matrix_right_hermite): Same.
13191 * tree-data-ref.h: Do not include lambda.h.
13192 (lambda_vector): Moved here.
13193 (lambda_matrix): Same.
13194 (dependence_level): Same.
13195 (lambda_transform_legal_p): Removed declaration.
13196 (lambda_collect_parameters): Same.
13197 (lambda_compute_access_matrices): Same.
13198 (lambda_vector_gcd): Same.
13199 (lambda_vector_new): Same.
13200 (lambda_vector_clear): Same.
13201 (lambda_vector_lexico_pos): Same.
13202 (lambda_vector_zerop): Same.
13203 (lambda_matrix_new): Same.
13204 * tree-flow.h (least_common_multiple): Removed declaration.
13205 * tree-parloops.c (lambda_trans_matrix): Moved here.
13206 (LTM_MATRIX): Same.
13207 (LTM_ROWSIZE): Same.
13208 (LTM_COLSIZE): Same.
13209 (LTM_DENOMINATOR): Same.
13210 (lambda_trans_matrix_new): Same.
13211 (lambda_matrix_vector_mult): Same.
13212 (lambda_transform_legal_p): Same.
13213 * tree-pass.h (pass_linear_transform): Removed declaration.
13214 * tree-ssa-loop.c (tree_linear_transform): Removed.
13215 (gate_tree_linear_transform): Removed.
13216 (pass_linear_transform): Removed.
13217 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13218 flag_loop_interchange.
13219
6bdfdb96
JJ
132202011-01-25 Jakub Jelinek <jakub@redhat.com>
13221
13222 PR tree-optimization/47265
13223 PR tree-optimization/47443
13224 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13225 if name still has some uses.
13226
e4cba915
MJ
132272011-01-25 Martin Jambor <mjambor@suse.cz>
13228
13229 PR tree-optimization/47382
13230 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13231 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13232
509d65dd 132332011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
13234
13235 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13236 sjlj_except_unwind_info.
13237
194313e2
RG
132382011-01-25 Richard Guenther <rguenther@suse.de>
13239
13240 PR tree-optimization/47426
13241 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13242 visible functions results escape.
13243
147a0bcf
JJ
132442011-01-25 Jakub Jelinek <jakub@redhat.com>
13245
13246 PR target/45701
13247 * config/arm/arm.c (any_sibcall_uses_r3): New function.
13248 (arm_get_frame_offsets): Use it.
13249
db963b52
SP
132502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13251 Jakub Jelinek <jakub@redhat.com>
13252
13253 PR tree-optimization/47271
13254 * tree-if-conv.c (bb_postdominates_preds): New.
13255 (if_convertible_bb_p): Call bb_postdominates_preds.
13256 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13257 (predicate_scalar_phi): Call bb_postdominates_preds.
13258
bcddd3b9
NC
132592011-01-25 Nick Clifton <nickc@redhat.com>
13260
13261 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13262 * config/rx/rx.c (rx_function_value): Likewise.
13263 (rx_promote_function_mode): Likewise.
13264 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13265 in order to make it legitimate.
38be4072
UB
13266 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13267 make sure that the first operand is the same as the result register.
bcddd3b9
NC
13268 (addsi3_unspec): Delete.
13269 (subdi3): Do not accept immediate operands.
13270 (subdi3_internal): Likewise.
13271
7e6cb022
JL
132722011-01-25 Jeff Law <law@redhat.com>
13273
13274 PR rtl-optimization/37273
13275 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13276 handle them like argument loads from stack slots. Do not double
13277 count memory for memory constants and argument loads from stack slots.
13278
9ffa621e
JJ
132792011-01-25 Jakub Jelinek <jakub@redhat.com>
13280
13281 PR tree-optimization/47427
13282 PR tree-optimization/47428
13283 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13284 coalesce if the new root var would be TREE_READONLY.
13285
5bd6e652
RG
132862011-01-25 Richard Guenther <rguenther@suse.de>
13287
13288 PR middle-end/47414
13289 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13290 correct type for TBAA.
13291
7c48ea69
SP
132922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13293
13294 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13295 (close_phi_written_to_memory): Call for_each_index with
13296 dr_indices_valid_in_loop.
13297
38013f25
SP
132982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13299
13300 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13301 when it is initialized.
13302
5c640e29
SP
133032011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13304
13305 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13306 call to graphite_find_data_references_in_stmt.
13307 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13308 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
13309 call to graphite_find_data_references_in_stmt.
13310 (analyze_drs_in_stmts): Same.
13311 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13312 in which the scalar analysis of indices is performed.
13313 (create_data_ref): Same. Update call to dr_analyze_indices.
13314 (find_data_references_in_stmt): Update call to create_data_ref.
13315 (graphite_find_data_references_in_stmt): Same.
13316 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13317 declaration.
13318 (create_data_ref): Same.
13319 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13320 call to create_data_ref.
13321
ac53c069
SP
133222011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13323
13324 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 13325 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 13326
3d17df15
SP
133272011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13328
13329 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13330 VAR_DECL, PARM_DECL, and RESULT_DECL.
13331
c513da01
SP
133322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13333
13334 * graphite-dependences.c (reduction_dr_1): Allow several reductions
13335 in a reduction PBB.
13336 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13337 that have already been marked as PBB_IS_REDUCTION.
13338
3a292d59
SP
133392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13340
13341 * graphite-scop-detection.c (same_close_phi_node): New.
13342 (remove_duplicate_close_phi): New.
13343 (make_close_phi_nodes_unique): New.
13344 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13345
ba858447
SP
133462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13347
13348 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13349 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13350 of both data references to be the same.
13351
8d865c56
SP
133522011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13353
38be4072
UB
13354 * graphite-dependences.c (build_lexicographical_constraint): Remove
13355 the gdim parameter.
13356 (build_lexicographical_constraint): Adjust call to
13357 ppl_powerset_is_empty.
8d865c56
SP
13358 (dependence_polyhedron): Same.
13359 (graphite_legal_transform_dr): Same.
13360 (graphite_carried_dependence_level_k): Same.
38be4072
UB
13361 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13362 parameter.
8d865c56
SP
13363 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13364
50034a36
SP
133652011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13366
13367 * graphite-sese-to-poly.c
13368 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13369 (close_phi_written_to_memory): New.
13370 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13371 and unshare_expr.
13372
0deada9e
SP
133732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13374
13375 * doc/install.texi: Update the expected version number of PPL to 0.11.
13376 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13377 #if PPL_VERSION_MINOR < 11.
13378
d7d3d6af
SP
133792011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13380
13381 * graphite-dependences.c: Include graphite-cloog-util.h.
13382 (new_poly_ddr): Inlined into dependence_polyhedron.
13383 (free_poly_ddr): Moved close by new_poly_ddr.
13384 (dependence_polyhedron_1): Renamed dependence_polyhedron.
13385 Early return NULL when ppl_powerset_is_empty returns true.
13386 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
13387 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
13388 (graphite_legal_transform_dr): Call new_poly_ddr.
13389 (graphite_carried_dependence_level_k): Same.
13390 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
13391 (dot_transformed_deps_stmt_1): Removed.
13392 (dot_deps_stmt_1): Call dot_deps_stmt_2.
13393 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
13394 (dot_deps_1): Call dot_deps_2.
13395 * Makefile.in (graphite-dependences.o): Add missing dependence on
13396 graphite-cloog-util.h.
13397
28c5db57
SP
133982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13399
13400 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13401 (build_lexicographical_constraint): Same.
13402 (dependence_polyhedron_1): Same.
13403 (graphite_legal_transform_dr): Same.
13404 (graphite_carried_dependence_level_k): Same.
13405 * graphite-ppl.c (ppl_powerset_is_empty): New.
13406 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13407 * tree-data-ref.c (dump_data_reference): Print the basic block index.
13408
5168d98f
SP
134092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13410
13411 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13412 the "a followed by b" relation and document it.
13413
4a40293a
SP
134142011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13415
13416 * graphite-dependences.c (build_lexicographical_constraint): Stop the
13417 iteration when the bag of constraints is empty.
13418
271fb6fa
SP
134192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13420
13421 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13422
92d23680
SP
134232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13424
13425 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13426 nest and two loop depths as parameters.
13427 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13428 lst_perfect_nestify.
13429
2f51deff
SP
134302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13431
13432 * graphite-dependences.c (print_pddr): Call
13433 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13434
07f3593c
SP
134352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13436
13437 * graphite-ppl.c (debug_gmp_value): New.
13438 * graphite-ppl.h (debug_gmp_value): Declared.
13439
3fae6099
TG
134402011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
13441
13442 * doc/install.texi: Document availability of cloog-0.16.
13443
1c3ba85b
SP
134442011-01-25 Vladimir Kargov <kargov@gmail.com>
13445
13446 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13447 invalid postdominance info.
13448
e8ba94fc
JH
134492011-01-24 Jan Hubicka <jh@suse.cz>
13450
13451 PR c/21659
13452 * doc/extend.texi (weak pragma): Drop claim that it must
13453 appear before definition.
13454 * varasm.c (merge_weak, declare_weak): Only sanity check
13455 that DECL is not output at a time it is declared weak.
13456
2b6e2d13
KZ
134572011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
13458
13459 * machmode.def: Fixed comments.
1c3ba85b 13460
9841210f
KT
134612011-01-24 Kai Tietz <kai.tietz@onevision.com>
13462
13463 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13464
134652011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
13466
13467 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 13468 WORDS_BIG_ENDIAN.
e046112d 13469
a6c5070a
L
134702011-01-24 H.J. Lu <hongjiu.lu@intel.com>
13471
13472 PR target/46519
13473 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13474 (block_info): Add scanned and prev.
13475 (move_or_delete_vzeroupper_2): Return if the basic block
13476 has been scanned and the upper 128bit state is unchanged
13477 from the last scan.
13478 (move_or_delete_vzeroupper_1): Return true if the exit
13479 state is changed.
13480 (move_or_delete_vzeroupper): Visit basic blocks using the
13481 work-list based algorithm based on vt_find_locations in
13482 var-tracking.c.
13483
13484 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13485
a40d79d7
NC
134862011-01-24 Nick Clifton <nickc@redhat.com>
13487
13488 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13489 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13490 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
13491 then define __v850e1__.
13492 * doc/invoke.texi: Document -mv850es.
13493
440eb8de
RH
134942011-01-24 Richard Henderson <rth@redhat.com>
13495
13496 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13497 compound unordered comparisons.
13498 * config/rx/rx.c (rx_split_fp_compare): Remove.
13499 * config/rx/rx-protos.h: Update.
13500 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13501 (cbranchsf4): Don't call rx_split_fp_compare.
13502 (*cbranchsf4): Use rx_split_cbranch.
13503 (*cmpsf): Don't accept "i" constraint.
13504 (*conditional_branch): Only valid after reload.
13505 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
13506
3ff79f99
MM
135072011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13508
13509 PR target/47385
13510 * config/rs6000/altivec.md (vector constant splitters): Add
13511 support for creating vector single precision constants if -mvsx is
13512 used and we would create the constant using Altivec primitives.
13513
ff3d9d08
BS
135142011-01-23 Bernd Schmidt <bernds@codesourcery.com>
13515 Richard Sandiford <rdsandiford@googlemail.com>
13516
13517 PR rtl-optimization/47166
13518 * reload1.c (emit_reload_insns): Disable the spill_reg_store
13519 mechanism for PRE_MODIFY and POST_MODIFY.
13520 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13521 reloadreg.
13522
7fcaf152
AS
135232011-01-23 Andreas Schwab <schwab@linux-m68k.org>
13524
8788adb6 13525 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 13526
d09b58c4
JH
135272011-01-22 Jan Hubicka <jh@suse.cz>
13528
13529 PR lto/47333
13530 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13531
e8ff8c5a
JH
135322011-01-22 Jan Hubicka <jh@suse.cz>
13533
13534 PR tree-optimization/43884
13535 PR lto/44334
8788adb6 13536 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
13537 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13538
ccaed3ba
AS
135392011-01-22 Anatoly Sokolov <aesok@post.ru>
13540
13541 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13542 * config/s390/s390.c (s390_register_move_cost,
13543 s390_memory_move_cost): New.
13544 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13545
0cecee06
UW
135462011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13547
13548 PR middle-end/47401
13549 * except.c (sjlj_assign_call_site_values): Move setting the
13550 crtl->uses_eh_lsda flag to ...
13551 (sjlj_mark_call_sites): ... here.
13552 (sjlj_emit_function_enter): Support NULL dispatch label.
13553 (sjlj_build_landing_pads): In a function with no landing pads
13554 that still has must-not-throw regions, generate code to register
13555 a personality function with empty LSDA.
13556
e692f276
RH
135572011-01-21 Richard Henderson <rth@redhat.com>
13558
1b7ae0b7
RH
13559 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13560
3843787f
RH
13561 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13562
e692f276
RH
13563 * compare-elim.c: New file.
13564 * Makefile.in (OBJS-common): Add it.
13565 (compare-elim.o): New.
13566 * common.opt (fcompare-elim): New.
13567 * opts.c (default_options_table): Add OPT_fcompare_elim.
13568 * tree-pass.h (pass_compare_elim_after_reload): New.
13569 * passes.c (init_optimization_passes): Add it.
13570 * recog.h: Protect against re-inclusion.
13571 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13572 * doc/invoke.texi (-fcompare-elim): Document it.
13573 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13574 * doc/tm.texi: Rebuild.
13575
9a7c2050
NC
135762011-01-22 Nick Clifton <nickc@redhat.com>
13577
13578 * config/rx/rx.md (cstoresf4): Pass comparison operator to
13579 rx_split_fp_compare.
13580
15ba5696
NC
135812011-01-22 Nick Clifton <nickc@redhat.com>
13582
13583 * config/rx/rx.md (UNSPEC_CONST): New.
13584 (deallocate_and_return): Wrap the amount popped off the stack in
13585 an UNSPEC_CONST in order to stop it being rejected by
13586 -mmax-constant-size.
13587 (pop_and_return): Add a "(return)" rtx.
13588 (call): Drop the immediate operand.
13589 (call_internal): Likewise.
13590 (call_value): Likewise.
13591 (call_value_internal): Likewise.
13592 (sibcall_internal): Likewise.
13593 (sibcall_value_internal): Likewise.
13594 (sibcall): Likewise. Generate an explicit call using
13595 sibcall_internal.
13596 (sibcall_value): Likewise.
13597 (mov<>): FAIL if a constant operand is not legitimate.
13598 (addsi3_unpsec): New pattern.
9a7c2050 13599
38be4072 13600 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
13601 (ok_for_max_constant): New function.
13602 (gen_safe_add): New function.
13603 (rx_expand_prologue): Use gen_safe_add.
13604 (rx_expand_epilogue): Likewise.
13605 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
13606 UNSPEC CONSTs.
13607
caaf13d3
JL
136082011-01-21 Jeff Law <law@redhat.com>
13609
13610 PR tree-optimization/47053
13611 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13612 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13613 statements are deleted.
13614 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
13615 is nonempty, then purge dead edges and cleanup the CFG.
13616
12c30f2f
AO
136172011-01-21 Alexandre Oliva <aoliva@redhat.com>
13618
13619 PR debug/47402
13620 Temporarily revert:
13621 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
13622 PR debug/47106
13623 * tree-dfa.c (create_var_ann): Mark variable as used.
13624
7360d2ac
JJ
136252011-01-21 Jakub Jelinek <jakub@redhat.com>
13626
aaa52a96
JJ
13627 PR middle-end/45566
13628 * except.c (convert_to_eh_region_ranges): Emit queued no-region
13629 notes from other section in hot/cold partitioning even if
13630 last_action is -3. Increment call_site_base.
13631
7360d2ac
JJ
13632 PR rtl-optimization/47366
13633 * fwprop.c (forward_propagate_into): Return bool. If
13634 any changes are made, -fnon-call-exceptions is used and
13635 REG_EH_REGION note is present, call purge_dead_edges
13636 and return true if it purged anything.
13637 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13638 any EH edges were purged.
13639
e90b336f
JL
136402011-01-21 Jeff Law <law@redhat.com>
13641
13642 PR rtl-optimization/41619
13643 * caller-save.c (setup_save_areas): Break out code to determine
13644 which hard regs are live across calls by examining the reload chains
13645 so that it is always used.
13646 Eliminate code which checked REG_N_CALLS_CROSSED.
13647
3ffe07e1
JJ
136482011-01-21 Jakub Jelinek <jakub@redhat.com>
13649
13650 PR tree-optimization/47355
13651 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13652 NOP has non-debug uses beyond PHIs in new_bb.
13653
1c7d0b34
AO
136542011-01-21 Alexandre Oliva <aoliva@redhat.com>
13655
13656 PR debug/47106
13657 * cfgexpand.c (account_used_vars_for_block): Only account vars
13658 that are annotated as used.
13659 (estimated_stack_frame_size): Don't set TREE_USED.
13660 * tree-dfa.c (create_var_ann): Mark variable as used.
13661
f99cc488
RG
136622011-01-21 Richard Guenther <rguenther@suse.de>
13663
13664 PR middle-end/47395
13665 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13666
3bc27de7
RG
136672011-01-21 Richard Guenther <rguenther@suse.de>
13668
13669 PR tree-optimization/47365
13670 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13671 (vn_reference_lookup_pieces): Adjust.
13672 (vn_reference_lookup): Likewise.
13673 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13674 (vn_reference_lookup_3): Only look through kills if in
13675 VN_WALKREWRITE mode.
13676 (vn_reference_lookup_pieces): Adjust.
13677 (vn_reference_lookup): Likewise.
13678 (visit_reference_op_load): Likewise.
13679 (visit_reference_op_store): Likewise.
13680 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13681 (compute_avail): Likewise.
13682 (eliminate): Likewise.
13683
d8debb1d
JJ
136842011-01-21 Jakub Jelinek <jakub@redhat.com>
13685
13686 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13687 DECL_IGNORED_P non-reg vars if they are used.
13688
3a2df831
JJ
13689 PR tree-optimization/47391
13690 * varpool.c (const_value_known_p): Return false if
13691 decl is volatile.
13692
1dd584a2
KT
136932011-01-21 Kai Tietz <kai.tietz@onevision.com>
13694
13695 PR bootstrap/47215
13696 * config/i386/i386.c (ix86_local_alignment): Handle
13697 case for va_list_type_node is nil.
13698 (ix86_canonical_va_list_type): Likewise.
13699
7f9f095e
AM
137002011-01-21 Alan Modra <amodra@gmail.com>
13701
13702 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13703 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13704
837b01f6
RR
137052011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13706
13707 * config/arm/arm.md (define_attr type): Rename f_load
13708 and f_store to f_fpa_load and f_fpa_store. Update.
13709 (write_conflict): Deal with rename fallout.
13710 (*push_fp_multi): Likewise.
13711 * config/arm/fpa.md (f_load): Use f_fpa_load.
13712 (f_store): Use f_fpa_store.
13713 (*movsf_fpa): Likewise.
13714 (*movdf_fpa): Likewise.
13715 (*movxf_fpa): Likewise.
13716 (*thumb2_movsf_fpa): Likewise.
13717 (*thumb2_movdf_fpa): Likewise.
13718 (*thumb2_movxf_fpa): Likewise.
13719 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13720 f_loadd and f_stored.
13721 (*thumb2_movdi_vfp): Likewise.
13722 (*thumb2_movsf_vfp): Fix attribute to f_loads.
13723 (*thumb2_movsi_vfp): Likewise.
13724 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13725 Use f_loads instead of f_load.
13726 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13727
a1a79768
AS
137282011-01-20 Anatoly Sokolov <aesok@post.ru>
13729
13730 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13731 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13732 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13733 (xtensa_mode_dependent_address_p): New function.
13734 (constantpool_address_p): Make static. Change return type to bool.
13735 Change argument type to const_rtx. Use CONST_INT_P predicate.
13736
427f6cec
AO
137372011-01-20 Alexandre Oliva <aoliva@redhat.com>
13738
13739 PR debug/46583
13740 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13741
583ac69c
JJ
137422011-01-20 Jakub Jelinek <jakub@redhat.com>
13743
13744 PR debug/47283
13745 * cfgexpand.c (expand_debug_expr): Instead of generating
13746 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13747 etc. handling.
13748
93e452ed
RG
137492011-01-20 Richard Guenther <rguenther@suse.de>
13750
13751 PR middle-end/47370
13752 * tree-inline.c (remap_gimple_op_r): Recurse manually for
13753 the pointer operand of MEM_REFs.
13754
28fc44f3
JJ
137552011-01-20 Jakub Jelinek <jakub@redhat.com>
13756
13757 PR tree-optimization/46130
13758 * ipa-split.c (consider_split): If return_bb contains non-virtual
13759 PHIs other than for retval or if split_function would not adjust it,
13760 refuse to split.
13761
ddd268f2
RG
137622011-01-20 Richard Guenther <rguenther@suse.de>
13763
13764 PR tree-optimization/47167
13765 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13766 Revert previous change, only avoid enumeral type changes.
13767
882020aa
MS
137682011-01-19 Mike Stump <mikestump@comcast.net>
13769
13770 * doc/tm.texi.in (BRANCH_COST): Englishify.
13771 * doc/tm.texi (BRANCH_COST): Likewise.
13772
7edb6247
DS
137732011-01-19 Dodji Seketeli <dodji@redhat.com>
13774
13775 PR c++/47291
13776 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
13777 (gen_scheduled_generic_parms_dies): New functions.
13778 (gen_struct_or_union_type_die): Schedule template parameters DIEs
13779 generation for the end of CU compilation.
13780 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 13781
23d5ed5d
AO
137822011-01-19 Alexandre Oliva <aoliva@redhat.com>
13783
13784 PR debug/46240
13785 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13786 debug bind stmt on merge edges.
13787
37d6a488
AO
137882011-01-19 Alexandre Oliva <aoliva@redhat.com>
13789
13790 PR debug/47079
13791 PR debug/46724
13792 * function.c (instantiate_expr): Instantiate incoming rtl of
13793 implicit arguments, and recurse on VALUE_EXPRs.
13794 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13795 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13796
689f2c82
AO
137972011-01-19 Alexandre Oliva <aoliva@redhat.com>
13798
13799 * c-parser.c (c_parser_for_statement): Initialize
13800 collection_expression.
13801
03029de4
JM
138022011-01-19 Joseph Myers <joseph@codesourcery.com>
13803
13804 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13805
3e03217e
JM
138062011-01-19 Joseph Myers <joseph@codesourcery.com>
13807
13808 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13809 (LINK_SHLIB_SPEC): Don't use %(link_path).
13810 (SUBTARGET_EXTRA_SPECS): Remove link_path.
13811
5bbe9b3f
JM
138122011-01-19 Joseph Myers <joseph@codesourcery.com>
13813
13814 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13815 (NO_SHARED_LIB_SUPPORT): Remove.
13816 (LINK_SHLIB_SPEC): Remove one conditional definition.
13817
368e0b39
JM
138182011-01-19 Joseph Myers <joseph@codesourcery.com>
13819
13820 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13821 %{call_shared}.
13822 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13823 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13824 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13825 %{call_shared} and conditionals on these options not being passed.
13826 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13827 %{call_shared}.
13828
ed7656f6
JJ
138292011-01-19 Jakub Jelinek <jakub@redhat.com>
13830
68457901
JJ
13831 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13832 simplify.
13833
ed7656f6
JJ
13834 * ipa-split.c: Spelling fixes.
13835
e0d1958f
RH
138362011-01-19 Richard Henderson <rth@redhat.com>
13837
13838 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13839 (*mulsi3): Likewise.
13840
27098b6b
RH
13841 * longlong.h [__mn10300__] (count_leading_zeros): New.
13842 [__mn10300__] (umul_ppmm, smul_ppmm): New.
13843 [__mn10300__] (add_ssaaaa, subddmmss): New.
13844 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13845 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13846
d6be7c36
UW
138472011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13848
13849 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13850
b1efde2a
RH
138512011-01-19 Richard Henderson <rth@redhat.com>
13852
44217823
RH
13853 * config/mn10300/mn10300.md (addsi3_flags): New.
13854 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13855 (subsi3_flags, subc_internal, subdi3): New.
13856 (subdi3_internal, *subdi3_degenerate): New.
13857 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13858
37a185d7
RH
13859 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13860 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13861 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
13862 * config/mn10300/mn10300-protos.h: Update.
13863 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13864 (return_ret): Likewise. Rename from return_internal_regs.
13865 (return_internal): Remove.
13866
040c5757
RH
13867 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13868 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13869 (mn10300_legitimate_constant_p): Likewise.
13870 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13871 (mn10300_frame_size): New.
13872 (mn10300_expand_prologue): Use it.
13873 (mn10300_expand_epilogue): Likewise.
13874 (mn10300_initial_offset): Likewise.
13875 * config/mn10300/mn10300-protos.h: Update.
13876 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13877 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13878 (prologue, epilogue, return_internal): Tidy output code.
13879 (mn10300_store_multiple_operation, return): Likewise.
13880 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13881 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13882 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13883 (load_pic, am33_load_pic): New.
13884 (mn10300_load_pic0, mn10300_load_pic1): New.
13885
bad41521
RH
13886 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13887 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13888 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13889 (cc_flags_for_mode, cc_flags_for_code): New.
13890 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13891 overflow flag is not valid. Validate that the flags we need
13892 for the comparison are valid.
13893 (mn10300_output_cmp): Remove.
13894 (mn10300_output_add): New.
13895 (mn10300_select_cc_mode): Use cc_flags_for_code.
13896 (mn10300_split_cbranch): New.
13897 (mn10300_match_ccmode): New.
13898 (mn10300_split_and_operand_count): New.
13899 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13900 to the function.
13901 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13902 (addsi3): ... here. Use mn10300_output_add.
13903 (*addsi3_flags): New.
13904 (*am33_subsi3, *mn10300_subsi3): Merge...
13905 (subsi3): ... here. Use attribute isa.
13906 (*subsi3_flags): New.
13907 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
13908 when possible.
13909 (*am33_andsi3, *mn10300_andsi3): Merge...
13910 (andsi3): ... here.
13911 (*andsi3_flags): New.
13912 (andsi3 splitters): New.
13913 (*am33_iorsi3, *mn10300_iorsi3): Merge...
13914 (iorsi3): ... here.
13915 (*iorsi3_flags): New.
13916 (*am33_xorsi3, *mn10300_xorsi3): Merge...
13917 (xorsi3): ... here.
13918 (*xorsi3_flags): New.
13919 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13920 (one_cmplsi2): ... here.
13921 (*one_cmplsi2_flags): New.
13922 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
13923 instead of "dax" in constraints. Use mn10300_split_cbranch.
13924 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
13925 use matching constraints to eliminate a self-comparison.
13926 (*integer_conditional_branch): Rename from integer_conditional_branch.
13927 Use int_mode_flags to match CC_REG.
13928 (*cbranchsi4_btst, *btstsi): New.
13929 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
13930 mn10300_split_cbranch.
13931 (*am33_cmpsf): Rename from am33_cmpsf.
13932 (*float_conditional_branch): Rename from float_conditional_branch.
13933 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13934 (zero_extendqisi2): ... here.
13935 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13936 (zero_extendhisi2): ... here.
13937 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13938 (extendqisi2): ... here.
13939 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13940 (extendhisi2): ... here.
13941 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13942 (ashlsi3): ... here.
13943 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13944 (lshrsi3): ... here.
13945 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13946 (ashrsi3): ... here.
13947 (consecutive add peephole): Remove.
13948 * config/mn10300/predicates.md (label_ref_operand): New.
13949 (int_mode_flags): New.
13950 (CCZN_comparison_operator): New.
13951
9efb4993
RH
13952 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13953 (throughput_42_latency_43): New reservation.
13954 (mulsidi3, umulsidi3): New expanders.
13955 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
13956 the MDR register to allocation; separately allocate the low and
13957 high parts of the DImode result.
13958 (umulsidi3_internal): Similarly.
13959 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13960 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
13961 (udivsi3, umodsi3): Remove.
13962 (udivmodsi4, divmodsi4): New expanders.
13963 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
13964 (*divmodsi4): Simiarly.
13965 (ext_internal): New.
13966
c25a21f5
RH
13967 * config/mn10300/constraints.md ("z"): New constraint.
13968 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13969 (FIXED_REGISTERS): Don't fix MDR.
13970 (CALL_USED_REGSITERS): Reformat nicely.
13971 (REG_ALLOC_ORDER): Add MDR.
13972 (enum regclass): Add MDR_REGS.
13973 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13974 (IRA_COVER_CLASSES): Add MDR_REGS.
13975 (REGNO_REG_CLASS): Handle MDR_REG.
13976 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13977 (mn10300_register_move_cost): Likewise.
13978 * config/mn10300/mn10300.md (MDR_REG): New.
13979 (*movsi_internal): Handle moves to/from MDR_REGS.
13980
36846b26
RH
13981 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13982 POST_MODIFY.
13983 (mn10300_secondary_reload): Tidy combination reload classes.
13984 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13985 addresses for AM33. Allow symbolic offsets for reg+imm.
13986 (mn10300_regno_in_class_p): New.
13987 (mn10300_legitimize_reload_address): New.
13988 * config/mn10300/mn10300.h (enum reg_class): Remove
13989 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13990 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
13991 SP_OR_GENERAL_REGS.
13992 (REG_CLASS_NAMES): Update to match.
13993 (REG_CLASS_CONTENTS): Likewise.
13994 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13995 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13996 (REGNO_IN_RANGE_P): Remove.
13997 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13998 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13999 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14000 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14001 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14002 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14003 (REGNO_GENERAL_P): New.
14004 (HAVE_POST_MODIFY_DISP): New.
14005 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14006 (LEGITIMIZE_RELOAD_ADDRESS): New.
14007 * config/mn10300/mn10300-protos.h: Update.
14008
8b119bb6
RH
14009 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14010 DATA_REGS for AM33 stack-pointer destination.
14011 (mn10300_preferred_output_reload_class): Likewise.
14012 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14013 into a form appropriate for ...
14014 (TARGET_SECONDARY_RELOAD): New.
14015 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14016 * config/mn10300/mn10300-protos.h: Update.
14017 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14018 reload_insi; use the "A" constraint for the scratch; handle AM33
14019 moves of sp to non-address registers.
14020
b1efde2a
RH
14021 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14022 (*movqi_internal): ... here.
14023 (*am33_movhi, *mn10300_movhi): Merge into...
14024 (*movhi_internal): ... here.
14025 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
14026 as the source/destination of moves from/to SP.
14027 (movsf): Only allow for AM33-2.
1c3ba85b 14028 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
14029 any integer constant constraint. Only allow for AM33-2. Tidy
14030 all of the alternative outputs.
14031 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14032 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
14033 for MN103.
14034 (udivsi3, umodsi3): New patterns for MN103 only.
14035
b899fd78
JR
140362011-01-19 Joern Rennecke <amylaar@spamcop.net>
14037
14038 * doc/tm.texi.in: Spell out that a lack of register class unions
14039 can lead to ICEs.
14040 * doc/tm.texi: Regenerate.
14041
afaaa67d
JJ
140422011-01-19 Jakub Jelinek <jakub@redhat.com>
14043
2e0642cd
JJ
14044 PR rtl-optimization/47337
14045 * dce.c (check_argument_store): New function.
14046 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
14047
afaaa67d
JJ
14048 PR tree-optimization/47290
14049 * tree-eh.c (infinite_empty_loop_p): New function.
14050 (cleanup_empty_eh): Use it.
14051
d2cd871f
SE
140522011-01-18 Steve Ellcey <sje@cup.hp.com>
14053
14054 PR target/46997
14055 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14056 (a64_expand_widen_sum): Ditto.
14057 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14058 (vec_extract_evenodd_help): Ditto.
14059 (vec_extract_evenv4hi): Ditto.
14060 (vec_extract_oddv4hi): Ditto.
14061 (vec_extract_evenv2si): Ditto.
14062 (vec_extract_oddv2si): Ditto.
14063 (vec_extract_evenv2sf): Ditto.
14064 (vec_extract_oddv2sf): Ditto.
14065 (vec_pack_trunc_v4hi: Ditto.
14066 (vec_pack_trunc_v2si): Ditto.
14067 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14068 (vec_interleave_highv8qi): Ditto.
14069 (mix1_r): Ditto.
14070 (vec_extract_oddv8qi): Ditto.
14071 (vec_interleave_lowv4hi): Ditto.
14072 (vec_interleave_highv4hi): Ditto.
14073 (vec_interleave_lowv2si): Ditto.
14074 (vec_interleave_highv2si): Ditto.
14075
41a1208a
JDA
140762011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14077
14078 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14079 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14080 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
14081 (pa_c_mode_for_suffix): New.
14082 (TARGET_EXPAND_BUILTIN): Define.
14083 (TARGET_C_MODE_FOR_SUFFIX): Define.
14084 (pa_builtins): Define.
14085 (pa_init_builtins): Register __float128 type and init new support
14086 builtins.
14087 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14088 * config/pa/quadlib.c (_U_Qfcopysign): New.
14089
1ecad98e
EB
140902011-01-18 Eric Botcazou <ebotcazou@adacore.com>
14091
14092 PR middle-end/46894
14093 * explow.c (allocate_dynamic_stack_space): Do not assume more than
14094 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14095 are defined.
14096
d4f2460a
UW
140972011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14098
14099 PR tree-optimization/47179
14100 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14101 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14102
4994da65
RG
141032011-01-18 Richard Guenther <rguenther@suse.de>
14104
14105 PR rtl-optimization/47216
14106 * emit-rtl.c: Include tree-flow.h.
14107 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14108 of replicating it with different semantics.
14109 * Makefile.in (emit-rtl.o): Adjust.
14110
1eb458d1
RR
141112011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14112
38be4072 14113 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 14114 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 14115
e7ef91dc
JJ
141162011-01-18 Jakub Jelinek <jakub@redhat.com>
14117
14118 PR rtl-optimization/47299
14119 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 14120 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
14121 * expmed.c (expand_widening_mult): Don't try to optimize constant
14122 multiplication if op0 has VOIDmode. Convert op1 constant to mode
14123 before using it.
14124
535b7874
RW
141252011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14126
14127 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
14128 spacing after 'e.g.', typos, comma, hyphenation.
14129
27bf36f3
RH
141302011-01-17 Richard Henderson <rth@redhat.com>
14131
8a5b5449
RH
14132 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14133 (rx_restricted_mem_operand): New.
14134 (rx_shift_operand): Use register_operand.
14135 (rx_source_operand, rx_compare_operand): Likewise.
14136 * config/rx/rx.md (addsi3_flags): New expander.
14137 (adddi3): Rewrite as expander.
14138 (adc_internal, *adc_flags, adddi3_internal): New patterns.
14139 (subsi3_flags): New expander.
14140 (subdi3): Rewrite as expander.
14141 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14142
784f69be
RH
14143 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14144 (rx_init_builtins): Remove sat builtin.
14145 (rx_expand_builtin): Likewise.
14146 * config/rx/rx.md (ssaddsi3): New.
14147 (*sat): Rename from sat. Represent the CC_REG input.
14148
f033541c
RH
14149 * config/rx/predicates.md (rshift_operator): New.
14150 * config/rx/rx.c (rx_expand_insv): Remove.
14151 * config/rx/rx-protos.h: Update.
14152 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
14153 operand to the canonical position.
14154 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14155 (*bitclr, *bitclr_in_memory): Similarly.
14156 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14157 (insv): Retain the zero_extract in the expansion.
14158
34fee389
RH
14159 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14160 (bswaphi2, bitinvert, revw): Likewise.
14161
265c835f
RH
14162 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14163 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14164 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14165 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14166 (bitset, bitset_in_memory): Likewise.
14167 (bitinvert, bitinvert_in_memory): Likewise.
14168 (bitclr, bitclr_in_memory): Likewise.
14169 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14170 (rx_strend, rx_cmpstrn): Likewise.
14171 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
14172 (bitop peep2 patterns): Remove.
14173
b4d83be3
RH
14174 * config/rx/rx.c (rx_match_ccmode): New.
14175 * config/rx/rx-protos.h: Update.
14176 * config/rx/rx.md (abssi2): Clobber, don't set flags.
14177 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14178 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14179 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14180 (fix_truncsfsi2, floatsisf2): Likewise.
14181 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14182 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14183 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14184 (*subsi3_flags, *xorsi3_flags): New.
14185
d0acb939
RH
14186 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14187
c06fc3d9
RH
14188 * config/rx/rx.c (rx_print_operand): Remove workaround for
14189 unsplit comparison operations.
14190
2882702b
RH
14191 * config/rx/rx.md (movsicc): Split after reload.
14192 (*movsicc): Merge *movsieq and *movsine via match_operator.
14193 (*stcc): New pattern.
14194
6f7310f2
RH
14195 * config/rx/rx.c (rx_float_compare_mode): Remove.
14196 * config/rx/rx.h (rx_float_compare_mode): Remove.
14197 * config/rx/rx.md (cstoresi4): Split after reload.
14198 (*sccc): New pattern.
14199
e963cb1a
RH
14200 * config/rx/predicates.md (label_ref_operand): New.
14201 (rx_z_comparison_operator): New.
14202 (rx_zs_comparison_operator): New.
14203 (rx_fp_comparison_operator): New.
14204 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14205 Validate that the flags are set properly for the comparison.
14206 (rx_gen_cond_branch_template): Remove.
14207 (rx_cc_modes_compatible): Remove.
14208 (mode_from_flags): New.
14209 (flags_from_code): Rename from flags_needed_for_conditional.
14210 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14211 (rx_select_cc_mode): Likewise.
14212 (rx_split_fp_compare): New.
14213 (rx_split_cbranch): New.
14214 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14215 (*cbranchsi4): Use match_operator and rx_split_cbranch.
14216 (*cbranchsf4): Similarly.
14217 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
14218 match_operator and rx_split_cbranch.
14219 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14220 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
14221 (*cmpsi): Rename from cmpsi.
14222 (*tstsi): Rename from tstsi.
14223 (*cmpsf): Rename from cmpsf; use CC_Fmode.
14224 (*conditional_branch): Rename from conditional_branch.
14225 (*reveresed_conditional_branch): Remove.
14226 (b<code>): Remove expander.
14227 * config/rx/rx-protos.h: Update.
14228
af530bb4
RH
14229 * config/rx/rx.c (rx_compare_redundant): Remove.
14230 * config/rx/rx.md (cmpsi): Don't use it.
14231 * config/rx/rx-protos.h: Update.
14232
27bf36f3
RH
14233 * config/rx/rx-modes.def (CC_F): New mode.
14234 * config/rx/rx.c (rx_select_cc_mode): New.
14235 * config/rx/rx.h (SELECT_CC_MODE): Use it.
14236 * config/rx/rx-protos.h: Update.
14237
d7fde127
RH
142382011-01-17 Richard Henderson <rth@redhat.com>
14239
14240 * except.c (dump_eh_tree): Fix stray ; after for statement.
14241
6ff38230
RG
142422011-01-17 Richard Guenther <rguenther@suse.de>
14243
14244 PR tree-optimization/47313
14245 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14246 handling before copying the body. Properly deal with
14247 by-reference result in SSA form.
14248
114ce554
ILT
142492011-01-17 Ian Lance Taylor <iant@google.com>
14250
bf5cd92b 14251 PR target/47219
114ce554
ILT
14252 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14253 (struct_value_alias_set): Don't define.
14254 (sparc_option_override): Don't set sparc_sr_alias_set and
14255 struct_value_alias_set.
14256 (save_or_restore_regs): Use gen_frame_mem rather than calling
14257 set_mem_alias_set.
14258 (sparc_struct_value_rtx): Likewise.
14259
98c6d93c
L
142602011-01-17 H.J. Lu <hongjiu.lu@intel.com>
14261
14262 PR target/47318
7a81008b 14263 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
14264 (_mm_maskstore_pd): Likewise.
14265 (_mm_maskload_ps): Likewise.
14266 (_mm_maskstore_ps): Likewise.
14267 (_mm256_maskload_pd): Change mask to __m256i.
14268 (_mm256_maskstore_pd): Likewise.
14269 (_mm256_maskload_ps): Likewise.
14270 (_mm256_maskstore_ps): Likewise.
14271
14272 * config/i386/i386-builtin-types.def: Updated.
14273 (ix86_expand_special_args_builtin): Likewise.
14274
14275 * config/i386/i386.c (bdesc_special_args): Update
14276 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14277 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14278 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14279 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14280
14281 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14282 Use <avxpermvecmode> on mask register.
14283 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14284
b9361af2 142852011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
14286 Michael Haubenwallner <michael.haubenwallner@salomon.at>
14287 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
14288
14289 PR target/46655
14290 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14291 if <= USHRT_MAX in 32-bit mode.
14292
b7ae9eb5
RW
142932011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14294
14295 * doc/install.texi (Configuration, Specific): Wrap long
14296 lines in examples. Allow line wrapping in long options
14297 and URLs where beneficial for PDF output.
14298
4377fad9
RS
142992011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
14300
14301 * config/mips/mips.c (mips_classify_symbol): Don't return
14302 SYMBOL_PC_RELATIVE for nonlocal labels.
14303
55959ffa 143042011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 14305
55959ffa
EB
14306 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14307
143082011-01-15 Jan Hubicka <jh@suse.cz>
14309
14310 PR tree-optimization/47276
be46831f
JH
14311 * ipa.c (function_and_variable_visibility): Do not try to mark alias
14312 declarations as needed.
14313
05842ff5
MJ
143142011-01-15 Martin Jambor <mjambor@suse.cz>
14315
14316 * common.opt (fdevirtualize): New flag.
14317 * doc/invoke.texi (Option Summary): Document it.
14318 * opts.c (default_options_table): Add devirtualize flag.
14319 * ipa-prop.c (detect_type_change): Return immediately if
14320 devirtualize flag is not set.
14321 (detect_type_change_ssa): Likewise.
14322 (compute_known_type_jump_func): Likewise.
14323 (ipa_analyze_virtual_call_uses): Likewise.
14324
f65cf2b7
MJ
143252011-01-14 Martin Jambor <mjambor@suse.cz>
14326
14327 PR tree-optimization/45934
14328 PR tree-optimization/46302
14329 * ipa-prop.c (type_change_info): New type.
14330 (stmt_may_be_vtbl_ptr_store): New function.
14331 (check_stmt_for_type_change): Likewise.
14332 (detect_type_change): Likewise.
14333 (detect_type_change_ssa): Likewise.
14334 (compute_complex_assign_jump_func): Check for dynamic type change.
14335 (compute_complex_ancestor_jump_func): Likewise.
14336 (compute_known_type_jump_func): Likewise.
14337 (compute_scalar_jump_functions): Likewise.
14338 (ipa_analyze_virtual_call_uses): Likewise.
14339 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14340
eb5bb0fd
JM
143412011-01-14 Joseph Myers <joseph@codesourcery.com>
14342
14343 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14344 * config/i386/i386.opt (msse5): New Alias.
14345
f2060fbe
JM
143462011-01-14 Joseph Myers <joseph@codesourcery.com>
14347
14348 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14349 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14350 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14351 * config/sparc/sparc.h (CC1_SPEC): Likewise.
14352
3a7b4385
JM
143532011-01-14 Joseph Myers <joseph@codesourcery.com>
14354
14355 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14356 -mcpu options.
14357 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14358 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14359 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14360 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14361 Likewise.
14362 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14363
a7b778f8
JM
143642011-01-14 Joseph Myers <joseph@codesourcery.com>
14365
38be4072 14366 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 14367
a7edae0a
MS
143682011-01-14 Mike Stump <mikestump@comcast.net>
14369
14370 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14371 * config/fr30/fr30.md: Likweise
14372 (movsi_push): Likewise.
14373 (movsi_pop): Likewise.
14374 (enter_func): Likewise.
14375 * config/moxie/moxie.md (movsi_push): Likewise.
14376 (movsi_pop): Likewise.
14377
cbabf03f
JM
143782011-01-14 Joseph Myers <joseph@codesourcery.com>
14379
14380 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14381 %{no_archive} %{exact_version}.
14382 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14383 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14384 %{no_archive} %{exact_version}.
14385 * config/mips/openbsd.h (LINK_SPEC): Likewise.
14386 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14387 * config/mips/vxworks.h: Likewise.
14388
438da41a
JM
143892011-01-14 Joseph Myers <joseph@codesourcery.com>
14390
38be4072 14391 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 14392
da290a42
JM
143932011-01-14 Joseph Myers <joseph@codesourcery.com>
14394
14395 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14396 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14397
8989d00e
JM
143982011-01-14 Joseph Myers <joseph@codesourcery.com>
14399
14400 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14401 -nodefaultlib.
14402
a3010a69
JM
144032011-01-14 Joseph Myers <joseph@codesourcery.com>
14404
14405 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14406 for mcpu not cpu.
14407 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14408 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14409 not cpu.
14410 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14411 Don't handle -shlib.
14412
e7f2f537
JM
144132011-01-14 Joseph Myers <joseph@codesourcery.com>
14414
14415 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14416 (CC1_SPEC): Don't handle -profile.
14417
34830bfd
JM
144182011-01-14 Joseph Myers <joseph@codesourcery.com>
14419
14420 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14421 * config/mips/mips.h (CC1_SPEC): Likewise.
14422
b2d36e74
JM
144232011-01-14 Joseph Myers <joseph@codesourcery.com>
14424
14425 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14426 * config/mips/mips.h (CC1_SPEC): Likewise.
14427
dabadc52
JM
144282011-01-14 Joseph Myers <joseph@codesourcery.com>
14429
14430 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14431 * config/m32r/linux.h (LINK_SPEC): Likewise.
14432 * config/mips/linux.h (LINK_SPEC): Likewise.
14433 * config/mips/linux64.h (LINK_SPEC): Likewise.
14434 * config/sparc/linux.h (LINK_SPEC): Likewise.
14435 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14436 LINK_SPEC): Likewise.
14437 * config/xtensa/linux.h (LINK_SPEC): Likewise.
14438
43ee6785
JM
144392011-01-14 Joseph Myers <joseph@codesourcery.com>
14440
14441 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14442 %{version:-v}.
14443 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14444
45e79dfd
JM
144452011-01-14 Joseph Myers <joseph@codesourcery.com>
14446
14447 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14448 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14449
37e9e71d
JM
144502011-01-14 Joseph Myers <joseph@codesourcery.com>
14451
14452 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14453
bb127cd8
RO
144542011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14455
14456 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14457 supports -Bstatic/-Bdynamic.
14458 * configure: Regenerate.
14459
89a012ea 144602011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 14461 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
14462
14463 PR target/46037
14464 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14465 when checking debug_info_level. Test write_symbols instead of
14466 debug_hooks->var_location when setting flag_var_tracking_uninit.
14467
7352c013
RG
144682011-01-14 Richard Guenther <rguenther@suse.de>
14469
14470 PR tree-optimization/47179
14471 * target.def (ref_may_alias_errno): New target hook.
14472 * targhooks.h (default_ref_may_alias_errno): Declare.
14473 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14474 (default_ref_may_alias_errno): New function.
14475 * target.h (struct ao_ref_s): Declare.
14476 * tree-ssa-alias.c: Include target.h.
14477 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14478 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14479 (targhooks.o): Likewise.
14480 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14481 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14482
9a6c9288
RG
144832011-01-14 Richard Guenther <rguenther@suse.de>
14484
14485 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
14486
0fdb0d27
RG
144872011-01-14 Richard Guenther <rguenther@suse.de>
14488
14489 PR tree-optimization/47280
14490 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14491 return CFG changes.
14492 (tree_ssa_forward_propagate_single_use_vars): Deal with
14493 CFG changes from associate_plusminus.
14494
8f66db3b
RG
144952011-01-14 Richard Guenther <rguenther@suse.de>
14496
14497 PR middle-end/47281
14498 Revert
14499 2011-01-11 Richard Guenther <rguenther@suse.de>
14500
280d9630
EB
14501 PR tree-optimization/46076
14502 * tree-ssa.c (useless_type_conversion_p): Conversions from
14503 unprototyped to empty argument list function types are useless.
8f66db3b 14504
6c0c92e6
RG
145052011-01-14 Richard Guenther <rguenther@suse.de>
14506
14507 PR tree-optimization/47286
280d9630 14508 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 14509
db09f943
MJ
145102011-01-14 Martin Jambor <mjambor@suse.cz>
14511
14512 PR middle-end/46823
14513 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14514
dde8a3a4
AS
145152011-01-13 Anatoly Sokolov <aesok@post.ru>
14516
14517 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14518 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14519 * config/xtensa/xtensa.c (xtensa_libcall_value,
14520 xtensa_function_value_regno_p): New functions.
14521 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14522
a2b63a20
KT
145232011-01-13 Kai Tietz <kai.tietz@onevision.com>
14524
14525 PR c++/47213
14526 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14527 PE specific hook.
14528 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14529 New function prototype.
14530 * config/i386/winnt.c (i386_pe_assemble_visibility):
14531 Warn only if attribute was specified by user.
14532
b41f0b34
MM
145332011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14534
14535 PR target/47251
14536 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14537 floating point.
14538 (floatunsdidf2_fcfidu): Ditto.
14539
3f3c098d
AK
145402011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14541
14542 * config/s390/s390.c (print_operand_address): Replace 'error' with
14543 'output_operand_lossage'.
14544 (print_operand): Likewise.
14545
29fa95ed
JL
145462011-01-13 Jeff Law <law@redhat.com>
14547
280d9630 14548 PR rtl-optimization/39077
29fa95ed
JL
14549 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14550 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14551 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14552 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14553 * gcse.c (prune_insertions_deletions): New function.
14554 (compute_pre_data): Use it.
14555
71d12276
DS
145562011-01-13 Dodji Seketeli <dodji@redhat.com>
14557
14558 PR debug/PR46973
14559 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14560 static function.
61052244 14561 (prune_unused_types_mark): Use it.
71d12276 14562
9b0f04e7
AB
145632011-01-13 Andrey Belevantsev <abel@ispras.ru>
14564
14565 PR rtl-optimization/45352
1c3ba85b 14566 * sel-sched.c: Update copyright years.
9b0f04e7 14567 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 14568 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 14569
d6a3e264
RH
145702011-01-12 Richard Henderson <rth@redhat.com>
14571
a49b692a
RH
14572 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14573 (TARGET_MD_ASM_CLOBBERS): New.
14574
126b1483
RH
14575 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14576 (TARGET_DELEGITIMIZE_ADDRESS): New.
14577
f3d9d2e0
RH
14578 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14579 (clzsi2, *bsch): New patterns.
14580
d84760c9
RH
14581 * config/mn10300/mn10300.md (INT): New mode iterator.
14582 (*mov<INT>_clr): New pattern, and peep2 to generate it.
14583
ec815d65
RH
14584 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14585 flag_split_wide_types.
14586
d6a3e264
RH
14587 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14588 (mn10300_trampoline_init): Rewrite without a template, an immediate
14589 load and a direct branch.
14590 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14591
0f8ab434
AS
145922011-01-12 Anatoly Sokolov <aesok@post.ru>
14593
14594 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14595 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14596 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14597 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14598
d8a24b65
KT
145992011-01-12 Kai Tietz <kai.tietz@onevision.com>
14600
14601 PR debug/47209
14602 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14603 of type.
14604
56e22cab
JH
146052011-01-12 Jan Hubicka <jh@suse.cz>
14606
14607 PR driver/47244
14608 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14609 (PLUGIN_COND_CLOSE): New macro.
14610 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14611
4b18b3c2
RG
146122011-01-12 Richard Guenther <rguenther@suse.de>
14613
14614 PR lto/47259
14615 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14616 register variables in a MEM_REF.
14617
8e38461c
JM
146182011-01-12 Joseph Myers <joseph@codesourcery.com>
14619
14620 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14621 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14622 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14623 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14624 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14625 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14626 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14627 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14628 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14629 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14630 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14631 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14632 * config/gnu-user.h: New. Copied from linux.h.
14633 (LINUX_TARGET_STARTFILE_SPEC): Rename to
14634 GNU_USER_TARGET_STARTFILE_SPEC.
14635 (LINUX_TARGET_ENDFILE_SPEC): Rename to
14636 GNU_USER_TARGET_ENDFILE_SPEC.
14637 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14638 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14639 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14640 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14641 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14642 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14643 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14644 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14645 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14646 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14647 * config/arm/linux-eabi.h (CC1_SPEC): Use
14648 GNU_USER_TARGET_CC1_SPEC.
14649 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14650 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14651 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14652 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14653 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14654 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14655 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14656 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14657
a570fc16
RG
146582011-01-12 Richard Guenther <rguenther@suse.de>
14659
14660 PR other/46946
14661 * doc/invoke.texi (ffast-math): Document it is turned on
14662 with -Ofast.
14663
b0223c3e
JH
146642011-01-12 Jan Hubicka <jh@suse.cz>
14665
14666 PR tree-optimization/47233
ca1e00b3
EB
14667 * opts.c (common_handle_option): Disable ipa-reference with profile
14668 feedback.
b0223c3e 14669
1c3ba85b 146702011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
14671
14672 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
14673 error message.
14674
d853ee42
NP
146752011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
14676
14677 * c-parser.c (c_lex_one_token): Updated and reindented some
14678 comments. No changes in code.
14679
4053a5a0
ILT
146802011-01-11 Ian Lance Taylor <iant@google.com>
14681
14682 * godump.c (go_output_var): Don't output the variable if there is
14683 already a type with the same name.
14684
fa3e04d2
ILT
146852011-01-11 Ian Lance Taylor <iant@google.com>
14686
14687 * godump.c (go_format_type): Don't generate float80.
14688
885fe07c
RH
146892011-01-11 Richard Henderson <rth@redhat.com>
14690
72d6e3c5
RH
14691 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14692 declaration. Rewrite for both speed and size.
14693 (mn10300_address_cost_1): Remove.
14694 (mn10300_register_move_cost): New.
14695 (mn10300_memory_move_cost): New.
14696 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
14697 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
14698 extensions, shifts, BSWAP, CLZ.
14699 (mn10300_wide_const_load_uses_clr): Remove.
14700 (TARGET_REGISTER_MOVE_COST): New.
14701 (TARGET_MEMORY_MOVE_COST): New.
14702 * config/mn10300/mn10300-protos.h: Update.
14703 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14704
df37c023
RH
14705 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14706 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14707 * config/mn10300/mn10300-protos.h: Update.
14708 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14709 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14710 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14711 (*test_int_bitfield, *test_byte_bitfield): Remove.
14712 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 14713 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 14714
85a337b5
RH
14715 * config/mn10300/constraints.md ("c"): Rename from "A".
14716 ("A", "D"): New constraint letters.
14717 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14718 (fmssf4, fnmasf4, fnmssf4): Likewise.
14719
a5c727e3
RH
14720 * config/mn10300/mn10300.md (isa): New attribute.
14721 (enabled): New attribute.
14722
0d9e23f4
RH
14723 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14724 (abssf2, negsf2): Define only for hardware fp.
14725 (sqrtsf2): Reformat.
14726 (addsf3, subsf3, mulsf3): Merge expander and insn.
14727
c157b3f0
RH
14728 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14729 (DEBUGGER_AUTO_OFFSET): Remove.
14730 (DEBUGGER_ARG_OFFSET): Remove.
14731
cc909bba
RH
14732 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14733 Emit register stores with the same offsets as the hardware.
14734 (mn10300_store_multiple_operation): Don't check that the register
14735 save offsets are monotonic.
14736 * config/mn10300/mn10300-protos.h: Update.
14737
e3b5c2f3
RH
14738 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14739
885fe07c
RH
14740 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14741 in terms of the value on the stack, not the MDR register.
14742
6e701822
JH
147432011-01-11 Jan Hubicka <jh@suse.cz>
14744
14745 PR lto/45721
14746 PR lto/45375
14747 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14748 (symbol_alias_set_destroy, symbol_alias_set_contains,
14749 propagate_aliases_backward): Declare.
14750 * lto-streamer-out.c (struct sets): New sturcture.
14751 (trivally_defined_alias): New function.
14752 (output_alias_pair_p): Rewrite.
14753 (output_unreferenced_globals): Fix output of alias pairs.
14754 (produce_symtab): Likewise.
14755 * ipa.c (function_and_variable_visibility): Set weak alias destination
14756 as needed in lto.
14757 * varasm.c (symbol_alias_set_t): Remove.
14758 (symbol_alias_set_destroy): Export.
14759 (propagate_aliases_forward, propagate_aliases_backward): New functions
14760 based on ...
14761 (compute_visible_aliases): ... this one; remove.
14762 (trivially_visible_alias): New
14763 (trivially_defined_alias): New.
14764 (remove_unreachable_alias_pairs): Rewrite.
14765 (finish_aliases_1): Reorganize code checking if alias is defined.
14766 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14767 in LTO mode.
14768
1b248907
RG
147692011-01-11 Richard Guenther <rguenther@suse.de>
14770
14771 PR tree-optimization/46076
14772 * tree-ssa.c (useless_type_conversion_p): Conversions from
14773 unprototyped to empty argument list function types are useless.
14774
b1923f0a
RG
147752011-01-11 Richard Guenther <rguenther@suse.de>
14776
14777 PR middle-end/45235
14778 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14779 volatile MEMs as MEM_READONLY_P.
14780
e98965af
RG
147812011-01-11 Richard Guenther <rguenther@suse.de>
14782
14783 PR tree-optimization/47239
14784 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14785
9f9ca914
JL
147862011-01-11 Jeff Law <law@redhat.com>
14787
1ee3ea05 14788 PR tree-optimization/47086
9f9ca914
JL
14789 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14790 IVs from statements that might throw.
14791
345fdcb7
JH
147922011-01-10 Jan Hubicka <jh@suse.cz>
14793
14794 PR lto/45375
14795 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14796
c459c97b
JH
147972011-01-10 Jan Hubicka <jh@suse.cz>
14798
14799 PR lto/45375
14800 * profile.c (read_profile_edge_counts): Ignore profile inconistency
14801 when correcting profile.
14802
06c9eb51
JH
148032011-01-10 Jan Hubicka <jh@suse.cz>
14804
14805 PR lto/46083
14806 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14807 DECL_FINI_PRIORITY.
14808 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14809 Restore DECL_FINI_PRIORITY.
14810
ae9fd815
RW
148112011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14812
14813 * doc/gimple.texi: Fix quoting of multi-word return values in
14814 @deftypefn statements. Ensure presence of return value. Wrap
14815 overlong @deftypefn lines.
14816 (is_gimple_operand, is_gimple_min_invariant_address): Remove
14817 descriptions of removed functions.
14818 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14819 of multi-word return value in @deftypefn statement.
14820
0ecb4a7c
RW
148212011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14822
14823 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14824 (Conditional Expressions, Logical Operators)
14825 (Statement and operand traversals): Do not indent smallexample
14826 code. Fix duplicate function argument in example.
14827
2e5e346d
JL
148282011-01-10 Jeff Law <law@redhat.com>
14829
1ee3ea05 14830 PR tree-optimization/47141
2e5e346d
JL
14831 * ipa-split.c (split_function): Handle case where we are
14832 returning a value and the return block has a virtual operand phi.
14833
cf9712cc
JH
148342011-01-10 Jan Hubicka <jh@suse.cz>
14835
1c3ba85b 14836 PR tree-optimization/47234
cf9712cc
JH
14837 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14838 (pass_feedback_split_functions): Declare.
14839 * passes.c (init_optimization_passes): Add ipa-split as subpass of
14840 tree-profile.
14841 * ipa-split.c (gate_split_functions): Update comments; disable
14842 split-functions for profile_arc_flag and branch_probabilities.
14843 (gate_feedback_split_functions): New function.
14844 (execute_feedback_split_functions): New function.
14845 (pass_feedback_split_functions): New global var.
14846
94cd932c
L
148472011-01-10 H.J. Lu <hongjiu.lu@intel.com>
14848
14849 PR lto/46760
14850 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14851 calling gimple_call_set_cannot_inline.
14852
fbbfcaf1
IS
148532011-01-10 Iain Sandoe <iains@gcc.gnu.org>
14854
14855 * config/darwin-sections.def: Remove unused section.
14856
d06865bf
DK
148572011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
14858
14859 PR c++/47218
14860 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14861
96bbfbac
NP
148622011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
14863
14864 PR objc/47232
14865 * c-parser.c (c_parser_declaration_or_fndef): Improved
14866 error message.
14867
1ba6516f
KT
148682011-01-09 Kai Tietz <kai.tietz@onevision.com>
14869
14870 * config/i386/winnt.c (i386_pe_start_function): Make sure
14871 to switch back to function's section.
14872
0c5d770e
IS
148732011-01-09 Iain Sandoe <iains@gcc.gnu.org>
14874
14875 PR gcc/46902
14876 PR testsuite/46912
14877 * plugin.c: Move include of dlfcn.h from here...
14878 * system.h: ... to here.
14879
148802011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
14881
14882 * doc/cpp.texi (C++ Named Operators): Fix markup for header
14883 file name.
14884 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14885 two extra empty pages in PDF output.
14886
046608a3
NP
148872011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
14888
14889 PR objc/47078
14890 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14891 for error recovery purposes behave as if it was not specified so
14892 that the default type is usd.
14893
8cb114b9
JH
148942011-01-07 Jan Hubicka <jh@suse.cz>
14895
14896 PR tree-optmization/46469
14897 * ipa.c (function_and_variable_visibility): Clear needed flags on
14898 nodes with external decls; handle weakrefs merging correctly.
14899
b294a75e
JM
149002011-01-07 Joseph Myers <joseph@codesourcery.com>
14901
14902 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14903 not false.
14904
96bdf9b4
JH
149052011-01-07 Jan Hubicka <jh@suse.cz>
14906
f60c2554 14907 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
14908 and no longer claim that gold is required for linker plugin.
14909 * configure: Regenerate.
14910 * gcc.c (PLUGIN_COND): New macro.
14911 (LINK_COMMAND_SPEC): Use it.
14912 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14913 * config.in (HAVE_LTO_PLUGIN): New.
14914 * configure.ac (--with-lto-plugin): New parameter; autodetect
14915 HAVE_LTO_PLUGIN.
14916
17afc0fe
JH
149172011-01-07 Jan Hubicka <jh@suse.cz>
14918
14919 PR tree-optimization/46367
14920 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14921 when we can update original.
14922 (cgraph_mark_inline_edge): Sanity check.
14923 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14924
d4c48c0f
UW
149252011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14926
14927 * config/spu/spu.h (ASM_COMMENT_START): Define.
14928
96f5b137
L
149292011-01-07 H.J. Lu <hongjiu.lu@intel.com>
14930
14931 PR driver/42445
14932 * gcc.c (%>S): New.
14933 (SWITCH_KEEP_FOR_GCC): Likewise.
14934 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14935 (do_spec_1): Handle "%>".
14936
14937 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14938
c6a8f6de
JJ
149392011-01-07 Jakub Jelinek <jakub@redhat.com>
14940
c21bbd7a
JJ
14941 PR target/47201
14942 * config/i386/i386.c (ix86_delegitimize_address): If
14943 simplify_gen_subreg fails, return orig_x.
14944
c6a8f6de
JJ
14945 PR bootstrap/47187
14946 * value-prof.c (gimple_stringop_fixed_value): Handle
14947 lhs of the call properly.
14948
fe95fbf9
JH
149492011-01-07 Jan Hubicka <jh@suse.cz>
14950
14951 PR lto/45375
14952 * lto-opt.c (lto_reissue_options): Set flag_shlib.
14953
14d11d40
IS
149542011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14955
72e961c8
EB
14956 * target.def (function_switched_text_sections): New hook.
14957 * doc/tm.texi: Regenerated.
14958 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14959 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
14960 (final_scan_insn): Call function_switched_text_sections when a
14961 mid-function section change occurs.
14d11d40 14962 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
14963 * config/darwin-protos.h (darwin_function_switched_text_sections):
14964 Likewise.
14d11d40 14965 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 14966 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14967
0b764288
IS
149682011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14969
14970 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
14971 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
14972 the secondary code fragment when outputting for DWARF == 2.
14973
2ac6bb04
AS
149742011-01-07 Anatoly Sokolov <aesok@post.ru>
14975
14976 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14977 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14978 Remove.
14979 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14980 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14981
9f82de11
EB
149822011-01-06 Eric Botcazou <ebotcazou@adacore.com>
14983
14984 PR debug/46704
280d9630
EB
14985 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14986 when it is not empty.
9f82de11
EB
14987
149882011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 14989
1ed72abf 14990 Bobcat Enablement
14b52538 14991 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 14992 (case ${target}): Add btver1.
14b52538 14993 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 14994 -march=native recognize btver1 processors.
14b52538 14995 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 14996 btver1 def_and_undef
14b52538 14997 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
14998 btver1 cost table.
14999 (m_BTVER1): New definition.
15000 (m_AMD_MULTIPLE): Includes m_BTVER1.
15001 (initial_ix86_tune_features): Add btver1 tune.
15002 (processor_target_table): Add btver1 entry.
15003 (static const char *const cpu_names): Add btver1 entry.
15004 (software_prefetching_beneficial_p): Add btver1.
15005 (ix86_option_override_internal): Add btver1 instruction sets.
15006 (ix86_issue_rate): Add btver1.
15007 (ix86_adjust_cost): Add btver1.
14b52538 15008 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
15009 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15010 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
15011 * config/i386/i386.md (define_attr "cpu"): Add btver1.
15012
e1a973d8
RO
150132011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15014
15015 PR target/43309
15016 * config/i386/i386.c (legitimize_tls_address)
15017 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15018 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15019 (tls_initial_exec_64_sun): New pattern.
15020
c73f67c5
GP
150212011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15022
15023 * doc/invoke.texi (Overall Options): Improve wording and markup
15024 of the description of -wrapper.
15025
bc4c6f9c
JM
150262011-01-06 Joseph Myers <joseph@codesourcery.com>
15027
15028 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15029 rdynamic, threads): New Driver options.
15030
adb75db0
RO
150312011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15032
15033 PR target/38118
15034 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15035 if coming from .tdata.
15036 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15037
402c1cb4
JH
150382011-01-06 Jan Hubicka <jh@suse.cz>
15039
15040 PR lto/47188
15041 * collect2.c (main): Do not enable LTOmode when plugin is active.
15042
a4da6485
RO
150432011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15044
15045 PR other/45915
15046 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15047 --version output if supported.
15048 * configure: Regenerate.
15049
028dbdf4
JM
150502011-01-06 Joseph Myers <joseph@codesourcery.com>
15051
15052 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15053 Driver options.
15054
dfe776dd
JJ
150552011-01-06 Jakub Jelinek <jakub@redhat.com>
15056
15057 PR c/47150
15058 * c-convert.c (convert): When converting a complex expression
15059 other than COMPLEX_EXPR to a different complex type, ensure
15060 c_save_expr is called instead of save_expr, unless in_late_binary_op.
15061 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15062 when converting COMPLEX_TYPE.
15063
210dedfe
IR
150642011-01-06 Ira Rosen <irar@il.ibm.com>
15065
15066 PR tree-optimization/47139
15067 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15068 only the last reduction value is used outside the loop. Update
15069 documentation.
15070
cd33a412
JM
150712011-01-05 Joseph Myers <joseph@codesourcery.com>
15072
15073 * config/rtems.opt: New.
15074 * config.gcc (*-*-rtems*): Use rtems.opt.
15075
819edd94
CF
150762011-01-05 Changpeng Fang <changpeng.fang@amd.com>
15077
15078 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15079 processors do not support 3DNow instructions.
15080
dc242c4a
UW
150812011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15082
15083 * config/spu/spu.c (spu_option_override): Set parameter
15084 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15085
be286227
JH
150862011-01-05 Jan Hubicka <jh@suse.cz>
15087
15088 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15089 at the command line.
15090
644e637f
MJ
150912011-01-05 Martin Jambor <mjambor@suse.cz>
15092
15093 PR lto/47162
15094 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15095 deltas on streamed outgoing edges.
15096 (output_node_opt_summary): Output info for outgoing edges only when
15097 the node is in new parameter set.
15098 (output_cgraph_opt_summary): New parameter set, passed to the two
15099 aforementioned functions. Update its forward declaration and its
15100 callee too.
15101
7bd11157
TT
151022011-01-05 Tom Tromey <tromey@redhat.com>
15103
15104 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15105 operator to c_finish_omp_atomic.
15106 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15107 (build_unary_op): Update.
15108 (build_modify_expr): Update.
15109 (build_asm_expr): Update.
15110
f626b979
UW
151112011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15112
15113 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15114 newly inserted insns.
15115 (pad_bb): Likewise.
15116 (spu_emit_branch_hint): Likewise.
15117 (insert_hbrp_for_ilb_runout): Likewise.
15118 (spu_machine_dependent_reorg): Call df_finish_pass after
15119 schedule_insns returns.
15120
4c825c02
UW
151212011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15122
15123 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15124
5e9fba51
EB
151252011-01-05 Eric Botcazou <ebotcazou@adacore.com>
15126
15127 PR tree-optimization/47005
15128 * tree-sra.c (struct access): Add 'non_addressable' bit.
15129 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15130 (decide_one_param_reduction): Return 0 if the parameter is passed by
15131 reference and one of the accesses in the group is non_addressable.
15132
3ebb5ca6
EB
151332011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15134
15135 PR tree-optimization/47056
15136 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15137 (mark_load): Likewise. Handle FUNCTION_DECL specially.
15138 (mark_store): Likewise. Pass STMT to ipa_record_reference.
15139
d5d4d14e
EB
151402011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15141
15142 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15143 initializer. Skip view conversions from aggregate types.
15144
d996ef70
KT
151452011-01-04 Kai Tietz <kai.tietz@onevision.com>
15146
15147 PR bootstrap/47055
15148 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15149
509d65dd 151502011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
15151
15152 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15153 obvious typo.
15154
55c623b5
UW
151552011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15156
15157 * function.c (thread_prologue_and_epilogue_insns): Do not crash
15158 on empty epilogue sequences.
15159
b98d6b35
JM
151602011-01-04 Joseph Myers <joseph@codesourcery.com>
15161
15162 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15163 non-static): New Driver options.
15164
a0d43bac
JZ
151652011-01-04 Jie Zhang <jie@codesourcery.com>
15166
15167 PR driver/47137
15168 * gcc.c (default_compilers[]): Set combinable field to 0
15169 for all assembly languages.
15170
2b18eb32
MX
151712011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
15172
15173 * config/mips/loongson3a.md: New file.
15174 * config/mips/mips.md: Include loongson3a.md.
15175 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15176 TUNE_LOONGSON_3A.
15177
42a48c4f
EB
151782011-01-03 Eric Botcazou <ebotcazou@adacore.com>
15179
15180 PR middle-end/47017
15181 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15182 instead of convert_memory_address_addr_space on the base expression.
15183
9c1732c4
UW
151842011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15185
15186 * config/spu/spu.c (spu_option_override): Update error text
15187 for bad -march= / -mtune= values.
15188
aa474365
UW
151892011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15190
15191 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15192 if branch-hint optimization will be performed.
15193
9766135b
JJ
151942011-01-03 Jakub Jelinek <jakub@redhat.com>
15195
371556ee
JJ
15196 PR tree-optimization/47148
15197 * ipa-split.c (split_function): Convert arguments to
15198 DECL_ARG_TYPE if possible.
15199
1ac12fa2
JJ
15200 PR tree-optimization/47155
15201 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15202 when computing uns.
15203
9766135b
JJ
15204 PR rtl-optimization/47157
15205 * combine.c (try_combine): If undobuf.other_insn becomes
15206 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15207 and set *new_direct_jump_p too.
15208
f4a2e571
SP
152092011-01-03 Sebastian Pop <sebastian.pop@amd.com>
15210
15211 PR tree-optimization/47021
15212 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15213
9f8e43c0
JJ
152142011-01-03 Jakub Jelinek <jakub@redhat.com>
15215
15216 * gcc.c (process_command): Update copyright notice dates.
15217 * gcov.c (print_version): Likewise.
15218 * gcov-dump.c (print_version): Likewise.
15219 * mips-tfile.c (main): Likewise.
15220 * mips-tdump.c (main): Likewise.
15221
1a2e38f3
MJ
152222011-01-03 Martin Jambor <mjambor@suse.cz>
15223
15224 PR tree-optimization/46801
15225 * tree-sra.c (type_internals_preclude_sra_p): Check whether
15226 aggregate fields start at byte boundary instead of the bit-field flag.
15227
56b721c5
L
152282011-01-03 H.J. Lu <hongjiu.lu@intel.com>
15229
15230 PR driver/47137
15231 * gcc.c (main): Revert revision 168407.
15232
839d549b
MJ
152332011-01-03 Martin Jambor <mjambor@suse.cz>
15234
15235 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15236
4ce99a20 152372011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
15238
15239 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15240 vector optab to expand vector/scalar shift, update gimple to vector.
15241
76df0ae6
MJ
152422011-01-03 Martin Jambor <mjambor@suse.cz>
15243
15244 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15245 a thunk.
15246
ce47fda3
MJ
152472011-01-03 Martin Jambor <mjambor@suse.cz>
15248
15249 PR tree-optimization/46984
15250 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15251 HOST_WIDE_INT.
15252 (cgraph_create_indirect_edge): Fixed line length.
15253 (cgraph_indirect_call_info): Declare.
15254 (cgraph_make_edge_direct) Update declaration.
15255 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15256 (cgraph_create_indirect_edge): Use it.
15257 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
15258 callees.
15259 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15260 the new thunk_delta representation.
15261 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15262 HOST_WIDE_INT.
15263 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15264 (ipa_read_indirect_edge_info): Likewise.
15265 * lto-cgraph.c (output_edge_opt_summary): New function.
15266 (output_node_opt_summary): Call it on all outgoing edges.
15267 (input_edge_opt_summary): New function.
15268 (input_node_opt_summary): Call it on all outgoing edges.
15269
1e67fa1f
L
152702011-01-02 H.J. Lu <hongjiu.lu@intel.com>
15271
15272 PR driver/47137
15273 * gcc.c (main): Don't check have_o when settting combine_inputs.
15274
6656b2ac
EB
152752011-01-02 Eric Botcazou <ebotcazou@adacore.com>
15276
15277 * regrename.c: Add general comment describing the pass.
15278 (struct du_head): Remove 'length' field.
15279 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15280 (regrename_optimize): Do not sort chains. Rework comments, add others.
15281 Force renaming to the preferred class (if any) in the first pass and do
15282 not consider registers that belong to it in the second pass.
15283 (create_new_chain): Do not set 'length' field.
15284 (scan_rtx_reg): Likewise.
15285
bc470c24
JJ
152862011-01-02 Jakub Jelinek <jakub@redhat.com>
15287
4e996296
JJ
15288 PR tree-optimization/47140
15289 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15290 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15291 to bit_value_binop.
15292
bc470c24 15293 PR rtl-optimization/47028
6656b2ac
EB
15294 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15295 parm_birth_insn instead of at the beginning of first bb.
bc470c24 15296
5af62fcd 152972011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
15298
15299 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15300 Remove the word "see" before "@pxref".
15301 * doc/rtl.texi: Remove the word "see" before "@pxref".
15302
0e20c89f
JH
153032011-01-01 Jan Hubicka <jh@suse.cz>
15304
6656b2ac
EB
15305 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15306 memory.
0e20c89f 15307
220e83ca
KT
153082011-01-01 Kai Tietz <kai.tietz@onevision.com>
15309
15310 PR target/38662
6656b2ac 15311 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 15312
ad41bd84 15313\f
797103eb 15314Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
15315
15316Copying and distribution of this file, with or without modification,
15317are permitted in any medium without royalty provided the copyright
15318notice and this notice are preserved.
This page took 4.114337 seconds and 5 git commands to generate.